Präsentation herunterladen
Veröffentlicht von:Leni Ratay Geändert vor über 9 Jahren
1
Algorithmen für das Erfüllbarkeitsproblem SAT
teilweise aus einem Vortrag von Melanie Schmidt (Uni Dortmund) mit Ergänzungen aus einer Präsentation von Carsten Sinz (Uni Tübingen)
2
Das Erfüllbarkeitsproblem K-KNF-SAT
Variablen x1,x2,x3,x4,x5,x6 n = Anzahl der Variablen = 6 ( x3 ¬x2 x5 ) ( ¬x1 ) ( x1 ¬x2 x3 ¬x4 x6 ) Klausel Problem für 5-SAT
3
Das Erfüllbarkeitsproblem K-KNF-SAT
Also: Gegeben ist eine Menge von Klauseln mit jeweils bis zu k Literalen Eine Klausel hat die Form (u1 u2 … ul), l k, wobei ui {x1,…,xn} {¬x1,…,¬xn} Gesucht: Eine Belegung der Variablen x1,… ,xn mit Wahrheitswerten {0, 1}, so dass die Auswertung der Formel 1 ergibt.
4
Davis Putnam Loveland Logeland-Algorithmus
Konstruiere Belegung inkrementell Verwende Backtracking für Wahrheitswertezuweisung im Falle, dass eine nicht erfüllende Belegung konstruiert wird Verwende Propagierung von festgelegten Variablen zur “Verkleinerung” von Disjuntionen (Einer-Klauseln legen Zuweisung fest) Pure-Literal Elimination
5
2-SAT Beh.: Es existiert ein Algorithmus in polynomieller Zeit. Bew.: Resolution produziert max. O(n2) Klauseln Geht es noch besser? Aspvall et al. 1980
6
2-SAT Algorithmus (a) = (a a) (a b) = (¬a b) (a b) = (¬b a)
(¬x3 ¬x3) (x2 x3) (¬x1 ¬x2) (x3 x1 ) (a) = (a a) (a b) = (¬a b) (a b) = (¬b a) (¬x3) (x2 x3) (¬x1 ¬x2) (x3 x1) (a b) = (¬a b) X1 X2 X2 X3 X3 X3 ¬X1 ¬X1 ¬X2 ¬X3 ¬X3 ¬X3
7
2-SAT Algorithmus Eine 2-KNF-Formel ist unerfüllbar
im Graphen GF existiert ein Zyklus der Form xi … ¬xi … xi gdw.
8
Zyklus mit xi und ¬xi dann F unerfüllbar
Annahme: Es gibt eine erfüllende Belegung a. Dann muss für a gelten, dass xi=1 und xi =0. Das ist ein Widerspruch.
9
F unerfüllbar dann existiert Zyklus mit xi und ¬ xi
Beweis mit Induktion über Anzahl der Variablen n: n=1. F muss die Form (x1) (¬x1) haben GF hat einen Zyklus. n-1n. Wähle beliebiges x aus {x1,…,xn}. Bilde Fx=0 und Fx=1 GFx=0 und GFx=1 enthalten Zyklen mit y und ¬y (y aus {x1,…,xn}) Zeige, dass daraus folgt: GF enthält einen Zyklus mit x und ¬x X1 ¬X1
10
GF enthält einen Zyklus mit x und ¬x
Trivial: Einer der Zyklen aus GFx=0 und GFx=1 ist auch in GF enthalten (x=y) Sonst: Zeige, dass es in GF die Verbindungen ¬x … x und x … ¬x gibt und dann existiert ein Zyklus mit x und ¬x ¬x ¬y x y y ¬y
11
Pfade in GF Beh.: ¬x … x in GF Beh.: x … ¬x in GF
Fall 1: F enthält (x), also (x x) und damit ¬x x Fall 2: F enthält (x z) GF enthält ¬x z und ¬z x Fx=0 enthält nur (z) Ann.: der Zyklus in GFx=0 enthält ¬z z, dann gilt: GF enthält ¬z z nicht (denn x kommt hinzu) daraus folgt, in GF gibt es ¬x z … ¬z x Beh.: x … ¬x in GF Analog mit (¬x) sowie Fx=1 und GFx=1
12
Zyklen mit x und ¬x finden
als All-Pair-Shortest-Paths– Problem mit unendlichen Kosten für nichtvorhandene Kanten für alle x überprüfen: (x,¬x) und (¬x,x) < ? Laufzeit O(n3) Besser: mit Tiefensuche (Aspvall et al. 1980) in stark zusammenhängende Komponenten zerlegen (SCC-Algorithmus) Topologisches Sortieren O(m+n), m=Anzahl der Kanten in G(F) = 2x Anzahl der Klauseln in F
13
2-SAT: Aspvall Algorithmus
14
2-SAT: Aspvall Algorithmus
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.