Lógica de Predicados

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

description

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 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. - PowerPoint PPT Presentation

Transcript of Lógica de Predicados

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 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

Exemplo (proposicional) Darcy Darcy Criança Criança ^ Macho Garoto Infantil Criança Criança ^ Fêmea Garota Fêmea

Isto deriva Garota????

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)

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

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

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

[Garota] [Garota]

{}

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 …

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????

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)

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!

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]}

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

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

O exemplo da garotaGarota

Criança Fêmea

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

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).

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).

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

Ground SLD-Resolution?- A1,A2,...,An.

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

A1 :- B1,...,Bm.

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

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).

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).

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.

?- 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

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

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!!!

?- 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

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)

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)

Logic Programming p(X,b)

q(X,b) {X/b}success q(b,X)

q(X,b)

Infinite SLD-tree:

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

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

BOAS FÉRIAS!