Schwere Instanzen für Vy-schwere Probleme Hard instances for NP

Werbung
Schwere Instanzen für N P-schwere Probleme
Hard instances for N P-hard problems
Masterarbeit
im Rahmen des Studiengangs
Informatik
der Universität zu Lübeck
vorgelegt von
Tobias Schomann
ausgegeben und betreut von
Prof. Dr. math. Rüdiger Reischuk
Lübeck, den 18. September 2015
Erklärung
Hiermit versichere ich an Eides statt, durch meine Unterschrift, dass ich die vorliegende Arbeit
selbstständig verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel benutzt habe.
Ort, Datum
Unterzeichner
Kurzzusammenfassung
In dieser Arbeit wurden randomisierte Methoden zur Konstruktion von garantiert erfüllbaren, aussagenlogischen Formeln ausgearbeitet. Eine neu vorgestellte Methode basiert auf dem Ansatz, die
Klauseln einer gegebenen, festen Formeln in konjunktiver Normalform zu vervielfältigen und die
Literale innerhalb der Kopien randomisiert zu vertauschen, so dass beleibig große Formeln generiert werden können. Weitere Konstruktionsverfahren basieren auf N P-vollständigen Problemen,
wie Graph-Färbbarkeit, Hypergraph-Färbarkeit, Problem der exakten Überdeckung und TeilgraphIsomorphie. Auf diese Weise konstruierte Formeln wurden mit Hilfe verschiedener S AT-Solver
experimentell untersucht. Ein S AT-Algorithmus von Schöning wurde im Rahmen dieser Arbeit
implementiert, weitere SLS- (Stochastic Local Search) und DPLL-basierte (Davis, Putnam, Logeman, Loveland) Solver, die im Rahmen der SAT Competetion 2011 veröffentlich wurden, sind
eingesetzt worden. Es wurden Eigenschaften der Formeln wie Zeitaufwand der Solver und Anzahl
der erfüllenden Belegungen in Abhängigkeit der Formelnparameter untersucht. Die Ergebnisse
zeigen unter anderem, dass die S AT-Solver durch Vervielfältigung erzeugten Formeln exponentiellen Zeitaufwand zur Festellung der Erfüllbarkeit benötigen.
Abstract
In this work randomized methods for construction of guaranteed satisfiable, propositional logic
formulas have been elaborated. A new presented method is based on the approach to reproduce
clauses of a given fixed formula in conjunctive normal form and to swap the literals inside the
copies randomly, so that can be generated arbitrarily large formulas. Other methods of construction are based on N P-complete problems such as graph colorability, hypergraph colorability, exact
cover and subgraph isomorphism. Formulas, which were constructed in this way, were investigated experimentally, by using different S AT-solvers. In the context of this work a S AT-algorithm
by Schöning was implemented, other SLS- (Stochastic Local Search) and DPLL-based (Davis,
Putnam, Logeman, Loveland) solvers, which were published in the context of SAT Competition
2011, have been used. Properties of the formulas, as running time of solvers and number of satisfying assignments, depending on the formula parameters, were examined. The results in this work
show among others, that the S AT-solvers need exponential time, to determine satisfiability of the
formulas, which were generated by duplication.
Inhaltsverzeichnis
1
Einleitung
1.1
2
3
4
9
Aufbau der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
N P-vollständige Probleme
13
2.1
Graphentheorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
2.2
Färbbarkeit von Graphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
2.3
Cliquenproblem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
2.4
Problem der exakten Überdeckung . . . . . . . . . . . . . . . . . . . . . . . . .
16
2.5
Teilgraph-Isomorphie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
2.6
Erdős Diskrepanzprobleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
Aussagenlogik und S AT-Solving
19
3.1
Aussagenlogik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
3.2
S AT-Solver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
3.3
DPLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
3.4
Stochastic Local Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
3.5
Random Walk von Schöning . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
3.6
Ein Verfahren basierend auf Message-Passing . . . . . . . . . . . . . . . . . . .
30
3.7
Conflict Driven Clause Learning . . . . . . . . . . . . . . . . . . . . . . . . . .
30
3.8
Vorstellung von implementierten S AT-Solvern . . . . . . . . . . . . . . . . . . .
31
Konstruktion von S AT-Formeln
35
4.1
Reduktion von Graph-Färbbarkeit . . . . . . . . . . . . . . . . . . . . . . . . .
35
4.2
Reduktion von Hypergraph-Färbbarkeit . . . . . . . . . . . . . . . . . . . . . .
37
4.3
Reduktion von X3 C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
7
5
6
4.4
Reduktion von Teilgraph-Isomorphie . . . . . . . . . . . . . . . . . . . . . . . .
40
4.5
Reduktion von E DP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
4.6
Vervielfältigung von Klauseln . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
4.7
Zufällige Formeln in 3-KNF . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
Experimentelle Untersuchungen
47
5.1
Implementierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
5.2
Testumgebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
5.3
Auswertung der Testdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
5.4
Vervielfältigung einer festen 3-S AT Formel . . . . . . . . . . . . . . . . . . . .
49
5.5
3-Färbbarkeit von Graphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
5.6
3-Färbbarkeit von 3-uniformen Hypergraphen . . . . . . . . . . . . . . . . . . .
61
5.7
Das X3 C-Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
5.8
Teilgraph-Isomorphie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
76
5.9
Vergleich der Formelfamilien . . . . . . . . . . . . . . . . . . . . . . . . . . . .
77
Abschlussdiskussion und Ausblick
81
6.1
84
Offene Fragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A Anhang
87
A.1 Basisformel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
87
A.2 Inhalt der beigelegten CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
88
A.3 Abbildungsverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
91
A.4 Tabellenverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
93
A.5 Algorithmenverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
95
A.6 Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
97
8
Kapitel 1
Einleitung
Die Informatik ermöglicht uns heutzutage, schnell und mit hoher Zuverlässigkeit, Aufgaben zu
lösen, die aus menschlicher Sichtweise scheinbar eine hohe Komplexität besitzen. So ist es für
Navigationssysteme mit gewöhnlicher Hardwareausstattung kein Problem mehr, innerhalb von
wenigen Sekunden, die beste Route zwischen zwei Orten in einem komplizierten Netzwerk aus
Millionen von Straßen zu finden. Solche und auch andere Beispiele des Alltags können den Eindruck entstehen lassen, Computer könnten mittlerweile jede erdenkliche algorithmische Aufgabe
in kurzer Zeit lösen. Doch dieser Eindruck täuscht, es gibt in der Informatik Problemstellungen,
die, sowohl für die Theorie, als auch für die Praxis eine hohe Relevanz haben, aber für die noch
keine effizienten Lösungsverfahren bekannt sind. Es ist bis heute nicht einmal geklärt, ob solche
Verfahren überhaupt existieren. Eine besonders wichtige Klasse solcher algorithmischen Probleme
ist die der N P-vollständigen Probleme.
Das Erfüllbarkeitsproblem der Aussagenlogik ist das erste Problem dem nachgewiesen wurde,
dass es N P-vollständig ist. Stephen Cook hat mit seinem „Satz von Cook“, wie wir ihn heute
nennen, im Jahr 1971 diesen Beweis erbracht und gleichzeitig Begriffe wie P, N P, N P-schwer,
N P-vollständig und so fort eingeführt [COO71]. Das S AT-Problem, wie das Erfüllbarkeitsproblem in Anlehnung an den englischen Begriff Satisfiability auch genannt wird, ist in theoretischer
und praktischer Hinsicht eines der wichtigsten algorithmische Problem der Informatik, daher wird
es manchmal auch als die Drosophila der Komplexitätstheorie bezeichnet (vergleiche [SCH10]).
Nach 1971 folgten viele weitere N P-Vollständigkeitsbeweise, denn es war jetzt ein Vertreter dieser Komplexitätsklasse bekannt und es reichte für ein Problem in N P daher aus, einen effizienten
Algorithmus anzugeben, der das Problem S AT in das Zielproblem überführt: eine sogenannte Polynomialzeitreduktion.
Da nun alle Probleme in N P, somit auch die N P-vollständigen, effizient in das S AT-Problem
überführt werden können, würde die Existenz eines effizienten Algorithmus für dieses Problem
bewirken, dass alle Probleme in N P effizient lösbar wären. Darum ist es das erklärte Ziel vieler Informatiker, immer bessere S AT-Algorithmen zu entwickeln, auch wenn ein PolynomialzeitAlgorithmus derzeit unerreichbar scheint. Einige dieser hochgradig optimierten Lösungverfahren,
die man auch S AT-Solver nennt, wie zum Beispiel das DPLL-Verfahren oder Stochastic Local
Search, werden in dieser Arbeit besprochen und vorgestellt.
In der Informatik kommt es oft vor, dass die Theorie der Praxis weit vorraus ist. So wurde zum
Beispiel das theoretische Modell eines Computers, die Turing-Maschine, bereits untersucht noch
9
bevor der erste Computer dieser Art gebaut wurde. Aber auch im Bereich der Quanteninformatik
haben wir diese Situation, dass die Theorie bereits weit fortgeschritten ist und viele Erkenntnisse
gesammelt hat, die vermutlich einmal von großem Nutzen (oder Schaden für Verschlüsselungsverfahren) sein werden. Doch real exitierende Quantencomputer schaffen es gerade einmal, die Zahl
143 zu faktorisieren [XU12]. Im Bereich des S AT-Solving sieht die Situation anders aus. Es gibt
viele Vermutungen, die bisher nur experimentell bestätigt werden konnten, wie zum Beispiel der
kritische Punkt m/n = 4,2, bei dem zufällige 3-S AT-Formeln mit n Variablen und m Klauseln
von „mit großer Wahrscheinlichkeit erfüllbar“ zu „mit großer Wahrscheinlichkeit nicht erfüllbar“
übergehen. Auch die in der Praxis erreichten Laufzeiten der Solver gehen noch über das, was die
Theorie gesichert sagen kann, deutlich hinaus. Die Verbesserung der in S AT-Solvern eingesetzten
Heuristiken geschieht daher oft auf experimenteller Basis, indem sie an verschiedenen Arten von
S AT-Formeln systematisch ausprobiert werden. Viele Forscher testen ihre Solver zum Beispiel
mit zufälligen Formeln an dem bereits genannten Schwellwert, um ihre Solver für den AverageCase zu optimieren. Aber je nach Einsatzgebiet kann es auch sinnvoll sein, andere Formeltypen zu
Analysezwecken zu verwenden. Sogenannte unvollständige S AT-Solver, die nur die Erfüllbarkeit
von erfüllbaren Formeln, nicht aber die Unerfüllbarkeit von unerfüllbaren Formeln sicher erkennen können, benötigen daher Formeln, die auf der einen Seite garantiert erfüllbar sind, aber auf
der anderen Seite diese Tatsache möglichst gut verschleiern. Ein Hauptthema dieser Arbeit ist die
Vorstellung und Analyse randomisierter Konstruktionsverfahren von schweren S AT-Formeln, die
garantiert erfüllbar sind.
1.1
Aufbau der Arbeit
In der vorliegenden Arbeit wurden, auf Basis verschiedener N P-vollständiger Probleme, Methoden zur Konstruktion von aussagenlogischen Formeln herausgearbeitet. Diese unterschiedlichen
Arten von Formeln wurden, hinsichtlich der Erfüllbarkeit, experimentell mit S AT-Solvern untersucht. Zunächst werden in Kapitel 2 daher einige N P-vollständige Probleme definiert und Eigenschaften dieser Probleme besprochen, die im weiteren Verlauf der Arbeit noch benötigt werden.
Im Kapitel 3 folgt dann, nach einer Einführung in die Aussagenlogik, die Vorstellung der wesentlichen S AT-Solving-Verfahren. Für Schönings S AT-Algorithmus wurde hier eine ausführlichere
Analyse herausgearbeitet. Zum Schluss des Kapitels werden die, in der Arbeit verwendeten Implementierungen dieser Verfahren vorgestellt.
Mit Kapitel 4 beginnt der Hauptteil der Arbeit. Hier wurden verschiedene randomisierte Verfahren
zur Konstruktion von aussagenlogischen Formeln, die garantiert eine erfüllende Belegung besitzen, ausgearbeitet. Sehen wir einmal von dem neu vorgestellten Verfahren in Abschnitt 4.6 ab,
basieren diese Verfahren auf den in Kapitel 2 vergestellten N P-vollständigen Problemen.
In Kapitel 5 folgt die experimentelle Untersuchung dieser Formelfamilien mit den beschriebenen
S AT-Solving-Verfahren. Hier werden für jeden Formeltyp in Abhängigkeit der Formelparameter
verschiedene Aspekte, wie zum Beispiel asyptotische Laufzeit der Solver, Anzahl der erfüllenden
Belegungen oder kitische Bereiche des Parameterraums, beleuchtet. Jeder Abschnitt in diesem
Kapitel enthält am Ende einen kurzen Überblick der gewonnenen Ergenisse. Zum Schluss des
Kapitels werden die unterschiedlichen Formeltypen miteinander verglichen.
Wir schließen den Haptteil der Arbeit und beginnen mit Kapitel 6 die abschließende Zusammenfassung und Diskussion der Ergebnisse. Hier werden die wesentlichen Aspekte der Konstruktions10
methoden noch einmal kurz erläutert und es werden die Ergebnisse und Intepretationen der experimentellen Untersuchungen zusammenfassend dargestellt. Noch offene Fragestellungen werden
hier ebenfalls behandelt.
Im Anhang folgt, nach der Besprechung des Inhalts der beiliegenden CD, die Vorstellung einer
aussagenlogischen Formel, die in dieser Arbeit eine wichtige Rolle spielt. Auf den letzten Seiten ist
ein Abbildungsverzeichnis, Tabellenverzeichnis, Algorithmenverzeichnis und Literaturverzeichnis
vorzufinden.
11
12
Kapitel 2
N P-vollständige Probleme
Da es durch Stephen Cooks Beweis aus dem Jahre 1971 [COO71] nun einen bekannten Vertreter
der Komplexitätsklasse N P gab, war es jetzt möglich durch Polynomialzeitreduktionen weitere
N P-vollständige Probleme zu finden. Karp nutzte diese Gelegenheit und zeigte bereits 1972 für
21 Probleme der Informatik, die als besonders hartnäckig bekannt waren, dass diese ebenfalls
N P-vollständig sind [KAR72].
In diesem Kapitel werden neben einigen theoretischen Grundlagen der Informatik auch bekannte
Probleme vorgestellt, die N P-vollständig sind oder bei denen diese Eigenschaft zumindest vermutet wird.
Bibliographische Hinweise Als Grundlage für dieses Kapitel dienten unter anderem Introduction to Algorithms von Thomas Cormen, Charles Leiserson, Ronald Rivest und Clifford Stein
[COR09], Graphentheoretische Konzepte und Algorithmen von Sven Oliver Krumke [KRU12]
und Hartmut Noltemeier und Random Graphs von Béla Bollobás [BOL01]. Weitere Quellen sind
im Kapitel selbst aufgeführt.
2.1
Graphentheorie
Viele der Probleme, die in dieser Arbeit untersucht werden, sind Graphenprobleme oder eng verwand mit ihnen. Darum folgt nun eine Auswahl von Grundlagen und Erkenntnissen aus der Graphentheorie, die für diese Arbeit von Bedeutung sind. Wir betrachten in diesem Abschnitt ausschließlich ungerichtete Graphen.
Definition 2.1 (Graph)
Ein ungerichteter Graph G = (V, E) besteht aus einer abzählbaren Menge von Knoten V und eine
Menge von Kanten E ⊆ {{i, j} | i, j ∈ V }.
Definition 2.2 (Hypergraph)
Ein k-uniformer Hypergraph G = (V, E) besteht aus einer abzählbaren Menge von Knoten V und
eine Menge von Hyperkanten E ⊆ {{i1 , i2 , ..., ik } | i1 , i2 , ..., ik ∈ V }.
13
Bei der Analyse der späteren experimentellen Untersuchungen werden häufig Eigenschaften von
sogenannten Zufallsgraphen eine Rolle spielen. Darum werden wir nun zwei sehr häufig gebrauchte Modelle von zufälligen Graphen kennenlernen. Ein Zufallsgraphenmodell ist dabei ein Wahrscheinlichkeitsmaß auf einer Menge von Graphen.
• Das Modell G (n, M ) besteht aus allen Graphen mit der Knotenmenge V = {1, 2, ..., n},
n die genau M Kanten haben. G (n, M ) besteht aus ( 2 ) Graphen, von denen jeder eine
n −1
2)
Auftrittswahrscheinlichkeit von (M
hat.
M
• Das Modell G (n, p) besteht aus allen Graphen mit der Knotenmenge V = {1, 2, ..., n},
bei denen jede Kante mit der Wahrscheinlichkeit p unabhängig von allen anderen Kanten
existiert. Analog hierzu haben wir die zufälligen k-uniformen Hypergraphen G (n, k, p).
Solche Zufallsgraphen sind schon lange Gegenstand intensiver Untersuchungen, die zu vielen Interessanten Ergebnissen geführt haben. Einige Eignschaften von Zufallsgraphen werden hier nun
aufgeführt. Die jeweiligen Beweise sind in entsprechenden Referenzen zu finden.
Satz 2.1 (Matula, 1976 [MAT76])
Für n ≥ 1 und 0 > p > 1 gebe die Zufallsvariable Z(n, p) die Cliquenzahl des Zufallsgraphen
G (n, p) an. Dann gilt für 1 ≥ k ≥ n

k
X

j=max(0,2k−n)
n−k k
k−j j
n
k
p
−
j(j−1)
2
−1

n k(k−1)
.
≤ P r[Z(n, p) ≥ k] ≤
p 2
k
Satz 2.2 (Erdős u. a., 1960 [ERD60])
Sei G ∈ G (n, p) ein Zufallsgraph. Dann gilt:
• Wenn p >
(1+) ln n
,
n
dann ist G (fast) sicher zusammenhängend.
• Wenn p <
(1−) ln n
,
n
dann ist G (fast) sicher nicht zusammenhängend.
Satz 2.3 (Mulet u. a., 2002 [MUL02])
Ein Zufallsgraph G ∈ G (n, p) mit pn > 4,69 ist fast sicher nicht 3-färbbar.
Satz 2.4 (Achlioptas u. a., 2002 [ACH02])
Sei n, k ∈ N und p ∈ [0, 1]. Dann gilt für einen zufälligen Hypergraph H ∈ H (n, p, k):
• Wenn p nk ≥ 2k−1 ln 2 − ln22 , dann ist H mit hoher Wahrscheinlichkeit nicht 2-färbbar.
• Wenn p nk ≤ 2k−1 ln 2 − ln22 − 1, dann ist H mit hoher Wahrscheinlichkeit 2-färbbar.
2.2
Färbbarkeit von Graphen
Eine Färbung eines ungerichteten Graphen weist jedem Knoten eine Farbe zu. Doch es wird zusätzlich verlangt, dass es sich dabei um eine sogenannte gültige Färbung handelt, also das niemals
zwei benachbarte Knoten mit der gleichen Farbe gefärbt sind.
14
Definition 2.3 (Färbung)
Sei ein ungerichteter Graph G = (V, E) und k ∈ N. Eine Abbildung c : V → {1, 2, ..., k} mit
c(u) 6= c(v) für alle Kanten {u, v} ∈ E wird als k-Färbung des Graphen G bezeichnet.
Auf eine ähnliche Weise können wir die Färbbarkeit von Hypergraphen definieren. Für eine Hyperkante wird dabei allerdings nur verlangt, dass nicht alle Knoten gleich gefärbt sind.
Definition 2.4 (Färbung)
Sei ein q-uniformer Hypergraph H = (V, E) und k ∈ N. Eine Abbildung c : V → {1, 2, ..., k}
wird als k-Färbung von H bezeichnet, wenn keine Hyperkante {v1 , v2 , ..., vq } ∈ E existiert, für
die c(v1 ) = c(v2 ) = ... = c(vq ) gilt.
Ausgehend von diesen Defninitionen ergeben sich nun die dazugehörigen Entscheidungsprobleme.
Definition 2.5 (Graph-Färbbarkeitsproblem)
Die Menge der k-färbbaren Graphen wird durch k-C OLORING bezeichnet. Die Frage, ob für einen
gegebenen Graph G gilt G ∈ k-C OLORING, stellt das k-Färbbarkeitsproblem dar.
Das Hypergraph-Färbbarkeitsproblem lässt sich analog definieren, wir tauschen den Begriff Graph
durch q-uniformer Hypergraph aus.
Satz 2.5
Das 3-Färbarkeitsproblem ist N P-vollständig.
Der Beweis zu dieser Aussage ist zum Beispiel in Introduction to Algorithms Seite 1103 zu finden
[COR09]. Das nun folgende Ergebnis stammt aus der Arbeit [DIN05].
Satz 2.6
Das Problem, eine k-Färbung für einen 3-uniformen 2-färbbaren Hypergraph anzugeben, ist N Pschwer für eine Konstante k.
2.3
Cliquenproblem
Eine Eigenschaft eines Graphen, die in dieser Arbeit noch von Bedeutung sein wird, ist die Existenz einer sogenannten Clique. In der Graphentheorie stellt eine Clique in einem Graph eine Teilmenge von Knoten dar, die untereinander vollständig verbunden sind. Das heißt, jeder Knoten der
Teilmenge ist mit jedem anderen durch eine Kante verbunden. Es folgt nun eine formelle Definition.
Definition 2.6 (Clique, Cliquenzahl)
Sei ein ungerichteter Graph G = (V, E). Dann heißt eine Knotenteilmenge C ⊆ V Clique von G,
wenn für alle i, j ∈ C auch {i, j} ∈ E gilt. Weiterhin heißt
ω(G) := max{|C| | C ist Clique von G}
die Cliquenzahl von G.
15
Das entsprechende Entscheidungsproblem, das k-Cliquenproblem, stellt die Frage ob in einem
gegebenen Graphen eine Clique C der Größe |C| = k enthalten ist. Dieses Problem wird in dieser
Arbeit allerdings nicht weiter untersucht. Der Begriff der Clique ist aber bei der Analyse von
X3 C-basierten S AT-Formeln hilfreich.
2.4
Problem der exakten Überdeckung
Definition 2.7 (Exakte Überdeckung)
Sei eine Menge U . Dann ist eine Menge S ⊆ P (U ) eine exakte Überdeckung von U , wenn die
beiden folgenden Aussagen gelten.
• Für alle Si , Sj ∈ S gilt: wenn Si 6= Sj , dann Si ∩ Sj = ∅ .
[
•
Si = U .
Si ∈S
Mit Hilfe dieser Definition lässt sich nun einfach das entsprechende Entscheidungsproblem formulieren.
Definition 2.8 (Das Problem der exakten Überdeckung/Exact Cover Problem)
Gegeben sei eine Grundmenge U und eine Menge S ⊆ P (U ). Die Frage, ob eine Teilmenge
S 0 ⊆ S existiert, so dass S 0 eine exakte Überdeckung für U ist, wird als Problem der exakten
Überdeckung bezeichnet.
Satz 2.7
Das Problem der exakten Überdeckung ist N P-vollständig.
Da das Problem der exakten Überdeckung eines von Karps 21 N P-vollständigen Problemen ist,
kann der Beweis dieser Aussage in Karps Veröffentlichung aus dem Jahr 1972 [KAR72] gefunden
werden. Dort heißt das Problem Exact Cover.
Nun behandeln wir einen Spezialfall dieses Problems, der in dieser Arbeit noch genauer untersucht
werden wird, das sogenannte X3 C-Problem. Hier verlangen wir, dass die Menge S ausschließlich
Tripel enthält.
Definition 2.9 (X3 C-Problem)
Gegeben sei eine Grundmenge U und eine Menge S ⊆ P (U ), wobei für alle Si ∈ S gilt |Si | = 3.
Die Frage, ob eine Teilmenge S 0 ⊆ S existiert, so dass S 0 eine exakte Überdeckung für U ist,
bezeichnet das X3 C-Problem.
2.5
Teilgraph-Isomorphie
Nachfolgend werden ungerichtete Graphen mit endlicher Anzahl von Knoten und ohne Mehrfachkanten betrachtet. Ein Graph G ist definiert als ein ein Paar G = (VG , EG ), wobei VG eine Menge
von Knoten ist und EG ⊂ VG × VG eine Menge von Kanten. Die Anzahl der Knoten von einem
Graph G wird durch nG bezeichnet und die Anzahl der Kanten durch mG .
16
Definition 2.10 (Teilgraph)
Sei zwei Graphen G = (VG , EG ) und H = (VH , EH ). Dann ist G ein Teilgraph von H, wenn
VG ⊆ VH und EG ⊆ EH . Wenn zusätzlich EG = EG ∩ (VH × VH ), dann wird G als induzierter
Teilgraph bezeichnet.
Definition 2.11 (Graph-Isomorphie)
Zwei Graphen G = (VG , EG ) und H = (VH , EH ) sind genau dann isomorph, wenn eine bijektive
Abbildung f : VG → VH existiert, so dass für alle v1 , v2 ∈ VG mit v1 6= v2 gilt:
(v1 , v2 ) ∈ EG ⇔ (f (v1 ), f (v2 )) ∈ VH .
Definition 2.12 (Teilgraph-Isomorphie-Problem)
Das Entscheidungsproblem, dass zu zwei gegebenen Graphen G und H die Frage stellt, ob G zu
einem Teilgraph von H isomorph ist, wird als Teilgraph-Isomorphie-Problem bezeichnet.
Für das reine Graph-Isomorphie-Problem, bei dem wir zwei Graphen mit gleicher Knotenanzahl
betrachten, gehört zu den wenigen algorithmischen Problemen in N P, bei denen bis heute weder
bekannt ist, ob sie in P liegen, noch ob sie N P-vollständig sind. Das gilt allerdings nicht für das
Teilgraph-Isomorphie-Problem.
Satz 2.8
Das Teilgraph-Isomorphie-Problem ist N P-vollständig.
Der Beweis zu dieser Aussage ist bereits in der Arbeit enthalten, in der auch die N P-Vollständigkeit
eingeführt wurde [COO71]. Cook’s Beweis basiert dabei auf einer Reduktion vom Cliquenproblem.
2.6
Erdős Diskrepanzprobleme
Erdős Diskrepanz Vermutung
Eine ±1-Sequenz ist eine Sequenz, die nur die Zahlen 1 und −1 enthält, wobei beide Zahlen in
der Sequenz gleich oft vorkommen.
Gegen 1932 hat der Mathematiker Paul Erdős die folgende Vermutung formuliert. Für eine unendliche ±1-Sequenz hx1 , x2 , ...i und ein beliebiges C ∈ N existieren k, d ∈ N, so dass
k
X
xi·d > C .
i=1
Für C = 2 haben Boris Konev and Alexei Lisitsa diese Vermutung bewiesen [KON14]. Sie zeigten
zunächst durch Kodierung des Problems mit S AT-Formeln und unter Verwendung der aktuellsten
S AT-Solver das eine ±1-Sequenz mit der Diskrepanz 2 der Länge 1160 existiert. Dann bewiesen
sie: jede Sequenz der Länge 1161 hat mindestens eine Diskrepanz von 3.
17
Erdős Diskrepanzproblem
Nun lässt sich ein Entscheidungsproblem formulieren, dass fragt: Existiert eine endliche ±1Sequenz hx1 , x2 , ..., xn i und ein 1 ≤ d ≤ n, m ≤ n/d, so dass
k/d
X
≤3 .
x
(2.1)
i·d
i=1
18
Kapitel 3
Aussagenlogik und S AT-Solving
3.1
Aussagenlogik
Bibliografische Hinweise Dieser Abschnitt basiert auf dem Buch Das Erfüllbarkeitsproblem
SAT von Uwe Schöning und Jacobo Torán [SCH12] und dem Kapitel Aussagenlogik aus Komplexitätstheorie und Kryptologie von Jörg Rothe [ROT08].
Historisch beginnt die Geschichte der Aussagenlogik bei Aristoteles, der bereits 384 vor der Zeitrechnung aussagenlogische Grundsätze formulierte. Er sagte unter anderem wörtlich „Ein Satz
ist nun eine Aussage, welche etwas von einem Anderen bejaht oder verneint.“ Heute wird die
Aussagenlogik als ein Teilgebiet der formalen Logik betrachtet.
Zunächst wird die Syntax der Aussagenlogik näher beleuchtet.
Definition 3.1 (Formel)
Gegeben sei eine unendlich große, aber abzählbare Menge elementarer Aussagen V =
{x1 , x2 , x3 , ...}, die auch als Aussagenvariablen oder Variablen bezeichnet werden. Die Menge
der aussagenlogischen Formeln FAL wird nun induktiv definiert:
• Die Konstanten 0 und 1 sind in FAL enthalten.
• Jede Variable aus V ist in FAL enthalten.
• Sind ϕ und ψ in FAL enthalten, dann sind auch ϕ̄, (ϕ ∧ ψ) und (ϕ ∨ ψ) in FAL enthalten.
Dabei werden folgende Bezeichnungen verwendet:
• ϕ̄ heißt Negation.
• (ϕ ∧ ψ) heißt Konjunktion.
• (ϕ ∨ ψ) heißt Disjunktion.
• Ist ϕ eine Variable, dann kann sowohl ϕ als auch ϕ̄ als Literal bezeichnet werden.
• Var(ϕ) ist die Menge aller Variablen, die in der Formel ϕ vorkommen.
19
Nun die Semantik.
Definition 3.2 (Wahrheitswert, Belegung)
Ein Wahrheitswert ist ein Element der Menge {0, 1}. Sei V eine Teilmenge von V, dann wird eine
Abbildung α : V → {0, 1} als Belegung bezeichnet, die einigen Variablen einen Wahrheitswert
zuweist. Wir schreiben
α = {x1 = a1 , x2 = a2 , · · · } , ai ∈ {0, 1} .
Sei α eine Belegung und ϕ eine Formel, dann ist α total für ϕ, wenn V ⊇ Var(ϕ).
Darüber hinaus werden nun einige weitere Schreibweisen eingeführt, die sich im weiteren Verlauf
der Arbeit als nützlich erweisen werden. Wir sagen, dem Literal u liegt die Variable x zugrunde,
wenn gilt u = x oder u = x̄. Manchmal ist es praktisch wenn man anstatt eine Variable x mit
einem Wahrheitswert a zu belegen, ein Literal u mit einem solchen belegt. Es gilt, wenn u = x,
dann sind die Zuweisungen x = a und u = a gleichbedeutend und wenn u = x̄, dann sind die
Zuweisungen x = a und u = 1 − a gleichbedeutend.
Wenn in einer gegebenen Belegung der Wahrheitswert einer einzelnen Variable verändert oder bei
einer nicht totalen Belegung zusätzlich belegt werden soll, dann ist die folgende Notation hilfreich.
Gegeben sei eine Belegung
α = {x1 = a1 , x2 = a2 , ..., xi = ai , ...} .
Dann gilt für einen Wahrheitswert b,
α[xi = b] := {x1 = a1 , x2 = a2 , ..., xi = b, ...} .
Auch an dieser Stelle kann die Schreibweise verwendet werden, bei der anstatt einer Variablen
einem Literal ein Wahrheitswert zugewiesen wird, wie oben beschrieben.
Definition 3.3 (Auswertung)
Sei ϕ eine Formel und α eine Belegung mit Urbild V ⊆ V. Dann kann eine Formel ϕ durch
α ausgewertet werden. Man sagt auch, dass α in ϕ eingesetzt wird. Die aus der Auswertung
resultierende Formel ϕα wird gebildet, indem für jede Variable xi ∈ Var(ϕ)∪V alle Vorkommen
dieser in ϕ durch α(xi ) ersetzt werden und folgende Vereinfachungen in ϕ durchgeführt werden.
Sei ψ ∈ FAL , dann wird
• (ψ ∨ 0) oder (0 ∨ ψ) wird zu ψ,
• (ψ ∨ 1) oder (1 ∨ ψ) wird zu 1,
• (ψ ∧ 0) oder (0 ∧ ψ) wird zu 0,
• (ψ ∧ 1) oder (1 ∧ ψ) wird zu ψ,
• ψ̄¯ wird zu ψ und
• 0̄ wird zu 1 und 1̄ wird zu 0.
Bei dieser Definition muss man später nicht von unerfüllten Klauseln sprechen, sondern erfüllte
Klauseln verschwinden und unerfüllte bleiben bestehen.
20
Definition 3.4 (Gültigkeit, Erfüllbarkeit)
Sei eine Formel ϕ ∈ FAL . Wenn für eine Belegung α gilt ϕα = 1, dann sagen wir α erfüllt ϕ. Die
Formel ϕ heißt erfüllbar, wenn eine Belegung α existiert, die ϕ erfüllt.
Ist eine Formel nicht erfüllbar, dann wird sie auch als unerfüllbar bezeichtnet. Aus der Definition
der Erfüllbarkeit ergibt sich nun unmittelbar das wichtigste Problem der Informatik, das Erfüllbarkeitsproblem.
Definition 3.5 (Erfüllbarkeitsproblem)
Die Menge, die alle erfüllbaren Formeln enthält, wird S AT genannt. Die Frage, ob für eine gegebene Formel ϕ gilt ϕ ∈ S AT, wird als Erfüllbarkeitsproblem bezeichnet.
Nun kommen wir zu einem sehr bedeutsamen Ergebnis der (theoretischen) Informatik. Im Jahre 1971 bewies Stephen Cook das erste mal für ein natürliches Problem, dass es die Eigenschaft
der N P-Vollständigkeit besitzt. Und zwar für das in diesem Abschnitt besprochene Erfüllbarkeitsproblem S AT. Für die Informatik ist dies ein historisches Ereignis, denn von nun an gab es
einen bekannten vollständigen Vertreter der Komplexitätsklasse N P und es konnten weitere Vollständigkeitsbeweise folgen, bei denen das Finden einer Polynomialzeitreduktion von S AT auf das
betreffende Problem genügte. Bis zum heutigen Tage sind hunderte N P-vollständige Probleme
bekannt, die eine praktische Bedeutung haben.
Satz 3.1 (Cook, 1971 [COO71])
Das Erfüllbarkeitsproblem ist N P-vollständig.
Für den Beweis dieser Aussage wird hier auf [COO71] oder [ROT08] verwiesen.
Definition 3.6 (Konjunktive Normalform)
Die Menge der Formeln in konjunktiver Normalform (kurz: KNF) FKNF ⊂ FAL enthält alle Formeln, die das folgende Aussehen haben:
ϕ = ψ1 ∧ ψ2 ∧ · · · ∧ ψM
Die Teilformeln ψi werden als Klauseln bezeichnet und müssen wie folgt aussehen:
ψi = (ui,1 ∨ ui,2 ∨ · · · ∨ ui,ki )
Hierbei sind die ui,j Literale, also:
ui,j ∈ {x1 , x2 , · · · , xN , x̄1 , x̄2 , · · · , x̄N }
Die i-te Klausel hat die Länge |ψi | = ki . Für eine Konstante k befindet ϕ sich in k-konjunktiver
Normalform (kurz: k-KNF), wenn für alle Klauseln ψ in ϕ gilt |ψ| ≤ k.
Definition 3.7 (Einheitsklausel)
Eine Klausel der Länge 1 wird als Einheitsklausel bezeichnet.
Definition 3.8 (Pures Literal)
Sei eine Literal u und eine Formel ϕ ∈ FKNF . Dann gilt, wenn die Klausel (u) in ϕ enthalten ist,
dann ist u ein pures Literal für ϕ.
21
3.2
S AT-Solver
Als S AT-Solver werden im allgemeinen Verfahren bezeichnet, die das k-S AT-Problem entscheiden. Sie erhalten also als Eingabe eine Formel in k-KNF und geben aus, ob diese erfüllbar ist.
Der denkbar einfachste S AT-Solver ist der Brute-Force-Algorithmus, der mit roher Gewalt jede
Belegung des gesamten Suchraums testet und stoppt, sobald eine Belegung die gegebene Formel
erfüllt oder alle Belegungen getestet wurden. Allerdings beträgt die Größe des Suchraums 2N bei
einer Formel mit N Variablen, weswegen wir hier schnell astronomische Laufzeiten erreichen.
Ziel der verschiedenen Verfahren ist es daher, möglichst viele Belegungen als potentiell erfüllbare
ausschließen zu können und so den Suchraum zu verkleinern.
Ein einfaches Beispiel für einen S AT-Solver ist der folgende Backtracking-Algorithmus.
1
2
3
4
5
6
Algorithmus Backtracking(ϕ: Klauselmenge): bool
if ϕ enthält leere Klausel then return 0 ;
if ϕ ist leere Menge then return 1 ;
wähle nach einer beliebigen Heuristik eine Variable x ∈ Var(ϕ) aus
if Backtracking(ϕ{x = 0}) then return 1 ;
return Backtracking(ϕ{x = 1})
Viele andere S AT-Solver basieren auf diesem Algorithmus.
3.3
DPLL
Der DPLL-Algorithmus ist ein S AT-Solver, der auf dem Backtracking-Algorithmus basiert. Er
wurde benannt nach ihren Erfindern Davis, Putnam, Logeman und Loveland (Davis, Putnam, 1960
[DP60] und Davis, Logeman, Loveland, 1962 [DPLL62]). Es ist ein deterministischer und vollständiger S AT-Solver, der wie folgt vorgeht.
1
2
3
4
5
6
7
8
Algorithmus DPLL(F : Klauselmenge): bool
if F enthält leere Klausel then return 0 ;
if F ist leere Menge then return 1 ;
if F enthält Einheitsklausel {u} then return DPLL(F {u = 1}) ;
if F enthält pures Literal u then return DPLL(F {u = 1}) ;
x ← H(ϕ) , wobei H eine Auswahlheuristik ist
if DPLL(F {x = a}) then return 1 ;
return DPLL(F {x = 1 − a})
Wie bereits zu sehen ist, hängt der DPLL-Algorithmus nicht nur von der Eingabe der k-KNFFormel ab, sondern auch von einer Heuristik H : Fk−KNF → V, die eine Variable auswählt, und
von einem Wahrheitswert a, der zuerst getestet wird.
In Zeile 4 des Algorithmus wird eine sogenannte Einheitsresolution (im Englischen: Unit Propagation) durchgeführt. Wenn in einer Formel ϕ in k-KNF eine Einheitsklausel (eine Klausel der
Länge 1; im Englischen: Unit Clause) ψ = (u) existiert, dann ist u erfüllt oder ϕ ist unerfüllbar.
Der DPLL-Algorithmus kann also den Wahrheitswert für die u zugrunde liegende Variable festlegen und ψ und alle anderen Klauseln, die u enthalten, aus ϕ entfernen, ohne an der Erfüllbarkeit
22
x1
Konflikt
(leere Klausel gefunden)
ϕ{x1 = 1}
x2
ϕ{x2 = 1}
ϕ{x3 = 0}
x3
ϕ{x3 = 1}
x3
ϕ{x2 = 0}
x4
ϕ{x4 = 1}
ϕ{x4 = 0}
ϕ{x3 = 0}
ϕ{x3 = 1}
ϕ erfüllbar
(alle Klauseln entfernt)
x4
ϕ{x4 = 0}
ϕ{x4 = 1}
x5
ϕ{x5 = 1}
ϕ{x5 = 1}
x6
ϕ{x6 = 1}
ϕ{x6 = 0}
Abbildung 3.1: DPLL-Algorithmus am Beispiel der im Anhang befindlichen aussagenlogischen
Formel in 3-KNF mit 12 Variablen, die genau eine erfüllende Belegung besitzt. Der Algorithmus
startet hier im Wurzelknoten des Baumes und traversiert mittels Tiefensuche von links nach rechts.
Ein Pfad endet, sobald ein Konflikt auftritt, d. h. wenn eine leere Klausel auftritt. Der Algorithmus
terminiert in dem grün markierten Knoten.
etwas zu verändern. Mit anderen Worten: ϕ und ϕ{u = 1} sind erfüllbarkeitsäquivalent, wenn in
ϕ die Klausel (u) existiert.
Gegenüber dem Backtracking-Algorithmus ist hier noch eine weitere Regel hinzugekommen. In
Zeile 5 des DPLL-Algorithmus findet die sogenannte Pure-Literal-Rule Anwendung. Wenn in
einer k-KNF Formel ϕ ein Literal u vorkommt, aber dessen komplementäres Literal ū nicht in
ϕ vorkommt, dann wird u als pures Literal bezeichnet. In so einem Fall haben wir wieder die
Situation, dass u erfüllt oder ϕ unerfüllbar ist. Und auch hier können wieder alle Klauseln, die
u enthalten aus ϕ entfernt werden, ohne die Erfüllbarkeit anzutasten. Kurz gesagt: Ist u in ϕ ein
pures Literal, dann sind ϕ und ϕ{u = 1} erfüllbarkeitsäquivalent.
In Abbildung 3.1 wird die Funktionsweise des DPLL-Algorithmus beispielhaft illustriert. Nun
wird auch klar, wo der Vorteil gegenüber dem Brute-Force-Ansatz liegt. Für eine Formel mit N
Variablen wird ein Suchbaum erzeugt, dessen Knoten und Kanten für die Variablenauswahl und
die Variablenbelegung stehen. Daher hat der binäre Baum eine maximale Tiefe von N und kann
folglich nicht mehr als 2N Knoten besitzten. Das Beispiel macht deutlich, dass auf einem Pfad ein
Konflikt entstehen kann und der Pfad nicht weiter verfolgt wird, bevor die maximale Tiefe erreicht
wurde. Alle Variablenbelegungen, die auf diesem Pfad noch folgen würden, werden nicht mehr in
Betracht gezogen und der Suchraum wird so verkleinert.
Um die nun folgenden DPLL-Heuristiken möglich kompakt und dabei aber auch präzise zu be(i)
schreiben, ist es sinnvoll zunächst die Werte fϕ (u) und fϕ (u) zu definieren. Für eine k-KNF
(i)
Formel ϕ und ein Literal u gibt fϕ (u) die Anzahl der Vorkommen von u in Klauseln von ϕ der
P
(i)
Länge i an. Die Anzahl der Vorkommen von u in ϕ ist durch fϕ (u) = ki=2 fϕ (u) bestimmt.
23
Greedy DPLL-Heuristiken
DLIS, Dynamic Largest Individual Sum. Es wird die dem Literal arg maxu f (u) zugrundeliegende Variable x ausgewählt und zuerst ϕ{x = 1} durchgeführt. Also
HDLIS (ϕ) = arg max(max(fϕ (x), fϕ (x̄))) , aDLIS = 1 .
x
DLCS, Dynamic Largest Clause Sum. Es wird eine Variable durch
HDLCS (ϕ) = arg max fϕ (x) + fϕ (x̄)
x
ausgewählt. Der zuerst angewendete Wahrheitswert ist durch
aDLCS (ϕ) =
(
1 wenn fϕ (x) ≥ fϕ (x̄)
0 sonst
gegeben. Die Variante dieser Heuristik, bei der die zuerste angewendete Belegung zufällig gewählt
wird, nennt sich RDLCS.
MOM, Maximum Occurence in Minimal Size Clauses. Auswahl der Variable durch
(p)
HMOM (ϕ) = arg max p · (fϕ,l (x) + fϕ,l (x̄)) + fϕ,l (x) · fϕ,l (x̄) .
x
Wobei l die Länge der kleinsten, in ϕ vorkommenden, Klausel ist und p ein Parameter der Heuristik, der hinreichend groß gewählt werden muss, so dass stets gilt
p · (fϕ,l (x) + fϕ,l (x̄)) ≥ fϕ,l (x) · fϕ,l (x̄) .
Das führt dazu, dass die Variable, die in den kleinsten Klauseln am häufigsten vorkommt ausgewählt wird. Gibt es mehrere Kandidaten, dann wird diejenige genommen, deren nichtnegierte und
negierte Literale möglichst gleich oft vorkommen.
Böhms-Heuristik. Für Variable x wird der Vektor J(x) = (J1 (x), J2 (x), · · · , Jk (x)) durch
Ji (x) = p1 · max(fϕ,i (x), fϕ,i (x̄)) + p2 · min(fϕ,i (x), fϕ,i (x̄))
definiert. Die Parameter p1 und p2 können frei gewählt werden. Es ergibt sich nun
(p ,p )
1 2
HBöhm
(ϕ) = arg max J(x) ,
x
wobei der maximale Wert gemäß der lexikographischen Sortierung von J(x) bestimmt wird.
Bohms Heuristik wählt Variablen so, dass viele kleine Klauseln gelöscht werden können und
gleichzeitig möglichst viele kleine Klauseln weiter verkleinert werden, um den Effekt der Einheitsresolution zu verstärken.
24
3.4
Stochastic Local Search
Das Grundprinzip der lokalen Suche wird bei vielen kombinatorischen Problemen angewendet,
nicht nur von SAT-Solvern. Es geht wie folgt:
1. Starte mit irgendeinem Lösungskandiaten für das Problem.
2. Ausgehend davon, dass der Kandidat keine optimale Lösung ist, führe lokale Verbesserungen an ihm durch.
Es gibt viele verschiedene Möglichkeiten solche Startkandidaten zu wählen, eine ist die randomisierte Auswahl. Dann wird von stochastischer lokaler Suche (Englisch: Stochastic Local Search)
gesprochen. SLS wird schon lange gerade bei schweren kombinatorischen Optimierungsroblemen eingesetzt. Ein bekanntes Beispiel ist der Lin-Kerninghan-Algorithmus für das Problem des
Handlungsreisenden aus dem Jahre 1973.
Obwohl Erfüllbarkeitsprobleme keine Optimierungsprobleme, sondern Entscheidungsprobleme
sind, lässt sich auch hier der SLS-Ansatz nutzen. Selman u.a. hat 1992 hierzu einen Algorithmus
mit dem Namen GSAT und dessen Analyse vorgestellt [SEL92]. Dabei wird SLS wie folgt in S ATWelt übertragen: Der Lösungskandidat, mit dem gestartet wird, ist eine Variablenbelegung für eine
gegebene Formel mit Wahrheitswerten, bei der eine lokale Optimierung durchgeführt wird, indem
nach bestimmten Kriterien eine Variable der Formel ausgewählt und dessen Belegung verändert
wird. Dies wird solange getan, bis eine erfüllende Belegung gefunden wurde oder bis solange gesucht wurde, dass die Wahrscheinlichkeit noch eine erfüllende Belegung zu finden, sehr gering ist.
Dann wird davon ausgegangen, dass die Formel unerfüllbar ist. Genauer:
1
2
3
4
5
6
7
8
Algorithmus GSAT(ϕ: Klauselmenge; t1 , t2 : N): bool
for i := 1, 2, ..., t1 do
Wähle eine zufällige und totale Belegung α
for j := 1, 2, ..., t2 do
if ϕα = 1 then return 1 ;
Wähle eine Variable x ∈ Var(ϕ) nach einer Heuristik
α := α[x = 1 − xα]
return 0
Sofern die Formel ϕ erfüllbar ist, ist für die Wahrscheinlichkeit pTP , dass GSAT eine erfüllende
Belegung findet, zwar positiv, aber das gilt ebenso für die Wahrscheinlichkeit PFN , dass keine
gefunden wird, obwohl sie existiert. Auf der anderen Seite gilt, wenn ϕ unerfüllbar ist, dann liefert
GSAT immer ein korrektes Ergebnis, also pFP = 0 und pTN = 1. Denn wenn ϕ keine erfüllende
Belegung besitzt, dann wird die Bedingung in Zeile 5 niemals erfüllt sein und folglich liefert der
Algorithmus niemals den Wert 1 (die Formel ist erfüllbar). Wir haben es hier also mit einem Monte
Carlo Algorithmus zu tun, der einen einseitigen Fehler hat. Oder anders gesagt, es handelt sich um
einen unvollständigen S AT-Solver.
Die Wahrscheinlichkeiten pTP = 1 − pFN hängen von den gewählten Zeitparametern p1 , p2 und
von der verwendeten Heuristik ab. Alternativ kann der Algorithmus auch so modifiziert werden,
dass nicht die Laufzeit fest ist, sondern die Fehlerwahrscheinlichkeit. Dann hinge die Laufzeit des
Algorithmus von einer als akzeptabel deklarierten Fehlerwahrscheinlichkeit ab.
25
Mögliche Heuristiken zur Auswahl der Variable können die folgenden sein.
• Wähle eine Variable, so dass beim Negieren ihrer Belegung die Anzahl der unerfüllten Klauseln in ϕ minimal ist.
• Minimiere die Anzahl der Klauseln, die durch lokale Änderung der der Belegung unerfüllt
werden.
• Weise den Literalen einer Klausel eine Wahrscheinlichkeit mittels einer Heuristik zu (z.B.
eine der beiden obigen) und wähle zufällig auf Basis der Wahrscheinlichkeitsverteilung.
Die beiden ersten Heuristiken verdeutlichen die grundsätzliche Strategie, sind aber in der Praxis
ungeeignet, da sie schnell in lokale Minima geraten. Die dritte bevorzugt zwar bestimmte Literale, aber trifft die Wahl immer noch zufällig und hat daher eine Chance aus lokalen Minima zu
entkommen.
3.5
Random Walk von Schöning
Der Random-Walk-Algorithmus von Schöning wurde veröffentlicht von Uwe Schöning im Jahr
1999 [SCH99] und ist eine Umsetzung des im vorherigen Abschnitt beschriebenen prinzipiellen
GSAT Algorithmus, der eine lokale Suchstrategie verwendet. Schönings Algorithmus nutzt dabei
die folgende Heuristik zur Auswahl der Variablen: Wähle eine durch die Belegung nicht erfüllte
Klausel, aus dieser wähle zufällig ein Literal und verwende dessen zugrundeliegende Variable.
1
2
3
4
5
6
7
8
9
10
11
12
Algorithmus Schoening(ϕ: Klauselmenge): bool
N := |Var(ϕ)|
k := max{|C| | C ∈ ϕ}
t := (2 − 2/k)N
for i := 1, 2, ..., t do
Wähle eine zufällige und totale Belegung α
for j := 1, 2, ..., 3N do
if ϕα = 1 then return 1 ;
Wähle eine Klausel ψ ∈ ϕ mit ψα = 0
Wähle ein Literal u in ψ zufällig
α := α[u = 1 − uα]
return 0
Die Laufzeit des Algorithmus ergibt sich aus der Anzahl der Schleifendurchgänge (Zeile 5) und
beträgt O∗ ((2 − 2/k)N ), wobei der polynomielle Faktor, der sich aus der lokalen Suche und
dem Testen der Variablenbelegung ergibt, hier nicht weiter berücksichtigt wurde. Nimmt man nun
konkrete Werte für k an, so erhalten wir die in der folgenden Tabelle angegebenen Laufzeiten.
k
(2 − 2/k)N
3
1,333N
4
1,5N
5
1,6N
6
1,667N
7
1,714N
8
1,75N
...
...
∞
2N
Tabelle 3.1: Theoretische Laufzeiten für Schönings k-S AT-Algorithmus in Abhängigkeit von k
und der Variablenanzahl N der Eingabeformel.
26
Analyse mittels Markow-Ketten
Nun wird die lokale Suchstrategie in Schönings S AT-Algorithmus mit Hilfe vom Markowketten
analysiert. Zunächst folgt daher eine Definition des Begriffs der Markowkette, die auf [HAG02]
basiert.
Definition 3.9 (Markowkette)
Ein diskreter stochastischer Prozess (Xt )t∈N0 mit Werten aus dem endlichen Zustandsraum S =
{s1 , s2 , ..., sn } für alle Xt , heißt Markowkette mit Übergangsmatrix A, genau dann wenn für alle
t ∈ N0 und s0 , s1 , ..., st , st+1 ∈ S mit
P (Xt = st , Xt−1 = st−1 , ..., X0 = s0 ) 6= 0 und
die folgenden beiden Aussagen gelten:
1. P (Xt+1 = st+1 | Xt = st , Xt−1 = st−1 , ..., X0 = s0 ) = P (Xt+1 = st+1 | Xt = st ) und
2. ∀r, s ∈ S : P (Xt ) 6= 0 ⇒ P (Xt+1 = r | Xt = s) hängt nicht von t ab.
Eine stochastische Matrix P = (pi,j )ni,j=1 mit P (Xt+1 = j | Xt = i) = pi,j wird als Übergangsmatrix der Markowkette bezeichnet.
Das Ziel der Analyse ist es, die Wahrscheinlichkeit q = q(N ) zu bestimmen, mit der während der
lokalen Suche in Schönings Algorithmus (vgl. obigen Algorithmus Zeile 7 bis 11) eine erfüllende
Belegung für die Eingabeformel gefunden wird. Die Anzahl t der notwendigen Wiederholungen,
damit die Wahrscheinlichkeit, eine erfüllende Belegung zu finden, nahe bei 1 liegt, kann dann
durch O(1/q(N )) bestimmt werden.
Da die folgende Analyse eine obere Abschätzung ist, nehmen wir an, dass nur eine erfüllende
Belegung existiert. Sei ϕ eine Formel mit N Variablen und α∗ die erfüllende Belegung für ϕ.
Nun sei weiterhin α eine zufällig gewählte Belegung für ϕ und die Zufallsvariable H gebe die
Hamming-Distanz zwischen α und α∗ an. Da wir die lokale Suche mit einer zufällig gewählten
Belegung starten, beträgt die erwartete Hamming-Distanz zu Beginn N/2. H ist binominalverteilt
und es gilt
N
Pr(H = j) =
2−N .
j
Nun wissen wir, dass in jeder Klausel von ϕ mindestens ein Literal existiert, dass durch α erfüllt
wird. Die Wahrscheinlichkeit das der Algorithmus zufällig dieses Literal auswählt, und somit
durch Änderung der Belegung der zugrundeliegenden Variable die Hammbing-Distanz H um 1
verringert, beträgt 1/k. Wir können also festhalten, dass im erwarteten Fall H = N/2 zumindest
N/2 Suchschritte notwendig sind, um die erfüllende Belegung zu finden.
Wenn wir nun die lokale Suche von Schöning als Markowkette modellieren, erhalten wir den Zustandsgraph in Abbildung 3.2. Der Zustand S ist der Startzustand und die übrigen Zustände stehen
für die entsprechende Hamming-Distanz zwischen der aktuellen Belegung α und der erfüllenden
α∗ . Die Kantenbeschriftungen sind die Zustandsübergangs-Wahrscheinlichkeiten. Die Frage ist
nun, wie groß ist die Wahscheinlichkeit nach s Schritten den Zustand 0 zu erreichen.
27
n
0
S
2−n
n −n
1 2
n −n
2 2
n
n
n
j+1
n
j−1
0
1
1
k
1
k−1
k
1
k
erfüllende
Belegung
2
k−1
k
1
k
···
2−n
k−1
k
1
k
j−1
n
j
k−1
k
j
2−n
k−1
k
1
k
1
k
2−n
2−n
k−1
k
j+1
1
k
···
k−1
k
n
1
k
Abbildung 3.2: Schönings lokale Suche modelliert als Markowkette. Dargestellt durch einen Zustandsautomaten mit den Übergangswahrscheinlichkeiten als Kantenbeschriftung. Mit dem Zustand S als Startzustand und dem Zustand 0, in dem die erfüllende Belegung gefunden wird.
Aus dem Zustandsautomaten ergibt sich nun die folgende Übergangsmatrix mit den ZustandsübergangsWahrscheinlichkeiten.

0
0

0


0
P=
0

 ..
.

0
0
n
0
2−n
1
1/k
0
0
..
.
0
0

n −n
n −n
n −n
n −n
2
2
...
2
2
2−n
n
4
3
2

0
...
0


0
(k − 1)/k
0
0
0
0


1/k
0
(k − 1)/k
0
0
0



0
1/k
0
(k − 1)/k 0
0

..
..
..
..
..
..


.
.
.
.
.
.

0
0
0
1/k
0 (k − 1)/k 
0
0
0
0
1/k
0
n
1
Im folgenden bezeichnet der Ausdruck w[i] den Wert wi eines Vektors w = (w1 , w2 , ..., wk ). Gemäß des Markowketten-Modells beträgt die Wahrscheinlichkeit nach t Zeitschritten den Zustand
z zu erreichen
Pr(Xs = z) = (~v Ps )[z]
Demzufolge ist die Wahrscheinlichkeit, dass bei einer lokalen Suche, wie sie im Algorithmus
Schoening durchgeführt wird, die erfüllende Belegung, also den Zusatnd 0, nach 3N Zeitschritten zu erreichen, gleich
Pr(X3N = 0) = (~v P3N )[0]
In seiner Analyse stellt Schöning für diese Wahrscheinlichkeit eine obere Abschätzung mit Hilfe
des sogenannten „Ballot theorems“ [FEL68] an. Um zu erfahren, wie nahe diese obere Abschätzung an die Werte aus dem Markowketten-Modell heranreicht, wurde die Markowkette für die
Werte N = 30, 90, 270, 810 simuliert und dessen Ergebnisse in den folgenden Diagrammen in
Abbildung 3.3 dargestellt. Es ist zu beobachten, dass die Wahrscheinlichkeit schon nach weniger
als 3N Schritten (gekennzeichnet durch die gestrichelte Linie) den fast höchsten Wert erreicht.
Somit könnte die Abschätzung von Schöning möglicherweise noch verbessert werden.
28
1.5
P r(Xs = 0)
P r(Xs = 0)
×10−4
1.0
0.5
N = 30
0.0
30
60
90
120
150
×10−34
1.5
1.0
0.5
N = 270
0.0
0
270
×10−12
N = 90
0
90
180
270
360
450
s
540
×10−102
P r(Xs = 0)
P r(Xs = 0)
2.0
0
s
180
6
5
4
3
2
1
0
540
s
810 1080 1350 1620
6
5
4
3
2
1
0
N = 810
0
810
s
1620 2430 3240 4050 4860
Abbildung 3.3: Die Wahrscheinlichkeit, dass Schönings lokale Suche die erfüllende Belegung
findet, in Abhängigkeit der Schrittanzahl s und der Variablenanzahl N im Fall k = 3.
Die obere Abschätzung der Laufzeit von Schönings Algorithmus beruht auf der Annahme, dass die
Eingabeformel genau eine erfüllenden Belegung besitzt und dass in jeder Klausel der Formel genau ein Literal durch diese Belegung erfüllt ist. Daher beträgt die Wahrscheinlichkeit, dass wir bei
einem lokalen Suchschritt in einer Klausel das richtige Literal auswählen, gerade 1/3. Allerdings
müssen wir dann auch beachten, dass in einer solchen Formel ein Ungleichgewicht der positiven
und negativen Literale herrscht. Gehen wir einmal davon aus, dass (1)N unsere erfüllende Belegung der N Variablen ist, dann stehen N positive und N negative Literale zur Verfügung. Besitzt
unsere Formel in 3-KNF M Klauseln, so benötigen wir M der positiven und 2M der negativen
Literale um die Klauseln zu befüllen. Eine solche Formel mag den Worst-Case für Schönings Algorithmus darstellen, aber für einen DPLL-Algorithmus mit einer entsprechenden Heuristik wird
sie kein großes Problem darstellen, da durch das Ungleichgewicht der Literale die Formel bei der
Resolution schnell verkleinert werden kann und somit Konflikte schneller auftreten, als wenn positive und negative Literale aller Variablen gleich oft auftreten. Wir müssen also festhalten, dass eine
Formel, die einen Worst-Case für Schönings lokalen Suchalgorithmus darstellt, nicht unbedingt im
Allgemeinen schwer auf Erfüllbarkeit zu prüfen ist.
Ein weiterer Aspekt für die Frage, wie lange es dauert eine existierende erfüllende Belegung zu
finden, ist die Abhängigkeit der Klauseln untereinander. Nehmen wir einmal an, eine Variable x
kommt in zwei unterschiedlichen Klauseln c, d in einer Formel als positives in c und negatives
in d vor und nehmen wir weiter an, dass c durch die aktuelle Belegung nicht erfüllt und d erfüllt
ist, dann kann es passieren, wenn der Algorithmus in einem lokalen Suchschritt die Klausel c
auswählt und sich zufällig für das Literal x entscheidet, was zur Änderung von dessen Belegung
führt. Wodurch dann die Klausel c erfüllt ist und die Klausel d ist es nicht mehr. Wir stellen also
fest, der nötige Aufwand des Algorithmus, eine erfüllende Belegung zu finden hängt auch von den
Abhängigkeiten zwischen den Klauseln ab.
29
3.6
Ein Verfahren basierend auf Message-Passing
Diese Methode ist motiviert durch das Ising-Modell aus der statistischen Physik und gehört in die
Klasse der Message Passing Algorithmen. Das nun folgende Verfahren ist randomisiert und nicht
vollständig. Die Suchstrategie nach einer erfüllenden Belegung läuft wie folgt ab:
• Eine Klausel fragt die in ihr enthaltenen Variablen, mit welcher Wahrscheinlichkeit sie eine
Belegung annehmen, so dass die Klausel erfüllt wird.
• Je schlechter die Gesamtsituation, desto stärker fordert die Klausel von den Variablen ihre
Belegung zu ändern.
• Wenn sich die Forderungen der Klauseln an die Variablen und die eventuelle Zustimmung
der Variablen kaum noch verändern, dann wird die Verhandlung beendet und die Variablen
dem stärksten Trend entsprechend belegt.
• Falls die Belegung nicht erfüllend ist, wird eine neue Verhandlung gestartet.
In diesem Verfahren kommunizieren die Klauseln mit den Variablen, die in ihnen vorkommen
und die Variablen mit den Klauseln in denen sie enthalten sind. Ein Graph, der die Kommunikationsteilnehmer und Kommunikationsverbindungen darstellt, ist ein bipartiter Graph mit zwei
Kantentypen. Es kann sein, dass die Verhandlungen nicht konvergieren.
3.7
Conflict Driven Clause Learning
Hierbei handelt es sich um einen deterministischen und vollständigen SAT-Algorithmus, der eine
Weiterentwicklung des DPLL-Verfahrens darstellt.
1
2
3
4
5
6
7
8
9
Algorithmus CDCL(F : Klauselmenge): bool
while Var(F) 6= ∅ do
wähle eine Variable x und belege sie mit einem Wahrheitswert w (Entscheidung)
führe Einheitsresolution F {x = w} durch
berechne den Implikationsgraph G von F unter der Annahme, dass F erfüllbar
if G enthält Konflikt then
bestimme Konfliktklausel C und füge sie F hinzu
mache geeignete Entscheidungen rückgängig, s.d. C eine Einheitsklausel ist
return 1
Im Implikationsgraph werden zunächst die Knoten zugefügt, die eine Zuweisung eines Wahrheitswertes zu einer Variable darstellen. Weiterhin werden die Knoten eingefügt, die unter der Annahme, dass die Formel erfüllbar ist, eine Implikation eines Wahrheitswertes zu einer Variablen
darstellen. Die Implikationen werden durch Kanten mit den entsprechenden Zuweisungen verbunden. Wenn zum Beispiel die Klausel (x1 , x2 ) in einer Formel enthalten ist und x1 = 0 zugewiesen
wird, dann erhalten wir die Implikation x2 = 1.
30
Wenn in einem Implikationsgraph ein Konflikt existiert, kann eine Konfliktklausel konstruiert werden. Man identifiziert die beiden Knoten, die einen Konflikt darstellen, und nimmt die Variablen
der Knoten, die mit einer der beiden Konfliktknoten direkt verbunden sind, in eine Klausel auf.
Wenn die Variablen im entsprechenden Knoten den Wahrheitswert 1 erhalten haben, dann wird sie
negiert.
3.8
Vorstellung von implementierten S AT-Solvern
EagleUP
Der S AT-Solver EagleUP wurde von Oliver Gableske u. a. an der Universität Ulm entwickelt und
2011 veröffentlicht [GAB11]. Er kombiniert Paradigma Stochastic Local Search mit der Einheitsresolution und ist speziell für zufällige, erfüllbare 3-S AT-Formeln optimiert. Dieser Solver hat
den dritten Platz bei der S AT Competition 2011 in der Kategorie „zufällige erfüllbare Formeln“
erreicht. EagleUP besitzt keine Parallelverarbeitungfunktionalität und wurde in der Porgrammiersprache C implementiert. Da er auf SLS basiert, ist er ein randomisierter, nicht vollständiger S ATSolver.
adaptg2wsat
Dieser S AT-Solver wurde entwickelt von Wanxia Wei, Chu Min Li und Harry Zhang von der University of New Brunswick beziehungsweise Université de Picardie Jules Verne und wurde im Jahr
2007 zum ersten mal veröffentlicht [WEI07], aber später noch weiterentwickelt. Er kombiniert
den Adaptive Noise und Look-Ahead Mechanismus für das Stochastic Local Search Paradigma
und ist daher ein randomisierter nicht vollständiger S AT-Solver. adaptg2wsat erzielte bei der S AT
Competition 2011 einen der vorderen Plätze in der Kategorie „zufällige erfüllbare Formeln“.
ppfolio
Bei ppfolio handelt es sich um einen sogenannten Parallel Portfolio Solver. Das heißt, er startet
verscheidene S AT-Solver und lässt diese parallel laufen. Wenn einer von ihnen eine Lösung findet,
dann werden auch die anderen terminiert. ppfolio wurde entwickelt von Olivier Roussel an der
Universität Artois und 2011 veröffentlicht [ROU11]. Dieser Portfolio Solver verwendet nachfolgende S AT-Solver.
• cryptominisat (Mate Soos)
• lingeling/plingeling (Armin Biere)
• clasp (Martin Gebser, Benjamin Kaufmann, Torsten Schaub)
• TNM (Wanxia Wei, Chu Min Li)
• march_hi (Marijn Heule, Hans Van Maaren)
31
Er unterstützt Parallelverarbeitung mit beliebig vielen Prozessen, wobei zunächst jeder Solver
einen Prozessorkern zugewiesen bekommt. Wenn mehr als fünf Prozesse verwendet werden, bekommt lingeling die übrigen Ressourcen zur Verfügung gestellt. ppfolio ist ein vollständiger S ATSolver. Es gibt von diesem Solver verschiedene Versionen, die für verschiedene Arten von Formeln
optimiert sind. In dieser Arbeit wurde die Variante gewählt, die für zufällige Formeln angepasst
ist.
sattime
Sattime ist ein Stochastic Local Search S AT-Solver, der sich die Erfüllbarkeitshistorie der Klauseln
zunutze macht, um zu entscheiden welche Variable bei der lokalen Suche als nächstes ausgewählt
wird. sattime wurde von Chun Min Li u. a. an der Universität der Pikardie Jules Verne entwickelt
und 2012 veröffentlicht [LI12]. Er hat aber bereits an der SAT Competition 2011 teilgenommen
und den zweiten Platz in der Kategorie „zufällige erfüllbare Formeln“ gewonnen. Auch für diesen
Solver gilt: Da es ein auf SLS basierender Solver ist, ist er randomisiert und nicht vollständig.
selector
Hier handelt es sich um einen Portfolio S OLVER, der zunächst eine umfangreiche Analyse der
Eingabeformel durchführt, um dann aus einem Portfolio von Solvern einen auszuwählen, der am
ehesten geeignet scheint, um die Erfüllbarkeit der Formel festzustellen. Er wurde entwickelt von
Meinolf Sellmann und verwendet die nachfolgenden S AT-Solver.
• adaptg2wsat2009, adaptg2wsat2009++ (Wanxia Wei, Chu Min Li, Harry Zhang)
• clasp (Martin Gebser, Benjamin Kaufmann, Torsten Schaub)
• cryptominisat (Mate Soos)
• glucose (Gilles Audemard, Laurent Simon)
• gnovelty+2, gnovelty+2-H (Duc-Nghia Pham, Charles Gretton)
• hybridGM3
• kcnfs04SAT07
• lingeling (Armin Biere)
• LySATc, LySATi (Youssef Hamadi, Saïd Jabbour, Lakhdar Saïs)
• march_hi, march_nn (Marijn Heule, Hans Van Maaren)
• minisat (Niklas Sorensson)
• mxc-sat09
• picosat, precosat (Armin Biere)
• SATenstein
32
• TNM (Wanxia Wei, Chu Min Li)
• ubcsat
sparrow
Der S AT-Solver sparrow wurde von Andreas Balint u. a. an der Universität Ulm entwickelt und
basiert auf dem Stochastic Local Search Paradigma. Daher handelt es sich um einen randomisierten, nicht vollständigen Solver. Die in dieser Arbeit verwendete Version wurde 2011 veröffentlich
[BAL11]. Er erreichte den ersten Platz bei der S AT Competition 2011 in der Kategorie „zufällige
erfüllbare Formeln“.
cirminisat
Bei diesem Solver handelt es sich um eine Weiterentwicklung des S AT-Solvers Minisat von Niklas
Eén und Niklas Sörensson, der auf dem Paradigma Conflict Driven Clause Learning und somit
auch auf dem DPLL Algorithmus basiert. Er wurde entwickelt von Tomohiro Sonobe und Mary
Inaba an der Universität Tokio und 2012 veröffentlicht [SON12], hat aber bereits an der S AT
Competetion 2011 teilgenommen.
MPhaseSAT
Der S AT-Solver MPhaseSAT basiert auf Confilict Driven Clause Learning und somit ebenfalls auf
dem DPLL Algorithmus. Desweiteren kommen Methoden wie Phase Selection, Boolean Constraint Propagation und Conflict Analysis zum Einsatz. Er wurde entwickelt von Jingchao Chen
und 2011 veröffentlicht [CHE11]. Bei der S AT Competition hat es MPhaseSAT in vielen Kategorien auf die vorderen Plätze geschafft. Es ist ein vollständiger Solver.
plingeling
Der S AT-Solver plingeling ist die parallelisierte Variante von lingeling. lingeling wurde entwickelt
von Armin Biere und ist ein Confilict Driven Clause Learning basierter vollständiger Solver. In
dieser Arbeit wurde die 2011 veröffentlichte Variante eingesetzt [BIE11].
33
34
Kapitel 4
Konstruktion von S AT-Formeln
4.1
Reduktion von Graph-Färbbarkeit
Konstruktion 3-färbbarer Zufallsgraphen
Einen Zufallsgraphen, der die Eigenschaft der 3-Färbbarkeit besitzt, kann durch folgendes Vorgehen konstruiert werden. Man erstellt drei gleich große Mengen von Knoten und färbt alle Knoten
innerhalb einer Menge mit der gleichen Farbe. Nun iteriert man durch alle Knotenpaarungen mit
der Bedingung, dass die zwei Knoten nicht aus der gleichen Menge stammen. Mit einer Wahrscheinlichkeit p wird eine Kante zwischen die beiden Knoten zugefügt. Der folgende Algorithmus
3ColorableGraph präzisiert diese Konstruktionsmethode. Er konstruiert einen ungerichteten,
3-färbbaren Zufallsgraphen G = (V, E) mit |V | = n Knoten und einer erwarteten Anzahl von
n 2n n n
pn2
EW (|E|) = p ·
·
+ ·
=
3 3
3 3
3
Kanten.
1
2
3
4
5
6
7
Algorithmus 3ColorableGraph(n: N, p: [0, 1]): Graph
V := {v1,1 , ..., v1,n/3 } ∪ {v2,1 , ..., v2,n/3 } ∪ {v3,1 , ..., v3,n/3 }
E := ∅
forall the vi,s , vj,t ∈ V mit i 6= j und vi,s < vj,t do
wähle r ∈ {0, 1} zufällig mit P (0) = 1 − p und P (1) = p
if r = 1 then E := E ∪ {{vi,s , vj,t }};
return (V, E)
Reduktion von 3-Färbbarkeit auf 3-S AT
Um das 3-Färbbarkeitsproblem für einen gegebenen Graphen G = (V, E) in das Erfüllbarkeitsproblem für eine Formeln in 3-KNF zu überführen, beginnen wir mit folgender Überlegung. Für
jeden Knoten v ∈ V können wir Aussagen über die dessen Farbe formulieren.
• xv,1 := „v ist mit 1 gefärbt“
35
• xv,2 := „v ist mit 2 gefärbt“
• xv,3 := „v ist mit 3 gefärbt“
Wir sagen G ist 3-färbbar genau dann, wenn für jeden Knoten v ∈ V mindestens eine der obigen
Aussagen wahr ist und folgendes gilt: Existiert eine Kante {u, v} ∈ E und es gilt xv,c für eine
Farbe c ∈ {1, 2, 3}, dann gilt auch x̄u,c . Weiterhin gilt
xv,c ⇒ x̄u,c ⇔ x̄u,c ∨ x̄u,c .
Die obeigen Aussagen lassen sich einfach als aussagenlogische Klauseln formulieren und zu einer
Formel in 3-KNF zusammensetzen. Dies tut der folgende Algorithmus ColoringTo3SAT. Er
liefert eine Formel in 3-KNF mit N = 3 · |V | Variablen und M = |V | + 3 · |E| Klauseln, wobei
|V | Klauseln die Länge 3 und 3 · |E| die Länge 2 haben.
1
2
3
4
5
6
7
8
9
function ColoringTo3SAT((V, E): Graph): Klauselmenge
ϕ := ∅
forall the v ∈ V do
ϕ := ϕ ∪ {(xv,1 ∨ xv,2 ∨ xv,3 )}
forall the {u, v} ∈ E do
ϕ := ϕ ∪ {(x̄v,1 ∨ x̄v,1 )}
ϕ := ϕ ∪ {(x̄v,2 ∨ x̄v,2 )}
ϕ := ϕ ∪ {(x̄v,3 ∨ x̄v,3 )}
return ϕ
Zufällige erfüllbare 3-S AT-Formeln durch 3-Färbbarkeit
Diese beiden Methoden lassen sich nun kombinieren, um (teilweise) zufällige, erfüllbare 3-S AT
Formeln zu generieren.
1
2
3
4
function ColoringCNF(n: N, p: [0, 1]): Klauselmenge
G = (V, E) := 3ColorableGraph (n, p)
ϕ := ColoringTo3SAT (G)
return ϕ
Wir erhalten eine Formel in 3-KNF mit
N = 3 · |V | = 3n
Variablen und einer erwarteten Anzahl von Klauseln
M = |V | + 3 · |E| = n + 3 · EW (|E|)
⇔ E(M ) = n + pn2 .
36
4.2
Reduktion von Hypergraph-Färbbarkeit
Konstruktion zufälliger, 3-färbbarer Hypergraphen
Ähnlich wie einen 3-färbbaren Zufallsgraph genieren wir auch einen 3-färbbaren, zufälligen und 3uniformen Hypergraph. Zunächst erzeugen wir n Kanten und färben diese mit drei Farben beliebig,
aber so, dass alle drei Farben gleich oft vorkommen (abgesehen
vom Rest, wenn die Knotenanzahl
n
nicht durch drei teilbar ist). Nun iterieren wir durch die 3 möglichen Kanten: Falls die Knoten
nicht alle gleich gefärbt sind, existiert diese Kante mit einer Wahrscheinlichkeit von p.
1
2
3
4
5
6
7
8
9
Algorithmus 3ColorableHGraph(n: N, p: [0, 1]): Hypergraph
V := {0, 1, ..., n − 1}
E := ∅
Färbung c : V → {0, 1, 2} mit c(v) = v mod 3
forall the i, j, k ∈ V mit i < j < k do
if c(i) 6= c(j) ∨ c(i) 6= c(k) ∨ c(j) 6= c(k) then
Wähle r ∈ {0, 1} zufällig mit P (r = 1) = p und P (r = 0) = 1 − p
if r = 1 then E := E ∪ {{i, j, k}};
return (V, G)
Der resultierende Hypergraph hat |V | = n Knoten und eine erwartete Anzahl
!
n
n/3
EW (|E|) = p ·
−3
3
3
von Kanten.
Reduktion Hypergraph-Färbbarkeit auf 3-S AT
Um das 3-Färbbarkeitsproblem für Hypergraphen auf das 3-S AT-Probelm zu reduzieren gehen wir
ähnlich vor wie bei der Reduktion von 3-Färbbarkeit von Graphen in Abschnitt 7. Gegeben sei ein
Hypergraph H = (V, E) mit E ⊆ {{u, v, w} | u, v, w ∈ V und u < v < w}. Für jeden Knoten
in v ∈ V definieren wir die folgende Aussagen.
• xv,1 := „v ist mit 1 gefärbt“
• xv,2 := „v ist mit 2 gefärbt“
• xv,3 := „v ist mit 3 gefärbt“
Wenn von diesen Aussagen für jeden Knoten jeweils mindestens eine wahr ist und wenn für jede
Kante {i, j, k} ∈ E alle folgenden Aussagen gelten.
• xi,0 ⇒ x̄j,0 ∨ x̄k,0
• xi,1 ⇒ x̄j,1 ∨ x̄k,1
• xi,2 ⇒ x̄j,2 ∨ x̄k,2
37
Genau dann ist H mit drei Farben färbbar. Der Algorithmus HColoringTo3SAT überführt nach
diesem Prinzip den Hypergraph H in eine 3-S AT Formel, die genau dann erfüllbar ist, wenn H
3-färbbar ist.
1
2
3
4
function HColoringTo3SAT((V, E): Hypergraph): Klauselmenge
ϕ := ∅
forall the v ∈ V do
ϕ := ϕ ∪ {(xv,0 ∨ xv,1 ∨ xv,2 )}
forall the {i, j, k} ∈ E do
ϕ := ϕ ∪ {(x̄i,0 ∨ x̄j,0 ∨ x̄k,0 )}
ϕ := ϕ ∪ {(x̄i,1 ∨ x̄j,1 ∨ x̄k,1 )}
ϕ := ϕ ∪ {(x̄i,2 ∨ x̄j,2 ∨ x̄k,2 )}
5
6
7
8
return ϕ
9
Die resultierende Formel in 3-KNF besitzt N = 3 · |V | Variablen und M = |V | + 3 · |E| Klauseln.
Das Verhältnis von Klauseln zu Variablen beträgt
M
1 |E|
= +
.
N
3 |V |
Zufällige erfüllbare 3-S AT-Formeln durch Hypergraph-Färbbarkeit
Diese zwei Verfahren aus den letzten beiden Abschnitten können nun verwendet werden, um (teilweise) zufällige, garantiert erfüllbare 3-S AT Formeln zu erzeugen.
1
2
3
4
function HColoringCNF(n: N, p: [0, 1]): Klauselmenge
G = (V, E) := 3ColorableHGraph (n, p)
ϕ := HColoringTo3SAT (G)
return ϕ
Wir erhalten eine Formel in 3-KNF mit
N = 3 · |V | = 3n
Variablen und einer erwarteten Anzahl von Klauseln
EW (M ) = |V | + 3 · EW (|E|)
!
n
n/3
= n + 3p ·
−3
.
3
3
4.3
Reduktion von X3 C
Wie bereits in Abschnitt 2.4 ausgeführt wurde, handelt es sich bei dem X3 C um einen Spezialfall
des Problems der exakten Überdeckung oder wie es im Englischen genannt wird, Exact-Cover.
Um randomisierte, erfüllbare Formeln auf Basis von X3 C zu konstruieren, werden wir zunächst
randomisierte X3 C-Instanzen generieren und davon ausgehend eine Reduktion auf S AT durchführen.
38
Zufällige positive X3 C-Instanzen
Gegeben sei eine Grundmenge U = {1, 2, ..., m}, dann ist eine triviale, U überdeckende Tripelmenge durch S = {{1, 2, 3}, {4, 5, 6}, ..., {n − 2, n − 1, n}} gegeben. Wenn wir erstens nun noch
Tripels mit Werten, die zufällig und für jedes Tripel ohne zurücklegen aus U gewählt werden, zu S
hinzufügen und zweitens die Menge U vor der Zerlegung zufällig permutieren, dann erhalten wir
eine nicht-triviale Tripelmenge S, die U überdeckt, mit zufälligem Charakter. Nach diesem Ansatz
erzeugt der folgende Algorithmus zufällige X3 C-Probleminstanzen, die durch n, m parametrisiert
sind. Die Größe der resultierenden Tripelmenge ist dabei durch n bestimmt und die Größe der
Grundmenge durch m.
1
2
3
4
5
6
7
8
9
10
Algorithmus X3CInstance(n, m: N): X3C-Instanz
U := {1, 2, ..., m}
S := ∅
while U 6= ∅ do
Wähle x, y, z ∈ U zufällig ohne zurücklegen
S := S ∪ {(x, y, z)}
k := n − m/3
Wähle S1 , ..., Sk ∈ {(x, y, z) ∈ U 3 | x < y < z} zufällig mit zurücklegen
S := S ∪ {S1 , ..., Sk }
return (U, S)
Reduktion von X3 C auf k-SAT
1
2
3
4
function X3CToSAT(U : Grundmenge, S: Menge von 3-Tupeln über U ): Klauselmenge
ϕ := ∅
forall the j ∈ {1, 2, ..., |U |} do
n _
o
ϕ := ϕ ∪
xi
i mit j∈Si
5
6
7
8
forall the j, k ∈ {1, 2, ..., |S|} mit j < k do
if Sj ∩ Sk 6= ∅ then
ϕ := ϕ ∪ {(x̄j ∨ x̄k )}
return ϕ
Nun werden X3 C-Probleminstanzen (U, S) auf S AT-Formeln in n-KNF reduziert, wobei n = |S|.
Für jedes Tripel in Si ∈ S verwenden wir eine xi . Die Variable ist wahr, genau dann wenn das
zugeordnete Tripel zur exakten Überdeckung gehört. Die beiden folgenden Aussagen sind genau
dann erfüllt, wenn S 0 ⊆ S eine exakte Überdeckung von U darstellt.
• Für jedes j ∈ U existiert ein Si ∈ S 0 das j enthält.
• Für alle Sj , Sk ∈ S 0 gilt Sj ∩ Sk = ∅.
Diese Aussagen können mit Hilfe der Variablen x1 , ..., xn auch in Form von aussagenlogischen
39
Klauseln formuliert werden, was der Algorithmus X3CToSAT für einen gegebene X3 C-Instanz
umsetzt. Die resultierende Formel ϕ enthält
N = |S| Variablen und für die Anzahl der Klauseln
|S|
gilt die obere Grenze M ≤ |U | + 2 .
Zufällige erfüllbare k-S AT-Formeln durch X3 C
Mit Hilfe der beiden obigen Methoden können nun randomisierte Formeln in n-KNF erzeugt
werden.
1
2
3
4
function X3CCNF(n, m: N): Klauselmenge
(U, S) := X3CInstance(n, m)
ϕ := X3CToSAT(U, S)
return ϕ
Um Formeln zu erzeugen, die in 3-KNF sind, können n-Klauseln wie folgt zerlegt werden. Sei
eine Klausel ψ = (u1 ∨ u2 ∨ ... ∨ uk ), dann ist die folgende Aussage genau dann erfüllt, wenn ψ
erfüllt ist.
k−2
^
(u1 ∨ u2 ∨ w1 ) ∧
(w̄i ∨ ui+2 ∨ wi+1 ) ∧ (w̄n−1 ∨ uk−1 ∨ uk )
i=1
Die neuen Variablen w1 , ..., wk−1 werden dabei in die Formel eingefügt. Mit dieser Vorgehensweise können Klauseln in dieser Formel zerlegt werden, ohne dass sich an der Erfüllbarkeit der
Formel etwas ändert.
4.4
Reduktion von Teilgraph-Isomorphie
Konstruktion zufälliger positiver T I-Instanzen
Nach dem folgenden randomisierten Prinzip kann eine positive Probleminstanz für das TeilgraphIsomorphie-Problem generiert werden. Erzeuge einen Zufallsgraphen G, fertige unter Umbenennung der Knoten eine Kopie H von G an, füge H weitere Knoten und Kanten hinzu. Der nachfolgende Algorithmus beschreibt das Verfahren genauer.
1
2
3
4
5
6
7
8
9
10
function TIInstance(n, m: N; p: [0, 1]): Klauselmenge
G = (VG , EG ) := Gn,p mit VG = {1, 2, ..., n}
H = (VH , EH ) := kopiere(G)
Knotenumbenennung(H)
VH := VH ∪ {n + 1, n + 2, ..., n + m}
forall the s ∈ VH , t ∈ {n + 1, n + 2, ..., n + m} do
if s 6= t then
Wähle r ∈ {0, 1} zufällig mit P (0) = 1 − p und P (1) = p
if r = 1 then EH := EH ∪ {{s, t}};
return (G, H)
40
Reduktion von T I auf k-S AT
Gegeben die Graphen G = (VG , EG ) mit |VG | = nG und H = (VH , EH ) mit |VH | = nH . Für alle
vi ∈ VG , wj ∈ VH sei eine aussagenlogische Variable xi,j , die genau dann mit dem Wahrheitswert
1 belegt wird, wenn vi auf wj abgebildet wird.
G ist genau dann zu einem beliebigen Teilgraphen von H isomorph, wenn die nachfolgenden
Aussagen wahr sind.
W H
• Für alle vi ∈ VG gilt nj=1
xi,j . (So wird sichergestellt, dass jeder Knoten von G auf einen
Knoten von H abgebildet wird.)
• Für alle vi ∈ VG und alle j, k ∈ {1, 2, ..., nH } mit j < k gilt x̄i,j ∨ x̄i,k . (So ist garantiert,
dass jeder Knoten aus G auf maximal einen Knoten aus H abgebildet wird.)
• Für alle i ∈ {1, 2, ..., nH } und alle j, k ∈ {1, 2, ..., nG } mit j < k gilt x̄j,i ∨ x̄k,i . (Dadurch
wird garantiert, dass maximal ein Knoten aus G auf einen Knoten von H abgebildet wird.)
• Für alle i, j ∈ {1, 2, ..., nG } mit i < j und (vi , vj ) ∈ EG und für alle k, l ∈ {1, 2, ..., nH }
mit k < l und (wk , wl ) ∈
/ EH gilt x̄i,k ∨ x̄j,l und x̄i,l ∨ x̄j,k . (So wird sichergestellt, dass
jede Kante von G nur auf eine in H existierende Kante abgebildet werden kann.)
Aus diesen Aussagen können nun aussagenlogische Klauseln formuliert werden, die durch Konjunktion verbunden sind. Der nachfolgende Algorithmus TIToSAT setzt das in die Tat um.
Die resultierende Formel ist in |VH |-KNF und hat N = |VH | · |VG | Variablen. Die Anzahl der
Klauseln hängt von der Anzahl der Knoten und Kanten beider Graphen ab.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function TIToSAT((VG , EG ), (VH , GH ): Graph): Klauselmenge
ϕ := ∅
forall the vi ∈ VG do
ϕ := ϕ ∪
H|
n |V_
xi,j
o
j=1
forall the vi ∈ VG do
forall the j, k ∈ {1, 2, ..., |VH |} mit j < k do
ϕ := ϕ ∪ {(x̄i,j ∨ x̄i,k )}
forall the i ∈ {1, 2, ..., |VH |} do
forall the j, k ∈ {1, 2, ..., |VG |} mit j < k do
ϕ := ϕ ∪ {(x̄j,i ∨ x̄k,i )}
forall the i, j ∈ {1, 2, ..., |VG |} mit i < j und (vi , vj ) ∈ EG do
forall the k, l ∈ {1, 2, ..., |VH |} mit k < l und (wk , wl ) ∈
/ EH do
ϕ := ϕ ∪ {(x̄i,k ∨ x̄j,l ), (x̄i,l ∨ x̄j,k )}
return ϕ
41
Konstruktion von zufälligen k-S AT-Formeln durch T I
Der Algorithmus TICNF generiert Formeln in (n + m)-KNF mit n(n + m) Variablen. Durch
Zerlegung der Klauseln wie bereits in Abschnitt 4 beschrieben, lassen sich auch Formeln in 3KNF erzeugen. Allerdings vergrößert sich so die Anzahl der Variablen.
1
2
3
4
function TICNF(n, m: N, p: [0, 1]): Klauselmenge
(G, H) := TIInstance(n, m, p)
ϕ := TIToSAT(G, H)
return ϕ
4.5
Reduktion von E DP
Das hier beschriebene Verfahren basiert auf [KON14]. Die Reduktion des Diskrepanzproblem
von Erdős auf SAT wird mit Hilfe des Zustandsautomaten in Abbildung 4.1 durchgeführt. Für
jede ±1-Sequenz starten wir im Zustand 0. Die nächsten zwei Elemente der Sequenz bestimmen
stets den Folgezustand.
Für jedes Element i einer ±1-Sequenz der Länge k verwenden wir eine aussagenlogische Variable
xi . Ist das Literal xi wahr, dann ist das Element i gleich 1, ansonsten −1.
Es gibt die Zeitschritte 1, 2, ..., k/2. Für jeden Zeitschritt j verwenden wir die Variablen yj und
zj . Ist das Literal yj bzw. zj wahr, dann befinden wir uns zum Zeitpunkt j im Zustand −2 bzw. 2.
+1−1, −1+1
+1−1, −1+1
−1−1
−2
+1−1, −1+1
+1+1
+2
0
−1−1
+1+1
−1−1
+1+1
E
Abbildung 4.1: Modellierung der Diskrepanz einer ±1-Sequenz als Zustandsautomat. Der Zustand
E bezeichnet dabei den Fehlerzustand. Wird dieser erreicht, hat die ±1-Sequenz zumindest eine
Diskrepanz von 4.
Die folgenden aussagenlogischen Formeln gelten für jeden Zeitschritt j genau dann, wenn (2.1)
gilt.
42
• Zustand −2:
(x2j−1 ∧ x̄2j ∧ yj → yj+1 ∨ x̄2j−1 ∧ x2j ∧ yj → yj+1 )
(x2j−1 ∧ x2j ∧ yj → ȳj+1 )
(x̄2j−1 ∧ x̄2j ∧ yj → e)
∧
∧
• Zustand 0:
(x2j−1 ∧ x̄2j ∧ ȳj ∧ z̄j → ȳj+1 ∨ x̄2j−1 ∧ x2j ∧ ȳj ∧ z̄j → ȳj+1 ) ∧
(x2j−1 ∧ x̄2j ∧ ȳj ∧ z̄j → z̄j+1 ∨ x̄2j−1 ∧ x2j ∧ ȳj ∧ z̄j → z̄j+1 ) ∧
(x2j−1 ∧ x2j ∧ ȳj ∧ z̄j → zj+1 ) ∧
(x̄2j−1 ∧ x̄2j ∧ ȳj ∧ z̄j → yj+1 )
• Zustand +2:
(x2j−1 ∧ x̄2j ∧ zj → zj+1 ∨ x̄2j−1 ∧ x2j ∧ zj → zj+1 ) ∧
(x2j−1 ∧ x2j ∧ zj → e) ∧
(x̄2j−1 ∧ x̄2j ∧ zj → z̄j+1 )
• Zustand e:
ē
Konstruktion von k-S AT-Formeln durch E DP
Die obigen Aussagen können leicht in Form von aussagenlogischen Klauseln formuliert werden.
Der folgende Algorithmus beschreibt nun das Verfahren der Konstruktion einer Formel in KNF.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function EDPKNF(k: N): Klauselmenge
ϕ := ∅
for d = 1, 2, 3, ..., k do
for j = 2, 4, 6, ..., k/d do
füge x̄(j−1)d ∨ xjd ∨ ȳj/2 ∨ yj/2+1 ∨ x(j−1)d ∨ x̄jd ∨ ȳj/2 ∨ yj+1 zu ϕ hinzu
füge x̄(j−1)d ∨ x̄jd ∨ ȳj/2 ∨ ȳj/2+1 zu ϕ hinzu
füge x(j−1)d ∨ xjd ∨ ȳj/2 ∨ e zu ϕ hinzu
füge x̄(j−1)d ∨ xjd ∨ yj/2 ∨ zj/2 ∨ ȳj/2+1 ∨ x(j−1)d ∨ x̄jd ∨ yj/2 ∨ zj/2 ∨ ȳj/2+1
zu ϕ hinzu
füge x̄(j−1)d ∨ xjd ∨ yj/2 ∨ zj/2 ∨ z̄j/2+1 ∨ x(j−1)d ∨ x̄jd ∨ yj/2 ∨ zj/2 ∨ z̄j/2+1
zu ϕ hinzu
füge x̄(j−1)d ∨ x̄jd ∨ yj/2 ∨ zj/2 ∨ zj/2+1 zu ϕ hinzu
füge x(j−1)d ∨ xjd ∨ yj/2 ∨ zj/2 ∨ yj/2+1 zu ϕ hinzu
füge x̄(j−1)d ∨ xjd ∨ z̄j/2 ∨ zj/2+1 ∨ x(j−1)d ∨ x̄jd ∨ z̄j/2 ∨ zj/2+1 zu ϕ hinzu
füge x̄(j−1)d ∨ x̄jd ∨ z̄j/2 ∨ e zu ϕ hinzu
füge x(j−1)d ∨ xjd ∨ z̄j/2 ∨ z̄j/2+1 zu ϕ hinzu
return ϕ
43
4.6
Vervielfältigung von Klauseln
Die Grundidee dieser Methode ist, dass ausgehend von einer festen 3-S AT-Formel durch semizufällige Vervielfältigung der Klauseln und Umbenennung der Variablen beliebig große 3-S ATFormeln mit N Variablen und M Klauseln konstruiert werden. Auch das Verhältnis M/N ist
dabei variabel.
Der Konstruktionsalgorithmus erhält als Eingabe neben der festen Basisformel die Parameter
n, m ∈ N. Der Parameter n bestimmt, wie viele Kopien der Klauseln erstellt werden und m
gibt die Anzahl der Klauseln an, die in die resultierende 3-S AT-Formel übernommen werden. Es
folgt nun die exakte Beschreibung im Algorithmus Klauselkopien.
1
2
3
4
5
6
7
8
function Klauselkopien(F : Klauselmenge; n, m: N; e: bool): Klauselmenge
n0 = |Var(F )|
ϕ := ∅
if e then
forall the xi ∈ Var(F ) do
füge Äquivalenzklauseln für Variablen x0n0 +i , x1n0 +i , ..., x(n−1)n0 +i zu ϕ hinzu
forall the (ua , ub , uc ) ∈ F do
konstruiere eine (n × 3)-Matrix der Form

u0n0 +a
u1n0 +a
..
.
u0n0 +b
u1n0 +b
..
.
u0n0 +c
u1n0 +c
..
.





A=



u(n−1)n0 +a u(n−1)n0 +b u(n−1)n0 +c
mit
u12j+i :=
9
10
11
12
13
14
15
(
x12j+i , wenn ui = xi
x̄12j+i , wenn ui = x̄i
if Methode = random then
führe auf jeder Spalte von A einen Shuffle durch
wähle zufällig m Zeilen und füge diese als Klauseln zu ϕ hinzu
if Methode = deterministisch then
für j = 0, ..., m − 1 füge die Klausel (un0 j+a , un0 (j+1)+b , un0 (j+2)+c ) in ϕ ein
if Methode = detrand then
wiederhole m mal: wähle zufällig eine Zahl j ∈ {0, 1, ..., n − 1} und füge die
Klausel (u12j+a , u12(j+1)+b , u12(j+2)+c ) in ϕ ein
return ϕ
Äquivalenzklauseln
Als Äquivalenzklauseln bezeichnen wir eine Menge von Klauseln, die folgende Eigenschaft haben: die Klauseln sind genau dann alle erfüllt, wenn die Variablen, die in ihnen vorkommen, alle
mit dem gleichen Wahrheitswert belegt sind. Sie dienen hier dazu, zu erzwingen, dass die konstru44
ierte Formel nur eine erfüllende Belegung besitzt.
4.7
1
2
3
4
5
6
7
8
9
10
Zufällige Formeln in 3-KNF
function RandomCNF(N, M : N): Klauselmenge
ϕ := ∅
while |ϕ| < M do
Wähle zufällig drei ganze Zahlen 1 ≤ i < j < k ≤ N
Wähle zufällig drei ganze Zahlen 0 ≤ r, s, t ≤ 1
if r = 1 then u1 := xi else ui := x̄i
if s = 1 then uj := xj else uj := x̄j
if t = 1 then uk := xk else uk := x̄k
ϕ := ϕ ∪ {(ui ∨ uj ∨ uk )}
return ϕ
Es konnte experimentell bestätigt werden, dass ein Schwellwert s ≈ 4,2 existiert, so dass die
Wahrscheinlichkeit für eine erfüllbare Formel nahe bei 1 liegt, wenn M/N < s und die Wahrscheinlichkeit für eine unerfüllbare Formel nahe bei 1 liegt, wenn M/N > s. Auch konnte durch
Experimente gezeigt werden, dass dieser Phasenübergang am Schwellwert immer steiler verläuft,
umso größer N ist (vergleiche [BIR02]). Diese Zusammenhänge konnten allerdings noch nicht
theoretisch nachgewiesen werden.
45
46
Kapitel 5
Experimentelle Untersuchungen
5.1
Implementierung
Die Algorithmen zur Konstruktion von S AT-Formeln in KNF wurden als Kommandozeilenprogramme für Linux in der Programmiersprache C++ implementiert. Die generierte Formel wird
im DIMACS-Format auf die Standardausgabe STDOUT ausgegeben. So ist dem Anwender überlassen, ob er die Formel in einer Datei speichert oder direkt mittels Piping an einen S AT-Solver
weitergibt, der von der Standardeingabe STDIN liest.
Der S AT-Algorithmus von Schöning ist aus Geschwindigkeitsgründen ebenfalls in C++ implementiert worden. Weiterhin wurde die OpenMP-Bibliothek verwendet um den Algorithmus zu
parallelisieren. Das Arbeiten mit Zahlen, die größer als 64 Bit sind, wurde mit Hilfe der GMPBibliothek durchgeführt.
Die systematische Ausführung der Experimente wurde mit Python-Programmen durchgeführt, die
gewonnenen Daten sind in einer SQLite3-Datenbank gesammelt worden. Bei der Auswertung der
Testdaten kamen NumPy, SciPy und PyPlot zum Einsatz.
c Hier ist
c der Kommentarbereich
p cnf 5 6
1 2 -5 0
2 5 4 0
-1 3 -4 0
-3 4 0
-1 4 5 0
3 -4 5 0
Abbildung 5.1: Beispiel einer Formel mit 5 Variablen und 6 Klauseln in 3-KNF, die im DIMACSFormat dargestellt ist.
DIMACS ist ein Format für S AT Formel in KNF. Es besteht aus mehreren Zeilen, zunächst kommt
eine beliebige Anzahl von Kommentarzeilen, die mit dem Buchstaben „c“ beginnen müssen. Dann
47
folgt eine Zeile „p cnf n m“, wobei „n“ durch die Anzahl der Variablen ersetzt werden muss und
„m“ durch die Anzahl der Klauseln. Die Variablen der Formel müssen durchnummeriert sein.
Denn jetzt kommt pro Klausel in der Formel eine weitere Zeile. Für jedes Literal wird dabei die
Nummer der Variablen angegeben. Eine negierte Variable wird durch Angabe des negativen Zahlenwertes kenntlich gemacht. Die Literale werden durch Leerzeichen getrennt und das Ende der
Klausel durch eine „0“ gekennzeichnet. Nachfolgend ist ein Beispiel einer Formel mit 5 Variablen
und 6 Klauseln im DIMACS-Format.
5.2
Testumgebung
Als Testrechner wurde ein Parallelrechner des Instituts für theoretische Informatik an der Universität zu Lübeck verwendet. Er verfügt über 128 GB Arbeitsspeicher und acht AMD Opteron 6272
Prozessoren, dessen Daten in der Tabelle 5.1 entnommen werden können.
Kerne
Taktfrequenz
Cache L1
Cache L2
Cache L3
16
2,1 GHz
8 × 64 KB, 16 × 16 KB
8 × 2 MB
2 × 8 MB
Tabelle 5.1: Daten des AMD Opteron 6272 Prozessors.
In der Summe verfügt das Testsystem über 64 Prozessorkerne. Bei den Tests mit den parallelisierten S AT-Solvern sind daher auch stets 64 parallele Threads verwendet worden. Die Solver, auf die
das zutrifft, wurden dadruch kenntlich gemacht, dass sie die Zahl 64 am Ende des Namens tragen.
5.3
Auswertung der Testdaten
Worst-Case-Laufzeit Bei den meisten hier betrachteten Methoden zur randomisierten Konstruktion von S AT-Formeln gibt es einen Parameter, von dem die Anzahl der Variablen in der
Formel abhängig ist. Die übrigen Parameter bestimmen, wie schwer es ist die Formel auf Erfüllbarkeit zu prüfen. Um die Laufzeit der S AT-Solver in Abhängigkeit der Variablenanzahl zu
bestimmen, wurden stets die übrigen Parameter für eine feste Variablenanzahl so gewählt, dass die
durchschnittliche Laufzeit maximal war. Daher wird nachfolgend des öfteren von einer maximalen
Durchschnitts-Laufzeit gesprochen.
Parameterbestimmung der Modellfunktionen
wurden mit Hilfe der Modellfunktion
Die asymptotischen Laufzeiten der S AT-Solver
f (N, a, b, c) = a + b · 2cN
und der Methode der kleinsten Quadrate approximiert. Die Funktion ist zuvor logarithmiert worden.
48
5.4
Vervielfältigung einer festen 3-S AT Formel
Die hier verwendeten S AT-Formeln wurden nach der Methode konstruiert wie im Abschnitt 4.6
beschrieben. Es handelt sich um semizufällige Formeln, die durch Vervielfältigung der Klauseln
einer festen 3-S AT Basisformel konstruiert werden. Die Größe der Formeln, also die Anzahl der
Variablen und Klauseln, hängt dabei von den Parametern n, m ∈ N ab. Der Parameter n bestimmt
die Anzahl der Kopien, die von jeder Klausel der Basisformel erstellt werden und somit die Anzahl
der Variablen N der resultierenden Formel. Der Parameter m bestimmt wieviele der n weiterverarbeiteten Klauselkopien ausgewählt und in die resultierende Formel übernommen werden und
bestimmt so über die Anzahl der Klauseln M in der resultierenden Formel. In diesem Experiement wird als Basisformel eine 3-KNF Formel mit 12 Variablen und 40 Klauseln verwendet, für
die genau eine erfüllende Belegung existiert (siehe Anhang). In hier untersuchten Formeln beträgt
die Anzahl der Variablen also N = 12n und die Anzahl der Klauseln M = 40m.
Verwendete S AT-Formeln
Für n ∈ {3, 4, 5, 6, 7, 8} und verschiedene m werden Formeln jeweils mit den drei unterschiedlichen Konstruktionsmethoden mit und ohne Äquivalenzklauseln erzeugt. Mit dem S AT-Algortihmus
von Schöning wurden die in der folgenden Tabelle angegebenen Meßpunkte getestet.
n
3
4
5
6
7
8
m
1, 2, 3, ..., 30, 40, 50, ..., 100, 200, 500, 1000
1, 2, 3, ..., 30, 40, 50, ..., 100, 200, 500, 1000
1, 2, 3, ..., 30, 40, 50, ..., 100, 200, 500, 1000
1, 2, 3, ..., 12, 14, 16, ..., 20, 30, 40, ..., 100, 200, 500, 1000, 2000, 4000
5, 6, 7, 8, 9, 10, 15, 20, 30, 40, 50, 100, 200, 500, 1000, 2000, 4000
4, 5, 6, 7, 8, 9, 10, 11, 12, 30
Die Anzahl der generierten Formeln für jeden Meßpunkt n, m und für jede der sechs Varianten
des Konstruktions-Algorithmus können der nun folgenden Tabelle entnommen werden.
n
Formeln pro Methode und m
3
1000
4
500
5
100
6
100
7
50
8
25
Für die übrigen S AT-Solver wurde analog vergegangen. Allerdings sind Formeln mit bis zu 384
Variablen verwendet worden.
Ergebnisse und Interpretation
Analyse der verschiedenen Konstruktionsvarianten
Deterministische Konstrunktionsvarianten sind ungeeignet, da sie bei bestimmten Parameterkombination Formeln mit extrem vielen erfüllenden Belegungen erzeugen. Auch bei Parameterwerten,
wo dieser Effekt nicht aufgetreten ist, konnte nicht festgestellt werden, dass irgendein Vorteil
gegenüber der rein randomisierten Varainte besteht. Daher wurde nachfolgendend nur noch die
randomisierte Variante verwendet.
49
5
1.4 ×10
6
2.5 ×10
1.2
1.5
0.8
0.6
1.0
0.4
mit Äquivalenzklauseln
0.2
0.0
getestete Belegungen
getestete Belegungen
2.0
1.0
ohne Äquivalenzklauseln
5
10
15
20
25
mit Äquivalenzklauseln
0.5
m
30
ohne Äquivalenzklauseln
0.0
5
(a) n = 3, N = 36
25
m
30
getestete Belegungen
5
4
3
2
mit Äquivalenzklauseln
ohne Äquivalenzklauseln
10
15
20
25
mit Äquivalenzklauseln
1
m
30
0
ohne Äquivalenzklauseln
5
1.2 ×10
mit Äquivalenzklauseln
15
20
25
m
30
11
mit Äquivalenzklauseln
1.0
ohne Äquivalenzklauseln
getestete Belegungen
getestete Belegungen
10
(d) n = 6, N = 72
10
0.8
ohne Äquivalenzklauseln
0.8
0.6
0.6
0.4
0.4
0.2
0.0
20
(b) n = 4, N = 48
(c) n = 5, N = 60
1.0 ×10
15
8
6 ×10
getestete Belegungen
7
4.5 ×10
4.0
3.5
3.0
2.5
2.0
1.5
1.0
0.5
0.0
5
10
0.2
5
10
15
20
25
m
30
(e) n = 7, N = 84
0.0
5
10
15
20
25
m
30
(f) n = 8, N = 96
Abbildung 5.2: Ergebnisse für Schönings S AT-Algorithmus bei Formeln, die durch Vervielfältigung erzeugt wurden. Der Parameter n ist fest und m ∈ [0, 1].
50
Charakteristik bei festem Parameter n
Zunächst wird betrachtet, wie sich die Schwere der Formeln entwickelt, wenn der Parameter n
fest gewählt wird. Die Schwere bezeichnet dabei, wie viele Belegungen von einem S AT-Solver
getestet werden müssen, beziehungsweise wieviel Zeit benötigt wird, um eine erfüllende Belegung
zu finden. Betrachten wir die Ergebnisse der Tests mit dem Algoritmus von Schöning, die in
der Abbildung 5.2 zu finden sind, dann sehen wir für die Konstruktionsvarianten mit und ohne
Äquivalenzklauseln eine deutlich unterschiedliche Entwicklung bei einem wachsenden Parameter
m. Werden den Formeln Äquivalenzklauseln hinzugefügt, so steigt die Anzahl der im Durchschnitt
getesteten Belegungen langsam an und nähert sich später, wenn m bereits ein Vielfaches von m
angenommen hat, langsam seinem Maximum. Anders sieht es aus, wenn keine Äquivalenzklauseln
hinzugefügt werden, dann ist es für kleine m offenbar sehr einfach für Schönings Algorithmus die
Formeln auf Erfüllbarkeit zu testen. Im nachfolgenden Abschnit werden wir herausfinden, dass
der Grund darin liegt, dass diese Formeln sehr viele erfüllende Belegungen besitzen. Bei etwa
m ≈ n + 1 erfolgt ein schlagartiger Anstieg. Es folgt ein langsamer Abfall und die gemessenen
Werte nähern sich nun dem Maximum der Formeln mit Äquivalenzklauseln von der anderen Seite
an. Wenn man von dem Anfangsbereich absieht, sind also die Formeln ohne Äquivalenzklauseln
von Schönings Algorithmus deutlich schwerer auf Erfüllbarkeit zu prüfen. Es liegt die Vermutung
nahe, dass die Äquivalenzklauseln hilfreich sind, eine erfüllende Belegung zu finden.
4
2
2.5 ×10
1.8 ×10
1.6
1.4
1.2
1.0
0.8
0.6
0.4
0.2
0.0
14 16
EagleUP
sparrow
adaptg2wsat
sattime
selector
ppfolio64
Zeit in s
2.0
1.5
1.0
0.5
m
0.0
13 14 15 16 17 18 19 20 21 22
EagleUP
sparrow
adaptg2wsat
sattime
selector
ppfolio64
plingeling64
18
n = 15, N = 180
1.0 ×10
6 ×10
ppfolio64
plingeling64
24
26
28
m
30
3
ppfolio64
Zeit in s
5
4
0.2
1
0.6
3
0.4
0.0
18
22
n = 20, N = 240
3
0.8
20
2
20
22
24
26
28
30
32
m
34
0
28
n = 25, N = 300
30
32
34
36
38
40
42
m
44
n = 32, N = 384
Abbildung 5.3: Ergebnisse für S AT-Solver bei Formeln, die durch Vervielfältigung und ohne Äquivalenzklauseln erzeugt wurden. Der Parameter n ist fest und m ∈ [0, 1].
51
Kommen wir nun zu den heuristischen S AT-Solvern, dessen Ergebnisse in Abbildung 5.3 zu finden
sind. Da die Äquivalenzklauseln offenbar dazu führen, dass die Erfüllbarkeit der Formeln einfacher festzustellen ist, wurden hier nur noch Formeln ohne Äquivalenzklauseln getestet. Zwar lösen
die heuristischen S AT-Solver das Problem sehr viel schneller und es können Formeln mit bis zu
384 Variablen getestet werden, aber es ist eine ähnliche Charakteristik zu beobachten. Es gibt eine
Spitze bei m ≈ n + 1 für geringere Anzahl von Variablen (siehe N = 180, 240) und m ≈ n + 2
für eine höhere Anzahl (siehe N = 336, 384). Der Abfall nach der Spitze scheint hier stärker ausgeprägt zu sein, wobei auch bei Schönings Algorithmus schon eine Verstärkung des Abfalls nach
der Spitze für ein wachsendes n feststellbar ist. Die Tatsache, dass alle S AT-Solver eine ähnliche
Charakteristik aufweisen, ist ein Argument dafür, dass die Struktur der Formeln dafür ursächlich
ist.
Analyse des Phasenübergangs
Der Phasenübergang für die hier untersuchte Formelfamilie ist in Abbildung 5.4 in einem Diagramm dargestellt. Jeder dargestellte Messpunkt repräsentiert den Anteil der 1000 Formeln, bei
denen die erfüllende Standardbelegung (100110010011)n gefunden wurde. Da beim Random
Walk Algorithmus von Schöning (siehe Abschnitt 3.5) die Ausgangsbelegungen für die lokale
Suche zufällig gewählt werden, hat jede erfüllende Belegung einer Formel die gleiche Chance gefunden zu werden. Demnach können die hier ermittelten Werte als Indikatoren für die Anzahl der
erfüllenden Belegungen, die eine Formel besitzt, dienen.
1.0
0.8
0.6
0.4
0.2
0.0
m
2
4
6
8
10
n=3
f (m, 4.47, 3.05)
n=4
f (m, 4.52, 4.11)
n=5
f (m, 3.8, 5.21)
n=6
f (m, 3.38, 6.27)
n=7
f (m, 5.17, 7.39)
n=8
f (m, 3.9, 8.49)
12
Abbildung 5.4: Phasenübergang bei Formeln, die durch Vervielfältigung und ohne Äquivalenzklauseln erzeugt wurden. Die Y-Achse gibt an, wie oft anteilig die garantiert existierende, erfüllende Standardbelegung gefunden wurde.
Wir können für die hier getesteten Formeln einen Bereich festmachen, in dem der Phasenübergang
stattfindet. Für etwa m ≤ n − 1 haben die Formeln sehr viele erfüllende Belegungen und für etwa
m ≥ n + 1 besitzen sie fast nur noch die eine Standardbelegung. Doch man kann auch sehen, dass
der Übergang sich mit wachsendem Parameter n in die Länge zieht, so dass die abgelesenen Grenzen für deutlich größere n vermutlich keine Gültigkeit haben werden. Dazwischen beobachten wir
einen Übergang, wie er von der logistischen Funktion
f (m, a, b) =
1
1 − ea(b−m)
52
bekannt ist, wobei der Wert a den Anstieg des Wendepunkts und b die Verschiebung desselben
auf der m Achse definiert. Diese Modellfunktion wurde ebenfalls im Diagramm dargestellt. Die
Paramter a und b sind jeweils mittels der Methode der kleinsten Quadrate bestimmt worden.
Es lässt sich weiterhin beobachten, dass die Schwere der Formeln für ein festes n ihren maximalen
Wert an der Stelle m hat, wo der Phasenübergang abgeschlossen ist. Also dort, wo die Formeln
anfangen, nur noch eine erfüllende Belegung zu besitzen. In der folgenden Tabelle sind die ermittelten Paramter der Modellfunktion f für die verschiedenen Formelparameter n zu finden.
n
Wendepunktanstieg a
Wendepunktposition b
M (b)/N (n)
3
4
5
6
7
8
4,47
3,05
3,39
4,52
4,11
3,43
3,8
5,21
3,47
3,38
6,27
3,48
5,17
7,39
3,52
3,9
8,49
3,54
Tabelle 5.2: Wendepunktposition und Wendepunktansteig bei dem Phasenübergang von Formeln,
die durch Vervielfältigung erzeugt wurden, für verschiedene Formelparameter n.
Laufzeitverhalten bei wachsendem Parameter n
Nun wird das Laufzeitverhalten für Schönings Algorithmus und verschiedene andere S AT-Solver
in Abhängigkeit zu der Anzahl der Variablen N (n) betrachtet. Für den Parameter n wurde jeweils
der Parameter m so gewählt, dass sich ein maximaler Durchschnittswert ergibt. Welche Werte
von m das im einzelnen sind lässt sich in den Diagrammen oben ablesen. Die Ergebnisse für
mit Schönings Algorithmus sind in Abbildung 5.5 zu finden und die der übrigen S AT-Solver in
Abbildung 5.6. Die Y-Achse hat in beiden Fällen eine logarithmische Skalierung.
maxm ( getestete Belegungen)
1012
mit Äquivalenzklauseln
3N · 20.286N
1011
ohne Äquivalenzklauseln
3N · 20.297N
1010
109
108
107
106
105
104
30
40
50
60
70
80
90
N
100
Abbildung 5.5: Laufzeitverhalten von Schönings S AT-Algorithmus bei Formeln, die durch Vervielfältigung erzeugt wurden, in Abhängigkeit der Variablenanzahl N = 12n. Mit und ohne Verwendung von Äquivalenzklauseln.
Im Angesicht der Tatsache, dass die getesteten Formeln auf der Basis einer kleinen festen Formel konstruiert werden, steht die Frage im Raum, ob die Solver es schaffen aus der konstruierten
Formel diese Kopien der kleinen Formel in irgendeiner Weise zu rekonstruieren. Sollte das der
Fall sein, müsste der Solver nur n-mal eine Formel mit 12 Variablen auf Erfüllbarkeit prüfen und
es wäre keine exponentielle Laufzeit in Abhängigkeit zu N (n) zu erwarten, sondern eine poly53
nomielle. Wir sehen an den Ergebnissen, alle verwendeten S AT-Solver haben eine exponentielle
Laufzeit, die Tabelle 5.3 liefert genaueres.
107
EagleUP
0.00002 · 20.123N
sparrow
0.00005 · 20.112N
adaptg2wsat
0.00030 · 20.106N
sattime
0.00049 · 20.102N
selector
0.00055 · 20.081N
ppfolio64
0.00002 · 20.072N
plingeling64
0.00001 · 20.087N
106
105
maxm ( Zeit in s)
104
103
102
101
100
10−1
10−2
10−3
10−4
0
50
100
150
200
250
300
350
N
400
Abbildung 5.6: Laufzeitverhalten der SAT-Solver bei Formeln, die durch Vervielfältigung erzeugt
wurden, in Abhängigkeit der Variablenanzahl N = 12n. Ohne Verwendung von Äquivalenzklauseln.
Dass ppfolio64 am besten abschneidet, was die absoluten Werte betrifft, mag daran liegen, dass
dieser Solver ein Multithread-Solver ist und die anderen nur auf einem Prozessor arbeiten können. Das asymptotische Laufzeitwachstum betrifft das aber nicht. Auch hier liefert ppfolio64 die
besten Werte. Mit Vorsicht muss die ermittelte asymptotische Laufzeit des Solvers selector betrachtet werden, denn wie im Diagram zu sehen, verläuft diese an der Stelle N = 288 nicht stetig.
Da selector auf Basis einer vorhergehenden Analyse der gegebenen Formel eine Auswahl des zu
verwendenden Solvers trifft, ist hier zu vermuten, dass selector ab dieser Stelle eine andere Entscheidung trifft als zuvor.
Approximierte
Zeitkomplexität
S AT-Solver
Schöning (theo. obere Schranke)
Schöning mit Äquivalenzklauseln
Schöning ohne Äquivalenzklauseln
EagleUP
sparrow
adaptg2wsat
sattime
selector
ppfolio64
plingeling64
O(3N · 1,333N )
O(3N · 1,219N )
O(3N · 1,229N )
O(1,089N )
O(1,081N )
O(1,076N )
O(1,073N )
O(1,058N )
O(1,051N )
O(1,062N )
Tabelle 5.3: Approximierte Zeitkomplexität der S AT-Solver bei Formeln, die durch Vervielfältigung erzeugt wurden, in Abhängigkeit der Variablenanzahl N = 12n.
54
Zusammenfassung
Äquivalenzklauseln Die Äquivalenzklauseln, die manchen Formeln hinzugefügt wurden, garantieren, dass diese Formeln nur genau eine erfüllende Belegung besitzen. Allerdings verlieren
die Formeln dadurch an Schwere, denn mit Schönings Algorithmus müssen dann im Durchschnitt
weniger Belegungen getestet werden, um die erfüllende zu finden.
Zeit
Charakteristik der Formeln Bei festem Parameter n haben die S AT-Solver beim Testen der
Erfüllbarkeit von Formeln ohne Äquivalenzklauseln eine Spitze was die durchschnitlliche Anzahl
getesteter Belegungen beziehungsweise Zeit betrifft bei grob m ≈ n + 1, wobei mit steigendem n
dieser Wert sich noch weiter nach Rechts zu verschieben scheint. Die folgende Charakteristik ist
bei allen S AT-Solvern zu beaobachten.
m
n+1
Phasenübergang Wählt man den Parameter n fest (und damit auch die Anzahl der Variablen
N ) und lässt m wachsen, dann gibt es Phasenübergang von „die Formeln haben sehr viele erfüllende Belegungen“ zu „die Formeln haben genau eine erfüllende Belegung“. Bei welchem Wert
für m dieser stattfindet, hängt von n ab. Die Schwere der Formeln ist dort maximal, wo der Phasenübergang fast abgeschlossen ist. Der jeweilige Wert m, wo der Phasenübergang stattfindet und
das entsprechende Verhältnis von Kluaseln zu Variablen lässt sich aus der folgenden Tabelle entnehmen.
n
3
4
5
6
7
8
m
M (m)/N (n)
3,05
3,39
4,11
3,43
5,21
3,47
6,27
3,48
7,39
3,52
8,49
3,54
Tabelle 5.4: Parameterwerte des Formeltyps, der durch Vervielfältigung generiert wird, wo der
Phasenübergang stattfindet.
Laufzeitverhalten Die Vermutung, die S AT-Solver könnten die versteckten Kopien der festen Formel, die zur Konstruktion dieser Formelfamilie verwendet wird, rekonstruieren und so
die Erfüllbarkeit in Polynomialzeit ermitteln, hat sich nicht bestätigt. Alle verwendeten S ATSolver haben eine exponentielle Laufzeit in Abhängigkeit von N (n). Die asymptotische Laufzeit
von Schönings Algorithmus beträgt O(3N · 1,229N ), wobei die theoretische obere Schranke bei
O(3N · 1,333N ) liegt. Der beste heuristische S AT-Solver ppfolio64 erreicht O(1,051N ).
55
5.5
3-Färbbarkeit von Graphen
Verwendete S AT-Formeln
Alle hier untersuchten Formeln sind gemäß dem Algorithmus ColoringCNF im Abschitt 9 erstellt worden. Der Algorithmus erhält als Eingabe die Parameter n ∈ N und p ∈ [0, 1] um erfüllbare Formeln durch Reduktion von 3-Färbbarkeit zu generieren. Als Ausgangsgraph dient ein
zufällig generierter, aber 3-färbbarer Graph mit n Knoten, bei dem jede Kante, die nicht die 3Färbbarkeitseigenschaft verletzt, mit einer Wahrscheinlichkeit von p existiert. Die Implementierung des Konstrunktionsalgorithmus weicht in einem Punkt von der Version im Abschnitt 9 ab.
Es wurden als Ausgangsgraphen auch welche mit einer Knotenanzahl, die nicht durch drei teilbar
ist, verwendet. Die Restknoten sind dann einer beliebigen Menge zugefügt worden. Die Formeln
haben N (n) = 3n Variablen und eine erwartete Anzahl von Klauseln
EW (M (n, p)) = n + pn2
=
pN 2
N
+
.
3
9
Für die Untersuchungen mit dem S AT-Algorithmus von Schöning sind Formeln mit den Parametern N ∈ {30, 33, 36, ..., 120} und p ∈ {0, 0,1, 0,2, 0,3, ..., 1} verwendet worden. Für jede
Paarung wurden 100-2000 Formeln erzeugt.
Für die übrigen S AT-Solver wurden zunächst Formeln mit N ∈ {30, 60, 90, ..., 300} und p ∈
{0, 0,1, 0,2, 0,3, ..., 1} erstellt. Doch nachdem klar wurde, dass einige Solver diese Formeln sehr
effizient auf Erfüllbarkeit prüfen können, wurden weitere Formeln mit N ∈ {300, 450, 600, ..., 1500}
generiert.
Die erzeugten Formeln besitzen Klauseln der Länge 3, dessen Aufgabe es ist, zu garantieren, dass
jeder Knoten des Ursprungsgraph eine Farbe zugewiesen bekommt, und Klauseln der Länge 2, die
sicherstellen, dass zwei benachbarte Knoten nicht gleich gefärbt sind. In diesem Abschnitt wurden
auch zwei Varianten von Schönings Algorithmus verglichen. Die eine bevorzugt bei der Auswahl
einer unerfüllten Klausel diejenigen der Länge 3 und die andere diejenigen der Länge 2.
getestete Belegungen
4
4.0 ×10
3.5
7
7 ×10
schoening64
6
3.0
5
2.5
4
2.0
3
1.5
2
1.0
1
0.5
0.0
0.0
schoening64
0.2
0.4
0.6
0.8
p
1.0
0
0.0
N = 60, n = 20
0.2
0.4
0.6
0.8
p
1.0
N = 120, n = 40
Abbildung 5.7: Ergebnisse für Schönings S AT-Algorithmus bei Formeln, die durch 3-Färbbarkeit
von Graphen konstruiert wurden. Der Formelparameter N = 3n ist fest und p ∈ [0, 1].
56
1
1.2 ×10
1.0
Zeit in s
0.8
1
3.0 ×10
selector
sparrow2011
ppfolio64
plingeling64
2.5
2.0
0.6
1.5
0.4
1.0
0.5
0.2
0.0
0.0
selector
sparrow2011
ppfolio64
plingeling64
0.2
0.4
0.6
0.8
p
1.0
0.0
0.0
N = 900, n = 300
0.2
0.4
0.6
0.8
p
1.0
N = 1500, n = 500
Abbildung 5.8: Ergebnisse für S AT-Solver bei Formeln, die durch 3-Färbbarkeit von Graphen
konstruiert wurden. Der Formelparameter N = 3n ist fest und p ∈ [0, 1].
Ergebnisse und Interpretation
Charakteristik bei festem Parameter n
Die Testergebnisse mit Schönings Algorithmus, die in Abbildung 5.7 zu sehen sind, zeigen, dass
für etwa p < 0.2 die Formeln noch sehr einfach zu erfüllen sind. Danach steigt die Anzahl der
im Durchschnitt getesteten Belegungen zunächst stark, danach schwächer an. Die anderen S ATSolver zeigen eine deutlich andere Charakteristik, wie in Abbildung 5.8 zu sehen ist.
n = 10
f (p, 16.50, 0.60)
n = 20
f (p, 17.19, 0.42)
n = 30
f (p, 25.24, 0.33)
n = 40
f (p, 31.44, 0.28)
1.0
0.8
0.6
0.4
0.2
0.0
0.0
0.2
0.4
0.6
0.8
p
1.0
Abbildung 5.9: Phasenübergang bei Formeln, die durch 3-Farbbarkeit von Graphen erzeugt wurden. Die Y-Achse gibt den Anteil der Tests, in denen eine der sechs garantiert existierende, erfüllende Belegungen gefunden wurde, an. Weiterhin ist eine Modellfunktion mit approximierten
Parametern dargestellt.
Analyse des Phasenübergangs
Der Phasenübergang von Formeln mit sehr vielen erfüllenden Belegungen zu Formeln mit in diesem Fall sechs erfüllenden Belegungen ist in der Abbildung 5.9 dargestellt. Offensichtlich gilt für
57
das ursprüngliche Problem: Je mehr Kanten eingefügt werden, desto weniger gültige Färbungen
beziehungsweise erfüllende Belegungen gibt es. Ein Zusammenhang mit der Charakteristik aus
dem vorherigen Abschnitt ist feststellbar. Bei N = 120 und p ≥ 0,2 beginnt die Anzahl der
erfüllenden Belegungen schnell zu sinken und die Anzahl der getesteten Belegungen um eine erfüllende zu finden (siehe vorherigen Abschnitt) steigt an dieser Stelle stark an. Auf der anderen
Seite haben wir bei p ≥ 0,5 die minimale Anzahl an erfüllenden Belegungen erreicht, aber die
Anzahl der notwendigen Belegungstests steigt dennoch weiter an. Weiterhin ist zu beobachten,
dass der Phasenübergang mit wachsendem N steiler verläuft und früher beginnt.
Anhand der Modellfunktion f , die hier in einer analogen Weise wie in Abschnitt 5.4 verwendet
wird, kann der kritische Punkt geschätzt werden, an dem die Anzahl der erfüllenden Belegungen
stark abnimmt. Die folgende Tabelle enthält die entsprechenden Werte.
Parameter n
Wendepunktanstieg a
Wendepunktposition b
Klauselanzahl EW (M (b))
M (b)/N (n)
10
20
30
40
16,50
0,60
70
2,33
17,19
0,42
188
3,13
25,24
0,33
327
3,63
31,44
0,28
488
4,07
Tabelle 5.5: Wendepunktposition und Wendepunktansteig bei dem Phasenübergang von Formeln,
die durch 3-Färbbarkeit von Graphen erzeugt wurden, für verschiedene Formelparameter n.
Da die hier verwendeten Ausgangsgraphen eine gewisse Ähnlichkeit mit Zufallsgraphen G (n, p)
aufweisen, können wir hier einige bekannte Eigenschaften von Zufallsgraphen hinzuziehen, um
den Verlauf des Phasenübergangs zu verstehen.
Aus Satz 2.3 wissen wir, dass für einen Zufallsgraph G ∈ G (m, q) mit qm > 4,69 die Wahrscheinlichkeit, dass er eine gültige 3-Färbung besitzt sehr gering ist. Die folgende Tabelle 5.6
enthält die so berechneten kritischen Punkte für die hier verwendeten Graphen mit N/3 Knoten.
n
10
20
30
40
300
500
pf = 4,69/n
0,469
0.235
0.157
0.117
0.015
0.009
Tabelle 5.6: Kritischer Punkt an dem die Wahrscheinlichkeit, dass ein Zufallsgraph G (n, p) 3färbbar ist, von sehr groß zu sehr klein übergeht.
Wir können ablesen, dass diese Werte pf jeweils an der Stelle liegen, kurz bevor die Anzahl der
erfüllenden Belegungen stark abnimmt. Vermutlich steuert für p < pf der zufällige Anteil unserer
Ursprungsgraphen selbst soch sehr viele gültige Färbungen, beziehungsweise erfüllende Belegungen, bei und mit zunehmender Anzahl von Kanten bleibt am Ende nur noch die garantierte gültige
Färbung übrig.
Ein weiterer interessanter Aspekt ist die Frage, ob der Ausgangsgraph für eine Formel zusammenhängend ist. Denn ist er nicht zusammenhängend, dann zerfällt er in Teilgraphen die unabhängig
voneinander gefärbt werden können. Für die 3-S AT Formeln heißt das, dass die Solver die kleineren Teilformeln nacheinander auf Erfüllbarkeit prüfen können, was die Arbeit der Solver deutlich
erleichtern sollte. Laut Erdős ist der kritische Bereich, wo ein Zufallsgraph G ∈ G (m, q) von nicht
58
zusammenhängend in zusammenhängend übergeht bei
(1 − ) ln m
(1 + ) ln m
<q<
.
m
m
N/3
Nun betrachten wir also den Wert lnN/3
für die hier untersuchten Graphen. Die Ergebnisse sind
in der folgenden Tabelle 5.7 zu finden.
n
10
20
30
40
300
500
pz = (ln n)/n
0,230
0,150
0,113
0,092
0,019
0,012
Tabelle 5.7: Kritischer Punkt an dem die Wahrscheinlichkeit, dass ein Zufallsgraph G (n, p) zusammenhängend ist, von sehr klein zu sehr groß übergeht.
Auch hier ist ein Zusammenhang mit der Position des empirisch gemessenen Anstiegs, wo die
Anzahl der erfüllenden Belegungen stark abnimmt, erkennbar.
Laufzeitverhalten in Abhängigkeit zu N
Das Diagramm in der folgenden Abbildung 5.10 zeigt die Anzahl der im Durchschnitt getesteten
Belegungen in Abhängigkeit zu der Anzahl der Variablen N für die drei verschiedenen Varianten
von Schönings Algorithmus. Die Variante, bei der zuerst alle Klauseln der Größe 3 erfüllt werden,
schneidet hier am besten ab. Offenbar kann es beim 3-Färbbarkeitsproblem sinnvoll sein, immer
von einer vollständigen Färbung auszugehen, bevor die Gültigkeit dieser überprüft wird.
maxp ( Getestete Belegungen)
109
zufällige Klausel
3N · 20.160N
2-Klauseln zuerst
3N · 20.168N
3-Klauseln zuerst
3N · 20.142N
108
107
106
105
104
103
102
30
40
50
60
70
80
90
100
110
N
120
Abbildung 5.10: Laufzeitverhalten von Schönings S AT-Algorithmus in drei verschiedenen Varianten für Formeln in 3-KNF, die von 3-Färbbarkeit von Graphen reduziert wurden. Gemessen
wurde die durchschnittliche Anzahl der getesteten Belegungen in Abhängigkeit von N , wobei der
Parameter p so gewählt wurde, dass dieser Wert maximal ist.
Die heuristisch optimierten S AT-Solver kommen durchweg mit den Formeln dieser Art sehr gut
zurecht, wie man an den Testergebnissen in Abbildung 5.11 ablesen kann. Selbst für Formeln
mit tausenden Variablen benötigen sie nur wenige Sekunden, um die Erfüllbarkeit festzustellen.
59
Auffällig ist hier, dass der Solver sparrow am besten abschneidet, was die absoluten Werte betrifft,
obwohl er nur einen Prozessor und nicht 64, wie plingeling64 und ppfolio64, verwendet. Da dieser
Solver auch besonders erfolgreich bei zufälligen S AT Formeln ist, könnte dies ein Hinweis darauf
sein, dass die Struktur der Formeln, die hier untersucht werden, Ähnlichkeiten zur Struktur der
zufälligen Formeln besitzt.
102
selector
3.12382 · 20.0020N
sparrow
0.01572 · 20.0033N
plingeling64
0.18826 · 20.0038N
ppfolio64
0.02172 · 20.0047N
maxp ( Zeit in s)
101
100
10−1
10−2
10−3
0
200
400
600
800
1000
1200
1400
N
1600
Abbildung 5.11: Laufzeitverhalten von S AT-Solvern für Formeln in 3-KNF, die von 3-Färbbarkeit
von Graphen reduziert wurden. Gemessen wurde die durchschnittliche Zeit in Abhängigkeit von
N , wobei der Parameter p so gewählt wurde, dass dieser Wert maximal ist.
Die durch die Methode der kleinsten Quadrate approximierten, asymptotischen Laufzeiten der
Solver befinden sich in der nachfolgenden Tabelle 5.8.
Approximierte
Laufzeit
S AT-Solver
Schöning (zufällige Klausel)
Schöning (2-Klauseln zuerst)
Schöning (3-Klauseln zuerst)
selector
sparrow
plingeling64
ppfolio64
O(3N · 1,117N )
O(3N · 1,123N )
O(3N · 1,103N )
O(1,0014N )
O(1,0023N )
O(1,0026N )
O(1,0033N )
Tabelle 5.8: Approximierte Zeitkomplexitäten in Abhängigkeit der Variablenanzahl N der S ATSolver bei Formeln, die durch 3-Färbbarkeit von Graphen generiert wurden.
Zusammenfassung
Varianten von Schönings Algorithmus Das Bevorzugen von Klauseln der Größe 3 bei der
Auswahl unferfüllter Klauseln scheint ein Vorteil und das Bevorzugen von 2-Klauseln scheint
dagegen ein Nachteil zu sein. Übersetzt auf das Urspungsproblem der Färbbarkeit hieße das: Es
ist besser zunächst eine vollständige Belegung zu wählen, bevor die Gültigkeit überprüft wird.
Phasenübergang Die empirische Untersuchung lässt vermuten: Sowohl der kritische Punkt pf =
qm > 4.69 (siehe [MUL02]), ab dem ein Zufallsgraph G ∈ G (m, q) mit großer Wahrschein60
lichkeit nicht mehr die Eigenschaft der 3-Färbbarkeit besitzt, ist bei den hier behandelten 3-S AT
ln m
ln m
Formeln bedeutsam, als auch der Übergangsbereich (1−)
< pz < (1+)
, in dem G von
m
m
nicht zusammenhängend zu zusammenhängend entwickelt. Überschreitet der Formelparameter p
diese kritischen Werte, nimmt die Anzahl der erfüllenden Belegungen stark ab, beziehungsweise
die Wahrscheinlichkeit, eine der sechs versteckten Belegungen zu finden stark zu. Der charakteristische Verlauf dieser Wahrscheinlichkeit ist in dem folgenden Diagramm zu sehen.
1
0
0
pz pf
1
p
Laufzeitverhalten Im Gegensatz zu Schönings S AT-Algorithmus kommen die heuristisch optimierten Solver sehr gut mit dieser Formelfamilie zurecht. Die beste approximierte asymptotische
Laufzeit erzielt selector mit O(1,0014N ).
5.6
3-Färbbarkeit von 3-uniformen Hypergraphen
In diesem Abschnitt geht es um die Untersuchung von 3-S AT-Formeln, die durch Reduktion des 3Färbbarkeitsproblems für semizufällige Hypergraphen konstruiert werden. Zunächst wird auf die
verwendeten Formeln beziehungsweise dessen Parametrisierung eingegangen und es folgt eine
Auswertung der experimentellen Untersuchung dieser Formelfamilie. Zuletzt werden die Ergebnisse dieses Abschnitts zusammengefasst.
Verwendete Formeln
Es werden Formeln in 3-KNF untersucht, die mit dem Algorithmus HColoringCNF(n, p) aus
Abschnitt 9 generiert wurden. Dieser randomisierte Konstruktions-Algorithmus wird durch die
Werte n ∈ N und p ∈ [0, 1] parametrisiert. Als Basis dient bei der Konstruktion ein semizufälliger
Hypergraph mit n Knoten und einer Kantenwahrscheinlichkeit p, für Kanten, die nicht die 3Färbbarkeit verletzen. Schließlich erhalten wir Formeln mit N = 3n Variablen, die garantiert
erfüllbar sind und ausschließlich Klauseln der Länge 3 enthalten.
Es wurden Formeln mit den folgenden Werten für den Parameter p erzeugt:
p ∈ {0; 0,02; 0,04; ...; 0,2; 0,3; 0,4; ...; 1}
Für Tests mit Schöning S AT-Algorithmus wurde der Parameter n wie folgt gewählt:
n ∈ {10, 15, 20, 25}
Die Tests mit den übrigen S AT-Solver sind mit Formeln durchgeführt worden, für die n wie folgt
gewählt wurde:
n ∈ {10, 20, 30, ..., 90}
Für alle Paarungen n, p wurden bei Schönings Algorithmus je 500 Formeln generiert und bei den
überigen Solvern je 50.
61
Ergebnisse und Intepretation
Charakteristik in Abhängigkeit zum Parameter p
In den Diagrammen in Abbildung 5.12 ist zu sehen, wie sich die benötigte Anzahl an getesteten Belegungen, bis eine erfüllende gefunden wird, in Abhängigkeit zum Parameter p entwickelt.
Charakteristisch ist, dass für kleine p schon nach einer geringen Anzahl von getesteten Belegungen eine erfüllende gefunden wird, darauf folgt ein Bereich in dem diese Zahl stark ansteigt und
schließlich wird ein Wert erreicht, der bis p = 1 nahezu konstant bleibt. Dieser Übergangsbereich
ist kleiner und findet früher statt, umso größer n.
4
2.5 ×10
6.5
2.0
6.0
1.5
5.5
1.0
getestete Belegungen
1
7.0 ×10
5.0
schoening64
p
4.5
0.0 0.2 0.4 0.6 0.8 1.0
6
0.5
schoening64
p
0.0
0.0 0.2 0.4 0.6 0.8 1.0
n = 5, N = 15
7 ×10
6
5
4
3
2
1
0
0.0 0.2
n = 15, N = 45
schoening64
0.4
0.6
0.8
p
1.0
n = 25, N = 75
Abbildung 5.12: Ergebnisse für Schönings S AT-Algorithmus bei Formeln, die durch 3-Färbbarkeit
von Hypergraphen konstruiert wurden. Der Formelparameter N = 3n ist fest und p ∈ [0, 1].
In den nun folgenden Diagrammen in Abbildung 5.13 sehen wir die Testergebnisse der übrigen
S AT-Solver. Zu beachten ist, dass hier die Zeit in Abhängigkeit von p gemessen wurde. Auffällig
ist, dass hier kein konstanter Wert erreicht wird, sondern die Zeit nach einem Sprung am Anfang
kontinuierlich ansteigt.
2
1.4
1.2
Zeit in s
1.0
0.8
ppfolio64
adaptg2wsat
MPhaseSAT
cirminisat
0.6
0.4
0.2
0.0
0.0
0.2
0.4
0.6
0.8
p
1.0
n = 40, N = 120
4.5 ×10
ppfolio64
4.0
adaptg2wsat
3.5
MPhaseSAT
3.0
cirminisat
2.5
selector
2.0
1.5
1.0
0.5
0.0
0.0
0.2
0.4
0.6
0.8
p
1.0
n = 90, N = 270
Abbildung 5.13: Ergebnisse für S AT-Solver bei Formeln, die durch 3-Färbbarkeit von Hypergraphen konstruiert wurden. Der Formelparameter N = 3n ist fest und p ∈ [0, 1].
62
Analyse des Phasenübergangs
Betrachten wir nun, wie der Übergang von „die Formeln hat sehr viele erfüllende Belgungen“
zu „sie besitzt nur die eine garantierte erfüllende Belegung“ stattfindet. Dazu wurde mit dem
S AT-Algorithmus von Schöning gezählt, in wievielen Fällen die bekannte garantierte Belegung
gefunden wird. In der folgenden Abbildung ist angegeben wie groß der Anteil ist, in denen die
Standardbelegung gefunden wurde, in Abhängigkeit von p.
1.0
0.8
0.6
0.4
0.2
0.0
0.0
0.1
0.2
0.3
p
0.5
0.4
n=5
f (p, 14.86, 0.218)
n = 10
f (p, 60.33, 0.082)
n = 15
f (p, 187.60, 0.043)
n = 20
f (p, 1252.43, 0.022)
n = 25
f (p, 1407.19, 0.019)
Abbildung 5.14: Phasenübergang bei Formeln, die durch 3-Färbbarkeit von Hypergraphen erzeugt
wurden. Die Y-Achse gibt an, wie oft anteilig die garantiert existierende, erfüllende Standardbelegung gefunden wurde. Außerdem wurde eine Modellfunktion mit approximierten Parametern
eingezeichnet.
Anhand der Modellfunktion f , die hier in einer analogen Weise wie in Abschnitt 5.4 verwendet
wird, kann der kritische Punkt geschätzt werden, an dem die Anzahl der erfüllenden Belegungen
stark abnimmt. Die folgende Tabelle enthält die entsprechenden Werte.
Parameter n
Wendepunktanstieg a
Wendepunktposition b
Klauselanzahl EW (M (b))
M (b)/N (n)
erfüllte Literale p. Klausel
5
10
15
20
25
14,86
0,218
11,72
0,78
0,52
60,33
0,082
37,56
1,25
0,53
187,60
0,043
66
1,47
0,55
1252,43
0,022
89,42
1,49
0,55
1407,19
0,019
138,75
1,85
0,56
Tabelle 5.9: Wendepunktposition und Wendepunktansteig bei dem Phasenübergang von Formeln,
die durch 3-Färbbarkeit von Hypergraphen erzeugt wurden, für verschiedene Formelparameter n.
Weiterhin ist angegeben, wie groß der Anteil erfüllter Literale pro Klausel für die entsprechenden
Formelparameter und die jeweils gefundene erfüllende Belegung ist.
Es kann beobachtet werden, dass der Wendepunkt sich mit wachsendem Parameter n an den Wert
etwa p ≈ 0,017 annähert.
In Satz 2.4 haben wir eine Schranke für die 2-Färbbarkeit von einem zufälligen Hypergraphen
H ∈ H (m, q, k) kennengelernt, die von der Anzahl der Kanten beziehungsweise von der Kantenwahrscheinlichkeit abhängt. Die in diesem Abschnitt behandelten Hypergraphen sind zwar
63
nicht vollständig mit den zufälligen Hypergraphen identisch, da Kanten, die die 3-Färbbarkeitseigenschaft verletzen würden, mit Wahrscheinlichkeit 0 statt p existieren. Hinzu kommt, dass
wir hier statt dem 2-Färbbarkeitsproblem das 3-Färbbarkeitsproblem betrachten. Dennoch, jeder 2-färbbare Hypergraph ist auch 3-färbbar und das 3-Färbbarkeitsproblem ist genauso N Pvollständig wie es das 2-Färbbarkeitsproblem ist. Die Schranke sollte also geeignet sein, den Verlauf des empirisch bestimmten Phasenübergangs in Abbildung 5.14 besser deuten zu können. Die
in Satz 2.4 gegebene Schranke lautet
q
m
ln 2
.
≥ 2k−1 ln 2 −
2
k
Um die kritischen Punkte im Phasenübergang zu bestimmen, müssen wir also die Ungleichung
durch eine Gleichung ersetzen, q = pk , m = n = N/3 und k = 3 einsetzen und nach p umstellen.
pf =
4 ln 2 − ln22
N/3
3
Für Formeln mit N = 15, 30, 45, 60, 75 erhalten wir nun die folgenden Werte.
n
5
10
15
20
25
pf
0,24260
0,02022
0,00533
0,00213
0,00105
Tabelle 5.10: Der Kritische Punkt, an dem die Wahrscheinlichkeit, dass ein zuffälliger Hypergraph
H (m, q, k) 2-färbbar ist, von fast 1 zu fast 0 übergeht. Es gilt k = 3.
Vergleicht man diese Berechnungen mit den Stellen im Diagramm, wo ein Anstieg zu verzeichnen
ist, also wo die Anzahl der erfüllenden Belegungen stark abnimmt, dann kann hier ein Zusammenhang festgestellt werden. Demnach nimmt die Anzahl der erfüllenden Belegungen im kritischen
Bereich p ≥ pk stark ab, weil der zufällige Anteil des ursprünglichen Hypergraph, von dem ausgehend die Formeln generiert werden, selbst immer weniger erfüllende Belegungen produziert, bis
schließlich nur die erfüllende Belegung existiert, die Konstruktionsweise bedingt ist. Weiterhin ist
eben an diesen Stellen zu beobachten, dass die S AT-Solver erhöhten Aufwand betreibem müssen,
um die Erfüllbarkeit festzustellen, wie in den Abbildungen 5.12 und 5.13 zu sehen ist.
Laufzeitverhalten in Abhängigkeit zu N
Zuletzt stellt sich die Frage, wieviel Aufwand die S AT-Solver in Abhängigkeit der Anzahl der
Variablen N bzw. der Anzahl von Knoten n betreiben müssen, um die Erfüllbarkeit der Formeln
festzustellen. Dabei wurde für jedes N der Parameter p so gewählt, dass die durchschnittliche
Anzahl von getesteten Belegungen oder die durchschnittlich benötigte Zeit maximal ist. Bei den
Testergebnissen mit Schönings S AT-Algorithmus, die in Abbildung 5.15 zu sehen sind, entspricht
jeder Messpunkt dem Durchschnitt über 500 Formeln. Die Resultate der übrigen S AT-Solver befinden sich in Abbildung 5.16. Hier gibt jeder Messpunkt den Durchschnitt über 50 Formeln an.
64
108
schoening64
3N · 20.2284N
maxp ( Getestete Belegungen)
107
106
105
104
103
102
101
100
10−1
10−2
0
10
20
30
40
50
60
70
N
80
Abbildung 5.15: Laufzeitverhalten von Schönings S AT-Algorithmus für Formeln mit N Variablen in 3-KNF, die von 3-Färbbarkeit von Hypergraphen reduziert wurden. Gemessen wurde die
durchschnittliche Zeit in Abhängigkeit von N , wobei der Parameter p so gewählt wurde, dass
dieser Durchschnittswert maximal ist.
104
maxp ( Zeit in s)
103
102
101
100
10−1
10−2
0
50
100
150
200
250
N
300
selector
4.41900 · 20.0248N
ppfolio64
0.00860 · 20.0414N
adaptg2wsat
0.05400 · 20.0378N
sattime
0.07920 · 20.0341N
cirminisat
0.01680 · 20.0297N
MPhaseSAT
0.00950 · 20.0547N
plingeling64
0.02800 · 20.0760N
Abbildung 5.16: Laufzeitverhalten von S AT-Solvern für Formeln mit N Variablen in 3-KNF, die
von 3-Färbbarkeit von Hypergraphen reduziert wurden. Gemessen wurde die durchschnittliche
Zeit in Abhängigkeit von N , wobei der Parameter p so gewählt wurde, dass dieser Durchschnittswert maximal ist.
Aus den empirisch bestimmten Laufzeiten der S AT-Solver lässt sich die asymptotische Zeitkomplexität beziehungsweise bei Schönings Algorithmus die Komplexität der Anzahl der getesteten
Belegungen in Abhängigkeit von der Anzahl der Variablen N abschätzen. Dabei wurde für Schönings Algorithmus mittels der Modellfunktion 3N · 2aN der Parameter a unter Logarithmierung
und durch Minimierung des quadratischen Fehlers approximiert. Für die übrigen Solver wurde
c + d · 2eN mit den Paramtern c, d und e verwendet. So ergeben sich die in der folgenden Tabelle
genannten Laufzeitkomplexitäten der S AT-Solver.
65
S AT-Solver
schoening64
selector
ppfolio64
adaptg2wsat
sattime
cirminisat
MPhaseSAT
plingeling64
Approximierte
Zeitkomplexität
O(3N · 1,172N )
O(1.017N )
O(1.030N )
O(1.027N )
O(1.024N )
O(1.021N )
O(1.039N )
O(1.054N )
Tabelle 5.11: Die Approximierten Zeitkomplexitäten in Abhängigkeit der Variablenanzahl N der
S AT-Solver bei Formeln, die durch 3-Färbbarkeit von Hypergraphen erzeugt wurden.
Die Ergebnisse des Solvers sparrow sind hier nicht aufgeführt, weil sie nicht vollständig erhoben
werden konnten. Obwohl dieser Solver in den anderen Experimenten vergleichweise gut abgeschnitten hat, scheint er mit diesem Formeltyp große Probleme zu haben. Für einige Formeln mit
zum Beispiel nur 30 Variablen konnte er auch nach tagelanger Laufzeit kein Ergebnis liefern. Ob
es daran lag, dass die Heuristiken des SLS-basierten Solvers für diesen Formeltyp völlig ungeeignet sind, oder hier ein Fehler in der Implementierung vorliegt, konnte nicht geklärt werden.
Zusammenfassung
In diesem Abschnitt wurden Formeln experimentell untersucht, die auf Basis von 3-färbbaren Hypergraphen konstruiert werden. Durch die Konstruktionsmethode bedingt besitzen diese Formeln
immer zumindest eine erfüllende Belegung.
Wenn der Parameter p und damit die erwartete Anzahl der Kanten des zugrundeliegenden Hypergraphen variiert wird, zeigt sich bei Schönings Algorithmus und den übrigen S AT-Solvern ein
unterschiedliches Bild. Bei Schöning haben wir einen frühen, starken Anstieg der Anzahl der Belegungstests, der offenbar im Zusammenhang mit dem Phasenübergang steht. Bei den Solvern
sehen wir dagegen einen langsamen Anstieg.
Phasenübergang Mit zunehmender Anzahl von Kanten im Hypergraph kommt ein Bereich, in
dem die Anzahl der erfüllenden Belegungen für die entsprechende aussagenlogische Formel stark
abnimmt, bis nur noch die garantierte Belegung erfüllend ist. Dieser Übergang findet umso früher
und abrupter statt, desto größer die Anzahl der Knoten. Anhand der empirischen Daten konnte ermittelt werden, dass dieser kritische Punkt für die Kantenwahrscheinlichkeit sich mit wachsendem
Parameter n an den Wert etwa p ≈ 0,017 annähert. Es kann weiterhin beobachtet werden, dass an
der Stelle qk wo ein zufälliger Hypergraph H ∈ H (m, q, k) mit hoher Wahrscheinlichkeit nicht
mehr 2-färbbar ist, auch die Anzahl der erfüllenden Belegungen der reduzierten Formeln stark
abnimmt.
Laufzeitanalyse Alle in den Tests verwendeten S AT-Solver haben eine exponentiell wachsende
Laufzeit in Abhängigkeit zur Anzahl der Variablen N . Der S AT-Solver selector hat mit O(1.017N )
66
die beste asymptotische Laufzeit erreicht.
5.7
Das X3 C-Problem
Das X3 C-Problem ist ein Spezialfall des Problems der exakten Überdeckung. Gegeben ist eine
Grundmenge U und eine Menge S = {S1 , S2 , ..., Sn } von Teilmengen der Größe 3 von U soll eine
Teilmenge S 0 von S gefunden werden, so dass jedes Element von U in genau einem Element von
S 0 enthalten ist. Eine ausführliche Beschreibung des Problems und dem allgemeineren Problem
der exakten Überdeckung ist in Abschnitt 2.4 zu finden. Hier geht es darum S AT-Formeln, die
basierend auf dem obigen Problem konstruiert werden, experimentell zu untersuchen.
Verwendete Formeln
In diesem Abschnitt werden S AT Formeln in k-KNF beziehungsweise 3-KNF durch Reduktion
vom X3 C-Problem so erzeugt, dass sie garantiert zumindest eine erfüllende Belegung besitzen.
Das genaue Verfahren ist dabei durch den Algorithmus X3CCNF in Abschnitt 8 gegeben. Die
Paramter n, m ∈ N geben dabei die Größe der Grundmenge |U | = m und die Größe Tripelmenge
|S| = n an. Bedingt durch die Art der Reduktion hängt die Anzahl der Variablen einer S AT-Formel
in diesem Fall von der Größe der Tripelmenge ab, es gilt N = n.
Es wurden für die Tests mit Schönings S AT-Algorithmus jeweils 10 Formeln für die folgenden
Parameterpaarungen erzeugt.
n ∈ {3, 6, 9, ..., 120} und
m ∈ {3, 6, 9, ..., 2n} .
Für die übrigen S AT-Solver sind jeweils 150 Formeln mit nachfolgenden Parametern gewählt worden.
n ∈ {30, 60, 90, ..., 390} und
m ∈ {3, 9, 15, 21, 27, ..., 3n} .
In beiden Fällen wurden alle Experimente mit den beiden Konstruktionsvarianten durchgeführt.
Die erste produziert Formeln, die Klauseln mit bis zu n Literalen enthalten, und die andere erzwingt eine maximale Klauselgröße von 3.
Ergebnisse und Interpretation
Charakteristik bei festem Paramter n
In den folgenden Dagrammen in Abbildung 5.17 sehen wir, wie sich die durchschnittliche Anzahl
der getesteten Belegungen bei Schönings S AT-Algorithmus für Formeln in n-KNF entwickelt,
wenn der Parameter n fest und Parameter m wie oben beschrieben variiert wird. Es ist zu beobachten, dass bei diesen Formeln für die meisten Paarungen von n, m sehr schnell eine erfüllende
67
Belegung gefunden wird, außer um die Stelle etwa m = n/2 herum (gestrichelte vertikale Linie),
wo der notwendige Aufwand, um die Erfüllbarkeit festzustellen, plötzlich stark ansteigt.
5
1.0 ×10
getestete Belegungen
7
1.2 ×10
1.0
0.8
0.8
0.6
0.6
0.4
0.4
0.2
0.0
8
4.5 ×10
4.0
3.5
3.0
2.5
2.0
1.5
1.0
0.5
m 0.0
0
20
100
0.2
0
20
40
60
m 0.0
100
0
80
20
n = 60, N = 60
40
60
80
n = 90, N = 90
40
60
m
100
80
n = 120, N = 120
Abbildung 5.17: Ergebnisse für Schönings S AT-Algorithmus bei Formeln mit N Variablen in nKNF, die durch das X3 C-Problem konstruiert wurden. Der Formelparameter N = n ist fest und
m ∈ [0, 100]. Die horizontale gestrichelte Linie wurde bei n/2 gezogen.
Bei den Test mit Formeln, die ausschließlich Klauseln mit maximaler Größe drei enthalten, erkennen wir in Abbildung 5.18 ebenfalls eine Spitze bei etwa n = m/2 (gestrichelte vertikale
Linie), obwohl eine leichte Verschiebung nach links festgestellt werden kann. Aber wir beobachten auch, dass im Gegensatz zu den Formeln in n-KNF bei den Spitzen deutlich höhere Werte für
die im Mittel notwendigen Belegungstests erreicht werden. Die ist zurückzuführen auf die erhöhte
Anzahl von Variablen, die bei der Zerlegung einer n-Klausel zu 3-Klauseln enstehen.
getestete Belegungen
6
2.0 ×10
8
1.2 ×10
10
1.2 ×10
1.0
1.0
0.8
0.8
0.6
0.6
0.4
0.4
1.5
1.0
0.5
0.0
0.2
0
5
10
15
20
n = 30
25
30
35
m 0.0
0
40
0.2
5
10
15
20
n = 42
25
30
35
m 0.0
40
0
5
10
15
20
25
30
35
m
40
n = 54
Abbildung 5.18: Ergebnisse für Schönings S AT-Algorithmus bei Formeln mit N Variablen in 3KNF, die durch das X3 C-Problem konstruiert wurden. Der Formelparameter N = n ist fest und
m ∈ [0, 100]. Die horizontale gestrichelte Linie wurde bei n/2 gezogen.
Die Anzahl der Variablen bei einer Formel in 3-KNF hängt nicht allein vom Parameter n oder
m ab, sondern von der inividuellen X3 C-Instanz, von der sie reduziert wurde. Da diese Instanzen
teilweise randomisiert konstruiert werden, variiert die Anzahl der Variablen N und die Anzahl
der Klauseln M in den resultierenden S AT-Formeln. Die folgende Tabelle enthält daher für die
Parameterpaarungen der beobachteten Spitzen entsprechende Durchschnittswerte, wobei jeweils
10 Formeln zugrunde liegen.
68
n
m
avg(N )
avg(M )
30
30
30
42
42
42
54
54
54
12
15
18
18
21
24
24
27
30
84,0
54,3
67,7
114,1
105,4
97,1
144,7
135,4
127,9
338,2
261,0
245,4
466,7
402,0
363,5
600,9
541,9
487,5
Tabelle 5.12: Die Durchschnittliche Variablen- und Klauselanzahl bei Formeln, die durch das
X3 C-Problem erzeugt und in 3-KNF umgewandelt wurden, mit den Formelparametern n und m.
In den nun folgenden Diagrammen sind die gleichen Untersuchungen mit den anderen S ATSolvern durchgeführt worden. Auch hier wurde die vertikale gestrichelte Line wieder bei m = n/2
eingezeichnet.
1
4.0 ×10
3.5
Zeit in s
3.0
2.5
2.0
1.5
1.0
0.5
0.0
0
1
9 ×10
8
7
6
5
4
3
2
1
m 0
250 0
50
selector
adaptg2wsat
cirminisat
sattime
sparrow
plingeling64
ppfolio64
50
100
150
200
n = 240
selector
adaptg2wsat
cirminisat
sattime
sparrow
plingeling64
ppfolio64
3
3.0 ×10
2.5
2.0
1.5
1.0
selector
adaptg2wsat
cirminisat
sattime
sparrow
plingeling64
ppfolio64
0.5
100
150
200
m 0.0
250
0
50
n = 300
100
150
200
m
250
n = 390
Abbildung 5.19: Ergebnisse für S AT-Solver bei Formeln mit N Variablen in n-KNF, die durch das
X3 C-Problem konstruiert wurden. Der Formelparameter N = n ist fest und m ∈ [0, 100]. Die
horizontale gestrichelte Linie wurde bei n/2 gezogen.
1
1.4 ×10
selector
adaptg2wsat
cirminisat
sattime
sparrow
plingeling64
ppfolio64
1.2
Zeit in s
1.0
0.8
0.6
0.4
0.2
0.0
0
50
100
150
n = 240
200
1
3.5 ×10
selector
adaptg2wsat
cirminisat
sattime
sparrow
plingeling64
ppfolio64
3.0
2.5
2.0
1.5
1.0
0.5
m 0.0
250
0
2
1.2 ×10
1.0
0.8
0.6
0.4
selector
adaptg2wsat
cirminisat
sattime
sparrow
plingeling64
ppfolio64
0.2
50
100
150
n = 270
200
m 0.0
0
250
50
100
150
200
m
250
n = 300
Abbildung 5.20: Ergebnisse für S AT-Solver bei Formeln mit N Variablen in 3-KNF, die durch das
X3 C-Problem konstruiert wurden. Der Formelparameter N = n ist fest und m ∈ [0, 100]. Die
horizontale gestrichelte Linie wurde bei n/2 gezogen.
Es ist eine vergleichbare Charakteristik zu erkennen, wie bei den Experimenten mit Schönings
69
S AT-Algorithmus. Auch hier gibt es eine Spitze in der Nähe von m = n/2, allerdings liegt diese
hier nicht genau an diesem Punkt, sondern etwas davor. Ob dies darauf zurückzuführen ist, dass
wir uns hier in deutlich größeren Bereichen von n befinden oder ob es an den S AT-Solver selbst
liegt, dazu wurde in der folgenden Abbildung 5.21 Schönings Algorithmus den übrigen Solvern
bei gleichem Parameter n gegenübergestellt. Die Solver selector und sattime sind hier weggelassen
worden, da diese einen sehr großen konstanten Wert in der Laufzeit haben und zum einen keine
Spitze mehr auszumachen wahr, zum anderen die Scala der Y-Achse zu stark vergrößert wird.
8
4.5 ×10
4.0
3.5
3.0
2.5
2.0
1.5
1.0
0.5
0.0
0
20
adaptg2wsat
cirminisat
sparrow
plingeling64
ppfolio64
Zeit in s
−1
1.8 ×10
1.6
1.4
1.2
1.0
0.8
0.6
0.4
0.2
0.0
0
50
100
150
200
m
250
n = 120, k-KNF, Solver
40
60
80
m
100
n = 120, k-KNF, Schöning
Abbildung 5.21: Vergleich von Schönings S AT-Algorithmus mit den übrigen S AT-Solvern für Formeln mit n = 120 in n-KNF, die durch X3 C-Instanzen konstruiert wurden.
Analyse des Phasenübergangs
Nun soll abgeschätzt werden wieviele erfüllende Belegungen eine Formel besitzt, die mit dem Algorithmus X3CCNF(n, m) konstruiert wurde. Dazu wird bei den Tests mit dem S AT-Algorithmus
von Schöning gemessen, wie oft die gefundene erfüllende Belegung einer Formel, derjenigen
gleicht, die garantiert existiert. Wird diese versteckte Belegung nie gefunden, heißt das, es existieren sehr viele erfüllende Belegungen und im ungekehrten Fall, wenn immer die versteckte Belegung gefunden wird, kann gefolgert werden, es existiert nur diese eine. Da Schönings Algorithmus
ein Random Walk Algorithmus ist, hat jede erfüllende Belegung die gleiche Wahrscheinlichkeit
gefunden zu werden und es können Schlussfolgerungen dieser Art getroffen werden. Die gemessenen Werte deuten darauf hin, dass der Phasenübergang, also der Übergang von „es wird sehr
selten die versteckte Belegung gefunden“ zu „es wird immer die versteckte Belegung gefunden“,
gemäß der folgenden Gesetzmäßigkeit verläuft.
f (q, a, b) =
1
1 − ea(b−q)
Es handelt sich hierbei um die logistische Funktion, mit den Parametern a und b. Der Parameter
a bestimmt die Steigung des Wendepunkts und der Parameter b die Position des Wendepunkts.
Die logistische Funktion wird hier als Modellfunktion für die Methode der kleinsten Quadrate
verwendet. In der folgenden Abbildung 5.22 sind die Anteile zu sehen, wie oft der Algorithmus
von Schöning die versteckte erfüllende Belegung findet, und der entsprechende Verlauf der Modellfunktion mit den approximierten Parametern.
70
1.0
0.8
0.6
0.4
0.2
0.0
0
20
40
60
m
100
80
n = 30
f (m, 0.47, 14.91)
n = 45
f (m, 0.32, 23.84)
n = 60
f (m, 0.29, 29.23)
n = 75
f (m, 0.47, 33.38)
n = 90
f (m, 0.23, 39.18)
n = 105
f (m, 0.23, 46.67)
n = 120
f (m, 0.3, 51.32)
Abbildung 5.22: Phasenübergang bei Formeln, die durch das X3 C-Problem erzeugt wurden. Die
Y-Achse gibt an, wie oft anteilig die garantiert existierende, erfüllende Standardbelegung gefunden wurde. Desweiteren wurde jeweils eine Modellfunktion mit approximierten Parametern eingezeichnet.
In der folgenden Tabelle 5.13 sind die approximierten Parameter mit den zugehörigen Formelparametern aufgeführt.
n
n/2
Steigung a
Wendepunkt b
erfüllte Literale p. Klausel
30
45
60
75
90
105
120
15
0,47
14,91
0,81
22,5
0,32
23,84
0,80
30
0,29
29,23
0,82
37,5
0,47
33,38
0,83
45
0,23
39,18
0,84
52,5
0,23
46,67
0,83
60
0,3
51,32
0,83
Tabelle 5.13: Die Wendepunktposition und der Wendepunktansteig bei dem Phasenübergang von
Formeln, die durch das X3 C erzeugt wurden, für verschiedene Formelparameter n.Weiterhin ist
angegeben, wie groß der Anteil erfüllter Literale pro Klausel für die entsprechenden Formelparameter und die jeweils gefundene erfüllende Belegung ist.
Es ist zu beobachten, dass der Wendepunkt immer kurz vor dem Wert m = n/2 liegt. Also kurz
vor der Stelle, bei der die obigen Untersuchungen zeigten, dass dort die Schwierigkeit, die Formeln
auf Erfüllbarkeit zu testen, stark ansteigt.
Das X3 C lässt sich auf das Cliquenproblem reduzieren, indem jedes Tripel der Menge S einen
Knoten darstellt und zwei Knoten miteinander durch eine Kante verbunden sind, wenn die entsprechenden Tripel keine gemeinsamen Elemente besitzen. Wir können daher Kenntnisse über die
Existenz von Cliquen in Zufallsgraphen nutzen, um Aussagen über zufällige X3 C-Instanzen zu
treffen und die hier gewonnenen Ergebnisse besser zu verstehen. Dabei müssen wir jedoch berücksichtigen, dass die hier untersuchten X3 C-Instanzen nur teilweise zufällig sind, da sie stets
eine garantierte Lösung besitzen und weiterhin die Eigenschaft eines Zufallsgraphen, dass jede
Kante unabhängig von den anderen Kanten mit einer gewissen Wahrscheinlichkeit existiert, hier
ebenfalls nicht ganz zutrifft.
In einem von einer X3 C-Instanz mit |U | = m reduzierten Graphen G ist die Kantenwahrschein71
lichkeit p gleich der Wahrscheinlichkeit, dass zwei zufällig gewählte Tripel keine gemeinsamen
Elemente besitzen, also
m−3 m−4 m−5
p(m) =
·
·
.
m
m−1 m−2
Die Wahrscheinlichkeit, dass dieser Zufallsgraph in Gn,p eine Clique der Größe k enthält, erhalten
wir durch Multiplikation der Anzahl der möglichen Kombinationen von k aus n Knoten nk mit
der Wahrscheinlichkeit, dass alle Kanten zwischen ihnen existieren und erhalten so
n k(k−1)
z(n, k, p) =
p 2
.
k
Da wir in X3 C-Instanzen nach einer exakte Abdeckung der größe m/3 suchen, müssen wir auch
in G nach einer Clique der größe m/3 suchen. Wir wählen also k = m/3. Die entsprechenden
Werte können dem nachfolgenden Diagramm in Abbildung 5.23 entnommen werden.
n = 30
f (m, 0.47, 14.91)
1.0
z(30, m/3, p(m))
n = 60
f (m, 0.29, 29.23)
z(60, m/3, p(m))
n = 90
f (m, 0.23, 39.18)
z(90, m/3, p(m))
0.8
0.6
0.4
0.2
0.0
m
0
20
40
60
80
100
120
140
Abbildung 5.23: Empirisch bestimmter Phasenübergang (Messpunkte; Anteil der garantiert existierenden Standardbelegung unter allen erfüllenden Belegungen) inklusive approximierter Modellfunktion f (durchgezogene Linie) und die Wahrscheinlichkeit z einer k-Clique (gestrichelte
Linie).
Wir sehen hier als durchgezogene Linie den Anteil der Tests, bei denen die garantierte erfüllende
Belegung beziehungsweise die garantiert exakte Abdeckung von Schönings S AT-Algorithmus gefunden wird. Das heißt, ein kleiner Wert lässt auf sehr viele erfüllende Belegungen schließen und
ein großer Wert nahe 1 auf sehr wenige. Die gestrichelte Linie ist die Wahrscheinlichkeit einer
k-Clique. Wenn also die Wahrscheinlichkeit einer k-Clique groß ist, sollte man annehmen, dass
die Anzahl der erfüllenden Belegungen groß ist, da neben der versteckten Belegung auch die zufällig enstandenen hinzukommen. Dagegen, wenn die Wahrscheinlichkeit einer k-Clique klein ist,
sollte nur die garantierte erfüllende Belegung verbleiben. Im Diagramm lässt sich ablesen, dass
der Punkt, an dem der Anteil, den die versteckten Belegung ausmachen, stark zunimmt mit dem
Punkt, wo die Wahrscheinlichkeit einer k-Clique stark abnimmt, korreliert.
Laufzeitwachstum in Abhängigkeit der Variablenzahl N
In den hier folgenden Diagrammen ist die Laufzeitkomplexität der verschiedenen S AT-Algorithmen in Abhängigkeit zu der Anzahl von Variablen für die verschiedenen Varianten der Formeln zu
72
maxm ( Getestete Belegungen)
sehen. Bei Schönings S AT-Algorithmus wurde wieder die Anzahl der getesteten Belegungen statt
der tatsächlichen Zeit als Maß verwendet. In Abbildung 5.24 sind die Testergebnisse für Schönings
S AT-Algorithmus mit den Formel in n-KNF und 3-KNF zu sehen. Für die übrigen S AT-Solver
wurden die Ergebnisse für die beiden Formelvarianten getrennt dargestellt, sie befinden sich in
Abbildung 5.25 und 5.26.
1010
109
108
107
106
105
104
103
102
101
100
10−1
schoening, 3-KNF
3N · 20.175N
schoening, n-KNF
3N · 20.175N
N
0
20
40
60
80
100
120
Abbildung 5.24: Laufzeitverhalten von Schönings S AT-Algorithmus für Formeln mit N = n Variablen in n-KNF und 3-KNF, die vom X3 C-Problem reduziert wurden. Gemessen wurde die
durchschnittliche Zeit in Abhängigkeit von N , wobei der Parameter m so gewählt wurde, dass
dieser Durchschnittswert maximal ist.
104
selector
3.70731 · 20.015N
adaptg2wsat
0.00006 · 20.066N
cirminisat
0.00000 · 20.071N
sattime
0.00018 · 20.058N
sparrow
0.00020 · 20.055N
plingeling64
0.00047 · 20.042N
ppfolio64
0.00005 · 20.048N
103
maxm ( Zeit in s)
102
101
100
10−1
10−2
10−3
N
0
50
100
150
200
250
300
350
400
Abbildung 5.25: Laufzeitverhalten von S AT-Solvern für Formeln mit N = n Variablen in n-KNF,
die vom X3 C-Problem reduziert wurden. Gemessen wurde wieder die durchschnittliche Zeit in
Abhängigkeit von N , wobei m so gewählt wurde, dass der Wert maximal ist.
Die höhere Streuung, die bei Tests mit Schönings S AT-Algorithmus mit Formeln in 3-KNF zu
beobachten ist, kommt dadurch zustande, dass, wie bereits oben erwähnt, die Anzahl der Variablen
73
N bei diesen Formeln etwas vom Zufall abhängt und sich daher die 10 Formeln eines Messpunkts
auf verschiedene N verteilen, im Gegensatz zu den Formeln in n-KNF. Die Ergebnisse zeigen,
dass Schönings Algorithmus die Erfüllbarkeit der Formeln nicht schneller ermitteln kann, wenn
ein Teil der Variablen dem Zwecke der Klauselzerlegung dient.
102
selector
5.05118 · 20.0N
adaptg2wsat
0.02501 · 20.003N
cirminisat
0.00670 · 20.003N
sattime
0.03303 · 20.003N
sparrow
0.00662 · 20.005N
plingeling64
0.04110 · 20.003N
ppfolio64
0.00866 · 20.002N
maxm ( Zeit in s)
101
100
10−1
10−2
10−3
N
0
200
400
600
800
1000
1200
1400
1600
1800
Abbildung 5.26: Laufzeitverhalten von S AT-Solvern für X3 C-Formeln mit N = n Variablen in
n-KNF. Es wurde die durchschnittliche Zeit in Abhängigkeit von N gemessen, der Parameter m
wurde dabei so gewählt, dass dieser Durchschnittswert maximal ist.
Die übrigen S AT-Solver kommen mit solchen Variablen, die in eine Formel eingefügt werden,
um große Klauseln in 3-Klauseln zu zerlegen, sehr gut zurecht, wie wir bei den Ergebnissen mit
Formeln in 3-KNF in der Abbildung 5.26 beobachten können. Die Laufzeiten sind deutlich besser
bei den Formeln in n-KNF bei gleicher Anzahl von Variablen N . Weiterhin können wir hier eine
bogenförmige Struktur erkennen, die darauf zurückzufühen ist, dass wir für Formeln in 3-KNF mit
Parameter n, Formeln mit unterschiedlicher Variablenanzahl N bekommen, insbesondere, wenn
der Parameter m variiert. Das heißt, die Methode, die m für ein festes N so auszuwählen, dass
die Zeit maximal ist, trägt hier nicht, da sich die Formeln für ein festes n auf verschiedene N
verteilen. Daher können wir jede dieser bogenförmigen Strukturen einem Wert für den Parameter
n zuordnen.
Alternativ könnte man hier zunächst die Werte für ein festes n bestimmen und dann die Zeiten
für ein durchschnittliches N ins Diagramm eintragen. Das würde allerdings die Messergebnisse
verfälschen, da es sich bei der Durchschnittsfunktion um eine lineare Abbildung handelt, die Zeit
aber exponentiell in Abhängigkeit zu N wächst.
Aus den experimentell bestimmten Laufzeiten ergeben sich die in der folgenden Tabelle 5.14
dargestellten approximierten Zeitkomplexitäten.
74
S AT-Solver
schöning
selector
adaptg2wsat
cirminisat
sattime
sparrow
plingeling64
ppfolio64
Approximierte
Zeitkomplexität n-KNF
Approximierte
Zeitkomplexität 3-KNF
O(3N · 1,129N )
O(1,010N )
O(1,047N )
O(1,050N )
O(1,041N )
O(1,039N )
O(1,030N )
O(1,034N )
O(3N · 1,129N )
siehe Abbildung 5.26
O(1,002N )
O(1,002N )
O(1,002N )
O(1,003N )
O(1,002N )
O(1,001N )
Tabelle 5.14: Die approximierten Zeitkomplexitäten in Abhängigkeit der Variablenanzahl N der
S AT-Solver bei Formeln, die durch das X3 C-Problem erzeugt wurden.
Zusammenfassung
Es wurden S AT-Formeln auf Basis des X3 C-Problems randomisiert konstruiert und experimentell
untersucht. Eine X3 C-Instanz (U, S) mit der Grundmenge U und der Tripelmenge S wird auf
eine S AT-Formel in n-KNF mit N = n = |S| Variablen reduziert. Zerlegt man zusätzlich die
n-Klauseln in 3-Klauseln, entstehen weitere Variablen.
Zeit
Charakteristik Wählt man den Parameter n fest und variiert m = |U | ergibt sich folgendes
charakteristisches Bild.
n/2
m
Allerdings verschiebt sich der kritische Punkt m = n/2 bei größeren Werten für n leicht nach
links.
Phasenübergang Es findet auch hier ein Phasenübergang von „die Formeln hat sehr viele erfüllende Belegungen“ zu „die Formel hat nur eine erfüllende Belegung“ statt, der vom Formelparameter m abhängt. Durch Reduktion von X3 C auf C LIQUE kann man (teilweise) zufällige
X3 C-Instanzen mit Zufallsgraphen vergleichen. Der Punkt, an dem für eine durch X3 C konstruierte Formel die Anzahl der erfüllenden Belegungen abnimmt korreliert mit dem Punkt, an dem
die Wahrscheinlichkeit für eine entsprechend große Clique in einem Zufallsgraph abnimmt.
Laufzeitanalyse Die S AT-Solver haben ein exponentielles Laufzeitwachstum in Abhängigkeit
zur Anzahl der Variablen N . Bei der Formelvariante in 3-KNF stellen die neu hinzugekommenen
Variablen für keinen der Solver außer Schönigs S AT-Algorithmus eine nennenswerte Erhöhung
75
der Schwierigkeit dar, so dass Formeln in 3-KNF statt n-KNF deutlich effizienter auf Erfüllbarkeit
geprüft werden können.
5.8
Teilgraph-Isomorphie
Verwendete Formeln
Bei den Formeln die durch TICNF (siehe Abschnitt 14) basierend auf dem Teilgraph-IsomorphieProblem konstruiert werden, haben wir die drei Formelparameter n, m, p. Der Parameter n bestimmt die Anzahl der Knoten, die zunächst in den zwei isomorphen Graphen enthalten sind. Der
Parameter m bestimmt wieviele Knoten dann einem der beiden Graphen noch hinzugefügt werden und p ist die Wahrscheinlichkeit der Existenz jeder Kante, die nicht die Teilgraph-Isomorphie
verletzt. Es wurden Formeln mit n = 7, 8, 9, m = 0, 1, 2, ..., 2n und p = {0; 0,2; 0,4; 0,6; 0,8, 1}
erzeugt. Und zwar 50 für jede Parameterkombination.
Ergebnisse und Interpretation
Charakteristik bei festem Parameter n
Nachfolgend in Abbildung 5.27 sind die Ergebnisse zu sehen, die Schönings S AT-Algorithmus
liefert, wenn der Parameter n fest gewählt wird. Es muss allerdings berücksichtigt werden, dass
sich die Anzahl der Variablen N bei den resultierenden Formeln mit Vergrößerung des Parameters
m ebenfalls vergrößert. Wir können einen starken Anstieg der im Mittel getesteten Belegungen
bei n = 8, m = 8, p = 0,4 und n = 9, m = 12, p = 0,2 beobachten.
×108
×106
5
4
1.0
getestete
Belegungen
.
.
getestete
Belegungen
0.8
3
0.6
2
1
0
0.0
1.2
0.4
0.2
0.2
0.4
p 0.6
0.8
1.0 16
14
0.0
0.0
0
4 2
6
8
12 10 m
n=8
0.2
0.4
p 0.6
8 6
12 10 m
14
0.8
1.0 18 16
0
4 2
n=9
Abbildung 5.27: Ergebnisse für Schönings S AT-Algorithmus bei Formeln, die durch Reduktion
vom Teilgraph-Isomorphie-Problem konstruiert wurden. Der Formelparameter n ist fest, m ∈
[0, 2n] und p ∈ [0, 1].
76
Analyse des Phasenübergang
Auffalland ist hier, dass in dem Bereich des Parameterraums, wo die meisten Belegungen gestestet werden müssen (siehe Oben), die Anzahl der erfüllenden Belegungen dennoch sehr hoch ist,
wie die folgende Abbildung 5.28, die angibt, wie oft die versteckte erfüllende Belegung anteilig
gefunden wird, zeigt. Das die Anzahl von Variablen mit wachsendem m steigt, wird dabei eine
Rolle spielen.
×10−1
9
8
7
6
5
4
3
2
1
0
0.0
0.2
n=7
n=8
n=9
0.4
p 0.6
0.8
1.0 18
16
0
4 2
6
10 8
12
m
14
Abbildung 5.28: Phasenübergang bei Formeln, die durch das Teilgraph-Isomorphie-Problem erzeugt wurden. Die Y-Achse gibt an, wie oft anteilig die garantiert existierende, erfüllende Standardbelegung gefunden wurde.
5.9
Vergleich der Formelfamilien
In diesem Abschnitt soll die Schwere der verschiedenen Formelfamilien abgeschätzt werden, indem die Laufzeiten der S AT-Solver in Abhängigkeit der Variablenanzahl gegenüber gestellt werden. Die jeweiligen Formelparameter, die die Anzahl der Klauseln bestimmen, werden stets so
gewählt, dass die Laufzeit des entsprechenden Solvers maximal wird. Für diese festen Parameter
wurde dann ein Durchschnittswert über bestimmte Anzahl von Formel ermittelt. Daher sprechen
wir hier auch von einem Worst-Case-Durchschnitt. Bei Schönings S AT-Algorithmus sind nicht die
Zeiten gemessen worden, sondern die Anzahl der Belegungstests, die notwendig waren, bis eine
erfüllende Belegung gefunden wurde.
Die gestrichelten Linien in den folgenden Diagrammen geben die durch Minimierung des quadratischen Fehlers approximierte asymptotische Zeitkomplexität für die jeweilige Formelfamilie und
den jeweiligen Solver an. Näheres dazu in Abschnitt 5.3.
Als Referenzgröße dienen hier Zufallsformeln in 3-KNF mit M = 4,2N , wobei die nicht erfüllbaren Formeln zuvor herausgefiltert wurden.
77
Schönings S AT-Algorithmus
Worst Case1
Anzahl getesteter Belegugnen
Der S AT-Algorithmus von Schöning erzielt die besten Ergebnisse bei den Formeln in 3-KNF, die
von 3-Färbbarkeitsproblem reduziert worden sind. Erstaunlicherweise liefert er auch bei X3 CFormeln, die nicht in 3-KNF sondern in n-KNF befinden, vergleichbare Ergebnisse. Da bei dieser
Formelart der Parameter n gleich der Anzahl der Variablen N ist, würde man hier deutlich höhere
Laufzeiten erwarten. Denn Schönings k-S AT-Algorithmus hat für große k eine Laufzeit nahe bei
2N (vgl. Tabelle 3.1). Dann folgen die Formeln, die auf dem 3-Färbbarkeitsproblem für Hypergraphen basieren und am schwersten Fallen dem Algorithmus mit Abstand der Formeltyp, der durch
das Kopieren der Klauseln einer Basisformel konstruiert wird. Keinen großen Unterschied gibt es
zwischen den beiden Varianten, mit und ohne Äquivalenzklausen, dieser Konstruktionsmethode.
1013
1012
1011
1010
109
108
107
106
105
104
103
102
101
100
Klauselkopien (ohne Äk.)
3N · 20.3054N
Klauselkopien (mit Äk.)
3N · 20.2883N
3-Färbbarkeit
3N · 20.1598N
Hyp. 3-Färbbarkeit
3N · 20.2284N
X3C (n-KNF)
3N · 20.1752N
erfüllbare Zufallsformeln
3N · 20.1956N
N
0
20
40
60
80
100
120
140
Abbildung 5.29: Das Laufzeitverhalten (hier durchschnittle Anzahl getesteter Belegung) von
Schönings S AT-Algorithmus in Abhängigkeit der Variablenanzahl N bei verschiedenen Formeltypen. 1) siehe Abschnitt 5.3
sparrow
Bei dem S AT-Solver sparrow bekommen wir folgendes Bild: die Formeln, die auf dem 3-Färbbarkeitsproblem basieren, sind offenbar noch einfacher auf Erfüllbarkeit zu prüfen, als es bei zufälligen, erfüllbaren Formeln der Fall ist. Wie bereits in Abschnitt 5.6 ausgeführt, konnten mit
diesem Solver keine vollständigen Daten für die Formeln basierend auf Hypergraphfärbbarkeit
erhoben werden.
78
106
10
Klauselkopien
0.00029 · 20.0995N
3-Färbbarkeit
0.01011 · 20.0039N
X3C (n-KNF)
0.00099 · 20.0473N
erfüllbare Zufallsformeln
0.01537 · 20.0092N
5
Worst Case1 Zeit in s
104
103
102
101
100
10−1
10−2
10−3
N
0
100
200
300
400
500
600
Abbildung 5.30: Das Laufzeitverhalten des S AT-Solvers sparrow in Abhängigkeit der Variablenanzahl N bei verschiedenen Formeltypen. 1) siehe Abschnitt 5.3
selector
Bei dem Solver selector beobachten wir, dass es Sprünge in Laufzeit gibt. Das liegt daran, dass es
ein Portfolio-Solver ist, der sich aufgrund einer Analyse der Eingabeformel einen Solver auswählt.
So kann es vorkommen, dass bei wachsender Anzahl von Variablen die Entscheidung auch mal
anders auswällt.
106
Klauselkopien
0.33900 · 20.0450N
3-Färbbarkeit
3.81027 · 20.0018N
Hyp. 3-Färbbarkeit
4.41903 · 20.0248N
X3C (n-KNF)
3.28731 · 20.0161N
erfüllbare Zufallsformeln
3.07151 · 20.0077N
Worst Case1 Zeit in s
105
104
103
102
101
100
N
0
100
200
300
400
500
600
Abbildung 5.31: Das Laufzeitverhalten des S AT-Solvers selector in Abhängigkeit der Variablenanzahl N bei verschiedenen Formeltypen. 1) siehe Abschnitt 5.3
79
ppfolio64
Der Solver ppfolio64 lieferte zwar in absoluten Zahlen die besten Werte, aber was die Asymptotik
betrifft finden wir auch hier ein ähnliches Bild, wie bei den übrigen Solvern.
104
Klauselkopien
0.00005 · 20.0674N
3-Färbbarkeit
0.01515 · 20.0052N
Hyp. 3-Färbbarkeit
0.01043 · 20.0400N
X3C (n-KNF)
0.00058 · 20.0370N
erfüllbare Zufallsformeln
0.00480 · 20.0136N
103
Worst Case1 Zeit in s
102
101
100
10−1
10−2
10−3
N
0
100
200
300
400
500
600
Abbildung 5.32: Das Laufzeitverhalten des S AT-Solvers ppfolio64 in Abhängigkeit der Variablenanzahl N bei verschiedenen Formeltypen. 1) siehe Abschnitt 5.3
plingeling64
Bei dem S AT-Solver plingeling64 kann eine leicht abweichende Situation festgestellt werden. Dieser Solver scheint größere Schwierigkeiten mit Zufallsformeln zu haben, was daran liegen mag,
dass plingeling64 ein DPLL-basierter Solver ist. Aber auch hier gilt, Hypergraph-Färbbarkeit und
die vervielfältigten Formeln stellen die schwersten dar.
106
10
Klauselkopien
0.00084 · 20.0657N
3-Färbbarkeit
0.12322 · 20.0044N
Hyp. 3-Färbbarkeit
0.02797 · 20.0760N
X3C (n-KNF)
0.01321 · 20.0272N
erfüllbare Zufallsformeln
0.00803 · 20.0270N
5
Worst Case1 Zeit in s
104
103
102
101
100
10−1
10−2
10−3
N
0
100
200
300
400
500
600
Abbildung 5.33: Das Laufzeitverhalten des S AT-Solvers plingeling64 in Abhängigkeit der Variablenanzahl N bei verschiedenen Formeltypen. 1) siehe Abschnitt 5.3
80
Kapitel 6
Abschlussdiskussion und Ausblick
Neue Methode erfüllbare Formeln zu konstruieren. Die von Prof. Reischuk vorgeschlagene
Methode zur randomisierten Konstruktion schwieriger, erfüllbarer 3-S AT-Formeln mit N Variablen und M Klauseln wurde in dieser Arbeit ausgearbeitet und experimentell untersucht. Das
Konstruktionsverfahren basiert auf einer festen Basisformel (siehe Anhang), dessen Klauseln vervielfältigt und die Literale innerhalb der Kopien randomisiert vertauscht werden. Wenn die Konstruktionsparameter N, M so gewählt werden, dass grob M/N & 3,47 gilt, dann sinkt die Anzahl
der erfüllenden Belegungen sehr stark, bis die Formeln mit an 1 grenzender Wahrscheinlichkeit nur
noch die eine garantiert existierende, erfüllende Belegung besitzen. Weiterhin haben die Untersuchungen in dieser Arbeit gezeigt: wenn die Konstruktionsparameter an dem genannten kritischen
Punkt liegen, haben sowohl die SLS-basierten als auch die DPLL-basierten S AT-Solver eine exponentielle Laufzeit in Abhängigkeit von N , die asymptotisch größer ist, als bei den übrigen in
dieser Arbeit untersuchten Formeltypen. Zwar sind bereits Konstruktionsmethoden bekannt, die
bestimmte S AT-Solving-Methoden austricksen und so die Laufzeit bei der entsprechenden Gruppe von Solvern in die Höhe treiben können, aber bei diesen Formeln deuten die empirischen Daten darauf hin, dass diese im Allgemeinen schwer auf Erfüllbarkeit zu prüfen sind. Die Tatsache,
dass diese Formeln randomisiert, garantiert erfüllbar und anscheinend schwer auf Erfüllbarkeit
zu testen sind, macht sie zu geeigneten Testformeln für die Weiterentwicklung von S AT-Solvern,
insbesondere von unvollständigen.
Untersuchung und Vergleich verschiedener Formeltypen. In dieser Arbeit wurden neben der
neuen Formel-Konstruktionsmethode auch die natürlichen N P-vollständigen Probleme 3-Färbbarkeit bei Graphen, 3-Färbbarkeit bei Hypergraphen, das Problem der exakten Überdeckung und
das Teilgraph-Isomorphie-Problem mit Hilfe von optimierten S AT-Solvern experimentell untersucht. Für jedes der Probleme wurden randomisiert positive Instanzen generiert und zu erfüllbaren
S AT-Formeln in KNF mit N Variablen reduziert. Die Tabelle 6.1 zeigt eine Übersicht der genannten Formeltypen. Der kritische Punkt bezeichnet dabei den Bereich im Parameterraum, wo
die Anzahl der erfüllenden Belegungen stark abnimmt. Weiterhin ist jeweils angegeben, wie groß
der durchschnittliche Anteil an erfüllten Literalen pro Klausel für eine erfüllende Belegung einer
entsprechenden Formel am genannten kritischen Punkt ist.
Phasenübergang Bei diesen randomisierten Konstruktionsmethoden von S AT-Formeln konnte
festgestellt werden, dass ein sogenannter Phasenübergang existiert. Je nach Wahl der Konstruk81
Ausgangsproblem
Vervielfältigung
einer Basisformel
GraphFärbbarkeit
HypergraphFärbbarkeit
X3 C
Zufallsformeln
Parameter
n: Klauselkopien
m: Auswahlgröße
n: Knotenanz.
p: Kantenws.
n: Knotenanz.
p: Kantenws.
n: Tripelanz.
m: Grundmenge
n: Variablen
m: Klauseln
Variablenanzahl
12n
3n
3n
n
n
Klauselanzahl
40m
n + pn2
n+3p (n
−3(
3)
Kritischer Punkt1
M
N
0,017 ← p
Erfüllte Literale
pro Klausel2
0,51667
0,2 ← p
≈ 3,47
≈ 0,63
≈ 0,55
n
3
3
)
≤m+
n
2
m ≈ n/2
≈ 0,82
m
M
N
≈ 4,2
≈ 0,55
(nur Erfüllbare)
Tabelle 6.1: Übersicht der Formelfamilien. 1) Am kritischen Punkt nimmt die Anzahl der erfüllenden Belegungen stark ab. Die Pfeilschreibweise symbolisiert eine Annäherung dieses Punktes von
Rechts an den entsprechenden Wert für eine wachsende Variablenanzahl. 2) Es wurde der durchschnittliche Anteil erfüllter Literale pro Klausel für eine Belegung einer Formel am kritischen
Punkt angegeben.
tionsparameter haben die Formeln entweder sehr viele erfüllende Belegungen oder nur die eine
garantierte erfüllende Belegung (es kann auch mehrere garantierte erfüllende Belegungen geben).
Dann gibt es den meist sehr kleinen kritischen Bereich im Parameterraum, wo die Anzahl der
erfüllenden Belegungen stark abnimmt. Die kritischen Bereiche konnten experimentell bestimmt
werden. Gerade in diesem Bereich, so zeigen die experimentellen Untersuchungen, ist es besonders schwer für die Solver, die Erfüllbarkeit festzustellen. Weiterhin wurden Zusammenhänge der
emprisch bestimmten Punkte mit theoretischen Eigenschaften von Zufallsgraphen bzw. Zufallshypergraphen, wie Färbbarkeit oder Existenz einer k-Clique, disktutiert werden (siehe 5.5, 5.6 und
5.7).
Laufzeitanalyse von Schönings S AT-Algorithmus Die Schärfe der theoretischen oberen Schranke O(3N · 1,334N ) für die Zeitkomplexität von Schönings S AT-Algorithmus für Eingabeformeln
in 3-KNF mit N Variablen, konnte experimentell nicht gezeigt werden. Für alle in dieser Arbeit
untersuchten Formelfamilien, die mit Schönings Algorithmus getestet worden sind, wurde eine
approximierte Laufzeit erreicht, die asymptotisch kleiner ist, als die theoretische Schranke, wie in
Tabelle 6.2 zu sehen ist. Wir können daher schließen, dass die untersuchten Formeln nicht den bei
Schönings Analyse betrachteten Worst-Case darstellen. Auf die Gründe soll hier nochmal zusammenfassend eingegangen werden. Schönings Algorithmus wählt ausgehend von einer zufälligen
Belegung eine nicht erfüllte k-Klausel. Aus dieser wird zufällig ein Literal gewählt und die Belegung der zugrundeliegenden Variable negiert. Sofern eine erfüllende Belegung existiert, beträgt
die Wahrscheinlichkeit, durch so einen lokalen Suchschritt die Hamming-Distanz zur erfüllenden Belegung um 1 zu veringern, zumindest 1/k, da eines der Literale in der Klausel durch die
erfüllende Belegung erfüllt sein muss. Der Worst-Case wäre also eine Formel, die genau eine erfüllende Belegung besitzt und in jeder Klausel genau ein Literal durch diese erfüllt wird. Für die
in dieser Arbeit untersuchten Formeln ist diese Eigenschaft nicht erfüllt (siehe Tabelle 6.1, Zeile
„erfüllte Literale pro Klausel“). Auch hätten DPLL-Solver mit einer solchen Formel eine günstige
Ausgangsposition, denn die Anzahl positiver und negativer Literale befindet sich notwendigerweise im Ungleichgewicht (oder die Formel besitzt sehr viele Belegungen), was dazu führt, dass
ein DPLL-basierter Solver schneller auf Konflikte stößt und so der zu durchsuchende Raum der
82
geschätzte
Zeitkomplexität
Formeltyp
Klauselkopien (ohne Äk.)
Klauselkopien (mit Äk.)
Hypergraph 3-Färbbarkeit
X3 C (n-KNF)
X3 C (3-KNF)
3-Färbbarkeit (2-Klauseln zuerst)
3-Färbbarkeit
3-Färbbarkeit (3-Klauseln zuerst)
O(3N
O(3N
O(3N
O(3N
O(3N
O(3N
O(3N
O(3N
· 1,229N )
· 1,219N )
· 1,172N )
· 1,129N )
· 1,129N )
· 1,123N )
· 1,117N )
· 1,103N )
Tabelle 6.2: Empirisch bestimmte Zeitkomplexitäten von Schönings S AT-Algorithmus bei verschiedenen Formeltypen und dessen Varianten.
Belegungen sich verkleinert. Betrachten wir die Wahrscheinlichkeit, bei der lokalen Suche auf
das „richtige Literal“ zu stoßen, wie in Tabelle 6.1 angegeben, und vergleichen diese Werte mit
den Zeitkomplexitäten in Tabelle 6.2, so können wir einen Zusammenhang feststellen. Diese Daten zeigen: je größer die Wahrscheinlich das „richtige Literal“ (bzw. der durchschnittliche Anteil
erfüllter Literale pro Klausel) auszuwählen, desto kleiner die asymptotische Laufzeit.
Die Analyse von Schönings Algorithmus mittels Markowketten in Abschnitt 3.5 zeigt, dass bei
der lokalen Suchstrategie auch weniger als 3N Schritte ausreichend sind, doch eine Verbesserung
der asymptotischen Exponentialzeit kann aus dieser Erkenntnis nicht abgeleitet werden, denn da
zu Beginn der lokalen Suche erwartungsgemäß die hälfte der Variablenbelegungen richtig geraten
werden, sind zumindest N/2 Suchschritte notwendig.
104
Klauselkopien
0.00005 · 20.0674N
3-Färbbarkeit
0.01515 · 20.0052N
Hyp. 3-Färbbarkeit
0.01043 · 20.0400N
X3C (n-KNF)
0.00058 · 20.0370N
erfüllbare Zufallsformeln
0.00480 · 20.0136N
103
Worst Case1 Zeit in s
102
101
100
10−1
10−2
10−3
N
0
100
200
300
400
500
600
Abbildung 6.1: Dieses Diagramm zeigt die Laufzeit des S AT-Solvers ppfolio64 für verschiedene
Formeltypen in Abhängigkeit der Anzahl der Variablen N . Es zeigt eine Situation, wie sie auch
bei den anderen S AT-Solvern typisch ist. 1) siehe Abschnitt 5.3
Schwere der Formeltypen in Abhängigkeit der Variablenanzahl. Zuletzt sollen hier die verschiedenen Formeltypen in Bezug auf die Laufzeit der optimierten S AT-Solver in Abhängigkeit
der Anzahl der Variablen N verglichen werden. Die Formelparameter sind dabei für jedes N so ge83
wählt, dass bei festem N eine maximale Laufzeit erreicht wird. Die verwendeten Solver lieferten
dabei ein recht ähnliches Bild der Situation. Nachfolgend sind daher exemplarisch die Ergebnisse des S AT-Solvers ppfolio64 in Abbildung 6.1 dargestellt. Als Referenzgröße zu den FormelKonstruktionsmethoden sind erfüllbare Zufallsformeln dargestellt. Es ist deutlich zu sehen, dass
die für Zufallsformeln optimierten Solver größere Schwierigkeiten mit den, in dieser Arbeit untersuchten, semizufälligen Formeln haben, abgesehen von denjenigen, die durch 3-Färbbarkeit von
Graphen erzeugt werden.
Die folgende Tabelle 6.3 enthält die empirisch bestimmen, asymptotischen Laufzeiten der verschiedenen Solver für die jeweiligen Formeltypen.
Formeltyp
Klauselkopien
3-Färbbarkeit
Hyp. 3-Farbbarkeit
X3 C (n-KNF)
X3 C (3-KNF)
ppfolio64
selector
sparrow
plingeling64
O(1,051N )
O(1,0033N )
O(1.030N )
O(1,034N )
O(1,001N )
O(1,058N )
O(1,0014N )
O(1.017N )
O(1,010N )
(siehe Abb. 5.26)
O(1,081N )
O(1,0023N )
(siehe 5.6)
O(1,039N )
O(1,003N )
O(1,062N )
O(1,0026N )
O(1.054N )
O(1,030N )
O(1,002N )
Tabelle 6.3: Die Übersicht der approximierten Zeitkomplexitäten der S AT-Solver bei den verschiedenen Formeltypen in Abhängigkeit der Variablenanzahl N . Die Zahl 64 im Solvernamen
bedeutet, dass dieser mit 64 parallelen Threads ausgeführt wurde.
6.1
Offene Fragen
Aus den Ergebnissen dieser Arbeit haben sich weitere interessante Fragestellungen ergeben, die
im Rahmen dieser Masterarbeit nicht mehr weiter verfolgt werden konnten. Hier soll kurz auf
einige dieser offenen Fragen eingegangen werden.
Worst-Case Formeln für Schönings S AT-Algorithmus. Es wurde festgestellt, dass bei Schönings Algorithmus eine erfüllbare Formel in KNF im Worst-Case genau eine erfüllende Belegung
besitzt und in jeder Klausel genau ein Literal durch diese Belegung erfüllt ist. Weiterhin ist geschlussfolgert worden, dass ein DPLL-basierter Solver, aufgrund des Ungleichgewichts positiver
und negativer vorkommender Literale, die Frage nach der Erfüllbarkeit schneller lösen kann. Wie
ausgeprägt dieser Effekt tatsächlich ist, wurde in dieser Arbeit nicht weiter untersucht.
Stochastische Analyse der neuen Formel-Konstruktionsmethode. Die in dieser Arbeit vorgestellte Methode konstruiert beliebig große Formeln auf Basis einer festen Basisformel, dessen
Klauseln randomisiert vervielfältigt werden. Eine insteressante Frage ist, wieviel Information über
die Basisformel in den generierten Formeln steckt. Ein speziell angepasster S AT-Solver, der es
schafft die Basisformel anhand der erzeugten Formeln zu ermitteln, könnte diese in Polynomialzeit auf Erfüllbarkeit prüfen.
Austausch der Basisformel. Die Vervielfältigungsmethode zur Konstruktion von Formeln basiert auf der, im Anhang angegebenen, festen 3-S AT-Formel. Das Verfahren könnte aber auch mit
84
anderen Basisformeln durchgeführt werden. Interessant wäre es, dieses Verfahren mit charakteristisch unterschiedlichen Formeln durchzuführen und die Ergebnisse zu vergleichen.
Untersuchung der Abhängigkeitsgraphen der Formeln. Wenn ein S AT-Algorithmus, wie zum
Beispiel der von Schöning, durch einen lokalen Suchschritt eine Klausel in der Eingabeformel erfüllt, werden dadurch mit recht hoher Wahrscheinlichkeit andere Klauseln, die zuvor erfüllt waren,
nun unerfüllt sein. Solche Abhängigkeiten können durch einen Abhängigkeitsgraphen dargestellt
werden. Eine Möglichkeit ist: es ergeben sich die Knoten aus den Klauseln und Kanten existieren,
sofern in den entsprechenden zwei Klauseln zueinander komplementäre Literale vorkommen. Die
Untersuchung der Eigenschaften solcher Graphen, für verscheidene Arten von Formeln, könnte
weiteren Aufschluss darüber geben, was das S AT-Problem hartnäckig macht.
85
86
Anhang A
Anhang
A.1
Basisformel
Nachfolgend eine aussagenlogische Formel in 3-KNF mit 12 Variablen, 40 Klauseln mit je genau
drei Literalen. Sie stammt aus den Vorlesungsunterlagen von Prof. Reischuk.
(x1 ∨ x2 ∨ x9 ) ∧ (x5 ∨ x6 ∨ x7 ) ∧ (x3 ∨ x4 ∨ x10 ) ∧ (x3 ∨ x9 ∨ x12 ) ∧
(x3 ∨ x8 ∨ x11 ) ∧ (x1 ∨ x5 ∨ x10 ) ∧ (x1 ∨ x6 ∨ x11 ) ∧ (x1 ∨ x7 ∨ x11 ) ∧
(x2 ∨ x5 ∨ x9 ) ∧ (x2 ∨ x8 ∨ x9 ) ∧ (x1 ∨ x3 ∨ x5 ) ∧ (x8 ∨ x10 ∨ x11 ) ∧
(x2 ∨ x8 ∨ x10 ) ∧ (x3 ∨ x5 ∨ x9 ) ∧ (x1 ∨ x9 ∨ x12 ) ∧ (x2 ∨ x3 ∨ x6 ) ∧
(x2 ∨ x10 ∨ x11 ) ∧ (x2 ∨ x4 ∨ x5 ) ∧ (x8 ∨ x9 ∨ x12 ) ∧ (x4 ∨ x7 ∨ x9 ) ∧
(x3 ∨ x5 ∨ x8 ) ∧ (x5 ∨ x8 ∨ x10 ) ∧ (x4 ∨ x6 ∨ x7 ) ∧ (x6 ∨ x7 ∨ x12 ) ∧
(x4 ∨ x5 ∨ x7 ) ∧ (x6 ∨ x8 ∨ x12 ) ∧ (x2 ∨ x6 ∨ x12 ) ∧ (x8 ∨ x11 ∨ x12 ) ∧
(x7 ∨ x9 ∨ x10 ) ∧ (x6 ∨ x7 ∨ x8 ) ∧ (x4 ∨ x6 ∨ x11 ) ∧ (x1 ∨ x7 ∨ x12 ) ∧
(x7 ∨ x10 ∨ x11 ) ∧ (x4 ∨ x9 ∨ x12 ) ∧ (x2 ∨ x4 ∨ x12 ) ∧ (x3 ∨ x10 ∨ x11 ) ∧
(x1 ∨ x3 ∨ x10 ) ∧ (x2 ∨ x4 ∨ x11 ) ∧ (x1 ∨ x4 ∨ x5 ) ∧ (x1 ∨ x3 ∨ x6 )
Für diese Formel existiert genau eine erfüllende Belegung, sie ist in der Tabelle A.1 angegeben.
x1
x2
x3
x4
=1
=0
=0
=1
x5
x6
x7
x8
=1
=0
=0
=1
x9 = 0
x10 = 0
x11 = 1
x12 = 1
Tabelle A.1: Die einzige erfüllende Belegung der obigen Basisformel.
Die Anzahl der Literale, die in jeder Klausel durch die obige Belegung erfüllt werden, ist in der
nachfolgenden Tabelle angegben. Es wurde dabei die obige Reihenfolge der Klauseln werwendet.
87
1
1
1
1
1
1
2
3
2
1
1
1
2
2
2
1
2
1
1
2
1
1
2
2
2
1
2
1
1
3
1
1
2
3
2
1
3
1
1
2
Tabelle A.2: Anzahl durch die erfüllende Belegung erfüllter Literale in den Klauseln der Basisformel. Durchschnitt pro Klausel: 1,55 erfüllte Literale (bzw. anteilig 0,51667).
A.2
Inhalt der beigelegten CD
Der vorliegenden Arbeit wurde eine Daten-CD beigelegt, auf der diverse Implementierungen, die
verwendeten S AT-Solver, die gesammelten Rohdaten und diese Arbeit in digitaler Form enthalten
sind.
Implementierungen der Formel-Konstruktionsverfahren Die im Kapitel 4 beschriebenen randomisierten Konstruktionsverfahren von aussagenlogischen Formeln in KNF wurden in dieser Arbeit in der Programmiersprache C++ implementiert. Für jedes Verfahren wurde ein eigenständiges
Unix-Kommandozeilenprogramm entwickelt, dass als Eingabe die entsprechenden Formelparameter erhält und mittels einem randomisierten Prinzip eine Formel konstruiert, die im DIMACSFormat auf die Standardausgabe ausgegeben wird. Wenn beim Ausführen kein Kommandozeilenparameter angegeben wird, so produzieren die Programme einen Hilfetext, in denen die jeweiligen Parameter erläutert sind. Neben den Formelparametern kann durch den Parameter -s eine
Saat für den Pseudozufallsgenerator angegeben werden. Ohne Angabe dieses Parameters wird der
aktuelle Zeitstempel des Systems verwendet. Die Quelltexte dieser Programme sind im Ordner
sat-tools auf der CD enthalten, wobei jedes Programm einen eigenen Unterordner besitzt in
dem sich die entsprechenden Quelltextdateien befinden und ein Kompilationsskript. Im Hauptordner befindet sich wiederum ein Kompilationsskript, dass die Skripte in den Unterordner aufruft,
um alle Programme auf einen Schlag zu übersetzen. Die ausführbaren Binärdateien werden dann
im Unterordner bin abgelegt. Weiterhin existiert ein Unterordner inc in dem sich eine Klasse
CNF und weitere nützliche Unterprogramme befinden, die bei einigen der beschriebenen Konstruktionsverfahren zum Einsatz kommen.
Implementierung von Schönings S AT-Algorithmus Ebenfalls in dem Ordner sat-tools
befindet sich der für diese Arbeite implementierte S AT-Algorithmus von Schöning. Er wurde auch
in C++ programmiert und ist ein Unix-Kommandozeilenprogramm. Die Eingabeformel, die sich
im DIMACS-Format befinden muss, kann auf zwei verschiedenen Wegen dem Programm übergeben werden. Entweder wird sie auf die Standardeingabe des Pogramms geschrieben oder sie wird
in einer Datei abgelegt und der Dateiname wird als Kommandozeilenparameter übergeben. Ausgegeben wird einerseits, ob die Eingabeformel erfüllbar ist und welche die gefundene erfüllende
88
Belegung ist. Das Ausgabeformat entspricht dabei dem Format, wie es bei den SAT Competitions vorgeschrieben ist. Der Quelltext und das Kompilationsskript befindet sich im Unterordner
schoening. Da nicht alle verwendeten Bibliotheken auf dem Testsystem zur Verfügung standen, wird das Programm in zwei verscheidenen Varianten kompiliert. In der normalen Variante
werden die Bibliotheken zur Laufzeit dynamisch nachgeladen und in der statischen Variante sind
sie fest einkompiliert. Neben vielen Standardbibliotheken kamen auch GMP und OpenMP zum
Einsatz. Bei Schönings Algorithmus muss die Anzahl der Neustarts der lokalen Suche berechnet
und auch mitgezählt werden. Diese Zahl kann aber schnell so groß werden, dass die Standarddatentypen nicht mehr ausreichen und es zu Fehlern im Programm kommen kann. Daher wurde für
den Umgang mit beliebig großen, ganzen Zahlen die GNU Multiple Precision Arithmetic Library (kurz: GMP) verwendet. Um die 64 Prozessorkerne des Testsystems auszunutzen, wurde der
Algorithmus mit Hilfe der Open Multi-Processing-Bibliothek (kurz: OpenMP) parallelisiert.
S AT-Solver der SAT Competition 2011 Bei den in dieser Arbeit durchgeführten experimentellen Untersuchungen wurden S AT-Solver ausgewählt die an der SAT Competition 2011 teilgenommen und dabei auch gute Plätze erreicht haben. Weiterhin musste beachtet werden, dass die
Solver auf dem Testsystem lauffähig sind und dass möglichst welche mit verschiedenen Ansätzen
zu Verfügung stehen (vgl. Kapitel 3). Die ausgewählten Solver werden im Abschnitt 3.8 beschrieben. Alle Solver erhalten als Eingabe eine Datei, die eine Formel im DIMACS-Format enthält,
in Form des als Kommandozeilenparameter übergebenen Dateinamen. Sie liefern ihr Ergebnis als
standardisierte Ausgabe auf der UNIX-Standardausgabe. Zwar wurden auch im Jahren 2013 und
2014 SAT Competitions durchgeführt, doch die Implementierungen der Solver wurden in diesen
Jahren nicht veröffentlich. Die statischen ausführbaren Binärdateien aller Solver, die an der SAT
Competition 2011 teilgenommen haben, befinden sich auf der CD in dem Ordner SATSolver.
Automatisierte Tests Bei den experimentellen Untersuchungen in dieser Arbeit wurden die implementierten Formelkonstruktionsverfahren verwendet, um unterschiedlich parametriesierte Formeln mit den ausgewählten SAT-Solvern auf Erfüllbarkeit zu prüfen und dabei verschiedene Daten,
wie zum Beispiel Laufzeit, getestete Anzahl von Belegungen und gefundene erfüllende Belegungen, zu sammeln. Dazu wurden für jedes Konstruktionsverfahren Programme in der Skriptsprache
Python entwickelt zur massenhaften Produktion von Formeln und zum automatisierten Testen dieser Formeln mit den verschiedenen S AT-Solvern. Dabei war es notwendig, die in Maschinensprache vorliegenden Konstruktionsverfahren und S AT-Solver in die Pythonskripte zu integrieren. Dies
geschah, indem sie mittels dem Pythonmodul subprocess als Unterprozess aufgerufen wurden.
Die Kommunikation findet dabei über Kommandozeilenparameter und Standardein- und ausgabe
statt. Da neben den parallelisierten S AT-Solvern auch sequentielle Solver zur Verfügung standen
wurden zwei Arten von automatisierten Tests durchgeführt. Bei den parallelisierten Solvern wurden alle Paarungen der zu testenden Formeln und Solver nacheinander abgearbeitet, wobei dem
jeweiligen Solverprozess alle Prozessorkerne zur Verfügung standen. Bei den sequentiellen Solvern wurde eine Warteschlange mit allen Paarungen aufgebaut, die von den 64 Prozessorkernen
parallel zueinander abgearbeitet wurden. Es liefen also 64 Tests zeitgleich, wobei jedem Solverprozess ein Prozessorkern zur Verfügung stand. Die entsprechenden Quelltexte befinden sich in
dem Ordner Experimente.
Auswertungsprogramme für die gesammelten Daten Für jede erzeugte Formelinstanz wurden die nachfolgenden Daten erhoben und in SQLite Datenbank gesammelt.
89
• verwendete Formelparameter
• verwendetes Konstruktionsverfahren
• verwendeter S AT-Solver
• Anzahl der zur Verfügung gestandenen Prozessorkerne
• gemessene Laufzeit des Solvers
• ggf. Anzahl der getesteten Belegungen
• gefundene erfüllende Belegung
• ggf. Übereinstimmung mit der formelspezifischen Standardbelegung
Diese Daten wurden wurden auf unterschiedliche Weise weiterverarbeitet und in den meisten Fällen in Diagrammen dargestellt. Hierbei kamen die Pythonwerkzeuge NumPy, SciPy, Matplotlib,
PyPlot und so fort zum Einsatz. Die Pythonskripte zur Auswertung der Daten und Generierung
der Diagramme befinden sich ebenfalls im Ordner Experimente. Die Datenbankdateien sind in
diesem Ordner unter den Namen result.sqlite und iso.sqlite zu finden.
90
Abbildungsverzeichnis
3.1
Beispielhafte Ausführung des DPLL-Algorithmus . . . . . . . . . . . . . . . . .
23
3.2
Schönings lokale Suche modelliert als Markowkette . . . . . . . . . . . . . . . .
28
3.3
Die Wahrscheinlichkeit für den Erfolg Schönings lokaler Suche . . . . . . . . . .
29
4.1
Modellierung der Diskrepanz einer ±1-Sequenz als Zustandsautomat . . . . . .
42
5.1
Beispiel für das DIMACS-Format . . . . . . . . . . . . . . . . . . . . . . . . .
47
5.2
Schönings Algorithmus bei vervielfältigten Formeln mit festem n . . . . . . . .
50
5.3
S AT-Solver bei vervielfältigten Formeln mit festem n . . . . . . . . . . . . . . .
51
5.4
Phasenübergang bei vervielfältigten Formeln . . . . . . . . . . . . . . . . . . .
52
5.5
Laufzeitverhalten der Schönings Algorithmus bei vervielfältigten Formeln . . . .
53
5.6
Laufzeitverhalten der SAT-Solver bei vervielfältigten Formeln . . . . . . . . . .
54
5.7
Schönings Algorithmus bei 3-Färbbarkeit mit festem n . . . . . . . . . . . . . .
56
5.8
S AT-Solver bei 3-Färbbarkeit mit festem n . . . . . . . . . . . . . . . . . . . . .
57
5.9
Phasenübergang bei 3-Farbbarkeits-Formeln . . . . . . . . . . . . . . . . . . . .
57
5.10 Laufzeitverhalten von Schönings S AT-Algorithmus bei 3-Färbbarkeits-Formeln .
59
5.11 Laufzeitverhalten von S AT-Solvern bei 3-Färbbarkeits-Formeln . . . . . . . . . .
60
5.12 Schönings Algorithmus bei Hypergraph-Färbbarkeit mit festem n . . . . . . . .
62
5.13 S AT-Solver bei Hypergraph-Färbbarkeit mit festem n . . . . . . . . . . . . . . .
62
5.14 Phasenübergang bei Hypergraph-Färbbarkeits-Formeln . . . . . . . . . . . . . .
63
5.15 Laufzeitverhalten von Schönings Algorithmus bei Hypergraph-Färbbarkeit . . . .
65
5.16 Laufzeitverhalten von S AT-Solvern bei Hypergraph-Färbbarkeit . . . . . . . . .
65
5.17 Schönings Algorithmus bei X3 C-Formeln in n-KNF mit festem n . . . . . . . .
68
5.18 Schönings Algorithmus bei X3 C-Formeln in 3-KNF mit festem n . . . . . . . .
68
5.19 S AT-Solver bei X3 C-Formeln in n-KNF mit festem n . . . . . . . . . . . . . . .
69
91
5.20 S AT-Solver bei X3 C-Formeln in 3-KNF mit festem n . . . . . . . . . . . . . . .
69
5.21 Vergleich von Schönings S AT-Algorithmus mit S AT-Solvern . . . . . . . . . . .
70
5.22 Phasenübergang bei X3 C-Formeln . . . . . . . . . . . . . . . . . . . . . . . . .
71
5.23 Empirischer Phasenübergang gegenüber Wahrscheinlichkeit einer k-Clique . . .
72
5.24 Laufzeitverhalten von Schönings Algorithmus bei X3 C-Formeln . . . . . . . . .
73
5.25 Laufzeitverhalten von S AT-Solvern bei X3 C-Formeln in n-KNF . . . . . . . . .
73
5.26 Laufzeitverhalten von S AT-Solvern bei X3 C-Formeln in 3-KNF . . . . . . . . .
74
5.27 Schönings Algorithmus bei T I-Formeln mit festem n . . . . . . . . . . . . . . .
76
5.28 Phasenübergang bei T I-Formeln . . . . . . . . . . . . . . . . . . . . . . . . . .
77
5.29 Vergleich der Laufzeit von Schönings Algorithmus bei verschiedenen Formeltypen
78
5.30 Vergleich der Laufzeit von sparrow bei verschiedenen Formeltypen . . . . . . . .
79
5.31 Vergleich der Laufzeit von selector bei verschiedenen Formeltypen . . . . . . . .
79
5.32 Vergleich der Laufzeit von ppfolio64 bei verschiedenen Formeltypen . . . . . . .
80
5.33 Vergleich der Laufzeit von plingeling64 bei verschiedenen Formeltypen . . . . .
80
6.1
83
Vergleich der Laufzeit von ppfolio64 bei verschiedenen Formeltypen . . . . . . .
92
Tabellenverzeichnis
3.1
Theoretische Laufzeiten für Schönings S AT-Algorithmus . . . . . . . . . . . . .
26
5.1
Daten des AMD Opteron 6272 Prozessors . . . . . . . . . . . . . . . . . . . . .
48
5.2
Wendepunkte im Phasenübergang bei vervielfältigten Formeln . . . . . . . . . .
53
5.3
Zeitkomplexität der S AT-Solver bei vervielfältigten Formeln . . . . . . . . . . .
54
5.4
Phasenübergangs-Parameter bei vervielfältigten Formeln . . . . . . . . . . . . .
55
5.5
Wendepunkte im Phasenübergang bei 3-Färbbarkeits-Formeln . . . . . . . . . .
58
5.6
Kritischer Punkt der Färbbarkeit von Zufallsgraphen . . . . . . . . . . . . . . .
58
5.7
Kritischer Punkt des Zusammenhangs von Zufallsgraphen . . . . . . . . . . . .
59
5.8
Zeitkomplexitäten der S AT-Solver bei 3-Färbbarkeit . . . . . . . . . . . . . . . .
60
5.9
Wendepunkt des Phasenübergang bei Hypergraph-Färbbarkeit . . . . . . . . . .
63
5.10 Kritischer Punkt der 2-Färbbarkeit von zufälligen Hypergraphen . . . . . . . . .
64
5.11 Zeitkomplexitäten der S AT-Solver bei Hypergraph-Färbbarkeit . . . . . . . . . .
66
5.12 Durchschnittliche Variablen- und Klauselanzahl bei X3 C-Formeln in 3-KNF . . .
69
5.13 Wendepunkt des Phasenübergang bei X3 C-Formeln . . . . . . . . . . . . . . . .
71
5.14 Zeitkomplexitäten der S AT-Solver bei X3 C-Formeln . . . . . . . . . . . . . . .
75
6.1
Übersicht der untersuchten Formelfamilien . . . . . . . . . . . . . . . . . . . .
82
6.2
Empirisch bestimmte Zeitkomplexitäten von Schönings S AT-Algorithmus . . . .
83
6.3
Übersicht der Zeitkomplexitäten der Solver für die Formeltypen . . . . . . . . .
84
A.1 Erfüllende Belegung der Basisformel . . . . . . . . . . . . . . . . . . . . . . . .
87
A.2 Anzahl erfüllter Literale in den Klauseln der Basisformel . . . . . . . . . . . . .
88
93
94
Algorithmenverzeichnis
1
3ColorableGraph (n, p): Konstruktion 3-färbbarer Zufallsgraphen . . . . . .
35
2
ColoringTo3SAT ((V, E)): Reduktion von 3-Färbbarkeit auf 3-S AT . . . . . .
36
3
ColoringCNF (n, p): Zufällige 3-S AT-Formeln durch 3-Färbbarkeit . . . . . . .
36
4
3ColorableHGraph (n, p): Konstruktion zufälliger, 3-färbbarer Hypergraphen
37
5
HColoringTo3SAT ((V, E)): Reduktion Hypergraph-Färbbarkeit auf 3-S AT . .
38
6
HColoringCNF (n, p): Zufällige 3-S AT-Formeln durch Hypergraph-Färbbarkeit
38
7
X3CInstance (n, m): Zufällige positive X3 C-Instanzen . . . . . . . . . . . . .
39
8
X3CToSAT ((U, S)): Reduktion von X3 C auf k-SAT
. . . . . . . . . . . . . . .
39
9
X3CCNF (n, m): Zufällige k-S AT-Formeln durch X3 C . . . . . . . . . . . . . . .
40
10
TIInstance (n, m, p): Konstruktion zufälliger positiver T I-Instanzen . . . . . .
40
11
TIToSAT (G, H): Reduktion von T I auf k-S AT . . . . . . . . . . . . . . . . . .
41
12
TICNF (n, m, p): Konstruktion zufälliger k-S AT-Formeln durch T I . . . . . . . .
42
13
EDPKNF (k): Konstruktion von k-S AT-Formeln durch E DP . . . . . . . . . . . . .
43
14
Klauselkopien (F , n, k): Zufällige 3-S AT-Formeln durch Vervielfältigung . .
44
15
RandomCNF (F , n, k): Zufällige Formeln in 3-KNF . . . . . . . . . . . . . . . .
45
95
96
Literaturverzeichnis
[ACH02] Achlioptas, D., Moore, C. (2002), On the 2-colorability of random hypergraphs, Randomization and Approximation Techniques in Computer Science, Volume 2483 of the series
Lecture Notes in Computer Science, Seiten 78-90.
[BAL11] Balint, A., Fröhlich, A., Tompkins, D. A. D., Hoos, H. H. (2011) Sparrow2011, Solver
Description, SAT 2011 Competition Booklet.
[BAL13] Balint, A., Belov, A., Heule, M. J. H., Järvisalo, M. (2013), Proceedings of SAT Competition 2013: Solver and Benchmark Descriptions, Department of Computer Science Series
of Publications B, Vol. B-2013-1, University of Helsinki.
[BEL14] Belov, A., Diepold, D., Heule, M. J. H., Järvisalo, M. (2014), Proceedings of SAT Competition 2014: Solver and Benchmark Descriptions, Department of Computer Science Series
of Publications B, Vol. B-2014-2, University of Helsinki.
[BIE09] Biere, A., Heule, M., van Maaren, H., Walsh, T. (2009), Handbook of Satisfiability, IOS
Press.
[BIE11] Biere, A., (2011), Lingeling and Friends at the SAT Competition 2011, Technsicher Bericht, März 2011, Johannes Kepler Universität, Linz, http://fmv.jku.at/papers/
Biere-FMV-TR-11-1.pdf.
[BIR02] Birolia, G., Coccob, S., Monasson, R. (2002), Phase transitions and complexity in computer science: an overview of the statistical physics approach to the random satisfiability
problem, Physica A: Statistical Mechanics and its Applications, Volume 306, 2002, Seiten
381-394.
[BOL01] Bollobás, B. (2001), Random Graphs, Second Edition, Cambridge University Press.
[CHE11] Chen, J. (2011), Phase Selection Heuristics for Satisfiability Solvers, http://arxiv.org/
abs/1106.1372.
[COO71] Cook, S. A. (1971), The complexity of theorem-proving procedures, Proceedings of the
3rd Annual ACM Symposium on the Theory of Computing (STOC’71), ACM, New York,
Seiten 151-158.
[COR09] Cormen, T. H., Leiserson, C. E., Rivest, R. L., Stein, C. (2009), Introduction to Algorithms, 3rd edition, MIT Press.
[DP60] Davis, M., Putnam, H. (1960), A computing procedure for quantification theory, Journal
of ACM, Volume 7 Issue 3 July 1960, Seiten 201-215.
97
[DPLL62] Davis, M., Logemann, G., Loveland, D. (1962), A machine program for theorem proving, Communications of the ACM, Volume 5 Issue 7 July 1962, Seiten 394-397.
[DIN05] Dinur, I., Regev, O., Smyth, C. (2005), The Hardness of 3-Uniform Hypergraph Coloring, Combinatorica, Volume 25 Issue 5 September 2005, Seiten 519-535.
[ERD60] Erdős, P., Rényi, A. (1960), On the evolution of random graphs, Publications of the
Mathematical Institute of the Hungarian Academy of Sciences 5, Seiten 17-61.
[FEL68] Feller, W. (1968), An Introduction to Probability Theory and Its Applications, Wiley.
[GAB11] Gableske, O., Heule, M. J. H. (2011), EagleUP: Solving random 3-SAT using SLS with
unit propagation, Theory and Applications of Satisfiability Testing, Volume 6695 of Lecture
Notes in Computer Science, Seiten 367-368.
[HAG02] Häggström, O. (2002), Finite Markov Chains and Algorithmic Applications, London
Mathematical Society Student Texts, Band 52, Cambridge University Press.
[HOOS05] Hoos, H. H., Stützle, T. (2005), Stochastic Local Search Foundations and Applications, Morgan Kaufmann Publishers, San Francisco, CA
[KAR72] Karp, R. M. (1972), Reducibility among combinatorial problems, Complexity of Computer Computations, The IBM Research Symposia Series, Springer, Seiten 85-103.
[KON14] Konev, B., Lisitsa, A. (2014), A SAT Attack on the Erdős Discrepancy Conjecture, Theory and Applications of Satisfiability Testing SAT 2014, Volume 8561 of Lecture Notes in
Computer Science, Seiten 219-226.
[KRU12] Krumke, S. O., Noltemeier, H. (2012), Graphentheoretische Konzepte und Algorithmen,
3. Auflage, Springer Vieweg.
[LI12] Li, C. M., Li, Y. (2012), Satisfying versus falsifying in local search for satisfiability, Proceedings of SAT2012, Springer LNCS 7317, Seiten 477-478.
[MAT76] Matula, D. W. (1976), The largest clique size in a random graph, Technischer Report,
Department of Computer Science, Southern Methodist University, Dallas.
[MUL02] Mulet, R., Pagnani, A., Weigt, M., Zecchina, R. (2002), Coloring random graphs, Physical review letters 89, 268701, APS.
[ROT08] Rothe, J. (2008), Komplexitätstheorie und Kryptogie, eXamen.press, Springer.
[ROU11] Roussel O., (2011), Description of ppfolio, SAT Competition 2011, http://www.cril.
univ-artois.fr/~roussel/ppfolio/solver1.pdf
[SCH99] Schöning, U. (1999), A probabilistic algorithm for k-SAT and constraint satisfaction
problems, Proc. 40th Sympos. on Fundations of Computer Science, FOCS 1999, IEEE, Seiten 410-414.
[SCH10] Schöning, U. (2010), Das SAT-Problem: die Drosophila der Komplexitätstheorie, Informatik Spektrum 33(5), Seiten 479-483.
[SCH12] Schöning, U., Torán, J. (2012), Das Erfüllbarkeitsproblem SAT, Mathematik für Anwendungen, Lehmann.
98
[SEL92] Selman, B., Levesque, H., Mitchell, D. (1992), A new method for solving hard satisfiability problems, Proceedings of the Tenth National Conference on Artificial Intelligence
(AAAI-92), San Jose, CA, Seiten 440-446.
[SON12] Sonobe, T., Inaba, M. (2012), Counter implication restart for parallel SAT solvers, LION12 Proceedings of the 6th international conference on Learning and Intelligent Optimization, Seiten 485-490, Springer.
[WEI07] Wei, W., Li, C. M., Zhang, H. (2007), Deterministic and random selection of variables
in local search for SAT, Solver description, SAT competition 2007.
[XU12] Xu, N., Zhu, J., Lu D., Zhou, X., Peng, X., Du, J. (2012), Quantum Factorization of 143
on a Dipolar-Coupling Nuclear Magnetic Resonance System, Physical Review Letters 108
99
Herunterladen