jump to navigation

regras de inferência – auto aprendizado 2016/08/11

Posted by gsavix in aprendizado, axiomas, demonstração regras de inferência, método axiomático, Memorando, open source computer, rexx, sistema hipotético dedutivo, Sistemas Computacionais.
Tags:
comments closed

São Paulo, 11 de agosto de 2016

gsavix@gmail.com

Partindo do programa animal.rex que está disponível no link

http://pastebin.com/ehZppAhW

Caso queira acionar o mode depurar (debug) basta inserir na

Linha 3 do programa o comando trace r

Para fazer trace dos resultados de cada linha do programa animal.rex

Vamos entender um exemplo básico de aprendizado de regras de inferência, bem rudimentares apenas para entendermos o que isso é.

passo 1 – baixar e descompactar o arquivo regina rexx do link ao lado

https://sourceforge.net/projects/regina-rexx/files/regina-rexx/3.9.1/Regina391w32.zip/download

em nosso exemplo estamos descompactando o arquivo zip para a pasta

C:\d16down\Regina391w32

C:\d16down\Regina391w32>dir

26/01/2001  08:12            25.842 COPYING-LIB

06/04/2015  19:42            23.782 de.mtb

11/08/2016  12:56    <DIR>          demo

11/08/2016  12:56    <DIR>          doc

06/04/2015  19:42            20.875 en.mtb

06/04/2015  19:42            23.683 es.mtb

11/08/2016  12:56    <DIR>          include

11/08/2016  12:56    <DIR>          lib

06/04/2015  19:42            20.925 no.mtb

06/04/2015  19:42            22.822 pl.mtb

06/04/2015  19:42            22.677 pt.mtb

04/04/2015  15:18               255 README391.txt

06/09/2012  14:27             7.576 READMEW32.txt

05/04/2015  09:46           525.312 regina.dll

05/04/2015  09:46            39.424 regina.exe

04/04/2015  18:25           223.232 regutil.dll

05/04/2015  09:46           459.776 rexx.exe

05/04/2015  09:46            84.480 rxqueue.exe

05/04/2015  09:46           115.712 rxstack.exe

06/04/2015  19:42            22.602 sv.mtb

06/04/2015  19:42            26.194 tr.mtb

              17 arquivo(s)      1.665.169 bytes





passo 2 – windows deve localizar arquivo Regina rexx executável

 

através do painel de controle da linha de comando adicionar a pasta onde está o regina391w32 na variável %path%

set %path%=%path%;C:\d16down\Regina391w32

pronto isso fará com que o windows consiga executar o comando rexx ou regina

em seu computador

 

passo 3 – vá para diretório onde está o pgm animal.rex em português

 

cd c:\d16down\animal\

execute o programa animal rexx através do comando

C:\d16down\animal\rexx animal.rex

============================================

| Programa animalptbr.rexx                  |

| Por motivos diversos recomendamos         |

| Nao usar caracteres acentuados            |

| apenas caracteres ascii e numeros         |

| responda S para sim                       |

| responda N para nao                       |

| responda caracteristica ou nome do animal |

| responda nome de arquivo para salvar      |

=============================================

Pensando em elefante?

n

HHHMMM, Pensando em …?

gato

Qual pergunta permite diferenciar entre gato e  elefante:

mia

Qual resposta (S ou N) para gato?

s

Continuar deduzindo (S ou N)?

n

Informe arquivo para salvar (deixar em branco para NAO salvar!)?

conhece

 

C:\d16down\animal>dir

 

11/08/2016  12:26    <DIR>          .

11/08/2016  12:26    <DIR>          ..

11/08/2016  12:27                46 conhece

1 arquivo(s)             46 bytes

C:\d16down\animal>type conhece

BASE=”mia”

BASE.S=”gato”

BASE.N=”elefante”

 

 

passo 4 – veja como ficou o conteúdo do arquivo conhece, acima.

 

apenas para garantir, faça um backup/copia do arquivo conhece para conheceb1

 

C:\d16down\animal>copy conhece conheceb1

1 arquivo(s) copiado(s).

 

C:\d16down\animal>dir

O volume na unidade C é brzdc7900_C

O Número de Série do Volume é EA78-F732

 

Pasta de C:\d16down\animal

 

11/08/2016  12:32    <DIR>          .

11/08/2016  12:32    <DIR>          ..

11/08/2016  12:24             2.800 animal.rex

11/08/2016  12:27                46 conhece

11/08/2016  12:27                46 conheceb1

3 arquivo(s)          2.892 bytes

 

passo 5 – vamos agora reexecutar o programa animal.rex

 

porem usando a base de conhecimento conhece. perceba que a primeira pergunta

é diferente, ou seja o sistema leva em conta o conhecimento encontrado.

C:\d16down\animal>rexx animal.rex conhece

============================================

| Programa animalptbr.rexx                  |

| Por motivos diversos recomendamos         |

| Nao usar caracteres acentuados            |

| apenas caracteres ascii e numeros         |

| responda S para sim                       |

| responda N para nao                       |

| responda caracteristica ou nome do animal |

| responda nome de arquivo para salvar      |

=============================================

mia

n

Pensando em elefante?

n

HHHMMM, Pensando em …?

cachorro

Qual pergunta permite diferenciar entre cachorro e  elefante:

late

Qual resposta (S ou N) para cachorro?

s

Continuar deduzindo (S ou N)?

s

mia

n

late

s

Pensando em cachorro?

s

Legal!!!

Continuar deduzindo (S ou N)?

n

Informe arquivo para salvar (deixar em branco para NAO salvar!)?

conhece

 

C:\d16down\animal>type conhece

BASE=”mia”

BASE.S=”gato”

BASE.N=”late”

BASE.N.S=”cachorro”

BASE.N.N=”elefante”

 

passo 6 – veja como ficou o conteúdo do arquivo conhece

agora com gato, cachorro, veja que do elefante ainda não sabemos nada, mas

deduzimos que não late, nem mia.

 

 

passo 7 – vamos executar o animal.rex partindo dessa base

Vamos adicionar um rato aí mesmo, veja que rexx e regina nesse caso são sinônimos

 

C:\d16down\animal>regina animal.rex conhece

============================================

| Programa animalptbr.rexx                  |

| Por motivos diversos recomendamos         |

| Nao usar caracteres acentuados            |

| apenas caracteres ascii e numeros         |

| responda S para sim                       |

| responda N para nao                       |

| responda caracteristica ou nome do animal |

| responda nome de arquivo para salvar      |

=============================================

mia

n

late

n

Pensando em elefante?

n

HHHMMM, Pensando em …?

rato

Qual pergunta permite diferenciar entre rato e  elefante:

roe

Qual resposta (S ou N) para rato?

s

Continuar deduzindo (S ou N)?

s

mia

n

late

n

roe

s

Pensando em rato?

s

Legal!!!

Continuar deduzindo (S ou N)?

n

Informe arquivo para salvar (deixar em branco para NAO salvar!)?

conhece

 

C:\d16down\animal>type conhece

BASE=”mia”

BASE.S=”gato”

BASE.N=”late”

BASE.N.S=”cachorro”

BASE.N.N=”roe”

BASE.N.N.S=”rato”

BASE.N.N.N=”elefante”

 

passo 8 – veja acima como está nossa base de conhecimento com o rato.

 

Captou a lógica inerente a esse programa de inferência.

Anúncios

animal.rex traduzido para português do brasil pt_BR 2016/08/11

Posted by gsavix in aprendizado, programas autonômicos, regras de inferência, rexx.
Tags:
comments closed

/* adaptado por gsavix@gmail.com */
/* agosto 2016 */

parse arg infile .
say ‘============================================’
say ‘| Programa animalptbr.rexx                  |’
say ‘| Por motivos diversos recomendamos         |’
say ‘| Nao usar caracteres acentuados            |’
say ‘| apenas caracteres ascii e numeros         |’
say ‘| responda S para sim                       |’
say ‘| responda N para nao                       |’
say ‘| responda caracteristica ou nome do animal |’
say ‘| responda nome de arquivo para salvar      |’
say ‘=============================================’

if infile\=” then
do while lines(infile)>0
interpret linein(infile) ;
end
else
base = ‘elefante’

do until left(answer,1) = ‘N’
where = ‘BASE’
finished = 0
do while finished = 0
if symbol(where’.S’)=’VAR’ then do
say value(where)
pull answer
if left(space(answer),1) = ‘N’ then
where = where’.N’
else
where = where’.S’
end; else do
finished = 1;
say ‘Pensando em ‘value(where)’?’
pull answer
if left(answer,1) = ‘S’ then
say ‘Legal!!!’
else do
say ‘HHHMMM, Pensando em …?’
parse pull newanimal
say ‘Qual pergunta permite diferenciar entre ‘newanimal’ e ‘,
value(where)’:’
parse pull quest
say ‘Qual resposta (S ou N) para ‘newanimal’?’
pull answer
answer = space(answer)
if left(answer,1) = ‘S’ then do
interpret where’.N =’ where
interpret where’.S = newanimal’
interpret where ‘= quest’
end; else do
interpret where’.S =’ where
interpret where’.N = newanimal’
interpret where ‘= quest’
end
end
end
end
say ‘Continuar deduzindo (S ou N)?’
pull answer
answer = space(answer)
end

say ‘Informe arquivo para salvar (deixar em branco para NAO salvar!)?’
parse pull filename
if filename\=” then do
call lineout filename,, 1
signal on notready
call dump ‘BASE’
end

exit 0

dump: procedure expose filename base base.
parse arg arg
if symbol(arg)=’VAR’ then do
call lineout filename, arg’=”‘insulate(value(arg))'”‘
call dump arg’.S’
call dump arg’.N’
end
return ;

insulate:
parse arg string
pos = -1
do until pos=0
pos = pos(‘”‘, string, pos+2)
if (pos>0) then
string = left(string,pos-1) || ‘””‘ || substr(string,pos+1)
end
return string

notready:
say ‘erro salvando arquivo. processo encerrado.’
exit 1