Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica...

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

Transcript of Lógica de Predicados Estratégias de Resolução. Defeitos da resolução Apesar de, para lógica...

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!