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