30
Lógica de Predicados Estratégias de Resolução

Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de

Embed Size (px)

Citation preview

Page 1: Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de

Lógica de Predicados

Estratégias de Resolução

Page 2: Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de

Defeitos da resolução

Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de Gilmore Mas ainda podemos melhorá-la!

Durante a resolução, em ambas as lógicas, há passos e cláusulas não usados na

prova

Page 3: Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de

Exemplo (proposicional)

Darcy Darcy Criança Criança ^ Macho Garoto Infantil Criança Criança ^ Fêmea Garota Fêmea

Isto deriva Garota????

Page 4: Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de

Em Cláusulas [Darcy] [Darcy,Criança] [Criança,Macho,Garoto]

[(Criança ^ Macho), Garoto] [Infantil,Criança] [Criança,Fêmea,Garota]

[(Criança ^ Fêmea),Garota] [Fêmea] [Garota] (conseqüência lógica)

Page 5: Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de

Prova gráfica [Darcy] [Darcy,Criança]

[Criança] [Criança,Fêmea,Garota]

[Fêmea,Garota] [Fêmea]

[Garota] [Garota]

{}

Page 6: Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de

Estratégias mais eficientes Estratégias de Deleção (ou

simplificação) Tautologias Subsunções Literais puros

Estratégias de refinamento Resolução de entrada Resolução de unidade Resolução linear …

Page 7: Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de

Estratégias de Deleção -Tautologias

Tirar tautologias do conjunto de cláusulas ANTES da unificação

Sua ausência não afeta a prova Ex: {[P(a), P(a)], [P(a), Q(x), Q(y)]} Depois da unificação Ex: {[P(a), P(x)], [P(a)],[P(b)]} Se retirarmos [P(a), P(x)], já que são

complementares se unificados????

Page 8: Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de

Estratégias de Deleção - Subsunções

C1 subsume C2 sse existe O tal que C1O C2O

Retirar C2 não altera a prova Exs:

P(x) subsume P(y) v Q(z) P(x) subsume P(a) P(y) v Q(a) subsume P(f(a)) v Q(a) v R(y)

Page 9: Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de

Estratégias de Deleção -Literais puros Um literal é puro sse se seu

complemento (unificável ou não) não existir nas cláusulas

Ex: {[R, P, Q], [P, S], [Q, S], [P], [Q], [R]} S é puro Cláusulas que o contém podem ser

deletadas pois não serão eliminadas na resolução!

Page 10: Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de

Estratégias de refinamento Resolução de unidade

Procura-se empregar cláusulas unitárias Com um só literal

Eficiente mas incompleta, se o conjunto de cláusulas não contiver unitárias o suficiente

Resolução de entrada Usar pelo menos uma cláusula do conjunto

inicial Equivalente à de unidade Completo para cláusulas de Horn

Exemplo de falha de ambos {[P, S], [P, S], [P, S], [P, S]}

Page 11: Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de

Cláusulas de Horn

Do tipo A1^...^An B, que vira [A1,...,An, B] Só há um literal positivo: o

conseqüente Lê-se: se A1 e ... e An então B Bons para estruturar conhecimento

e controlar a inferência

Page 12: Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de

Resolução SLD Resolução Linear com função de

Seleção para cláusulas Definidas Generalização de resolução de entrada Sempre usam-se cláusulas do conjunto

de entrada ou suas filhas em 1º. grau Boa para cláusulas de Horn Busca-se tentar provar diretamente

a conseqüência lógica

Page 13: Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de

O exemplo da garota

Garota

Criança Fêmea

DarcyNo conjunto inicial tínhamos Criança ^ Fêmea Garota ([Criança,Fêmea,Garota])

Page 14: Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de

Example [U. Nilsson]

gp(X,Y) :- p(X,Z), p(Z,Y).

p(X,Y) :- f(X,Y).p(X,Y) :- m(X,Y).

f(adam,bill).f(bill,carl).m(anne,bill).

Page 15: Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de

Queries

A query is an expression of the form:?- A1, ..., An.

where n=0,1,2,... and A1, ..., An are atomic formulas.

Examples:?- father(X, bill).

?- parent(X, bill), male(X).

Page 16: Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de

Interpretation Queries

Consider a query ?- A1, ... , An.

Declarative (logical) reading:Are there values of the variables

such that A1 and...and An?

Procedural (operational) reading:First solve A1, then A2 etc

Page 17: Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de

Ground SLD-Resolution

?- A1,A2,...,An.

?- B1,...,Bm,A2,...,An.

A1 :- B1,...,Bm.

whereA1 :- B1,...,Bm is an instantiated program clause.

Page 18: Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de

parent(X,Y) :-father(X,Y).

parent(X,Y) :-mother(X,Y).

father(adam,bill).mother(anne,bill).

A Derivation

?- parent(adam,bill)

?- father(adam,bill)

?- true

parent(X,Y) :-father(X,Y).

parent(X,Y) :-mother(X,Y).

father(adam,bill).mother(anne,bill).

parent(X,Y) :-father(X,Y).

parent(X,Y) :-mother(X,Y).

father(adam,bill).mother(anne,bill).

Page 19: Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de

parent(X,Y) :-father(X,Y).

parent(X,Y) :-mother(X,Y).

father(adam,bill).mother(anne,bill).

Another Derivation

?- parent(anne,bill)

?- mother(anne,bill)

?- true

parent(X,Y) :-father(X,Y).

parent(X,Y) :-mother(X,Y).

father(adam,bill).mother(anne,bill).

parent(X,Y) :-father(X,Y).

parent(X,Y) :-mother(X,Y).

father(adam,bill).mother(anne,bill).

Page 20: Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de

Full SLD-Resolution

?- A1,A2,...,An.

?- A1= B0, B1,...,Bm,A2,...,An.

B0 :- B1,...,Bm.

where:

• B0 :- B1,...,Bm is a renamed program clause.

?- (B1,...,Bm,A2,...,An).

• is a solution to the equation A1 = B0.

Page 21: Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de

?- X=X1, bill=Y1, father(X1,Y1). ?- father(X,bill).

Yet Another Derivation?- parent(X,bill).

parent(X1,Y1) :- father(X1,Y1).father(adam,bill).

?- X=adam, bill=bill. ?- true.

Answer: X=adam

Page 22: Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de

And Another One...?- gp(X,Y).

gp(X1,Y1) :- p(X1,Z1),p(Z1,Y1).

?- X=X1, Y=Y1, p(X1,Z1), p(Z1,Y1).?- p(X,Z1), p(Z1,Y).

p(X2,Y2) :- f(X2,Y2).

?- X=X2, Z1=Y2, f(X2,Y2), p(Z1,Y).?- f(X,Z1), p(Z1,Y).

f(adam,bill).

?- X=adam,Z1=bill, p(Z1,Y).?- p(bill,Y).

X=adam

p(X3,Y3) :- f(X3,Y3).

?- bill=X3, Y=Y3, f(X3,Y3).?- f(bill,Y).

f(bill,carl).?- bill=bill, Y=carl.?- true.

Y=carl

Page 23: Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de

And a Failed One...?- gp(X,Y).

gp(X1,Y1) :- p(X1,Z1),p(Z1,Y1).

?- X=X1, Y=Y1, p(X1,Z1), p(Z1,Y1).?- p(X,Z1), p(Z1,Y).

p(X2,Y2) :- f(X2,Y2).

?- X=X2, Z1=Y2, f(X2,Y2), p(Z1,Y).?- f(X,Z1), p(Z1,Y).

f(bill,carl).

?- X=bill,Z1=carl, p(Z1,Y).?- p(carl,Y).

X=bill

p(X3,Y3) :- f(X3,Y3).

?- carl=X3, Y=Y3, f(X3,Y3).?- f(carl,Y).

?- fail.FAILURE!!!

Page 24: Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de

?- true.Y=carl

?- p(bill,Y).

X=adam

SLD-Tree?- gp(X,Y).

?- f(bill,Y). ?- m(bill,Y).

?- fail.

?- p(X,Z),p(Z,Y).

?- f(X,Z),p(Z,Y).

?- p(carl,Y).

?- f(carl,Y).?- m(carl,Y).

?- fail. ?- fail.

?- m(X,Z),p(Z,Y).

?- f(bill,Y). ?- m(bill,Y).

?- true.Y=carl

?- fail.

?- p(bill,Y).

X=anne

Page 25: Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de

Logic Programming

• SLD-resolution: Soundness:

if n… 21 is a computed answer, then P n… 21G

Completeness: if P G, then there exists a computed

answer such that = for some

Example: p(X,Z) q(X,Y), p(Y,Z)p(X,X)q(a,b)

Page 26: Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de

Logic Programming• PROLOG (Alain Colmerauer 1972):

Only Horn sentences are acceptable The occur-check is omitted from the unification unsound

Example: test p(X,X)p(X,f(X))

Backward chaining with depth-first search incomplete

Example: p(X,Y) q(X,Y)p(X,X)q(X,Y) q(Y,X)

Page 27: Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de

Logic Programming p(X,b)

q(X,b) {X/b}

success q(b,X)

q(X,b)

Infinite SLD-tree:

Page 28: Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de

Logic Programming• PROLOG (Alain Colmerauer 1972):

Unsafe cut incomplete

Example: A B, C AB D, !, ED B, C

D, !, E, C

!, E, C

Negation as failure: P if fails to prove P

Page 29: Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de

Muito obg!

Gostei de trabalhar com vcs!! Desculpem as escorregadas! Estudem e boas provas! E depois...

Page 30: Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica de predicados, resolução ser bem melhor que o algoritmo de

BOAS FÉRIAS!