Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Algorithmen für das Erfüllbarkeitsproblem SAT

Ähnliche Präsentationen


Präsentation zum Thema: "Algorithmen für das Erfüllbarkeitsproblem SAT"—  Präsentation transkript:

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-1n. 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


Herunterladen ppt "Algorithmen für das Erfüllbarkeitsproblem SAT"

Ähnliche Präsentationen


Google-Anzeigen