Escolar Documentos
Profissional Documentos
Cultura Documentos
Aluno
Kevin Rickelme Marques da Silva
Recorrência: As regras do Prolog são condicionais, os antecedentes podem depender dos fatos. O antecedente de
uma regra pode, também, depender da própria regra, de modo que a regra é definida por si mesma. Chamamos essa
situação de definição recorrente. Exemplo no banco de dados dos animais a regra para na-cadeia-alimentar se
enquadra nessa situação.
Considerando o banco de dados abaixo, encontre os resultados das perguntas de 1 a 8 em cada caso:
come(urso,peixe).
come(peixe,peixinho).
come(peixinho,alga).
come(guaxinim,peixe).
come(urso,guaxinim).
come(urso,raposa).
come(raposa,coelho).
come(coelho,grama).
come(urso,veado).
come(veado,grama).
come(lince,veado)
animal(urso).
animal(peixe).
animal(peixinho).
animal(guaxinim).
animal(raposa).
animal(coelho).
animal(veado).
animal(lince).
planta(alga).
planta(alga).
presa(X):- come(X,Y),animal(X).
predador(X):-come(X,Y),animal(Y).
na-cadeia-alimentar(X,Y):-come(X,Y).
na-cadeia-alimentar(X,Y):-come(X,Z),na-cadeia-alimentar(Z,Y).
1
1. come(urso,peixinoho).
R: True
2. come(raposa,coelho).
R: True
3. come(guaxinim,X).
R: peixe
4. come(X,grama).
R: Coelho e Veado.
5. come(urso,X),come(X,Coelho).
R:
6. presa(x),not(come(raposa,X)).
7. Formule uma regra de Prolog que defina “herbívoro” para adicionar ao banco de dados
R:
herbivoro(X):-come(X,Y),planta(Y).
8. Depois de adicionado a regra da questão 7, indique qual a resposta para a pergunta: herbívoro(X)
R:
2
9. Um banco de dados Prolog contém os dados a seguir, onde patrão(X,Y) significa que “X é patrão de Y” e
supervisor (X,Y)
significa que “X é supervisor de Y”.
patrão(Miguel,Joana).
patrão(Judite,Miguel).
patrão(Anita,Judite).
patrão(Judite,Kim).
patrão(Kim,Henrique).
patrão(Anita,Samuel).
patrão(Henrique,Jeferson).
patrão(Miguel,Hamal).
supervisor(X,Y) :- patrão(X,Y).
supervisor(X,Y) :- patrão(X,Z), supervisor(Z,Y).
patrão(judite,X).
R:
supervisor(anita,X).
R:
3
10. Construa um banco de dados Prolog que forneça informações sobre estados e suas capitais. Algumas cidades são
grandes, outras são pequenas. Alguns estados estão na região sul, outros na região nordeste.
estado(parana, sul).
estado('santa cataria',sul).
estado(ceara,nordeste).
estado(bahia,nordeste).
estado(sergipe,nordeste).
cidade(parana,grande).
cidade(fortaleza, pequena).
cidade(salvador,grande).
cidade(aracaju,pequena).
capital(parana, coritiba).
capital(ceara, fortaleza).
capital(bahia, salvador).
capital(sergipe, aracaju).
cidade(X,pequena).
b. Escreva uma pergunta para encontrar todos os estados que têm capitais pequenas.
capital(X,Y),cidade(Y,pequena).
c. Escreva uma pergunta para encontrar todos os estados na região nordeste com capitais grandes.
estado(X,nordeste).
d. Formule uma regra para definir cidades cosmopolitas como sendo capitais grandes dos estados na região sul.
cosmopolita(X):-cidade(X,grande),capital(Y,X),estado(Y,sul).
cosmopolita(X) :- cidade(X,grande).
4
11. Suponha que exista um banco de dados Prolog que forneça informações sobre uma família. os
predicados homem, mulher e genitor-de estão incluídos.
a. formule uma regra para definir genitor-de.
genitor_de(X,Y).
filha_de(X,Y,Z):- genitor_de(Z,X),pessoa(X,masculino),
genitor_de(Z,Y),pessoa(Y,feminino),
pessoa(Z,feminino).
ancestral_de(X,Y):- genitor_de(X,Y).
ancestral_de(X,Y):- genitor_de(X,Z),
ancestral_de(Z,Y).