





















































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Documento que apresenta o que é programação lógica, especificamente sobre prolog, uma linguagem de programação simbólica. O texto aborda conceitos básicos como cláusulas, unificação, regra e fato, além de exemplos de consultas e execução do algoritmo.
Tipologia: Exercícios
1 / 61
Esta página não é visível na pré-visualização
Não perca as partes importantes!






















































Sumário
Programação Imperativa vs. Lógica
Programação Funcional vs. Lógica
Exemplo
?- avo(carlos, jose).
true.
?- avo(carlos, joao).
false.
?- avo(manoel, carlos).
false.
?- avo(X, jose).
X = carlos.
avo(X, Y) :- pai(X, Z), pai(Z, Y).
avo(X, Y) :- pai(X, Z), mae(Z, Y).
pai(carlos, joao).
pai(joao, jose).
mae(maria, joao).
PROLOG
Elementos
Cláusulas de Horn
1
2
n
i
i
1
2
n
i
Exemplo
gosta (maria, peixe).
gosta (pedro, vinho).
gosta (maria, vinho).
gosta (pedro, maria).
?- gosta(X, peixe).
X = maria.
?- gosta(maria, pedro),
gosta(pedro, maria).
false.
?- gosta(pedro, X), gosta(maria, X).
X = vinho.
Outro Exemplo
estrela (sol).
estrela(sirius).
orbita (venus, sol).
orbita (terra, sol).
orbita (marte, sol).
orbita(lua, terra).
orbita (phobos, marte).
orbita (deimos, marte).
planeta (B) :-
orbita (B, sol).
satelite (B) :-
orbita (B, P),
planeta (P).
?- orbita(venus, sol).
true.
?- orbita(B, marte).
B = phobos ; B = deimos.
?- orbita(B, venus).
false.
?- planeta(mercurio).
false.
?- planeta(X).
X = venus ; X = terra ; X = marte.
?- satelite(X).
X = lua ; X = phobos ; X = deimos.
Unificação
Predicado 1 Predicado 2 Unificação
p (X, Y)
q (X, Y)
false
p(X, Y) p(joao, jose) X = joao, Y = jose
p(X, Y) p(joao, Z) X = joao, Y = Z
p(X, X) p(1, 1) X = 1
p (X, X)
p (1, W) X = 1, W = 1
p(X, X) p(1, 2) false
p(X, X, 2) p(1, W, W) false
p(G, jose) p(X, Y) G = X, Y = jose
Algoritmo
A resolução é sujeita à ordem em
que as cláusulas foram escritas
Exemplo
Com qual regra essa consulta
pode ser unificada?
irmao (joao, mario)
homem(mario).
mae(joao, roberta).
mae (mario, roberta).
pai(joao, paulo).
pai(mario, paulo).
pais(X, M, P) :- mae(X, M),
pai(X, P).
irmao (X, Y) :-
homem (Y),
pais(X, M, P),
pais(Y, M, P).
Exemplo
irmao (joao, mario)
irmao(X, Y)
X = joao, Y = mario
Expandir a regra irmao(X, Y)
com suas cláusulas à direita
homem(mario).
mae(joao, roberta).
mae (mario, roberta).
pai(joao, paulo).
pai(mario, paulo).
pais(X, M, P) :- mae(X, M),
pai(X, P).
irmao (X, Y) :-
homem (Y),
pais(X, M, P),
pais(Y, M, P).