160 likes | 277 Views
Lógica para Computação. Prof. Celso Antônio Alves Kaestner, Dr. Eng. kaestner@dainf.cefetpr.br. Algoritmo de Wang. É u m algoritmo que permite verificar a validade de um seqüente do tipo B 1 , B 2 … B n |- A 1 , A 2 … A m Equivale ao teorema
E N D
Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. kaestner@dainf.cefetpr.br
Algoritmo de Wang • É um algoritmo que permite verificar a validade de um seqüente do tipo B1, B2 … Bn|-A1, A2 … Am • Equivale ao teorema (B1 B2 … Bn) (A1 A2… Am ) • O seqüente é representado por (B1, B2 … Bn) |-w(A1, A2 … Am) Prof. Celso A A Kaestner
Algoritmo de Wang São aplicadas sucessivamente as regras: • (…,X,…)|-w(…) torna-se (…)|-w(…,X,…) e (…)|-w(…,X,…) torna-se (…,X,…)|-w(…); • (…,XY,…)|-w(…) torna-se (…,X,Y,…)|-w(…) e (…)|-w(…,XY,…) torna-se (…)|-w(…,X,Y,…); • (…,XY,…)|-w(…) torna-se (…,X,…)|-w(…) e (…,Y,…)|-w(…); • (…) |-w(…,XY,…) torna-se (…)|-w(…,X,…) e (…)|-w(…,Y,…); Prof. Celso A A Kaestner
Algoritmo de Wang • (…)|-w(…,XY,…) torna-se (…)|-w(…,XY,…) e (…,XY,…) |-w(…) torna-se (… XY,…) |-w (…); • (…,XY,…)|-w(…) torna-se (…,(XY)(YX),…)|-w(…) e (…)|-w(…,XY,…) torna-se (…)|-w(…,(XY)(YX),…); • (…,X,…)|-w (…,X,…) torna-se T (true). Prof. Celso A A Kaestner
Algoritmo de Wang • (p q), (q r), r |-w p • (p q),(q r), r |-w p (R5 x 2) • (p q),(q r) |-w p,r (R1) • p, (q r) |-w p, r q,(q r) |-w p,r (R3) • X q, q |-w p,r q, r |-w p,r (R3) • (R7) q |-w p,r, q X (R3) • X (R7) (R7) Prof. Celso A A Kaestner
Algoritmo de Wang • Prática do uso do algoritmo de Wang utilizando o software em Lisp. Prof. Celso A A Kaestner
Formas Normais • Forma normal conjuntiva (fnc): • Literal: variável proposicional ou sua negação; • Cláusula: disjunção de literais; • Uma fbf está na fnc se é uma conjunção de cláusulas; • Dada uma fbf A sempre é possível se encontrar outra fbf B na fnc tal que A ≡ B. Prof. Celso A A Kaestner
Formas Normais • Obtenção da fnc: 1. Redefinir ↔ em função de →: (A ↔B) ≡ (A →B) (B →A) 2. Redefinir → em função de e : (A → B) ≡ ( A B) 3. Colocar os “para dentro”, de forma a obter os literais, usando as leis de De Morgan: (AB ) (AB ) e (AB ) (AB) Prof. Celso A AKaestner
Formas Normais 4. Redistribuir os conectivos e usando a distributividade, associatividade e comutatividade destes conectivos: A (B C) (A B)(A C), A (B C) (A B)(A C), A (B C) (A B) C, A (B C) (A B) C, A B B A, A B B A. Prof. Celso A AKaestner
Formas Normais Exemplo: p → (q (r p)) p (q (r p)) p (q ( r p)) p (q r p) (p q ) (p r) ( p p) (p q ) (p r) p Prof. Celso A AKaestner
Formas Normais • Forma normal disjuntiva (fnd): • Similar e dual à fnc; • Disjunção de conjunções de literais; • Obtenção similar à fnc, mudando apenas no último passo quando da ordenação dos conectivos e . Prof. Celso A AKaestner
Resolução • Cláusulas de Horn: • Contém no máximo um literal positivo; • Podem ser de três tipos: • Regras: p1p2...pnq, equivalendo a (p1p2...pn) →q; • Fatos: cláusulas unitárias com um único literal positivo: p, q ... • Restrições: só contém literais negativos: p1p2...pn . Prof. Celso A AKaestner
Resolução • É uma regra de inferência correta; • Obtém uma cláusula resolvente a partir de duas cláusulas dadas, desde que estas tenham literais complementares: A p B p A B Prof. Celso A AKaestner
Resolução e refutação • O método dedutivo que usa a regra de inferência resolução emprega refutação; • Refutação: para provar |-A mostra-se que { A } |- (contradição). Prof. Celso A AKaestner
Resolução e refutação Exemplo: (p s r), (s r) |- p r (p s r),(sr), (p r) |- (?) 1:(p s r), 2:(sr), 3:p , 4:r (de 1 e 3) 2:(sr), 4:r , 5:(s r) (de 4 e 5) 2:(sr), 4:r , 6:s (de 2 e 6) 4:r , 7: r (de 7 e 4) QED. Prof. Celso A AKaestner
Resolução e refutação • A linguagem PROLOG se fundamenta no princípio de resolução e em refutação, e será estudada mais adiante. • Prática do uso do algoritmo de resolução / refutação utilizando o software em Lisp. Prof. Celso A AKaestner