Escolar Documentos
Profissional Documentos
Cultura Documentos
Aplicações:
a) Em Prolog
b) P
Para efetuar
f t provas por resolução
l ã
Unificação
Definição de unificador
Seja E = {e1, ..., en} um conjunto de expressões simples e
uma substituição. é um unificador de E sse e1 = ... = en
Exercícios
Q(a,x,f(x))
( , , ( )) e Q(a,y,y)
( ,y,y) são unificáveis ?
Exercício
Ache o unificador mais geral do conjunto de clausulas:
Aplique
A li o algoritmo
l it d
de unificação
ifi ã para os conjuntos
j t
abaixo:
F = {P(a, x, f(g(y))), P(z, h(z, w), f(w)), P(f(z), h(a, g(b)), f(g(v))}
Ex.: {{A,B},{
{{ , },{ C}}
}}
Resolvente no cálculo proposicional
p p
• Ci pertence a Г ou
Exercício 2 - idem
Provar por resolução que {A,(A B)} ⊢ B
Correção e Completude
Exemplo
C1 : P(a), P(x) C2 : P(y), P(z)
1. P(a), P(x)
2. P(y), P(z)
3. P(x), P(z) 1 e 2 [a/y]
4
4. P(z) 2 e 3 [x/y]
5. P(x) 1 e 4 [a/z]
6. [ ] 4 e 5 [a/z]
Fator
Se dois ou mais literais (com mesmo sinal) de clausula C
têm u.m.g , então C é um fator de C.
P(f(y)),
( (y)) R(g(y))
(g(y)) é um fator de C1 = [[f(y)/x]
(y) ]
1. P(x),
2. P(f(y))
3. [] 4 e 5 [f(y)/x]
L
Logo as clausulas
l l d deverão
ã conter
t variáveis
iá i didistintas.
ti t
R-dedução
Seja S um conjunto de cláusulas (com variáveis distintas) e
C uma cláusula. Uma R-dedução de C a partir de S é uma
seqüência
1
n
tal que:
1 Para todo i [1,n]:
1. [1 n]:
i S, ou
i é um fator de i-1
i 1 ou
i é um resolvente de j e k para algum j, k < i.
n = C;
chama(a, b)
usa(b, e)
depende(x y) chama(x,
depende(x, chama(x y)
depende(x, y) usa(x, y)
depende(x y) depende(x,
depende(x, depende(x z) depende(z,
depende(z y)
consulta ao pprograma
g : depende(a,
p ( w))
(intuitivamente : Quem depende de a?)
1.
1 chama(a, b)
chama(a
2. usa(b, e)
3. depende(x, y) chama(x, y)
4. depende(x, y) usa(x, y)
5. depende(x, y) depende(x, z) depende(z, y)
depende(a,
depende(a w)
7. depende(a, b) por 1 e 3 [a/x][b/y]
8. [] por
p 6 e 7 [b/w]
[ ]
chama(a, b)
usa(a,
( c))
chama(a, x)
usa(a,
( y))