112 Resolutionskalkül Mit dem Begriff Kalkül bezeichnet man eine Menge von syntaktischen Umformungsregeln, mit denen man semantische Eigenschaften der Eingabeformel herleiten kann. Für den Resolutionskalkül: Syntaktische Umformungsregeln: Resolution, Stopp bei Erreichen der leeren Klausel Semantische Eigenschaft der Eingabeformel: Unerfüllbarkeit Wünschenswerte Eigenschaften eines Kalküls: Korrektheit: Wenn die leere Klausel aus F abgeleitet werden kann, dann ist F unerfüllbar. Vollständigkeit: Wenn F unerfüllbar ist, dann ist die leere Klausel aus F ableitbar.
113 Resolutionsalgorithmus 1. Version: berechne Res (F) if Res (F) then return unerfüllbar else return erfüllbar 2. (praktische) Version: suche mit Hilfe von Heuristiken kurze Deduktion von (n ist die Anzahl der atomaren Formeln in F): for 1 i 4 n do choose K 1,K 2 F, Resolvente R von K 1 und K 2 if R = then return unerfüllbar else F := F {R} return erfüllbar
114 Resolutionsalgorithmus Bemerkungen: 1 Häufig existiert kurze Deduktion von, obwohl Res (F) sehr groß ist. Daher ist Resolution als Unerfüllbarkeitstest häufig effizient. Wenn keine Deduktion von existiert, so muß Schleife 4 n bzw. Res (F) mal durchlaufen werden, als Erfüllbarkeitstest ist Resolution also nicht sehr effizient. 2 auch als Unerfüllbarkeitstest ist Resolution nicht immer effizient: Haken hat 1985 für jedes n eine Menge von Klauseln F n angegeben mit: F n ist unerfüllbar. F n enthält n (n+1) viele atomare Teilformeln. F n besteht aus n3 +n 2 2 +n+1 vielen Klauseln. Jede Deduktion der leeren Klausel aus F n hat Länge mindestens c n für eine feste Konstante c > 1.
115 Anwendung 1 der Resolution: (Un-)Erfüllbarkeitstest geg. aussagenlogische Formel F Frage: Ist F erfüllbar? Methode: Wandle F in KNF in Mengendarstellung um und wende Resolutionsalgorithmus an.
116 Anwendung 2 der Resolution: Tautologietest geg. aussagenlogische Formel F Frage: Ist F Tautologie? Methode: Wandle F in KNF in Mengendarstellung um und wende Resolutionsalgorithmus an. An Stelle von unerfüllbar gib Tautologie, an Stelle von erfüllbar gib keine Tautologie aus.
117 Anwendung 3 der Resolution: Folgerungstest geg. aussagenlogische Formeln F 1,F 2,...,F n,f Frage: Gilt F 1,F 2,...,F n = F? Methode: Bilde F = F 1 F 2 F n F, wandle F in KNF in Mengendarstellung um und wende Resolutionsalgorithmus an. An Stelle von unerfüllbar gib F folgt aus F 1,F 2,...,F n, an Stelle von erfüllbar gib F folgt nicht aus F 1,F 2,...,F n aus.
118 Beweis einer Folgerung: Beispiel Wir wollen zeigen. (AK BK),(AK BK),(BK RL AK),RL = ( AK BK) Betrachte F = (AK BK) (AK BK) (BK RL AK) RL ( AK BK) Eine KNF von F ist (AK BK) ( AK BK) ( BK RL AK) RL (AK BK) In Mengendarstellung: {{AK,BK}, { AK,BK}, { BK, RL, AK}, {RL}, {AK, BK}}
119 Beispiel zur Resolution Eine mögliche Deduktion von aus {{AK,BK}, { AK,BK}, { BK, RL, AK}, {RL}, {AK, BK}} (1) sieht wie folgt aus: {AK,BK} gehört zu (1) (2) { AK,BK} gehört zu (1) (3) {BK} aus (2) und (3) (4) { BK, RL, AK} gehört zu (1) (5) {AK, BK} gehört zu (1) (6) { BK, RL} aus (5) und (6) (7) {RL} gehört zu (1) (8) { BK} aus (7) und (8) (9) aus (4) und (9) (10)
120 Bemerkungen zur Resolution Die Resolution ist als Unerfüllbarkeitstest für Formeln in KNF, als Tautologietest für Formeln in DNF, als Folgerungstest für Formeln in KNF i.a. sehr effizient (aber nicht immer: Haken 1985). Um allgemeine Formeln zu behandeln, müssen diese in KNF umgewandelt werden, was sie i.a. exponentiell vergrößert. Die Vorlesungsseite enthält einen Verweis auf ein Java-Applet zum Resolutionsalgorithmus.
121 Erfüllbarkeitstests Im folgenden: Ein sehr effizienter Erfüllbarkeitstest für eine spezielle Klasse von Formeln in KNF, sogenannte Hornformeln (vgl. Grundlagen und diskrete Strukturen ) Ein für Formeln in KNF im allgemeinen effizienter Unerfüllbarkeitstest (Resolution) Ein für beliebige Formeln im allgemeinen effizienter Erfüllbarkeitstest (Tableau) Ein (philosophisch) interessanter Erfüllbarkeitstest für beliebige Formeln (natürliches Schließen)
122 Tableaux (Idee) Nachteil des Resolutionskalküls: man muß zunächst KNF herstellen. Tableaux-Methoden testen beliebige Formeln auf Erfüllbarkeit. Sie sind etwas direkter, aber nicht unbedingt effizienter. Idee: Suche systematisch nach einer erfüllenden Belegung über wahre Teilformeln. hier nur für Formeln in NNF (die ja mit linearem Aufwand aus beliebiger Formel berechnet werden kann) Definition Ein Tableau ist ein endlicher Baum, dessen Knoten mit Formeln beschriftet sind. Ein Ast p in τ ist abgeschlossen, falls es atomare Formel A gibt, so daß A und A auf p vorkommen.
123 Tableaux und Entwicklung Definition Das Tableau τ wird zum Tableau τ entwickelt (τ τ ), falls τ einen nicht-abgeschlossenen Ast p enthält, so daß eine der folgenden Aussagen gilt: in p enthaltene Formeln in p nicht enthaltene Formeln (F G) F und G F (F G),F G (F G),G F (F G) F und G τ entsteht aus τ durch Verlängerung von p um G G F F G
124 Tableaux: Vollständigkeit (I) Lemma Sei τ τ ein Entwicklungsschritt und B eine Belegung. Wenn es einen Ast p in τ gibt mit B(F) = 1 für alle Formeln F auf p, dann hat auch τ einen solchen Ast p. Beweis: Wird die Entwicklung von τ zu τ an einem Ast p p gemacht, so ist p gewünchter Ast von τ. Werde also der Ast p weiter entwickelt unter Verwendung der Formel F G (bzw. F G). Dann gilt B(F) = B(G) = 1 (bzw. B(F) = 1 oder B(G) = 1). Die bzw. eine der Verlängerungen von p in τ ist gewünschter Ast p.
125 Tableaux: Vollständigkeit (II) Folgerung Sei τ Tableau mit F τ ( das aus F entwickelt werden kann ). Ist F erfüllbar, so hat τ einen nicht-abgeschlossenen Ast. Beweis: Es gilt F τ 1 τ 2 τ n = τ und es gibt eine Belegung B mit B(F) = 1. Nach dem Lemma hat jedes dieser Tableaux einen abgeschlossenen Ast p i, so daß B(G) = 1 für alle Formeln auf p i. Also ist p n ein nicht-abgeschlossener Ast in τ.
126 Tableaux: Korrektheit Definition Ein Tableau ist vollständig, wenn es nicht weiter entwickelt werden kann. Lemma Sei τ vollständiges Tableau, das aus F entwickelt werden kann. Ist F nicht erfüllbar, so ist jeder Ast in τ abgeschlossen. Beweis: Es gilt wieder F τ 1 τ 2 τ n = τ. Angenommen, τ hätte einen nicht-abgeschlossenen Ast p. Definiere eine Belegung B durch { 1 A kommt in p vor B(A) = 0 sonst. Sei F = F m,f m 1,F m 2,...,F 1 die Folge der Formeln auf dem Ast p. Man zeigt induktiv über die Größe der Formeln F i, daß B(F i ) = 1 gilt, insbesondere also B(F) = B(F m ) = 1, ein Widerspruch zur Annahme.
127 Tableauxverfahren τ := F while true do if alle Äste in τ abgeschlossen sind then stopp mit Ausgabe unerfüllbar if ein Ast nicht-abgeschlossen und nicht-entwickelbar then stopp mit Ausgabe erfüllbar berechne ein τ mit τ τ ; setze τ := τ endwhile
128 Tableauxverfahren: Beispiel 1 F H G ( F G) F H G ( F G) Alle Äste in τ sind abgeschlossen, also ist die Formel nicht erfüllbar. H G ( F G) G F G F G
129 Tableauxverfahren: Beispiel 2 (F G) (F G) F G F G F G Die zwei nichtabgeschlossenen und nichtentwickelbaren Äste führen beide zu der erfüllenden Belegungen B(F) = 1 und B(G) = 0 (denn beide enthalten F aber nicht G) F G
130 Vollständigkeit und Korrektheit des Tableauxverfahrens Satz Das Tableauxverfahren terminiert immer. Er gibt genau dann erfüllbar aus, wenn die Formel F erfüllbar ist. Beweis: Termination folgt aus zwei Beobachtungen: Die Knoten der berechneten Tableaux sind Teilformeln von F jede Teilformel von F kommt auf jedem Ast eines berechneten Tableaux höchstens einmal vor Ist F erfüllbar, so gibt der Algorithmus erfüllbar aus nach Folgerung auf Folie 125 Gibt der Algorithmus erfüllbar aus, so ist F erfüllbar nach Lemma auf Folie 126
131 Erfüllbarkeitstests Im folgenden: Ein sehr effizienter Erfüllbarkeitstest für eine spezielle Klasse von Formeln in KNF, sogenannte Hornformeln (vgl. Grundlagen und diskrete Strukturen ) Ein für Formeln in KNF im allgemeinen effizienter Unerfüllbarkeitstest (Resolution) Ein für beliebige Formeln im allgemeinen effizienter Erfüllbarkeitstest (Tableau) Ein (philosophisch) interessanter Erfüllbarkeitstest für beliebige Formeln (natürliches Schließen Sequenzenkalkül)
132 Sequenzenkalkül ein weiterer Kalkül, der rein syntaktisch die Folgerungen erzeugt Idee: Regeln der Form: Wenn ich weiß, daß G aus F bewiesen werden kann, so weiß ich auch, daß G aus F bewiesen werden kann. Schreibweise: {F 1,F 2,...,F n } G wird heißen Die Formel G kann aus den Formeln F 1,...,F n bewiesen werden. Regeln werden geschrieben als F 1 G 1 F 2 G 2 F G...F k G k Definition Eine Sequenz besteht aus einer endlichen Menge von Formeln F und einer Formel G.
Sequenzenkalkül Definition Die Sequenz (F,G) ist gültig (F G), wenn sie sich in endlich vielen Schritten durch die folgenden Regeln erzeugen läßt: F {G} G F G F G i F G 1 F G 2 F G 1 G 2 i F G 1 i F G 2 F G 1 G 1 i F F G F F G 2 F G 1 G 2 2 F G e F G 1 F G 2 F (G 1 G 2 ) dem F G 1 F (G 1 G 2 ) dem 1 F H G H G F G G MP F G 2 F (G 1 G 2 ) dem 2 F {F} G F F G i 133
Korrektheit Lemma Aus F G folgt F = G. Bemerkung Auf der linken Seite steht, daß man F G herleiten kann. Dies ist eine syntaktische Aussage. Auf der rechten Seite steht, daß jede Belegung B, die alle Formeln aus F erfüllt, auch G erfüllt. Dies ist eine semantische Aussage. 134
135 Korrektheit Beweis induktiv über die Länge einer Herleitung (= Anzahl der Regelanwendungen) von F G I.A. gilt G F, so folgt aus B = F sofort B = G, also F = G. I.V. Gelte F = G, falls die Gültigkeit der Sequenz F G sich in n Schritten zeigen läßt. I.S. Sei F G eine gültige Sequenz, deren Gültigkeit sich in n+1 Schritten zeigen läßt. Wir machen eine Fallunterscheidung danach, welche Regel als letztes angewandt wurde.
136 Korrektheit i 1 Wurde als letztes die Regel i 1 angewandt, so gilt G = G 1 G 2 und die Gültigkeit der Sequenz F G 1 kann in höchstens n Schritten gezeigt werden. Also gilt nach I.V. F = G 1. Sei nun B Belegung mit B = F. Dann gilt also B(G 1 ) = 1 und damit 1 = B(G 1 G 2 ) = B(G). Also haben wir F = G gezeigt. i Wurde als letztes die Regel i angewandt, so gilt G = G 1 G 2 und die Gültigkeit der Sequenzen F G 1 und F G 2 kann in höchstens n Schritten gezeigt werden. Also gilt nach I.V. F = G 1 und F = G 2. Sei nun B Belegung mit B = F. Dann gilt also B(G 1 ) = B(G 2 ) = 1 und damit 1 = B(G 1 G 2 ) = B(G). Also haben wir F = G gezeigt.
137 Korrektheit em Wurde als letztes die Regel dem angewandt, so gilt G = (G 1 G 2 ) und die Gültigkeit der Sequenzen F G 1 und F G 2 kann in höchstens n Schritten gezeigt werden. Also gilt nach I.V. F = G 1 und F = G 2. Sei nun B Belegung mit B = F. Dann gilt also B( G 1 ) = B( G 2 ) = 1 und damit 1 = B( G 1 G 2 ) = B( (G 1 G 2 )) = B(G) nach dem Fundamentalsatz. Also haben wir F = G gezeigt. i Wurde als letztes die Regel i angewandt, so gilt G = G 1 G 2 und die Gültigkeit der Sequenz F {G 1 } G 2 kann in höchstens n Schritten gezeigt werden. Also gilt nach I.V. F {G 1 } = G 2. Sei nun B Belegung mit B = F. Gilt B(G 1 ) = 0, so erhalten wir B( G 1 G 2 ) = 1. Andernfalls haben wir B = F {G 1 } und damit auch B(G 2 ) = 1, also B( G 1 G 2 ) = 1. Die restlichen Fälle können (und sollten von Ihnen beim Nacharbeiten) analog behandelt werden.