32
Lógica de Predicados Resolução

Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Embed Size (px)

Citation preview

Page 1: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Lógica de Predicados

Resolução

Page 2: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Cláusulas e literais complementares

Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos: C1={p(x),q(f(w)),a}, C2={y,q(k,z)},

C3={z}

Dois literais são complementares em lógica de predicados quando, UNIFICADOS, um é a negação do outro

Page 3: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Resolvente em L. Proposicional

Supondo 2 cláusulas C1={A1,..., An} e C2={B1, ..., Bn}, com literais complementares A, um conjunto de literais em C1, tal que -A, um conjunto de literais

complementares a A, estão em C2 Resolvente de C1 e C2: Res(C1,C2)=(C1-A)U(C2- -A) Res(C1,C2) pode ser {}

Resolvente vazio ou trivial

Page 4: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Em Lógica de 1ª. Ordem Resolução não é uma simples extensão

da Resolução da Lógica Proposicional O processo é mais longo e cuidadoso:

Transformar a(s) fórmula(s) para a forma normal Prenex

Skolemizá-la(s) Transformá-las para CNF Transformá-las para a forma clausal Unificá-las durante a resolução

Por outro lado, ao usar a unificação, a resolução torna-se bem mais rápida do que os métodos de Gilmore e Davis-Putnam!

Page 5: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Resolvente em LPO Supondo

2 cláusulas C1={A1,..., An} e C2={B1, ..., Bn}

Ai e Bj unificáveis O, o unificador mais geral de Ai e Bj AiO=BjO ou vice-versa

Resolvente de C1 e C2: Res(C1,C2)=(C1O-AiO)U(C2O-BjO)

Res(C1,C2) pode ser {} Resolvente vazio ou trivial

Page 6: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Do ponto de vista lógico C1O é uma instância de C1 e C2O de C2 C1O e C2O são conseqüências lógicas

de C1UC2 Por outro lado, AiO e BjO não poderão

ser satisfeitos simultaneamente então não estamos perdendo nada se os

retirarmos, pois C1O e C2O teriam de ser satisfeitas simultaneamente

Também o Res(C1,C2) é conseqüência lógica de C1UC2

Page 7: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Exemplo de resolvente C1=[p(f(x),y,x),q(a,y,w1)] C2=[p(z,g(z),w)] C3=[q(x,g(f(a)),c)] e C4=[q(a,g(f(w)),w1)] Os átomos p(f(x),y,x) e p(z,g(z),w) de C1 e C2

são unificáveis e complementares quando unificados

O1={zf(w),yg(f(w)),xw} Res(C1,C2) = (C1O1- p(f(x),y,x)O1) U (C2O2-

p(z,g(z),w)O1) Res(C1,C2) = {q(a,g(f(w)),w1)} que é uma

nova cláusula

Res(C3,C4) = ???

Page 8: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Exemplo de resolvente

C3=[q(x,g(f(a)),c)] e C4=[q(a,g(f(w)),w1)] O2={xa,wa,w1c} Res(C3,C4) = (C3O2-

q(x,g(f(a)),c)O2) U (C4O2- q(a,g(f(w)),w1)O2)

Res(C1,C2) = {}

Page 9: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Sistema com Resolução

Alfabeto da Lógica de Predicados Conjunto de cláusulas da Lógica de

Predicados A regra de resolução da Lógica de

Predicados

Page 10: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Regra de Resolução

Supondo 2 cláusulas C1={A1,..., An} e C2={B1, ..., Bn}, a Regra de Resolução aplicada a C1 e C2 é: Deduzir Res(C1,C2)

Para verificar satisfabilidade Empregar várias vezes até obter a

cláusula vazia Expansão por resolução

Page 11: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Expansão por resolução Dados os C1, C2 e C3 1. {p(f(x),y,x),q(a,y,w1)} 2. {p(z,g(z),w)} 3. {q(x,g(f(a)),c)} 4. {q(a,g(f(w)),w1)}

Res(1,2),O1={zf(w),yg(f(w)),xw} 5. {} Expansão fechada – contém a cláusula

vazia

Page 12: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Exercício de forma clausal

Achar a a forma clausal associada a: H=(x)p(x)^ (x)(z) ((x)q(x))

(y)(r(x,y,z)) Relembrando:

Prenex Skolem CNF Clausal

Page 13: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Exercício de forma clausal - Prenex H=(x)p(x)^ (x)(z) ((x)q(x)) (y)

(r(x,y,z)) Relembrando o algoritmo Prenex:

Leis de eliminação PQ e P Q

Leis da negação (H), ((z)(H)) e ((z)(H))

Leis de De Morgan Renomeação de variáveis Regras Prenex

Page 14: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Exercício de forma clausal – Prenex (cont.) H=(x)p(x)^ (x)(z) ((x)q(x))

(y)(r(x,y,z)) H=(x)p(x)^ (x)(z) ((x)q(x)) v

(y)(r(x,y,z)) (eliminação PQ) H=(x)p(x)^ (x)(z) ((x)q(x)) v

(y)(r(x,y,z)) (negação (z)) H=(y1)p(y1)^ (x)(z)

((y2)q(y2)) v (y)(r(x,y,z)) (Renomeação de variáveis)

Page 15: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Exercício de forma clausal – Prenex (cont.) H=(y1)p(y1)^ (x)(z)

((y2)q(y2)) v (y)(r(x,y,z)) H=(y1)(x)(z) (p(y1)^

((y2)q(y2) v (y) r(x,y,z))) Regra Prenex R1

H=(y1)(x)(z) (p(y1)^ (y2)(y) (q(y2) v r(x,y,z))) R6

Hp=(y1)(x)(z)(y2)(y) (p(y1)^ (q(y2) v r(x,y,z))) R7

Page 16: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Exercício de forma clausal – Skolem (cont.)

Hp=(y1)(x)(z)(y2)(y) (p(y1)^ (q(y2) v r(x,y,z)))

Hs=(y1)(x)(z) (p(y1)^ (q(f(y1,x,z)) v r(x,g(y1,x,z),z))

Hc= {[p(y1)], [q(f(y1,x,z)),r(x,g(y1,x,z),z)]}

Page 17: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Prova por resolução

Dadas uma fórmula H e Hc, a forma clausal associada a H

Uma Prova de H por resolução é uma expansão fechada sobre Hc

H é um teorema do sistema de resolução

Page 18: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Exemplo de Prova por resolução Toda pessoa é sábia ou tucana. Zé não é tucano. Zé é sábio?

O que quero provar??

Page 19: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Exemplo de Prova por resolução Toda pessoa é sábia ou tucana. Zé não é tucano. Zé é sábio? (x)(p(x)v q(x))^ p(a)q(a) Por refutação: ((x)(p(x)v q(x))^ p(a)q(a)) (((x)(p(x)v q(x))^ p(a)) v q(a)) (x)(p(x)v q(x))^ p(a)) v q(a)) (x)(p(x)v q(x))^ p(a)) ^ q(a)) {[p(x),q(x)], [p(a)], [q(a)]}

Page 20: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Exemplo de Prova por resolução (cont.)

Agora, é só fazer a expansão por resolução!

1. [p(x),q(x)] 2. [p(a)] 3. [q(a)] 4. [q(a)] Res(1,2), O1={xa} 5. {} Res(3,4), O2={xa}

Page 21: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Conseqüência lógica na resolução

Dada uma fórmula H e um conjunto de hipóteses

={H1,H2,...Hn}, então H é conseqüência lógica de

por resolução se existe uma prova por resolução

de (H1^H2^...^Hn) H

Page 22: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Notação de Conseqüência Lógica por Resolução

Dada uma fórmula H, se H é conseqüência lógica de um conjunto de hipóteses ={H1,H2,...Hn} por resolução, diz-se que: ├ H ou {H1,H2,...Hn}├ H

Page 23: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Exemplo 2 de Prova por resolução

Os oficiais da alfândega revistam quem entra no país e não é VIP.

Alguns traficantes entraram no país e foram revistados por outros traficantes.

Nenhum traficante é VIP. Alguns oficiais são traficantes?

Page 24: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Exemplo 2 de Prova por resolução (cont.)

Analogamente, e(x) = x entrou no país o(x) = x é oficial t(x) = x é traficante v(x) = x é VIP r(x,y) = x revistou y

Page 25: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Exemplo 2 de Prova por resolução (cont.) Os oficiais da alfândega revistam quem

entra no país e não é VIP. (x)(e(x)^ v(x)(y)(r(x,y)^o(y)))

Alguns traficantes entraram no país e foram revistados por outros traficantes. (x)(e(x)^ t(x) ^ (y)(r(x,y)t(y)))

Nenhum traficante é VIP. (x)(t(x) v(x))

Alguns oficiais são traficantes? (x)(o(x) ^ t(x))

Page 26: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Exemplo 2 de Prova por resolução (cont.)

Separadamente tratando as cláusulas (x)(e(x)^ v(x)(y)(r(x,y)^o(y))) =(x) (e(x)^ v(x)) v (y)(r(x,y)^o(y))) =(x) e(x) v v(x) v (r(x,f(x))^o(f(x))), distribuindo: =(x) (e(x) v v(x) v r(x,f(x)) ^ (e(x) v v(x) o(f(x))

(x)(e(x)^ t(x) ^ (y)(r(x,y)t(y))) = (x) (e(x)^ t(x) ^ (y)( r(x,y) v t(y))) = (y) (e(a)^ t(a) ^ (r(a,y) v t(y)))

(x)(t(x) v(x)) = (x)(t(x) v v(x)) Negando o conseqüente

(x)(o(x) ^ t(x)) = (x)(o(x) ^ t(x)) = (x)(o(x) v t(x))

Page 27: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Exemplo 2 de Prova por resolução (cont.)

(x)(e(x)v v(x)v r(x,f(x))^(e(x)v v(x)v o(f(x))

[e(x),v(x),r(x,f(x)],[e(x),v(x),o(f(x))]

(y)(e(a)^ t(a) ^ (r(a,y) v t(y))) [e(a)],[t(a)],[r(a,y),t(y)]

(x)(t(x) v v(x)) = [t(x),v(x)]

Conseqüente:(x)(o(x)vt(x)) = [o(x),t(x)]

Page 28: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Exemplo 2 de Prova por resolução (cont.)

1.[e(x),v(x),r(x,f(x))]

2.[e(x),v(x),o(f(x))] 3.[e(a)] 4.[t(a)] 5.[r(a,y),t(y)] 6.[t(x),v(x)] 7.[o(x), t(x)]

8.[v(a)] Res(4,6),O1={xa} 9.[v(a),o(f(a))] Res(2,3),O1 10.[o(f(a))] Res(8,9) 11.[v(a),r(a,f(a))] Res(1,3),O1 12.[r(a,f(a))] Res(8,11) 13.[t(f(a))] Res(5,12){yf(a)} 14.[o(f(a))] Res(7,13)

{xf(a)} 15.{} !!!!!

Page 29: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Exercícios

Tonha gosta de quem não se valoriza.

Não existe ninguém que se valorize e que Tonha goste?

Aonde a vaca vai, o boi também vai. O boi está na praia. E a vaca???

Foi pro brejo???

Page 30: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Tonha

v(x) = x se valoriza g(x,y) = x gosta de y a = Tonha (Antônia) (x)(v(x)^g(a,x))(y)(v(y)^g(a,y)) (x)(v(x)^g(a,x))(y)(v(y)^g(a,y)) ((x)(v(x)^g(a,x)) v (y)(v(y)^g(a,y))) (x)(v(x)^g(a,x)) ^ (y)(v(y)^g(a,y)))

Page 31: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Tonha 2 – A vingança

(x)(v(x)^g(a,x)) ^ (y)(v(y)^g(a,y))) Cuidado: nesses casos é interessante

que a Prenex não venha dessa forma, e sim de

(y)(v(y)^g(a,y))) ^ (x)(v(x)^g(a,x)) Por quê???

Page 32: Lógica de Predicados Resolução. Cláusulas e literais complementares Cláusula em lógica de predicados é uma disjunção de literais Usando a notação de conjuntos:

Cuidado!!

Para evitar a criação de funções de Skolem desnecessariamente

Essas funções podem fazer com que a expansão tenha de ser aberta

E pode haver expansões abertas sobre tautologias!!