logik fur informatiker¨ - math webmailcsacarea/wordpress/wp-content/... · 2017. 11. 16. ·...

52
1/42 Logik f ¨ ur Informatiker Vorlesung 6: SAT-Algorithmen und Hornformeln Babes ¸-Bolyai Universit¨ at, Department f ¨ ur Informatik, Cluj-Napoca [email protected] 9. November 2017

Upload: others

Post on 23-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

  • 1/42

    Logik für Informatiker

    Vorlesung 6: SAT-Algorithmen und Hornformeln

    Babeş-Bolyai Universität, Department für Informatik, [email protected]

    9. November 2017

  • 2/42

    WIEDERHOLUNG: DPLL-ALGORITHMUS

    � If φ is empty, return true(embrace truth)

    � If there is an empty clause in φ, return false(reject falsity)

    � Bemerkung: Eine leere Klausel ist immerfalsch, d.h. falls wir eine leere Klauselin der Aussage haben, muss die ganzeAussage falsch sein.

    � If there is a unit clause U in φ, return DPLL(φ(U))(accept the inevitable)

    � Bemerkung: Einheitsklauseln besitzen nurein Literal! Dieses Literal wird automatisch belegt mitwahr oder falsch, die Aussage wird vereinfacht und DPLLwird wieder aufgerufen für die vereinfachte Aussage.

  • 2/42

    WIEDERHOLUNG: DPLL-ALGORITHMUS

    � If φ is empty, return true(embrace truth)

    � If there is an empty clause in φ, return false(reject falsity)

    � Bemerkung: Eine leere Klausel ist immerfalsch, d.h. falls wir eine leere Klauselin der Aussage haben, muss die ganzeAussage falsch sein.

    � If there is a unit clause U in φ, return DPLL(φ(U))(accept the inevitable)

    � Bemerkung: Einheitsklauseln besitzen nurein Literal! Dieses Literal wird automatisch belegt mitwahr oder falsch, die Aussage wird vereinfacht und DPLLwird wieder aufgerufen für die vereinfachte Aussage.

  • 2/42

    WIEDERHOLUNG: DPLL-ALGORITHMUS

    � If φ is empty, return true(embrace truth)

    � If there is an empty clause in φ, return false(reject falsity)

    � Bemerkung: Eine leere Klausel ist immerfalsch, d.h. falls wir eine leere Klauselin der Aussage haben, muss die ganzeAussage falsch sein.

    � If there is a unit clause U in φ, return DPLL(φ(U))(accept the inevitable)

    � Bemerkung: Einheitsklauseln besitzen nurein Literal! Dieses Literal wird automatisch belegt mitwahr oder falsch, die Aussage wird vereinfacht und DPLLwird wieder aufgerufen für die vereinfachte Aussage.

  • 3/42

    DPLL ALGORITHMUS

    � If there is a pure literal U in φ, return DPLL(φ(U))(go with the flow)

    � Bemerkung: Reine Literale kommenausschließlich positiv oder negativ in φvor. Ein reines Literal wird mit wahr oder falsch belegt,die Formel wird vereinfacht und DPLL wird erneutaufgerufen (Rekursiver Aufruf!)

    � For some variable V(take a guess)

    � Bemerkung: Falls keine der vorherigenBedingungen erfüllt wird, wählen wirzufällig irgendeine Variable.

  • 3/42

    DPLL ALGORITHMUS

    � If there is a pure literal U in φ, return DPLL(φ(U))(go with the flow)

    � Bemerkung: Reine Literale kommenausschließlich positiv oder negativ in φvor. Ein reines Literal wird mit wahr oder falsch belegt,die Formel wird vereinfacht und DPLL wird erneutaufgerufen (Rekursiver Aufruf!)

    � For some variable V(take a guess)

    � Bemerkung: Falls keine der vorherigenBedingungen erfüllt wird, wählen wirzufällig irgendeine Variable.

  • 4/42

    DPLL ALGORITHMUS

    � If DPLL(φ(V)) then return true� Bemerkung: Belege V mit wahr. Vereinfache und

    wende erneut DPLL an. Falls das Ergebnis wahr ist, dannist auch die ursprüngliche Aussage wahr.

    � Else return DPLL(φ(¬V)).� Bemerkung: Falls nicht, dann belege V mit

    falsch. Vereinfache und wende erneut DPLL rekursiv an.

  • 4/42

    DPLL ALGORITHMUS

    � If DPLL(φ(V)) then return true� Bemerkung: Belege V mit wahr. Vereinfache und

    wende erneut DPLL an. Falls das Ergebnis wahr ist, dannist auch die ursprüngliche Aussage wahr.

    � Else return DPLL(φ(¬V)).� Bemerkung: Falls nicht, dann belege V mit

    falsch. Vereinfache und wende erneut DPLL rekursiv an.

  • 5/42

    SYSTEMATISCHE SUCHE: DPLL

    1 (embrace truth)2 (reject falsity)3 (accept the inevitable)4 (go with the flow)5 (take a guess)

    MOMS Heuristik

  • 6/42

    DPLL ALGORITHMUS REVISITED� Der DPLL-Algorithmus

    (Davis/Putnam/Logemann/Loveland) entsprichtBacktracking mit Inferenz.

    � rekursiver Aufruf DPLL(∆, I) für Klauselmenge ∆ undpartielle Belegung I

    � Ergebnis ist erfüllende Belegung, die I erweitert;unsatisfiable, wenn keine solche Belegung existiert

    � oberster Aufruf als DPLL(∆, ∅)

    Inferenz in DPLL:� simplify: nachdem der Variablen v der Wert d zugewiesen

    wird, werden alle Klauseln vereinfacht, die über vsprechen

    � Unit Propagation: Variablen, die in Klauseln ohne weitereVariablen (Einheitsklauseln) auftreten, werden sofortbelegt

  • 7/42

    DPLL ALGORITHMUS REVISITEDVERIFIKATION

  • 8/42

    DPLL ALGORITHMUS REVISITEDVERIFIKATION

  • 9/42

    DPLL ALGORITHMUS REVISITEDVERIFIKATION

  • 10/42

    DIE SUCHE NACH DEM KUCHENDIEBEIN LOGIK-KRIMI

  • 11/42

    DIE SUCHE NACH DEM KUCHENDIEB

    � Omi Leckerschmatz backt am Sonntag einen Kuchen.Nachdem der Kuchen fertig ist, wird er zum Ausruhen aufdie Fensterbank gestellt.Die drei Bengel Hatzmatz, Schnappmäulchen undMampf-Schlingel spielen im Hof.Als Omi vom Gottesdienst zurückkommt bemerkt sie,dass der Kuchen geklaut worden ist.

    � Die drei Verdächtige sind natürlich unsere drei Bengel.� Genau einer von ihnen ist der Dieb.� Wer ist der Dieb falls wir folgendes wissen:

    � Unschuldige sagen immer die Wahrheit.� Schnappmäulchen: Hatzmatz ist unschuldig.� Hatzmatz: Mampf-Schlingel ist unschuldig.

  • 11/42

    DIE SUCHE NACH DEM KUCHENDIEB

    � Omi Leckerschmatz backt am Sonntag einen Kuchen.Nachdem der Kuchen fertig ist, wird er zum Ausruhen aufdie Fensterbank gestellt.Die drei Bengel Hatzmatz, Schnappmäulchen undMampf-Schlingel spielen im Hof.Als Omi vom Gottesdienst zurückkommt bemerkt sie,dass der Kuchen geklaut worden ist.

    � Die drei Verdächtige sind natürlich unsere drei Bengel.

    � Genau einer von ihnen ist der Dieb.� Wer ist der Dieb falls wir folgendes wissen:

    � Unschuldige sagen immer die Wahrheit.� Schnappmäulchen: Hatzmatz ist unschuldig.� Hatzmatz: Mampf-Schlingel ist unschuldig.

  • 11/42

    DIE SUCHE NACH DEM KUCHENDIEB

    � Omi Leckerschmatz backt am Sonntag einen Kuchen.Nachdem der Kuchen fertig ist, wird er zum Ausruhen aufdie Fensterbank gestellt.Die drei Bengel Hatzmatz, Schnappmäulchen undMampf-Schlingel spielen im Hof.Als Omi vom Gottesdienst zurückkommt bemerkt sie,dass der Kuchen geklaut worden ist.

    � Die drei Verdächtige sind natürlich unsere drei Bengel.� Genau einer von ihnen ist der Dieb.

    � Wer ist der Dieb falls wir folgendes wissen:� Unschuldige sagen immer die Wahrheit.� Schnappmäulchen: Hatzmatz ist unschuldig.� Hatzmatz: Mampf-Schlingel ist unschuldig.

  • 11/42

    DIE SUCHE NACH DEM KUCHENDIEB

    � Omi Leckerschmatz backt am Sonntag einen Kuchen.Nachdem der Kuchen fertig ist, wird er zum Ausruhen aufdie Fensterbank gestellt.Die drei Bengel Hatzmatz, Schnappmäulchen undMampf-Schlingel spielen im Hof.Als Omi vom Gottesdienst zurückkommt bemerkt sie,dass der Kuchen geklaut worden ist.

    � Die drei Verdächtige sind natürlich unsere drei Bengel.� Genau einer von ihnen ist der Dieb.� Wer ist der Dieb falls wir folgendes wissen:

    � Unschuldige sagen immer die Wahrheit.� Schnappmäulchen: Hatzmatz ist unschuldig.� Hatzmatz: Mampf-Schlingel ist unschuldig.

  • 12/42

    DIE SUCHE NACH DEM KUCHENDIEBMODELLIERUNG

    � Bezeichne Hatzmatz, Schnappmäulchen undMampf-Schlingel mit H,S,M. Die Variablen H,S,M stehendann für ist schuldig.

    � (H ∨ S ∨ M) ∧ (H → ¬(S ∨ M)) ∧ (S → ¬(H ∨ M)) ∧ (M →¬(H ∨ S)) (Genau einer von ihnen ist der Dieb.)

    � ¬S → ¬H (Schnappmäulchen: Hatzmatz ist unschuldig.)� ¬H → ¬M (Hatzmatz: Mampf-Schlingel ist unschuldig.)

  • 13/42

    DIE SUCHE NACH DEM KUCHENDIEBDPLL ANWENDEN

    Wissen: Klauselmenge dazu:H ∨ S ∨ M {H,S,M}H → ¬(S ∨ M) {¬H,¬S}S → ¬(H ∨ M) {¬H,¬M}M → ¬(H ∨ S) {¬S,¬M}¬S → ¬H {S,¬H}¬H → ¬M {H,¬M}

  • 14/42

    DIE SUCHE NACH DEM KUCHENDIEBDPLL ANWENDEN

  • 15/42

    DIE SUCHE NACH DEM KUCHENDIEBDPLL ANWENDEN

  • 16/42

    DPLL MODELL GENERIEREN

    1 Isolierte Literale werden als wahr angenommen.2 Literale in 1-Klauseln werden ebenfalls als wahr

    angenommen.3 Dadurch nicht belegte Variablen können für das

    vollständige Modell beliebig belegt werden

  • 17/42

    KOMPLEXITÄT

    Im Worst Case:� Exponentielle Laufzeit� Exponentiell in: Anzahl der verschiedenen Variablen

    Besser geht es vermutlich nicht, da SAT NP-vollständig

    https://de.wikipedia.org/wiki/Laufzeit_(Informatik)

  • 18/42

    DPLL ZUM PROBLEMLÖSEN

    � Idee: Kodiere Problem als Aussagenlogische Formel� Sodass: Modell löst Problem� Beachte: Erst Umformung in KNF (geht schneller mit

    KNF), dann DPLL� Oft: Kodierung direkt als KNF� Im Folgenden: Wir betrachten einige

    Beispielanwendungen.

  • 19/42

    LOGELEIDPLL ANWENDEN

    Abianer sagen die Wahrheit, Bebianer lügen1 Knasi: Knisi ist Abianer. knasi ↔ knisi2 Knesi: Wenn Knösi Bebianer, dann ist auch Knusi ein

    Abianer. knesi ↔ (¬knoesi → knusi)3 Knisi: Wenn Knusi Abianer, dann ist Knesi Bebianer.

    knisi ↔ (knusi → ¬knesi)4 Knosi: Knesi und Knüsi sind beide Abianer.

    knosi ↔ (knesi ∧ knuesi)5 Knusi: Wenn Knüsi Abianer ist, dann ist auch Knisi

    Abianer. knusi ↔ (knuesi → knisi)6 Knösi: Entweder ist Knasi oder Knisi Abianer.

    knusi ↔ (knasiXORknisi)7 Knüsi: Knosi ist Abianer. knuesi ↔ knosi

  • 20/42

    LOGELEIDPLL ANWENDEN

    � Wie wird das Problem gelöst?

    � Für die Klauselmenge existiert ein Modell:Knesi und Knusi sind Abianer, Knüsi, Knosi, Knösi, Knisisind Bebianer.

  • 20/42

    LOGELEIDPLL ANWENDEN

    � Wie wird das Problem gelöst?� Für die Klauselmenge existiert ein Modell:

    Knesi und Knusi sind Abianer, Knüsi, Knosi, Knösi, Knisisind Bebianer.

  • 21/42

    GSAT

    � Ein Bergsteiger Algorithmus im Raum aller Belegungen

    � Starte mit einer zufälligen Belegung aller Variablen� Wir definieren die Nachbarbelegungen als diejenigen

    Belegungen die sich nur auf ein Bit von der initialenBelegung unterscheiden.

    � Benutze die Nachbarbelegung mit minimalen Kosten� Kosten = Anzahl unerfüllter Klauseln in der jeweiligen

    Belegung

  • 21/42

    GSAT

    � Ein Bergsteiger Algorithmus im Raum aller Belegungen� Starte mit einer zufälligen Belegung aller Variablen� Wir definieren die Nachbarbelegungen als diejenigen

    Belegungen die sich nur auf ein Bit von der initialenBelegung unterscheiden.

    � Benutze die Nachbarbelegung mit minimalen Kosten� Kosten =

    Anzahl unerfüllter Klauseln in der jeweiligenBelegung

  • 21/42

    GSAT

    � Ein Bergsteiger Algorithmus im Raum aller Belegungen� Starte mit einer zufälligen Belegung aller Variablen� Wir definieren die Nachbarbelegungen als diejenigen

    Belegungen die sich nur auf ein Bit von der initialenBelegung unterscheiden.

    � Benutze die Nachbarbelegung mit minimalen Kosten� Kosten = Anzahl unerfüllter Klauseln in der jeweiligen

    Belegung

  • 22/42

    GSAT

    � Loop n times

    � % Wir durchführen n verschiedene Bergsteige� Wähle zufällig die Belegung A.� % Wir starten mit verschiedene initiale Belegungen� Loop m times

    � % Wir betrachten die Kosten aller Nachbarbelegungen

  • 23/42

    GSAT

    � Flip the variable that results in lowestcost

    � Exit if cost is zero

    � % Kosten = 0 ⇒ wir haben eine erfüllende Belegunggefunden. EXIT

  • 24/42

    GSAT VS DPLL� GSAT is korrekt� GSAT ist nicht vollständig� Kann nicht benutzt werden um alle erfüllende Belegungen

    zu finden� In SAT Wettbewerbe war es für eine Weile schneller aber

    zur Zeit werden die Heuristiken von DPLL verbessert undDPLL wird wieder schneller

    � Schwach beschränkte Aufgaben sind einfach für DPLLund GSAT (solche Aufgaben haben viele Lösungen)

    � Stark beschränkte Aufgaben sind einfach für DPLL aberschwer für GSAT. Solche Aufgaben haben eine oder nursehr wenige Lösungen. Sie sind einfacher für DPLL weildie Vereinfachung der Formel schnell zu allen Lösungenführt. Für GSAT aber ist das Finden einer Lösung sehrschwierig, da es nicht weiß wo sich diese Lösung versteckthat.

  • 25/42

    GSAT VS DPLL

    � Aufgaben die nicht schwach und auch nicht starkbeschränkt sind, sind schwer für beide Algorithmen,eigentlich für alle bekannte Algorithmen...

  • 26/42

    WALKSAT

    GSAT mit noise (noise = Zufall)� Loop n times

    � Wähle zufällig Belegung A� % Hat dieselbe Aussentruktur wie GSAT. Es gibt eine

    äußere Schleife von n Iterationen auf verschiedene zufälliggewählte Belegungen.

    � Loop m times� % Diesmal werden die Schritte verschieden sein.

  • 27/42

    WALKSAT

    � Randomly select unsatisfied clause C� % Wähle zufällig eine unerfüllte Klausel C. Dann werfen

    wir eine Münze. Die Wahrscheinlichkeit ist p = 0.5.� Mit der Wahrscheinlichkeit p = 0.5 entweder verändern

    wir den Wahrheitswert der Variablen in der Klausel C dieden kleinsten Kosten ergibt oder

    � Wähle zufällig eine Variable in C und verändere derenWahrheitswert.

    � % Der Grund dafür ist, dass es manchmal ratsam ist seineSituation zu verschlechtern, so dass es später viel bessersein kann. Mehr darüber in der KI Vorlesung!

    � EXIT falls die Kosten Null sind.

  • 28/42

    HORN-FORMELN

    Horn-Formel: Formel in KNF, in der jede Klausel höchstens einpositives Literal enthält.

  • 29/42

    HORN-FORMELN: BEISPIELE

  • 30/42

    ERFÜLLBARKEITSPROBLEM FÜR HORN-FORMELN

    TheoremDie Erfüllbarkeit von Horn-Formeln ist in quadratischer Zeitentscheidbar.

    Lemma.Sei F eine Horn-Formel die keine Fakten enthält. Dann ist Ferfüllbar.

    Beweis: Sei A : Π → {0, 1} mit A(P) = 0 für alle P ∈ Π. Dann istA(F) = 1.

  • 31/42

    ERFÜLLBARKEITSPROBLEM FÜR HORN-FORMELN

    TheoremDie Erfüllbarkeit von Horn-Formeln ist in quadratischer Zeitentscheidbar.

  • 32/42

    ERFÜLLBARKEITSTEST FÜR HORN-FORMELN

  • 33/42

    ERFÜLLBARKEITSTEST FÜR HORN-FORMELN

  • 34/42

    BEISPIEL 1

  • 35/42

    BEISPIEL 1

  • 36/42

    BEISPIEL 1

  • 37/42

    BEISPIEL 1

  • 38/42

    BEISPIEL 1

  • 39/42

    BEISPIEL 1

  • 40/42

    BEISPIEL 1

  • 41/42

    BEISPIEL 2

  • 42/42

    BEISPIEL 3