Algorithmen für das Erfüllbarkeitsproblem SAT teilweise aus einem Vortrag von Melanie Schmidt (Uni...

Preview:

Citation preview

Algorithmen für das Erfüllbarkeitsproblem SAT

teilweise aus einem Vortrag vonMelanie Schmidt (Uni Dortmund)

mit Ergänzungen aus einer Präsentation von Carsten Sinz

(Uni Tübingen)

2/11

Variablen x1,x2,x3,x4,x5,x6

x3 ¬x2 x5( ) ( ¬x1 ) ( x1 ¬x2 x3 ¬x4 x6 )

Problem für 5-SAT

Klausel

n = Anzahl der Variablen = 6

Das Erfüllbarkeitsproblem K-KNF-SAT

3/11

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.

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

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/11

• (¬x3) (x2 x3) (¬x1 ¬x2) (x3 x1)

• (a b) = (¬a b)

2-SAT Algorithmus

• (¬x3 ¬x3) (x2 x3) (¬x1 ¬x2) (x3 x1 )

• (a) = (a a)• (a b) = (¬a b)

(a b) = (¬b a)

X1

¬X2¬X1

X2 X3

¬X3¬X1

X2 X3

¬X3

X3

¬X3

7/11

2-SAT Algorithmus

• Eine 2-KNF-Formel ist unerfüllbar

im Graphen GF existiert ein Zyklus der Form xi … ¬xi … xi

gdw.

8/11

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/11

F unerfüllbardann 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/11

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 gibtund dann existiert ein Zyklus mit x und ¬x

y

¬y¬x ¬y

x y

11/11

Pfade 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/11

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

2-SAT: Aspvall Algorithmus

2-SAT: Aspvall Algorithmus

Recommended