Rezoluce ve výrokové logice Jiří Velebil: AD0B01LGR 2015 Rezoluce ve VL 1/13
Základní myšlenky 1 M = ϕ iff X = M { ϕ} nesplnitelná. 2 X nesplnitelná iff X = ff. 3 Hledání kritických důsledků X syntakticky. K tomu je zapotřebí speciální tvar X. 4 Speciální tvar X je klausální tvar X. Vše budeme dělat pro konečnou množinu M. Pak i X je konečná. Tudíž: (syntaktický) algoritmus. Jiří Velebil: AD0B01LGR 2015 Rezoluce ve VL 2/13
CNF Připomenutí (viz cvičení) At ϕ je formule VL. Řekneme, že ψ je CNF pro ϕ, když je 1 ϕ = ψ 2 ψ je bud tt nebo konečná konjunkce ψ 1... ψ n 3 Každému ψ i říkáme klausule (pro CNF) a má tvar bud ff nebo l 1... l ki. 4 Každému l j říkáme literál: je to bud atom nebo negace atomu. CNF v BNF l ::= a a ψ ::= ff (ψ l) ϕ ::= tt (ϕ ψ) Jiří Velebil: AD0B01LGR 2015 Rezoluce ve VL 3/13
Jak najít CNF? 1 Karnaughova mapa (cvičení). 2 Syntakticky: přepisovací pravidla (cvičení). 3 A jiné metody: například algoritmus Quine McCluskey (nebudeme uvádět), je ale hodně podobný metodě Karnaughových map. Viz http://www.ee.surrey.ac.uk/projects/labview/minimisation/tabular.h Jiří Velebil: AD0B01LGR 2015 Rezoluce ve VL 4/13
Klausální tvar At X je množina formuĺı VL. Řekneme, že kt(x ) je klausální tvar množiny X, pokud platí: α kt(x ) iff α je klausule pro CNF nějaké formule z X. Příklad: Klausální tvar není určen jednoznačně! At a, b, c At. X = {a (b c), (b c) (b c)}. CNF jednotlivých formuĺı: a b c a (b c) (b c). Příslušné kt(x ) je množina { a b c, b c, b c}. Jiná možnost: druhou formuli v množině X upravit na synonymum b. Příslušné kt(x ) je množina { a b c, b}. Jiří Velebil: AD0B01LGR 2015 Rezoluce ve VL 5/13
Definice Množiny A a B formuĺı VL jsou ekvisplnitelné, když A a B jsou bud obě současně splnitelné nebo jsou A a B obě současně nesplnitelné. Pozorování X a kt(x ) jsou ekvisplnitelné. Důsledek Stačí se zaměřit na kritické důsledky kt(x ). Jiří Velebil: AD0B01LGR 2015 Rezoluce ve VL 6/13
Definice Dvě klausule α 1 a α 2 mají komplementární výskyt atomické formule a, když bud α 1 obsahuje literál a a α 2 obsahuje literál a nebo naopak. Definice At α 1 a α 2 jsou dvě klausule s komplementárním výskytem atomické formule a. Jako res a (α 1, α 2 ) (čteme: resolventa klausuĺı α 1, α 2 podle a) označíme klausuli, která obsahuje všechny literály obsažené v α 1 a α 2 kromě literálů a a a. Jiří Velebil: AD0B01LGR 2015 Rezoluce ve VL 7/13
Příklad At a, b, c At. 1 res b (a b c, a b c) = a c 2 res b (a b c, a b c) = a c c 3 res c (a b c, a b c) = a b b 4 res a (a, a) = ff 5 res a (a, a b) neexistuje Jiří Velebil: AD0B01LGR 2015 Rezoluce ve VL 8/13
Věta At α 1 a α 2 jsou dvě klausule s komplementárním výskytem atomické formule a. Potom jsou množiny {α 1, α 2 } a {α 1, α 2, res a (α 1, α 2 )} ekvisplnitelné. a a V mých skriptech (Tvrzení 4.1.9, str. 54) je chyba, opravte si ji. Důsledek At α 1 a α 2 jsou dvě klausule s komplementárním výskytem atomické formule a. Potom platí {α 1, α 2 } = res a (α 1, α 2 ). Jiří Velebil: AD0B01LGR 2015 Rezoluce ve VL 9/13
Definice At X je konečná množina klausuĺı pro CNF. Posloupnost Res 0 (X ), Res 1 (X ), Res 2 (X ), Res 3 (X ),... definujeme takto: Res 0 (X ) = X Res n+1 (X ) = Res n (X ) {α α je resolventa nějaké dvojice z Res n (X )} Pozorování Ekvisplnitelnost je invariantem a tvorba posloupnosti množin se zastaví po konečně krocích. Jiří Velebil: AD0B01LGR 2015 Rezoluce ve VL 10/13
Důsledek: základní resoluční algoritmus 1 Rozhodněte, zda M = ϕ (M konečná). 2 Utvořte X = M { ϕ}. 3 At X = kt(x ). Potom X a X jsou ekvisplnitelné. 4 Existuje n 0 tak, že platí Res n0 +1(X ) = Res n0 (X ). Dále platí: 1 Množiny X a Res n0 (X ) jsou ekvisplnitelné. 2 Množina X není splnitelná právě tehdy, když platí ff Res n0 (X ). 5 M = ϕ platí iff X není splnitelná. Jiří Velebil: AD0B01LGR 2015 Rezoluce ve VL 11/13
Pozor! Na přednášce bude zmíněna i mírná varianta klasického resolučního algoritmu, kterou v tomto textu nenajdete. Tuto variantu (resoluční tabulku) naleznete ve skriptu M. Demlová a B. Ponděĺıček, Matematická logika, FEL ČVUT, Praha 1997 Resoluční tabulka však není pravdivostní tabulka! Tvorba resoluční tabulky je opět syntaktický algoritmus. Jiří Velebil: AD0B01LGR 2015 Rezoluce ve VL 12/13
Příklady Rozhodněte o splnitelnosti tvorbou resoluční tabulky: 1 {x y z, x, x y z, x y, z t v, t w}, kde x, y, z, t, v, w At. 2 {a d, b c, b d, b e, a c d, a d}, kde a, b, c, d, e At. Jiří Velebil: AD0B01LGR 2015 Rezoluce ve VL 13/13