320 likes | 444 Views
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: C1={p(x), q(f(w)),a}, C2={y, q(k,z) }, C3={z}
E N D
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: • 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
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
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!
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
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
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) = ???
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) = {}
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
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
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
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
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
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)
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) vr(x,y,z))) R6 • Hp=(y1)(x)(z)(y2)(y) (p(y1)^ (q(y2) vr(x,y,z))) R7
Exercício de forma clausal – Skolem (cont.) • Hp=(y1)(x)(z)(y2)(y) (p(y1)^ (q(y2) vr(x,y,z))) • Hs=(y1)(x)(z)(p(y1)^ (q(f(y1,x,z)) vr(x,g(y1,x,z),z)) • Hc= {[p(y1)], [q(f(y1,x,z)),r(x,g(y1,x,z),z)]}
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
Exemplo de Prova por resolução • Toda pessoa é sábia ou tucana. • Zé não é tucano. Zé é sábio? • O que quero provar??
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)]}
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}
Conseqüência lógica na resolução • Dada uma fórmula H e • um conjunto de hipóteses b={H1,H2,...Hn}, • então H é conseqüência lógica de b por resolução • se existe uma prova por resolução de • (H1^H2^...^Hn) H
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 b={H1,H2,...Hn} por resolução, diz-se que: • b├ H ou • {H1,H2,...Hn}├ H
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?
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
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))
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))
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)]
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.{} !!!!! Exemplo 2 de Prova por resolução (cont.)
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???
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)))
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ê???
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!!