A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Estratégias de Resolução

Apresentações semelhantes


Apresentação em tema: "Estratégias de Resolução"— Transcrição da apresentação:

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

2 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

3 Exemplo (proposicional)
Darcy Darcy  Criança Criança ^ Macho  Garoto Infantil  Criança Criança ^ Fêmea  Garota Fêmea Isto deriva Garota????

4 Em Cláusulas [Darcy] [Darcy,Criança] [Criança,Macho,Garoto]
[Infantil,Criança] [Criança,Fêmea,Garota] [(Criança ^ Fêmea),Garota] [Fêmea] [Garota] (conseqüência lógica)

5 Prova gráfica [Darcy] [Darcy,Criança]
[Criança] [Criança,Fêmea,Garota] [Fêmea,Garota] [Fêmea] [Garota] [Garota] {}

6 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

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

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

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

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

11 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

12 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

13 O exemplo da garota Garota Criança Fêmea Darcy
No conjunto inicial tínhamos Criança ^ Fêmea  Garota ([Criança,Fêmea,Garota])

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

15 ?- parent(X, bill), male(X).
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).

16 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

17 Ground SLD-Resolution
?- A1,A2,...,An. A1 :- B1,...,Bm. ?- B1,...,Bm,A2,...,An. where A1 :- B1,...,Bm is an instantiated program clause.

18 A Derivation parent(X,Y) :- father(X,Y). mother(X,Y).
father(adam,bill). mother(anne,bill). parent(X,Y) :- father(X,Y). mother(X,Y). father(adam,bill). mother(anne,bill). parent(X,Y) :- father(X,Y). mother(X,Y). father(adam,bill). mother(anne,bill). ?- parent(adam,bill) ?- father(adam,bill) ?- true

19 Another Derivation parent(X,Y) :- father(X,Y). mother(X,Y).
father(adam,bill). mother(anne,bill). parent(X,Y) :- father(X,Y). mother(X,Y). father(adam,bill). mother(anne,bill). parent(X,Y) :- father(X,Y). mother(X,Y). father(adam,bill). mother(anne,bill). ?- parent(anne,bill) ?- mother(anne,bill) ?- true

20 Full SLD-Resolution B0 :- B1,...,Bm is a renamed program clause.
where: B0 :- B1,...,Bm is a renamed program clause. ?- A1,A2,...,An. ?- (B1,...,Bm,A2,...,An)q. q is a solution to the equation A1 = B0. ?- A1= B0, B1,...,Bm,A2,...,An.

21 Yet Another Derivation
?- parent(X,bill). ?- father(X,bill). ?- X=X1, bill=Y1, father(X1,Y1). ?- true. Answer: X=adam ?- X=adam, bill=bill. parent(X1,Y1) :- father(X1,Y1). father(adam,bill).

22 And Another One... ?- gp(X,Y). ?- p(bill,Y). X=adam
?- p(X,Z1), p(Z1,Y). ?- X=X1, Y=Y1, p(X1,Z1), p(Z1,Y1). ?- true. Y=carl ?- f(X,Z1), p(Z1,Y). ?- X=X2, Z1=Y2, f(X2,Y2), p(Z1,Y). ?- X=adam,Z1=bill, p(Z1,Y). ?- f(bill,Y). ?- bill=X3, Y=Y3, f(X3,Y3). ?- bill=bill, Y=carl. f(bill,carl). f(adam,bill). gp(X1,Y1) :- p(X1,Z1),p(Z1,Y1). p(X2,Y2) :- f(X2,Y2). p(X3,Y3) :- f(X3,Y3).

23 And a Failed One... ?- gp(X,Y). ?- p(X,Z1), p(Z1,Y). ?- p(carl,Y).
X=bill ?- X=X1, Y=Y1, p(X1,Z1), p(Z1,Y1). ?- X=X2, Z1=Y2, f(X2,Y2), p(Z1,Y). ?- f(X,Z1), p(Z1,Y). ?- X=bill,Z1=carl, p(Z1,Y). ?- f(carl,Y). ?- carl=X3, Y=Y3, f(X3,Y3). ?- fail. FAILURE!!! p(X3,Y3) :- f(X3,Y3). f(bill,carl). gp(X1,Y1) :- p(X1,Z1),p(Z1,Y1). p(X2,Y2) :- f(X2,Y2).

24 SLD-Tree ?- gp(X,Y). ?- p(X,Z),p(Z,Y). ?- p(bill,Y). X=anne
X=adam ?- f(X,Z),p(Z,Y). ?- m(X,Z),p(Z,Y). ?- p(carl,Y). ?- f(bill,Y). ?- m(bill,Y). ?- f(bill,Y). ?- m(bill,Y). ?- f(carl,Y). ?- m(carl,Y). ?- fail. ?- fail. ?- true. Y=carl ?- fail. ?- true. Y=carl ?- fail.

25 Logic Programming SLD-resolution: Soundness:
if n… 21 is a computed answer, then P |= n… 21G Completeness: if P |= G, then there exists a computed answer s such that  = s for some  Example: p(X,Z)  q(X,Y), p(Y,Z) p(X,X) q(a,b)

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

27 Logic Programming Infinite SLD-tree:  p(X,b)  q(X,b) {X/b} success
 q(b,X)  q(X,b)

28 Logic Programming PROLOG (Alain Colmerauer 1972):
Unsafe cut  incomplete Example: A  B, C  A B  D, !, E D   B, C  D, !, E, C  !, E, C Negation as failure:  P if fails to prove P

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

30 BOAS FÉRIAS!


Carregar ppt "Estratégias de Resolução"

Apresentações semelhantes


Anúncios Google