Jogo dos Animais
Está é uma versão Prolog do jogo de identificação de animais (sistema especialista simples) apresentado em um programa 'Lisp' no Capítulo 6 de Winston e Horn (1985)[1]. Carregue o arquivo e faça a consulta ?- go
. O programa usa suas regras de identificação para determinar o animal que você escolheu.
Exemplo de código ocultado devido ao Trabalho 2 - INF1771 Inteligência Artificial, PUC-Rio.
O programa é interessante principalmente no que diz respeito a como tenta verificar certas propriedades que usa para tirar conclusões e como faz perguntas e registra as respostas para referência futura. Se uma pergunta 'q' for feita e a resposta for 'yes', essa resposta será registrada afirmando (com o comando assert) yes(q)
e bem-sucedida; caso contrário, a resposta será registrada afirmando(com o comando assert) no(q)
e falhando.
Mesmo as respostas "yes" precisam ser registradas, uma vez que uma resposta "no" subsequente a uma pergunta diferente ao tentar verificar a mesma hipótese pode fazer com que toda a hipótese falhe, mas a mesma resposta "yes" pode levar a uma verificação bem-sucedida de um hipótese diferente mais tarde. É assim que o programa evita fazer a mesma pergunta duas vezes. O método geral de verificação de uma condição 'q' é então verificar se yes(q)
foi armazenado na memória e se foi bem-sucedido ou se no(q)
foi armazenado e falhar, caso contrário, pergunte: ask(q)
.
O Capítulo 6 constrói uma estrutura geral para sistemas especialistas em Prolog.
Veja Também
- Código do Prolog para esta seção.
- 2.18 Cláusulas como dados
- Prolog Tutorial Sumário
Referências
- ↑ Winston, P.H., and Horn, P., Lisp, Addison-Wesley, 1985.