Masterarbeit Bioinformatik

Größe: px
Ab Seite anzeigen:

Download "Masterarbeit Bioinformatik"

Transkript

1 Eberhard Karls Universität Tübingen Fakultät für Informations- und Kognitionswissenschaften Wilhelm-Schickard-Institut für Informatik Masterarbeit Bioinformatik Effizientes Preprocessing von Erfüllbarkeitsinstanzen mit Anwendung auf phylogenetische Probleme Christian Zielke 31. Mai 2010 Betreuer Dipl.-Inform. Stephan Kottler Wilhelm-Schickard-Institut für Informatik Universität Tübingen Gutachter Prof. Michael Kaufmann (Informatik) Wilhelm-Schickard-Institut für Informatik Universität Tübingen Dr. Kay Nieselt (Bioinformatik) Wilhelm-Schickard-Institut für Informatik Universität Tübingen

2 Zielke, Christian: Effizientes Preprocessing von Erfüllbarkeitsinstanzen mit Anwendung auf phylogenetische Probleme Masterarbeit Bioinformatik Eberhard Karls Universität Tübingen Bearbeitungszeitraum: Dezember Mai 2010

3 i Zusammenfassung Diese Masterarbeit präsentiert neben der Entwicklung einer SAT-Kodierung für das aus der Bioinformatik bekannte Problem der Superbaum- Kompatibilität auch die Implementierung eines Preprocessors für anwendungsbasierte SAT-Instanzen. Verschiedene Techniken zum Simplifizieren von Erfüllbarkeitsproblemen werden vorgestellt, implementiert und anhand von zahlreichen Tests bewertet. Durch den Einsatz des von uns entwickelten Preprocessors ist es möglich zahlreiche neue Instanzen zu lösen und somit die Performance von aktuellen SAT- Solvern maßgeblich zu verbessern. Gleichzeitig werden die Ergebnisse für verschiedene Bioinformatik-Instanzen zeigen, dass sowohl bei der Kodierung dieser Probleme als auch bei den Preprocessortechniken noch viel Potential für Verbesserungen besteht.

4 ii Danksagung Zu erst möchte ich mich bei meinem Betreuer Stephan dafür bedanken, dass er mich so intensiv unterstützt hat und seine Tür für mich immer offen stand. Ohne seinen ständigen Input an neuen Ideen wäre die Arbeit in ihrer jetzigen Form nicht möglich gewesen. In den letzten Monaten durfte ich das angenehme Klima am Arbeitsbereich Paralleles Rechnen genießen und möchte mich deswegen vor allem bei Prof. Michael Kaufmann bedanken, der es mir ermöglicht hat, mich als ein Teil des Teams zu fühlen. Aber auch die restlichen Mitarbeiter möchte ich hier erwähnen. Ich hoffe mit Andi, Markus, Philip, Robert und Stephan auch in Zukunft noch den einen oder anderen Kuchen verspeisen zu können. ;-) Einen herzlichen Dank gilt es auch an Dr. Kay Nieselt zu richten, die es durch Ihre Unterstützung erst ermöglicht hat, dass die Arbeit so angefertigt werden konnte. Wie schnell doch die letzten Jahre vergangen sind... Das lag vor allem auch an der kurzweiligen Zeit mit meinen Kommilitonen, bei denen ich mich hiermit auch recht herzlich bedanken möchte. Erstaunlich, wie sicher wir die Untiefen des Bachelorstudiums umschifft haben, um uns auch im Master trotz der unterschiedlichen Planungen nicht aus den Augen zu verlieren. Zu guter Letzt möchte ich mich hier von ganzem Herzen bei meiner Familie und Freunden bedanken, die mich bei allem stets voll unterstützt haben. Danke!

5 Inhaltsverzeichnis Abbildungsverzeichnis Tabellenverzeichnis Abkürzungsverzeichnis vii ix xi 1 Einleitung 1 2 Grundlagen Graphentheorie Graph Zusammenhangskomponente Baum Das Erfüllbarkeitsproblem Aussagenlogik Konjunktive Normalform DIMACS-Format SAT-Solving Davis-Putnam-Verfahren Aus Konflikten lernen Preprocessing Preprocessing Motivation iii

6 iv INHALTSVERZEICHNIS 3.2 SatELite Datenstrukturen Unit Propagation Subsumierung Selbst-Subsumierung Variableneliminierung top-level Simplifizierungsmethode Veränderungen in der SatELite-Version von Selbst-Subsumierung mit Binärresolution Eliminierung geblockter Klauseln Literals Blocks Distance Ergebnisse Industrielle Instanzen SatELite - Techniken Resolutionskriterium Entfernung geblockter Klauseln Bioinformatik Instanzen Das Superbaum-Kompatibilitätsproblem Allgemeines zur SAT-Kodierung Problemdefinition Gewurzelte Bäume BUILD-Algorithmus SAT-Kodierung für gewurzelte Bäume Ungewurzelte Bäume NP-Vollständigkeit SAT-Kodierung für ungewurzelte Bäume Ergebnisse Instanzgrößen

7 INHALTSVERZEICHNIS v Biologische Testdatensätze Zufallsbäume als Testdatensätze Vergleich mit vorhandenen Implementationen Laufzeit und Preprocessoreffektivität Diskussion und Ausblick Preprocessor Superbaum-Kompatibilitätsproblem Literaturverzeichnis 99

8 vi INHALTSVERZEICHNIS

9 Abbildungsverzeichnis 2.1 DIMACS Format Beispiel Entscheidungsbaum Implikationsgraph cactus plot verschiedener Implementierungen mit maximaler Berechnungszeit 1200 Sekunden cactus plot verschiedener Implementierungen mit maximaler Berechnungszeit Sekunden restringierter ungewurzelter Baum restringierter gewurzelter Baum Das gewurzelte Tripel ab c Beispiel clustering Graph Der von BUILD berechnete Baum T Beispiel Abdeckungsbereiche von Knoten DepictEdge vii

10 viii ABBILDUNGSVERZEICHNIS

11 Tabellenverzeichnis 4.1 Anteil an geblockten Klauseln für jede Instanzklasse, aufsteigend sortiert Ergebnisse Anwendungs-Instanzen Ergebnisse Anwendungs-Instanzen mit SatELite Preprocessortechniken Ergebnisse Anwendungs-Instanzen ohne Variableneliminierung Ergebnisse Anwendungs-Instanzen ohne Definitionsresolution Ergebnisse Anwendungs-Instanzen mit anderem Resolutionskriterium Ergebnisse Anwendungs-Instanzen mit Eliminierung geblockter Klauseln Ergebnisse Anwendungs-Instanzen nach langer Berechnungszeit Ergebnisse Anwendungs-Instanzen nach langer Berechnungszeit mit SatELite Preprocessortechniken Ergebnisse Anwendungs-Instanzen nach langer Berechnungszeit mit Eliminierung geblockter Klauseln Ergebnisse Anwendungs-Instanzen nach langer Berechnungszeit ohne Definitionsresolution Ergebnisse Bioinformatik-Instanzen Ergebnisse Bioinformatik-Instanzen nach langer Berechnungszeit Test des Abdeckungsbereichs Instanzgrößen für gewurzelte Bäume ix

12 x TABELLENVERZEICHNIS 5.3 Speicherplatzbedarf für gewurzelte Bäume Instanzgrößen für ungewurzelte Bäume Speicherplatzbedarf für ungewurzelte Bäume Ergebnisse gewurzelte Bäume Laufzeiten gewurzelte Bäume Ergebnisse Verteilung gewurzelte Bäume Ergebnisse Verteilung ungewurzelte Bäume Ergebnisse ungewurzelte Bäume Laufzeiten ungewurzelte Bäume Preprocessor Ergebnisse gewurzelte Bäume Preprocessor Effektivität gewurzelte Bäume Preprocessor Ergebnisse ungewurzelte Bäume Preprocessor Effektivität ungewurzelte Bäume

13 Abkürzungsverzeichnis bzw. ca. CDCL DIMACS DPLL engl. et al. LBD LCA MAX SAT o.b.d.a. SAT vgl. z.b. beziehungsweise circa Conflict Driven Clause Learning Center for Discrete Mathematics and Theoretical Computer Science, Rutgers, New Jersey Davis-Putnam-Logemann-Loveland-Verfahren englisch lateinisch für: und andere Literals Blocks Distance lowest common ancestor maximum satisfiabilty ohne Beschränkung der Allgemeinheit satisfiabilty (engl. für Erfüllbarkeit) vergleiche zum Beispiel xi

14 xii ABKÜRZUNGSVERZEICHNIS

15 Kapitel 1 Einleitung In Zeiten von Mobiltelefonen, die neben dem fast schon zu vernachlässigendem Telefonieren auch Fotografieren, Videos aufnehmen und abspielen können, entwickelte sich in den letzten Jahren der Trend möglichst komplexe Berechnungen auf möglichst kleinen und mobilen Geräten durchführen zu lassen. So entstand ein Markt für Anwendungen, die über das Internet verbreitet werden und zum Beispiel aufwändige Routenberechnungen über mehrere Staatsgrenzen hinweg in wenigen Sekunden durchführen. Dadurch kann der Eindruck entstehen, dass heutzutage jedes beliebige Problem grundsätzlich in kurzer Zeit zu lösen ist. In der Informatik gibt es jedoch Fragestellungen, für die es im Moment weder effiziente Lösungmöglichkeiten gibt, noch bekannt ist, ob es überhaupt möglich sein wird diese Probleme durch effiziente Verfahren zu lösen. Zu dieser Gruppe von Problemen gehört auch das Erfüllbarkeits-, bzw. aus dem Englischen von satisfiability abgeleitete SAT-Problem. Es beschreibt die Frage, ob eine boolsche Formel durch die Wahl von Variablenwerten wahr wird. Für Formeln geringer Größe ist die (Un-)Erfüllbarkeit noch per Hand berechenbar. So ist zum Beispiel die UND-Verknüpfung der Aussagen Deutschland steht im WM-Finale 2010, Spanien steht im WM-Finale 2010 und Deutschland wird Weltmeister durchaus erfüllbar, wenn auch aus Sicht der Fußballfans eher Wunschdenken. Eine Formel, die eine Aussage und ihre Verneinung durch ein UND verknüpft, wie z.b. Michael Ballack fährt zur Fußball-WM und Michael Ballack fährt nicht zur Fußball-WM ist jedoch nicht erfüllbar. Im schlechtesten Fall muss man alle Variablenbelegungen testen, um eine Aussage über die Erfüllbarkeit der Formel treffen zu können. Bei n Variablen, die jeweils nur die Werte wahr oder falsch annehmen können, und somit 2 n möglichen Variablenbelegungen führt dies schnell zu einer unpraktikablen Berechnungszeit. Nachdem mit Hilfe des SAT-Problems erstmals die Menge der NP-vollständi- 1

16 2 KAPITEL 1. EINLEITUNG gen Probleme begründet wurde, galt es lange Zeit ausschließlich als theoretisches Problem. In den letzten Jahren wurden jedoch mehr und mehr Fragestellungen aus der Praxis, deren enorme Komplexität von einem Menschen nicht mehr überschaubar sind, als SAT-Problem dargestellt. Ein Beispiel hierfür ist unter Anderem das Testen von möglichen Automobilkonfigurationen [SKK00]. Im Gegensatz zu zufällig oder von Hand erstellten Probleminstanzen, weisen SAT-Probleme, die reale Anwendungen darstellen eine Struktur [Leh06] auf, die es ermöglicht eine Lösung in einer relativ kurzen Zeit zu finden. Diese Arbeit beschäftigt sich zum Einen mit der Frage, inwiefern diese Strukturen ausgenutzt werden können um die Probleminstanzen bereits vor dem eigentlichen Lösungsprozess in ihrer Größe und ihrem Aufbau zu verändern. Gelingt es eine Vielzahl an redundanten Informationen in der SAT-Instanz zu identifizieren, so kann die Problemgröße und damit auch die Berechnungszeit erheblich verringert werden. Der zweite Schwerpunkt dieser Arbeit liegt in der Entwicklung einer SAT- Kodierung, und damit einer neuen Herangehensweise, für das Superbaum- Kompatibilitätsproblem aus der Bioinformatik. Seit dem Charles Darwin seine Evolutionstheorie im Jahr 1859 veröffentlicht hat beschäftigen sich Wissenschaftler auf der ganzen Welt mit dem Baum des Lebens, der alle evolutionären Verwandtschaftsbeziehungen von den (ehemals) existierenden Arten darstellt. Das Superbaum-Kompatibilitätsproblem hilft bei der Erstellung dieses Baumes, da es für eine Menge an Teilbäumen überprüft, ob die Gesamtheit der in diesen Bäumen vorhandenen Verwandtschaftsbeziehungen alle in einem großen Superbaum dargestellt werden können. An Hand der SAT-Instanzen des Superbaum-Kompatibilitätsproblems und anderer bereits in SAT kodierter Probleme aus der Bioinformatik soll schließlich getestet werden, ob die Techniken zum Vereinfachen von SAT- Problemen auch in gleichem Maß auf Bioinformatik-Instanzen anwendbar sind, oder ob sie über andere Strukturen verfügen, und somit andere Techniken der Simplifizierung erfordern. Die Arbeit gliedert sich dazu wie folgt: Die zum Verständnis des behandelten Themas benötigten Grundlagen werden in Kapitel 2 erarbeitet. Anschließend werden in Kapitel 3 die einzelnen Techniken zum Simplifizieren der SAT- Instanzen vorgestellt und die erzielten Ergebnisse in Kapitel 4 besprochen, bevor die SAT-Kodierung des Superbaum-Kompatibilitätsproblems in Kapitel 5 vorgestellt und an Hand von Datensätzen bewertet wird. Eine Diskussion und ein kurzer Ausblick im Kapitel 6 beschließen die Arbeit.

17 Kapitel 2 Grundlagen Das folgende Kapitel soll die theoretischen Grundlagen der Masterarbeit kurz vorstellen und einen Überblick über die zu behandelnden Themen geben. Zu Beginn des Kapitels werden allgemeine Definitionen der Graphentheorie wiederholt, um eine Grundlage für spätere Anwendungen und verwendete Techniken beim SAT-Solving und Preprocessing zu schaffen. Danach wird das Erfüllbarkeitsproblem definiert und mit Hilfe des DIMACS- Formates eine Grundlage zur Verarbeitung der Daten geschaffen, bevor Techniken der aktuellen SAT-Solver vorgestellt werden. In diesem Zusammenhang wird am Ende des Kapitels auch kurz auf die Möglichkeit eingegangen, die SAT-Instanzen durch einen sogenannten Preprocessor zu bearbeiten, um die Laufzeit, die für das Lösen der Erfüllbarkeitsprobleme benötigt wird, zu reduzieren und somit eine Motivation für die vorliegende Arbeit zu geben. 2.1 Graphentheorie Wie wir im weiteren Verlauf der Arbeit sehen werden, stellen graphentheoretische Probleme nicht nur mögliche Anwendungsgebiete für Erfüllbarkeitsprobleme dar. Sie spielen auch in der Technik der SAT-Solver und des Preprocessors eine wichtige Rolle. Deshalb werden in diesem Abschnitt einige grundlegende Dinge definiert. Die Definitionen sind auch in verschiedenen theoretischen Werken, z.b. [Bol98], nachzulesen Graph Als Graph G = (V, E) wird ein Tupel aus einer Menge von Knoten V (für engl. vertices) und einer Menge Kanten E (für engl. edges) bezeichnet. Dabei beschreibt die Kantenmenge E V V eine Relation zwischen Knoten. Man unterscheidet allgemein zwischen gerichteten und ungerichteten Graphen. Während im Falle eines ungerichteten Graphen die Kante e 1 = (u, v) E von 3

18 4 KAPITEL 2. GRUNDLAGEN der Kante e 2 = (v, u) E nicht zu unterscheiden ist, spielt die Ordnung des Knotentupels im gerichteten Graphen eine wichtige Rolle. Man bezeichnet dann z.b. für e 1 u als Quelle oder Startknoten und v als Ziel oder Endknoten der Kante. In der gesamten Arbeit werden wir nur einfache Kanten betrachten. Zwei Kanten aus dem Graphen G dürfen somit nicht sowohl die identische Quelle als auch das identische Ziel besitzen. Außerdem sind die in der vorliegenden Arbeit verwendeten Kanten stets ungewichtet. Die Adjazenz zweier Knoten u und v ist dann gegeben, wenn es eine Kante e = (u, v) E gibt. Diese Kante e ist darüber hinaus inzident zu den Knoten u und v. Als Pfad p = (u, v), der von Knoten u V ausgeht und bei dem Knoten v V endet, wird die Menge von Kanten {(u, x 1 ), (x 1, x 2 ),..., (x i 1, x i ), (x i, v)} E mit x i x j i j bezeichnet. Die Länge eines Pfades ist die Anzahl an Kanten, die dieser Pfad abdeckt. Existiert in einem Graphen für jeden Knoten u V kein Pfad p = (u, u) der Länge > 0, so ist dieser Graph azyklisch Zusammenhangskomponente Eine Zusammenhangskomponente Z = {v i,..., v j } ist definiert als eine Menge von Knoten für die gilt: v i, v j Z : p 1 = (v i, v j ) p 2 = (v j, v i ). Diese Menge muss maximal sein, also es darf kein Knoten v V \Z existieren, für den Z = Z v ebenfalls eine Zusammenhangskomponente darstellt. Jeder Graph kann in seine disjunkten Zusammenhangskomponenten ZSK = Z 1... Z k zerlegt werden. Die Komponenten bilden dann eine Partition von Knoten, das heißt: Z i, Z j ZSK : Z i Z j = und 1 i k Z i = V. Ist ZSK = 1, so ist der Graph zusammenhängend. Ein gerichteter Graph ist schwach zusammenhängend, falls der dazugehörige ungerichtete Graph (jede gerichtete Kante wird durch eine ungerichtete ersetzt) zusammenhängend ist Baum Ist ein Graph (schwach) zusammenhängend und darüberhinaus noch azyklisch, so ist es ein Baum. In den meisten Fällen handelt es sich bei Bäumen um gerichtete Graphen. In diesem Fall nimmt der sogenannte Wurzelknoten r (für engl. root) eine besondere Rolle ein. Er ist der einzige Knoten ohne eingehende Kanten:

19 2.2. DAS ERFÜLLBARKEITSPROBLEM 5 e = (v i, r) E v i V. Alle anderen Knoten des Graphen können aber von diesem Knoten aus erreicht werden: p = (r, v i ) v i V \ r. Die Länge des Pfades p = (r, v i ) wird gleichzeitig auch als Tiefe des Knotens v i bezeichnet. Die Tiefe des Baumes definiert man infolgedessen als die Länge des längsten möglichen Pfades von der Wurzel zu einem beliebigen anderen Knoten im Baum. Die Knoten, die keine ausgehenden Kanten besitzen, nennt man Blätter. Knoten, die weder Blatt noch Wurzel sind, bezeichnet man als innere Knoten. In Kapitel 5 gehen wir auf phylogenetische Bäume genauer ein. Diese Bäume sind Anwendungen aus der Bioinformatik, mit denen Verwandtschaftsbeziehungen z.b. zwischen einzelnen Spezien, Individuen oder auch Genen dargestellt werden. Es ist also nicht verwunderlich, dass für ein Knotenpaar (u, v) E des Baumes folgende Bezeichnungen üblich sind: Knoten u ist Vorgänger, oder Vater von v und v ist Nachfolger, bzw. Kind von u. Im Spezialfall des binären Baumes besitzt jeder Knoten maximal zwei Kinder. 2.2 Das Erfüllbarkeitsproblem Das Erfüllbarkeitsproblem der Aussagenlogik (SAT, von engl. satisfiability) ist eine wichtige Problemstellung der Theoretischen Informatik, hat aber auch viele praktische Anwendungen, wie z.b. die Ablaufplanung (engl. scheduling) [Sch88], Testen von Software [KM04], künstliche Intelligenz [SK92] und viele weitere [MS08]. Im Folgenden werden einige grundlegende Begriffe definiert Aussagenlogik Im menschlichen Sprachgebrauch sind Aussagen Sätze, bei denen entschieden werden kann, ob sie wahr oder falsch sind. Ähnlich funktioniert das auch in der Aussagenlogik. Das Alphabet der Sprache der Aussagenlogik besteht aus folgenden Elementen: Menge der Variablen V die Konstanten true (1) und false (0) die Junktoren Negation ( ), Konjunktion ( ) und Disjunktion ( ) Hilfssymbole, z.b. Klammern

20 6 KAPITEL 2. GRUNDLAGEN Wir betrachten nur die Junktoren, und, da Implikation ( ), Äquivalenz ( ), Antivalenz ( ) usw. mit Hilfe der drei erstgenannten ausgedrückt werden können. Eine Formel ϕ der Aussagenlogik kann mit Hilfe des Alphabets und folgenden Regeln gebildet werden: 1. Jede Variable v der gegebenen Menge V und jede Konstante ist eine Formel. 2. Wenn α eine Formel ist, so ist auch (α) eine Formel. 3. Wenn α und β jeweils Formeln sind, so sind auch (α β) und (α β) jeweils Formeln. Die eindeutige Zuordnung ψ : v {0, 1}, v V von Variablen zu Wahrheitswerten wird Variablenbelegung genannt. Sei Φ die Menge aller möglichen Formeln. Dann kann mit einer gegebenen Variablenbelegung ψ und der Funktion inter ψ : ϕ {0, 1}, ϕ Φ jede Formel interpretiert (ausgewertet) werden. Die Funktion inter ψ definieren wir rekursiv durch folgende Regeln: inter ψ (v) = ψ(v), falls v V inter ψ (c) = c, falls c Konstante inter ψ ( ϕ) = 1 inter ψ (ϕ), falls ϕ Φ inter ψ (ϕ 1 ϕ 2 ) = min(inter ψ (ϕ 1 ), inter ψ (ϕ 2 )), falls ϕ 1, ϕ 2 Φ inter ψ (ϕ 1 ϕ 2 ) = max(inter ψ (ϕ 1 ), inter ψ (ϕ 2 )), falls ϕ 1, ϕ 2 Φ Eine Variablenbelegung ψ x für eine Formel φ, für die inter ψx (φ) = 1 gilt, heißt Modell. Das Erfüllbarkeitsproblem entscheidet somit für eine gegebene Formel φ, ob sie ein Modell besitzt - also ob sie erfüllbar ist Konjunktive Normalform Jede geschlossene Klammerung stellt eine sogenannte Klausel dar. Die einzelnen aussagenlogischen Formeln, die innerhalb einer Klausel durch Disjunktionen oder Konjunktionen miteinander verbunden sind, bezeichnen wir als Terme. Sind alle Terme einer Klausel mittels Disjunktionen verbunden, so ist die Klausel disjunktiv. Dementsprechend ist die Klausel konjunktiv, sofern alle enthaltenen Terme durch Konjunktionen miteinander verbunden sind.

21 2.2. DAS ERFÜLLBARKEITSPROBLEM 7 Mittels folgender Regeln zur Klammerersparnis lassen sich Formeln vereinfachen: 1. ((α β) γ) = (α β γ) 2. ((α β) γ) = (α β γ) 3. Durch die höhere Priorität der Konjunktion ( ) gegenüber der Disjunktion ( ) ergibt sich ebenfalls: ((α β) γ) = (α β γ) Eine Formel φ ist in konjunktiver Normalform (CNF) genau dann, wenn alle ihre Klauseln C i disjunktiv sind, das heißt C i = (l i1 l i2 l ik ) und die einzelnen Klauseln der Formel konjunktiv miteinander verbunden sind, also φ = C 1 C 2 C n. Literale werden hier durch l ij bezeichnet, wobei ein Literal mit positiver Polarität eine Variable (l pos = var(l) = x) darstellt, und ein Literal mit negativer Polarität die Negation einer Variable (l neg = var(l) = x) symbolisiert. Jede Formel der Aussagenlogik kann in diese Normalform überführt werden [DP60]. Im weiteren Verlauf der Arbeit werden ausschließlich Formeln in konjunktiver Normalform betrachtet. Eine Formel in CNF ist erfüllbar, wenn es eine Variablenbelegung gibt, so dass in jeder Klausel mindestens ein Literal zu true ausgewertet werden kann. Werden mit einer Variablenbelegung ψ partiell nur eine Teilmenge S V Wahrheitswerte zugewiesen, so spricht man von einer partiellen Belegung. Durch diese partielle Belegung entsteht eine Instanz φ ψ partiell des ursprünglichen Problems φ mit V ψ partiell = V \ S und den durch die partielle Belegung nicht erfüllten Klauseln: C ψ partiell i = {l ij var(l ij ) V ψ partiell } : l ij C i mit ψ partiell (l ij ) = 1 Als Unit Klauseln bezüglich einer Variablenzuweisung bezeichnet man Klauseln, für die gilt: C ψ partiell i = DIMACS-Format Die meisten verfügbaren Benchmarks liegen in einem Dateiformat vor, das speziell zur Speicherung von SAT-Instanzen in konjunktiver Normalform für die DIMACS Challenge entwickelt wurde [DIM93]. Die Formatdefinition sieht vor, dass am Anfang der Datei beliebig viele Kommentarzeilen auftreten können. Diese Zeilen müssen mit dem Buchstaben c beginnen. Nach den Kommentarzeilen folgt die Problemzeile. Ihr Format ist

22 8 KAPITEL 2. GRUNDLAGEN aus vier Elementen aufgebaut: p <Problemfall> <Anzahl an Variablen> <Anzahl an Klauseln>. In unserem Fall ist <Problemfall> immer CNF, die beiden anderen Elemente geben die Anzahl an Variablen bzw. Klauseln der zu bearbeitenden Instanz an. Nach dieser Problemzeile schließen sich die Beschreibungen der einzelnen Klauseln an. Jede Klausel wird durch eine mittels beliebiger whitespaces (Leerzeichen, Tabulator, line feed, etc.) getrennte Liste von Ganzen Zahlen zuzüglich abschließender 0 dargestellt. Jede Ganze Zahl x 0 gibt dabei ein Literal x an, für das gilt: var(x) = x. Ist das Vorzeichen der Zahl x negativ, so hat das Literal negative Polarität, andernfalls positive Polarität. Die Nummerierung der Variablen muss dabei weder bei eins beginnen, noch fortlaufend sein. Ein Beispiel für die Kodierung der Formel φ = (x 1 x 3 ) (x 2 x 3 ) (x 4 ) ist in Abbildung 2.1 dargestellt. c ein kleines Beispiel für eine Kodierung c einer SAT-Instanz im DIMACS-Format p cnf Abbildung 2.1: DIMACS Format Beispiel Die abschließende 0 der letzten aufgeführten Klausel kann laut Definition des Formats auch weggelassen werden. Das EOF terminiert somit sowohl die Datei, als auch die letzte Klausel. 2.3 SAT-Solving Stephen Cook definierte 1971 die Klasse der NP-vollständigen Probleme anhand des satisfiability Problems [Coo71]. Ein Jahr darauf veröffentlichte Richard Karp insgesamt 21 Probleme, z.b. KNAPSACK und CLIQUE, die ebenfalls in dieser Klasse liegen [Kar72] und begründete damit eine Menge von Problemen, über die man bis heute nicht sagen kann, ob es effiziente Verfahren gibt, mit deren Hilfe sich diese schwierigen Probleme lösen lassen.

23 2.3. SAT-SOLVING Davis-Putnam-Verfahren Bereits über 10 Jahre bevor Stephen Cook die NP-vollständigen Probleme zum ersten Mal beschrieb, wurde von Martin Davis und Hilary Putnam 1960 ein Verfahren entwickelt, mit dem man erstmals die Erfüllbarkeit von SAT- Instanzen in konjunktiver Normalform überprüfen konnte [DP60]. Das Verfahren basiert auf den folgenden drei grundlegenden Regeln: Unit Propagation Seien F, A, B, C Formeln in CNF und a, b, c, p Literale. So gelten folgende Regeln: F = A p B p C F = 0 (2.1) F = p (p a) ( p b c) F = (b c) (2.2) F = p (p a) ( p b c) F = a (2.3) falls F = F = 1 (2.4) Enthält eine Formel F eine Unit Klausel C = (p), so ist F nur erfüllbar, wenn p wahr ist. Aus diesem Grund können alle Klauseln, die p enthalten, aus der Formel entfernt werden. Außerdem können alle Vorkommen des Literals p aus den entsprechenden Klauseln gestrichen werden. Dadurch können neue Unit Klauseln entstehen. Positiv-Negativ-Regel (pure literal rule) Kommt ein Literal p in einer CNF F nur in einer Polarität vor, so bezeichnet man dieses Literal als pure. Der Wahrheitswert der dazugehörgien Variable kann in der entstehenden partiellen Variablenbelegung ψ partiell dann entsprechend der Polarität gesetzt werden. Alle Klauseln, die p enthalten, werden aus der Instanz entfernt (subsumiert). Für die entstandene Instanz F ψ partiell gilt: F ψ partiell = 0 F = 0 (2.5) F ψ partiell = F = 1 (2.6) Regel zum Eliminieren von Literalen (Resolution) Seien F, A, B, C Formeln in CNF und p Literal / A, B, C. So gilt folgende Regel: F = (A p) (B p) C F = 0 ((A B) C) = 0 (2.7) Diese Regel beschreibt die Eliminierung einer Variable p mitsamt aller vorkommenden Literale. Sei α die Menge aller Klauseln der Formel, in der das Literal p vorkommt, β die Menge der Klauseln, in der das Literal p vorkommt und γ die restlichen Klauseln: γ = F \ (α + β).

24 10 KAPITEL 2. GRUNDLAGEN α p C i α C i ψ p 1 β p C i β C i ψ p 1 Aus der Beobachtung heraus, dass die Klauselmenge α nur erfüllt ist, wenn entweder p = true ist, oder aber die Konjunktion aller Klauseln in α nach Entfernung des Literals p zu true ausgewertet werden kann und analoger Betrachtung für β ergibt sich dann mit der Umbennung der Konjunktionen zu A, bzw. B die Regel 2.7. Die Regeln der Unit Propagation sowie die pure literal rule werden in dieser Form auch heute noch als Propagieren bezeichnet und so lange ausgeführt, bis beide Regeln nicht mehr anwendbar sind. Die benötigte Laufzeit für diese Operationen ist linear abhängig von der Größe der Formel: O( F ) (vgl. [Val00]) mit F = C F C. Die hier beschriebene Resolution kann zu einer exponentiell anwachsenden Anzahl an neuen Klauseln führen, da die durch Regel 2.7 entstandene Formel, um wieder in CNF vorzuliegen, noch ausmultipliziert werden muss. Dieses Speicherplatz- und Laufzeitproblem wurde zwei Jahre später durch den Algorithmus von Davis, Logemann und Loveland [DLL62] verbessert. In der Literatur wird dieses Verfahren daher oftmals als Davis-Putman-Logemann- Loveland-Verfahren, oder kurz DPLL, betitelt. Andere übliche Bezeichnungen sind DLL und Davis-Putnam-Verfahren. Die ursprüngliche dritte Regel wurde durch folgende logisch äquivalente, aber besser zu implementierende ersetzt: Branching (splitting rule) Seien F, A, B, C Formeln in CNF und p Literal / A, B, C. So gilt folgende Regel: F = (A p) (B p) C F = 0 (A C) = 0 und (B C) = 0 (2.8) Mit anderen Worten: Ist p = true, so muss B C gelten, ist p = false, so muss A C erfüllt sein. Mit Hilfe der neuen Regel 2.8 lässt sich nun über einen sogenannten binären Entscheidungsbaum der gesamte Suchraum an Variablenzuweisungen traversieren. Die Kanten des Baumes werden dabei üblicherweise mit der hinzugefügten Variablenbelegung markiert, die Knoten beinhalten die durch Resolution entstandene Formel. Es kann vorkommen, dass mehrere Knoten die gleiche Klauselmenge darstellen. Jeder Knoten repräsentiert dabei aber eine andere partielle Variablenbelegung, die durch Ablaufen des Pfades ausgehend von der Wurzel des Baumes bis zu dem entsprechenden Knoten über die Benennung der Kanten abgelesen werden kann.

25 2.3. SAT-SOLVING 11 {(a b) (a b) (a b)} a = true a = false {(b)} {(b) (b)} b = true b = false b = true b = false {} {()} {()} {()} Abbildung 2.2: Entscheidungsbaum Ein Modell ist gefunden, wenn in einem Blatt des Entscheidungsbaumes eine leere Formelmenge dargestellt wird. Für das in Abbildung 2.2 angegebene Beispiel F = {(a b) (a b) (a b)} ergibt also die Variablenbelegung, in der jeweils a und b true zugewiesen wird, dass die Formel erfüllbar ist. Eine mögliche Implementierung des DPLL-Algorithmus ist in Algorithmus 1 geschildert. In der dort gezeigten rekursiven Ausführung werden in Zeile 1 die Regeln der Unit Propagation, bzw. pure literal rule, auf die Formel so oft wie möglich angewendet. Wenn dadurch alle Klauseln der Formel entfernt wurden, so ist die Klausel nach Regel 2.6 erfüllbar (SAT). Die Variablenbelegung V bildet dann das Modell. Ist allerdings durch die Propagation eine leere Klausel in der Formel entstanden, so ist die Formel nicht erfüllbar (UNSAT). Tritt keiner der beiden genannten Fälle ein, so wird das Branching angewendet. Es wird eine in der aktuellen Formel ungebundene Variable var gewählt (Algorithmus 1, Zeile 7), auf true gesetzt und die Funktion rekursiv gestartet. Ist die Formel mit dieser und in eventuell weiteren Rekursionsstufen getroffenen Variablenbelegungen erfüllbar, so wird dieses an die nächst höhere Rekursionsstufe weitergegeben. Führt die auf true gesetzte Variable var allerdings zu einem Konflikt, der sich als Rückgabewert UNSAT äußert, so wird var auf false gesetzt und die Funktion rekursiv gestartet. Das Ergebnis dieser Rekursion wird direkt in die nächst höhere Rekursionsstufe zurückgegeben, da alle möglichen Variablenbelegungen für var nun durchgetestet wurden. Der binäre Entscheidungsbaum wird also, sollte vorher kein Modell gefunden werden, vollständig durchlaufen. Für die Wahl einer geeigneten ungebundenen Variable var der Formel gibt es verschiedene Heuristiken, die hier aber nicht vollständig besprochen werden, da sie nicht das zentrale Thema der Arbeit bedienen. Lediglich die Heuristik VSIDS wird in Abschnitt kurz erläutert.

26 12 KAPITEL 2. GRUNDLAGEN Algorithmus 1 DPLL(F, V ) Eingabe: Eine Formel F in CNF. Eingabe: Eine (partielle) Variablenbelegung V für v i C F. Ausgabe: SAT oder UNSAT. 1: var belegung = propagiere(f,v) 2: if F = then 3: return SAT 4: else 5: if F enthält C i = then 6: return UNSAT 7: var = wähle ungebundene variable(f,v) 8: V = V (var true) 9: if DPLL(F, V ) == SAT then 10: return SAT 11: else 12: V = V \ (var true) 13: V = V (var false) 14: return DPLL(F, V ) Aus Konflikten lernen Mit der Entwicklung des SAT-Solvers Chaff wurde im Jahr 2000 eine neuartige Variablenheuristik vorgestellt [MMZ + 01]. Die Technik des VSIDS (Variable State Independent Decaying Sum) bewertet die einzelnen Literale dabei anhand ihrer Häufigkeit in Konflikten. Auch in aktuellen SAT-Solvern wie MiniSAT [ES03] wird die im folgenden kurz vorgestellte Idee noch verfolgt: Jedes Literal verfügt über einen Aktivitätszähler. Dieser ist zu Beginn des SAT-Solvings auf 0 initialisiert. Führt eine partielle Variablenbelegung zu einem Konflikt, so wird der Zähler für alle Literale, die an dieser Belegung teilhaben, um 1 erhöht. Nähere Erläuterungen zum Entstehen und Entdecken von Konflikten folgen im Anschluss. Die Variable des Literals mit der höchsten Aktivität wird als Entscheidungsvariable gewählt. Nach einer festen Anzahl an Iterationen werden alle Aktivitäten mit einer Konstanten c < 1 multipliziert, um späteren Konflikten eine höhere Gewichtung bei Berechnung der Aktivität zu gewähren. Durch diese Wahl der Entscheidungsvariable konnte vor allem für nicht erfüllbare Instanzen ein großer Laufzeitgewinn erzielt werden. (vgl. [MFM04])

27 2.3. SAT-SOLVING 13 Die Idee, aus auftretenden Konflikten während des SAT-Solvings zu lernen, wurde schon durch die Entwicklung von CDCL (conflict driven clause learning) bekräftigt. Der SAT-Solver GRASP[MSS99], entwickelt von Marques-Silva und Sakallah, setzte als einer der ersten das Generieren von Konfliktklauseln ein, um die während des Lösungsprozesses gewonnenen Informationen wiederverwenden zu können. Die dieser Technik zugrundeliegende Idee soll im Folgenden kurz erläutert werden. Um aus Konflikten lernen zu können müssen diese, das liegt in der Natur der Sache, zunächst entdeckt werden. Eine typische Strategie zur Erkennung dieser durch partielle Variablenbelegungen auftretenden Konflikte verwendet einen Implikationsgraphen. Mit Hilfe des Beispiels aus Abbildung 2.3 soll die Idee kurz vorgestellt werden. x 1 0@1 x 3 0@2 C 5 C 2 C 4 C1 x 5 0@1 C 2 C 4 x 2 1@2 C 3 x 4 1@2 x 6 0@2 x 4 0@2 Abbildung 2.3: Implikationsgraph Betrachten wir die Formel F, welche unter anderem folgende Klauseln enthält: C 1 = (x 3 x 4 ) C 2 = (x 2 x 3 x 5 ) C 3 = (x 4 x 6 ) C 4 = (x 2 x 3 x 6 ) C 5 = (x 1 x 5 ) Im bisherigen Lösungsprozess wurde auf der ersten Entscheidungsebene x 1 false zugewiesen. Diese Zuweisung in Verbindung mit der Klausel C 5 = (x 1 x 5 ) ergibt, dass x 5 somit ebenfalls auf false gesetzt werden muss, damit die Klausel C 5 erfüllt wird. Es entsteht eine direkte Implikation auf der ersten Entscheidungsebene, die auch im Graphen aus Abbildung 2.3 zu sehen ist. Jeder Knoten stellt eine Variablenzuweisung dar. Während die Ziffer nach in der Bezeichnung des Knotens der Entscheidungsebene entspricht, geben die eingehenden Kanten des Knotens die Ursache für die Belegung an:

28 14 KAPITEL 2. GRUNDLAGEN Variablenzuweisungen, die Quellknoten der Kanten, und daraus resultierende Unit Klausel als Beschriftung der eingehenden Kanten. Eventuelle weitere Variablenzuweisungen der ersten Entscheidungsebene sind in diesem Teilgraph nicht dargestellt. Mit der Zuweisung x 3 = false auf Entscheidungsebene 2 folgt dann direkt mit Klausel C 1, dass x 4 = false, mit Klausel C 2 und der Variablenbelegung aus Entscheidungsebene 1 ergibt sich x 2 = true. Über eine direkte Implikation, begründet durch Klausel C 4, ergibt sich x 6 = false, womit sich wiederum mit Klausel C 3 ergibt, dass x 4 = true. Da x 4 aber bereits false sein soll, ist an dieser Stelle ein Konflikt aufgetreten. Aus dieser Beobachtung heraus wissen wir nun, dass die Variablenbelegung x 1 = false und x 3 = false nie in einem Modell auftreten kann, und fügen deshalb die Klausel C neu = (x 1 x 3 ) in die Formel ein. Dadurch wird gefordert, dass mindestens eine der beiden Variablen mit true belegt werden muss, und haben die Information des Konfliktes gelernt. In einem anderen Teil des Suchbaumes wird diese partielle Variablenbelegung, da sie zu keinem Modell führen kann, frühzeitig verhindert. An welcher Stelle des Entscheidungsbaums nach Auftreten des Konflikts die Berechnung weitergeführt werden soll, wird mittels Backtracking, bzw. Backjumping entschieden. Da diese Techniken allerdings im weiteren Verlauf der Arbeit keine Rolle spielen, gehen wir hier nicht weiter darauf ein Preprocessing Wie wir im weiteren Verlauf der Arbeit sehen werden, kann man nur durch Betrachten der Instanzgröße keine Aussage darüber treffen, wie lange der SAT- Solver benötigen wird, um eine Lösung zu finden. Wir werden Instanzen kennenlernen, die mit wenigen Klauseln auch nach über zweieinhalb Stunden nicht gelöst werden können. Andere Instanzen wiederum, die mehrere Millionen Klauseln umfassen, können in weniger als 1 Minute gelöst werden. Nimmt man allerdings die Instanzgröße als Maßstab innerhalb einer festen Problemklasse, so kann man auf Grund der gleichen Kodierung davon ausgehen, dass Instanzen mit einer höheren Klauselanzahl eine längere Laufzeit zur Berechnung der Erfüllbarkeit in Anspruch nehmen werden. SAT-Instanzen, die Anwendungsprobleme aus der realen Welt darstellen, enthalten oftmals redundante Informationen, wodurch die Formelgröße anwächst, ohne dass zusätzliche Information in den zusätzlichen Klauseln kodiert ist. Mit Hilfe von so genannten Preprocessors, die vor dem eigentlichen SAT-Solving ausgeführt werden, wird versucht, die Formelgröße durch verschiedene Techniken zu reduzieren und somit die Laufzeit des SAT-Solvers zu verkürzen. Grundlegende Techniken, auf die wir in Kapitel 3 noch genauer eingehen, sind neben dem schon erwähnten Propagieren das von Subbarayan und Pradhan

29 2.3. SAT-SOLVING 15 entwickelte NiVER [SP04] (non increasing variable elimination resolution) aber auch sämtliche Techniken des in MiniSAT integrierten Präprozessors SatELite [EB05]. Beim Entwickeln neuer Techniken muss dabei immer auf eine Ausgewogenheit von Aufwand und Nutzen geachtet werden. Die cleverste Idee nutzt nichts, wenn der Mehraufwand des Präprozessors die während des SAT-solvens gesparte Zeit (um ein vielfaches) übersteigt. Im Optimalfall benötigt der Präprozessor nur wenige Sekunden, verringert die Anzahl in der Formel enthaltener Klauseln um einen erheblichen Anteil von 25 % oder mehr, damit am Ende eine signifikante Verbesserung der Gesamtlaufzeit erreicht werden kann.

30 16 KAPITEL 2. GRUNDLAGEN

31 Kapitel 3 Preprocessing Ein typischer Lösungsansatz eines Erfüllbarkeitsproblems besteht aus folgenden drei Schritten: 1. SAT-Kodierung Das Problem muss in eine bestimmte Form der Aussagenlogik gebracht werden. Diese Form ist oft die konjunktive Normalform. Erfüllt eine Variablenbelegung eine Formel in CNF, so muss mindestens ein Literal jeder Klausel zu true ausgewertet werden. 2. Preprocessing Durch die Anwendung bestimmter Techniken soll die zu bearbeitende Formel vereinfacht werden, damit der anschließende Schritt zur Lösungsfindung eine geringere Zeit in Anspruch nimmt. 3. SAT-Solving Mittels CDCL, lokaler Suche oder look ahead-techniken wird für die gegebene Formel der Aussagenlogik eine erfüllende Belegung gefunden. CDCL und die look ahead Techniken können auch beweisen, dass eine solche Belegung nicht existiert. Wir beschränken uns in dieser Arbeit darauf, die ersten beiden Schritte des Lösungsansatzes zu behandeln. Bevor eine von uns neu entwickelte SAT- Kodierung in Kapitel 5 vorgestellt wird, thematisieren wir zunächst einige Techniken des Preprocessing. Als Grundlage für unsere Arbeit verwenden wir den in dem SAT-Solver Mini- SAT [ES03] integrierten Preprocessor SatELite [EB05]. Nachdem die von ihm implementierten Techniken erläutert wurden, erweitern wir den Preprocessor und analysieren die Effektivität der einzelnen Techniken in verschiedenen Kombinationen. 17

32 18 KAPITEL 3. PREPROCESSING 3.1 Motivation SAT-Instanzen, die Probleme aus der realen Welt kodieren weisen oftmals andere Strukturen als zufällig oder von Hand erstellte Instanzen auf. Solche Strukturen können unter Anderem Backbones [DD01], Backdoors [WGS03], Äquivalenzen [Lib02] oder funktionale Abhängigkeiten [LJHM07] sein. Im Allgemeinen scheinen viele SAT-Instanzen redundante Informationen zu besitzen. Diese Klauseln können ohne Einfluss auf die Erfüllbarkeit der Instanz entfernt werden. Es entstehen erfüllbarkeitsäquivalente Probleme, die aber möglicherweise einfacher zu lösen sind. Da der Test auf Vorhandensein redundanter Information ebenfalls NP-vollständig ist [Lib02], können entsprechende Techniken nur unvollständig sein, wenn sie in Polynomzeit berechenbar sind. Obwohl man davon ausgeht, dass das Entfernen redundanter Information zu einer Verbesserung der Laufzeit führt, gibt es Fälle (vergleiche [WS02][KRA + 01]), bei denen solche Informationen dem SAT-Solver bei der lokalen Suche helfen aus lokalen Minima zu entkommen. Die Erstellung von SAT-Instanzen in konjunktiver Normalform erfolgt oft durch Umwandlung von aussagenlogischen Formeln, die in einer anderen Form vorliegen. Um dabei das mögliche exponentielle Wachstum der Formel durch Anwenden des Distributivgesetzes zu vermeiden, entwickelte Tseitin 1968 [Tse68] die nach ihm benannte Transformation einer beliebigen Formel der Aussagenlogik in konjunktive Normalform. Die Idee der Tseitin-Transformation ist, für jede Subformel eine neue Variable einzufügen, die den Wahrheitswert dieser Subformel darstellt. Mittels Axiomen wird die korrekte Variablenbelegung der neuen Variable sichergestellt. Beispiele für neu eingefügte Variablen x und assoziierte Subformeln sind: Negation Disjunktion Konjunktion x y (x y) (y x) (x y) (x y) x (y z) (y x) (z x) (x (y z)) (y x) (z x) (x y z) x (y z) (x y) (x z) ((y z) x) (x y) (x z) ((y z) x) (x y) (x z) (y z x)

33 3.2. SATELITE 19 Durch Anwenden der Transformation wird das möglicherweise exponentielle Wachstum der Formel auf Kosten neuer Variablen vermieden. Das Ergebnis der Transformation, eine Formel in CNF, ist erfüllbarkeitsäquivalent zur Ausgangsformel. Durch die zusätzlichen Variablen ist die neue Formel aber nicht äquivalent zur Ausgangsformel. Die hinzugefügten Variablen vergrößern den von dem SAT-Solver zu testenden Suchraum und beeinflussen damit auch die Laufzeit. 3.2 SatELite Der Preprocessor SatELite wurde 2005 von Niklas Éen und Armin Biere entwickelt [EB05]. Neben der Verwendung bereits bestehender Techniken, z.b. von NiVER [SP04] und [Bie04], entwickelten die Autoren neue Möglichkeiten zur Simplifizierung von SAT-Instanzen. Im Folgenden sollen nun die umgesetzten Ideen und Implementierungen von SatELite vorgestellt und erläutert werden. Als Grundlage wählen wir hier die Implementierung aus dem Jahr 2005, da dort die in [EB05] veröffentlichten Techniken komplett vorhanden sind. Die Veränderungen in späteren Versionen des Preprocessors werden am Ende des Abschnitts behandelt Datenstrukturen Auf eine genaue Beschreibung der zugrundeliegenden Klassenstruktur soll hier verzichtet und lediglich die für die folgenden Betrachtungen benutzten Eigenschaften vorgestellt werden: Jede Variable und die dazugehörigen Literale bekommen eine eindeutige ID > 0. Die ID eines Literals l berechnet sich als ID der dazugehörigen Variable * 2. Sollte das Literal negativer Polarität sein, wird die ID zusätzlich noch um 1 inkrementiert. Wir führen außerdem noch für jede Klausel der Formel eine eindeutige ID > 0 ein. Wird eine Klausel während der Berechnung des Preprocessors aus der Formel entfernt, wird die ID auf 0 gesetzt. Inaktive Klauseln können so anhand ihrer ID identifiziert werden. Weitere Strukturen, die von SatELite verwendet werden und die effiziente Implementierung der Simplifizierungsmethoden ermöglichen, sind: Signatur Die Signatur abstrahiert die in einer Klausel vorkommenden Literale über eine Hash-Funktion h, die jedem Literal eine natürliche Zahl zuweist.

34 20 KAPITEL 3. PREPROCESSING Der Bereich der Zielwerte der Hash-Funktion hängt von der verwendeten Architektur ab. Da wir eine 32 Bit-Signatur benutzen, werden die Literale auf die Zahlen [ ] abgebildet. Die Signatur einer Klausel C i = (l j,..., l k ) wird dann als bitweises OR von 2 h(lx) l x C i berechnet. Da jedes Literal über eine eindeutige ID verfügt, benutzen wir als Hash-Funktion h(l) = l.id % 32. Occurrence-Listen Für jedes Literal l speichern wir Referenzen auf Klauseln C i der zu bearbeitenden Formel F für die gilt: l C i C i F. Listen, die auf veränderte Elemente der Formel verweisen Die einzelnen Simplifizierungsmethoden, die miteinander interagieren, sollen solange ausgeführt werden, bis keine weiteren Veränderungen der Formel auftreten. Die Interaktion der Simplifizierungsmethoden führt dazu, dass nachdem eine Klausel aus der Formel gelöscht wurde, nun eventuell die Variableneliminierung oder andere Simplifizierungen anwendbar sind. Aus diesem Grund werden in verschiedenen Listen die in der Formel veränderten Klauseln und Variablen gespeichert, um den Suchraum in der nächsten Iteration an Simplifizierungen nur auf die veränderten Bereiche der Formel einzuschränken. Unveränderte Bereiche der Formel können, da sie zuvor schon getestet wurden, nicht weiter vereinfacht werden und müssen daher in der nächsten Iteration der Simplifizierungen nicht betrachtet werden. Touched-Menge (Menge von Variablen) Eine Variable wird zu dieser Menge hinzugefügt, wenn sie sich in einer Klausel befindet, die durch den Preprocessor gelöscht, hinzugefügt oder gestärkt wurde. Zu Beginn der Simplifizierung sind alle Variablen der Formel in dieser Menge vorhanden. Added-Menge (Menge von Klauseln) Wenn eine Klausel durch Eliminierung einer Variablen in die Formel eingefügt wurde, so wird sie zu dieser Menge hinzugefügt. Zu Beginn der Simplifizierung werden alle Klauseln als added aufgefasst. Strengthened-Menge (Menge von Klauseln) Wird ein Literal aus einer Klausel entfernt (z.b. durch Unit Propagation), so wird die Klausel in die Menge eingefügt. Zu Beginn der ersten Iteration ist diese Menge leer. Sind alle diese Mengen leer, so sind in der vergangenen Iteration keine weiteren Veränderungen an der Formel vorgenommen worden. Die Simplifizierung wird abgebrochen.

35 3.2. SATELITE Unit Propagation Während des Preprocessing wird nur die sogenannte top-level Unit Propagation durchgeführt. Das heißt, sollte im Verlauf der Vereinfacherungen eine Klausel C i der Formel nur noch ein Literal l aufweisen, so wird dieses auf den Wahrheitswert gesetzt, der die Klausel C i erfüllt. Die Formel wird dann wie in Abschnitt vorgestellt entsprechend bearbeitet Subsumierung Durch Anwendung der noch einzuführenden Clause Distribution während der Variableneliminierung entstehen viele subsumierte Klauseln [Bie04]. Eine Klausel C 1 subsumiert eine Klausel C 2 falls C 1 C 2. Die subsumierte Klausel C 2 ist redundant und kann aus der SAT-Instanz entfernt werden. Die in Algorithmus 2 dargestellte Methode identifiziert die von C subsumierten Klauseln. Algorithmus 2 Bestimmung der von C subsumierten Klauseln Eingabe: C - eine Klausel F. Ausgabe: result - Menge der von C subsumierten Klauseln. 1: Literal l = Literal aus C mit kürzester Occurrence-Liste 2: for all C occur(l) do 3: if C.id C.id then 4: if C <= C then 5: if (C.signature & C.signature) = 0 then 6: if C C then 7: result += C ; 8: return result Die verschiedenen IF-Abfragen filtern nach und nach Klauseln heraus, die nicht subsumiert werden können. In Zeile 4 werden die Klauseln C herausgefiltert, die kleiner sind als C. Da C aber eine Teilmenge von C sein muss, gilt auch C C. In Zeile 5 benutzen wir das bitweise UND, dargestellt durch &, sowie die bitweise Negation, dargestellt durch. Anhand der Signaturen werden hier die Klauseln C herausgefiltert, die nicht von C subsumiert sein können. Angenommen, die in der Klausel C enthaltenen Literale besitzen die IDs {1, 6, 10} und seien {3, 6, 10} die IDs der Literale C. Sei ferner die Signatur eine 8 Bit- Zahl für die in einer Klausel C enthaltenen Literale, gebildet durch bitweises OR von 2 l.id%8 l C. Dann ergibt sich: C.signature: C.signature:

36 22 KAPITEL 3. PREPROCESSING Der Test aus Zeile 5 liefert somit false, wenn es ein Bit in der Signatur von C gibt, dass nicht in der Signatur von C gesetzt ist. Die Klausel C besitzt dann ein Literal, dessen Hash-Wert mit keinem Literal aus der Klausel C übereinstimmt. Somit kann C keine Teilmenge von C sein, und wir können uns den in Zeile 6 angewandten Test auf Teilmengeneigenschaft sparen. Dieser Test auf Teilmengeneigenschaft überprüft, ob jedes Literal l C auch in C vorkommt. Sollte dies für ein Literal l i nicht eintreten, so kann zu diesem Zeitpunkt false zurückgegeben werden. Um diesen aufwendigen Test in möglichst kurzer Zeit durchführen zu können, haben wir uns dazu entschlossen alle Literale einer Klausel gemäß ihrer ID aufsteigend zu sortieren. Der Test benötigt so die Laufzeit O(n + m) mit n = C und m = C Selbst-Subsumierung Eine weitere Beobachtung der Autoren von SatELite war, dass folgender Fall oft eintrat: Eine Klausel C 1 subsumiert beinahe die Klausel C 2, mit der Ausnahme, dass ein Literal aus C 1 in der anderen Polarität in C 2 vorkommt. Sei zum Beispiel C 1 = (x, a, b) und C 2 = (x, a), so würde die Resolution von x die Klausel C 1 = (a, b) ergeben. Diese Klausel subsumiert C 1. Man könnte also nachdem man C 1 zur Formel hinzugefügt hat C 1 löschen, bzw. das Literal x aus C 1 entfernen. Wir sagen C 1 wird gestärkt durch Selbst-Subsumierung unter Verwendung von C 2. Der Algorithmus 3 setzt diese Idee um. Algorithmus 3 Identifikation der von C mittels Selbst-Subsumierung zu stärkenden Klauseln Eingabe: C - eine Klausel F. 1: for all Literal l C do 2: C.flipLiteral(l); 3: sub = findsubsumed(c); 4: for all C sub do 5: C = C \ l; 6: C.flipLiteralBack(l); In Zeile 2 wird die Klausel einschließlich ihrer Signatur so verändert, dass anstatt dem Literal l nun l in der Klausel C vorkommt. Dieser Schritt wird in Zeile 6 wieder rückgängig gemacht, um die Ausgangssituation wiederherzustellen. Die durch die veränderte Klausel C subsumierten Klauseln sub werden in Zeile 5 gestärkt. Das geflippte Literal l wird aus allen in der Menge sub enthaltenen Klauseln C entfernt.

37 3.2. SATELITE Variableneliminierung Die Variableneliminierung erfolgt in SatELite entweder durch Resolution, wie in NiVER [SP04] beschrieben, oder mit Hilfe einer Methode, die sogenannte Definitionen von Variablen entdeckt. Resolution Seien C 1 = {x, a 1, a 2,..., a n } und C 2 = {x, b 1, b 2,..., b m } zwei Klauseln. Die implizierte Klausel C = {a 1, a 2,..., a n, b 1, b 2,... b, } ist das Ergebnis der Resolution der Klauseln C 1 und C 2 mit Hilfe der Variable x. Wir schreiben C = C 1 C 2. Diese Definition kann auch auf eine Menge von Klauseln erweitert werden: Sei S x die Menge an Klauseln, die das Literal x enthalten und S x entsprechend die Klauseln, die das Literal x enthalten. Dann ist S x S x definiert als S x S x = {C 1 C 2 C 1 S x, C 2 S x } Das Anwenden der Resolution auf alle Klauseln von S x und S x ermöglicht es uns, die Variable x für den weiteren Verlauf der Berechnung zu eliminieren. So werden S x + S x Klauseln aus der Formel entfernt, gleichzeitig aber auch S x S x neue Klauseln erstellt. In vielen Fällen ist ein Großteil der neuen Klauseln redundant. Diese Klauseln können dann aus der Menge der hinzuzufügenden Klauseln entfernt werden. NiVER führt die Resolution einer bestimmten Variable dann durch, wenn die entstehende Formel in der Summe kleiner ist als vorher. Die Anzahl an Literalen in den neuen Klauseln muss also der Anzahl an Literalen in S x S x sein. In dem Preprocessor SatELite wird dieses Kriterium ein wenig abgeändert. Sollte die Anzahl an erstellten Klauseln geringer sein als S x + S x, so wird die Resolution der Variablen x durchgeführt. In unserer Implementierung testen wir darüberhinaus welche Ergebnisse erzielt werden, falls die Resolution der Variable x dann durchgeführt wird, wenn die durschnittliche Klauselgröße von S x S x nicht größer ist als in S x S x. Die Gesamtanzahl an Klauseln kann in der Formel zunehmen, aber es werden nur kleine Klauseln hinzugefügt. Mit dem Wissen, dass das Erfüllbarkeitsproblem in polynomieller Zeit lösbar ist, wenn alle Klauseln der Formel maximal zwei Literale besitzen, erhoffen wir uns durch dieses Kriterium eine verkürzte Laufzeit des Lösungsprozesses. Eine weitere Möglichkeit der Variableneliminierung wurde von SatELite auf Grund des Wissens entwickelt, dass durch die Verwendung der Tseitin-

Grundlagen der Künstlichen Intelligenz

Grundlagen der Künstlichen Intelligenz Grundlagen der Künstlichen Intelligenz 28. Aussagenlogik: DPLL-Algorithmus Malte Helmert Universität Basel 2. Mai 2014 Aussagenlogik: Überblick Kapitelüberblick Aussagenlogik: 26. Grundlagen 27. Logisches

Mehr

Kapitel L:II. II. Aussagenlogik

Kapitel L:II. II. Aussagenlogik Kapitel L:II II. Aussagenlogik Syntax der Aussagenlogik Semantik der Aussagenlogik Eigenschaften des Folgerungsbegriffs Äquivalenz Formeltransformation Normalformen Bedeutung der Folgerung Erfüllbarkeitsalgorithmen

Mehr

Theoretische Informatik: Logik, M. Lange, FB16, Uni Kassel: 3.4 Aussagenlogik SAT-Solver 61. SAT-Solver

Theoretische Informatik: Logik, M. Lange, FB16, Uni Kassel: 3.4 Aussagenlogik SAT-Solver 61. SAT-Solver Theoretische Informatik: Logik, M. Lange, FB16, Uni Kassel: 3.4 Aussagenlogik SAT-Solver 61 SAT-Solver SAT-Solver ist Implementierung eines Algorithmus für das Erfüllbarkeitsproblem der Aussagenlogik (SAT)

Mehr

Analyse von Ansätzen zur Beschleunigung von SAT - Lösern durch dedizierte Hardware Komponenten

Analyse von Ansätzen zur Beschleunigung von SAT - Lösern durch dedizierte Hardware Komponenten Analyse von Ansätzen zur Beschleunigung von SAT - Lösern durch dedizierte Hardware Komponenten E. Zenker 24. Februar 2011 1 / 20 Gliederung 1. Satisfiability Testing 2. FPGAs 3. Aktuelle Hardware SAT Solver

Mehr

Resolutionskalkül. wird t als eine Menge K t von Klauseln geschrieben, welche die einzelnen Maxterme repräsentieren:

Resolutionskalkül. wird t als eine Menge K t von Klauseln geschrieben, welche die einzelnen Maxterme repräsentieren: Resolutionskalkül Ein Kalkül ist eine Kollektion von syntaktischen Umformungsregeln, die unter gegebenen Voraussetzungen aus bereits vorhandenen Formeln neue Formeln erzeugen. Der Resolutionskalkül besteht

Mehr

Formale Systeme. Das Erfu llbarkeitsproblem. Prof. Dr. Bernhard Beckert, WS 2017/2018

Formale Systeme. Das Erfu llbarkeitsproblem. Prof. Dr. Bernhard Beckert, WS 2017/2018 Formale Systeme Prof. Dr. Bernhard Beckert, WS 2017/2018 Das Erfu llbarkeitsproblem KIT I NSTITUT F U R T HEORETISCHE I NFORMATIK www.kit.edu KIT Die Forschungsuniversita t in der Helmholtz-Gemeinschaft

Mehr

Künstliche Intelligenz Logische Agenten & Resolution

Künstliche Intelligenz Logische Agenten & Resolution Künstliche Intelligenz Logische Agenten & Resolution Stephan Schwiebert WS 2009/2010 Sprachliche Informationsverarbeitung Institut für Linguistik Universität zu Köln Inferenz-Algorithmus Wie könnte ein

Mehr

Formale Grundlagen der Informatik 1 Kapitel 16 Normalformen und Hornformeln

Formale Grundlagen der Informatik 1 Kapitel 16 Normalformen und Hornformeln Formale Grundlagen der Informatik 1 Kapitel 16 Normalformen und Frank Heitmann heitmann@informatik.uni-hamburg.de 9. Juni 2015 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/36 Ersetzbarkeitstheorem

Mehr

Logik. Gabriele Kern-Isberner LS 1 Information Engineering. TU Dortmund Wintersemester 2014/15 WS 2014/15

Logik. Gabriele Kern-Isberner LS 1 Information Engineering. TU Dortmund Wintersemester 2014/15 WS 2014/15 Logik Gabriele Kern-Isberner LS 1 Information Engineering TU Dortmund Wintersemester 2014/15 WS 2014/15 G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 1 / 125 Übersicht Modallogik 5. Grundlagen 6. Erfüllbarkeit

Mehr

Motivation. Formale Grundlagen der Informatik 1 Kapitel 14 Aussagenlogik Syntax & Semantik. Motivation. Motivation

Motivation. Formale Grundlagen der Informatik 1 Kapitel 14 Aussagenlogik Syntax & Semantik. Motivation. Motivation Formale Grundlagen der Informatik 1 Kapitel 14 Aussagenlogik & Frank Heitmann heitmann@informatik.uni-hamburg.de Mit der Aussagenlogik lassen sich einfache Verknüpfungen zwischen (atomaren) Gebilden ausdrücken

Mehr

Was bisher geschah: klassische Aussagenlogik

Was bisher geschah: klassische Aussagenlogik Was bisher geschah: klassische Aussagenlogik Syntax Symbole und Struktur, Junktoren: t, f,,,,, Prinzip der strukturellen Induktion über Baumstruktur von Formeln, arithmetischen Ausdrücken usw. induktive

Mehr

Theorie der Informatik Übersicht. Theorie der Informatik SAT Graphenprobleme Routing-Probleme. 21.

Theorie der Informatik Übersicht. Theorie der Informatik SAT Graphenprobleme Routing-Probleme. 21. Theorie der Informatik 19. Mai 2014 21. einige NP-vollständige Probleme Theorie der Informatik 21. einige NP-vollständige Probleme 21.1 Übersicht 21.2 Malte Helmert Gabriele Röger 21.3 Graphenprobleme

Mehr

Kapitel L:II. II. Aussagenlogik

Kapitel L:II. II. Aussagenlogik Kapitel L:II II. Aussagenlogik Syntax der Aussagenlogik Semantik der Aussagenlogik Eigenschaften des Folgerungsbegriffs Äquivalenz Formeltransformation Normalformen Bedeutung der Folgerung Erfüllbarkeitsalgorithmen

Mehr

Einige Grundlagen der Komplexitätstheorie

Einige Grundlagen der Komplexitätstheorie Deterministische Polynomialzeit Einige Grundlagen der Komplexitätstheorie Ziel: NP-Vollständigkeit als ressourcenbeschränktes Analagon zur RE-Vollständigkeit. Komplexitätstheorie untersucht den Ressourcenbedarf

Mehr

Weitere NP-vollständige Probleme

Weitere NP-vollständige Probleme Weitere NP-vollständige Probleme Wir betrachten nun folgende Reduktionskette und weisen dadurch nach, daß alle diese Probleme NP-hart sind (sie sind auch in NP und damit NP-vollständig). SAT p 3-SAT p

Mehr

Informatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung

Informatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung Informatik III Christian Schindelhauer Wintersemester 2006/07 20. Vorlesung 12.01.2007 1 Komplexitätstheorie - Zeitklassen Die Komplexitätsklassen TIME DTIME, NTIME P NP Das Cook-Levin-Theorem Polynomial-Zeit-Reduktion

Mehr

Zusammenfassung Syntax: Formale Grundlagen der Informatik 1 Kapitel 15 Normalformen und Hornformeln. Zusammenfassung

Zusammenfassung Syntax: Formale Grundlagen der Informatik 1 Kapitel 15 Normalformen und Hornformeln. Zusammenfassung Formale der Informatik 1 Kapitel 15 und Frank Heitmann heitmann@informatik.uni-hamburg.de 30. Mai 2016 Zusammenfassung Syntax Zusammenfassung Syntax: Motivation Definition der Syntax: Alphabet, Junktor

Mehr

Logik für Informatiker

Logik für Informatiker Logik für Informatiker Vorlesung 5: Normalformen Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 2. November 2017 1/37 MOTIVATION FÜR AUSSAGENLOGIK Aussagenlogik

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

Grundbegriffe für dreiwertige Logik

Grundbegriffe für dreiwertige Logik Grundbegriffe für dreiwertige Logik Hans Kleine Büning Universität Paderborn 1.11.2011 1 Syntax und Semantik Die klassische Aussagenlogik mit den Wahrheitswerten falsch und wahr bezeichnen wir im weiteren

Mehr

Kochrezept für NP-Vollständigkeitsbeweise

Kochrezept für NP-Vollständigkeitsbeweise Kochrezept für NP-Vollständigkeitsbeweise Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 11. Januar 2010 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit

Mehr

Formale Grundlagen der Informatik 1 Kapitel 15 Normalformen und Hornformeln

Formale Grundlagen der Informatik 1 Kapitel 15 Normalformen und Hornformeln Formale Grundlagen der Informatik 1 Kapitel 15 Normalformen und Frank Heitmann heitmann@informatik.uni-hamburg.de 30. Mai 2016 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/42 Zusammenfassung Syntax

Mehr

Komplexität von Algorithmen Musterlösungen zu ausgewählten Übungsaufgaben

Komplexität von Algorithmen Musterlösungen zu ausgewählten Übungsaufgaben Dieses Dokument soll mehr dazu dienen, Beispiele für die formal korrekte mathematische Bearbeitung von Aufgaben zu liefern, als konkrete Hinweise auf typische Klausuraufgaben zu liefern. Die hier gezeigten

Mehr

NP-Vollständigkeit des Erfüllbarkeitsproblems

NP-Vollständigkeit des Erfüllbarkeitsproblems NP-Vollständigkeit des Erfüllbarkeitsproblems Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 1 / 25 Def: NP-Härte Definition (NP-Härte) Ein Problem L heißt NP-hart,

Mehr

Diplomarbeit. Backdoors in Sat-Instanzen

Diplomarbeit. Backdoors in Sat-Instanzen 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

Mehr

Tableaukalkül für Aussagenlogik

Tableaukalkül für Aussagenlogik Tableaukalkül für Aussagenlogik Tableau: Test einer Formel auf Widersprüchlichkeit Fallunterscheidung baumförmig organisiert Keine Normalisierung, d.h. alle Formeln sind erlaubt Struktur der Formel wird

Mehr

Lösungen zur Vorlesung Berechenbarkeit und Komplexität

Lösungen zur Vorlesung Berechenbarkeit und Komplexität Lehrstuhl für Informatik 1 WS 009/10 Prof. Dr. Berthold Vöcking 0.0.010 Alexander Skopalik Thomas Kesselheim Lösungen zur Vorlesung Berechenbarkeit und Komplexität. Zulassungsklausur Aufgabe 1: (a) Worin

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Graphen (1) Darstellung Traversierung Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 441 Generalisierung von Bäumen Verallgemeinerung (von Listen zu Graphen)

Mehr

Universität Potsdam Seminar: Automatic Problem Solving. SAT und DPLL. Falko Zander

Universität Potsdam Seminar: Automatic Problem Solving. SAT und DPLL. Falko Zander Universität Potsdam Seminar: Automatic Problem Solving SAT und DPLL Falko Zander Überblick Das SAT Problem: Einführung, Praxisbezug und aktuelle Algorithmen Geschichtlicher Rückblick Davis-Putman-Algorithmus

Mehr

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen Bäume sind verallgemeinerte Listen Datenstrukturen Teil 2 Bäume Jeder Knoten kann mehrere Nachfolger haben Sie sind weiter spezielle Graphen Graphen bestehen aus Knoten und Kanten Kanten können gerichtet

Mehr

Abbildung 1: Reduktion: CLIQUE zu VERTEX-COVER. links: Clique V = {u, v, x, y}. rechts:der Graph Ḡ mit VC V \ V = {w, z}

Abbildung 1: Reduktion: CLIQUE zu VERTEX-COVER. links: Clique V = {u, v, x, y}. rechts:der Graph Ḡ mit VC V \ V = {w, z} u v u v z w z w y x y x Abbildung 1: Reduktion: CLIQUE zu VERTEX-COVER. links: Clique V = {u, v, x, y}. rechts:der Graph Ḡ mit VC V \ V = {w, z} Definition 0.0.1 (Vertex Cover (VC)). Gegeben: Ein ungerichteter

Mehr

5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS)

5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS) 5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS) Sommersemester 2009 Dr. Carsten Sinz, Universität Karlsruhe Datenstruktur BDD 2 1986 von R. Bryant vorgeschlagen zur Darstellung von aussagenlogischen Formeln (genauer:

Mehr

Logische und funktionale Programmierung

Logische und funktionale Programmierung Logische und funktionale Programmierung Vorlesung 2 und 3: Resolution Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 3. November 2017 1/43 HERBRAND-STRUKTUR Sei

Mehr

Formale Grundlagen der Informatik 1 Kapitel 23 NP-Vollständigkeit (Teil 2)

Formale Grundlagen der Informatik 1 Kapitel 23 NP-Vollständigkeit (Teil 2) Formale Grundlagen der Informatik 1 Kapitel 23 (Teil 2) Frank Heitmann heitmann@informatik.uni-hamburg.de 5. Juli 2016 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/37 Die Klassen P und NP P := {L

Mehr

Analyse von Ansätzen zur Beschleunigung von SAT - Lösern durch dedizierte Hardware Komponenten

Analyse von Ansätzen zur Beschleunigung von SAT - Lösern durch dedizierte Hardware Komponenten Analyse von Ansätzen zur Beschleunigung von SAT - Lösern durch dedizierte Hardware Komponenten E. Zenker 9. November 2011 1 / 28 Gliederung 1. Field Programmable Gate Array - FPGA 2. Satisfiability Testing

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 Bäume: Grundlagen und natürliche Suchbäume) Prof. Dr. Susanne Albers Bäume (1) Bäume sind verallgemeinerte Listen (jedes Knoten-Element kann mehr

Mehr

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

Formale Techniken der Software-Entwicklung

Formale Techniken der Software-Entwicklung Formale Techniken der Software-Entwicklung Matthias Hölzl, Christian Kroiß 15. April 2014 Sequenzenkalkül Kann man mit den Schlussregeln falsche Aussagen ableiten? Gibt es wahre Aussagen, die man nicht

Mehr

Aussagenlogik: Syntax von Aussagen

Aussagenlogik: Syntax von Aussagen Aussagenlogik: Syntax von Aussagen A ::= X (A A) (A A) ( A) (A A) (A A) 0 1 Prioritätsreihenfolge :,,,,. A B: Konjunktion (Verundung). A B: Disjunktion (Veroderung). A B: Implikation. A B: Äquivalenz.

Mehr

1 Aussagenlogischer Kalkül

1 Aussagenlogischer Kalkül 1 Aussagenlogischer Kalkül Ein Kalkül in der Aussagenlogik soll die Wahrheit oder Algemeingültigkeit von Aussageformen allein auf syntaktischer Ebene zeigen. Die Wahrheit soll durch Umformung von Formeln

Mehr

FORMALE SYSTEME. 23. Vorlesung: Logisches Schließen. TU Dresden, 16. Januar Markus Krötzsch Lehrstuhl Wissensbasierte Systeme

FORMALE SYSTEME. 23. Vorlesung: Logisches Schließen. TU Dresden, 16. Januar Markus Krötzsch Lehrstuhl Wissensbasierte Systeme FORMALE SYSTEME 23. Vorlesung: Logisches Schließen Markus Krötzsch Lehrstuhl Wissensbasierte Systeme TU Dresden, 16. Januar 2017 Rückblick Markus Krötzsch, 16. Januar 2017 Formale Systeme Folie 2 von 31

Mehr

23. Vorlesung: Logisches Schließen Markus Kr otzsch Professur f ur Wissensbasierte Systeme Normalformen

23. Vorlesung: Logisches Schließen Markus Kr otzsch Professur f ur Wissensbasierte Systeme Normalformen Logik: Glossar FORMALE SYSTEME 23. Vorlesung: Logisches Schließen Markus Krötzsch Professur für Wissensbasierte Systeme TU Dresden, 15. Januar 2018 Atom kleinste mögliche Formel p P Teilformel Unterausdruck,

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

4. OBDDs und Modellüberprüfung

4. OBDDs und Modellüberprüfung 4. OBDDs und Modellüberprüfung OBDD Ordered Binary Decision Diagrams Geordnete binäre Entscheidungsdiagramme Binäres Entscheidungsdiagramm: in der einfachsten Form ein binärer Entscheidungsbaum, in dem

Mehr

Welche Probleme können Rechner (effizient) lösen? Die P = NP Frage. Ideen der Informatik Kurt Mehlhorn

Welche Probleme können Rechner (effizient) lösen? Die P = NP Frage. Ideen der Informatik Kurt Mehlhorn Welche Probleme können Rechner (effizient) lösen? Die P = NP Frage Ideen der Informatik Kurt Mehlhorn Gliederung Ziele von Theorie Gibt es Probleme, die man prinzipiell nicht mit einem Rechner lösen kann?

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

Kapitel L:II. II. Aussagenlogik

Kapitel L:II. II. Aussagenlogik Kapitel L:II II. Aussagenlogik Syntax der Aussagenlogik Semantik der Aussagenlogik Eigenschaften des Folgerungsbegriffs Äquivalenz Formeltransformation Normalformen Bedeutung der Folgerung Erfüllbarkeitsalgorithmen

Mehr

Sudoku ist NP-vollständig

Sudoku ist NP-vollständig Sudoku ist NP-vollständig Seminar über Algorithmen und Komplexität Freie Universität Berlin Institut für Informatik SS 007 Sarah Will 8.07.007 Einführung Sudoku ist ein japanisches Logikrätsel und hat

Mehr

9 Minimum Spanning Trees

9 Minimum Spanning Trees Im Folgenden wollen wir uns genauer mit dem Minimum Spanning Tree -Problem auseinandersetzen. 9.1 MST-Problem Gegeben ein ungerichteter Graph G = (V,E) und eine Gewichtsfunktion w w : E R Man berechne

Mehr

Aussagenlogik. Übersicht: 1 Teil 1: Syntax und Semantik. 2 Teil 2: Modellierung und Beweise. Aussagenlogik H. Kleine Büning 1/37

Aussagenlogik. Übersicht: 1 Teil 1: Syntax und Semantik. 2 Teil 2: Modellierung und Beweise. Aussagenlogik H. Kleine Büning 1/37 Aussagenlogik Übersicht: 1 Teil 1: Syntax und Semantik 2 Teil 2: Modellierung und Beweise Aussagenlogik H. Kleine Büning 1/37 Modellierungsaufgabe Es gibt drei Tauben und zwei Löcher. Jede Taube soll in

Mehr

Vorsemesterkurs Informatik

Vorsemesterkurs Informatik Vorsemesterkurs Informatik Ronja Düffel WS2018/19 01. Oktober 2018 Theoretische Informatik Wieso, weshalb, warum??!? 1 Modellieren und Formalisieren von Problemen und Lösungen 2 Verifikation (Beweis der

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

Aussagenlogik. Übersicht: 1 Teil 1: Syntax und Semantik. 2 Teil 2: Modellierung und Beweise. Aussagenlogik H. Kleine Büning 1/25

Aussagenlogik. Übersicht: 1 Teil 1: Syntax und Semantik. 2 Teil 2: Modellierung und Beweise. Aussagenlogik H. Kleine Büning 1/25 Aussagenlogik Übersicht: 1 Teil 1: Syntax und Semantik 2 Teil 2: Modellierung und Beweise Aussagenlogik H. Kleine Büning 1/25 Einführendes Beispiel Falls Lisa Peter trifft, dann trifft Lisa auch Gregor.

Mehr

Allgemeingültige Aussagen

Allgemeingültige Aussagen Allgemeingültige Aussagen Definition 19 Eine (aussagenlogische) Formel p heißt allgemeingültig (oder auch eine Tautologie), falls p unter jeder Belegung wahr ist. Eine (aussagenlogische) Formel p heißt

Mehr

Dank. Theoretische Informatik II. Teil VI. Vorlesung

Dank. Theoretische Informatik II. Teil VI. Vorlesung Dank Vorlesung Theoretische Informatik II Bernhard Beckert Institut für Informatik Diese Vorlesungsmaterialien basieren zum Teil auf den Folien zu den Vorlesungen von Katrin Erk (gehalten an der Universität

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

Diskrete Strukturen Wiederholungsklausur

Diskrete Strukturen Wiederholungsklausur Technische Universität München (I7) Winter 2013/14 Prof. J. Esparza / Dr. M. Luttenberger LÖSUNG Diskrete Strukturen Wiederholungsklausur Beachten Sie: Soweit nicht anders angegeben, ist stets eine Begründung

Mehr

Informatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung

Informatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung Informatik III Christian Schindelhauer Wintersemester 2006/07 23. Vorlesung 25.01.2007 1 NP-Vollständigkeit Definition: Eine Sprache S ist NP-vollständig, wenn: S NP S ist NP-schwierig, d.h. für alle L

Mehr

Fortgeschrittene Netzwerk- und Graph-Algorithmen

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

Mehr

Logik Vorlesung 3: Äquivalenz und Normalformen

Logik Vorlesung 3: Äquivalenz und Normalformen Logik Vorlesung 3: Äquivalenz und Normalformen Andreas Maletti 7. November 2014 Überblick Inhalt 1 Motivation und mathematische Grundlagen 2 Aussagenlogik Syntax und Semantik Äquivalenz und Normalformen

Mehr

Entscheidungsverfahren für die Software-Verifikation. 4 - BDDs

Entscheidungsverfahren für die Software-Verifikation. 4 - BDDs Entscheidungsverfahren für die Software-Verifikation 4 - BDDs Datenstruktur BDD 1986 von R. Bryant vorgeschlagen zur Darstellung von aussagenlogischen Formeln (genauer: Booleschen Funktionen) Boolesche

Mehr

Was ist Logik? Was ist Logik? Aussagenlogik. Wahrheitstabellen. Geschichte der Logik eng verknüpft mit Philosophie

Was ist Logik? Was ist Logik? Aussagenlogik. Wahrheitstabellen. Geschichte der Logik eng verknüpft mit Philosophie Was ist Logik? Geschichte der Logik eng verknüpft mit Philosophie Begriff Logik wird im Alltag vielseitig verwendet Logik untersucht, wie man aus Aussagen andere Aussagen ableiten kann Beschränkung auf

Mehr

Logik für Informatiker

Logik für Informatiker Logik für Informatiker 2. Aussagenlogik Teil 10 4.06.2012 Viorica Sofronie-Stokkermans Universität Koblenz-Landau e-mail: sofronie@uni-koblenz.de 1 Organisatorisches Hauptklausur: Montag, 23.07.2012, 16:00-18:00,

Mehr

Einführung Erfüllbarkeitsproblem NP-Vollständigkeit Definition von NP Was wäre, wenn Was tun? Ideen und Konzepte der Informatik.

Einführung Erfüllbarkeitsproblem NP-Vollständigkeit Definition von NP Was wäre, wenn Was tun? Ideen und Konzepte der Informatik. Ideen und Konzepte der Informatik P versus NP Die Grenzen der (effizienter) Berechnung? Antonios Antoniadis Basiert auf Folien von Kurt Mehlhorn 8. Jan. 2018 8. Jan. 2018 1/24 Gliederung Ziele von Theorie/Grundlagenforschung

Mehr

Theoretische Informatik Mitschrift

Theoretische Informatik Mitschrift 10. Komplexitätstheorie Theoretische Informatik Mitschrift Klassifikation algorithmischer Probleme (formalisiert als Sprachen) nach ihrem Bedarf an Berechnungsressourcen (= Rechenzeit, Speicherplatz als

Mehr

Aussagenlogik. Formale Methoden der Informatik WiSe 2012/2013 teil 6, folie 1

Aussagenlogik. Formale Methoden der Informatik WiSe 2012/2013 teil 6, folie 1 Aussagenlogik Formale Methoden der Informatik WiSe 22/23 teil 6, folie Teil VI: Aussagenlogik. Einführung 2. Boolesche Funktionen 3. Boolesche Schaltungen Franz-Josef Radermacher & Uwe Schöning, Fakultät

Mehr

TU9 Aussagenlogik. Daniela Andrade

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

Mehr

Einführung in die Logik (Vorkurs)

Einführung in die Logik (Vorkurs) Einführung in die Logik (Vorkurs) Jürgen Koslowski 2014-04-07 Ein Beispiel Familie A will im kommenden Jahr eine Waschmaschine, ein Auto und ein Moped anschaffen. Aber falls Herr A seinen üblichen Bonus

Mehr

Konjunktive Normalform

Konjunktive Normalform Konjunktive Normalform Eine Formel α in konjunktiver Normalform hat die Form α k 1 k 2... k r. Die Klauseln k 1,..., k r sind Disjunktionen von Literalen, also Disjunktionen von Variablen oder negierten

Mehr

Erfüllbarkeitstests. Im folgenden: Ein sehr effizienter Erfüllbarkeitstest für eine spezielle Klasse von Formeln in KNF, sogenannte Hornformeln (vgl.

Erfüllbarkeitstests. Im folgenden: Ein sehr effizienter Erfüllbarkeitstest für eine spezielle Klasse von Formeln in KNF, sogenannte Hornformeln (vgl. Erfüllbarkeitstests Im folgenden: Ein sehr effizienter Erfüllbarkeitstest für eine spezielle Klasse von Formeln in KNF, sogenannte Hornformeln (vgl. Grundlagen und diskrete Strukturen ) Ein für Formeln

Mehr

DisMod-Repetitorium Tag 1

DisMod-Repetitorium Tag 1 DisMod-Repetitorium Tag 1 Aussagenlogik, Mengen 19. März 2018 1 Organisatorisches 2 Tipps zur Klausur 3 Aussagenlogik Was gehört in die Aussagenlogik, was nicht? Notationen für viele Terme Belegungen,

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

Theorie der Informatik. Theorie der Informatik. 2.1 Äquivalenzen. 2.2 Vereinfachte Schreibweise. 2.3 Normalformen. 2.

Theorie der Informatik. Theorie der Informatik. 2.1 Äquivalenzen. 2.2 Vereinfachte Schreibweise. 2.3 Normalformen. 2. Theorie der Informatik 24. Februar 2014 2. Aussagenlogik II Theorie der Informatik 2. Aussagenlogik II 2.1 Äquivalenzen Malte Helmert Gabriele Röger 2.2 Vereinfachte Schreibweise Universität Basel 24.

Mehr

Logik Vorlesung 4: Horn-Logik und Kompaktheit

Logik Vorlesung 4: Horn-Logik und Kompaktheit Logik Vorlesung 4: Horn-Logik und Kompaktheit Andreas Maletti 14. November 2014 Überblick Inhalt 1 Motivation und mathematische Grundlagen 2 Aussagenlogik Syntax und Semantik Äquivalenz und Normalformen

Mehr

DPLL-Verfahren zum SAT-Problem

DPLL-Verfahren zum SAT-Problem DPLL-Verfahren zum SAT-Problem DPLL = Davis-Putnam-Logemann-Loveland Verbesserung gegenüber DP-Prozedur: Backjumping statt chronologischem Backtracking DPLL ist die Basis der aktuell schnellsten SAT-Beweiser.

Mehr

Logik für Informatiker

Logik für Informatiker Vorlesung Logik für Informatiker 5. Aussagenlogik Normalformen Bernhard Beckert Universität Koblenz-Landau Sommersemester 2006 Logik für Informatiker, SS 06 p.1 Normalformen Definition: Literal Atom (aussagenlogische

Mehr

Counting the Number of Satisfying Assignments

Counting the Number of Satisfying Assignments Counting the Number of Satisfying Assignments Ferienakademie im Sarntal Kurs 1 Moderne Suchmethoden der Informatik: Trends und Potenzial Stefan Ploner Department Informatik FAU Erlangen-Nürnberg 29. September

Mehr

Logik Vorlesung 5: Grundlagen Resolution

Logik Vorlesung 5: Grundlagen Resolution Logik Vorlesung 5: Grundlagen Resolution Andreas Maletti 21. November 2014 Überblick Inhalt 1 Motivation und mathematische Grundlagen 2 Aussagenlogik Syntax und Semantik Äquivalenz und Normalformen Weitere

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

1 Aussagenlogik. 1.1 Aussagen. 15 ist eine Primzahl. 3 < 8 x < 15 (hängt von x ab, keine Aussage) Aussage = Behauptung Beispiele: Es regnet.

1 Aussagenlogik. 1.1 Aussagen. 15 ist eine Primzahl. 3 < 8 x < 15 (hängt von x ab, keine Aussage) Aussage = Behauptung Beispiele: Es regnet. Grundlagen der Mathematik für Informatiker 1 1 Aussagenlogik 1.1 Aussagen Aussage = Behauptung Beispiele: Es regnet. Die Straße ist naß. 15 ist eine Primzahl. 3 < 8 x < 15 (hängt von x ab, keine Aussage)

Mehr

Satz 227 3SAT ist N P-vollständig. Info IV 2 N P-Vollständigkeit 375/388 c Ernst W. Mayr

Satz 227 3SAT ist N P-vollständig. Info IV 2 N P-Vollständigkeit 375/388 c Ernst W. Mayr Definition 6 3SAT ist die Menge der booleschen Formeln in konjunktiver Normalform, die in jeder Klausel höchstens drei Literale enthalten und die erfüllbar sind. Satz 7 3SAT ist N P-vollständig. Info IV

Mehr

Algorithmische Bioinformatik 1

Algorithmische Bioinformatik 1 Algorithmische Bioinformatik 1 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Algorithmen

Mehr

Einführung in die Logik

Einführung in die Logik Einführung in die Logik Klaus Madlener und Roland Meyer 24. April 2013 Inhaltsverzeichnis 1 Aussagenlogik 1 1.1 Syntax................................. 1 1.2 Semantik............................... 3 1.3

Mehr

Syntax. 1 Jedes A AS AL ist eine (atomare) Formel. 2 Ist F eine Formel, so ist auch F eine Formel. 3 Sind F und G Formeln, so sind auch

Syntax. 1 Jedes A AS AL ist eine (atomare) Formel. 2 Ist F eine Formel, so ist auch F eine Formel. 3 Sind F und G Formeln, so sind auch Formale der Informatik 1 Kapitel 15 Folgerbarkeit, Äquivalenzen und Normalformen Frank Heitmann heitmann@informatik.uni-hamburg.de 8. Juni 2015 Syntax Definition (Syntax der Aussagenlogik) Mit AS AL sei

Mehr

Jeder Aussage p kann ein Wahrheitswert W(p) {0, 1} zugeordnet werden. Beispiele: W(Es regnet.) =? (je nach Lage der Dinge) W(Die Straße ist naß.) =?

Jeder Aussage p kann ein Wahrheitswert W(p) {0, 1} zugeordnet werden. Beispiele: W(Es regnet.) =? (je nach Lage der Dinge) W(Die Straße ist naß.) =? Grundlagen der Mathematik für Informatiker 1 Grundlagen der Mathematik für Informatiker 2 1 Aussagenlogik 1.1 Aussagen Aussage = Behauptung Beispiele: Es regnet. Die Straße ist naß. 15 ist eine Primzahl.

Mehr

Frank Heitmann 2/42. 1 Etwas aus der realen Welt in der Logik abstrakt ausdrücken. 2 In der Logik Schlüsse ziehen.

Frank Heitmann 2/42. 1 Etwas aus der realen Welt in der Logik abstrakt ausdrücken. 2 In der Logik Schlüsse ziehen. Literaturhinweis Formale Grundlagen der Informatik 1 Kapitel 13 Aussagenlogik & Frank Heitmann heitmann@informatik.uni-hamburg.de 23. Mai 2016 Literaturhinweis Der Logikteil (die nächsten fünf Wochen)

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

Vorsemesterkurs Informatik

Vorsemesterkurs Informatik Vorsemesterkurs Informatik Sommersemester 2018 Ronja Düffel 14. März 2018 Theoretische Informatik Wieso, weshalb, warum??!? 1 Modellieren und Formalisieren von Problemen und Lösungen 2 Verifikation (Beweis

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

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Lerneinheit 3: Greedy Algorithmen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 2016 10.5.2016 Einleitung Einleitung Diese Lerneinheit

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe

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

Effizienter Planaritätstest Vorlesung am

Effizienter Planaritätstest Vorlesung am Effizienter Planaritätstest Vorlesung am 23.04.2014 INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER Satz Gegebenen einen Graphen G = (V, E) mit n Kanten und m Knoten, kann in O(n + m) Zeit

Mehr

Logik für Informatiker

Logik für Informatiker Logik für Informatiker 2. Aussagenlogik Teil 4 07.05.2012 Viorica Sofronie-Stokkermans Universität Koblenz-Landau e-mail: sofronie@uni-koblenz.de 1 Gestern Normalformen Atome, Literale, Klauseln Konjunktive

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

Formale Systeme, WS 2015/2016 Übungsblatt 3

Formale Systeme, WS 2015/2016 Übungsblatt 3 Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Bernhard Beckert Thorsten Bormer, Dr. Vladimir Klebanov, Dr. Mattias Ulbrich Formale Systeme, WS 25/26 Übungsblatt 3 Dieses

Mehr

Greedy Algorithms - Gierige Algorithmen

Greedy Algorithms - Gierige Algorithmen Greedy Algorithms - Gierige Algorithmen Marius Burfey 23. Juni 2009 Inhaltsverzeichnis 1 Greedy Algorithms 1 2 Interval Scheduling - Ablaufplanung 2 2.1 Problembeschreibung....................... 2 2.2

Mehr