Diplomarbeit. Backdoors in Sat-Instanzen

Größe: px
Ab Seite anzeigen:

Download "Diplomarbeit. Backdoors in Sat-Instanzen"

Transkript

1 Diplomarbeit Backdoors in Sat-Instanzen vorgelegt von Stephan Kottler August 2007 Betreuer: Prof. Dr. M. Kaufmann Arbeitsbereich Paralleles Rechnen Wilhelm-Schickard-Institut für Informatik Fakultät für Informations- und Kognitionswissenschaften Eberhard-Karls-Universität Tübingen

2 Eidesstattliche Erklärung Hiermit versichere ich, dass ich die vorliegende Arbeit selbständig verfasst und keine anderen als die angegebenen Hilfsmittel benutzt habe. Tübingen, 10. August 2007

3 Inhaltsverzeichnis 1 Einleitung 1 2 Grundlagen Das Erfüllbarkeitsproblem Aussagenlogik Konjunktive Normalform Definition von Graphen Ein populäres Konzept zur Lösung von SAT Der reine DPLL-Algorithmus Branching-Heuristiken Aus Konflikten lernen Random Restarts Implementierungen von SAT-Solvern Lokale Suche - Eine Alternative zu DPLL Handhabbare Unterklassen des SAT-Problems SAT Horn-SAT Matched Formulas Backbones und Backdoors Parametrisierung von Algorithmen Backdoors Bestimmung von DPLL-Backdoors Berechnung von schwachen DPLL-Backdoors Erweiterung für starke DPLL-Backdoors Eine Vorverarbeitung für industrielle Instanzen Berechnung eines Propagation-Graphen Einschränkung möglicher DPLL-Backdoor-Variablen Deletion Backdoors Parametrisierte Berechnung von Horn- & Binär-Backdoors Approximieren von Horn- & Binär-Backdoors Approximation von starken R-Horn-Backdoors Genauere Betrachtung der q-horn Definition iii

4 3.4.2 Generieren eines R-Horn-Abhängigkeitsgraphen Eine Approximation auf dem Abhängigkeitsgraphen Vergleich verschiedener Backdoor Typen Backdoors in Basis- und Erweiterungs-Instanzen Wiederverwendung von Extended DPLL-Backdoors Wiederverwendung von schwachen DPLL-Backdoors Wiederverwendung von Deletion Backdoors Eine obere Schranke für eine Unterklasse von 3-SAT Die Klasse 2 -Sat Ein Backdoor Driven Algorithmus Komplexität des Algorithmus Eine Anwendung von FPT-Algorithmen Bestimmung der oberen Laufzeitschranke Visualisierung von SAT-Instanzen - Das Tool SatIn Einblicke Verschiedene Visualisierungen eines SAT-Problems Verwendete Layouts Darstellungsmodi Interaktives Arbeiten Visualisierung von Backdoors Zusammenfassung und Ausblick 87

5 Kapitel 1 Einleitung Mit Hilfe der Informatik können heutzutage viele komplexe Aufgaben wesentlich schneller und zuverlässiger bewältigt werden, als dies durch Menschenhand möglich ist. Lässt man zum Beispiel von einem Navigationssystem die kürzeste Strecke von Tübingen nach Perugia berechnen, so wird die entsprechende Route schon nach wenigen Sekunden angezeigt. Es mag dadurch der Eindruck entstehen, als könnten Computer mittlerweile beliebige Aufgabenstellungen und Berechnungen grundsätzlich in kurzer Zeit lösen. Allerdings gibt es Problemstellungen in der Informatik, für die bisher weder effiziente Lösungsverfahren gefunden werden konnten noch bekannt ist, ob effiziente Verfahren überhaupt existieren können. Ein solches schwieriges Problem stellt das Satisfiability-Problem (kurz: Sat-Problem) dar, welches sich mit der Frage beschäftigt, ob die Werte der Variablen einer boolschen Formel so gewählt werden können, dass die Formel wahr wird. Viele praktische und industrielle Fragestellungen, deren enorme Komplexität von einem Menschen nicht mehr überschaubar ist, lassen sich als Sat-Problem formulieren. So können zum Beispiel für das Lösen von Planungsproblemen [KS92], für das Symbolic Model Checking [BCCZ99], die Verifikation von Hardware und für das Überprüfen von Automobilkonfigurationen [SKK00] entsprechende Sat-Instanzen kodiert werden. Glücklicherweise lässt sich - im Gegensatz zu künstlich oder zufällig erzeugten Sat-Instanzen - die Lösbarkeit oder Unlösbarkeit solcher Sat-Probleme oft durch systematisches Durchprobieren einiger Variablenbelegungen und strukturiertes Suchen beweisen. Dabei basieren die meisten heutigen Lösungsmethoden auf dem DPLL-Verfahren, das in seiner Grundform schon im Jahr 1960 vorgestellt wurde. Die Tatsache, dass praktische Sat- Instanzen häufig sehr schnell gelöst werden können, wird dadurch begründet, dass solche Instanzen über eine verborgene Struktur verfügen. Betrachten wir als kleines Beispiel eine Schule, in der alle Lehrer vor Beginn des Schuljahres ihre Wünsche bezüglich unterrichtsfreier Stunden angeben können. Diese Wünsche und die Verpflichtungen der Lehrer lassen sich dann als Sat-Problem formulieren, indem mindestens für jede Kombination aus Lehrer und Unterrichtsstunde eine Variable

6 1. EINLEITUNG 2 eingeführt wird, die angibt, ob der entsprechende Lehrer unterrichten muss oder eine Freistunde hat. Maier Mo1 = true gibt somit an, dass Frau Maier montags in der ersten Stunde eine Unterrichtsverpflichtung wahrzunehmen hat. Ein kleiner Ausschnitt einer entsprechenden Sat-Instanz, die alle Bedingungen enthält, könnte folgendermaßen aussehen: Da Herr Müller und Herr Neumann eine Fahrgemeinschaft bilden, wollen diese gerade in Randstunden stets gemeinsam eingesetzt werden. Daraus ergibt sich die Bedingung B 1 = ((H.Müller Mo1 Neumann Mo1 ) (H.Müller Mo1 Neumann Mo1 )). Da Herr Neumann außerdem Referendar ist, muss dieser aus rechtlichen Gründen immer gemeinsam mit seiner Mentorin Frau Müller unterrichten, wodurch die Forderung B 2 = ((Neumann Mo1 F.Müller Mo1 ) (Neumann Mo1 F.Müller Mo1 )) entsteht. Aus privaten Gründen möchten Frau und Herr Müller jedoch in der ersten Stunde nie beide arbeiten müssen, was sich durch B 3 = (F.Müller Mo1 H.Müller Mo1 ) angeben lässt. Die Unterrichtsverpflichtungen fordern, dass eine bestimmte Klasse montags in der ersten Stunde entweder von Herrn Müller oder von Frau Maier unterrichtet wird, was durch B 4 = (H.Müller Mo1 Maier Mo1 ) ausgedrückt wird. Durch eine weitere Klasse entsteht die Bedingung B 5 = (F.Müller Mo1 Weber Mo1 ). Da Frau Maier Rektorin und Herr Weber stellvertretender Rektor sind, sollte immer einer von beiden keine Unterrichtsverpflichtung haben, was sich schließlich durch die Bedingung B 6 = (Maier Mo1 Weber Mo1 ) fordern lässt. Allgemein gilt, dass die Wünsche und Verpflichtungen aller Lehrer genau dann vereinbar sind, wenn es für die Sat-Instanz eine Lösung gibt, wenn also eine gültige Belegung aller Variablen mit den Wahrheitswerten true oder f alse existiert, so dass die gesamte Instanz erfüllt ist. Für den obigen Ausschnitt genügt es allerdings schon, nur Herrn Müller zu betrachten, um zu erkennen, dass das Sat-Problem keine Lösung haben kann: Soll Herr Müller montags in der ersten Stunde unterrichten, so ist H.Müller Mo1 = true. Aus B 3 folgt daraus F.Müller Mo1 = false und wegen B 1 gilt Neumann Mo1 = true. Dies stellt aber einen Widerspruch zu der Bedingung B 2 dar. Folglich sollte Herr Müller in der ersten Stunde montags nicht unterrichten. Dadurch ergibt sich jedoch wiederum die folgende widersprüchliche Implikationsfolge: H.Müller B 4 B Mo1 6 B MaierMo1 5 WeberMo1 B F.Müller 2 B Mo1 1 NeumannMo1 H.MüllerMo1. Im obigen Beispiel ist es somit ausreichend, eine kleine Menge an Variablen (hier sogar nur eine einzige Variable - H.Müller Mo1 ) zu betrachten, um die Lösbarkeit der gesamten Instanz zu bestimmen. Diese Eigenschaft konnte schon in mehreren industriellen Instanzen festgestellt werden: Oft genügt es, alle Belegungen einer kleinen Untermenge B der Variablen einer Instanz zu überprüfen, um entweder eine gültige Lösung für die gesamte Instanz zu finden oder aber zu zeigen, dass schon jede Belegung der Variablen aus B einen Widerspruch erzeugt. Eine solche Variablenmenge B wird als Backdoor-Menge bezeichnet [WGS03a]. Da das Konzept der Backdoors noch relativ jung ist, ergeben sich in diesem Zusammenhang viele interessante Fragestellungen.

7 1. EINLEITUNG 3 Gliederung der Diplomarbeit In der vorliegenden Diplomarbeit werden verschiedene Aspekte von Backdoor-Mengen in Sat-Instanzen untersucht: Im nachfolgenden Kapitel werden zunächst einige Begriffe und grundlegende Verfahren vorgestellt, die hauptsächlich aus dem Bereich des Sat-Solvings stammen und für das weitere Verständnis erforderlich sind. Das dritte Kapitel bildet den Hauptteil der Arbeit. Zunächst werden zahlreiche Backdoors für Sat-Instanzen aus dem Bereich der Automobilkonfiguration nach dem in [WGS03a] beschriebenen Verfahren berechnet, die hauptsächlich als Grundlage für die Analyse von minimalen Backdoor-Mengen dienen, da die Berechnungsmethode schon das Lösen der jeweiligen Instanz erfordert. Im weiteren Verlauf des dritten Kapitels werden hingegen solche Ansätze untersucht, die Backdoors vor dem eigentlichen Lösungsprozess ermitteln. Dabei wird zunächst ein einfaches Verfahren vorgeschlagen, wodurch sich für einige industrielle Sat-Instanzen die Menge der Backdoor-Variablen mit Hilfe einer polynomiellen Vorverarbeitungsroutine einschränken lässt. Anschließend wird das Konzept der Deletion Backdoors anhand der parametrisierten Berechnung von Binär- und Horn-Backdoors aus [NRS04] vorgestellt. Darauf basierend werden jeweils vier Methoden für die Approximation von Binär- und Horn-Backdoors vorgeschlagen und untersucht. Ferner wird ein Algorithmus zum Approximieren von R-Horn- Backdoors entwickelt und mit Resultaten des einzigen uns bekannten Verfahrens zur Berechnung von R-Horn-Backdoors [POSS06] verglichen. Sat-Instanzen, die sich aus industriellen Problemstellungen ergeben, stellen häufig nur eine Erweiterung eines bestimmten Basis-Problems dar, das zum Beispiel Rahmenbedingungen oder physikalische Einschränkungen kodiert. Am Ende des dritten Kapitels werden Ideen präsentiert und empirisch untersucht, wie verschiedene Backdoors eines Basis-Problems für die Lösung einer Erweiterungs-Instanz verwendet werden können. Im vierten Kapitel wird eine weitere Anwendung des Backdoor-Konzeptes vorgeschlagen. Zu diesem Zweck wird zunächst eine spezielle Unterklasse von 3-Sat definiert. Für diese Klasse wird dann ein vollständiges Lösungsverfahren vorgestellt, das hauptsächlich auf der Berechnung und Verwendung von verschiedenen Backdoors basiert und eine geringere Komplexität als die aktuell schnellsten 3-Sat-Algorithmen aufweist. Um die Struktur von Sat-Problemen auch visuell untersuchen zu können, wurde im Rahmen dieser Diplomarbeit ein Programm entwickelt, das Sat-Instanzen auf verschiedene Arten visualisieren kann. Das fünfte Kapitel stellt die Funktionalität dieses Programmes vor und geht insbesondere auf die speziellen Möglichkeiten zur Visualisierung von Backdoors ein. Im letzten Kapitel werden schließlich die wesentlichen Punkte und Ergebnisse dieser Diplomarbeit noch einmal zusammengefasst und ein Ausblick für Ansatzpunkte künftiger Forschungen und Arbeiten gegeben.

8 Kapitel 2 Grundlagen Dieses Kapitel soll einen Überblick über die nahezu 50-jährige Forschung im Bereich des Sat-Solvings geben und damit eine Grundlage für das Verständnis der vorliegenden Diplomarbeit schaffen. Darüber hinaus werden fundamentale Begriffe aus dem Gebiet der Graphentheorie und der parametrisierten Berechenbarkeit definiert und erläutert. Um einen detaillierteren Einblick in das Sat-Problem und dessen Lösungsverfahren zu erhalten, sind vor allem die Artikel [GPFW97] von Gu et al. und [ZM02] von Zhang und Malik empfehlenswert. 2.1 Das Erfüllbarkeitsproblem Das Erfüllbarkeitsproblem der Aussagenlogik (satisfiability, Sat) stellt sowohl eine wichtige Problemstellung in der theoretischen Informatik als auch eine gängige Schnittstelle zwischen industriellen Anforderungen und computerbasierten Lösungsansätzen dar. Es werden zunächst einige grundlegende Begriffe definiert (vgl. [Sin06, Leh05]) Aussagenlogik Eine Formel der Aussagenlogik besteht aus den folgenden Elementen: Variablen (V = {x i, x j,...}) sind Stellvertreter für beliebige atomare Aussagen wie z.b: Die Schuhe sind grün. Mit Hilfe der Junktoren (Negation), (Konjunktion) und (Disjunktion) können Aussagen verknüpft werden 1. Konstanten 0 (false) und 1 (true). Hilfssymbole wie Klammern. 1 Die weiteren Junktoren (exklusives Oder), (Implikation) und (Äquivalenz) werden hier nicht weiter betrachtet, da sie insbesondere durch die oben genannten ausgedrückt werden können.

9 2.1. DAS ERFÜLLBARKEITSPROBLEM 5 Eine Abbildung τ : V {0, 1}, die allen Variablen Wahrheitswerte (boolsche Werte) zuweist, wird als Variablenbelegung bezeichnet. Ist Φ die Menge aller Formeln über V, so kann die Bewertung einer Variablenbelegung τ 0 durch eine Funktion eval τ0 : Φ {0, 1} rekursiv definiert werden: eval τ0 (x) = τ 0 (x) für x V eval τ0 (k) = k für Konstante k {0, 1} eval τ0 ( F ) = 1 eval τ0 (F ) für F Φ eval τ0 (F G) eval τ0 (F G) = max(eval τ0 (F ), eval τ0 (G)) = min(eval τ0 (F ), eval τ0 (G)) für F, G Φ Eine boolsche Formel F ist genau dann erfüllbar, wenn es eine Variablenbelegung τ 0 gibt, so dass eval τ0 (F ) zu 1 (true) auswertet. Eine erfüllende Variablenbelegung wird auch als Modell bezeichnet Konjunktive Normalform Eine sehr gebräuchliche Darstellung von boolschen Formeln ist die konjunktive Normalform (KNF bzw. engl. CNF), in die jede Formel der Aussagenlogik transformiert werden kann [Sin06]. Eine Sat-Instanz in konjunktiver Normalform besteht aus drei Komponenten (vgl. [GPFW97]): Eine Menge von n Variablen V = {x 1, x 2,... x n } Eine Menge von Literalen, wobei ein Literal mit positiver Polarität eine Variable (l = x) und ein Literal mit negativer Polarität die Negation einer Variablen (l = x) darstellt 2. Eine Menge von m verschiedenen Klauseln C = {C 1, C 2... C m }, die durch den logischen Operator verknüpft sind. Jede Klausel stellt eine Disjunktion ( ) von Literalen dar. Durch den übersichtlichen Aufbau einer boolschen Formel F in KNF kann die Aussage über die Erfüllbarkeit von F vereinfacht formuliert werden: F ist genau dann erfüllbar, wenn es eine Variablenbelegung gibt, so dass in jeder Klausel aus C mindestens ein Literal wahr ist. Weist eine Variablenbelegung τ part nur einer Untermenge S V Wahrheitswerte zu, so stellt τ part eine partielle Belegung für F dar. F [τ part ] ist die verbleibende Instanz von F, die nur noch die Variablen V \ S und Klauseln enthält, die durch τ part nicht erfüllt werden. Im Folgenden werden Formeln grundsätzlich in konjunktiver Normalform betrachtet. Klauseln aus C, die nur aus einem Literal bestehen, werden als Unit Klauseln bezeichnet. 2 Die Polarität eines Literals wird häufig auch als (positive/negative) Phase oder Ausprägung bezeichnet.

10 2.2. DEFINITION VON GRAPHEN 6 Das DIMACS Dateiformat Im Rahmen der DIMACS Challenge wurde ein Dateiformat (*.cnf ) zur Speicherung von Sat-Instanzen in konjunktiver Normalform entworfen, das in den meisten verfügbaren Benchmarks zum Einsatz kommt [Dim93]: Am Dateianfang können beliebig viele Kommentarzeilen stehen, die jeweils mit dem Zeichen c einzuleiten sind. Die gespeicherte Instanz wird anschließend durch eine Problemzeile der Form p <format> <#Variablen> <#Klauseln> grob beschrieben. Der Platzhalter <format> entspricht in unserem Fall stets cnf, <#Variablen> gibt die Anzahl der Variablen und <#Klauseln> die Anzahl der Klauseln an. Unmittelbar auf die Problemzeile folgt die Beschreibung der Klauseln. Jede Klausel stellt eine durch Leer-, Tab- oder Newline-Zeichen separierte Liste von Zahlen dar, die mit 0 abgeschlossen wird. Jede Zahl z 0 bezeichnet dabei ein Literal, wobei der Betrag z die ID der entsprechenden Variablen angibt. Ist z negativ (Vorzeichen - ), so hat das Literal negative Polarität, anderenfalls (ohne Vorzeichen) positive Polarität. Die in Abbildung 2.1 gezeigten Beispiele stellen damit gültige Repräsentationen der Formel F = (x 1 x 2 x 3 ) (x 4 x 2 ) (x 1 ) dar: c naheliegende Möglichkeit p cnf c andere Variante c x 1 2, x 2 3, x 3 4, x 4 1 p cnf Abbildung 2.1: Beispiel DIMACS Format 2.2 Definition von Graphen Im Kontext von Erfüllbarkeitsproblemen und deren Lösungsverfahren kommen Graphen in verschiedenen Bereichen zum Einsatz. Aus diesem Grund werden die notwendigen Begriffe im Folgenden definiert. Ein Graph G = (V G, E G ) ist ein Paar aus einer Menge von Knoten V G (vertices) und einer Menge von Kanten E G (edges), wobei E G V G V G eine Relation zwischen den Knoten beschreibt 3. Man unterscheidet gerichtete und ungerichtete Graphen. Bei ungerichteten Graphen haben die Kanten keine bestimmte Richtung. Eine Kante (u, v) E G ist nicht von einer Kante (v, u) unterscheidbar. Bei gerichteten Graphen werden solche Kanten hingegen unterschieden. Eine gerichtete Kante (u, v) hat die Quelle u V G und das Ziel v V G. In der gesamten Arbeit werden durchweg einfache Graphen betrachtet, die keine gleiche Kante mehrfach enthalten. 3 Der Index G für Knoten und Kanten wird verwendet, um eine Knotenmenge V G besser von einer Variablenmenge V unterscheiden zu können.

11 2.3. EIN POPULÄRES KONZEPT ZUR LÖSUNG VON SAT 7 Ein Knoten v V G ist adjazent zu einem Knoten u V G, wenn im Graphen eine Kante (u, v) E G existiert. Eine Kante (u, v) E G wird als inzident zu Knoten u bezeichnet. Ein Pfad (u, v) von Knoten u V G zu einem Knoten v V G in einem Graphen G ist eine Folge von Kanten (u, v) = [e 1 = (u, w 1 ), e 2 = (w 1, w 2 ),..., e l = (w l 1, v)] E G, wobei w i w j für alle i j. Die Länge eines Pfades ist als die Anzahl der Kanten definiert. Ein Graph G wird als azyklisch bezeichnet, wenn für keinen Knoten v V G ein Pfad (v, v) existiert, dessen Länge größer null ist. Ein Graph G heißt genau dann zusammenhängend (connected), wenn es für jedes beliebige Knotenpaar u, v V G einen Pfad (u, v) oder einen Pfad (v, u) gibt. Ist G zusammenhängend und azyklisch, so wird G auch Baum genannt. In einem Baum ist einer der Knoten aus V G als Wurzelknoten r (root) ausgezeichnet. Jeder von der Wurzel verschiedene Knoten v eines Baumes ist durch genau einen Pfad p v = (r, v) mit der Wurzel verbunden. Durch die Kante (w, v) p v wird der zu v adjazente Knoten w als Vorgänger oder Vater des Knotens v definiert. In einem Baum hat somit jeder Knoten aus V G \ {r} einen eindeutigen Vorgänger. Alle Knoten, für die ein Knoten w Vorgänger ist, werden Kinder von w genannt. Hat jeder Knoten eines Baumes maximal zwei Kinder, so handelt es sich um einen binären Baum. Die Tiefe eines Baumes entspricht der maximalen Länge aller Pfade p v für alle Knoten v des Graphen. Ein gerichteter Graph, in dem für jedes beliebige Knotenpaar v, w V G ein Pfad (v, w) existiert, heißt stark zusammenhängend (strongly connected). Eine starke Zusammenhangskomponente (strongly connected component) ist ein maximaler stark zusammenhängender Teilgraph eines gerichteten Graphen G. Für jeden gerichteten azyklischen Graphen G gibt es eine topologische Sortierung der Knoten V G. Diese Sortierung beschreibt eine partielle Ordnung, so dass gilt: Liegt Knoten u vor Knoten v, so gibt es keinen Pfad (v, u). Ein beliebiger Graph G wird als k-partit bezeichnet, wenn sich alle Knoten des Graphen in k (0 < k < V G ) disjunkte Mengen V 1, V 2,..., V k einteilen lassen, so dass für beliebige u, v V j 1 j k keine Kante (u, v) E G existiert. Ein bipartiter Graph besteht aus zwei (k = 2), ein tripartiter Graph aus drei (k = 3) disjunkten Knotenmengen, innerhalb derer keine Kanten vorhanden sind. 2.3 Ein populäres Konzept zur Lösung von SAT Das Sat-Problem bildet den Kern der Klasse der NP-vollständigen Probleme [GPFW97]. Bis zum heutigen Tag ist unbekannt, ob es Algorithmen geben kann, die solche hartnäckigen (intractable) Problemstellungen in Polynomzeit lösen. Spezialfälle von Sat, die zur Klasse P, der in Polynomzeit berechenbaren Probleme, gehören, werden in Abschnitt 2.5 erläutert.

12 2.3. EIN POPULÄRES KONZEPT ZUR LÖSUNG VON SAT 8 In diesem Kapitel wird eines der am weitesten verbreiteten Verfahren zur Lösung von Sat- Problemen vorgestellt. Anschließend werden verschiedene Erweiterungen des ursprünglichen Verfahrens beschrieben, deren Verwendung in einigen der aktuell schnellsten Sat-Solvern am Ende des Kapitels geschildert wird Der reine DPLL-Algorithmus Lange bevor Cook im Jahr 1971 die Klasse der NP-vollständigen Probleme einführte, entwickelten Davis und Putnam 1960 den ersten Algorithmus zum Lösen von Sat-Instanzen in konjunktiver Normalform [DP60]. Das damals vorgestellte Verfahren basiert auf drei Regeln, von denen die zwei folgenden auch in den meisten heutigen Sat-Solvern noch implementiert sind 4 : Unit Propagation Enthält eine Formel F eine Unit Klausel C = (l), so ist F nur erfüllbar, wenn l wahr ist. Daher können alle Klauseln, die l enthalten, aus der Menge aller Klauseln C gelöscht werden (Subsumption 5 ). Alle Vorkommen des Literals l können aus den entsprechenden Klauseln gestrichen werden (Unit Resolution). Pure Literal Rule oder auch Pure Literal Elimination. Ein Literal l einer Formel F wird als pure bezeichnet, wenn das komplementäre Literal l in F nicht enthalten ist. Da die Variable eines pure Literals in F nur in einer Polarität vorkommt, kann deren Wahrheitswert entsprechend dieser Polarität gesetzt werden. Alle Klauseln, die das pure Literal enthalten, werden subsumiert. Die erläuterten Regeln lassen sich für eine Formel F so lange anwenden bis F weder Unit Klauseln noch Pure Literals enthält. Dieses Vorgehen wird meist als Boolean Constraint Propagation oder allgemein Propagieren bezeichnet. Die Boolean Constraint Propagation kann in der Laufzeit O( F ) durchgeführt werden (vgl. z.b. [dv00]), wobei die Größe einer Formel F durch die Summe der Klauselgrößen F = C F C definiert ist. Bei der Implementierung des ursprünglichen Algorithmus erwiesen sich die Speicheranforderungen der dritten, hier nicht beschriebenen Regel, als nicht realisierbar. Infolge dessen ersetzten Davis, Logemann und Loveland diese Vorschrift durch die folgende, logisch äquivalente, jedoch besser implementierbare Regel [DLL62]: Branching Für eine beliebige Variable x V kann jede Formel F in die Form (A x) (B x) R gebracht werden, wobei A, B, R boolsche Formeln sind, die x nicht enthalten. Ist x = true, so muss B R gelten, ist x = false, so muss A R erfüllt sein. 4 Die in [DP60] eingeführten Bezeichnungen der Regeln unterscheiden sich von den heute gebräuchlichen, in dieser Arbeit verwendeten Namen. 5 Die hier erläuterte Regel stellt nur einen Spezialfall der Subsumption dar. Allgemein gilt, dass eine Klausel C i eine andere Klausel C j subsumiert, wenn die Literale von C i eine Untermenge der Literale von C j bilden [GPFW97].

13 2.3. EIN POPULÄRES KONZEPT ZUR LÖSUNG VON SAT 9 Durch die Branching-Regel wird ein sogenannter Entscheidungsbaum aller möglichen Variablenbelegungen durchlaufen. Variablen einer boolschen Formel bilden Knoten im binären Entscheidungsbaum. Die beiden Kanten (Zweige, engl. branches) zu den Kindern eines Knotens repräsentieren die Belegung einer entsprechenden Variablen mit true oder false. Bei der Implementierung des erweiterten Verfahrens wurde die Branching-Regel - damals als Splitting Rule bezeichnet - dadurch realisiert, dass für eine gewählte Variable x beide Subformeln F = B R und F = A R gebildet wurden, von denen eine zunächst auf Band gespeichert wurde. Konnte beim Lösungsprozess der ersten Subformel keine gültige Variablenbelegung gefunden werden, so wurde die zweite Subformel wieder vom Band geladen und weiter untersucht. Die Subformeln F und F entsprechen im Entscheidungsbaum gerade den beiden Teilbäumen von Knoten x. Spätere Implementierungen des DPLL-Algorithmus 6 durchlaufen den Entscheidungsbaum wie in Algorithmus 1 geschildert. Algorithmus 1 Mögliche Formulierung des DPLL-Verfahrens (vgl. [ZM02]) Eingabe: Boolsche Formel F Ausgabe: erfüllbar oder unerfüllbar 1: function dpll(f ) 2: status preprocess( ) 3: while status / {erfüllbar,unerfüllbar} do 4: applynextbranch( ) 5: while true do 6: status propagate( ) 7: if status unerfüllbar then 8: break 9: else 10: blevel analyzeconflict( ) 11: if(blevel = 0) then return unerfüllbar 12: backtrack(blevel) 13: end if 14: end while 15: end while 16: return status 17: end function In Zeile zwei des Algorithmus 1 wird zunächst in einer Vorverarbeitung die Formel F mit Hilfe der Boolean Constraint Propagation so weit wie möglich vereinfacht. In der äußeren Schleife von Zeile drei bis fünfzehn wird der Suchraum so lange durchlaufen bis entweder eine Lösung gefunden wurde oder bewiesen ist, dass F nicht erfüllbar ist. 6 Der Algorithmus wird in der Literatur sowohl als DP- (Davis-Putnam), DLL-(Davis-Logemann- Loveland) und DPLL-Algorithmus bezeichnet.

14 2.3. EIN POPULÄRES KONZEPT ZUR LÖSUNG VON SAT 10 Zeile vier untersucht einen Zweig des Entscheidungsbaumes, indem eine noch nicht belegte Variable x als Entscheidungsvariable (Decision Variable) gewählt und auf einen bestimmten Wahrheitswert b gesetzt wird. Dadurch können alle subsumierten Klauseln (in denen x mit Polarität b vorkommt) aus F entfernt und alle Vorkommen von x mit komplementärer Polarität aus F gestrichen werden. In Kapitel werden einige Verbesserungen des DPLL-Verfahrens geschildert, die Heuristiken verwenden, um sowohl Entscheidungsvariablen als auch deren initialen Wahrheitswert möglichst geschickt zu wählen. In Zeile sechs werden die Konsequenzen der gemachten Variablenbelegung mit Hilfe der Boolean Constraint Propagation mit dem Ziel berechnet, den Suchraum möglichst zu verkleinern. Führt die Belegung zu keinem Konflikt (Zeile sieben), so wird die innere Schleife verlassen (achte Zeile), um entweder eine weitere Entscheidungsvariable zu wählen oder, falls status = erfüllbar, die Suche zu beenden. Führt die Variablenbelegung jedoch zu einem Widerspruch (Zeile neun), so wird durch die Funktion analyzeconflict untersucht, welche Entscheidung den Konflikt verursacht hat und auf welcher Ebene des Entscheidungsbaumes (blevel) eine andere Verzweigung möglich ist. Dabei entspricht die i-te Ebene der i-ten Entscheidung, die Wurzel befindet sich also auf der ersten Ebene. Ist blevel = 0, so wurden für die erste Entscheidung beide Zweige durchsucht, ohne eine gültige Variablenbelegung zu finden. F ist somit nicht erfüllbar (Zeile elf). Ist blevel > 0, so werden durch das Backtracking in der zwölften Zeile alle Variablenbelegungen aufgehoben, die seit der Belegung der Entscheidungsvariablen x auf Ebene blevel des Entscheidungsbaumes gemacht wurden. Anschließend wird für x der komplementäre Wahrheitswert gewählt. Das Backtracking entspricht somit dem Laden der zweiten Subformel vom Band, wie von Davis et al. beschrieben [DLL62]. Die neue Variablenbelegung wird nun durch die innere Schleife in Zeile sechs erneut propagiert. Der reine DPLL-Algorithmus bietet mehrere Ansatzpunkte zur Optimierung. In der Beschreibung des DPLL-Verfahrens wurde schon angedeutet, dass die Wahl einer geeigneten Entscheidungsvariablen den Suchprozess beschleunigen kann und in manchen Fällen diesen erst realisierbar macht. Diese Möglichkeit der Optimierung wurde schon relativ bald erkannt und bis heute gibt es zahlreiche Heuristiken zur Wahl von guten Entscheidungsvariablen. Darüber hinaus wird eine erhebliche Beschleunigung des Verfahrens durch das Konzept erzielt, aus Fehlentscheidungen zu lernen. In den folgenden Abschnitten werden nun einige Verbesserungen des DPLL-Verfahrens vorgestellt Branching-Heuristiken Um die Wahl einer Entscheidungsvariablen und deren initialen Belegung zu beeinflussen, ist es denkbar, vor der Ausführung des DPLL-Algorithmus die Variablen (oder Literale) nach einem bestimmten Kriterium zu sortieren. Kann eine Formel nicht weiter vereinfacht werden, so wird bezüglich dieser Ordnung die nächste, noch nicht belegte Entscheidungsvariable gewählt. Ein solches Vorgehen hat den Vorteil, dass zusätzliche Berechnungen nur einmal zu Beginn des Lösungsprozesses anfallen. Die meisten Heuristiken ermitteln jedoch

15 2.3. EIN POPULÄRES KONZEPT ZUR LÖSUNG VON SAT 11 die nächste Entscheidungsvariable und deren initialen Wert aufgrund der Menge der zu diesem Zeitpunkt unerfüllten Klauseln. Greedy Heuristiken Die frühen Branching-Heuristiken wie Bohm s Heuristik, MOM, die Jeroslow-Wang Heuristik und die Literal Count Heuristiken können als Greedy-Verfahren bezeichnet werden, da Entscheidungen so getroffen werden, dass sich eine große Anzahl an Implikationen ergibt oder möglichst viele Klauseln erfüllt werden [ZM02]. Marques-Silva beschreibt und evaluiert diese Heuristiken ausführlich [MS99]. Bohm s Heuristik trifft Entscheidungen so, dass viele kleine Klauseln subsumiert werden und gleichzeitig möglichst viele kleine Klauseln weiter verkleinert werden, um den Effekt der Unit Propagation zu vergrößern. MOM ist ein Akronym für Maximum Occurrences on clauses of Minimum size. Es werden nur Variablen V V betrachtet, die in Klauseln mit minimaler Größe vorkommen. Aus V werden solche Variablen bevorzugt, die in den meisten kleinen Klauseln vorkommen. Jeroslow-Wang Diese Methode berechnet für jedes Literal l einen Wert: J(l) = 2 C l C C C Die one-sided Heuristik (JW-OS) wählt diejenige Zuweisung, die das Literal mit dem größten Wert J(l) erfüllt. Die two-sided Heuristik (JW-TS) wählt die Variable x mit der größten Summe J(x) + J(x). Der initiale Wahrheitswert für x entspricht der Polarität des Literals mit größerem J-Wert. Literal Count Heuristiken Für eine Variable x wird die Anzahl der noch unerfüllten Klauseln berechnet, in denen sie als positives (c p (x)) und in denen sie als negatives Literal (c n (x)) vorkommt. Eine Strategie kann nun entweder beide Werte kombinieren oder getrennt betrachten. Im kombinierten Fall, wird diejenige Variable x i gewählt, welche die größte Summe c p (x i ) + c n (x i ) erzielt. Der initiale Wahrheitswert für x i entspricht c p (x i ) c n (x i ). Da die Werte für c p und c n bei jeder Variablenentscheidung neu berechnet werden, wird dieser Ansatz als dynamic largest combined sum (DLCS) bezeichnet. Berücksichtigt man die Werte c p und c n getrennt, so wird die Variable x i gewählt, die den größten Wert für max(c p (x i ), c n (x i )) erzielt. Wie bei DLCS entspricht die initiale Belegung für x i gerade c p (x i ) c n (x i ). Diese Strategie nennt man dynamic largest individual sum (DLIS). Da die Bestimmung der initialen Belegung für eine Entscheidungsvariable durch c p c n manchmal zu gierig (greedy) sein kann, stellt die zufällige (random) Wahl des ersten Wahrheitswertes oft eine gute Alternative dar (RDLCS, RDLIS) [MS99].

16 2.3. EIN POPULÄRES KONZEPT ZUR LÖSUNG VON SAT 12 Strukturbasierte Heuristiken Die vorgestellten greedy Heuristiken zur Berechnung einer Variablenordnung verbessern den ursprünglichen DPLL-Algorithmus erheblich. Die ersten drei Strategien sind vor allem für das Lösen von Zufallsinstanzen geeignet, erfassen jedoch nur wenige Informationen aus strukturierten Instanzen [ZM02]. Sat-Instanzen, die aus realen Problemstellungen entstehen, enthalten oft verborgene Strukturen. Strukturbasierte Heuristiken, die Entscheidungsvariablen aufgrund einer vorangegangenen Strukturanalyse auswählen und belegen, können für solche Instanzen oft größere Geschwindigkeitsvorteile erzielen. Gute Laufzeitverbesserungen, gerade für harte Instanzen, konnten von Aloul et al. durch die Heuristiken MINCE [AMS01] und die verbesserte Variante FORCE [AMS03] erzielt werden. Der Kerngedanke in beiden Ansätzen ist es, die Variablenordnung so zu wählen, dass voneinander abhängige Variablen nahe beieinander liegen. Zunächst wird eine beliebige initiale Variablenordnung gewählt. Ist pos t (x) die Position einer Variablen x in der Variablenordnung zum Zeitpunkt t, so wird für jede Klausel C i deren Schwerpunkt berechnet: S t (C i ) = 1 C i x C i x C i pos t (x) Sei N(x) C die Menge aller Klauseln, in denen entweder das Literal x oder x enthalten ist. Die neue Position einer Variablen ergibt sich dann aus dem gerundeten Wert für: pos t+1 (x) = 1 N(x) C N(x) S t (C) Dieser Prozess wird solange wiederholt bis sich entweder keine Veränderungen der Positionen von Variablen mehr ergeben oder eine bestimmte Menge an Umpositionierungen (Größenordnung log V ) durchgeführt wurde. Huang und Darwiche stellen in dem Artikel A Structure-Based Variable Ordering Heuristic for SAT ein divide and conquer Verfahren zur Bestimmung einer guten Variablenordnung vor [HD03]. Diese Heuristik basiert zunächst auf der Tatsache, dass unabhängige Teilprobleme einer Sat-Instanz getrennt gelöst werden können (vgl. dazu auch [Leh05]). Die Menge der Klauseln C einer Instanz F wird willkürlich in zwei Mengen C L und C R eingeteilt. Seien V L und V R die Mengen der Variablen, die in den Klauseln aus C L bzw. C R vorkommen. Im Lösungsprozess werden Entscheidungsvariablen zunächst nur aus der Variablenmenge V L V R gewählt. Wird in dieser Phase festgestellt, dass F nicht lösbar ist, so terminiert der Algorithmus. Anderenfalls sind alle Variablen aus V L V R belegt, wodurch die resultierenden Teilprobleme C L und C R nun aus disjunkten Variablenmengen bestehen und dadurch getrennt gelöst werden können.

17 2.3. EIN POPULÄRES KONZEPT ZUR LÖSUNG VON SAT 13 Ein weiterer Ansatz zur Verwendung von Strukturinformationen wird von Lehmann 7 vorgestellt [Leh06]. Dort werden verschiedene graphische Repräsentationen einer Sat- Instanz betrachtet. Für diese Graphen werden mehrere Zentralitätsmaße aus der Graphentheorie berechnet, um die Bedeutung von Variablen oder Literalen einzustufen. Basierend auf den ermittelten Zentralitätswerten von Variablen und Literalen werden Entscheidungsvariablen und deren initiale Belegung ausgewählt. Konfliktgesteuerte Heuristiken Durch die Implementierung des Sat-Solvers Chaff wurde 2000 eine neuartige Variablenheuristik vorgestellt, die sich in ähnlicher Form in den meisten aktuellen Sat-Solvern etabliert hat [MMZ + 01]. Die VSIDS Entscheidungsheuristik (Variable State Independent Decaying Sum) bewertet Literale anhand deren Beteiligung an Konflikten: 1. Jedes Literal hat einen auf null initialisierten Aktivitätszähler. 2. Führt eine Variablenbelegung zu einem Konflikt, so wird der Zähler jedes mitverursachenden Literals erhöht (siehe Klausellernen, Kapitel 2.3.3). 3. Die Variable des Literals l max mit dem höchsten Aktivitätswert wird als Entscheidungsvariable gewählt und so initialisiert, dass l max wahr ist. Bei Gleichstand wird zufällig entschieden. 4. In periodischen Zeitabständen werden alle Zähler durch eine Konstante dividiert. Eine Variante der VSIDS-Heuristik, die in den Solvern Satzoo und MiniSat implementiert ist, unterscheidet nicht zwischen den beiden Literalen einer Variablen und verwendet jeweils nur einen Zähler pro Variable [ES03]. Durch die VSIDS Strategie werden solche Entscheidungsvariablen gewählt, die häufig an Konflikten beteiligt sind. Besonders für unerfüllbare Instanzen kann dadurch eine immense Laufzeitersparnis erzielt werden. Die Division durch eine Konstante im vierten Schritt führt dazu, dass neuere Erhöhungen des Aktivitätswertes stärker ins Gewicht fallen als ältere Aus Konflikten lernen Eine der weitreichendsten Verbesserungen des DPLL-Verfahrens wurde 1996 von Marques- Silva und Sakallah durch die Entwicklung eines generischen Sat-Algorithmus - GRASP - erreicht 8. Bereits im vorigen Abschnitt wurde die Idee, aus Konflikten zu lernen, im Zusammenhang mit Branching-Heuristiken vorgestellt. Dieses Unterkapitel beschreibt zwei zentrale Ansätze des GRASP Verfahrens, wie aus Konflikten Informationen extrahiert werden können, um den verbleibenden Suchprozess zu beschleunigen. 7 Mittlerweile Zweig. 8 Da GRASP durch die Verwendung von Methoden aus der Künstlichen Intelligenz erhebliche Veränderungen eingeführt hat, ist sich die Fachwelt uneins, ob heutige Sat-Solver tatsächlich noch auf dem DPLL-Verfahren beruhen.

18 2.3. EIN POPULÄRES KONZEPT ZUR LÖSUNG VON SAT 14 Generieren von Konfliktklauseln Voraussetzung des Lernens aus Konflikten ist es, zunächst die Ursache eines Konfliktes auszumachen. Nach der Ermittlung der Ursache eines Konfliktes kann Lernen dadurch stattfinden, dass eine zusätzliche Bedingung für die Belegungen der Variablen in Form einer Klausel formuliert und zur ursprünglichen Formel hinzugefügt wird. Eine solche Klausel, die auch als Lemma bezeichnet wird, dient der Vermeidung der gleichen fehlerhaften Variablenbelegung in anderen Bereichen des Suchraumes. Diese Idee soll nun an einem Beispiel verdeutlicht werden, das in vereinfachter Form aus [MSS96] übernommen wurde. x x x C 1 C 2 C 2 C 3 x x C 3 C 4 x x a) b) C 4 C 5 C 6 x x C 1 = (x 1 x 2 ) C 2 = (x 1 x 3 x 9 ) C 3 = (x 2 x 3 x 4 ) C 4 = (x 4 x 5 x 10 ) C 5 = (x 4 x 6 ) C 6 = (x 5 x 6 ) Abbildung 2.2: Beispiel eines Implikationsgraphen für die Generierung einer Konfliktklausel Betrachten wir die Formel F, welche unter anderem die in Abbildung 2.2 b) aufgelisteten Klauseln C 1 bis C 6 enthält. Wir gehen davon aus, dass im bisherigen Lösungsprozess von F der Variablen x 9 auf der ersten Entscheidungsebene der Wert false zugewiesen wurde (x Ferner hat Variable x 10 den Wert false auf der Entscheidungsebene drei erhalten (x Die weiteren bisherigen Belegungen können für dieses Beispiel außer Acht gelassen werden. Nun wählt der aktuelle Lösungsprozess - auf Entscheidungsebene sechs - die Variable x 1 als Entscheidungsvariable und initialisiert diese mit dem Wert true (x Abbildung 2.2 a) zeigt den Implikationsgraphen, der den Effekt dieser Variablenzuweisung repräsentiert. Jeder Knoten entspricht der Zuweisung eines Wahrheitswertes für eine Variable. Die gerichteten Kanten des Graphen entsprechen Implikationen, die sich daraus ergeben, dass durch die aktuelle Variablenbelegung in manchen Klauseln jeweils nur noch ein Literal übrig ist, durch den diese erfüllt werden können. Mit der Wahl des Wertes true für Variable x 1 muss durch Klausel C 1 die Variable x 2 ebenfalls auf true gesetzt werden. Diese Zuweisung findet auf der gleichen Entscheidungsebene statt, weshalb der Knoten [x erzeugt wird. Die Kante von [x nach [x wird mit dem Namen der Klausel beschriftet (C 1 ), die diese Zuweisung fordert. Da die Werte x 9 = false und x 1 = true feststehen, folgt durch Klausel C 2, dass Variable x 3 ebenfalls den

19 2.3. EIN POPULÄRES KONZEPT ZUR LÖSUNG VON SAT 15 Wert true erhält. Dadurch werden die Kanten ([x und ([x erzeugt. Führt man die Kette an Implikationen fort, so entsteht ein Konflikt für die Belegung der Variablen x 6. Eine Möglichkeit, die Ursache für den entstandenen Konflikt zu bestimmen, besteht darin, die Kanten des Graphen, ausgehend vom Konfliktknoten, rückwärts zu durchlaufen. Alle so erreichbaren Knoten, die selbst keine eingehenden Kanten haben, repräsentieren diejenigen Entscheidungen, die für den Konflikt verantwortlich sind. In Abbildung 2.2 a) stellt somit die Wahl von x 9 = false, x 10 = false und x 1 = true eine Ursache für den entstandenen Konflikt dar. Als Bedingung kann dadurch festgehalten werden, dass entweder x 9 = true oder x 10 = true oder x 1 = false gelten muss. Diese Feststellung kann mit der Erweiterung der ursprünglichen Formel durch die Klausel K 1 = (x 9 x 10 x 1 ) für den verbleibenden Suchprozess gelernt werden. Beame et al. untersuchen die Idee des Lernens von Konfliktklauseln im Detail [BKS03]. Dabei wird das soeben beschriebene Verfahren zur Generierung von Konfliktklauseln erweitert, wodurch nicht immer Klauseln entstehen, die nur Entscheidungsvariablen enthalten. Diese Erweiterung ist in den meisten aktuellen Sat-Solvern implementiert, ist jedoch für das Verständnis der vorliegenden Arbeit nicht weiter relevant. Backjumping statt Backtracking Die Analyse des Implikationsgraphen bei der Entstehung eines Konfliktes erlaubt eine weitere entscheidende Verbesserung des Lösungsprozesses. Dadurch ist es in vielen Fällen möglich, die Untersuchung größerer Teilbäume des Entscheidungsbaumes komplett einzusparen. Dies wird deutlich, wenn man das Beispiel des vorigen Abschnitts weiter verfolgt [MSS96]. Da die Entscheidung, die Variable x 1 = true zu setzen, zu einem Konflikt geführt hat, weist ein DPLL-basierter Solver als direkte Konsequenz der Variablen x 1 den Wert false zu. Angenommen die Formel F enthält zusätzlich zu den in Abbildung 2.2 b) aufgelisteten Klauseln noch die in Abbildung 2.3 b) genannten Klauseln C 7, C 8 und C 9. Der zugehörige Implikationsgraph in Abbildung 2.3 a) zeigt, dass mit dieser Belegung ein weiterer Konflikt entsteht. An dieser Stelle ist es wichtig zu beachten, dass die Belegung x 1 = false keine Entscheidung sondern vielmehr eine Folgerung des Konfliktes der Belegung x 1 = true darstellt (Failure-Driven Assertion). Damit wird die Belegung x von den Zuweisungen x 9 = false und x 10 = false impliziert, weshalb der Implikationsgraph in Abbildung 2.3 a) die Kanten ([x und ([x enthält. Mit der oben beschriebenen Methode lassen sich für diesen Konflikt die Entscheidungen x und x verantwortlich machen, was durch die Konfliktklausel K 2 = (x 9 x 10 ) gelernt werden kann. Da die Belegung x 9 = false auf der ersten Ebene und die Belegung x 10 = false auf der dritten Ebene gewählt wurde, ist klar, dass die Ursache des Konfliktes mindestens schon auf Ebene drei (oder früher) zu suchen ist. Es macht demnach

20 2.3. EIN POPULÄRES KONZEPT ZUR LÖSUNG VON SAT 16 x x K 1 K 1 x C 8 C 9 C 7 C 9 x x a) b) C 1... C 6 K 1 = (x 9 x 10 x 1 ) C 7 = (x 1 x 7 ) C 8 = (x 1 x 8 ) C 9 = (x 7 x 8 x 9 ) Abbildung 2.3: Beispiel eines Implikationsgraphen für non-chronological Backjumping keinen Sinn, wenn der Lösungsprozess die Entscheidungen für die Belegungen der Variablen auf den Ebenen fünf und vier umkehrt, wie dies durch das ursprüngliche Backtracking gemacht wird. Die Lösungssuche kann beschleunigt werden, indem sofort auf die dritte Entscheidungsebene zurück gesprungen wird (non-chronological Backjumping). Betrachtet man allgemein die Entscheidungsebenen der Literale in der Konfliktklausel, so gibt der größte Wert die Entscheidungsebene für das Backjumping an Random Restarts Ein leicht zu implementierendes, aber dennoch sehr mächtiges Konzept bieten Neustarts (restarts) nach einer gewissen Zeit erfolglosen Suchens. Trotz guter Variablenheuristiken, Lernmechanismen und Backjumping kann es sein, dass der Lösungsprozess in einen ungünstigen Bereich des Suchraumes gelangt, in dem Konflikte grundsätzlich erst nach vielen Entscheidungen auftreten und dennoch kein Backjumping möglich ist. Um solche Bereiche nicht komplett durchsuchen zu müssen, wird nach einer bestimmten Zeit, einer bestimmten Anzahl an Entscheidungen oder bei Überschreiten einer maximalen Tiefe des Entscheidungsbaumes ein Neustart durchgeführt. Neustarts bergen prinzipiell die Gefahr, dass die Unlösbarkeit einer Formel nicht festgestellt werden kann, falls die Suche immer abgebrochen wird, bevor die Unlösbarkeit bewiesen ist. Um ein vollständiges Lösungsverfahren zu gewährleisten, wird das Kriterium, durch welches ein Neustart herbeigeführt wird, bei jedem Neustart abgeschwächt [MSS96, MMZ + 01]. Damit ein erneuter Suchprozess erfolgreicher verlaufen kann als die vorangegangene Suche, wird zufällig ein neuer Ausgangspunkt, z.b. eine neue Variablenordnung, gewählt. Darüber hinaus können gelernte Informationen, wie hinzugefügte Konfliktklauseln oder Aktivitätswerte von Variablen, wiederverwendet werden. Die genaue Konfiguration kann bei den meisten Sat-Solvern als optionales Argument angegeben werden und es scheint als gäbe es keine Konfiguration, die für alle Instanzen optimal ist [MMZ + 01].

21 2.4. LOKALE SUCHE - EINE ALTERNATIVE ZU DPLL Implementierungen von SAT-Solvern Die meisten der aktuellen effizienten Sat-Solver basieren auf dem DPLL-Verfahren und dem erweiterten GRASP-Algorithmus. Seit der Implementierung von Chaff im Jahr 2000 wurden erhebliche Fortschritte auf dem Gebiet des Sat-Solvings erzielt [Bie07]. Sowohl die VSIDS Heuristik als auch das Klausellernen in Verbindung mit dem non-chronological Backjumping sind in den Sat-Solvern MiniSat [ES03], PicoSat [Bie07] und RSat realisiert. Alle drei Programme, die zu den aktuell schnellsten Sat-Solvern zählen [Sat07], berechnen keine besondere initiale Ordnung der Variablen, da die VSIDS Heuristik schon nach wenigen Konflikten eine gute Variablenordnung ermittelt. Um resistent gegen schlechte initiale Variablenordnungen zu sein, führt MiniSat standardmäßig relativ schnell einen ersten Neustart durch (nach 100 Konflikten), behält dabei aber die gelernten Klauseln bei. Die größte Verbesserung von PicoSat gegenüber MiniSat wurde durch die Verwendung von verschiedenen Datenstrukturen für das Speichern von Binärklauseln und Klauseln mit mindestens drei Literalen erzielt [Bie07]. Dadurch wird die Durchführung der Boolean Constraint Propagation beschleunigt, die in DPLL-basierten Implementierungen ungefähr 80% der gesamten Laufzeit beansprucht [MMZ + 01]. 2.4 Lokale Suche - Eine Alternative zu DPLL Auch wenn viele der aktuellen Implementierungen als Erweiterung des DPLL-Verfahrens betrachtet werden können, so gibt es auch völlig andere Ansätze zur Lösung von Sat- Problemen. Im Folgenden wird ein weiteres Konzept erläutert, das in dieser Arbeit jedoch nur eine untergeordnete Rolle spielt. Die lokale Suche stellt ein nicht vollständiges Verfahren zur Lösung von Sat-Instanzen dar. Das heißt, dass eine lokale Suche für eine lösbare Probleminstanz F oft schnell eine erfüllende Belegung der Variablen findet. Wird jedoch kein Modell gefunden, so kann daraus nicht mit absoluter Sicherheit die Unerfüllbarkeit von F geschlossen werden [SKC93]. Der Kerngedanke der lokalen Suche ist es, von einer beliebigen Variablenbelegung auszugehen und diese Belegung schrittweise so zu verändern, bis schließlich alle Klauseln der Instanz erfüllt sind oder eine bestimmte maximale Zeitspanne verstrichen ist. Diese schrittweise Annäherung an eine erfüllende Belegung wird dadurch realisiert, dass die Belegung einer Variablen, die nach einem bestimmten Kriterium ausgewählt wird, geflippt wird [Sin06]. Durch die Publikation des GSat-Algorithmus von Selman et al. wurden 1992 die damaligen DPLL-basierten Solver gerade für harte Zufallsinstanzen oft bei weitem übertroffen [SLM92]. GSat wählt gierig eine solche Variable, die durch das Flippen ihrer Belegung die größte Steigerung der Anzahl an erfüllten Klauseln verursacht wurde dieses Verfahren durch den Algorithmus WalkSat verbessert, der die Idee der Random Walk Strategie

22 2.5. HANDHABBARE UNTERKLASSEN DES SAT-PROBLEMS 18 aufgreift [SKC93]. Das von Papadimitriou vorgestellte Random Walk Verfahren für 2-Sat- Instanzen startet mit einer zufälligen Variablenbelegung, wählt per Zufall ein Literal aus einer unerfüllten Klausel und flippt die Belegung der entsprechenden Variablen. WalkSat vereint beide Strategien, indem mit konstanter Wahrscheinlichkeit p (für 0 < p < 1) zufällig eine Variable x gewählt wird, die in einer unerfüllten Klausel vorkommt. Der bisherige Wert von x wird daraufhin geflippt. Mit Wahrscheinlichkeit 1 p wird gemäß dem GSat-Verfahren gehandelt. Ähnliche Vorgehensweisen finden oft Anwendung bei der Berechnung von Max-Sat Problemstellungen, bei denen es darum geht, eine möglichst große Menge von Klauseln zu erfüllen. In Kapitel 3.4 wird die Idee von WalkSat in einem anderen Kontext verwendet. 2.5 Handhabbare Unterklassen des SAT-Problems Wie eingangs erwähnt, gibt es Unterklassen des Sat-Problems, die nicht NP-hart sind und in vielen Fällen sogar in Linearzeit gelöst werden können. Solche Klassen spielen gerade im Zusammenhang mit Backdoors eine zentrale Rolle. Eine detaillierte Darstellung der bekanntesten, in Polynomzeit lösbaren Unterklassen des Sat-Problems wurde von Franco und Van Gelder veröffentlicht [FG03] SAT Im Jahr 1979 publizierten Aspvall et al. einen Algorithmus, der die Erfüllbarkeit von 2- Sat-Instanzen 9, in denen jede Klausel aus maximal zwei Literalen besteht, in Linearzeit berechnet [APT79]. Der Algorithmus erzeugt zunächst einen (gerichteten) Implikationsgraphen, in dem alle Literale einer Formel F durch Knoten repräsentiert werden. Eine Klausel (l 1 l 2 ) F erzeugt die beiden gerichteten Kanten (l 1, l 2 ) und (l 2, l 1 ). Damit stellen die Kanten die beiden folgenden Implikationen dar: Wenn Literal l 1 nicht erfüllt ist, dann muss Literal l 2 erfüllt sein. Wenn Literal l 2 nicht erfüllt ist, dann muss Literal l 1 erfüllt sein. Mit Hilfe des Algorithmus von Tarjan werden nun die starken Zusammenhangskomponenten des Graphen berechnet [OW02, Kap. 8]. Wie in Abbildung 2.4 b) dargestellt, wird jede Komponente zu einem Knoten verschmolzen. Die Formel ist genau dann erfüllbar, wenn von keiner Variablen beide Ausprägungen (positives und negatives Literal) in der gleichen Komponente liegen. Befinden sich keine komplementären Literale in einem verschmolzenen Knoten, dann kann ein Lösungsmodell gefunden werden, indem die Knoten topologisch sortiert werden. Beginnend mit dem letzten Knoten der Sortierung, werden alle noch nicht belegten Variablen so gesetzt, dass die Literale des Knotens wahr werden. 9 2-Sat wird auch als Binary-Sat oder quadratic-sat bezeichnet.

23 2.5. HANDHABBARE UNTERKLASSEN DES SAT-PROBLEMS 19 x 1 x 2 7x 5 x 3 x x 4 x 3 7 x2 7 7 x 1 x 3, x 4, x x 1, x 2 x 1, x 2 7 x 3, x 4, x 5 a) x 5 b) Abbildung 2.4: Implikationsgraph von Aspvall. Quelle [Sin06]. F = (x 1 x 2 ) (x 1 x 2 ) (x 3 x 4 ) (x 4 x 5 ) (x 5 x 3 ) (x 3 x 1 ) (x 4 x 2 ). Ein Modell ist durch die Belegung x 3, x 4, x 5 (letzter Knoten der topologischen Sortierung in b) und x 1, x 2 (möglicher vorletzter Knoten in b) gegeben. Ein weiteres Verfahren zum Lösen von 2-Sat-Problemen wurde von del Val entwickelt, welches sich aufgrund der Ähnlichkeit zum oben beschriebenen DPLL-Algorithmus in vielen Fällen besser für die Integration in aktuelle Sat-Solver eignet [dv00]. Dieses Verfahren unterscheidet zwischen einer temporären und einer endgültigen Belegung von Variablen. Führt die temporäre Belegung einer Variablen x i zu einem Konflikt, so wird die komplementäre Belegung für x i endgültig propagiert, ohne die temporäre Belegung durch Backtracking explizit rückgängig zu machen Horn-SAT Eine weitere Unterklasse von Sat, die in Linearzeit lösbar ist, stellt die Klasse Horn dar [Bor99]. Eine Klausel wird als Hornklausel bezeichnet, wenn sie höchstens ein positives Literal enthält. Eine boolsche Formel in konjunktiver Normalform heißt Horn-Formel, wenn sie nur Hornklauseln enthält. Die vorteilhafte Eigenschaft an dieser Problemklasse ist, dass Horn-Instanzen mit Hilfe der Boolean Constraint Propagation gelöst werden können [Sin06]. Horn-Formeln spielen auch auf dem Gebiet der Experten Systeme eine große Rolle. Die Klauseln einer Formel F Horn lassen sich in drei Kategorien einteilen: Fakten sind diejenigen Unit Klauseln mit einem positiven Literal. Regeln sind solche Klauseln, die aus einem positiven und mindestens einem negativen Literal bestehen. Ausschlusskriterien stellen solche Klauseln dar, die kein positives Literal enthalten.

24 2.5. HANDHABBARE UNTERKLASSEN DES SAT-PROBLEMS 20 Sei beispielsweise F = (x 1 ) (x 1 x 2 ) (x 1 x 2 x 3 ) (x 3 x 1 ) eine Horn-Formel. Die Erfüllbarkeit von F kann nun wie folgt überprüft werden: Zu den Fakten in F zählt nur die Klausel (x 1 ), die angibt, dass die Variable x 1 auf true gesetzt werden muss. Mit der Regel (x 1 x 2 ) folgt, dass auch Variable x 2 den Wahrheitswert true haben muss. Die weitere Regel (x 1 x 2 x 3 ) fordert Variable x 3 auf true zu setzen. Wurden sämtliche Regeln angewandt, so wird überprüft, ob ein Widerspruch zu einem der Ausschlusskriterien besteht. In diesem Fall wird die Klausel (x 3 x 1 ) nicht erfüllt, was beweist, dass F nicht erfüllbar ist. Enthält eine Formel keine Unit Klauseln mit positiven Literalen, so ist die Menge der Fakten leer, wodurch die Erfüllbarkeit der Formel direkt folgt. Da jede Klausel mindestens ein Literal mit negativer Polarität enthält, lässt sich in diesem Fall ein erfüllendes Modell dadurch erzeugen, indem allen Variablen der Wahrheitswert false zugewiesen wird. Die Klasse der Horn-Formeln wurde in mehrere Richtungen erweitert (vgl. [FG03]). Die einfachste Erweiterung stellt dabei die Klasse Renamable Horn dar. Eine boolsche Formel F wird als Renamable Horn 10 (R-Horn) bezeichnet, wenn eine Variablenmenge V V existiert, so dass durch das Flippen aller Literale der Variablen v V eine Horn-Instanz erzeugt werden kann. Flippen der Literale x, x einer Variablen x bedeutet, dass alle Vorkommen von x durch x und alle Vorkommen von x durch x ersetzt werden. Formeln der Klasse R-Horn können somit auch in Linearzeit gelöst und erkannt werden [Bor99, dv00]. In Kapitel 3.4 wird eine noch umfassendere Erweiterung von Horn vorgestellt und angewandt Matched Formulas Diese Klasse von Formeln wird unter Verwendung einer graphischen Repräsentation von Sat-Instanzen definiert (vgl. [FG03]). In Kapitel 5 werden verschiedene graphische Darstellungen von Sat-Problemen vorgestellt und erläutert. Für eine Formel F in konjunktiver Normalform betrachten wir den ungerichteten bipartiten Graphen CV mit den beiden Knotenmengen V C und V V. Die Knoten in V C repräsentieren die Klauseln, die Knoten in V V die Variablen der Formel F. Eine Kante zwischen einem Knoten v i V V der Variablen x i V und einem Knoten c j V C der Klausel C j C existiert genau dann, wenn x i in positiver oder negierter Form in C j enthalten ist. Ein totales Matching für Klauseln in CV ist eine Untermenge M der Kanten in CV, so dass jeder Knoten in V C inzident zu einer Kante aus M und jeder Knoten aus V V inzident zu höchstens einer Kante aus M ist. Es gilt also C V. Die Formel F wird genau dann als matched bezeichnet, wenn es ein totales Matching für die Klauseln gibt. 10 In manchen Artikeln wird Renamable-Horn auch als Disguised-Horn bezeichnet.

25 2.6. BACKBONES UND BACKDOORS 21 Ein totales Matching für den bipartiten Graphen CV lässt sich mit Hilfe von Netzwerkflussalgorithmen in Polynomzeit berechnen [OW02, Kap. 8]. Nach Rosenberg ist jede matched Formula erfüllbar. Ein gültiges Modell für eine solche Formel ist direkt durch das Matching M gegeben: Der Wahrheitswert jeder Variablen, die am Matching beteiligt ist, wird so gewählt, dass dadurch die mit ihr verbundene Klausel erfüllt ist. Da nach der Definition des totalen Matchings jede Variable mit maximal einer Klausel verbunden ist und jede Klausel von einer Variablen erreicht wird, kann F durch diese Belegung erfüllt werden. 2.6 Backbones und Backdoors Die Ergebnisse der jüngsten Sat-Competition [Sat07] verdeutlichen ein bekanntes, aber dennoch interessantes Phänomen, das beim Lösen von Sat-Problemen immer wieder zu beobachten ist: Auf der einen Seite schaffen es aktuelle Sat-Solver, industrielle Probleminstanzen mit mehr als einer Million Klauseln in wenigen Sekunden zu lösen, auf der anderen Seite konnte eine Instanz mit 117 Variablen und 244 Klauseln von keinem Programm innerhalb der vorgegebenen Zeit (10000 Sekunden) gelöst werden. Dieser Unterschied wird oft dadurch erklärt, dass praktische Sat-Instanzen verborgene Strukturen aufweisen, wodurch eine Lösung oft in nahezu linearer Zeit ermittelt werden kann. In diesem Kapitel werden zwei relativ neue Strukturmaße - Backbones und Backdoors - definiert. Eine Variable x einer Instanz F wird als Backbone-Variable bezeichnet, wenn diese in jeder erfüllenden Variablenbelegung für F den gleichen Wert annimmt. Solche Variablen werden auch frozen variables genannt [MZK + 99]. Diese Variablen sind vor allem nützlich, um den Lösungsraum eines Erfüllbarkeitsproblems zu untersuchen. Eine Menge S V ist ein Backbone, wenn es eine eindeutige Belegung τ S der Wahrheitswerte für die Variablen in S gibt, so dass die verbleibende Instanz F [τ S ] erfüllbar ist [WGS03a]. Das Konzept der Backdoors wurde 2003 von Williams et al. eingeführt [WGS03a, WGS03b]. Die folgende, etwas vereinfachte Definition stammt jedoch von Nishimura et al. [NRS04]: Backdoor-Mengen (kurz: Backdoors) werden bezüglich einer Basisklasse C definiert, die eine bestimmte Menge von Sat-Formeln beschreibt. Dabei müssen Instanzen einer Klasse C von einem sogenannten Subsolver in Polynomzeit erkennbar und deren Erfüllbarkeit in Polynomzeit berechenbar sein. Sei F eine boolsche Formel und B V eine Menge von Variablen in F, dann gilt: B ist ein schwaches C-Backdoor (Weak C-Backdoor) wenn eine Zuweisung von Wahrheitswerten τ : B {false, true} existiert, so dass F [τ] erfüllbar ist und zur Klasse C gehört. B ist ein starkes C-Backdoor (Strong C-Backdoor), wenn F [τ π ] für jede Zuweisung von Wahrheitswerten τ π : B {false, true} zur Klasse C gehört.

26 2.7. PARAMETRISIERUNG VON ALGORITHMEN Parametrisierung von Algorithmen Im Kontext mehrerer Problemstellungen, die mit dem Erfüllbarkeitsproblem einher gehen, spielen parametrisierte Algorithmen eine immer größer werdende Rolle. Daher wollen wir zum Abschluss des Grundlagenkapitels einen knappen Einblick in dieses Konzept geben (vgl. [Nie02]). Fixed Parameter Tractable Algorithmen (FPT) stellen einen der bekannten Ansätze dar, um mit NP-vollständigen Problemstellungen umzugehen. Dabei ist der grundlegende Gedanke, dass viele dieser Problematiken an einen nicht negativen ganzzahligen Parameter k gebunden sind. In der Praxis gibt es oft Fragestellungen, bei denen eine Lösung nur bis zu einer bestimmten Größe von Interesse ist. Formell kann dies folgendermaßen definiert werden: Definition Ein parametrisiertes Problem L ist fixed parameter tractable, wenn die Frage (x 1, x 2 ) L? innerhalb der Laufzeit f( x 2 ) x 1 O(1) entschieden werden kann, wobei f eine beliebige Funktion auf nicht negativen Ganzzahlen ist. Die entsprechende Komplexitätsklasse nennt sich FPT. 11 Im Rahmen dieser Arbeit treten zwei bestimmte NP-vollständige Problematiken, für die effiziente parametrisierte Algorithmen zur Verfügung stehen, mehrfach an verschiedenen Stellen und in unterschiedlichen Kontexten auf. Aus diesem Grund werden diese Probleme hier vorab definiert. Genauere Angaben bezüglich der Komplexität der FPT-Algorithmen werden dann in den Anwendungsbeispielen gegeben (u.a. Kapitel 4.3.1). Das Vertex-Cover Problem ist die am besten untersuchte Fragestellung im Bereich der FPT-Algorithmen [Nie02]: Eingabe: Ein Graph G = (V G, E G ) und eine nicht negative Ganzzahl k. Frage: Gibt es eine Untermenge von Knoten C V G mit k oder weniger Elementen, so dass von jeder Kante in E G mindestens einer ihrer beiden Endpunkte in C ist? Ein ebenfalls bekanntes FPT-Problem, dessen Lösungsverfahren fortlaufend optimiert werden, ist das d-hitting-set Problem: Eingabe: Eine Sammlung C von Untermengen der (maximalen) Größe d von einer endlichen Menge S und eine nicht negative Ganzzahl k. Frage: Gibt es eine Untermenge S S mit S k, so dass S von jeder Menge in C mindestens ein Element enthält? Aus beiden Definitionen lässt sich erkennen, dass das Vertex-Cover Problem gerade dem 2-Hitting-Set Problem entspricht. Das allgemeine Hitting-Set Problem wird auf der anderen Seite auch oft als Vertex-Cover in Hypergraphen interpretiert. 11 Aus [Nie02] sinngemäß übersetzt.

27 Kapitel 3 Backdoors Backdoors stellen eines der Konzepte dar, die in den vergangenen vier Jahren dazu herangezogen wurden, die Struktur von Sat-Instanzen zu analysieren und zu klassifizieren. Schon Williams, Gomes und Selman geben in ihrem wegweisenden Artikel von 2003 Backdoors To Typical Case Complexity [WGS03a] Beispiele von Sat-Instanzen aus dem Bereich der logistischen Planung mit ungefähr 7000 Variablen und nahezu Klauseln an, bei denen Backdoors mit nur zwölf Variablen gefunden wurden. Ihre Vermutung, dass strukturierte Sat-Instanzen, die sich aus realen Problemstellungen der Praxis ergeben, über kleine Backdoors verfügen, konnte bisher empirisch bestätigt werden: So gelang es Ruan, Kautz und Horvitz im folgenden Jahr mit ihrem erweiterten Konzept der Backdoor Keys einen Zusammenhang zwischen Backdoors und der Schwierigkeit von Sat-Problemen herzustellen [RKH04]. Darüber hinaus zeigte Interian, dass sich bei randomisierten, also unstrukturierten 3-Sat Instanzen die Größe der Backdoors im Bereich von 30% bis 65% der gesamten Variablenanzahl bewegt [Int03]. Auf dem Gebiet der exakten Berechnung von Backdoors und der Komplexität dieser Algorithmen haben vor allem Szeider et al. sehr interessante Beiträge geleistet [NRS04, Sze05, NRS06, Sze07b, SS07], worauf in diesem Kapitel mehrfach eingegangen wird. Außerdem wurde von Paris et al. ein randomisierter Algorithmus entwickelt [POSS06], der basierend auf lokaler Suche minimale R-Horn-Backdoor-Mengen approximiert und damit seine Anwendung als Vorverarbeitungsroutine in einer Erweiterung des Zchaff Sat-Solvers [MMZ + 01] findet. In diesem Kapitel werden einige der bisher bekannten Ergebnisse zur Ermittlung und Verwendung von Backdoor-Mengen vorgestellt. Darüber hinaus werden neue Ideen, sowohl zur Berechnung als auch zum praktischen Einsatz von Backdoor-Mengen, erörtert. Viele unserer experimentellen Analysen wurden anhand von realen Sat-Instanzen aus dem Bereich der Automobilkonfiguration [Sin03] durchgeführt.

28 3.1. BESTIMMUNG VON DPLL-BACKDOORS Bestimmung von DPLL-Backdoors Das Konzept von speziellen Backdoor-Variablen in Sat-Problemen wurde in Kapitel 2.6 definiert und vorgestellt. Es ist offensichtlich, dass mit Hilfe einer kleinen Backdoor-Menge die entsprechende Sat-Instanz effizient gelöst bzw. auf Erfüllbarkeit überprüft werden kann. Kennt man z.b. ein Backdoor B V mit B log V, so kann das entsprechende Sat-Problem in der Laufzeit 2 log V P olynom( V ) = V P olynom( V ) gelöst werden, indem alle möglichen Variablenbelegungen der Backdoor-Variablen durchprobiert werden und die logischen Konsequenzen der jeweiligen Belegung für die verbleibende Instanz in Polynomzeit propagiert werden. Leider ist das Auffinden und Erkennen von Backdoor-Mengen in den meisten Fällen nicht einfach. Eine naheliegende Vorgehensweise, um schwache Backdoor-Mengen von erfüllbaren Sat-Instanzen zu bestimmen, wird schon von Williams et al. [WGS03a, WGS03b] vorgeschlagen und angewandt: Bei einem auf dem DPLL-Verfahren basierenden Solver wird diejenige Menge an Entscheidungsvariablen für das Backdoor ausgesucht, die im Laufe des Algorithmus für das Branching gewählt wurden und am Ende zu einer gültigen Variablenbelegung geführt haben. Aufgrund der Vorgehensweise der DPLL-Prozedur kann damit die Belegung der verbleibenden Variablen erschlossen werden. Allerdings erfolgt die Ermittlung eines Backdoors erst während des Lösungsprozesses. Ein so gefundenes Backdoor kann damit nicht für das effiziente Lösen der Sat-Instanz verwendet werden. Betrachtet man den Entscheidungsbaum des Algorithmus, dann entsprechen die so ermittelten Backdoor-Variablen gerade denjenigen Variablen, die den Pfad von der Wurzel (erste Entscheidung) bis zu demjenigen Blatt bilden, das der letzten Entscheidung entspricht. Die ersten schwachen Backdoors wurden von Williams et al. durch die Anpassung des randomisierten SATZ Solvers [LA97] berechnet. Unglücklicherweise ist das Auffinden von DPLL-Backdoors nicht wesentlich effizienter durchführbar. Szeider bewies 2005 [Sze05] die NP-Härte der Bestimmung von minimalen schwachen und starken DPLL-Backdoors und darüber hinaus, dass selbst durch die Einschränkung auf einen Subsolver, der nur Unit Propagation oder die Pure Literal Elimination verwendet, das Problem NP-hart ist Berechnung von schwachen DPLL-Backdoors Aufgrund der Tatsache, dass moderne Sat-Solving Strategien das ursprüngliche DPLL- Verfahren in vielen Aspekten erweitern und verändern (siehe ), wurde im Rahmen dieser Arbeit ein DPLL-Sat-Solver in C++ implementiert, der weder auf das Konzept des Klausellernens ([MSS96, MSS99]) noch auf irgendwelche Variablenheuristiken zurückgreift. Dies führt selbstverständlich zu immensen Laufzeiteinbußen, hat aber den Vorteil und den Zweck, Backdoors möglichst unabhängig von Branching-Heuristiken zu ermitteln. Da bei dieser Methode die gefundenen Backdoors der Menge von Branching- Variablen entsprechen, ist es sehr wahrscheinlich, dass Solver, die eine ausgeprägte Variablenheuristik benutzen, nur bestimmte Backdoor-Mengen auffinden werden.

29 3.1. BESTIMMUNG VON DPLL-BACKDOORS 25 Die Schwierigkeit, Backdoors mit Hilfe von Solvern zu ermitteln, die das Konzept des Klausellernens implementieren, besteht darin, dass gelernte Klauseln einen (gewollten) Einfluss auf die Unit Propagation haben. Dies führt dazu, dass die Belegung einer Variablen, abhängig von der Menge der gelernten Klauseln, unterschiedliche Auswirkungen auf andere Variablenbelegungen hat. In ersten Versuchen, Backdoors durch die Modifikation des MiniSat-Solvers ([ES03]) zu berechnen, wurden daher oft unechte Backdoors gefunden, die ohne die spezifische Menge an gelernten Klauseln gar keine Backdoors darstellen. Das Konzept des non-chronological Backjumping ([MSS96]) verkleinert den Suchraum, indem bestimmte unnötige Zweige des Entscheidungsbaumes identifiziert und übersprungen werden, und hat damit nur Auswirkungen auf die Laufzeit, nicht aber auf die Menge an gefundenen Lösungsmodellen. Daher wurde dieses Konzept in unsere Implementierung aufgenommen. Ebenfalls ist das Konzept der Random Restarts implementiert, da ein Neustart gerade dann durchgeführt wird, wenn längeres Suchen in einer bestimmten Region des Suchbaumes kein Ergebnis erzielen konnte. In einem solchen Fall ist es sehr wahrscheinlich, dass die Anzahl der bisher getroffenen Branching-Entscheidungen sehr groß ist, was wiederum ein großes, für die Praxis irrelevantes Backdoor erzeugen würde Erweiterung für starke DPLL-Backdoors Um auch starke DPLL-Backdoors zu ermitteln, haben wir das oben beschriebene Verfahren leicht erweitert: Für nicht erfüllbare Instanzen werden alle Variablen in das Backdoor aufgenommen, die während des Suchprozesses irgendwann Branching-Variablen waren. Im Unterschied zum Finden von schwachen Backdoors werden damit auch solche Variablen aufgenommen, die im Entscheidungsbaum des Algorithmus außerhalb des Pfades von der ersten bis zur letzten Entscheidung liegen. Kommt der Algorithmus zu dem Schluss, dass die zugrunde liegende Instanz nicht erfüllbar ist, so wurden alle Variablenbelegungen für alle Entscheidungsvariablen getestet. Daher bildet diese Menge nach Definition gerade ein starkes Backdoor. Mit Hilfe der beschriebenen Implementierung wurden zahlreiche schwache und starke Backdoors für Sat-Instanzen aus der Automobilkonfiguration berechnet. Dabei wurden für erfüllbare Instanzen je bis zu Berechnungen durchgeführt. Da bei der Implementierung auf Klausellernen und Heuristiken verzichtet wurde, musste bei unlösbaren Instanzen die Anzahl der Durchläufe aus zeitlichen Gründen stark reduziert werden. Bei schwierigen unlösbaren Instanzen, bei denen der Suchprozess nach zehn Stunden kein Ergebnis liefern konnte, wurde die Berechnung der Backdoors abgebrochen. Aus der Menge der berechneten Backdoors einer Instanz wurden diejenigen Backdoors eliminiert, die eine Obermenge eines anderen Backdoors bilden. Zusätzlich zu den schwachen Backdoors von erfüllbaren Instanzen wurde die jeweils gültige Variablenbelegung der Backdoor-Variablen gespeichert, was im Folgenden als Extended Backdoor bezeichnet wird. Extended Backdoors stellen somit eine Menge von Paaren aus Variablen V und den zugehörigen Wahrheitswerten {f alse, true} dar. Tabelle 3.1 soll einen Überblick über die Größe der gefundenen Backdoors für Instanzen aus

30 3.1. BESTIMMUNG VON DPLL-BACKDOORS 26 der Automobilkonfiguration geben. In den ersten drei Spalten wird der Name, die Anzahl der Variablen und die Anzahl der Klauseln der jeweiligen Sat-Instanz genannt. In Spalte vier ist die Anzahl der berechneten Backdoors aufgeführt und Spalte fünf gibt an, ob es sich bei diesen Backdoors um starke ( - für unerfüllbare Instanzen) oder schwache ( - für erfüllbare Instanzen) DPLL-Backdoors handelt. Die Spalten sechs bis acht geben die minimale, maximale und durchschnittliche Größe der berechneten Backdoors an. Spalte neun und zehn zeigen die Standardabweichung und die Varianz der ermittelten Werte. Anzahl Typ Backdoor Größe Instanz Vars. Kls. BDs stark? min. max. σ σ 2 C210 FW C638 FKB C168 FW NC C168 FW UT C208 FC UT C210 FW UT C220 FV UC C220 FV UC C220 FV UT C638 FKA UC C638 FKA UT C168 FW SZ C168 FW SZ C168 FW UT C170 FR RZ C170 FR SZ C202 FS SZ C202 FW SZ C208 FA SZ C210 FW SZ C220 FV SZ C220 FV SZ aim no Tabelle 3.1: Backdoors in Instanzen der Automobilkonfiguration. Alle Instanzen stammen aus [Sin03]. Die letzte Zeile zeigt zum Vergleich die Backdoor-Größe einer Zufallsinstanz. Für die Instanzen des ersten Blockes wurden jeweils 40000, für die des zweiten Blockes und für die restlichen Instanzen je 50 Berechnungen durchgeführt. Die minimalen schwachen Backdoors, die für erfüllbare Instanzen ermittelt wurden, sind durchweg sehr klein, gerade im Vergleich zur Variablenanzahl der jeweiligen Instanz. Die jeweils maximale Größe der gefundenen Backdoors zeigt, dass es durchaus auch sehr schlechte Variablenordnungen geben kann. Für unerfüllbare Instanzen konnte in der vorhandenen Zeit (mindestens zehn Stunden pro Instanz) nicht immer ein kleines starkes Backdoor gefunden werden. In Kapitel werden zwei Ansätze vorgestellt, die es für einige der unerfüllbaren Instanzen ermöglichen, kleinere starke Backdoors zu berechnen.

31 3.2. EINE VORVERARBEITUNG FÜR INDUSTRIELLE INSTANZEN 27 In diesem Unterkapitel wurden die gefundenen DPLL-Backdoors unter dem Aspekt der Größe von Backdoors betrachtet. Dazu mussten die jeweiligen Sat-Instanzen vollständig gelöst werden. Im Folgenden werden mehrere Methoden vorgestellt, andere Arten von Backdoors zu ermitteln, für die das Lösen der Instanz nicht erforderlich ist. In Kapitel 3.6 werden schließlich weitere interessante Aspekte von DPLL-Backdoors gerade für Instanzen der Automobilkonfiguration aufgezeigt. 3.2 Eine Vorverarbeitung für industrielle Instanzen Natürlich ist es wünschenswert eine Methode zu kennen, die in Polynomzeit eine möglichst kleine starke Backdoor-Menge ermitteln kann. Wie schon im vorigen Kapitel erläutert wurde, ist diese Aufgabe im Allgemeinen nicht leicht zu bewältigen. Steckt man die Ziele nicht zu hoch, so kann es auch hilfreich sein, in einer Vorverarbeitung schon diejenigen Variablen zu bestimmen, die als Backdoor-Variablen außer Acht gelassen werden können. Gelingt es, mit Hilfe einer Vorverarbeitungsroutine die Menge der möglichen sinnvollen Backdoor- Variablen B einzuschränken, so kann die daraus erhaltene Information eine gute Grundlage für eine entsprechende Sat-Solving-Heuristik sein, selbst wenn das Durchprobieren aller 2 B Belegungen zu komplex ist. Eine Möglichkeit besteht darin, eine optimale initiale Variablenordnung zu wählen, bei der die Backdoor-Variablen an den Anfang gesetzt werden. Gerade bei Sat-Solvern, die eine statische Variablenordnung implementieren, ist dieser Ansatz durchaus sinnvoll. In einem praktischen Beispiel wurde diese Idee als Vorstufe des Zchaff-Solvers realisiert und die Variablenordnung für die DPLL-Prozedur entsprechend vorsortiert [POSS06]. Der in dieser Arbeit entwickelte und im Folgenden beschriebene Vorverarbeitungsprozess eignet sich für Instanzen, in denen mehrere Klauseln mit weniger als drei Literalen vorhanden sind. Diese Voraussetzung wird oft in Sat-Instanzen erfüllt, die aus industriellen Fragestellungen entstanden sind (vgl. z.b. [Sat07]) Berechnung eines Propagation-Graphen In Algorithmus 2 wird zunächst ein gerichteter Graph erzeugt, der jeder Variablen einer Formel F einen Knoten zuweist. Die Kanten dieses Propagation-Graphen ergeben sich durch das hintereinander durchgeführte, testweise Propagieren beider Variablenbelegungen (vierte Zeile) für jede Variable V. Die Menge L ip beinhaltet diejenigen Literale, die als Konsequenz der Zuweisung x i true wahr werden, L in enthält diejenigen Literale, die durch die Belegung x i false wahr werden. Verursacht sowohl die testweise Belegung des Wahrheitswertes true als auch des Wertes false für eine Variable x i V einen Konflikt (L ip = L in = null), so ist klar, dass F nicht erfüllbar sein kann (fünfte Zeile). Führt nur eine der beiden Zuweisungen zu einer ungültigen Belegung, so kann daraus gerade die entgegengesetzte Belegung für x i gefolgert werden (siebte Zeile). Implizieren beide Belegungen einer Variablen x i den gleichen Wahrheitswert b für eine andere Variable x j, so kann dieser Wert b für Variable x j fest angenommen werden (neunte

32 3.2. EINE VORVERARBEITUNG FÜR INDUSTRIELLE INSTANZEN 28 Algorithmus 2 Erzeugen eines Propagation-Graphen Eingabe: Eine boolsche Formel F mit Variablen V Ausgabe: Ein Propagation-Graph 1: function createpropagationgraph(f ) 2: G = (V G, E G ) jeder Variablen x i V wird ein Knoten k i V G zugeordnet, E G = 3: for all x i V do 4: L ip testpropagate(x i ), L in testpropagate(x i ) 5: if L ip = L in = null then return Unsatisfiable 6: if L in = null and L ip null then 7: applypropagate(x i ) analoger Fall für x i 8: else 9: applypropagate(l) l {L ip L in } 10: for all x j {V ariables(l ip ) V ariables(l in )} do 11: E G E G (k i, k j ) 12: end for 13: end if 14: end for 15: return G 16: end function Zeile). Darüber hinaus ist es nicht notwendig, Variable x j in ein DPLL-Backdoor aufzunehmen. Diese Idee ist stark mit dem Konzept der Backbone-Variablen verwandt, welches die Menge solcher Variablen beschreibt, die in jedem Lösungsmodell einer Formel stets den selben Wahrheitswert haben (siehe Kapitel 2.6) [MZK + 99]. Allerdings müssen nicht alle in Zeile neun gesetzten Variablen tatsächlich Backbone-Variablen sein. Dies liegt an der Anwendung der Pure Literal Elimination während des Propagierens: Treten von einer Variablen nicht (mehr) beide Literale in F auf, so kann der Wahrheitswert entsprechend gesetzt werden. Dies ist aber für die Erfüllbarkeit der Formel nicht zwingend erforderlich! Eine gerichtete Kante (x i, x j ) wird dann erzeugt, wenn beide temporären Belegungen einer Variablen x i auch eine Belegung für Variable x j implizieren (Zeilen zehn und elf). In diesem Fall ist offensichtlich, dass der Wahrheitswert der Variablen x j immer vom Wert der Variablen x i abhängt. Die Variable x i dominiert somit die Variable x j. Für die weitere Argumentation ist es wichtig, dass durch eine Kante (x i, x j ) im Propagation-Graphen eine binäre Relation zwischen den Variablen x i und x j dargestellt wird, die insbesondere transitiv ist, denn es gilt: Dominiert eine Variable x i eine andere Variable x j, die wiederum eine weitere Variable x k dominiert, so dominiert x i auch x k. Man sollte beachten, dass der so erzeugte Propagation-Graph nach einem Durchlauf der Funktion createpropagationgraph nicht eindeutig ist. Der Graph - beziehungsweise dessen Kantenmenge - ist von der Ordnung abhängig, in der die Variablen betrachtet werden. Die Ursache hierfür ist, dass sich durch das temporäre Propagieren auch endgültige Variablen-

33 3.2. EINE VORVERARBEITUNG FÜR INDUSTRIELLE INSTANZEN 29 belegungen ergeben können, wie dies in Zeile sieben und neun von Algorithmus 2 der Fall ist. An diesen Stellen wird die Formel F tatsächlich verändert. Entstehen dadurch z. B. neue Binärklauseln, so könnten diese für die temporären Belegungen der bisher betrachteten Variablen weitere Konsequenzen verursachen. Prinzipiell ist es natürlich möglich, die Schleife in Algorithmus 2 so lange auszuführen, bis keine endgültigen Zuweisungen mehr möglich sind. In unseren Testfällen konnte jedoch schon durch das zweimalige Aufrufen der Funktion createpropagationgraph nur noch eine minimale Verbesserung im Vergleich zur einmaligen Durchführung der Funktion erzielt werden. Da diese Vorverarbeitung, wie oben erwähnt, eher als eine Möglichkeit zur Optimierung der Variablenordnung zu sehen ist, kann eine minimale Verbesserung die erhöhte Laufzeit wahrscheinlich nicht rechtfertigen. Die hier angewandte Idee der temporären Zuweisung beider Wahrheitswerte für eine Variable ist nicht unbekannt und bildet einen der grundlegenden Bestandteile des Satz-Solvers [LA97]. Dort wird auf diese Weise das Branching-Verhalten und somit die Variablenordnung des Solvers beeinflusst Einschränkung möglicher DPLL-Backdoor-Variablen Anhand des erzeugten Propagation-Graphen und den dadurch beschriebenen Abhängigkeiten der Variablenbelegungen, lassen sich nun bestimmte Variablen bestimmen, die als Backdoor-Variablen ungeeignet sind und somit vernachlässigt werden können. Der grundlegende Gedanke ist dabei, einige derjenigen Variablen auszuschließen, die von anderen Variablen dominiert werden. In Algorithmus 3 wird die gesamte Vorverarbeitungsroutine vorgestellt. Algorithmus 3 Eliminieren von Nicht-Backdoor-Variablen Eingabe: Eine boolsche Formel F mit Variablen V Ausgabe: Ein Backdoor B V von F 1: function eliminatenobackdoorvariables(f ) 2: Führe Unit Propagation und Pure Literal Elimination durch 3: G = (V G, E G ) createpropagationgraph(f ) 4: SCCs computestronglyconnectedcomponents(g) 5: for all S SCCs : S 2 do 6: s 0 beliebiges Element aus S 7: for all s {S \ {s 0 }} do 8: E G E G \ (s, v) (s 0, v) (s, v) E G 9: E G E G \ (v, s) (v, s 0 ) (v, s) E G 10: end for 11: V G V G \ {S \ {s 0 }} 12: end for 13: return {x i V : k i V G hat keine eingehenden Kanten} 14: end function

34 3.2. EINE VORVERARBEITUNG FÜR INDUSTRIELLE INSTANZEN 30 Nach der Durchführung der Boolean Constraint Propagation und dem anschließenden Erzeugen des Propagation-Graphen G werden in Zeile vier die starken Zusammenhangskomponenten von G mit Hilfe des Algorithmus von Tarjan [OW02, Kap. 8] berechnet. Eine starke Zusammenhangskomponente Z V G ist so definiert, dass es innerhalb dieser Komponente von jedem Knoten s Z einen Pfad zu jedem anderen Knoten t Z gibt (Kapitel 2.2). Angewandt auf den Propagation-Graphen bedeutet dies, dass jede Variable die Belegungen aller anderen Variablen der selben starken Zusammenhangskomponente beeinflusst. Da das Dominieren von Variablen eine transitive Beziehung darstellt, können außerdem folgende Regeln festgehalten werden: Dominiert eine beliebige Variable x i eine andere Variable x j, so dominiert x i auch alle Variablen, die sich in der gleichen SCC wie x j befinden. Dominiert eine beliebige Variable x i einer SCC S eine beliebige andere Variable x j, so wird x j auch von allen anderen Variablen aus S dominiert. Damit kann im Graphen aus jeder starken Zusammenhangskomponente S je ein Knoten s 0 als repräsentierende Variable gewählt werden, der alle eingehenden und ausgehenden Kanten der anderen Knoten in S \ {s 0 } übernimmt. Da beide Belegungen (false, true) der repräsentierenden Variablen eine Belegung aller Variablen in der selben SCC implizieren, können alle Knoten {S \ {s 0 }} gelöscht werden. Diese Idee ist in Algorithmus 3 in den Zeilen sechs bis elf realisiert. Durch die beschriebene Prozedur entsteht ein sogenannter Blockgraph G. Dieser ist insbesondere azyklisch, da jeder Zykel eine starke Zusammenhangskomponente in G bildet, die im verbleibenden Graphen G nur noch durch einen einzigen Knoten repräsentiert wird. Da in G keine Zykel existieren, ist jeder Knoten k i mit Eingangsgrad größer als null von mindestens einem Knoten k j mit Eingangsgrad null aus erreichbar. Durch diese topologische Sortierung wird jede Variable, deren Knoten einen Eingangsgrad größer null hat, von mindestens einer anderen Variablen dominiert, deren Knoten keine eingehenden Kanten hat. Für das Backdoor brauchen also nur solche Variablen in Betracht gezogen werden, deren Knoten in G keine eingehenden Kanten haben. In Zeile dreizehn des Algorithmus werden gerade diese Variablen zurückgegeben. Die Größe der zurückgegebenen Variablenmenge stellt eine obere Schranke für ein minimales DPLL-Backdoor dar. Da das Erzeugen des Propagation-Graphen für jede Variable das Propagieren beider Wahrheitswerte erfordert, was jeweils in der Zeit O( F ) möglich ist (Kapitel 2.3.1), lässt sich die Laufzeit von Algorithmus 2 durch O( V F ) beschränken. In Algorithmus 3 können die starken Zusammenhangskomponenten mit Hilfe von Tarjan s Algorithmus in der Zeit O( V G + E G ) bestimmt werden. Die gleiche obere Laufzeitschranke gilt auch für die Durchführung der Schleife von Zeile fünf bis zwölf in Algorithmus 3, da jeder Knoten und jede Kante insgesamt einmal betrachtet werden. Somit liegen beide Berechnungen in O( V 2 ) O( V F ), wodurch der gesamte Vorverarbeitungsprozess die Komplexität O( V F ) erfordert.

35 3.2. EINE VORVERARBEITUNG FÜR INDUSTRIELLE INSTANZEN 31 Kls. mit Größe < 3 Vars. nach Vorprozess Instanz sat? Vars. Kls. # % # % C169 FV C171 FR C202 FS C203 FCL C638 FKB C638 FVK D1119 M C168 FW UT C208 FC UT C220 FV UC C220 FV UT C220 FV UT C168 FW SZ C170 FR SZ C202 FW SZ C202 FW SZ barrel hanoi hole longmult ssa Tabelle 3.2: Ergebnisse der Prozedur eliminatenobackdoorvariables für Instanzen aus der Automobilindustrie [Sin03] und DIMACS-Benchmarks [Ben]. In Tabelle 3.2 werden einige Beispiele für die Anwendung des beschriebenen Vorverarbeitungsprozesses zum Eliminieren von Nicht-Backdoor-Variablen gegeben. Die ersten vier Spalten nennen den Namen, die Erfüllbarkeit und die Anzahl von Variablen und Klauseln einer Instanz. Die Spalten fünf und sechs zeigen die Anzahl der Klauseln mit weniger als drei Literalen, als Absolutwert und prozentual zur Menge aller Klauseln. Spalte sieben gibt an, wie viele Variablen nach der Durchführung der Vorverarbeitungsroutine noch als Backdoor-Variablen in Frage kommen und die letzte Spalte stellt das Verhältnis zur gesamten Variablenanzahl prozentual dar. Die Ergebnisse zeigen, dass sich durch den beschriebenen Vorverarbeitungsprozess für einige industrielle Instanzen schon kleine Backdoor-Mengen ermitteln lassen. In vielen Fällen kann die Anzahl der zu betrachtenden Variablen um 10% - 20% reduziert werden. Für andere Instanzen kann es jedoch durchaus sein, dass das Verfahren keine oder nur sehr wenige Variablen als unwichtig bestimmen kann, selbst wenn eine Instanz über mehrere Klauseln mit weniger als drei Literalen verfügt.

36 3.3. DELETION BACKDOORS Deletion Backdoors Bei der bisherigen Berechnung von Backdoors bestand das Ziel stets darin, solche Backdoors zu finden, die für einen DPLL-Subsolver minimal sind. Wie bereits in Kapitel 3.1 erwähnt, ist das Auffinden solcher minimalen Backdoors NP-hart. Ebenfalls ist es nicht möglich (solange P NP ) effizient zu bestimmen, ob für eine gegebene Sat-Instanz ein DPLL- Backdoor kleiner oder gleich einer bestimmten maximalen Schranke k existiert [Sze05]. Nishimura, Radge und Szeider [NRS06] führen daher den Begriff der Deletion C-Backdoors ein, die eine Variante der starken C-Backdoors darstellen: Definition B ist ein Deletion C-Backdoor genau dann, wenn die Formel F B eine Instanz der Klasse C ist. Dabei bezeichnet F B die Formel, die durch das Entfernen aller Literale x, x mit x B aus den Klauseln von F entsteht. Ist die Basisklasse C klauselinduziert (es gilt: F C F C F F ), so ist jedes Deletion C-Backdoor auch ein starkes C-Backdoor [NRS06, Sze07b]. Im Folgenden werden zwei Arten von Deletion Backdoors vorgestellt, die durch einfache parametrisierte Algorithmen berechnet werden können. Die Idee der Parametrisierung von Algorithmen wurde in Kapitel 2.7 erläutert und anhand des Vertex-Cover Problems und des Hitting-Set Problems geschildert. In Kapitel werden wir auch noch einmal auf diese Art von Algorithmen zurückgreifen und weitere Beispiele für die Anwendung solcher Verfahren präsentieren Parametrisierte Berechnung von Horn- & Binär-Backdoors Schon 2004 zeigten Nishimura et al. [NRS04] die parametrisierte Berechenbarkeit von Hornund Binär-Backdoors und gaben damit die ersten Beispiele für die Berechnung von Deletion Backdoors. Wie in Kapitel 2.5 erläutert, können Horn- und Binär-Instanzen in Linearzeit gelöst werden und stellen somit gültige Basisklassen gemäß der Definition von starken Backdoors dar (vgl. Kapitel 2.6). Der parametrisierte Algorithmus zur Berechnung von starken Horn-Backdoor-Mengen wird in Algorithmus 4 aufgezeigt. Der beschriebene Algorithmus basiert auf der einfachen Tatsache, dass in jeder Hornklausel nach Definition maximal ein positives Literal vorkommen darf. Betrachtet man nun eine Nicht-Hornklausel C F mit zwei positiven Literalen p 1, p 2, so muss mindestens eine der beiden zugehörigen Variablen im Horn-Backdoor B enthalten sein. Hier wird der Vorteil einer klauselinduzierten Basisklasse (wie Horn und Binär) gegenüber den bisher betrachteten DPLL-Backdoors deutlich: Für jede Klausel kann einfach entschieden werden, ob diese die Eigenschaften der Basisklasse erfüllt. Angenommen, keine der beiden Variablen wäre in B. Dann kann man für die Variablen x B eine solche Belegung τ angeben, dass C nicht erfüllt ist, indem die Werte derjenigen Backdoor-Variablen, die ein Literal in C haben, gerade auf die jeweils andere Polarität gesetzt werden. Die anderen Backdoor-Variablen können beliebig gewählt werden. Die Formel

37 3.3. DELETION BACKDOORS 33 Algorithmus 4 Parametrisierte Berechnung von Horn-Backdoors [NRS04] Eingabe: Eine boolsche Formel F und eine nicht-negative Ganzzahl k Ausgabe: Falls vorhanden, ein starkes Horn-Backdoor B von F wobei B k, sonst no 1: function sb-horn(f,k) 2: if F Horn then return 3: if k = 0 then return no 4: Wähle Nicht-Hornklausel C F und zwei positive Literale p 1, p 2 C 5: B 1 sb-horn(f p 1, k 1) 6: if B 1 no then return B 1 p 1 7: B 2 sb-horn(f p 2, k 1) 8: if B 2 no then return B 2 p 2 9: return no 10: end function F [τ], die durch diese Belegung τ der Backdoor-Variablen verbleibt, enthält nun die Klausel C := C \ {l i, l i : x i B}. Da p 1 und p 2 in C enthalten sind, ist C keine Hornklausel, wodurch die verbleibende Instanz F [τ] / Horn ist, was der Definition eines starken Horn- Backdoors widerspricht. Betrachtet man den Entscheidungsbaum des Algorithmus, so lässt sich leicht verifizieren, dass die maximale Tiefe des Baumes k nicht übersteigt. Aufgrund der Tatsache, dass es sich um einen Binärbaum handelt, hat der Baum maximal 2 k Knoten. Da man ferner jeweils in Linearzeit ermitteln kann, ob eine Nicht-Hornklausel existiert, gilt das folgende Theorem: Theorem [NRS04] Es ist möglich, in der Laufzeit O(2 k F ) ein starkes Horn- Backdoor der Größe k für eine Formel der Länge F zu berechnen oder aber zu schließen, dass kein solches existiert. Damit liegen starke Horn-Backdoors in FPT 1. An dieser Stelle sollte man beachten, dass in dem skizzierten Beweis davon ausgegangen wird, dass die Konsequenzen für eine Belegung τ der Backdoor-Variablen für die verbleibende Formel F [τ] nicht propagiert werden, bevor die Bedingung F [τ] Horn? überprüft wurde. Betrachten wir dazu das folgende einfache Beispiel: F = (x 1 x 2 ) (x 1 x 2 x 3 x 4 ) (x 1 x 2 x 5 x 6 ) (x 7 x 8 )... Nach dem in Algorithmus 4 beschriebenen Verfahren muss in einem starken Horn- Backdoor B mindestens eine der Variablen x 3 oder x 4 und eine der Variablen x 5 oder x 6 liegen. Wählt man nun B mit x 1 B und x 3, x 4, x 5, x 6 / B und erlaubt die Anwendung der Boolean Constraint Propagation für eine Belegung τ der Variablen im Backdoor B bevor F [τ] an einen Horn-Subsolver gereicht wird, so gilt: 1 Auf die genaue Definition der parametrisierten Komplexitätsklassen F P T W [1]... W [P ] XP wird hier verzichtet. Definitionen siehe u.a. [Sze05].

38 3.3. DELETION BACKDOORS 34 τ [x1 false]: es verbleibt (x 7 x 8 )... τ [x1 true]: aufgrund der Klausel (x 1 x 2 ) verbleibt nach der Unit Propagation x 1 x 2 ebenfalls nur (x 7 x 8 )... Die vom Subsolver zu lösende Instanz ist (bzgl. der betrachteten Klauseln) ebenfalls eine Horn-Instanz, wobei nun durch die Boolean Constraint Propagation ein echt kleineres Horn-Backdoor möglich ist. Dies bedeutet, dass durch die Berücksichtigung der Boolean Constraint Propagation bei der Berechnung von Horn- und Binär-Backdoors eventuell kleinere Backdoor-Mengen gefunden werden könnten, jedoch würde das Berechnungsverfahren dadurch wesentlich komplexer werden. Nach analogem Schema zu Algorithmus 4 lässt sich ermitteln, ob für eine gegebene Formel ein starkes Binär-Backdoor der Größe k existiert [NRS04]. Im Unterschied zu Algorithmus 4 wird in jedem Schritt eine Klausel ausgewählt, die aus mehr als zwei Literalen besteht. Betrachtet man nun drei beliebige Literale einer solchen Klausel, so ist klar, dass mindestens eine der zugehörigen Variablen im Binär-Backdoor liegen muss. Der Entscheidungsbaum hat damit allerdings auf jeder Stufe drei Verzweigungen, weshalb die Komplexität dieses FPT-Algorithmus O(3 k F ) beträgt. Bei genauerer Betrachtung der Berechnung von Horn-Backdoor-Mengen kann man erkennen, dass es sich dabei um ein Vertex-Cover Problem handelt. Gleichfalls lässt sich die Berechnung von Binär-Backdoors als Hitting-Set Problem formulieren [Sze07a]. Für beide Probleme existieren bessere FPT-Algorithmen als die hier beschriebenen Methoden. Diese Tatsache wird sowohl im nächsten Unterkapitel als auch in Kapitel erneut aufgegriffen und näher erläutert Approximieren von Horn- & Binär-Backdoors Aus der Schlussbemerkung des vorigen Absatzes folgt insbesondere, dass beide Backdoor- Berechnungen gut approximiert werden können. Dennoch sind uns keine Publikationen bekannt, die das Approximieren von Binär- oder Horn-Backdoors weder explizit beschreiben noch empirisch analysieren. In diesem Unterkapitel werden daher verschiedene Möglichkeiten der Approximation solcher Backdoors vorgeschlagen und untersucht. Für das Vertex-Cover Problem existieren mehrere Approximationsalgorithmen mit einer Approximationsgüte kleiner als zwei. Eine konstante 2-Approximation kann einfach dadurch erreicht werden, dass von einer beliebigen, noch nicht erfassten Kante e beide Eckpunkte in das Cover mit aufgenommen werden. Dies wird so lange wiederholt, bis alle Kanten mindestens einen Endpunkt im Cover haben. Da aus allen betrachteten Kanten nach Definition mindestens ein Endknoten auch im optimalen Cover sein muss, der Algorithmus aber immer beide nimmt, werden höchstens doppelt so viele Knoten wie im optimalen Fall ins Cover aufgenommen.

39 3.3. DELETION BACKDOORS 35 Die Greedy-Variante für Vertex-Cover wählt denjenigen Knoten mit den meisten nichterreichten, inzidenten Kanten für das Cover. Obwohl dieses Verfahren theoretisch eine schlechtere Approximationsgüte liefert, so schneidet es in der Praxis meist besser ab. Der Greedy-Algorithmus für das Hitting-Set Problem wählt immer gerade dasjenige Element für die Erzeugung des Hitting-Sets aus, welches in den meisten noch unberührten Mengen vorhanden ist. Für eine Problemstellung mit insgesamt m Teilmengen liefert das Standard Greedy-Verfahren eine Approximationsgüte von ln m [CR98] 2. Analog zum Vertex-Cover Problem kann für ein d-hitting-set Problem auch eine Approximation der Güte d erzeugt werden, indem für jede noch nicht erreichte Menge alle d Elemente für das Cover ausgewählt werden [BY00]. Im Folgenden betrachten wir exemplarisch die Approximation von Binär-Backdoors. Analog können die vorgestellten Verfahren auch für die Approximation von Horn-Backdoors angewandt werden. Approximation als 3-Hitting-Set Problem Wie auch bei der parametrisierten Berechnung von Binär-Backdoors werden Klauseln mit mehr als zwei Literalen betrachtet. Sei C eine Klausel mit d 3 Literalen. Bildet man alle möglichen drei-elementigen Untermengen der d zugehörigen Variablen, so muss aus jeder dieser ( d 3) Mengen mindestens eine Variable im Binär-Backdoor enthalten sein. Trifft dies für alle Klauseln zu, so ist die verbleibende Instanz 2-Sat. Das Erzeugen aller Variablenmengen beansprucht somit eine Laufzeit von C (d max ) 3, wobei d max die maximale Klauselgröße in C bezeichnet. Im allgemeinen Fall liegen die Laufzeitkosten also in O( C V 3 ). Anschließend kann eine beliebige d-hitting-set Näherung durchgeführt werden: Da es sich um drei-elementige Variablenmengen handelt, kann eine 3-Approximation erzielt werden, indem - wie oben beschrieben - immer alle drei Variablen einer noch nicht erreichten Menge für das Backdoor gewählt werden. Die Anzahl aller möglichen drei-elementigen Teilmengen beträgt ( ) V 3 und kann somit durch V 3 beschränkt werden. Damit liefert das Greedy-Verfahren hier eine Approximationsgüte von ln V 3 O(log V ). Unabhängig davon, wie effizient sich das jeweilige Näherungsverfahren zur Bestimmung eines Hitting-Sets implementieren lässt, nimmt die Erzeugung der Variablenmengen einen erheblichen Teil der gesamten Laufzeit in Anspruch. 2 Cheriyan und Ravi berechnen die Approximationsgüte für das Set-Cover Problem. Analog kann die Näherungsqualität von ln m für das Hitting-Set Problem mit m Teilmengen gezeigt werden.

40 3.3. DELETION BACKDOORS 36 3-Hitting-Set ohne Subsets In Algorithmus 5 schlagen wir eine weitere Greedy-Approximation für die Bestimmung von Binär-Backdoors vor, welche auf die tatsächliche Bildung der Variablenmengen verzichtet. Die Idee dabei ist, dass für die Greedy-Wahl einer Variablen hauptsächlich von Belang ist, in wie vielen Untermengen sie vorkommt: Die Variable eines Literals l einer Klausel C kommt (durch diese) in genau ( ) C 1 2 = 1( C 1)( C 2) drei-elementigen Untermengen vor, da sie mit allen möglichen zweielementigen Untermengen der C 1 anderen Variablen kombiniert werden kann. In Zeile 2 fünf wird das Array A[ ], das für jede Variable die Häufigkeit ihres Vorkommens in dreielementigen Mengen speichert, entsprechend initialisiert. In den Zeilen acht und neun wird gierig diejenige Variable x i mit dem häufigsten Vorkommen für das Backdoor gewählt. In der Schleife von Zeile zehn bis dreizehn werden die Werte des Arrays A[ ] für die vom Löschen von x i betroffenen Variablen angepasst: Sei l j ein Literal in einer Klausel C, in der ein Literal l i der Variablen x i gelöscht wurde. Für die Variablen x i und x j wurden durch Klausel C jeweils C 2 drei-elementige Mengen angerechnet, in denen sie gemeinsam enthalten waren. In Zeile zwölf werden daher die entsprechenden Werte A[j] um C 1 reduziert ( C ist durch Entfernen von l i in der elften Zeile schon um eins vermindert). Algorithmus 5 Approximation von Binär-Backdoors Eingabe: Eine boolsche Formel F mit Variablen V, Klauseln C Ausgabe: Ein starkes Binär-Backdoor B von F 1: function approxbinbackdoor(f ) 2: A[ ] null-initialisiertes Array der Größe V 3: B 4: for all C C : C > 2 do 5: A[i] A[i] + 1( C 1)( C 2) l 2 i C 6: end for 7: while C C : C > 2 do 8: Wähle x i V \ B : A[i] A[j] 1 j V, j i 9: B B {x i } 10: for all C C : C > 2 (x i C x i C) do 11: C C \ {x i, x i } Das entsprechende Literal wird aus C entfernt 12: A[j] A[j] ( C 1) l j C 13: end for 14: end while 15: return B 16: end function

41 3.3. DELETION BACKDOORS 37 Approximationsgüte Durch den Verzicht auf die explizite Bildung aller drei-elementigen Submengen kann es nun allerdings sein, dass manche Mengen in A[ ] mehrfach gezählt werden. Da jede Klausel eine bestimmte Submenge höchstens einfach anrechnet, werden insgesamt maximal C S Untermengen gezählt, wobei S die Menge der tatsächlich verschiedenen Variablenmengen bezeichnet. S ist somit kleiner als die Menge aller möglichen drei-elementigen Variablenmengen und lässt sich wie oben erläutert durch V 3 beschränken. Die Approximationsgüte von Algorithmus 5 beträgt damit ln( C V 3 ) = ln C +3 ln V O(log V + log C ). Benötigte Laufzeit Findet der Algorithmus 5 für eine boolsche Formel F ein Binär- Backdoor B der Größe k, so beträgt die Laufzeit maximal O(k F ). Die Schleife zur Initialisierung von A[ ] in den Zeilen drei bis fünf betrachtet jedes Literal jeder Klausel genau einmal, was insgesamt F Operationen entspricht. Die äußere Schleife in Zeile sieben wird gerade k Mal ausgeführt, da in jedem Durchlauf genau eine Variable für das Backdoor ermittelt wird. Die Greedy-Wahl der Variablen mit dem häufigsten Vorkommen (Zeile acht) kann in V F Schritten getroffen werden. Die innere Schleife von Zeile zehn bis dreizehn betrachtet jedes Literal jeder Klausel maximal einmal, was somit F Schritte benötigt. Eine naive Methode In einem einfachen Näherungsverfahren werden die bisher betrachteten drei-elementigen Variablenmengen komplett außer Acht gelassen: In Algorithmus 6 wird immer diejenige Variable für das Backdoor gewählt, die in den meisten Klauseln mit mehr als zwei Literalen vertreten ist, bis schließlich keine solche Klauseln mehr existieren. Dadurch werden insbesondere die Längen der Klauseln, in denen eine Variable vorkommt, für die Greedy-Wahl nicht beachtet. Eine ähnliche Idee wird von Paris et al. für einen Teil der Approximation von R-Horn-Backdoors angewandt [POSS06], worauf im nächsten Kapitel 3.4 genauer eingegangen wird. Für die Approximation eines Binär-Backdoors verwenden wir in Algorithmus 6 einen sogenannten Fibonacci-Heap H[ ] für die Implementierung einer Prioritäts-Warteschlange. Diese Datenstruktur hat die Eigenschaft, dass das Einfügen eines Elements, der Zugriff auf das maximale 3 Element und das Verringern eines gespeicherten Wertes konstante amortisierte Laufzeit benötigen. Enthält ein Heap N Elemente, so können Löschoperationen in amortisierter Zeit O(log N) durchgeführt werden [OW02, Kap. 6.1]. Für den Heap H[ ] gilt die Invariante, dass für jede Variable gespeichert ist, wie oft diese in Klauseln mit mehr als zwei Literalen vorkommt. In der Schleife von Zeile drei bis fünf wird H[ ] entsprechend initialisiert. Dies ist in der Laufzeit O( F ) durchführbar, da jedes Literal jeder Klausel genau einmal betrachtet werden muss und die Initialisierung von H[ ] in O( V ) O( F ) möglich ist. 3 Meist sind Heap-Datenstrukturen so aufgebaut, dass der Zugriff auf das minimale Element möglich ist. Für den Zugriff auf das maximale Element, können alle Vergleichsoperationen gerade umgekehrt werden.

42 3.3. DELETION BACKDOORS 38 Algorithmus 6 Naive Approximation von Binär-Backdoors Eingabe: Eine boolsche Formel F mit Variablen V, Klauseln C Ausgabe: Ein starkes Binär-Backdoor B von F 1: function naivapproxbinbackdoor(f ) 2: B 3: for all x i V do 4: H[i] {C C : C > 2 (x i C x i C)} 5: end for 6: while C C : C > 2 do 7: Entferne x i aus H[ ], wobei H[i] H[j] 1 j V 8: B B {x i } 9: for all C C : C > 2 (x i C x i C) do 10: C C \ {x i, x i } Das entsprechende Literal wird aus C entfernt 11: if C = 2 then 12: H[j] H[j] 1 für beide Literale l j C 13: end if 14: end for 15: end while 16: return B 17: end function Die äußere Schleife in Zeile sechs wird so lange durchgeführt, bis F nur noch aus Binärklauseln besteht. In den Zeilen sieben und acht wird die Variable x i mit dem größten Vorkommen in Klauseln der Größe 3 gewählt, aus H[ ] entfernt und in das Backdoor B eingefügt. Da B bei jedem Schleifendurchlauf um genau eine Variable erweitert wird, gibt es insgesamt B V Schleifendurchläufe. Die summierte Zeit der Berechnungen der für das Backdoor zu wählenden Variablen ist daher durch O( B log V ) beschränkt. Die innere Schleife von Zeile neun bis vierzehn dient dazu, die oben beschriebene Invariante für H[ ] aufrecht zu erhalten. Durch die Wahl einer Variablen x i für das Backdoor, können die entsprechenden Literale aus den jeweiligen Klauseln gestrichen werden. Da jedes Literal einer Klausel maximal einmal gestrichen wird, ist die Summe der Operationen in Zeile zehn durch O(F ) beschränkt. Der Heap muss genau dann angepasst werden, wenn durch das Streichen eines Literals eine Binärklausel C entsteht (Zeilen elf bis dreizehn). Da C im weiteren Verlauf der Approximation nicht mehr beachtet wird, muss H[ ] für jede Klausel in C höchstens zwei Mal angepasst werden. Dadurch benötigt die Aufrechterhaltung der Invarianten von H[ ] insgesamt die Laufzeit O( C log V ). Für Algorithmus 6 ergibt sich damit die Laufzeitschranke O( F + C log V + B log V ). Da die meisten industriellen Sat-Instanzen sehr wahrscheinlich mehr Klauseln als Variablen enthalten, ist insbesondere B C und dadurch O( B log V ) O( C log V ). In den untersuchten Sat-Instanzen gilt ebenfalls stets F C log V, weshalb die Laufzeit der beschriebenen, naiven Approximationsmethode im Folgenden als O( C log V ) angegeben wird.

43 3.4. APPROXIMATION VON STARKEN R-HORN-BACKDOORS 39 In Kapitel 3.5 werden Ergebnisse für die Berechnung von Horn- und Binär-Backdoors für industrielle Instanzen dargestellt und verglichen. Dabei wurden beide Backdoor-Typen mit allen in diesem Kapitel vorgestellten Approximations-Methoden ermittelt. 3.4 Approximation von starken R-Horn-Backdoors Ein Grund für das große Interesse am Konzept der Backdoors von Sat-Instanzen liegt darin, dass gerade bei praktischen Instanzen kleine Backdoor-Mengen vermutet werden, was auch schon mehrfach empirisch bestätigt wurde [WGS03a, RKH04]. Für die praktische Verwendung von Backdoors beim Sat-Solving ist es wichtig, kleine Backdoors möglichst effizient berechnen zu können. In diesem Kapitel wird ein Algorithmus vorgestellt, der starke Renamable Horn Backdoors in Polynomzeit approximiert und im Rahmen dieser Arbeit entwickelt wurde. Eine boolsche Formel F wird als Renamable Horn bezeichnet, wenn durch das Flippen aller Literale einer Variablenmenge V V eine Horn-Instanz erzeugt werden kann (siehe Kapitel 2.5). Aus der Definition ergibt sich, dass für eine Formel mit minimalem Horn- Backdoor B H und minimalem R-Horn-Backdoor B R gilt: B R B H. Ein Ansatz, um starke R-Horn-Backdoors für eine Formel F zu approximieren, besteht darin, das Problem auf ein bekanntes Problem zurückzuführen. Ein denkbares Verfahren kann dann folgendermaßen gegliedert sein: 1. Bestimme ein Renaming für F, so dass möglichst viele Hornklauseln gebildet werden und damit möglichst wenige Nicht-Hornklauseln in F verbleiben. 2. Betrachte nun die Menge der Nicht-Hornklauseln NHK und berechne dafür ein starkes Horn-Backdoor, also eine Menge B V, so dass durch das Entfernen der Variablen B aus der Subformel NHK eine Horn-Instanz entsteht. Die Durchführung beider Schritte dieses Verfahrens ist allerdings wiederum NP-hart [Bor99, NRS04]. Paris et al. verwenden genau diese Idee und approximieren mit Hilfe eines randomisierten Algorithmus beide Teilprobleme [POSS06]. Dabei verwenden sie für die erste Problemstellung, die auch als MRH (Maximum Renamable Horn 4 ) bezeichnet wird, einen leicht veränderten WalkSat -Algorithmus [SKC93], der wiederum auf der Idee des Random Walk basiert (siehe Kapitel 2.4). Die zweite Problemstellung lösen sie, indem stets diejenige Variable in das Backdoor aufgenommen wird, die am häufigsten in positiver Polarität in Nicht-Hornklauseln vorkommt. Diese Methode ist analog zu der naiven Approximation von Binär-Backdoors, die am Ende des Kapitels beschrieben ist. Eine gute Alternative für die Berechnung der Maximum-Renamable-Horn-Subformel ist auch der Algorithmus von Boros mit einer Approximationsgüte, die nur von der Länge der größten Klausel abhängt [Bor99]. 4 Es ist wichtig an dieser Stelle zu sehen, dass es bei der Berechnung von R-Horn-Backdoors um Variablen und bei der Berechnung von MRH um Klauseln geht.

44 3.4. APPROXIMATION VON STARKEN R-HORN-BACKDOORS 40 Bei dem beschriebenen Verfahren besteht das erste Ziel darin, durch Renaming eine möglichst kleine Menge an Nicht-Hornklauseln zu finden und erst im Anschluss zu versuchen, die Menge der Variablen zu minimieren, die aus der Formel entfernt werden müssen, um NHK zu einer Horn-Instanz zu machen. Naheliegender erscheint es, das Augenmerk nur auf die Minimierung der Backdoor-Variablen zu richten. Zur Einführung unseres alternativen Approximationsverfahrens für R-Horn-Backdoors betrachten wir zunächst die Definition von q-horn Formeln Genauere Betrachtung der q-horn Definition Mit dem von Boros, Crama und Hammer eingeführten Konzept der q-horn Formeln wurde 1990 eine Generalisierung der Klassen 2-Sat 5 und Horn-Sat geschaffen [BCH90]. Definition Für eine Klausel C k F sei P k C k die Menge der positiven Literale und N k C k die Menge der negativen Literale. Eine Formel F, für die es eine Gewichtsfunktion w : V {0, 1 2, 1} gibt, die jeder Variablen x i V (und den zugehörigen Literalen) ein Gewicht α i {0, 1 2, 1} zuordnet, gehört zur Klasse q-horn6, falls gilt: p P k w(p) + n N k (1 w(n)) 1 1 k C (3.1) Es lässt sich leicht verifizieren, dass diese Definition sowohl Horn- als auch 2-Sat-Formeln beinhaltet: Setzt man α i := 1 1 i V, so erhält man genau die Klasse der Horn- Formeln. Wählt man α i := 1 1 i V, so wird dadurch die Klasse der 2-Sat-Formeln 2 beschrieben. Boros et al. haben ebenfalls bewiesen, dass jede Formel F q-horn in Polynomzeit gelöst werden kann [BCH90]. In unserem Kontext ist vor allem wichtig, dass durch die Einschränkung der Gewichtsfunktion w auf die Bildmenge {0, 1} gerade die Klasse Renamable Horn definiert wird [BCH90]. Dies kann man sich wie folgt vorstellen: Für Variablen x i einer Formel F, deren Literale geflippt werden müssen, damit F Horn ist, gilt α i := 0. Für alle anderen Variablen x j ist α j := 1. Die Suche nach einem kleinen starken R-Horn-Backdoor B lässt sich nun auch folgendermaßen formulieren: Sei R V die Menge der Variablen x i, für die α i = 0, und H V die Menge der Variablen x j, für die α j = 1 gilt. Gesucht ist eine möglichst kleine Menge an Variablen für das Backdoor B, so dass die restlichen Variablen V \ B den (disjunkten) Mengen R und H zugewiesen werden können. Da für jede Variable eine Zuteilung in eine der drei Mengen H, R oder B denkbar ist, gibt es insgesamt 3 n mögliche Kombinationen. Im nächsten Abschnitt betrachten wir dieses Problem als Graphenproblem. 5 Formeln, in denen jede Klausel maximal zwei Literale hat, werden auch als quadratisch bezeichnet. Daher stammt das q in q-horn. 6 Es gibt für q-horn mehrere gleichwertige Definitionen (bzw. Formulierungen). Siehe z.b. [vm99, Sin06]

45 3.4. APPROXIMATION VON STARKEN R-HORN-BACKDOORS Generieren eines R-Horn-Abhängigkeitsgraphen Das von uns entwickelte Approximationsverfahren von starken R-Horn-Backdoors basiert auf einem gerichteten Graphen, der Abhängigkeiten der Form liegt Variable x in Menge H, so muss Variable y in R liegen repräsentiert. Im Folgenden werden wir diesen Graphen daher als R-Horn-Abhängigkeitsgraphen bezeichnen. Dem Graphen liegt die Idee zugrunde, dass sich für ein beliebiges positives Literal l einer Klausel C die folgende Bedingung formulieren lässt: Falls die Variable von l in H eingeordnet wird, so darf keine Variable eines anderen positiven Literals aus C ebenfalls in H liegen. Außerdem darf dann auch keine Variable eines negativen Literals aus C in R liegen. Dies folgt direkt aus der Definition von Renamable Horn, wie sie oben gegeben wurde (3.1) und aus der Definition der Mengen H und R. Für eine Klausel C, die ein positives Literal l enthält, dessen Variable in H liegt, wird der Wert der Summe in Gleichung 3.1 durch l schon auf 1 gesetzt. Dadurch ist es nicht erlaubt, dass andere Literale der Klausel C einen weiteren Summanden größer null erzeugen. Analog kann man für jedes negative Literal aus C Folgerungen treffen, falls dessen Variable in R liegt. Genau diese Implikationen werden im R-Horn-Abhängigkeitsgraphen festgehalten. Dieser kann durch eine Prozedur - wie in Algorithmus 7 beschrieben - erzeugt werden. Zu jeder Variablen x i gibt es einen Knoten k i0, der die Zuweisung der Variablen x i zur Menge R, und einen weiteren Knoten k i1, welcher die Zuweisung von x i zu H repräsentiert. In Zeile zwei des Algorithmus 7 wird der Graph entsprechend initialisiert. Gerichtete Kanten werden für alle oben beschriebenen Implikationen eingefügt. Dabei ist zu beachten, dass es sich um einen gerichteten Graphen mit Einfachkanten handelt. Wird eine Kante eingefügt, die im Graphen schon existiert, so verändert sich der Graph nicht. In den Schleifen der Zeilen drei bis sieben werden für jede Klausel alle möglichen Literalpaare betrachtet. Die Bezeichnung l i0 bzw. l i1 in Zeile vier beschreibt das Literal einer Variablen x i mit negativer bzw. positiver Polarität. Algorithmus 7 Erzeugen eines R-Horn-Abhängigkeitsgraphen Eingabe: Eine boolsche Formel F mit Klauseln C Ausgabe: Ein eindeutiger R-Horn-Abhängigkeitsgraph 1: function createrhorndependencygraph(f ) 2: G = (V G, E G ) jeder Variablen x i aus F werden Knoten k i0 (x i R) und k i1 (x i H) in V G zugeordnet, E G = 3: for all C C do 4: for all l iq, l jr C : l iq l jr, q, r {0, 1} do 5: E G E G (k iq, k j(r 1) ) (k jr, k i(q 1) ) bezeichnet XOR 6: end for 7: end for 8: return G 9: end function

46 3.4. APPROXIMATION VON STARKEN R-HORN-BACKDOORS 42 Angenommen bei einem Schleifendurchlauf werden in der vierten Zeile zwei negative Literale l i0 und l j0 einer Klausel C betrachtet (q = r = 0). Nun gilt: Falls Variable x i zur Menge R gehört, so muss Variable x j der Menge H zugeordnet werden. Diese Bedingung wird durch die Kante (k i0, k j1 ) festgehalten. Gehört Variable x j zur Menge R, so muss x i der Menge H zugewiesen werden, was durch die Kante (k j0, k i1 ) ausgedrückt wird. Für die Bestimmung der Komplexität des Algorithmus 7 sei d k = C k die Länge der k-ten Klausel und d max die Länge der größten Klausel einer boolschen Formel F. Das Iterieren über alle Literalpaare einer Klausel C k in der inneren Schleife (Zeilen vier bis sechs) hat eine Laufzeit von (d k ) 2 (d max ) 2. Da diese Operation für alle Klauseln durchgeführt wird, beträgt die Gesamtlaufzeit O( C (d max ) 2 ). Für Sat-Problemklassen mit beschränkter Klausel-Größe (3-Sat... k-sat) ist d max konstant und somit die Laufzeit gerade O( C ). Im allgemeinen Fall beträgt die Laufzeit allerdings min{o( C V 2 ), O( F 2 )}. Der erste Term folgt aus der Tatsache, dass d max V gilt. Den zweiten Term erhält man dabei durch die alternative Abschätzung der Laufzeit: (d k ) 2 [ (d k )] 2 = F 2 C k C C k C Lewis entwickelte schon 1978 ein Verfahren, um für eine gegebene Formel F zu entscheiden, ob diese zur Klasse R-Horn gehört [Lew78]. Die Bedingungen, dass durch das Flippen einer bestimmten Menge von Literalen in F eine Horn-Formel erzeugt werden kann, werden als 2-Sat-Instanz S formuliert, wobei bewiesen wird, dass F genau dann Renamable Horn ist, falls S erfüllbar ist. Der hier vorgestellte R-Horn-Abhängigkeitsgraph entspricht gerade dem Implikations-Graphen 7 der 2-Sat-Instanz S, der von Aspvall [APT79] zur Lösung von 2-Sat-Problemen verwendet wird 8 (vgl. Kapitel 2.5). Damit der R-Horn-Abhängigkeitsgraph nun für das Finden von R-Horn-Backdoors verwendet werden kann, werden wir im folgenden Abschnitt einige interessante Eigenschaften dieser speziellen Graphen-Klasse vorstellen und beweisen. Eigenschaften des Abhängigkeitsgraphen Lemma Existiert im R-Horn-Abhängigkeitsgraphen ein (gerichteter) Pfad von Knoten k iq zu Knoten k jr (kurz: (k iq, k jr )), so existiert auch ein Pfad von Knoten k j(r 1) zu Knoten k i(q 1) (für q, r {0, 1}). Insbesondere haben beide Pfade die gleiche Länge. 7 Dabei entspricht eine negativ vorkommende Variable x i in der von Lewis erzeugten Instanz S dem Knoten k i1, eine positiv vorkommende Variable x i dem Knoten k i0. 8 Da das Konzept q-horn erst einige Jahre nach dem Beweis von Lewis entwickelt wurde, konnte dieser in seinem Artikel noch keinen Bezug zwischen der erzeugten 2-Sat-Instanz S und den hier gezeigten Implikationen herstellen, die aus der q-horn Definition (3.1) folgen.

47 3.4. APPROXIMATION VON STARKEN R-HORN-BACKDOORS 43 Beweis Dies folgt aus der Tatsache, dass in Algorithmus 7 (Zeile fünf) Kanten immer paarweise eingefügt werden. Gibt es eine Kante (k sq, k tr ), so gibt es auch die (im gleichen Schritt eingefügte) Kante (k t(r 1), k s(q 1) ). Sei der Pfad von k iq nach k jr gegeben durch die Kantenfolge: (k iq, k aα ), (k aα, k bβ ),..., (k sσ, k tτ ), (k tτ, k jr ) Dann gibt es auch die Kantenmenge: (k j(r 1), k t(τ 1) ), (k t(τ 1), k s(σ 1) ),..., (k b(β 1), k a(α 1) ), (k a(α 1), k i(q 1) ). Also existiert ein Pfad von k j(r 1) nach k i(q 1). Nach Konstruktion folgt die Gleichheit der Längen beider Pfade. Definition Ein Knoten k iq (für q {0, 1}) des R-Horn-Abhängigkeitsgraphen heißt direkter Konfliktknoten, falls es einen Pfad von von k iq nach k i(q 1) gibt. Ein Knoten k jr (für r {0, 1}) heißt indirekter Konfliktknoten, falls es einen Pfad von k jr zu einem direkten Konfliktknoten gibt. Lemma Ist ein Knoten k iq Konfliktknoten. ein indirekter Konfliktknoten, so ist er auch ein direkter Beweis Sei k iq ein indirekter Konfliktknoten, so gibt es nach der Definition eines indirekten Konfliktknotens einen Pfad P 1 von k iq zu einem direkten Konfliktknoten k jr. Aus Lemma folgt, dass es auch einen Pfad P 2 von k j(r 1) nach k i(q 1) gibt. Ferner existiert nach Definition eines direkten Konfliktknotens ein Pfad P 3 vom Knoten k jr zum Knoten k j(r 1). Die Konkatenation der Pfade P 1 P 3 P 2 bildet gerade einen Pfad von k iq nach k i(q 1). Also ist k iq ein direkter Konfliktknoten. Korollar Gibt es im Abhängigkeitsgraphen für einen Knoten k iq (mit q {0, 1}) keinen Pfad von k iq nach k i(q 1), so ist keiner der Knoten, die von k iq erreichbar sind, ein Konfliktknoten. Dies folgt direkt aus Lemma Mit diesen Erkenntnissen lässt sich nun ein für den Approximationsalgorithmus grundlegendes Lemma formulieren: Definition Für eine Variable x i V gibt es einen Konfliktzykel, falls sowohl k i0 als auch k i1 beide Konfliktknoten sind. Damit gibt es mindestens einen Zykel, auf dem k i0 und k i1 gemeinsam enthalten sind. Lemma Eine Formel F ist Renamable Horn genau dann, wenn im zugehörigen R-Horn-Abhängigkeitsgraphen kein Knotenpaar k i0, k i1 existiert, dessen beide Elemente (direkte) Konfliktknoten sind - falls es also keine Konfliktzykel gibt. Beweis Sei F R-Horn. Angenommen, es gibt ein Knotenpaar k i0, k i1, in dem beide Knoten Konfliktknoten sind. Dann kann Variable x i nicht der Menge R zugeordnet werden (Gewicht α i kann nicht 0 sein), da k i0 Konfliktknoten ist und es durch den Pfad von k i0

48 3.4. APPROXIMATION VON STARKEN R-HORN-BACKDOORS 44 nach k i1 eine konfliktverursachende Implikationsfolge gibt, die fordert, dass x i der Menge H zugeordnet werden muss. Analog kann x i nicht der Menge H zugeordnet werden (Gewicht α i kann nicht 1 sein), da k i1 ebenfalls ein Konfliktknoten ist. Also wäre F / R-Horn. Nach Voraussetzung gibt es in jedem Paar k i0, k i1 mindestens einen Knoten k iq (für q {0, 1}), der nicht direkter Konfliktknoten ist. Nach Lemma ist k iq dann auch kein indirekter Konfliktknoten. Dadurch kann das Gewicht (siehe 3.1) α i := q gesetzt werden, ohne dass ein Konflikt induziert wird - weder für Variable x i noch für implizierte Zuweisungen. Eine spätere Zuweisung α j := r für eine Variable x j kann nicht implizieren, dass der Wert α i auf (q 1) gesetzt werden muss. Denn dann gäbe es einen Pfad P von Knoten k jr nach k i(q 1) und nach Lemma auch einen Pfad P von k iq nach k j(r 1). Die Zuweisung α i := q hätte somit durch den Pfad P schon die Belegung α j := (r 1) für Variable x j impliziert. Für jede noch freie Variable x k kann damit eine gültige Zuordnung in eine der beiden Mengen H (α k := 1) oder R (α k := 0) gefunden werden, die insbesondere vorherigen Zuordnungen nicht widerspricht. Dieser Prozess wird solange wiederholt, bis alle Variablen einer der beiden Mengen zugewiesen sind. Damit ist F R-Horn. Lemma Existiert im Abhängigkeitsgraphen G für eine Variable x i V ein Konfliktzykel z der Länge d, so gibt es für die Variablen aller Knoten, die in z enthalten sind, ebenfalls einen Konfliktzykel der Länge 2d. Beweis Sei k jq (für q {0, 1}) ein beliebiger Knoten auf dem Konfliktzykel z der Variablen x i V. Wir nehmen o.b.d.a. an, dass k jq auf der Teilstrecke von k i0 nach k i1 liegt, womit sich z folgendermaßen angeben lässt: P {}} 1 P { 2 P {}}{{}} 3 { k i0 k jq, k jq k i1, k i1 k i0. Die Länge von z sei P 1 + P 2 + P 3 =: d. Aufgrund von Lemma gibt es auch den Pfad P 1 von k j(q 1) nach k i1 der Länge P 1 = P 1 und den Pfad P 2 von k i0 nach k j(q 1) der Länge P 2 = P 2. Die Konkatenation der Pfade P 2 P 3 P 2 P 1 P 3 P 1 bildet einen Zykel z j, auf dem sowohl k j0 als auch k j1 enthalten sind. Die Länge von z j ergibt sich durch P 2 + P 3 + P 2 + P 1 + P 3 + P 1 = 2d. Damit gibt es für die Variable x j V einen Konfliktzykel der Länge 2d. Korollar Gibt es keinen Konfliktzykel einer Variablen x i V, so kann weder der Knoten k i0 noch der Knoten k i1 in einem Konfliktzykel einer anderen Variablen V enthalten sein. Dies folgt direkt durch die Kontraposition von Lemma Visualisierung von Abhängigkeitsgraphen Die bewiesenen Eigenschaften von R-Horn-Abhängigkeitsgraphen verdeutlichen interessante Aspekte dieser Graphen-Art. Ein weiterer Einblick kann durch die Visualisierung solcher Graphen gewonnen werden. In Abbildung 3.1 sind die R-Horn-Abhängigkeitsgraphen von zwei Sat-Benchmarks dargestellt. Auffallend ist, dass man die deutlich erkennbare Struktur im Graphen bei allen Sat-Instanzen der gleichen Problem-Gruppe ( pret* ) in ähnlicher

49 3.4. APPROXIMATION VON STARKEN R-HORN-BACKDOORS 45 Form wiederfindet. In Kapitel 5 wird detaillierter auf die Möglichkeiten der Visualisierung von Sat-Instanzen eingegangen. Im folgenden Abschnitt werden wir nun einen Approximationsalgorithmus vorstellen, der auf dem R-Horn-Abhängigkeitsgraphen einer Formel operiert und auf den Aussagen der hier bewiesenen Lemmata basiert. Abbildung 3.1: R-Horn-Abhängigkeitsgraphen der Sat-Instanzen pret (links) und pret60 75 (rechts) aus den DIMACS-Benchmarks [Ben] Eine Approximation auf dem Abhängigkeitsgraphen Mit Lemma kann die Aufgabe, ein möglichst minimales starkes R-Horn-Backdoor B für eine Formel F zu ermitteln, nun für den zugehörigen R-Horn-Abängigkeitsgraphen G umformuliert werden: Finde eine möglichst kleine Menge an Variablen, so dass durch das Löschen der zugehörigen Knoten in G alle Konfliktzykel beseitigt werden. Diese neue Problemformulierung erinnert sehr stark an das Feedback-Vertex-Set Problem. Bei diesem NP-vollständigen Problem besteht die Aufgabe darin, eine minimale Menge an Knoten S in einem Graphen G zu finden, so dass jeder Zykel in G mindestens einen Knoten aus S enthält. S stellt somit die kleinste Knotenmenge dar, die entfernt werden muss, um alle Zykel in G zu beseitigen. Es gibt zwei wesentliche Unterschiede zwischen dem Feedback-Vertex-Set und dem Entfernen der Konfliktzykel im R-Horn-Abhängigkeitsgraphen:

50 3.4. APPROXIMATION VON STARKEN R-HORN-BACKDOORS Die Konfliktzykel stellen nur eine Untermenge aller Zykel im Abhängigkeitsgraphen dar. In unserer Aufgabenstellung müssen also nicht alle Zykel entfernt werden. 2. Das primäre Ziel in unserem Fall ist nicht eine minimale Knotenmenge, sondern vielmehr eine minimale Variablenmenge zu ermitteln. Im Abhängigkeitsgraphen sind zwei Knoten, die die selbe Variable repräsentieren, auf einer höheren Ebene miteinander verbunden: Das Löschen des einen Knotens zieht grundsätzlich auch das Löschen des Partner-Knotens nach sich. Diese Tatsache sollte im Algorithmus nicht vernachlässigt werden. Wie unter Punkt zwei erläutert, sollte der Algorithmus anstelle von Knotenmengen solche Mengen von Variablen betrachten, deren Knoten gemeinsam in einem Zykel vorkommen. Ein möglicher Ansatz wäre, für jeden Konfliktzykel z j im Abhängigkeitsgraphen die Menge der Variablen V j = {x i V : k i0 z j k i1 z j } zu betrachten. Dadurch erhält man ein Hitting-Set Problem, das auch in Kapitel 2.7 schon vorgestellt wurde: Finde eine minimale Menge an Variablen H, so dass jede erzeugte Variablenmenge V j mindestens eine Variable aus H enthält. Für diese Fragestellung stehen sowohl effiziente parametrisierte Algorithmen [Nie02, Fer04] als auch gute Approximationsalgorithmen [CR98] zur Verfügung (vgl. Kapitel 3.3.2). In unserem Fall besteht die Problematik darin, dass die abzudeckenden Untermengen des Hitting-Set Problems nicht direkt in der Eingabe des Algorithmus gegeben sind, sondern erst intern berechnet werden. Da es exponentiell viele verschiedene Untermengen aus n Variablen geben kann, ist sowohl die Berechnung als auch die Speicherung dieser Variablenmengen im allgemeinen Fall nicht möglich. Die Frage, ob die Berechnung eines minimalen starken R-Horn-Backdoors fixed parameter tractable ist, ist noch nicht bekannt [Sze07a]. Der hier vorgestellte Approximationsalgorithmus löst dieses Problem, indem immer nur eine bestimmte Menge an Konfliktzykeln betrachtet wird. In Algorithmus 8 wird eine Unterfunktion beschrieben, die für jede Variable jeweils nur einen kürzesten Konfliktzykel berechnet. Die Funktion erwartet als Argumente den R-Horn-Abhängigkeitsgraphen G, die Menge an Variablen V, die in G noch repräsentiert werden, und eine Untermenge U an Variablen, für die Konfliktzykel tatsächlich neu berechnet werden müssen. In der vierten und fünften Zeile des Algorithmus wird für jede Variable x i aus U mit Hilfe einer Breitensuche je ein kürzester Weg von k i0 nach k i1 und umgekehrt ermittelt. Gibt es Pfade in beide Richtungen, so ist ein kürzester Konfliktzykel von x i gefunden. In Zeile sieben wird die Untermenge an Variablen erstellt, die an diesem Konfliktzykel beteiligt sind. Man sollte beachten, dass dies im Allgemeinen nicht immer auch die kleinstmögliche Variablenmenge sein muss! Existiert einer der beiden Pfade P 0 oder P 1 nicht, so gibt es keinen Konfliktzykel für Variable x i. Nun können einige der im vorigen Kapitel bewiesenen Eigenschaften des Abhängigkeitsgraphen ausgenutzt werden: Die in der neunten Zeile initialisierte Menge D gibt an, welche Variablen aus V nicht weiter zu beachten sind, weshalb diese aus V gelöscht

51 3.4. APPROXIMATION VON STARKEN R-HORN-BACKDOORS 47 Algorithmus 8 Berechnung von Konflikt-Variablenmengen Eingabe: Ein Abhängigkeitsgraph G, eine gültige Variablenmenge V und eine zu aktualisierende Variablenmenge U V Ausgabe: Eine Menge von Konflikt-Variablenmengen 1: function computecyclevariablesets(g, V, U) 2: S 3: for all x i U do 4: P 0 bfsshortestpath(k i0, k i1 ) 5: P 1 bfsshortestpath(k i1, k i0 ) 6: if P 0 P 1 then 7: S S ({x j V : k j0 k j1 {P 0 P 1 }}) 8: else 9: D {x i } 10: if P 0 then D D {x j V : (k i0, k jq ), q {0, 1}} fi 11: if P 1 then D D {x j V : (k i1, k jq ), q {0, 1}} fi 12: E G E G \ {inzidente Kanten von k j : x j D} 13: V G V G \ {k j V G : x j D}, V V \ D 14: end if 15: end for 16: return S 17: end function und die entsprechenden Knoten mit inzidenten Kanten aus G entfernt werden können. Da es für x i keinen Konfliktzykel gibt, kann nach Korollar weder der Knoten k i0 noch der Knoten k i1 in irgendeinem anderen Konfliktzykel vorkommen und muss daher nicht weiter beachtet werden, weshalb D gleich mit Variable x i initialisiert wird. Die Operationen in Zeilen zehn und elf basieren zunächst auf Korollar 3.4.3: Existiert kein Pfad P q (für q {0, 1}), so kann keiner der von k iq aus erreichbaren Knoten ein Konfliktknoten sein. Daraus folgt insbesondere, dass die entsprechenden Variablen keine Konfliktzykel haben können. Nach Korollar können diese Variablen bzw. die entsprechenden Knoten mitsamt ihrer inzidenten Kanten also ebenfalls gelöscht werden. Aus Korollar folgt außerdem, dass die Variablen in D in keiner der bisher berechneten Variablenmengen in S vorkommen können. Daher muss für S auch keine Neuberechnung stattfinden. In Abbildung 3.4 ist der Zerfall von Abhängigkeitsgraphen bei der Durchführung mehrerer Approximationen sehr gut erkennbar. Als Vorverarbeitung für die erläuterte Prozedur können diejenigen Knoten mit Eingangsgrad oder Ausgangsgrad null ermittelt werden. Da es für die zugehörigen Variablen keinen Konfliktzykel geben kann, können diese aus V bzw. die entsprechenden Knoten mitsamt ihrer inzidenten Kanten aus dem Abhängigkeitsgraphen gelöscht werden.

52 3.4. APPROXIMATION VON STARKEN R-HORN-BACKDOORS 48 Algorithmus 9 Approximieren eines minimalen starken R-Horn-Backdoors Eingabe: Eine boolsche Formel F mit Variablen V Ausgabe: Ein starkes R-Horn-Backdoor 1: function greedyrhornbackdoor(f ) 2: G = (V G, E G ) createrhorndependencygraph(f ) 3: S computecyclevariablesets(g, V, V) 4: B 5: while S do 6: x i Wähle Variable gierig nach vorgegebenem Kriterium 7: V V \ {x i }, B B {x i } 8: E G E G \ {inzidente Kanten von k i0, k i1 } V G V G \ {k i0, k i1 } 9: T Variablen, deren Konfliktzykel durch Löschen von {k i0, k i1 } zerstört wurde 10: S S computecyclevariablesets(g, V, T ) 11: end while 12: return B 13: end function Algorithmus 9 beschreibt nun das gesamte Approximationsverfahren. Zunächst wird in der zweiten Zeile der R-Horn-Abhängigkeitsgraph für die gegebene boolsche Formel F berechnet. Anschließend wird durch Algorithmus 8 für jede Variable eine Variablenmenge eines kürzesten Konfliktzykels berechnet. B ist das zu ermittelnde starke R-Horn-Backdoor und enthält zunächst noch keine Variablen. Nun werden solange Variablen aus V entfernt und in das Backdoor aufgenommen, bis es keine Konfliktzykel mehr gibt (Zeilen fünf, sieben und acht). Dann ist nach Lemma ein R-Horn Deletion Backdoor gefunden. In der sechsten Zeile können verschiedene Kriterien für die Greedy-Wahl einer Backdoor- Variablen angewandt werden. Mit den folgenden beiden Heuristiken konnten in Versuchen die besten Ergebnisse erzielt werden: 1. Betrachte solche Variablen, die in den meisten Konflikt-Variablenmengen vorkommen und wähle daraus eine Variable, die in der kleinsten Variablenmenge enthalten ist. 2. Betrachte nur Variablen der kleinsten Variablenmengen und wähle daraus eine Variable, die in den meisten Variablenmengen vorkommt. In den Zeilen neun und zehn wird für diejenigen Variablen, deren Konfliktzykel durch das Löschen der Variablen x i zerstört wurde, ein neuer Konfliktzykel gesucht. Die Approximation an einem Beispiel Um das Vorgehen des Approximationsverfahrens zu verdeutlichen, betrachten wir die Beispielinstanz F mit der in Abbildung 3.2 b) dargestellten Klauselmenge.

53 3.4. APPROXIMATION VON STARKEN R-HORN-BACKDOORS 49 Abbildung 3.2 a) zeigt den zugehörigen R-Horn-Abhängigkeitsgraphen der Formel F. Betrachtet man die Klausel C 1 = (x 1 x 2 x 3 ), so ergeben sich daraus die sechs rot gezeichneten Kanten (vgl. Algorithmus 7, fünfte Zeile): Die Kanten (k 11, k 20 ) und (k 21, k 10 ) entstehen durch das Literalpaar [x 1, x 2 ], die Kanten (k 11, k 30 ) und (k 31, k 10 ) durch das Literalpaar [x 1, x 3 ] und die Kanten (k 21, k 30 ), (k 31, k 20 ) durch das Literalpaar [x 2, x 3 ]. Der Approximationsalgorithmus berechnet nun für jede Variable einen Konfliktzykel und erstellt daraus jeweils eine Konfliktvariablenmenge (siehe Algorithmus 8). Für die Variable x 4 ergibt sich zum Beispiel der grün gezeichnete Konfliktzykel [(k 41, k 11 ), (k 11, k 40 ), (k 40, k 50 ), (k 50, k 41 )] und damit die Konfliktvariablenmenge (x 1, x 4, x 5 ). Für die weiteren Variablen kann der Algorithmus die folgenden Konfliktmengen berechnen: x 1 : (x 1, x 2, x 3, x 6 ), x 2 : (x 1, x 2, x 5 ), x 3 : (x 1, x 2, x 3, x 4, x 5 ), x 5 : (x 2, x 4, x 5, x 6 ), x 6 : (x 1, x 3, x 4, x 5, x 6 ). k 21 C 1 = (x 1 x 2 x 3 ) k 10 C 2 = (x 1 x 2 x 3 x 4 ) k 31 C 3 = (x 1 x 2 x 4 x 6 ) k 40 k 51 C 4 = (x 1 x 3 x 5 ) k 61 C 5 = (x 2 x 3 x 5 ) k 60 k 50 k 20 C 6 = (x 2 x 4 x 5 x 6 ) k 30 k 11 C 7 = (x 2 x 4 x 5 x 6 ) C 8 = (x 3 x 5 x 6 ) k 41 a) b) Abbildung 3.2: Beispiel eines R-Horn-Abhängigkeitsgraphen Wählt man nun eine Backdoor-Variable gemäß der ersten Heuristik, so kann entweder Variable x 1 oder Variable x 5 in das Backdoor B aufgenommen werden, da beide Variablen in fünf Konfliktmengen enthalten sind. Entscheidet man sich für Variable x 5, so werden die beiden Knoten k 50 und k 51 mitsamt ihrer inzidenten Kanten aus dem Graphen entfernt. In einem weiteren Durchlauf müssen für alle Variablen außer x 1, deren Konfliktzykel nicht zerstört wurde, neue Konfliktmengen berechnet werden. In jeder der erzeugten Mengen ist Variable x 2 vertreten und wird daher als zweite Backdoor-Variable gewählt. Da keine

54 3.4. APPROXIMATION VON STARKEN R-HORN-BACKDOORS 50 weiteren Konfliktzykel mehr existieren, werden durch den Aufruf der Methode computecyclevariablesets in Zeile zehn des Algorithmus 9 alle Knoten und Kanten aus dem Abhängigkeitsgraphen entfernt. Damit hat das Approximationsverfahren das Backdoor B = {x 2, x 5 } berechnet. Für die Instanz F, in der die beiden Backdoor-Variablen nicht mehr enthalten sind, kann nun durch das im Beweis von Lemma beschriebene Verfahren ein Renaming angegeben werden, so dass F eine Horn-Instanz ist. Dazu betrachten wir den in Abbildung 3.3 a) dargestellten Abhängigkeitsgraphen, in dem die Knoten und inzidenten Kanten der Backdoor-Variablen x 2 und x 5 gelöscht sind. Wir wählen nun eine freie Variable x i, die noch keiner der beiden Mengen R (α i = 0) oder H (α i = 1) zugeordnet wurde. Angenommen wir wählen Variable x 1. Dann muss überprüft werden, ob diese der Menge R zugeteilt werden kann, ob es also möglich ist den Wert α 1 := 0 zu setzen. Der Knoten k 10 ist jedoch Konfliktknoten, da es einen Pfad von k 10 zum Knoten k 11 gibt (rot gezeichnete Kanten). Demnach muss α 1 den Wert 1 erhalten, was bedeutet, dass Variable x 1 der Menge H zugewiesen wird. Die grünen Kanten geben nun die daraus folgenden Implikationen an: Durch die Kante (k 11, k 30 ) muss α 3 den Wert 0 erhalten. Des Weiteren folgen die Zuweisungen α 4 := 0 und α 6 := 0. Da keine weiteren freien Variablen mehr gewählt werden können, erhalten wir die Mengen H = {x 1 } und R = {x 3, x 4, x 6 }. k 40 k 60 k 11 k 10 k 31 k 41 k 61 C 1 = (x 1 x 3 ) C 2 = (x 1 x 3 x 4 ) C 3 = (x 1 x 4 x 6 ) C 4 = (x 1 x 3 ) C 5 = (x 3 ) C 6 = (x 4 x 6 ) C 7 = (x 4 x 6 ) C 8 = (x 3 x 6 ) k 30 a) b) Abbildung 3.3: Renaming mit Hilfe des R-Horn-Abhängigkeitsgraphen Soll die verbleibende Instanz F in eine Horn-Instanz umgewandelt werden, so müssen alle Vorkommen der Variablen in der Menge R geflippt werden. In Abbildung 3.3 b) sind die veränderten Klauseln angegeben, die durch dieses Renaming der Variablen aus R entstehen. Da alle Klauseln C 1... C 8 jeweils maximal ein positives Literal enthalten, handelt es sich um eine Horn-Instanz.

55 3.4. APPROXIMATION VON STARKEN R-HORN-BACKDOORS 51 Bestimmung der Laufzeit In einem Durchlauf von Algorithmus 8 wird die äußere Schleife insgesamt U mal durchlaufen. Im Schleifeninneren werden zunächst zwei Breitensuchen durchgeführt, die jeweils proportionale Zeit bezüglich der Anzahl der Kanten beanspruchen. Die Anzahl der Kanten in einem gerichteten Graphen G mit Einfachkanten ist durch V G 2 nach oben beschränkt. In der Laufzeitanalyse der Prozedur createrhorndependencygraph (Algorithmus 7) beschränken wir die Anzahl der Schritte zum Erzeugen aller Kanten durch O(m (d max ) 2 ), wobei m die Anzahl der Klauseln und n die Anzahl der Variablen in F bezeichnet. Damit ist E G und insofern auch die Laufzeit der Breitensuche beschränkt durch min{o(n 2 ), O(m (d max ) 2 )}. Da alle weiteren Operationen innerhalb der Schleife ebenfalls durch die Anzahl der Kanten nach oben beschränkt werden können, ergibt sich die obere Laufzeitschranke für den gesamten Algorithmus 8: min{o(n 3 ), O(n m (d max ) 2 )}. Findet Algorithmus 9 ein Backdoor der Größe B =: k, so benötigt das gesamte Approximationsverfahren eine Laufzeit von min{o(k n 3 ), O(k n m (d max ) 2 )} und stellt somit einen output-sensitiven Algorithmus dar. In der Praxis wird der Algorithmus sehr wahrscheinlich die angegebene Laufzeitschranke nicht erreichen, da gerade zu Beginn des Berechnungsverfahrens sehr kurze Zykel gefunden werden, wodurch eine Breitensuche viel weniger Schritte als die gesamte Kantenanzahl benötigt. Außerdem kann davon ausgegangen werden, dass die Anzahl der Knoten und Kanten fortlaufend verringert wird. Existiert für eine Variable kein Konfliktzykel, so wird das Problem dadurch vermutlich um mehrere Variablen, Knoten und Kanten reduziert. In den Schaubildern der Abbildung 3.4 ist der Zerfall von Abhängigkeitsgraphen gut zu beobachten. Gerade für industrielle Instanzen gibt es häufig Einbrüche, in denen die Anzahl der Knoten (links) und Kanten (rechts) drastisch reduziert werden kann. Interessant ist auch, dass sich Sat-Instanzen der gleichen Familie bei der Approximation sehr ähnlich verhalten. Die beiden Schaubilder in der untersten Reihe zeigen, dass für die Zufallsinstanzen der Sat-Familie c3col100* im Gegensatz zu den Instanzen aus der Industrie außer den Knoten der Backdoor-Variablen und deren inzidenten Kanten keine weiteren Knoten und Kanten entfernt werden können. Der Else-Block in Algorithmus 8 (Zeilen acht bis dreizehn) wird demnach nur einmal am Ende der gesamten Approximation ausgeführt. Die Schaubilder der dritten Reihe zeigen den Zerfall der Abhängigkeitsgraphen für kleine, aber sehr schwere industrielle Instanzen der letzten Sat-Competition. Gerade im linken Schaubild fällt auf, dass sich die oberste Kurve sehr lange wie eine Zufallsinstanz verhält und erst nach ungefähr zwei Dritteln der gesamten Approximation einbricht. Interessant daran ist, dass für diese Instanz (eq.atree.braun.13.unsat) kein Solver der Sat-Competition 2007 ein Ergebnis innerhalb der vorgegebenen Zeit (10000 Sek.) berechnen konnte [Sat07].

56 Instanzen C220 FV* aus der Automobilkonfiguration Industrielle Instanzen cnf-r4* aus den Sat-Competitions 2002/2003 Industrielle Instanzen eq.atree.braun* der Sat-Competiton 2007 Zufallsinstanzen c3col100* der Sat-Competition 2002 Abbildung 3.4: Zerfall der Abhängigkeitsgraphen für verschiedene Sat-Instanzen Die Schaubilder auf der linken Seite zeigen die Anzahl der Knoten, die auf der rechten Seite die Anzahl der Kanten während des Algorithmus. Die x-achse stellt die aktuelle Größe B dar. Der Schnittpunkt einer Funktionskurve mit der x-achse gibt demnach die Größe des ermittelten R-Horn-Backdoors an. Die Instanzen stammen aus [Sat07, Sin03].

57 3.4. APPROXIMATION VON STARKEN R-HORN-BACKDOORS 53 Approximationsgüte Da bei dieser Vorgehensweise absichtlich nicht alle Konfliktvariablenmengen von Beginn an betrachtet werden, lässt sich die übliche Abschätzung zur Güte der Greedy-Approximation des Hitting-Set Problems nicht anwenden. Um bei der Wahl einer Backdoor-Variablen mehr als maximal V Konfliktvariablenmengen zu beachten, wurde die Berechnung der Konfliktzykel in Algorithmus 8 in der vierten und fünften Zeile folgendermaßen variiert: Anstelle der Berechnung eines einzigen kürzesten Pfades von k i0 nach k i1 (und umgekehrt), wurden jeweils c kürzeste Pfade für eine Strecke ermittelt und anschließend das kartesische Produkt über die Menge der Pfade (k i0, k i1 ) und die Menge der Pfade (k i1, k i0 ) gebildet, wodurch für jede Variable bis zu c 2 Konfliktzykel gefunden werden können. Obwohl durch die Berechnung mehrerer kürzester Konfliktzykel bei jeder Wahl einer Backdoor-Variablen bis zu c 2 V Konfliktvariablenmengen betrachtet werden, was somit dem normalen Greedy-Verfahren näher kommt, wurden in den untersuchten Instanzen nebst der schlechteren Laufzeit oft schlechtere Approximationswerte erzielt. Eine wichtige Eigenschaft der Approximation auf dem R-Horn-Abhängigkeitsgraphen ist, dass die Qualität der Lösung nicht davon abhängt, wie viele Variablen in der verbleibenden Instanz tatsächlich renamed werden müssen, um eine Horn-Instanz zu erhalten. Dadurch ist dieser Ansatz resistent gegenüber Umbenennungen von Variablen, wie dies z.b. bei der Sat-Competition [Sat07] häufig praktiziert wird. In Tabelle 3.3 wird der hier vorgestellte R-Horn Algorithmus mit dem von Paris et al. verwendeten Algorithmus verglichen. Dabei wurden die gleichen Instanzen gewählt, die in [POSS06] als Beispiele angegeben sind. Die Spalten eins bis vier geben den Namen, die Erfüllbarkeit und die Anzahl der Variablen und Klauseln einer untersuchten Instanz an. Für die beiden zuletzt aufgeführten Instanzen ist die Erfüllbarkeit nicht bekannt. In der fünften Spalte ist die Größe des R-Horn- Backdoors angegeben, das durch die auf lokaler Suche basierende Approximation von Paris et al. berechnet wurde. In den beiden letzten Spalten ist die Größe der R-Horn-Backdoors dargestellt, die durch die Approximation auf dem Abhängigkeitsgraphen erzielt wurden. Spalte sechs zeigt das Ergebnis für die erste Heuristik zur Wahl einer Backdoor-Variablen, bei der als Hauptkriterium die Häufigkeit des Vorkommens in Konfliktvariablenmengen herangezogen wird. In Spalte sieben werden die Resultate der zweiten Heuristik angegeben, bei der in erster Instanz nur die kleinsten Konfliktvariablenmengen betrachtet werden. Zunächst fällt auf, dass sich die Ergebnisse beider Heuristiken für die Approximation auf dem Abhängigkeitsgraphen zwar nicht wesentlich unterscheiden, die erste Heuristik jedoch meist besser abschneidet (fett gedruckte Einträge). Im Vergleich zum WalkSat-Ansatz ergab sich für kleine Instanzen kein wesentlicher Unterschied der Backdoor-Größen. Für die Instanzen dp10s10 und vda gr rcs w9 konnten jedoch erheblich kleinere R-Horn-Backdoors berechnet werden. Ein möglicher Grund hierfür kann eine ungünstige Benennung der Variablen sein, so dass sehr viele Variablen geflippt werden müssen, um eine Horn-Instanz

58 3.5. VERGLEICH VERSCHIEDENER BACKDOOR TYPEN 54 zu erhalten. Beide Approximationen auf dem Abhängigkeitsgraphen der Instanz dp10s10 implizieren für die berechneten R-Horn-Backdoors ein Renaming mit mehr als 3100 Variablen. Ein auf lokaler Suche basierendes Approximationsverfahren müsste eventuell später abgebrochen werden, um ein Renaming dieser Größe finden zu können. Anzahl approx. R-Horn-Backdoor WalkSat Abhäng. Graph Instanz sat? Vars. Kls. (Paris) max. Vork. klein. Menge pret pret pret pret pret pret dp10s vda gr rcs w urquhart lisa20 2 a lisa20 0 a rand net c499 gr rcs w apex7 gr rcs w bart vmpc vmpc 25? vmpc 29? Tabelle 3.3: Vergleich von R-Horn-Backdoor Approximationen: 1. Basierend auf WalkSat (Spalte fünf), wie in [POSS06] beschrieben. 2. Anhand des Abhängigkeitsgraphen mit beiden Heuristiken (sechste und siebte Spalte). 3.5 Vergleich verschiedener Backdoor Typen Im bisherigen dritten Kapitel wurden verschiedene Arten von Backdoors bezüglich mehrerer Basisklassen vorgestellt. Dabei wurde deutlich, dass die Komplexität der Algorithmen zur Berechnung verschiedener Backdoor-Typen sehr stark variiert. Es stellt sich somit die Frage, inwiefern sich die jeweiligen Berechnungsverfahren in der Praxis qualitativ unterscheiden. In diesem Unterkapitel werden daher die verschiedenen Backdoor-Typen und die zugehörigen Algorithmen anhand von industriellen Sat-Instanzen verglichen. Die Ergebnisse der Berechnung mehrerer Backdoors sind in Tabelle 3.4 zusammenfassend gegenübergestellt. Die ersten drei Spalten der Tabelle 3.4 geben den Namen und die Anzahl von Variablen und Klauseln einer Instanz an. In der vierten Spalte ist für Instanzen der Automobilkonfi-

59 3.5. VERGLEICH VERSCHIEDENER BACKDOOR TYPEN 55 guration die Größe des kleinsten berechneten DPLL-Backdoors dargestellt, falls ein solches innerhalb der vorgegebenen Zeit (Timeout T 10 Std.) gefunden wurde. Spalte fünf gibt gegebenenfalls an, ob es sich dabei um ein starkes ( ) oder schwaches ( ) DPLL-Backdoor handelt. In den Spalten sechs bis neun sind die Ergebnisse für die Approximationsverfahren von Binär-Backdoors angegeben, wie diese in Kapitel vorgestellt wurden. Die folgenden vier Spalten zeigen die Resultate der analogen Approximationsverfahren für Horn-Backdoors. In den beiden letzten Spalten werden schließlich die Größen der R-Horn- Backdoors aufgezeigt, die durch die beiden Heuristiken auf dem Abhängigkeitsgraphen gefunden wurden. Das kleinste Backdoor für die verschiedenen Basisklassen Binär, Horn und R-Horn ist jeweils fett gedruckt. Das absolut kleinste Backdoor einer Instanz wird rot hervorgehoben. Bei der Angabe der Komplexität ist n := V, m := C und k := B. Da bei allen betrachteten Instanzen m n ( k) gilt, ist z.b. die Approximationsgüte von O(log n + log m) O(log m). Der erste Abschnitt der Tabelle zeigt einige Ergebnisse der Approximationen für Instanzen aus der Automobilkonfiguration (aus [Sin03]). Zwar sind die approximierten Backdoors häufig um einiges größer als die minimalen DPLL-Backdoors, jedoch kann durch die Approximation in den meisten Fällen, im Verhältnis zur gesamten Variablenanzahl, eine kleine Backdoor-Menge gefunden werden. Nur in einem Fall (erste Zeile) konnte durch eine Approximation ein Backdoor gefunden werden, dessen Größe der des minimalen DPLL- Backdoors entspricht. Lässt man die DPLL-Backdoors für diese Instanzen außer Acht, so liefern die Approximationen der R-Horn-Backdoors stets die besten Resultate. Gerade für die unerfüllbaren Instanzen, für die es nicht möglich war, innerhalb von zehn Stunden DPLL-Backdoors zu berechnen (Eintrag T in der vierten Spalte), konnten durchaus relativ kleine R-Horn-Backdoors gefunden werden. Die weiteren Instanzen wurden in den Sat-Competitions der Jahre 2002, 2003 oder 2007 als Benchmarks verwendet [Sat07]. Interessant ist, dass die Approximation von Binär- Backdoors für mehreren Instanzen das beste Ergebnis liefert. Außerdem wurde in wenigen Fällen ein kleineres Horn-Backdoor als R-Horn-Backdoor gefunden, wie für die Instanz ezfact256 1 (Seite zwei, vierte Zeile). Die Tatsache, dass die Approximation anhand des R-Horn-Abhängigkeitsgraphen von der Menge der notwendigen Renamings unabhängig ist, erweist sich in solchen seltenen Fällen als Nachteil. Hervorzuheben sind auch die beiden letzten Einträge für die Instanzen eq.atree.braun.12.unsat und eq.atree.braun.13.unsat, für die der Zerfall des Abhängigkeitsgraphen während der Approximation in Abbildung 3.4 dargestellt ist. Obwohl beide Benchmarks relativ wenig Variablen und Klauseln enthalten, konnten sie von keinem Solver der Sat-Competition 2007 gelöst werden. Mit Hilfe der R-Horn-Approximation ist es für beide Instanzen möglich, die Menge der zu betrachtenden Variablen um mehr als 60% zu reduzieren.

60 Anzahl min. DPLL Approximation Instanz Vars. Kls. BD stark Binär Horn R-Horn 3 log n log m naiv 2 log n log m naiv max. V. klein. M. Komplexität in O( ) 2 n m n 3 m n 3 k F m log n m n 2 m n 2 k F m log n k n 3 k n 3 C169 FW C171 FR C220 FV UC C168 FW SZ C168 FW SZ C168 FW SZ C170 FR RZ C202 FS SZ C202 FS SZ C208 FA SZ C210 FS SZ C220 FV RZ C220 FV SZ C220 FV SZ C208 FA RZ T C202 FW RZ T C210 FW RZ T C210 FW SZ T C210 FW UT T pret dlx cc mc ex bp f bitadd apex7 gr rcs w avg-checker c499 gr rcs w c ca ca cnf-r4-b2-k cnf-r4-b4-k comb comb dp02u dp06u

61 Anzahl min. DPLL Approximation Instanz Vars. Kls. BD stark Binär Horn R-Horn 3 log n log m naiv 2 log n log m naiv max. V. klein. M. Komplexität in O( ) 2 n m n 3 m n 3 k F m log n m n 2 m n 2 k F m log n k n 3 k n 3 dp11u dp12s example2 gr rcs w ezfact f f2clk glassy-sat-sel N210 n grid lisa19 0 a par pyhala-braun-s pyhala-braun-u qg rope sss-sat term1 gr rcs w x abp4-1-k31-unsat cnf-r4-b1-k cnf-r4-b1-k dalumul.miter dp12u f2clk ferry gripper13u hanoi5u homer i8mul.miter vdamul.miter eq.atree.braun.11.unsat eq.atree.braun.12.unsat eq.atree.braun.13.unsat Tabelle 3.4: Verschiedene Typen von Backdoors im Vergleich.

62 3.6. BACKDOORS IN BASIS- UND ERWEITERUNGS-INSTANZEN 58 Bezüglich der Approximationen von Binär- und Horn-Backdoors kann allgemein beobachtet werden, dass die Berechnungen mit konstanter Approximationsgüte in den meisten Fällen die schlechtesten Resultate liefern. Am deutlichsten wird dies bei der Approximation von Binär-Backdoors für die Instanz rope 0500 (zweite Seite, Mitte). Für diese wählt das konstante Approximationsverfahren alle Variablen für das Backdoor. Wegen der konstanten 3-Approximationsgüte kann ein minimales Binär-Backdoor nicht weniger als 6000 Variablen enthalten. Folglich konnten alle drei anderen Approximationsverfahren also ein minimales Binär-Backdoor finden. Die Ergebnisse der naiven, schnellsten Approximation sind in vielen Fällen gleichwertig oder nicht wesentlich schlechter als die komplexeren und speicherintensiveren Berechnungen. Darüber hinaus fällt auf, dass sich die tatsächliche Qualität der log n und log m Approximationen sowohl für Binär- als auch für Horn-Backdoors kaum unterscheidet. Als Konsequenz daraus lässt sich festhalten, dass es sich für die Approximation dieser beiden Backdoor-Typen nicht lohnt, die zwei- bzw. dreielementigen Variablenmengen zu bilden. 3.6 Backdoors in Basis- und Erweiterungs-Instanzen Um für eine gegebene boolsche Formel F zu entscheiden, ob eine Variablenbelegung existiert, die F erfüllt, wird im Normalfall davon ausgegangen, dass keine weiteren Informationen als die Formel selbst zur Verfügung stehen. In der Praxis bleiben dadurch teilweise wichtige Informationen unbeachtet. So ist es bei Erfüllbarkeitsproblemen, die dem Bereich der Hardware-Verifikation oder der Automobilkonfiguration zuzuordnen sind, oft der Fall, dass die Sat-Instanzen Erweiterungen einer sogenannten Basis-Instanz darstellen [Sin03]. Dies kommt daher, dass im Falle der Automobilkonfiguration ein Großteil der Bedingungen schon durch physische Faktoren vorgegeben ist. So benötigt z.b. ein Auto mit Klimatisierungsautomatik eine größere Batterie, außer bei Benzinmotoren mit 2, 6 oder 3, 2 Litern Hubraum [Sin06]. Bei einer Erweiterungs-Instanz handelt es sich um eine Sat- Instanz, die ca. 5% zusätzliche Klauseln im Vergleich zur entsprechenden Basis-Instanz enthält. Eine solche Instanz kann sich z.b. aus speziellen Kundenanforderungen ergeben. Die Menge der Variablen einer Erweiterungs- und ihrer Basis-Instanz ist dabei identisch 9. Damit ist klar, dass aus der Unerfüllbarkeit einer Basis-Instanz auch die Unerfüllbarkeit all ihrer Erweiterungs-Instanzen folgt. Wir werden daher im Folgenden davon ausgehen, dass Basis-Instanzen grundsätzlich erfüllbar sind. Gerade im Kontext von Backdoors ergeben sich durch diese Tatsache interessante Ansätze zur Lösung von Erweiterungs-Instanzen, die in dieser Arbeit entwickelt und ausgearbeitet wurden. Das Konzept der Backdoors stellt eine gute Möglichkeit dar, wichtige Informationen aus einer Basis-Instanz zu extrahieren und dieses Wissen für die Lösung ei- 9 In Ausnahmefällen kann es vorkommen, dass sich die Variablenmengen von Basis- und Erweiterungs- Instanz geringfügig unterscheiden. Die Ursache hierfür liegt in der Umformung der Problem-Instanzen in konjunktive Normalform.

63 3.6. BACKDOORS IN BASIS- UND ERWEITERUNGS-INSTANZEN 59 ner Erweiterungs-Instanz wieder zu verwenden. Die grundsätzliche Frage ist dabei, welche Backdoors einer Basis-Instanz zur Lösung einer entsprechenden Erweiterungs-Instanz in irgendeiner Form herangezogen werden können. Gibt es Möglichkeiten aus einem Backdoor einer Basis-Instanz ein Backdoor für eine Erweiterungs-Instanz zu berechnen? Im weiteren Verlauf des Kapitels werden nun einige interessante Ansätze und Ideen zur sinnvollen Wiederverwendung von Backdoors vorgestellt Wiederverwendung von Extended DPLL-Backdoors Wie schon in der Einleitung des dritten Kapitels erläutert, verstehen wir unter einem Extended Backdoor einer erfüllbaren Sat-Instanz ein schwaches Backdoor, für das ebenfalls eine gültige Belegung von Wahrheitswerten bekannt ist. Da - wie zuvor begründet - grundsätzlich von der Erfüllbarkeit von Basis-Instanzen ausgegangen werden kann, ist es möglich, durch die Lösung eines Basis-Problems, wie in Kapitel 3.1 beschrieben, ein schwaches Backdoor und damit auch ein Extended Backdoor zu berechnen. Eine naheliegende Möglichkeit Extended Backdoors einer Basis-Instanz wieder zu verwenden besteht darin, die Variablenbelegung der Backdoor-Variablen in der Erweiterungs- Instanz gerade so zu wählen, wie dies im Extended Backdoor gespeichert ist. Durch das Propagieren der so gesetzten Belegungen lässt sich dann in Linearzeit ermitteln, ob damit bereits eine gültige Variablenbelegung für das erweiterte Problem gefunden ist. Diese Idee ist darauf ausgerichtet, möglichst schnell eine gültige Variablenbelegung für das Erweiterungs-Problem zu finden. Die Unerfüllbarkeit einer Instanz kann so nicht ermittelt werden. Ein Solver kann also im Falle eines Konfliktes nur das Ergebnis so nicht erfüllbar zurückgeben. Bei diesem Verfahren müssen die folgenden zwei wichtigen Punkte beachtet werden: 1. Das Propagieren der Variablenbelegung gemäß dem Extended Backdoor des Basis- Problems muss in der Erweiterungs-Instanz nicht notwendigerweise zu einem Ergebnis ( erfüllbar oder so nicht erfüllbar ) führen. 2. Die Wahrheitswerte aller Extended Backdoor-Variablen müssen vor Beginn des Propagierens in der Erweiterungs-Instanz gesetzt sein. Wird die Belegung einer Backdoor- Variablen b 1 propagiert bevor die Belegung für eine weitere Backdoor-Variable b 2 gesetzt wird, so kann es sein, dass der Solver fälschlicherweise das Ergebnis so nicht erfüllbar liefert. Der erste Punkt lässt sich durch die Pure Literal Rule erklären: Sei B Ext das Extended Backdoor der Basis-Instanz, also eine Menge von Paaren aus Variablen V, mit zugehörigen Wahrheitswerten {true, false}. Weist man in der Basis-Instanz F Basis nun allen Variablen aus B Ext die entsprechenden Wahrheitswerte zu, dann kann es sein, dass eine Variable x i V \ B Ext existiert, die dann in der Menge der unerfüllten Klauseln F Basis nur noch in einer Ausprägung (z.b. positiv) auftaucht. An dieser Stelle kommt nun die Pure Literal Elimination zum Zug, die x i in unserem Beispiel den Wert true zuweist und diese Belegung weiter propagiert.

64 3.6. BACKDOORS IN BASIS- UND ERWEITERUNGS-INSTANZEN 60 In der Erweiterungs-Instanz F Erw. F Basis kann es nun sein, dass eine weitere Klausel C existiert, in der die Variable x i in negierter Form vorkommt. Es wäre durchaus möglich, dass durch die Zuweisung aller Variablen aus B Ext in F Erw. auch die Klausel C subsumiert wird. Ist dies aber nicht der Fall, so kann die Pure Literal Rule für Variable x i an dieser Stelle nicht angewandt werden, da x i in F Erw. noch positiv und negativ vorkommt. Falls nicht anderweitig propagiert werden kann, muss der Solver das Ergebnis unbekannt zurückgeben. Für die Begründung des zweiten Punktes spielt die Pure Literal Rule wieder die entscheidende Rolle: Wird Variable b 1 B Ext auf den entsprechenden Wert gesetzt und sogleich propagiert, so kann es sein, dass in der verbleibenden Formel F Erw. eine andere, noch nicht gesetzte Backdoor-Variable b 2 nur noch in einer Ausprägung vorhanden ist (z.b. positiv). Dadurch wird mit der Pure Literal Rule der Wahrheitswert von b 2 entsprechend (= true) gewählt. Wird der Wert von b 2 nun später durch das Extended Backdoor gerade entgegengesetzt (= f alse) vorgegeben, so führt dies zu einem Widerspruch, obwohl die Belegung b 2 = true gar nicht zwingend, sondern nur möglich war. Der Solver liefert dann das Ergebnis so nicht erfüllbar 10. Um den zweiten Punkt zu verdeutlichen, betrachten wir als Beispiel die Formel F Basis, die aus den folgenden acht Klauseln besteht: C 1 = (x 1 x 2 ), C 2 = (x 1 x 2 ), C 3 = (x 3 x 4 ), C 4 = (x 3 x 5 ), C 5 = (x 4 x 6 ), C 6 = (x 4 x 6 ), C 7 = (x 5 x 7 ), C 8 = (x 5 x 7 ) Angenommen die Berechnung eines Extended Backdoors wählt für Variable x 1 den Wert true. Wegen Klausel C 2 wird dadurch x 2 := false impliziert. Wird weiter für Variable x 3 der Wert true gewählt, so folgt wegen C 4 die Belegung x 5 := false und durch C 7 die Belegung x 7 := true. Um die verbleibenden Klauseln C 5 und C 6 zu erfüllen, kann die Entscheidung x 4 := true getroffen werden, was wiederum für x 6 die Belegung f alse impliziert. Somit sind alle Klauseln erfüllt und es ergibt sich das Extended Backdoor B Ext = {(x 1, true), (x 3, true), (x 4, true)}. Nehmen wir nun an, in einer Erweiterungs-Instanz F Erw. ist zusätzlich zu den Klauseln C 1 bis C 8 die Klausel C 9 = (x 2 x 4 ) enthalten. Wir versuchen nun F Erw. mit Hilfe des Extended Backdoors zu lösen: Setzt man die Variable x 1 := true, so impliziert dies wieder x 2 := false und wegen Klausel C 9 auch die Belegung x 4 := true, was wiederum wegen Klausel C 6 die Zuweisung x 6 := false zur Folge hat. In den verbleibenden Klauseln C 4, C 7 und C 8 kommt die Variable x 3 nur noch mit negativer Polarität vor. Lassen wir nun das Extended Backdoor B Ext außer Acht, so wird der Wert der Variablen x 3 gemäß der Pure Literal Rule auf false gesetzt. Wird nun später, gemäß der Vorgabe aus B Ext, die Variable x 3 := true gesetzt, so entsteht ein Konflikt, obwohl die Belegung x 3 := false gar nicht zwingend erforderlich war und durch die Zuweisung x 3 := true eine gültige Belegung für die Instanz F Erw. gefunden worden wäre. 10 Dieser Punkt muss generell beachtet werden, wenn man ein Extended Backdoor für eine Instanz F testen möchte. Werden die Backdoor-Variablen in einer anderen Reihenfolge zugewiesen als in der Ordnung, in der die Variablenbelegungen ermittelt wurden, so kann in Kombination mit der Pure Literal Rule ebenfalls ein falsches Ergebnis ausgegeben werden.

65 3.6. BACKDOORS IN BASIS- UND ERWEITERUNGS-INSTANZEN 61 Die Wiederverwendung von Extended Backdoors hat für die erfüllbaren Erweiterungs- Instanzen aus der Automobilkonfiguration [Sin03] recht positive Ergebnisse geliefert, die in Tabelle 3.5 aufgeführt sind. Die ersten drei Spalten geben den Namen und die Anzahl an Variablen und Klauseln einer Instanz an. In der vierten Spalte findet sich die Anzahl der Extended Backdoors aus dem Basis-Problem, die sofort zu einer gültigen Belegung des Erweiterungs-Problems geführt haben. In der fünften Spalte ist das Verhältnis prozentual zur Anzahl der jeweils 1000 getesteten Extended Backdoors dargestellt. Lieferte der Solver das Ergebnis unbekannt (siehe erster Punkt S. 59), so wurde versucht, die verbleibende Instanz F durch weitere Entscheidungen zu lösen. Die sechste und siebte Spalte zeigen, wie oft dies gelang. Die dafür notwendige Laufzeit ist wesentlich geringer als für die komplette Instanz, da F in der Regel sehr klein ist und meistens nur wenige weitere Entscheidungen getroffen werden müssen, was durch die Einträge der Spalten acht bis zehn deutlich wird. Die letzten beiden Spalten geben die Anzahl der untersuchten Basis-Backdoors an, die keine gültige Belegung für die Erweiterungs-Instanz liefern konnten. sofort gelöst gelöst durch Propagieren keine Lösung Anzahl + Entscheidungen Instanz Vars. Kls. # % # % min. max. # % C168 FW MT C168 FW UT C208 FC UT C210 FW UT C220 FV MT C220 FV NC C220 FV UC C220 FV UC C220 FV UT C220 FV UT C220 FV UT C220 FV UT C220 FV UT C220 FV UT C220 FV UT C638 FKA UT C638 FKA UT C638 FKA UT C638 FKA UT Tabelle 3.5: Ergebnisse der Wiederverwendung von Extended Backdoors Die Tabelle 3.5 verdeutlicht sehr gut, dass durch die Idee der Extended Backdoors in den meisten Fällen eine gültige Variablenbelegung sehr schnell gefunden werden konnte. Insbesondere konnte für nur 22 von insgesamt 469 erfüllbaren Instanzen (4, 7%) auf diese Weise keine gültige Variablenbelegung gefunden werden. Eine mögliche Anwendung für

66 3.6. BACKDOORS IN BASIS- UND ERWEITERUNGS-INSTANZEN 62 die Praxis könnte unter Verwendung einer selbstorganisierenden Liste geschehen: Für jede Basis-Instanz wird vorab eine größere Menge an Extended Backdoors berechnet und in einer Datei gespeichert. Kommt nun eine Kundenanfrage in Form eines Erweiterungs-Problems, so wird parallel zum bisherigen Lösungsprozess S die Menge der Extended Backdoors des Basis-Problems sequentiell durchsucht. Wird dabei ein für die Erweiterungs-Instanz gültiges Extended Backdoor B Ext ermittelt, so kann S abgebrochen werden. B Ext wird nun an den Beginn der Backdoor-Liste gesetzt, so dass es bei einer späteren ähnlichen Anfrage schneller erreicht wird. Falls kein gültiges Extended Backdoor des Basis-Problems gefunden werden kann, so ist es zusätzlich möglich, das von S ermittelte Ergebnis (bzw. das dadurch gefundene Extended Backdoor) ebenfalls in die Liste der Backdoors mit aufzunehmen Wiederverwendung von schwachen DPLL-Backdoors Im vorigen Kapitel wurde empirisch gezeigt, dass das Konzept der Extended Backdoors eine sehr gute Möglichkeit darstellen kann, um die Lösbarkeit von Erweiterungs-Instanzen schnell und einfach zu zeigen. Allerdings liefert dieser Ansatz noch keine Möglichkeit, die Unerfüllbarkeit einer Erweiterungs-Instanz effizienter zu ermitteln. Im Folgenden werden zwei Heuristiken vorgestellt, die den Lösungsprozess sowohl von erfüllbaren als auch von nicht erfüllbaren Erweiterungs-Instanzen zu beschleunigen versuchen. Eine naheliegende Variablenheuristik besteht darin, für den Lösungsprozess einer Erweiterungs-Instanz F Erw. zunächst ein beliebiges schwaches Backdoor B Basis der Basis-Instanz F Basis zu wählen. Die Variablen aus B Basis werden dann bei einem DPLL-basierten Solver gegenüber anderen Variablen als Entscheidungsvariablen bevorzugt. Dies wird einfach dadurch realisiert, dass die Variablen aus B Basis den Anfang der Variablenordnung bilden. Durch diese Heuristik konnte für die unerfüllbaren Erweiterungs-Instanzen aus der Automobilindustrie ein enormer Speed Up im Vergleich zum einfachen DPLL-Solver erzielt werden. Bei vielen Instanzen F Erw. war es für den Beweis der Unerfüllbarkeit sogar ausreichend, Entscheidungsvariablen ausschließlich aus der Menge B Basis zu wählen, was wiederum bedeutet, dass B Basis in diesem Fall ein starkes DPLL-Backdoor für F Erw. darstellt. Einige Ergebnisse für unerfüllbare Instanzen sind in Tabelle 3.6 abgebildet. Dabei wurden für die Lösung einer Erweiterungs-Instanz sequentiell die 50 kleinsten (bekannten) schwachen Backdoors des Basis-Problems betrachtet. Für jedes dieser Backdoors wurde überprüft, ob es ein starkes Backdoor für die Erweiterungs-Instanz darstellt. In den ersten drei Spalten der Tabelle 3.6 sind jeweils der Name und die Anzahl von Variablen und Klauseln einer Instanz aufgeführt. Die vierte und fünfte Spalte zeigen, in wie vielen Fällen ein schwaches Backdoor der Basis-Instanz auch ein starkes Backdoor für die Erweiterungs-Instanz liefert. Die Spalten fünf bis sieben geben von diesen Backdoors die minimale, maximale und durchschnittliche Größe an. In Spalte acht ist die Anzahl der 50 schwachen Basis-Backdoors dargestellt, die kein starkes Backdoor für die Erweiterungs- Instanz darstellen. Die letzten drei Spalten zeigen zum Vergleich die minimale, maximale

67 3.6. BACKDOORS IN BASIS- UND ERWEITERUNGS-INSTANZEN 63 und durchschnittliche Größe der Backdoors, die für die jeweilige Instanz direkt mit der in Kapitel 3.1 beschriebenen Methode berechnet wurden. Der Eintrag T bedeutet, dass innerhalb von zehn Stunden durch diese Methode kein Backdoor gefunden werden konnte. Von den 84 in [Sin03] verfügbaren unerfüllbaren Erweiterungs-Instanzen konnte durch diese Methode für 74 Instanzen ein starkes DPLL-Backdoor aus den schwachen Backdoors der Basis-Instanz gefunden werden (88%). Auffallend ist, dass für einige Instanzen (z.b. C168 FW SZ 107, C210 FW SZ 129 ) sogar ein kleineres Backdoor gefunden werden konnte als durch die reine DPLL-Methode in der vorgegebenen Zeit. Hervorzuheben ist hier vor allem das Resultat für die Instanz C210 FW UT Mit dem DPLL-Verfahren konnte innerhalb von zehn Stunden gar keine Lösung erzielt werden. Durch eines der 50 Backdoors der zugehörigen Basis-Instanz wurde hingegen ein starkes Backdoor mit nur acht Variablen gefunden. Anzahl BDs durch Basis-BDs # kein reine DPLL-BDs Instanz Vars. Kls. # min. max. Erfolg min. max. C168 FW SZ C170 FR SZ C170 FR SZ C202 FS SZ C202 FS SZ C202 FW RZ T T T C202 FW SZ C208 FA RZ C208 FA RZ T T T C208 FA SZ C210 FS SZ C210 FW SZ C210 FW SZ C210 FW SZ C210 FW SZ C210 FW UT T T T C210 FW UT C220 FV RZ C220 FV SZ C220 FV SZ Tabelle 3.6: Ergebnisse der Wiederverwendung von schwachen Backdoors der Basis-Instanz als mögliche starke Backdoors für eine (unerfüllbare) Erweiterungs-Instanz. Die Heuristik kann noch dahingehend erweitert werden, dass eine Entscheidungsvariable b aus dem schwachen Backdoor zuerst denjenigen Wahrheitswert wählt, der ihr auch im zugehörigen Extended Backdoor zugeordnet wird, der also in der Basis-Instanz zu einer gültigen Belegung geführt hat. Ein solches Vorgehen verbindet somit die hier vorgestellte Heuristik mit der im vorigen Unterkapitel beschriebenen Wiederverwendung von Extended Backdoors.

68 3.6. BACKDOORS IN BASIS- UND ERWEITERUNGS-INSTANZEN 64 Für die praktische Anwendung dieser Heuristik ist es möglich, die Backdoors des Basis- Problems - wie auch im vorigen Kapitel für die Wiederverwendung von Extended Backdoors vorgeschlagen - in einer selbstorganisierenden Liste zu halten. Die zweite hier vorgestellte Variablenheuristik für die Lösung einer Erweiterungs-Instanz betrachtet nicht nur ein beliebiges schwaches Backdoor des Basis-Problems, sondern ermittelt vielmehr aus der kompletten Menge der bekannten Backdoors des Basis-Problems für jede Variable x i einen Rank-Wert r i [0, 1], der angibt, in wievielen dieser Backdoors x i vertreten ist. r i stellt dabei das Verhältnis der Anzahl aller x i enthaltenden Backdoors zur Anzahl aller betrachteten Backdoors dar. Im Lösungsprozess der Erweiterungs-Instanz werden nun diejenigen Variablen mit höchstem Rank-Wert als Entscheidungsvariablen bevorzugt. Für die Variablenordnung werden die Variablen also absteigend bezüglich ihrer Rank-Werte sortiert. Als Ergänzung dieser Heuristik kann für die Wahl des initialen Wahrheitswertes einer Entscheidungsvariablen x i die Menge aller Extended Backdoors E des Basis-Problems betrachtet werden. Es wird derjenige Wahrheitswert zuerst gewählt, der für x i in der Menge E häufiger vorkommt. Abbildung 3.5: Relative Häufigkeit des Vorkommens von Variablen in Backdoors für die Basis-Instanz C210 FW. Links: Variablen in schwachen Backdoors; Rechts: Literale in Extended Backdoors. In Abbildung 3.5 wird ein Beispiel für die Menge der Backdoors der Basis-Instanz C210 FW gegeben. Die linke Seite zeigt für jede Variable die Anzahl an schwachen Backdoors, in denen sie enthalten ist. Die rechte Seite zeigt analog für jedes Literal die Anzahl der Extended Backdoors, in denen es vorkommt. Beide Schaubilder sehen recht ähnlich aus, was darauf zurückzuführen ist, dass bei der Belegung der meisten Variablen in Extended Backdoors eine Polarität sehr deutlich überwiegt.

69 3.6. BACKDOORS IN BASIS- UND ERWEITERUNGS-INSTANZEN 65 Tabelle 3.7 vergleicht die beschriebene Rank-Heuristik mit dem einfachen DPLL-Algorithmus anhand von mehreren unerfüllbaren Erweiterungs-Instanzen. Die ersten drei Spalten nennen den Namen und die Variablen- und Klauselanzahl der jeweiligen Instanz. In Spalte vier wird die Anzahl der Basis-Backdoors angegeben, die für die Berechnung der Rank-Werte herangezogen wurden. Die Spalten fünf bis sieben geben einen Überblick über die ermittelten Rank-Werte der Variablen der Instanz, indem der minimale, maximale und durchschnittliche Wert aufgeführt werden. In den letzten vier Spalten wird die Heuristik anhand der Größen der starken Backdoors mit dem DPLL-Algorithmus verglichen. Dabei nennen die ersten drei Spalten die minimale, maximale und durchschnittliche Größe der mit Hilfe der DPLL-Methode berechneten Backdoors (vgl. Kapitel 3.1). Die letzte Spalte gibt die Größe des durch die Rank-Heuristik gefundenen Backdoors an. Anzahl Rank-Werte Größe der Backdoors reine DPLL-BDs Heuristik Instanz Vars. Kls. BDs min. max. min. max. C168 FW SZ C168 FW UT C170 FR RZ C170 FR SZ C202 FS SZ C202 FS SZ C202 FW SZ C202 FW SZ C208 FA RZ C208 FA SZ C210 FS SZ C210 FW SZ C210 FW SZ C210 FW SZ C220 FV RZ C220 FV SZ C220 FV SZ C220 FV SZ C208 FA RZ T T T 88 C210 FW SZ T T T 58 Tabelle 3.7: Vergleich der Anzahl der benötigten Entscheidungsvariablen bei der DPLL- Prozedur mit der Heuristik, welche die Variablen gemäß der Häufigkeitsverteilung in den Basis-Backdoors sortiert. Wie bei der ersten Heuristik zur Wiederverwendung von schwachen DPLL-Backdoors einer Basis-Instanz wurden auch hier teilweise kleinere Backdoors als mit Hilfe des normalen DPLL-Verfahrens gefunden (z.b. C210 FS SZ 130, C210 FW SZ 135 ). Insbesondere konnten die beiden zuletzt aufgeführten Instanzen mit Hilfe der Heuristik gelöst werden, wohingegen der DPLL-Algorithmus nach zehn Stunden kein Ergebnis lieferte. Allerdings

70 3.6. BACKDOORS IN BASIS- UND ERWEITERUNGS-INSTANZEN 66 fällt auf, dass die Heuristik in einigen Fällen auch sehr große Backdoors findet und damit unnötig viele Entscheidungsvariablen während des Lösungsprozesses wählt. So wurde zum Beispiel für die Instanz C170 FR RZ 32 ein größeres Backdoor berechnet als das größte Backdoor, das durch die reine DPLL-Methode gefunden wurde. In Kapitel wurde die dynamische Variablenordnung VSIDS (Variable State Independent Decaying Sum) vorgestellt [MMZ + 01]. Dort erhält jede Variable einen Activity-Wert, der beim Auftreten eines Konfliktes während des Lösungsprozesses eventuell verändert wird. Für das Branching werden Variablen unter Berücksichtigung dieser Werte ausgewählt. Basierend auf der zweiten hier vorgestellten Heuristik haben wir die berechneten Rank-Werte zur Initialisierung der Activity-Werte herangezogen, um gerade zu Beginn des Lösungsprozesses gute Variablen auszuwählen. Die entsprechende Modifikation des MiniSat-Solvers erzielte jedoch keine Verbesserungen gegenüber der unveränderten Version. Ein Grund hierfür ist sicherlich, dass MiniSat gerade am Anfang der Suche relativ früh und häufig Restarts durchführt Wiederverwendung von Deletion Backdoors Bei der bisher vorgestellten Wiederverwendung von Backdoors in Erweiterungs-Instanzen wurden stets Backdoors des Basis-Problems herangezogen, die mit Hilfe der DPLL-Methode (Kapitel 3.1) erzeugt wurden. In den beiden vorigen Unterkapiteln wurden Möglichkeiten vorgestellt, wie solche Backdoors zur Lösung von Erweiterungs-Instanzen vielversprechend verwendet werden können. Allerdings bilden die DPLL-Backdoors einer Basis-Instanz nicht immer eine gute Grundlage, um daraus starke Backdoors für Erweiterungs-Instanzen zu erzeugen. Im Wesentlichen gibt es dafür zwei Gründe: Da Basis-Probleme grundsätzlich lösbare Instanzen darstellen, liefert das in Kapitel 3.1 beschriebene Verfahren zur Berechnung von Backdoors nur schwache Backdoors. Damit kennt man eine Menge von n n Variablen, so dass mindestens eine der 2 n möglichen Belegungen dieser Variablen zu einer Lösung des Basis-Problems führt. Im Allgemeinen kann es jedoch sein, dass das Propagieren der restlichen Variablenbelegungen zu keinem Ergebnis führt - weder für die Basis- noch für irgendeine Erweiterungs-Instanz. Das Propagieren einer Variablenbelegung unter Anwendung der Pure Literal Rule kann in der Basis-Instanz unter Umständen einen größeren Effekt erzielen als in der Erweiterungs-Instanz (siehe Kapitel 3.6.1). Dadurch kann die Belegung einer bestimmten Menge von Variablen im Basis-Problem zu einer eindeutigen Aussage führen, wobei die gleiche Variablenbelegung in einer Erweiterungs-Instanz hingegen das Ergebnis unbekannt liefert. Um mit Hilfe von DPLL-Backdoors einer Basis-Instanz ein starkes Backdoor für eine Erweiterungs-Instanz zu erzeugen, müsste bei der Berechnung der Basis-Backdoors also mindestens auf die Pure Literal Elimination verzichtet werden. Außerdem wäre sicher zu

71 3.6. BACKDOORS IN BASIS- UND ERWEITERUNGS-INSTANZEN 67 stellen, dass jede mögliche Belegung der Backdoor-Variablen zu einem eindeutigen Ergebnis - erfüllbar oder unerfüllbar - führt. Wesentlich besser geeignet sind hierfür die in Kapitel 3.3 vorgestellten Deletion Backdoors. Da jedes Deletion Backdoor grundsätzlich auch ein starkes Backdoor ist [NRS06, Sze07b] und da darüber hinaus bei der Berechnung von Deletion Backdoors die Boolean Constraint Propagation nicht angewandt wird, liefern diese gute Voraussetzungen für die Wiederverwendung in Erweiterungs-Instanzen. Betrachten wir exemplarisch ein Horn-Backdoor B H für eine Basis-Instanz F Basis. Da es sich bei B H um ein Deletion Backdoor handelt, führt das Entfernen der Variablen des Backdoors aus der Formel F Basis gemäß der Definition zu einer Instanz F Basis Horn. Damit ist klar, dass durch das Entfernen der Backdoor-Variablen B H aus einer entsprechenden Erweiterungs-Instanz F Erw. alle Klauseln, die schon in F Basis vorhanden waren, zu Hornklauseln werden. Kennen wir also ein Horn-Backdoor für F Basis, dann müssen nur noch diejenigen Klauseln C + betrachtet werden, um die F Erw. tatsächlich erweitert wurde. Wie eingangs erwähnt, beinhaltet C + nur etwa 5 % der gesamten Klauselmenge. Hier bietet sich eine gute Möglichkeit, die in Kapitel vorgestellten Approximationsalgorithmen für Binär- und Horn-Backdoors anzuwenden: Für die Lösung einer Instanz F Erw. betrachtet man nur die Menge der Klauseln C + und wählt ein Deletion Backdoor B D (Binär oder Horn) von F Basis. Nun werden alle Variablen in B D aus der Klauselmenge C + entfernt. Auf die verbleibende Menge C + wird schließlich der entsprechende Approximationsalgorithmus angewandt, um ein weiteres Backdoor B D zu berechnen. Die Variablenmenge B D B D bildet dann ein starkes Backdoor für die gesamte Erweiterungs- Instanz F Erw.. Dabei ist unbedingt zu beachten, dass die Backdoors B D und B D vom selben Typ (z.b. Horn) sein müssen, da eine Kombination von ungleichen Backdoor-Typen dazu führen kann, dass der Subsolver die verbleibende Instanz nicht in Polynomzeit lösen kann. Dies wird auch anhand der in Kapitel 4 vorgestellten Problemklasse 2 -Sat deutlich. Sind für das Basis-Problem mehrere verschiedene Deletion Backdoors des selben Typs (Horn oder Binär) bekannt, so ergeben sich dadurch optionale Erweiterungen: Es können solche Backdoors als B D bevorzugt werden, die möglichst viele der in C + vorkommenden Variablen enthalten. Dadurch wird versucht, die Menge und Größe der zu betrachtenden Klauseln C + schon im Vorfeld zu reduzieren. Da die Vereinigung mehrerer Deletion Backdoors für F Basis nach Definition wieder (bzw. immer noch) ein Deletion Backdoor für die Instanz F Basis darstellt, ist in Spezialfällen auch folgendes Vorgehen plausibel: Für eine Erweiterungs-Instanz F Erw. betrachtet man alle Variablen V +, die in C + enthalten sind. Ist V + klein, so kann durch Vereinigung mehrerer Backdoors der Basis-Instanz ein Backdoor B D ermittelt werden (falls dieses existiert), das alle Variablen aus V + enthält. Dadurch stellt B D gleichfalls ein Backdoor für F Erw. dar.

72 3.6. BACKDOORS IN BASIS- UND ERWEITERUNGS-INSTANZEN 68 Wiederverwendung von R-Horn-Backdoors Die Wiederverwendung von R-Horn-Backdoors gestaltet sich nicht ganz so einfach wie bei Deletion Backdoors der Typen Binär und Horn. Dem liegt die Tatsache zugrunde, dass ein R-Horn-Backdoor B R für eine beliebige Instanz auch ein bestimmtes Renaming der Variablen impliziert. Werden nun die R-Horn-Backdoors für eine Basis-Instanz und eine Menge C + getrennt berechnet, so ist es sehr wahrscheinlich, dass die daraus entstehenden R-Horn-Backdoors B R und B R unterschiedliche Renamings implizieren. Die Vereinigung beider Backdoors ist daher so im Allgemeinen nicht möglich. Liegt den Berechnungen der beiden Backdoors B R und B R das gleiche Renaming zu Grunde, so liefert die Vereinigung beider Mengen - wie auch bei Horn- und Binär-Backdoors - ein starkes Backdoor für die gesamte Erweiterungs-Instanz. Überträgt man dies auf den in Kapitel vorgestellten Algorithmus, so muss die Berechnung der beiden Backdoors auf demselben R-Horn-Abhängigkeitsgraphen beruhen. Wird nun der für die Approximation des R-Horn-Backdoors B R einer Basis-Instanz erzeugte Abhängigkeitsgraph G gespeichert, so kann dieser zum Approximieren des Backdoors einer Erweiterungs-Instanz herangezogen und auf zwei Arten erweitert werden: 1. Es wird nur der Abhängigkeitsgraph wiederverwendet und um Kanten erweitert, die sich aus den Klauseln aus C + ergeben. Anschließend wird durch Algorithmus 9 ein minimales R-Horn-Backdoor angenähert. Mit diesem Ansatz bleibt die Approximationsgüte und auch die Größe des gefundenen Backdoors unverändert, allerdings ergibt sich nur für die Erzeugung des Abhängigkeitsgraphen eine Laufzeitersparnis. 2. Wie auch in der ersten Variante wird zunächst der Graph um die Abhängigkeiten erweitert, die sich durch die neuen Klauseln aus C + ergeben. Nun werden die Knoten aller Variablen des Basis-Backdoors B R aus dem Graphen entfernt, bevor Algorithmus 9 aufgerufen wird. Die Vereinigung des dadurch gefundenen Backdoors mit B R bildet ein starkes Backdoor für die Erweiterungs-Instanz. Auf diese Weise wird - auf Kosten eines eventuell etwas größeren Backdoors - die Laufzeit der Backdoor Berechnung erheblich reduziert. Beide erläuterten Varianten zur Wiederverwendung von R-Horn-Backdoors erfordern, dass zu jedem R-Horn-Backdoor einer Basis-Instanz auch der entsprechende Abhängigkeitsgraph gespeichert werden muss. Obwohl für die Speicherung von Graphen mehrere standardisierte Formate zur Verfügung stehen, kann die Speicherung aller Abhängigkeitsgraphen dennoch als zu aufwändig empfunden werden. Die folgende Berechnung von R-Horn-Backdoors für Erweiterungs-Instanzen kommt ohne die Wiederverwendung eines Abhängigkeitsgraphen aus. Bei der Berechnung eines R-Horn-Backdoors B R mit Hilfe des Algorithmus 9 wird grundsätzlich auch ein Renaming ermittelt, womit sich die verbleibende Instanz F B R in eine Horn-Instanz überführen lässt (vgl. Kapitel 3.4.3). Die Idee des folgenden Ansatzes besteht darin, anstelle des gesamten Abhängigkeitsgraphen einer Basis-Instanz nur das aus

73 3.6. BACKDOORS IN BASIS- UND ERWEITERUNGS-INSTANZEN 69 der Berechnung des Backdoors resultierende Renaming zu speichern. Dies kann einfach dadurch realisiert werden, dass zu jedem R-Horn-Backdoor eine Liste von Variablen gespeichert wird, deren Literale geflippt werden müssen (Variablen aus R). Ist nun B R ein R-Horn-Backdoor einer Basis-Instanz F Basis und Ren(B R ) das zugehörige Renaming, so lässt sich für eine Erweiterungs-Instanz F Erw., welche die zusätzlichen Klauseln C + enthält, ein starkes Backdoor wie folgt ermitteln: 1. Lösche aus C + alle Variablen B R ( C +) 2. Flippe für alle Variablen Ren(B R ) die Literale in C + ( C # + ) 3. Berechne ein Horn-Backdoor für C # + ( B H ) 4. Die Vereinigung B R B H bildet nun ein starkes Backdoor für die Erweiterungs- Instanz. Im ersten Schritt werden diejenigen Variablen aus C + entfernt, die ohnehin schon im Backdoor der Basis-Instanz vorhanden sind und folglich auch zum Backdoor der Erweiterungs-Instanz zählen. Das implizierte Renaming des R-Horn-Backdoors B R wird nun dadurch berücksichtigt, dass in Schritt zwei die Literale der zu betrachtenden Klauselmenge entsprechend Ren(B R ) geflippt werden. Da das Renaming für die gesamte Instanz somit festgelegt ist, wird in Schritt drei ein Horn-Backdoor mit einem der in Kapitel vorgestellten Verfahren approximiert. Da beide Backdoors B R und B H das gleiche Renaming verwenden, ist die Vereinigung beider Backdoors auch ein gültiges Deletion Backdoor für die Erweiterungs-Instanz. Das beschriebene Verfahren erfordert lediglich das zusätzliche Speichern des Renamings der Basis-Instanz F Basis. Für die Berechnung des Backdoors einer Erweiterungs-Instanz werden nur diejenigen Klauseln betrachtet, die nicht auch schon in F Basis enthalten sind. Darüber hinaus kann für die Erweiterung des Backdoors ein schneller und einfacher Algorithmus (siehe Kapitel 3.3.2) verwendet werden, der nur Horn-Backdoors approximiert. Dieses Verfahren stellt damit eine interessante und realistische Option dar, um bei der Lösung von Erweiterungs-Instanzen in der Praxis zum Einsatz zu kommen. Ergebnisse für die Wiederverwendung von Deletion Backdoors In diesem Abschnitt werden Ergebnisse vorgestellt, die bei der Wiederverwendung von Deletion Backdoors für Erweiterungs-Instanzen erzielt wurden. Die ersten drei Spalten der Tabelle 3.8 geben den Namen und die Anzahl der Variablen und Klauseln der jeweiligen Erweiterungs-Instanz an. Die Einträge der vierten bis siebten Spalte zeigen die Größe der berechneten Deletion Backdoors durch entsprechende Deletion Backdoors der zugehörigen Basis-Instanz. Dabei geben die Werte in Klammern an, wie viele Variablen bei der Betrachtung der zusätzlichen Klauseln C + in das Backdoor mit aufgenommen wurden. Für die Erweiterung von R-Horn-Backdoors wurde zum einen die Variante untersucht, bei der der R-Horn-Abhängigkeitsgraph der Basis-Instanz wiederverwendet und erweitert wird, wobei

74 3.6. BACKDOORS IN BASIS- UND ERWEITERUNGS-INSTANZEN 70 alle Knoten von Variablen des Basis-Backdoors vorab entfernt werden (sechste Spalte). In der siebten Spalte werden die Ergebnisse der Methode dargestellt, die zusätzlich zum R- Horn-Backdoor der Basis-Instanz nur das Renaming, nicht aber den Abhängigkeitsgraphen wiederverwendet. Die letzten drei Spalten zeigen zum Vergleich die Größe der Backdoors, die ohne Zuhilfenahme von Backdoors der Basis-Instanz berechnet wurden. Anzahl Berechnung mit Basis-Backdoor Vergleich Berechnung mit G ohne G ohne Basis-Backdoor Instanz Vars. Kls. Bin Horn Ren.H. Ren.H. Bin Horn Ren.H. C168 FW UC [+0] 452 [+0] 120 [+0] 120 [+0] C208 FC UT [+1] 442 [+0] 154 [+0] 154 [+0] C210 FW UT [+4] 419 [+5] 165 [+5] 165 [+5] C210 FW UT [+5] 421 [+7] 166 [+6] 166 [+6] C210 FW UT [+0] 414 [+0] 161 [+1] 161 [+1] C220 FV UC [+0] 372 [+0] 104 [+0] 104 [+0] C220 FV UC [+0] 372 [+0] 104 [+0] 104 [+0] C220 FV UT [+3] 377 [+5] 108 [+4] 108 [+4] C220 FV UT [+6] 378 [+6] 108 [+4] 108 [+4] C220 FV UT [+1] 372 [+0] 104 [+0] 105 [+1] C638 FKA UT [+0] 539 [+1] 125 [+1] 125 [+1] C638 FKA UT [+2] 542 [+4] 128 [+4] 129 [+5] C638 FKA UT [+6] 545 [+7] 130 [+6] 132 [+8] C638 FKA UT [+1] 541 [+3] 129 [+5] 128 [+4] C638 FKA UT [+2] 539 [+1] 125 [+1] 125 [+1] C168 FW UT [+0] 452 [+0] 120 [+0] 120 [+0] C210 FW UT [+7] 423 [+9] 166 [+6] 167 [+7] C210 FW UT [+4] 420 [+6] 168 [+8] 166 [+6] Tabelle 3.8: Vergleich der Größe von Deletion Backdoors, die ohne bzw. mit Zuhilfenahme von Backdoors der Basis-Instanz berechnet wurden. Die Approximationswerte der Binär-, Horn- und R-Horn-Backdoors entsprechen dem jeweils besten Ergebnis der verschiedenen Approximationsalgorithmen. Durchweg gilt, dass alle Deletion Backdoors der Basis-Instanz nur um sehr wenige Variablen erweitert werden müssen, um auch ein Backdoor für eine Erweiterungs-Instanz zu bilden. Da es sich bei allen Berechnungen nur um Approximationen handelt, kann es jedoch vorkommen, dass ein Backdoor der Basis-Instanz schon größer ist als das einer entsprechenden Erweiterungs-Instanz, wie dies zum Beispiel für die R-Horn-Backdoors der Instanz C638 FKA UT 403 der Fall ist. Es fällt auf, dass für diese Instanz dennoch (zu den Variablen des Basis-Backdoors) sechs bzw. acht weitere Variablen als Backdoor-Variablen gewählt werden müssen, um ein R-Horn-Backdoor für die Erweiterungs-Instanz zu erhalten. Vergleicht man die beiden Varianten zur Berechnung von R-Horn-Backdoors in der sechsten und siebten Spalte, so wird deutlich, dass sich hier das Speichern und Wiederverwenden des R-Horn-Abhängigkeitsgraphen nicht lohnt, da mit der schnelleren und einfacheren Methode durch das Speichern des Renamings fast identische Ergebnisse erzielt wurden.

75 Kapitel 4 Eine obere Schranke für eine Unterklasse von 3-SAT Das Konzept der Backdoors wurde bisher unter mehreren Aspekten betrachtet und erörtert. Die Berechnung von Backdoors zielt dabei stets darauf ab, möglichst kleine Backdoors zu ermitteln, um gegebenenfalls den Suchraum zur Lösung einer Problem-Instanz entscheidend einzuschränken. Gelingt es, ein starkes Backdoor der Größenordnung O(log n) in Polynomzeit zu finden, so kann die Erfüllbarkeit der entsprechenden Instanz ebenfalls in Polynomzeit entschieden werden. Gerade in industriellen Sat-Instanzen lassen sich häufig kleine Backdoors in akzeptabler Zeit berechnen. Diese Herangehensweise ermöglicht es, Aussagen über den Lösungsprozess einer Sat-Instanz in eine Richtung zu treffen: Ist ein kleines Backdoor einer Instanz F bekannt, so kann die Erfüllbarkeit von F damit effizient bestimmt werden. Aus der Tatsache, dass für F kein Backdoor einer bestimmten Größenordnung existiert - vorausgesetzt dies lässt sich überhaupt in akzeptabler Zeit garantieren - kann im Allgemeinen kein Schluss über die Erfüllbarkeit von F gezogen werden. Bestenfalls ist es möglich gemäß den Beobachtungen von Ruan et al. [RKH04] zu folgern, dass es sich bei F wahrscheinlich um eine schwere Probleminstanz handelt. Im Rahmen dieser Arbeit wurde eine spezielle Unterklasse von 3-Sat gefunden, für die das Nichtvorhandensein bestimmter Backdoors einen Schluss auf die Erfüllbarkeit der betrachteten Instanz zulässt. Es wird zunächst die spezielle Problemklasse vorgestellt und deren NP-Vollständigkeit bewiesen. Anschließend beschreiben und analysieren wir ein vollständiges Lösungsverfahren für Instanzen dieser Problemklasse, welches hauptsächlich auf der Verwendung von Backdoors basiert und daher im Folgenden als Backdoor Driven bezeichnet wird.

76 4.1. DIE KLASSE 2 -SAT Die Klasse 2 -Sat Betrachten wir nun die folgende Unterklasse des 3-Sat Problems: Definition Sei 2 -Sat die Klasse der 3-Sat Probleme mit der Einschränkung, dass für alle Klauseln C mit C = 3 gilt: C besteht ausschließlich aus Literalen mit negativer Polarität 1. Theorem Sat ist NP-Vollständig. Beweis Da nach Definition 2 -Sat 3-Sat und 3-Sat NP ist, folgt unmittelbar 2 - Sat NP. Für den Beweis der NP-Vollständigkeit verbleibt zu zeigen, dass 2 -Sat NPhart ist. Dies kann durch die polynomiale Reduktion 3-Sat p 2 -Sat gemacht werden: Sei F eine beliebige boolsche Formel 3-Sat. Für die polynomiale Reduktion gilt es nun ein Verfahren anzugeben, welches F in eine erfüllbarkeitsäquivalente Formel F 2 - Sat überführt: Im Folgenden bezeichnet D + C die Menge der Dreierklauseln aus F, die mindestens ein positives Literal enthalten. Ferner sei V + V die Menge der Variablen, die in mindestens einer Klausel D + mit positiver Polarität vorkommen. Klauseln C aus F, die weniger als drei Literale haben oder aus drei negativen Literalen bestehen (C / D + ), können unverändert für F übernommen werden. Führe nun in F für jede Variable x i V + eine weitere Variable x i und eine Klausel (x i x i ) [=: Ci ] ein. Erzeuge dann für jede Klausel C D + eine entsprechende Klausel C für F, in der jedes positive Literal einer Variablen x i jeweils durch x i ersetzt wird. Damit gilt: F ist erfüllbar F ist erfüllbar, denn: : Ist F erfüllbar, so gibt es eine Menge an Literalen M F, die alle Klauseln in F erfüllen. Initialisieren wir M F := M F, so sind in F alle Klauseln C {F F } erfüllt. Des Weiteren gilt für alle x i V + folgende Regel: Ist x i in M F mit positiver Polarität enthalten, wählen wir Literal x i, ansonsten Literal x i für M F. Damit sind alle hinzugefügten Klauseln Ci [= (x i x i )] in F erfüllt. Sei nun C eine beliebige Klausel F \ F. In M F gibt es mindestens ein Literal l j, durch das die zugehörige Klausel C D + in F erfüllt wird. Nach der Initialisierung ist l j auch in M F enthalten. Hat l j negative Polarität, so ist l j auch Literal in C, wodurch C F erfüllt ist. Hat l j positive Polarität, dann enthält C nun das Literal x j. Außerdem wurde x j für M F gewählt, womit C F erfüllt ist. Damit sind alle Klauseln in F erfüllt. : F ist erfüllbar durch die Literale M F. Initialisiert man M F = {l M F : l F }, so sind mindestens alle Klauseln in F \ D + erfüllt. Betrachten wir eine beliebige Klausel C D + : Da die entsprechende Klausel C in F erfüllt wird, existiert mindestens ein Literal 1 Analog könnte die spezielle Klasse betrachtet werden, bei der alle Literale in Dreierklauseln positive Polarität haben.

77 4.2. EIN BACKDOOR DRIVEN ALGORITHMUS 73 l M F, das C erfüllt. Ist l F, so ist l auch in M F enthalten, wodurch C F erfüllt ist. Ist anderenfalls l / F, so entspricht Literal l gerade einer hinzugefügten, negierten Variable x i, wobei Klausel C das Literal x i F enthält. Da F erfüllt ist, wird insbesondere auch die Klausel C i = (x i x i ) F erfüllt, wodurch Literal x i in M F und damit auch in M F sein muss. Damit wird jede beliebige Klausel C in F erfüllt. Da für jedes positive Literal F maximal eine neue Variable und eine neue Klausel in F eingeführt wird, werden maximal n weitere Variablen und n weitere Klauseln erzeugt. Die Reduktion ist also polynomial. 4.2 Ein Backdoor Driven Algorithmus Für die beschriebene Klasse von Erfüllbarkeitsproblemen 2 -Sat lässt sich nun ein einfacher deterministischer Algorithmus angeben, der für beliebige Instanzen dieser Problemklasse die Erfüllbarkeit entscheidet. Die Besonderheit des in Algorithmus 10 beschriebenen Verfahrens ist die Tatsache, dass dieses hauptsächlich auf der Verwendung von bestimmten Backdoor-Typen basiert. Algorithmus 10 Ein Backdoor Driven 2 -Sat Solver Eingabe: Eine boolsche Formel F der Klasse 2 -Sat Ausgabe: Entweder eine Lösung für F oder F ist nicht erfüllbar 1: function solve(f ) 2: const a log 4,36 (2, 18) 0, : C + {(x i x j ) F : x i, x j positiv} 4: Wähle B + V minimal, so dass C C + x i B + : x i C 5: if B + a V then 6: return Löse F mit Hilfe des Horn-Backdoors B + 7: end if 8: C {(x h x i x j ) F : x h, x i, x j negativ} 9: Wähle B V minimal, so dass C C x i B : x i C 10: if B (1 a) V then 11: return Löse F mit Hilfe des Binär-Backdoors B 12: end if 13: return F Unsatisfiable 14: end function Im Algorithmus werden zunächst nur diejenigen Klauseln einer gegebenen Probleminstanz F betrachtet, die aus genau zwei Literalen bestehen, welche beide mit positiver Polarität vorkommen. Diese Klauselmenge entspricht genau denjenigen Klauseln, die F von einer Horn-Instanz unterscheiden. Da F eine Instanz der Klasse 2 -Sat ist, existiert in

78 4.3. KOMPLEXITÄT DES ALGORITHMUS 74 allen anderen Klauseln jeweils maximal ein Literal mit positiver Polarität. Nun wird versucht eine minimale Menge B + an Variablen zu finden, so dass jede dieser binären Klauseln mindestens eine der gewählten Variablen beinhaltet. Diese Fragestellung ist im Allgemeinen ein d-hitting-set Problem und in diesem speziellen Fall auch ein Vertex-Cover Problem. In der folgenden Analyse des Algorithmus (Kapitel 4.3.1) wird dies detaillierter erläutert. Lässt sich eine solche Menge B + der Größe 0, 5292 V finden, so stellt diese gerade ein Deletion Horn-Backdoor für F dar. Die Erfüllbarkeit von F kann nun mit Hilfe dieses Backdoors ermittelt werden. Gibt es keine solche Menge der gewünschten Größe, so betrachtet der Algorithmus im Folgenden nur diejenigen Klauseln von F, die aus drei Literalen bestehen. Literale in diesen Klauseln haben nach Definition der Klasse 2 -Sat grundsätzlich negative Polarität. Wieder wird versucht eine Menge an Variablen zu finden, so dass jede dieser Dreierklauseln mindestens eine der gewählten Variablen enthält. Existiert eine solche Menge B der Größe 0, 4708 V, so stellt diese ein starkes Binär- Backdoor für F dar. In diesem Fall kann die Erfüllbarkeit von F unter Verwendung von B bestimmt werden. Existiert auch keine Menge B der gewünschten Größe, so ist die Unlösbarkeit von F nachgewiesen. Denn die Größe der Menge B + gibt an, wie viele Variablen aus V mindestens den Wahrheitswert true benötigen, um F zu erfüllen, da die betrachteten binären Klauseln nur aus Literalen mit positiver Polarität bestehen. Analog gibt die Größe der Menge B an, wie viele Variablen aus V mindestens auf false gesetzt werden müssten, um F zu erfüllen. Da B + > 0, 5292 V und B > 0, 4708 V, kann es keine erfüllende Variablenbelegung geben. Eine ähnliche Argumentationsweise für die Nichterfüllbarkeit einer Formel wurde auch von Franco und Swaminathan [FS03] im Zusammenhang mit einer randomisierten Vorverarbeitungsroutine zum Lösen von großen 3-Sat Instanzen verwendet. 4.3 Komplexität des Algorithmus Die Korrektheit des Algorithums lässt sich leicht anhand der Beschreibung verifizieren. In diesem Unterkapitel werden wir nun die benötigte Laufzeit des Verfahrens analysieren. In dieser Arbeit wurden wir schon mehrfach an verschiedenen Stellen mit den beiden NPvollständigen Problemen Hitting-Set und dem Spezialfall Vertex-Cover konfrontiert. Gerade in Kapitel wurden diese Problemstellungen durch Approximationsverfahren bewältigt. Da in Algorithmus 10 exakte Angaben benötigt werden, ob ein Hitting-Set einer bestimmten Größe existiert, ist der Einsatz von Approximationsverfahren hier jedoch ungeeignet. In diesem Fall stellen parametrisierte Algorithmen eine gute Alternative dar.

79 4.3. KOMPLEXITÄT DES ALGORITHMUS Eine Anwendung von FPT-Algorithmen In Kapitel 2.7 wurde die Idee von fixed parameter tractable Algorithmen erläutert. In diesem Unterkapitel werden nun zwei weitere Beispiele für die Verwendung der parametrisierten Algorithmen für das Vertex-Cover Problem und das Hitting-Set Problem aufgezeigt. Beim parametrisierten Vertex-Cover Problem gilt es, in einem Graphen G eine Menge von Knoten C V G mit k oder weniger Elementen zu bestimmen, so dass von jeder Kante in E G mindestens einer ihrer beiden Endpunkte in C ist. Betrachtet man nun die in der Definition des Vertex-Cover Problems verwendeten Kanten E G als Binärklauseln und die Knoten V G als Variablen einer boolschen Formel, so entspricht die Fragestellung, ob es eine Untermenge an Variablen mit maximaler Größe k gibt, so dass eine bestimmte Menge an Binärklauseln erreicht wird, gerade dem parametrisierten Vertex-Cover Problem. Nach Niedermeier kann dieses Problem in der Laufzeit O(kn+1, 29 k ) gelöst werden [Nie02]. Das parametrisierte d-hitting-set Problem betrachtet eine Sammlung C von Untermengen mit jeweils maximaler Größe d von einer endlichen Menge S. Die Frage ist nun, ob es eine Untermenge S S mit höchstens k Elementen gibt, so dass S von jeder Untermenge in C mindestens ein Element enthält. Interpretiert man C als eine Menge von Dreierklauseln und S als die Menge der Variablen einer boolschen Formel, so ist die Fragestellung nach einer Variablenuntermenge mit beschränkter Größe, die alle Klauseln erreicht, ein parametrisiertes 3-Hitting-Set Problem. Der dafür bisher schnellste Algorithmus wurde 2004 von Fernau vorgestellt und hat eine Laufzeit von O(2, 179 k +n) [Fer04]. Das Interessante an diesem Algorithmus ist, dass es sich dabei nicht um ein kompliziertes oder schwierig zu implementierendes Verfahren handelt. Die gute Laufzeitschranke wird vielmehr durch eine präzise Analyse des Entscheidungsbaumes erzielt, zu deren Zweck noch ein weiterer Hilfsparameter eingeführt wird Bestimmung der oberen Laufzeitschranke Mit den beiden vorgestellten Laufzeitschranken für die parametrisierten Vertex-Cover und 3-Hitting-Set Probleme kann die Komplexität des Backdoor-Driven Algorithmus nun leicht bestimmt werden: In Zeile zwei des Algorithmus 10 wird zunächst eine Konstante a definiert, deren Wert hauptsächlich von der Komplexität des vorgestellten parametrisierten 3-Hitting-Set Algorithmus bestimmt wird. Die in der vierten und fünften Zeile gegebene Fragestellung kann mit dem parametrisierten Vertex-Cover-Algorithmus in O(kn + 1, 29 k ) gelöst werden, wobei der Parameter k in unserem Fall durch k := a V 0, 5292 n gegeben ist. Dies ergibt eine Laufzeit von O(n 2 + 1, 145 n ).

80 4.3. KOMPLEXITÄT DES ALGORITHMUS 76 Analog kann die in den Zeilen neun und zehn gestellte Aufgabe mit dem parametrisierten 3-Hitting-Set-Algorithmus in O(2, 179 k + n) gelöst werden. In diesem konkreten Fall ist der Parameter k durch k := (1 a) V 0, 4708 n gegeben, was zu einer Laufzeit von O(1, 443 n + n) führt. Um - wie in der sechsten Zeile verlangt - die Erfüllbarkeit von F mit Hilfe des Horn- Backdoors der maximalen Größe a n 0, 5292 n zu bestimmen, müssen im schlechtesten Fall alle 2 0,5292n 1, 4431 n möglichen Belegungen der Backdoor-Variablen überprüft werden. Da jede Horn-Instanz mit Hilfe der Boolean Constraint Propagation gelöst werden kann [Sin06], ist es für jede beliebige Belegung der Backdoor-Variablen möglich, für die verbleibende Instanz in Linearzeit zu entscheiden, ob diese erfüllbar ist. Dadurch ergibt sich eine Laufzeit von O(1, 4431 n F ). Ähnlich kann - wie in Zeile elf gefordert - die Erfüllbarkeit von F mit Hilfe des Binär- Backdoors der maximalen Größe (1 a) n 0, 4708 n gelöst werden. Das Durchprobieren aller möglichen Variablenbelegungen der Backdoor-Variablen kann hier maximal die Komplexität 2 0,4708n 1, 386 n annehmen. Mit den Algorithmen von Aspvall [APT79] oder del Val [dv00] können 2-Sat Probleme in Linearzeit gelöst werden. Damit kann für jede beliebige Belegung der Backdoor-Variablen auch hier die Erfüllbarkeit der Instanz in Linearzeit getestet werden. Die dafür erforderliche Laufzeit beträgt somit O(1, 386 n F ). Damit erhalten wir für den in Algorithmus 10 beschriebenen Solver eine obere Laufzeitschranke von O(1, 4431 n F ). Zum Vergleich [Sch99, Sin06]: Die besten oberen Schranken für deterministische Algorithmen zur Berechnung von 3-Sat Instanzen liegen bei O(1, 619 n ) [Speckenmeyer 1980], O(1, 505 n ) [Kullmann 1999], O(1, 476 n ) [Rodosek 1996] und O(1, 481 n ) [Dantsin, Goerdt, Hirsch, Schöning 2000 [DGHS00]].

81 Kapitel 5 Visualisierung von SAT-Instanzen - Das Tool SatIn Das Erfüllbarkeitsproblem ist ein sehr abstraktes NP-vollständiges Problem der Informatik. In den meisten Fällen werden Problem-Instanzen in konjunktiver Normalform dargestellt: Eine Formel besteht aus Klauseln, in denen boolsche Variablen in Form von Literalen mit positiver oder negativer Polarität enthalten sind. Um dieser abstrakten Darstellung entgegen zu treten, wurde schon früh versucht, Sat-Probleme aus anderen Perspektiven zu betrachten. Ein guter und gängiger Ansatz besteht darin, Sat-Instanzen als Graphen zu repräsentieren. Der erste Linearzeit-Algorithmus für 2-Sat, der 1979 von Aspvall, Plass und Tarjan beschrieben und in Kapitel 2.5 erläutert wurde [APT79], transformiert ein 2-Sat- Problem in ein gleichwertiges Graphenproblem und löst dieses durch einen Algorithmus zur Bestimmung von starken Zusammenhangskomponenten. In einem grundlegenden Artikel von Franco und Van Gelder [FG03] über einige in Polynomzeit lösbare Unterklassen des Sat-Problems werden bestimmte Eigenschaften dieser Klassen oft anhand entsprechender graphischer Repräsentationen bewiesen, was die Bedeutung solcher Perspektivenwechsel unterstreicht. Auch in der vorliegenden Arbeit kommen in Kapitel 3.2 Propagation-Graphen zur Erkennung von ungeeigneten DPLL-Backdoor- Variablen und in Kapitel R-Horn-Abhängigkeitsgraphen für die Approximation von R-Horn-Backdoors zum Einsatz. Ein Vorzug der graphentheoretischen Repräsentation von Sat-Problemen besteht darin, dass Graphen sehr gut visualisiert werden können. Oft kann die Visualisierung von abstrakten Fragestellungen wichtige Einblicke in die Problematik liefern und verborgene Strukturen erkennbar machen. So kann man z.b. in Abbildung 3.1 in Kapitel deutlich eine Struktur im R-Horn-Abhängigkeitsgraphen erkennen, die bei der bloßen Betrachtung der boolschen Formel vermutlich verborgen bleibt. Durch mehrere Arbeiten im Bereich der Visualisierung von Sat-Problemen und deren Lösungsverfahren wurden in den vergangenen Jahren interessante Einsichten in das Erfüllbarkeitsproblem gewonnen. Mit Hilfe des Tools DPvis ist es möglich, den Verlauf

82 5.1. EINBLICKE 78 des DPLL-Algorithmus zu veranschaulichen [Die04, Sin04, Sin07]. Dadurch lassen sich sowohl statische Strukturen einer Sat-Instanz als auch dynamische Veränderungen der Struktur während des DPLL-Algorithmus hervorheben. Unter Verwendung von DPvis untersucht Herwig welche Informationen bezüglich der Konnektivität von Sat-Instanzen aus der graphischen Repräsentation gewonnen werden können [Her06]. Lehmann analysiert die Struktur von Sat-Instanzen unter Anwendung von Zentralitätsmaßen aus der Netzwerkanalyse [Leh06]. Auf dieser Grundlage werden mehrere Variablenheuristiken für das DPLL-Verfahren entwickelt, die zentrale Variablen als Entscheidungsvariablen bevorzugen. 5.1 Einblicke Im Rahmen dieser Arbeit wurde ein Tool entwickelt, das es erlaubt, verschiedene graphische Repräsentationen einer Sat-Instanz gleichzeitig zu betrachten und zu vergleichen. Dies stellt gerade im Kontext der Backdoor-Mengen eine gute Möglichkeit dar, um die Rolle von Backdoor-Variablen in verschiedenen Repräsentationen hervorzuheben und gegenüberzustellen. Mit dem Programm SatIn (Sat Insights) kann eine boolsche Formel in konjunktiver Normalform auf unterschiedliche Weisen betrachtet werden. Die verschiedenen Visualisierungen einer gewählten Sat-Instanz werden in getrennten Fenstern angezeigt, so dass diese vom Benutzer beliebig auf dem Bildschirm platziert werden können (Abbildung 5.1). SatIn ist in der Programmiersprache Java implementiert, da diese eine gute und einfache Umsetzung des Model-View-Controler-Patterns und des Observer-Patterns ermöglicht. Ferner bietet die Java-Graphenbibliothek yfiles [WEK02] eine komfortable Möglichkeit für die Visualisierung und das Layout von Graphen. In den folgenden Unterkapiteln werden zunächst verschiedene graphische Darstellungen von Erfüllbarkeitsproblemen vorgestellt. Anschließend wird ein Überblick über die Funktionalität und Anwendungsmöglichkeiten von SatIn gegeben. In Kapitel 5.4 werden schließlich die speziellen Möglichkeiten für die Visualisierung von Backdoors präsentiert.

83 Abbildung 5.1: Hauptansicht des Tools SatIn

84 5.2. VERSCHIEDENE VISUALISIERUNGEN EINES SAT-PROBLEMS Verschiedene Visualisierungen eines SAT-Problems Die bekanntesten graphischen Repräsentationen von Sat-Instanzen entsprechen den sechs Frames, die in der Hauptansicht von SatIn in Abbildung 5.1 zu sehen sind. Dabei handelt es sich um die folgenden ungerichteten Graphen: LL Literale werden als Knoten im Graphen dargestellt. Eine Kante existiert dann, wenn die entsprechenden Literale in mindestens einer Klausel gemeinsam enthalten sind (Abb. 5.1 oben Mitte). VV Hier stellen Knoten die Variablen dar. Wie beim LL-Graphen werden diese miteinander verbunden, wenn die Variablen - in beliebiger Polarität - in mindestens einer Klausel gemeinsam vorkommen (Abb. 5.1 oben links). CC l Jeder Knoten repräsentiert eine Klausel. Kanten sind dann vorhanden, wenn die jeweiligen Klauseln mindestens ein gleiches Literal enthalten (Abb. 5.1 Mitte). CC v Analog zum CC l -Graphen existiert eine Kante, wenn die entsprechenden Klauseln mindestens eine gleiche Variable - in beliebiger Polarität - beinhalten (Abb. 5.1 links Mitte). CL Klauseln und Literale werden als Knoten dargestellt. Eine Kante zwischen einem Literal- und einem Klausel-Knoten ist vorhanden, wenn die Klausel das Literal enthält (Abb. 5.1 oben rechts). CV Analog zum CL-Graphen gibt es eine Kante zwischen einem Variablen- und einem Klausel-Knoten, wenn die Variable - in beliebiger Polarität - in der Klausel vorkommt (Abb. 5.1 unten). Die verschiedenen Ansichten können über das Menü Formula Views erzeugt werden. Zusätzlich zu den sechs oben erläuterten Graphen kann auch noch ein CLV -Graph angezeigt werden, in welchem Variablen, Literale und Klauseln als Knoten dargestellt sind. Der CLV -Graph erweitert den CL-Graphen, indem zusätzlich jede Variable mit ihren beiden zugehörigen Literalen verbunden wird. Die gebräuchlichsten Darstellungen sind der VV - Graph, der auch im oben erwähnten Tool DPvis verwendet wird, und der CV -Graph, der gerade im Zusammenhang mit Matched Formulas, die in Kapitel 2.5 definiert wurden, eine große Rolle spielt [FG03]. Die Darstellung von Klauseln, Variablen und Literalen als Knoten kann über das Menü Settings geändert werden. Standardmäßig werden Klauseln als blaue Quadrate, Variablen als türkisfarbene Kreise und Literale als grüne Rauten gezeichnet. In jeder Graphenansicht kann über das Menü Layout eine bestimmte Anordnung der Knoten gewählt werden. Um verschiedene Layouts der gleichen graphischen Repräsentation vergleichen zu können, ist es möglich, mehrere Fenster mit Ansichten des gleichen Graphen zu öffnen. Darüber hinaus können für jede Graphenansicht bestimmte Betrachtungsmodi gewählt werden.

85 5.2. VERSCHIEDENE VISUALISIERUNGEN EINES SAT-PROBLEMS Verwendete Layouts Alle Graphen werden unter Verwendung der yfiles-graphenbibliothek dargestellt [WEK02]. Die verschiedenen Layouts der Graphen stellen im Wesentlichen eine für diese Anwendung sinnvolle Untermenge der dort implementierten Layout-Algorithmen dar: Organic Ein force-directed Layout, bei dem Knoten als physikalische Objekte betrachtet werden, die sich gegenseitig in bestimmtem Maße anziehen und abstoßen. SmartOrganic Eine Erweiterung des organischen Layouts. Single Cycle Alle Knoten werden auf einem Kreis platziert. Circular Verschiedene Untergruppen von Knoten werden in separaten Kreisen dargestellt. Gerade die ersten beiden Layouts eignen sich in besonderem Maße für die Darstellung aller beschriebenen graphischen Repräsentationen von Sat-Instanzen (siehe auch [Sin04]). Für die partiten Graphen CV, CL und CLV ist darüber hinaus das hierarchische Layout von Sugiyama et al. [ES90] sinnvoll. Dort werden Knoten auf verschiedenen Layern angeordnet. Zwischen Knoten, die sich auf demselben Layer befinden, gibt es keine Verbindungen. In Abbildung 5.2 sind drei verschiedene Layouts für den CL-Graphen der Instanz pret60 25 dargestellt. In den ersten beiden Layouts (organisch und zirkulär) lassen sich die Strukturen und Gruppierungen des Graphen deutlich erkennen. Im dritten, bipartiten Layout wird vor allem die Zugehörigkeit von Literalen zu Klauseln hervorgehoben. Abbildung 5.2: Verschiedene Layouts des CL-Graphen der Instanz pret60 25 [Ben]: organisch (oben links), zirkulär (oben rechts) und bipartit (unten)

86 5.3. INTERAKTIVES ARBEITEN Darstellungsmodi Sind in SatIn mehrere Graphenansichten gleichzeitig geöffnet, so kann es hilfreich sein, verschiedene Betrachtungsmodi für die einzelnen Fenster zu wählen, so dass ein Mausklick in einem Fenster keine ungewollten Aktionen hervorruft. Depict Der entsprechende Graph wird statisch angezeigt. Durch einen Mausklick werden weder Elemente selektiert, noch werden vorige Selektionen aufgehoben. Der Betrachter hat lediglich die Möglichkeit zu zoomen und die Größe des betrachteten Ausschnitts zu verändern. Navigate Der Graph kann zusätzlich als Ganzes verschoben werden. Dadurch wird die bisherige Knotenauswahl nicht beeinflusst. Select Elements Hier ist es möglich verschiedene Knoten auszuwählen. Wird während des Markierens der Knoten die Shift-Taste gedrückt, so werden die Knoten zur bisherigen Auswahl hinzugefügt. Über das Menü Tools ist es außerdem möglich, eine Auswahl zu invertieren. Move Selected Nodes Die gewählten Knoten lassen sich als Ganzes verschieben, ohne dass die Auswahl der Knoten verändert wird. Dies ist vor allem hilfreich, wenn in einem dichten Graphen selektierte Knoten nach außen verschoben werden sollen. Edit In diesem Modus können Knoten gewählt und verschoben werden. Durch den Rechtsklick auf einen Knoten lassen sich in einem PopUp-Menü bestimmte Aktionen auswählen, die im nächsten Unterkapitel näher erläutert werden. 5.3 Interaktives Arbeiten Durch die verschiedenen graphischen Darstellungen einer Sat-Instanz ist es möglich, Einblicke durch unterschiedliche Perspektiven zu gewinnen. Dabei ist es interessant, diese Perspektiven nicht völlig separat und unabhängig voneinander zu betrachten, sondern entsprechende Bezüge herzustellen. Aus diesem Grund werden zwischen den Graphenansichten in SatIn Informationen ausgetauscht: Werden in einem Graphen Knoten selektiert, die Variablen repräsentieren, so werden die entsprechenden Variablen und Literale in allen anderen Fenstern ebenfalls markiert. Analog dazu werden alle Ansichten über die Auswahl von Klauseln und Literalen informiert. In Kombination mit den oben erläuterten Betrachtungsmodi lassen sich Sat-Instanzen damit gut visuell analysieren. Durch einen Rechtsklick auf einen oder mehrere Knoten im Edit-Modus können verschiedene Aktionen ausgeführt werden. Die Auswahl der Aktionen ist davon abhängig, ob ein Knoten eine Variable, ein Literal oder eine Klausel repräsentiert. In allen drei Fällen

87 5.4. VISUALISIERUNG VON BACKDOORS 83 ist es möglich, die gewählten Variablen bzw. Klauseln aus der Sat-Instanz temporär zu entfernen. Dadurch werden diese in der boolschen Formel als ungültig markiert und die entsprechenden Knoten und Kanten aus allen aktuellen Ansichten ausgeblendet. Alle entfernten Objekte lassen sich einzeln oder als Ganzes über das Menü Formula Views des Hauptfensters wieder einblenden und aktivieren, unabhängig von der Reihenfolge, in der sie entfernt wurden. Für Knoten von Variablen und Literalen ist es außerdem möglich, den entsprechenden Variablen Wahrheitswerte zuzuweisen. Nach der Zuweisung eines Wertes wird die Boolean Constraint Propagation durchgeführt. Dabei sind drei Optionen wählbar: Die betroffenen Variablen (inklusive der gewählten Variable) und die subsumierten Klauseln werden nur markiert, um zu verdeutlichen, welchen Effekt eine entsprechende Zuweisung hätte. Variablen und subsumierte Klauseln werden in allen Ansichten ausgeblendet. In der boolschen Formel werden die entsprechenden Wahrheitswerte tatsächlich gesetzt. Wie in der zweiten Variante werden die entsprechenden Knoten und Kanten entfernt, allerdings wird das Ausblenden der Elemente animiert. Alle Zuweisungen von Wahrheitswerten lassen sich über das Hauptmenü Algorithm wieder aufheben. In der entsprechenden Ansicht, die über den Menüeintrag Show Decision Variables geöffnet wird, kann der Wert einer Variablen alternativ auch geflippt werden. Durch die Wahl des Menüeintrags Show Variable Order erhält man eine Ansicht, in der alle noch nicht zugewiesenen Variablen nach verschiedenen Kriterien oder manuell sortiert werden können. In dieser Arbeit wurde mehrfach deutlich (siehe u.a. Kapitel 3.6.3), dass die Anwendung der Pure Literal Rule in manchen Fällen unerwünscht sein kann. Daher lässt sich über das Algorithm Menü steuern, ob beim Propagieren einer Variablenbelegung diese Regel anzuwenden ist. 5.4 Visualisierung von Backdoors Über das Menü Algorithm ist es möglich, den R-Horn-Abhängigkeitsgraphen, der in Kapitel vorgestellt wurde, für die gewählte Sat-Instanz zu berechnen und darzustellen. Durch die Wahl von Break Dependencies lässt sich die Approximation von R-Horn-Backdoors - wie in Kapitel beschrieben - schrittweise durchführen. Dabei hat das Löschen von Knoten und Kanten in diesem Graphen keine Auswirkung auf die anderen Graphenansichten. In Abbildung 3.1 wurden bereits zwei R-Horn-Abhängigkeitsgraphen exemplarisch dargestellt. Alternativ kann der Approximationsalgorithmus auch direkt, ohne Visualisierung des Abhängigkeitsgraphen, gestartet werden.

88 5.4. VISUALISIERUNG VON BACKDOORS 84 Der in Kapitel 3.2 vorgestellte Propagation-Graph einer Formel lässt sich ebenfalls über das Algorithm Menü anzeigen. In dieser Ansicht bietet das Menü Propagation die Möglichkeit, den Algorithmus 3 in Einzelschritten auszuführen. Der Propagation-Graph visualisiert für jede Variable die minimale Auswirkung, die sowohl durch die Wahl des Wahrheitswertes true als auch durch die Zuweisung von f alse erzielt wird. Zusätzlich kann hier ein Graph erzeugt werden, der die maximale Auswirkung aller Zuweisungen darstellt. Analog kann die minimale (bzw. maximale) Auswirkung der Unit Propagation für Variable- Klausel Graphen angezeigt werden. Eine gerichtete Kante von einer Variablen zu einer Klausel gibt an, dass die Klausel durch beide (bzw. einen der beiden) Wahrheitswerte dieser Variablen subsumiert wird. Ähnlich lässt sich der Effekt der Unit Propagation für Literale darstellen: In einem Literal- Literal Graphen existiert eine gerichtete Kante von Literal l 1 zu Literal l 2, wenn die Wahl von l 1 die Belegung l 2 nach sich zieht. Im entsprechenden Literal-Klausel Graphen gibt eine gerichtete Kante an, dass die Wahl eines Literals eine bestimmte Klausel subsumiert. Abbildung 5.3 zeigt den Variable-Variable Propagation-Graphen mit minimalem und maximalem Effekt der Unit Propagation für die Instanz longmult6. Abbildung 5.3: Beide Varianten des Variable-Variable Propagation-Graphen für die Instanz longmult6 mit 2848 Variablen und 8853 Klauseln. Die linke Abbildung zeigt den minimalen Effekt der Unit Propagation (vlg. Algorithmus 2, Kapitel 3.2). Auf der rechten Seite wird die maximale Auswirkung des Propagierens visualisiert.

89 5.4. VISUALISIERUNG VON BACKDOORS 85 Das Backdoors Menü im Hauptfenster von SatIn bietet die Möglichkeit, optional eine beliebige Menge von Backdoors zu laden. Zu diesem Zweck wurden die Dateiendungen.bd für schwache Backdoors,.ebd für Extended Backdoors und.sbd für starke Backdoors eingeführt. Die Formate für das Speichern von Backdoors entsprechen im Wesentlichen dem DIMACS-Format zum Speichern von boolschen Formeln in konjunktiver Normalform [Dim93], das in Kapitel vorgestellt wurde. Eine Datei kann beliebig viele Backdoors enthalten, indem Variablen eines Backdoors (bei.ebd s Literale) durch Leerzeichen getrennt aufgelistet und mit einer Null abgeschlossen werden. Im Dialogfenster zum Öffnen von Backdoor-Dateien werden solche Dateien vorgeschlagen, die zur aktuellen Instanz passen. Dennoch ist es möglich, beliebige andere Backdoors zu laden. Dadurch können insbesondere Backdoors einer Basis-Instanz für eine Erweiterungs- Instanz gewählt und visualisiert werden. Alle Backdoors sind, der Größe nach sortiert, als Untereinträge des Menüs Backdoors erreichbar. Hierüber lassen sich die Variablen eines Backdoors selektieren, wodurch diese in allen geöffneten Ansichten markiert werden. Für ein Extended Backdoor können entweder nur die Variablen oder auch die Literale einer gültigen Belegung ausgewählt werden. Damit ist es möglich visuell zu analysieren, in welchen Bereichen eines Graphen Backdoor- Variablen lokalisiert sind und welche Gemeinsamkeiten zwischen verschiedenen Backdoors bestehen. Basierend auf der Funktionalität der Bibliothek JFreeChart [JFr] lässt sich in einem Balkendiagramm die Verteilung der Variablen in allen geladenen Backdoors darstellen. Analog kann die Häufigkeit des Vorkommens der Literale in Extended Backdoors angezeigt werden. Die Sortierung der Balken entspricht der aktuellen Variablenordnung, die sich - wie oben erläutert - über das Menü Show Variable Order bestimmen lässt. Wird der Cursor über einem Balken des Diagrammes positioniert, so wird der Name der entsprechenden Variablen als ToolTip eingeblendet. Abbildung 5.4 zeigt die Verteilung der Variablen und der Literale in den berechneten DPLL-Backdoors der Instanz C168 FW.cnf [Sin03]. Um zu untersuchen, inwiefern und wie häufig sich Variablenmengen von verschiedenen Backdoors überschneiden, lässt sich über das Backdoors Menü ein Graph erzeugen, in dem jedes Backdoor durch einen Knoten repräsentiert wird. Eine Kante existiert genau dann, wenn zwei Backdoors mindestens eine Variable gemeinsam haben. Analog kann ein Extended Backdoor Graph erzeugt werden, bei dem eine Kante dann vorhanden ist, wenn zwei Extended Backdoors ein gleiches Literal enthalten. Wählt man den Darstellungsmodus Edit in dieser Graphenansicht, so können durch die Wahl eines Backdoor-Knotens die entsprechenden Variablen (bzw. Literale) in allen aktuellen Ansichten markiert werden.

90 5.4. VISUALISIERUNG VON BACKDOORS 86 Abbildung 5.4: Ansicht der Verteilung der Variablen und Literale in den geladenen Backdoors. In der linken Abbildung wird die Häufigkeit des Vorkommens jeder Variablen in Backdoors dargestellt. Die Variablen, und somit auch die Balken, sind bezüglich der Häufigkeit ihres Vorkommens in den 7477 Klauseln (nicht in Backdoors!) sortiert. Rechts wird die Verteilung der Literale in allen Extended Backdoors angezeigt. Hier sind die Literale (bzw. Balken) entsprechend der Anzahl der Klauseln geordnet, in denen sie enthalten sind. Das Tool SatIn ermöglicht verschiedene Sichtweisen bezüglich boolscher Formeln in konjunktiver Normalform. Gerade bei der Arbeit mit Backdoors kann es oft interessant sein, eine Vorstellung davon zu bekommen, welche Rolle die Variablen eines berechneten Backdoors in einer graphischen Repräsentation spielen. Da die hohe Anzahl an Variablen und Klauseln in vielen der heutigen Sat-Instanzen aus der Industrie die Möglichkeiten der Visualisierung oft übersteigt, kann es unter Umständen sinnvoll sein, ältere industrielle Instanzen zu betrachten. SatIn wurde vor allem mit dem Ziel implementiert, Einblicke in industrielle Sat-Instanzen zu verschaffen und verschiedene Backdoor-Mengen hervorzuheben. Dennoch lohnt sich stets die Visualisierung von nicht-industriellen, insbesondere von künstlich erzeugten (crafted) Sat-Instanzen.

Logik für Informatiker

Logik für Informatiker Logik für Informatiker 2. Aussagenlogik Teil 6 14.05.2012 Viorica Sofronie-Stokkermans Universität Koblenz-Landau e-mail: sofronie@uni-koblenz.de 1 Bis jetzt Syntax der Aussagenlogik: Definition der Menge

Mehr

Übung 4: Aussagenlogik II

Übung 4: Aussagenlogik II Übung 4: Aussagenlogik II Diskrete Strukturen im Wintersemester 2013/2014 Markus Kaiser 8. Januar 2014 1/10 Äquivalenzregeln Identität F true F Dominanz F true true Idempotenz F F F Doppelte Negation F

Mehr

TU5 Aussagenlogik II

TU5 Aussagenlogik II TU5 Aussagenlogik II Daniela Andrade daniela.andrade@tum.de 21.11.2016 1 / 21 Kleine Anmerkung Meine Folien basieren auf den DS Trainer von Carlos Camino, den ihr auf www.carlos-camino.de/ds findet ;)

Mehr

Resolutionsalgorithmus

Resolutionsalgorithmus 112 Resolutionskalkül Mit dem Begriff Kalkül bezeichnet man eine Menge von syntaktischen Umformungsregeln, mit denen man semantische Eigenschaften der Eingabeformel herleiten kann. Für den Resolutionskalkül:

Mehr

Binary Decision Diagrams (Einführung)

Binary Decision Diagrams (Einführung) Binary Decision Diagrams (Einführung) Binary Decision Diagrams (BDDs) sind bestimmte Graphen, die als Datenstruktur für die kompakte Darstellung von booleschen Funktionen benutzt werden. BDDs wurden von

Mehr

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme Universität Hamburg Fachbereich Mathematik Seminar: Proseminar Graphentheorie Dozentin: Haibo Ruan Sommersemester 2011 Ausarbeitung zum Modulabschluss Graphentheorie spannende Bäume, bewertete Graphen,

Mehr

Theoretische Informatik SS 03 Übung 11

Theoretische Informatik SS 03 Übung 11 Theoretische Informatik SS 03 Übung 11 Aufgabe 1 Zeigen Sie, dass es eine einfachere Reduktion (als die in der Vorlesung durchgeführte) von SAT auf 3KNF-SAT gibt, wenn man annimmt, dass die Formel des

Mehr

Syntax der Aussagenlogik. Vorlesung Logik Sommersemester 2012 Universität Duisburg-Essen. Formel als Syntaxbaum. Teilformel A 3 A 1 A 4

Syntax der Aussagenlogik. Vorlesung Logik Sommersemester 2012 Universität Duisburg-Essen. Formel als Syntaxbaum. Teilformel A 3 A 1 A 4 Syntax der Vorlesung Logik Sommersemester 2012 Universität Duisburg-Essen Barbara König Übungsleitung: Christoph Blume Eine atomare Formel hat die Form A i (wobei i = 1, 2, 3,...). Definition (Formel)

Mehr

Randomisierte Algorithmen

Randomisierte Algorithmen Randomisierte Algorithmen Randomisierte Algorithmen 7. Random Walks Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 43 Überblick Überblick Ein randomisierter

Mehr

Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13)

Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13) Berlin, 21. Februar 2013 Name:... Matr.-Nr.:... Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13) 1 2 3 4 5 6 7 8 9 Σ Bearbeitungszeit: 90 min. max. Punktezahl:

Mehr

Vorsemesterkurs Informatik

Vorsemesterkurs Informatik Vorsemesterkurs Informatik Vorsemesterkurs Informatik Mario Holldack WS2015/16 30. September 2015 Vorsemesterkurs Informatik 1 Einleitung 2 Aussagenlogik 3 Mengen Vorsemesterkurs Informatik > Einleitung

Mehr

Graphen und Bäume. A.1 Graphen

Graphen und Bäume. A.1 Graphen Algorithmen und Datenstrukturen 96 A Graphen und Bäume A.1 Graphen Ein gerichteter Graph (auch Digraph) G ist ein Paar (V, E), wobei V eine endliche Menge und E eine Relation auf V ist, d.h. E V V. V heißt

Mehr

Dynamisches Huffman-Verfahren

Dynamisches Huffman-Verfahren Dynamisches Huffman-Verfahren - Adaptive Huffman Coding - von Michael Brückner 1. Einleitung 2. Der Huffman-Algorithmus 3. Übergang zu einem dynamischen Verfahren 4. Der FGK-Algorithmus 5. Überblick über

Mehr

Ersetzbarkeitstheorem

Ersetzbarkeitstheorem Ersetzbarkeitstheorem Die Abgeschlossenheit läßt sich auch folgendermaßen formulieren: Ersetzbarkeitstheorem Seien F und G Formeln mit F G. SeienH und H Formeln, so daß H aus H hervorgeht, indem ein Vorkommen

Mehr

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V. Kapitel 4 Graphenalgorithmen 4.1 Definitionen Definition 4.1.1. Der Graph G = (V, E) ist über die beiden Mengen V und E definiert, wobei V die Menge der Knoten und E die Menge der Kanten in dem Graph ist.

Mehr

Verkettete Datenstrukturen: Bäume

Verkettete Datenstrukturen: Bäume Verkettete Datenstrukturen: Bäume 1 Graphen Gerichteter Graph: Menge von Knoten (= Elementen) + Menge von Kanten. Kante: Verbindung zwischen zwei Knoten k 1 k 2 = Paar von Knoten (k 1, k 2 ). Menge aller

Mehr

Vorlesung Logik Wintersemester 2012/13 Universität Duisburg-Essen

Vorlesung Logik Wintersemester 2012/13 Universität Duisburg-Essen Vorlesung Logik Wintersemester 2012/13 Universität Duisburg-Essen Barbara König Übungsleitung: Christoph Blume & Dr. Sander Bruggink Barbara König Logik 1 (Motivation) Wir benötigen Algorithmen für Erfüllbarkeitstests,

Mehr

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 4 für die Übung

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 20 Einstieg in die Informatik mit Java Rekursion Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 20 1 Überblick 2 Rekursion 3 Rekursive Sortieralgorithmen 4 Backtracking

Mehr

Diskrete Strukturen Kapitel 2: Grundlagen (Beweise)

Diskrete Strukturen Kapitel 2: Grundlagen (Beweise) WS 2014/15 Diskrete Strukturen Kapitel 2: Grundlagen (Beweise) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_14

Mehr

Die Klassen P und NP. Dr. Eva Richter. 29. Juni 2012

Die Klassen P und NP. Dr. Eva Richter. 29. Juni 2012 Die Klassen P und NP Dr. Eva Richter 29. Juni 2012 1 / 35 Die Klasse P P = DTIME(Pol) Klasse der Probleme, die sich von DTM in polynomieller Zeit lösen lassen nach Dogma die praktikablen Probleme beim

Mehr

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration Algorithmen & Programmierung Steuerstrukturen im Detail Selektion und Iteration Selektion Selektion Vollständige einfache Selektion Wir kennen schon eine Möglichkeit, Selektionen in C zu formulieren: if

Mehr

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g: TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 2 Prof. Dr. Helmut Seidl, S. Pott,

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik FH Wedel Prof. Dr. Sebastian Iwanowski GTI22 Folie 1 Grundlagen der Theoretischen Informatik Sebastian Iwanowski FH Wedel Kap. 2: Logik, Teil 2.2: Prädikatenlogik FH Wedel Prof. Dr. Sebastian Iwanowski

Mehr

Algorithmen für OBDD s. 1. Reduziere 2. Boole sche Operationen

Algorithmen für OBDD s. 1. Reduziere 2. Boole sche Operationen Algorithmen für OBDD s 1. Reduziere 2. Boole sche Operationen 1 1. Reduziere siehe auch M.Huth und M.Ryan: Logic in Computer Science - Modelling and Reasoning about Systems, Cambridge Univ.Press, 2000

Mehr

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8 Java 8 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Oktober 2014 JAV8 5 Java 8 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

Logische und funktionale Programmierung

Logische und funktionale Programmierung Logische und funktionale Programmierung Vorlesung 2: Prädikatenkalkül erster Stufe Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 14. Oktober 2016 1/38 DIE INTERPRETATION

Mehr

Routing Algorithmen. Begriffe, Definitionen

Routing Algorithmen. Begriffe, Definitionen Begriffe, Definitionen Routing (aus der Informatik) Wegewahl oder Verkehrslenkung bezeichnet in der Telekommunikation das Festlegen von Wegen für Nachrichtenströme bei der Nachrichtenübermittlung über

Mehr

Aussagenlogische Widerlegungsverfahren zum Nachweis logischer Eigenschaften und Beziehungen

Aussagenlogische Widerlegungsverfahren zum Nachweis logischer Eigenschaften und Beziehungen Einführung in die Logik - 4 Aussagenlogische Widerlegungsverfahren zum Nachweis logischer Eigenschaften und Beziehungen Widerlegungsverfahren zum Aufwärmen: Bestimmung von Tautologien mittels Quick Falsification

Mehr

MafI I: Logik & Diskrete Mathematik (F. Hoffmann)

MafI I: Logik & Diskrete Mathematik (F. Hoffmann) Lösungen zum 14. und letzten Aufgabenblatt zur Vorlesung MafI I: Logik & Diskrete Mathematik (F. Hoffmann) 1. Ungerichtete Graphen (a) Beschreiben Sie einen Algorithmus, der algorithmisch feststellt, ob

Mehr

Algorithmen und Datenstrukturen Kapitel 10

Algorithmen und Datenstrukturen Kapitel 10 Algorithmen und Datenstrukturen Kapitel 10 Flüsse Frank Heitmann heitmann@informatik.uni-hamburg.de 6. Januar 2016 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/8 Flüsse Graphen Grundlagen Definition

Mehr

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph.

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph. Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph. a) Es seien W 1 = (V, E 1 ), W 2 = (V, E 2 ) Untergraphen von G, die beide Wälder sind. Weiter gelte E 1 > E 2.

Mehr

abgeschlossen unter,,,, R,

abgeschlossen unter,,,, R, Was bisher geschah Turing-Maschinen können Sprachen L X akzeptieren entscheiden Funktionen berechnen f : X X (partiell) Menge aller Turing-akzeptierbaren Sprachen genau die Menge aller Chomsky-Typ-0-Sprachen

Mehr

Aussagenlogik. Aussagen und Aussagenverknüpfungen

Aussagenlogik. Aussagen und Aussagenverknüpfungen Aussagenlogik Aussagen und Aussagenverknüpfungen Aussagen sind Sätze, von denen sich sinnvollerweise sagen läßt, sie seien wahr oder falsch. Jede Aussage besitzt also einen von zwei möglichen Wahrheitswerten,

Mehr

SS2010 BAI2-LBP Gruppe 1 Team 07 Entwurf zu Aufgabe 4. R. C. Ladiges, D. Fast 10. Juni 2010

SS2010 BAI2-LBP Gruppe 1 Team 07 Entwurf zu Aufgabe 4. R. C. Ladiges, D. Fast 10. Juni 2010 SS2010 BAI2-LBP Gruppe 1 Team 07 Entwurf zu Aufgabe 4 R. C. Ladiges, D. Fast 10. Juni 2010 Inhaltsverzeichnis 4 Aufgabe 4 3 4.1 Sich mit dem Programmpaket vertraut machen.................... 3 4.1.1 Aufgabenstellung.................................

Mehr

Binary Decision Diagrams (BDDs) 1

Binary Decision Diagrams (BDDs) 1 Handout 22.11.2011 Binary Decision Diagrams (BDDs) 1 Übersicht Es gibt viele verschiedene Möglichkeiten um Boole sche Funktionen zu repräsentieren (Boole sche Formeln, Minterme, Wahrheitstabellen, ). Manche

Mehr

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung. Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 14. November 2007 1 / 22 2 / 22 Gliederung eulersche und semi-eulersche Graphen Charakterisierung eulerscher Graphen Berechnung eines

Mehr

Rechnerstrukturen. Michael Engel und Peter Marwedel WS 2013/14. TU Dortmund, Fakultät für Informatik

Rechnerstrukturen. Michael Engel und Peter Marwedel WS 2013/14. TU Dortmund, Fakultät für Informatik Rechnerstrukturen Michael Engel und Peter Marwedel TU Dortmund, Fakultät für Informatik WS 2013/14 Folien a. d. Basis von Materialien von Gernot Fink und Thomas Jansen 21. Oktober 2013 1/33 1 Boolesche

Mehr

Logic in a Nutshell. Christian Liguda

Logic in a Nutshell. Christian Liguda Logic in a Nutshell Christian Liguda Quelle: Kastens, Uwe und Büning, Hans K., Modellierung: Grundlagen und formale Methoden, 2009, Carl Hanser Verlag Übersicht Logik - Allgemein Aussagenlogik Modellierung

Mehr

4. Kreis- und Wegeprobleme Abstände in Graphen

4. Kreis- und Wegeprobleme Abstände in Graphen 4. Kreis- und Wegeprobleme Abstände in Graphen Abstände in Graphen Definition 4.4. Es sei G = (V,E) ein Graph. Der Abstand d(v,w) zweier Knoten v,w V ist die minimale Länge eines Weges von v nach w. Falls

Mehr

Algorithmen II Vorlesung am

Algorithmen II Vorlesung am Algorithmen II Vorlesung am 0..0 Minimale Schnitte in Graphen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales Forschungszentrum

Mehr

Nichtdeterministische Platzklassen

Nichtdeterministische Platzklassen Sommerakademie 2010 Rot an der Rot AG 1: Wieviel Platz brauchen Algorithmen wirklich? Nichtdeterministische Platzklassen Ulf Kulau August 23, 2010 1 Contents 1 Einführung 3 2 Nichtdeterminismus allgemein

Mehr

Logik für Informatiker

Logik für Informatiker Vorlesung Logik für Informatiker 7. Aussagenlogik Analytische Tableaus Bernhard Beckert Universität Koblenz-Landau Sommersemester 2006 Logik für Informatiker, SS 06 p.1 Der aussagenlogische Tableaukalkül

Mehr

Beispiel Aussagenlogik nach Schöning: Logik...

Beispiel Aussagenlogik nach Schöning: Logik... Beispiel Aussagenlogik nach Schöning: Logik... Worin besteht das Geheimnis Ihres langen Lebens? wurde ein 100-jähriger gefragt. Ich halte mich streng an die Diätregeln: Wenn ich kein Bier zu einer Mahlzeit

Mehr

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 11 Prof. Dr. Helmut Seidl, S. Pott,

Mehr

Informationsverarbeitung auf Bitebene

Informationsverarbeitung auf Bitebene Informationsverarbeitung auf Bitebene Dr. Christian Herta 5. November 2005 Einführung in die Informatik - Informationsverarbeitung auf Bitebene Dr. Christian Herta Grundlagen der Informationverarbeitung

Mehr

Westfählische Wilhelms-Universität. Eulersche Graphen. Autor: Jan-Hendrik Hoffeld

Westfählische Wilhelms-Universität. Eulersche Graphen. Autor: Jan-Hendrik Hoffeld Westfählische Wilhelms-Universität Eulersche Graphen Autor: 21. Mai 2015 Inhaltsverzeichnis 1 Das Königsberger Brückenproblem 1 2 Eulertouren und Eulersche Graphen 2 3 Auffinden eines eulerschen Zyklus

Mehr

Reduktionen. Algorithmen und Datenstrukturen Kapitel 6.2 Komplexitätstheorie. Exkurs: Reduktionen allgemein. Reduktionen: Erläuterungen

Reduktionen. Algorithmen und Datenstrukturen Kapitel 6.2 Komplexitätstheorie. Exkurs: Reduktionen allgemein. Reduktionen: Erläuterungen en Algorithmen und Datenstrukturen Kapitel 6.2 Komplexitätstheorie P, und C Definition () Seien L 1, L 2 {0, 1} zwei Sprachen. Wir sagen, dass L 1 auf L 2 in polynomialer Zeit reduziert wird, wenn eine

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen 1 Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Ziele 2 Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

Kapitel 1.3. Normalformen aussagenlogischer Formeln und die Darstellbarkeit Boolescher Funktionen durch aussagenlogische Formeln

Kapitel 1.3. Normalformen aussagenlogischer Formeln und die Darstellbarkeit Boolescher Funktionen durch aussagenlogische Formeln Kapitel 1.3 Normalformen aussagenlogischer Formeln und die Darstellbarkeit Boolescher Funktionen durch aussagenlogische Formeln Mathematische Logik (WS 2011/12) Kapitel 1.3: Normalformen 1/ 29 Übersicht

Mehr

Aussagenlogik Prädikatenlogik erster Stufe. Logik. Logik

Aussagenlogik Prädikatenlogik erster Stufe. Logik. Logik Grundzeichen Aussagenlogik Aussagenvariablen P, Q, R,... Junktoren nicht und oder Runde Klammern (, ) Formeln Aussagenlogik Formeln sind spezielle Zeichenreihen aus Grundzeichen, und zwar 1 Jede Aussagenvariable

Mehr

Mathematik-Vorkurs für Informatiker Aussagenlogik 1

Mathematik-Vorkurs für Informatiker Aussagenlogik 1 Christian Eisentraut & Julia Krämer www.vorkurs-mathematik-informatik.de Mathematik-Vorkurs für Informatiker Aussagenlogik 1 Aufgabe 1. (Wiederholung wichtiger Begriffe) Notieren Sie die Definitionen der

Mehr

mathe plus Aussagenlogik Seite 1

mathe plus Aussagenlogik Seite 1 mathe plus Aussagenlogik Seite 1 1 Aussagenlogik 1.1 Grundbegriffe Def 1 Aussage Eine Aussage ist ein beschriebener Sachverhalt, dem eindeutig einer der Wahrheitswerte entweder wahr oder falsch zugeordnet

Mehr

Lösungsvorschläge Blatt Z1

Lösungsvorschläge Blatt Z1 Theoretische Informatik Departement Informatik Prof. Dr. Juraj Hromkovič http://www.ita.inf.ethz.ch/theoinf16 Lösungsvorschläge Blatt Z1 Zürich, 2. Dezember 2016 Lösung zu Aufgabe Z1 Wir zeigen L qi /

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Vorlesung. Einführung in die mathematische Sprache und naive Mengenlehre

Vorlesung. Einführung in die mathematische Sprache und naive Mengenlehre Vorlesung Einführung in die mathematische Sprache und naive Mengenlehre Allgemeines RUD26 Erwin-Schrödinger-Zentrum (ESZ) RUD25 Johann-von-Neumann-Haus Fachschaft Menge aller Studenten eines Institutes

Mehr

Diskrete Strukturen Kapitel 1: Einleitung

Diskrete Strukturen Kapitel 1: Einleitung WS 2015/16 Diskrete Strukturen Kapitel 1: Einleitung Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_15

Mehr

Formale Methoden 2. Gaetano Geck Lehrstuhl I Logik in der Informatik WS 2014/2015

Formale Methoden 2. Gaetano Geck Lehrstuhl I Logik in der Informatik WS 2014/2015 Formale Methoden 2 Gaetano Geck Lehrstuhl I Logik in der Informatik WS 2014/2015 Teil 3: Logik 1 Aussagenlogik Einleitung Eigenschaften Äquivalenz Folgerung Normalformen 2 Prädikatenlogik Wenn eine Karte

Mehr

Was bisher geschah. Aufgaben: Diagnose, Entscheidungsunterstützung Aufbau Komponenten und Funktion

Was bisher geschah. Aufgaben: Diagnose, Entscheidungsunterstützung Aufbau Komponenten und Funktion Was bisher geschah Daten, Information, Wissen explizites und implizites Wissen Wissensrepräsentation und -verarbeitung: Wissensbasis Kontextwissen Problemdarstellung fallspezifisches Wissen repräsentiert

Mehr

Erfüllbarkeit von Horn-Klauseln und Berechnung des kleinsten Herbrand-Modells

Erfüllbarkeit von Horn-Klauseln und Berechnung des kleinsten Herbrand-Modells Erfüllbarkeit von Horn-Klauseln und Berechnung des kleinsten Herbrand-Modells Effiziente Entscheidung der Erfüllbarkeit von Horn-Klauseln Effiziente Berechnung des kleinsten Herbrand-Modells M P Naive

Mehr

Algorithmen zum Lösen von Vertex und Set Cover Instanzen zur Planung von Angriffen auf Netzwerke

Algorithmen zum Lösen von Vertex und Set Cover Instanzen zur Planung von Angriffen auf Netzwerke Algorithmen zum Lösen von Vertex und Set Cover Instanzen zur Planung von Angriffen auf Netzwerke Steve Göring 13.07.2012 1/18 Gliederung Einleitung Grundlagen Vertex-Cover-Problem Set-Cover-Problem Lösungsalgorithmen

Mehr

Effiziente Algorithmen

Effiziente Algorithmen Effiziente Algorithmen Aufgabe 5 Gruppe E Martin Schliefnig, 0160919 Christoph Holper, 9927191 Ulrike Ritzinger, 0125779 1. Problemstellung Gegeben ist eine Datei, die eine Million reelle Zahlen enthält.

Mehr

Einführung in Heuristische Suche

Einführung in Heuristische Suche Einführung in Heuristische Suche Beispiele 2 Überblick Intelligente Suche Rundenbasierte Spiele 3 Grundlagen Es muss ein Rätsel / Puzzle / Problem gelöst werden Wie kann ein Computer diese Aufgabe lösen?

Mehr

Mathematik für Informatiker I

Mathematik für Informatiker I Mathematik für Informatiker I Mitschrift zur Vorlesung vom 19.10.2004 In diesem Kurs geht es um Mathematik und um Informatik. Es gibt sehr verschiedene Definitionen, aber für mich ist Mathematik die Wissenschaft

Mehr

23.1 Constraint-Netze

23.1 Constraint-Netze Grundlagen der Künstlichen Intelligenz 1. April 2015 2. Constraint-Satisfaction-Probleme: Constraint-Netze Grundlagen der Künstlichen Intelligenz 2. Constraint-Satisfaction-Probleme: Constraint-Netze Malte

Mehr

Wiederholung zu Flüssen

Wiederholung zu Flüssen Universität Konstanz Methoden der Netzwerkanalyse Fachbereich Informatik & Informationswissenschaft SS 2008 Prof. Dr. Ulrik Brandes / Melanie Badent Wiederholung zu Flüssen Wir untersuchen Flüsse in Netzwerken:

Mehr

Dynamische Programmierung. Problemlösungsstrategie der Informatik

Dynamische Programmierung. Problemlösungsstrategie der Informatik als Problemlösungsstrategie der Informatik und ihre Anwedung in der Diskreten Mathematik und Graphentheorie Fabian Cordt Enisa Metovic Wissenschaftliche Arbeiten und Präsentationen, WS 2010/2011 Gliederung

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

Mehr

Übungsblatt 2 - Lösung

Übungsblatt 2 - Lösung Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 2 - Lösung Vorlesung Algorithmentechnik im WS 08/09 Ausgabe 04. November 2008 Abgabe 8. November, 5:0 Uhr (im Kasten vor Zimmer

Mehr

Binäre Suchbäume (binary search trees, kurz: bst)

Binäre Suchbäume (binary search trees, kurz: bst) Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.

Mehr

Randomisierte Algorithmen 2. Erste Beispiele

Randomisierte Algorithmen 2. Erste Beispiele Randomisierte Algorithmen Randomisierte Algorithmen 2. Erste Beispiele Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 35 Randomisierter Identitätstest

Mehr

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen Fortgeschrittene Netzwerk- und Graph-Algorithmen Dr. Hanjo Täubig Lehrstuhl für Eziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester 2007/08

Mehr

Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist.

Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist. Graphen Definition: Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist. Begriffe: Gerichteter Graph: Alle Kanten haben eine Richtung vom Anfangsknoten

Mehr

I. Aussagenlogik. Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen.

I. Aussagenlogik. Aussagenlogik untersucht Verknüpfungen wie und, oder, nicht, wenn... dann zwischen atomaren und komplexen Sätzen. I. Aussagenlogik 2.1 Syntax Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen. Sätze selbst sind entweder wahr oder falsch. Ansonsten

Mehr

1. Einleitung wichtige Begriffe

1. Einleitung wichtige Begriffe 1. Einleitung wichtige Begriffe Da sich meine besondere Lernleistung mit dem graziösen Färben (bzw. Nummerieren) von Graphen (speziell von Bäumen), einem Teilgebiet der Graphentheorie, beschäftigt, und

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale

Mehr

Kapitel 5: Minimale spannende Bäume Gliederung der Vorlesung

Kapitel 5: Minimale spannende Bäume Gliederung der Vorlesung Gliederung der Vorlesung 1. Grundbegriffe 2. Elementare Graphalgorithmen und Anwendungen 3. Kürzeste Wege. Minimale spannende Bäume. Färbungen und Cliquen. Traveling Salesman Problem. Flüsse in Netzwerken

Mehr

NP-vollständig - Was nun?

NP-vollständig - Was nun? Kapitel 4 NP-vollständig - Was nun? Wurde von einem Problem gezeigt, dass es NP-vollständig ist, ist das Problem damit nicht gelöst oder aus der Welt geschafft. In der Praxis muss es trotzdem gelöst werden.

Mehr

Erfüllbarkeit und Allgemeingültigkeit

Erfüllbarkeit und Allgemeingültigkeit Theoretische Informatik: Logik, M. Lange, FB16, Uni Kassel: 3.3 Aussagenlogik Erfüllbarkeit 44 Erfüllbarkeit und Allgemeingültigkeit Def.: eine Formel ϕ heißt erfüllbar, wennesein I gibt, so dass I = ϕ

Mehr

3. Grundlegende Begriffe von Logiken - Aussagenlogik

3. Grundlegende Begriffe von Logiken - Aussagenlogik 3. Grundlegende Begriffe von Logiken - Aussagenlogik Wichtige Konzepte und Begriffe in Logiken: Syntax (Signatur, Term, Formel,... ): Festlegung, welche syntaktischen Gebilde als Formeln (Aussagen, Sätze,

Mehr

Kapitel 12: Schnelles Bestimmen der Frequent Itemsets

Kapitel 12: Schnelles Bestimmen der Frequent Itemsets Einleitung In welchen Situationen ist Apriori teuer, und warum? Kapitel 12: Schnelles Bestimmen der Frequent Itemsets Data Warehousing und Mining 1 Data Warehousing und Mining 2 Schnelles Identifizieren

Mehr

Kombinatorische Optimierung

Kombinatorische Optimierung Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Vorlesung 4 Programm des

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

Mehr

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik Sommersemester 2015 23.04.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt 1. Terminologie 2. Endliche Automaten und reguläre Sprachen

Mehr

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck Lemma 15 KLP 1 ist genau dann lösbar, wenn das dazugehörige LP KLP 2 eine Lösung mit dem Wert Z = 0 besitzt. Ist Z = 0 für x 0, x 0, dann ist x eine zulässige Lösung von KLP 1. Beweis von Lemma 15: Nach

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr

Hilbert-Kalkül (Einführung)

Hilbert-Kalkül (Einführung) Hilbert-Kalkül (Einführung) Es gibt viele verschiedene Kalküle, mit denen sich durch syntaktische Umformungen zeigen läßt, ob eine Formel gültig bzw. unerfüllbar ist. Zwei Gruppen von Kalkülen: Kalküle

Mehr

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

4 Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine

Mehr

Einiges zu Resolutionen anhand der Aufgaben 6 und 7

Einiges zu Resolutionen anhand der Aufgaben 6 und 7 Einiges zu Resolutionen anhand der Aufgaben 6 und 7 Es gibt eine Fülle von verschiedenen Resolutionen. Die bis jetzt behandelten möchte ich hier noch ein Mal kurz erläutern. Ferner möchte ich noch auf

Mehr

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

3. Musterlösung. Problem 1: Boruvka MST

3. Musterlösung. Problem 1: Boruvka MST Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner. Musterlösung Problem : Boruvka MST pt (a) Beweis durch Widerspruch. Sei T MST von G, e die lokal minimale Kante eines

Mehr

Kurs 1612 Konzepte imperativer Programmierung Musterlösung zur Nachklausur am

Kurs 1612 Konzepte imperativer Programmierung Musterlösung zur Nachklausur am 1 Aufgabe 1 a) Da Effizienzbetrachtungen bei der Lösung der Aufgabe keine Rolle spielen, wählen wir einen einfachen, aber ineffizienten Algorithmus mit zwei ineinander verschachtelten for-schleifen. Dadiefor-Schleifen

Mehr

Uninformierte Suche in Java Informierte Suchverfahren

Uninformierte Suche in Java Informierte Suchverfahren Uninformierte Suche in Java Informierte Suchverfahren Stephan Schwiebert WS 2009/2010 Sprachliche Informationsverarbeitung Institut für Linguistik Universität zu Köln Suchprobleme bestehen aus Zuständen

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

Fakultät für Informatik Universität Magdeburg Jürgen Dassow. Vorbemerkungen

Fakultät für Informatik Universität Magdeburg Jürgen Dassow. Vorbemerkungen Vorbemerkungen if (x > y) z = x; else z = y; Wenn es blaue Tiger regnet, dann fressen alle Kirschbäume schwarze Tomaten. q(1) = 1, q(i) = q(i 1) + 2i 1 für i 2 Welchen Wert hat q(6)? 24 ist durch 2 teilbar.

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Datenstrukturen: Anordnung von Daten, z.b. als Liste (d.h. in bestimmter Reihenfolge) Beispiel: alphabetisch sortiertes Wörterbuch... Ei - Eibe - Eidotter... als Baum (d.h.

Mehr