Logik und Diskrete Strukturen (Sommer 2017) Prof. Dr. Ulrich Hertrampf 1.5 Resolution Ziel: Wir wollen (Un-) Erfüllbarkeit einer gegebenen Formel testen. Wie? Mit syntaktischen Umformungen! (Sog. Kalkül) Besonders wichtige Eigenschaften eines Kalküls: Korrektheit: Vollständigkeit: Nur richtige Aussagen machen! Alle richtigen Aussagen werden gemacht! Verwandte Fragestellungen, auch mit Resolution zu bearbeiten: • Ist F eine Tautologie? Prüfe, ob ¬F erfüllbar ist. Achtung: F in KNF ⇒ ¬F zunächst nicht in KNF! • Gilt (F1 ∧ · · · ∧ Fk ) → G ? Prüfe Unerfüllbarkeit von F1 ∧ · · · ∧ Fk ∧ ¬G • Viele andere ähnliche Probleme Einheit 12 – Folie 12.1 – 09.05.2017 Logik und Diskrete Strukturen (Sommer 2017) Prof. Dr. Ulrich Hertrampf Klauseln und Mengenschreibweise Wir gehen bei der Resolution generell davon aus, dass die Eingabeformel in KNF gegeben ist, also als Konjunktion von Disjunktionen von Literalen. Zur Erinnerung: Die Disjunktionen von Literalen nennen wir auch Klauseln Im Resolutionsverfahren werden Klauseln als Mengen von Literalen und Formeln als Mengen von Klauseln dargestellt. Achtung: Es gibt viele verschiedene Formeln mit derselben Mengendarstellung! Beispiel: (A ∨ B ∨ ¬C ) ∧ (B ∨ C ∨ C ) ∧ (¬C ∨ D) ∧ (A ∨ ¬C ) wird zu: {{A, B, ¬C }, {B, C }, {¬C , D}, {A, ¬C }} Einheit 12 – Folie 12.2 – 09.05.2017 Logik und Diskrete Strukturen (Sommer 2017) Prof. Dr. Ulrich Hertrampf Resolventen Es seien K1 und K2 zwei beliebige Klauseln in Mengendarstellung. αi seien die Literale von K1 und βj die von K2 , also K1 = {α1 , α2 , . . . , αr } K2 = {β1 , β2 , . . . , βs } wobei r = |K1 | und s = |K2 | Welche Bedingung muss erfüllt sein, damit K1 und K2 miteinander resolviert werden können? Es muss ein i ∈ {1, . . . , r } und ein j ∈ {1, . . . , s} geben, so dass entweder αi = ¬βj oder ¬αi = βj gilt. Wie sieht dann der Resolvent aus? R = {α1 , . . . , αi−1 , αi+1 , . . . , αr , β1 , . . . , βj−1 , βj+1 , . . . , βs } Es sei o.B.d.A. i = j = 1, dann erhalten wir einfacher: R = {α2 , α3 . . . , αr , β2 , β3 , . . . , βs } Einheit 12 – Folie 12.3 – 09.05.2017 Logik und Diskrete Strukturen (Sommer 2017) Prof. Dr. Ulrich Hertrampf Der Resolutionsschritt Wir stellen den Resolutionsschritt graphisch so dar: K1 K2 R Ein Beispiel: {¬A, B, C } {¬A, ¬C , D, E , F } {¬A, B, D, E , F } Einheit 12 – Folie 12.4 – 09.05.2017 Logik und Diskrete Strukturen (Sommer 2017) Prof. Dr. Ulrich Hertrampf Die unerfüllbare Klausel Unser Ziel wird am Ende sein, zwei Klauseln der Form {A} und {¬A} zu erhalten, (für beliebige atomare Formel A) die man dann zur leeren Klausel { } resolvieren kann. Bezeichnung: steht für die leere Klausel. Man beachte, dass unter jeder Belegung unerfüllt ist! Frage: Warum ist das so? Antwort: Weil eine Klausel nur dann erfüllt ist, wenn sie ein Literal enthält, das unter der gegebenen Belegung den Wert 1 hat. Also ist eine Klauselmenge, die enthält, immer unerfüllbar! Frage: Warum ist das so? Antwort: Weil eine Klauselmenge als Formel einer Konjunktion ihrer Klauseln entspricht und deshalb nur erfüllt ist, wenn alle Klauseln darin erfüllt sind. Einheit 12 – Folie 12.5 – 09.05.2017 Logik und Diskrete Strukturen (Sommer 2017) Prof. Dr. Ulrich Hertrampf Übung 28 Berechne alle Resolventen, die man aus der folgenden Formel erhalten kann: {{A, ¬B, E }, {A, B, C }, {¬A, ¬D, E }, {A, ¬C }} 1. Durchgang: {A, E , C }, {¬B, E , ¬D}, {B, C , ¬D, E }, {A, B}, {¬D, E , ¬C } 2. Durchgang: {A, E , C , ¬D}, {A, E }, {A, B, ¬D, E }, {¬D, E , C }, {¬D, E , B} {A, E , ¬D} 3. Durchgang: selbst weitermachen... Einheit 12 – Folie 12.6 – 09.05.2017