SCE 5774 Introdução
à Inteligência Artificial Prof. Sandra Maria Aluísio,
ICMC-USP
Exercicio 1 Programação
em PROLOG Anja Pratschke, 06 de
abril 1999
Ex. 12 Tradução
em Prolog 2
Tweety é um
passáro. Goldie é um peixe. Squiggly é uma minhoca.
Passáros gostam de minhoca. Gatos gostam de peixe. Gatos
gostam de passáros. Amigos se gostam. Meu gato é meu amigo.
Meu Gato come tudo o que ele gosta.
Pergunta: o que come
o meu gato?
Crie outra descrição
similar, traduza para Prolog e faça perguntas pertinentes.
O excercicio é dividido em duas partes, primeiro a
parte do programa - gato - e depois fui criado um outro programa
similar a problematica de interpretação do texto do
exercicio chamado viagem. Para executar o programa, usa-se
LPA-WinProlog.
parte
1.
O texto fui dividido em duas partes, a partir do verbo
gostar. Temos aqui duas formas de gostar: gostar comer e gostar amizade.
Podemos relacionar estas duas formas aos diversos animais e a pessoa. Temos
uma pessoa, que gosta de amizade, seu gato.Ela chama ele seu amigo.Temos
tambem o gato que gosta comer o peixe e o passáro. O passaro gosta
comer a minhoca.
No inicio do program
são listadas as estruturas, chamados functores.
Cada functor é
definido por seu nome e o arity.
Em nosso caso differenciamos
5 estruturas.
gato(kawai).
pessoa(alma).
passaro(tweety).
peixe(goldie).
minhoca(squiggly).
A estrutura em seguida
esta construida em cima de uma semantica declarativa, onde é definido
se o objetivo é verdadeiro em relação ao programa
e, se ele é verdadeiro para que instanciações de variaveis
ele é verdadeiro.
A segunda parte do
exercicio fui construido semelhante ao primeiro em forma de semantica declarativa.
A história:
Anja viaja para Ouro Preto. Anja viaja para Nova York. Anja viaja
com Alma e Marcelo .
Anja viaja com
a familia. Anja gosta viajar para lugares distantes.
Temos aqui dois usos
para viajar: viajar com uma pessoa e viajar para um lugar.
Anja viaja com
outras pessoas, a familia aqui. Anja viaja para lugares , aqui Ouro
Preto e Nova York.
Como no programa de
cima estão listados primeiro os functores.
pessoa(anja).
pessoa(alma).
pessoa(marcelo).
lugar(ouro_preto).
lugar(new_york).
E em seguida uma estrutura de semantica declarativa.
viajar_familia(X,Y) :- pessoa(X),
pessoa(Y).
viajar_familia(X,Y) :- pessoa(X),
pessoa(Z).
viajar_lugar(X,Y) :- pessoa(X),
lugar(Y).
familia(X,Y,Z) :- pessoa(X),
pessoa(Z), pessoa(Y).
lugar(Y) :- viajar_lugar(Y).
conclusão
Este excercicio
mostra como , usando uma estrutura de semantica declarativa, podemos construir
programas bem simples e pequenas, para fazer responder o computador
atraves do Prolog à problematicas com dupla complexidade. Analisando
o conteudo do excercicio, mesmo sem pouca familiaridade com a linguagem
fui possivel de construir este programa.