110 likes | 189 Views
Algorithmen für das Erfüllbarkeitsproblem SAT. aus einem Vortrag von Melanie Schmidt Uni Dortmund. Das Erfüllbarkeitsproblem K-KNF-SAT. Variablen x 1 ,x 2, x 3, x 4, x 5, x 6. n = Anzahl der Variablen = 6. x 5. (. x 3. ¬ x 2. ). ( ¬ x 1 ). ( x 1 ¬ x 2 x 3 ¬ x 4 x 6 ).
E N D
Algorithmen für das Erfüllbarkeitsproblem SAT aus einem Vortrag von Melanie Schmidt Uni Dortmund
Das Erfüllbarkeitsproblem K-KNF-SAT Variablen x1,x2,x3,x4,x5,x6 n = Anzahl der Variablen = 6 x5 ( x3 ¬x2 ) ( ¬x1 ) ( x1¬x2 x3¬x4 x6 ) Klausel Problem für 5-SAT
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.
2-SAT Algorithmus in polynomieller Zeit
2-SAT Algorithmus • (¬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
2-SAT Algorithmus • Eine 2-KNF-Formel ist unerfüllbar im Graphen GF existiert ein Zyklus der Form xi … ¬xi … xi gdw.
Zyklus mit xi und ¬xidann 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.
X1 ¬X1 F unerfüllbardannexistiert Zyklus mit xi und ¬ xi • Beweis mit Induktion über n: • n=1. • F muss die Form (x1) (¬x1) haben GF hat einen Zyklus. • n-1n. • Wähle beliebiges xaus {x1,…,xn}. • Bilde Fx=0 und Fx=1GFx=0 und GFx=1 enthalten Zyklen mit xk und ¬xk • Zeige, dass daraus folgt: GF enthält einen Zyklus mit xi und ¬xi
x y y ¬x ¬y ¬y GF enthält einen Zyklus mit xi und ¬xi • Trivial: Einer der Zyklen aus GFx=0 und GFx=1 ist auch in GF enthalten • Sonst: Zeige, dass es in GF die Verbindungen ¬x … x und x … ¬x gibt es existiert ein Zyklus mit x und ¬x
x z z ¬x ¬z ¬z Pfade in GF • ¬x … x in GF • F enthält (x) • F enthält (x z) • GF enthält ¬x z und ¬z x • Fx=0 enthält nur (z) • der Zyklus in GFx=0 enthält ¬z z,GF enthält ¬z z nicht daraus folgt in GF gibt es ¬x z … ¬z x • x … ¬x in GF • Analog mit (¬x) sowie Fx=1 undGFx=1
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) • mit Tiefensuche • in stark zusammenhängende Komponenten zerlegen • O(m), m=Anzahl der Klauseln