Counting the Number of Satisfying Assignments

Ähnliche Dokumente
Algorithmen II Vorlesung am

Approximations-Schemata, Estimator-Theorem, Expansion des Universums und Uniformes Sampling am Beispiel von # DNF

NP-Vollständigkeit einiger Zahlprobleme

Erfüllbarkeitsprobleme. Begriffe. Varianten von SAT

Probabilistische Pfadsuche

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit ** i=1

Proportional Symbol Maps

Ferien-Übungsblatt 8 Lösungsvorschläge

Maximum and Minimum Satisfiability Problem

Die Probabilistische Methode

Informatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung

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

5. Spezielle stetige Verteilungen

Polynomialzeit- Approximationsschema

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

Grundlagen der Künstlichen Intelligenz

Lösungen zur Vorlesung Berechenbarkeit und Komplexität

Logik für Informatiker

Kochrezept für NP-Vollständigkeitsbeweise

Algorithmenbegriff: Berechenbarkeit. Algorithmenanalyse. (Berechnung der Komplexität)

NP-Vollständigkeit des Erfüllbarkeitsproblems

Formale Grundlagen der Informatik 1 Kapitel 16 Normalformen und Hornformeln

Berechenbarkeit und Komplexität: Polynomielle Reduktion / NP-Vollständigkeit / Satz von Cook und Levin

Diskrete Strukturen und Logik WiSe 2007/08 in Trier. Henning Fernau Universität Trier

Einige Grundlagen der Komplexitätstheorie

Probleme aus NP und die polynomielle Reduktion

Kapitel L:II. II. Aussagenlogik

Algorithmische Methoden für schwere Optimierungsprobleme

Wiederholung. Divide & Conquer Strategie

Informatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung

Randomisierte Algorithmen 2. Erste Beispiele

Algorithmische Spieltheorie

Die Klasse NP und die polynomielle Reduktion. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen

Einführung in das Seminar Algorithmentechnik

Ein sortiertes Feld kann in O(log n) durchsucht werden, z.b. mit Binärsuche. Der Algorithmus 1 gibt den Pseudocode der binären Suche an.

Punktbeschriftung in Landkarten

Grundlagen der Informatik Kapitel 20. Harald Krottmaier Sven Havemann

Berechenbarkeits- und Komplexitätstheorie

Typischerweise sind randomisierte Algorithmen einfacher zu beschreiben und zu implementieren als deterministische Algorithmen.

Die Klasse NP und die polynomielle Reduktion

Theorie Parameterschätzung Ausblick. Schätzung. Raimar Sandner. Studentenseminar "Statistische Methoden in der Physik"

Kapitel 2. Weitere Beispiele Effizienter Algorithmen

Übung 4: Aussagenlogik II

Algorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array

Einführung in die Informatik 2

Vorlesung Theoretische Informatik (Info III)

Statt Turingmaschinen anzugeben, genügt die Angabe eines C++ Programms oder die Angabe eines Pseudocodes.

Wie komme ich von hier zum Hauptbahnhof?

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme

Theoretische Informatik Mitschrift

NP-vollständig - Was nun?

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

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

1 Aussagenlogik AL: Verknüpfung von Aussagen

Übung Theoretische Grundlagen

Logik für Informatiker

Logik für Informatiker

Rucksackproblem und Verifizierbarkeit

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

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array

Aufgaben aus den Übungsgruppen 8(Lösungsvorschläge)

Definition 77 Sei n N. Der Median (das mittlere Element) einer total geordneten Menge von n Elementen ist deren i-kleinstes Element, wobei n i =.

Einführung in die theoretische Informatik Sommersemester 2017 Übungsblatt Lösungsskizze 13

KESS - Die Komplexität evolutionär stabiler Strategien

Einführung in die Informatik 2

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

Algorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016

Vertiefung NWI: 8. Vorlesung zur Wahrscheinlichkeitstheorie

Wahrscheinlichkeitstheorie und Statistik

Übersicht. Datenstrukturen und Algorithmen. Die Teile-und-Beherrsche-Methode. Übersicht. Vorlesung 3: Rekursionsgleichungen (K4)

Logik Vorlesung 5: Grundlagen Resolution

Logische und funktionale Programmierung

Randomisierte Algorithmen

Logik für Informatiker

Randomisierte Algorithmen

Willkommen zur Vorlesung Komplexitätstheorie

Rundreiseproblem und Stabilität von Approximationsalg.

Diskrete Strukturen Wiederholungsklausur

Algorithmische Methoden für schwere Optimierungsprobleme

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

Die Klassen P und NP. Formale Grundlagen der Informatik 1 Kapitel 11. Die Klassen P und NP. Die Klasse P

Theoretische Grundlagen der Informatik

Reelle Komplexität - Grundlagen II

Künstliche Intelligenz Logische Agenten & Resolution

Satz 61 (Chebyshev-Ungleichung)

Das Rucksackproblem. Definition Sprache Rucksack. Satz

Formale Grundlagen der Informatik 1 Kapitel 15 Normalformen und Hornformeln

Das SAT Problem oder Erfüllbarkeitsproblem. Formale Systeme. Teilklassen. Satz von Cook. SAT Instanz: Eine aussagenlogische Formel F For 0

Seminar: Randomisierte Algorithmen Auswerten von Spielbäumen Nele Küsener

Komplexitätstheorie NP-Vollständigkeit: Reduktionen (2) Der Satz von Cook/Levin

Algorithmische Methoden für schwere Optimierungsprobleme

Kapitel III Selektieren und Sortieren

abgeschlossen unter,,,, R,

Formale Grundlagen der Informatik 1 Kapitel 21 P und NP

NP-vollständige Probleme. Michael Budahn - Theoretische Informatik 1

12. Woche: Verifizierer, nicht-deterministische Turingmaschine, Klasse NP

Kapitel L:II. II. Aussagenlogik

Transkript:

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 2014 Stefan Ploner: Counting the Number of Satisfying Assignments 1/ 44

Outline 1 Einführung Was ist #k-sat? 2 Monte-Carlo Counting MC im Allgemeinen MC für #k-sat 3 l-cuts Eliminationsbäume l-cuts 4 Eliminationsbaum zurechtstutzen Verbesserung der Laufzeit zum Finden von l-cuts 5 Unabhängige Klauseln und Rekursion Wie man das Universum verkleinert... Rekursion und Berechnung von ψ 6 Zusammenfassung Stefan Ploner: Counting the Number of Satisfying Assignments 2/ 44

Einführung 1 Einführung Was ist #k-sat? 2 Monte-Carlo Counting MC im Allgemeinen MC für #k-sat 3 l-cuts Eliminationsbäume l-cuts 4 Eliminationsbaum zurechtstutzen Verbesserung der Laufzeit zum Finden von l-cuts 5 Unabhängige Klauseln und Rekursion Wie man das Universum verkleinert... Rekursion und Berechnung von ψ 6 Zusammenfassung Stefan Ploner: Counting the Number of Satisfying Assignments 2/ 44

Einführung Was ist #k-sat? Satisfiability (SAT) (x 1 x 2 ) (x 1 x 3 x 4 ) (x 3 ) Erfüllbarkeit einer boolschen Formel Φ in konjunktiver Normalform über den Variablen x 1,..., x n Konjunktive Normalform (KNF / CNF): Literale: l = {x i, x i i {1,..., n}} x 1 Klauseln: C j = l 1... l kj (x 1 x 2 ) KNF: Φ = C 1... C m (x 1 x 2 ) (x 3 x 2 ) SAT ist NP-vollständig Brute-Force-Methode: Alle Variablenbelegungen testen Laufzeit in O (2 n ) O (.) ignoriert polynomielle Faktoren Stefan Ploner: Counting the Number of Satisfying Assignments 3/ 44

Einführung Was ist #k-sat? k-sat Bsp. 2-SAT: (x 1 x 2 ) (x 1 x 3 ) (x 3 ) (x 3 x 4 ) Jede Klausel enthält maximal k Literale 2-SAT P k 3: k-sat N P Laufzeiten randomisierter k-sat Solver Laufzeit k = 3 1.30704 n k = 4 1.46899 n Stefan Ploner: Counting the Number of Satisfying Assignments 4/ 44

Einführung Was ist #k-sat? k-sat Bsp. 2-SAT: (x 1 x 2 ) (x 1 x 3 ) (x 3 ) (x 3 x 4 ) Jede Klausel enthält maximal k Literale 2-SAT P k 3: k-sat N P Laufzeiten randomisierter k-sat Solver Laufzeit β k k = 3 1.30704 n = 2 0.3864n 0.3864 k = 4 1.46899 n = 2 0.5548n 0.5548 Stefan Ploner: Counting the Number of Satisfying Assignments 4/ 44

Einführung Was ist #k-sat? #k-sat Gesucht ist die Anzahl erfüllender Belegungen einer k-sat Instanz Brute-Force-Methode: Belegungen durchprobieren und mitzählen Laufzeit wieder O (2 n ) Stefan Ploner: Counting the Number of Satisfying Assignments 5/ 44

Einführung Was ist #k-sat? #k-sat Gesucht ist die Anzahl erfüllender Belegungen einer k-sat Instanz Brute-Force-Methode: Belegungen durchprobieren und mitzählen Laufzeit wieder O (2 n ) #k-sat ist für k 2 #P-vollständig, die Lösung ist nicht in polynomieller Zeit verifizierbar #2-SAT ist exakt in O (1.2377 n ) berechenbar ( Wahlström s Algorithmus ) Stefan Ploner: Counting the Number of Satisfying Assignments 5/ 44

Einführung Was ist #k-sat? Randomisiertes Zähl-Approximationsschema Liefert mit einer bestimmten Wahrscheinlichkeit eine Näherungslösung Pr[ #(I ) A(I, ε) ε #(I )] 3 4 I : Instanz des Zählproblems #(I ): exakte Lösung A(I, ε): berechnete Lösung ε: obere Schranke der Abweichung Stefan Ploner: Counting the Number of Satisfying Assignments 6/ 44

Einführung Was ist #k-sat? Ziel des Vortrags Algorithmus zum effizienten Lösen von #k-sat Eigenschaften: Randomisiert Hybrid bestehend aus 3 Komponenten: 1 Monte-Carlo Counting 2 Eliminationsbäume / l-cuts 3 Rekursion Kein Algorithmus kann alle Probleminstanzen gut lösen Nimm den Algorithmus, der für die Instanz am besten geeignet ist Stefan Ploner: Counting the Number of Satisfying Assignments 7/ 44

Monte-Carlo Counting 1 Einführung Was ist #k-sat? 2 Monte-Carlo Counting MC im Allgemeinen MC für #k-sat 3 l-cuts Eliminationsbäume l-cuts 4 Eliminationsbaum zurechtstutzen Verbesserung der Laufzeit zum Finden von l-cuts 5 Unabhängige Klauseln und Rekursion Wie man das Universum verkleinert... Rekursion und Berechnung von ψ 6 Zusammenfassung Stefan Ploner: Counting the Number of Satisfying Assignments 7/ 44

Monte-Carlo Counting MC im Allgemeinen Monte-Carlo Counting, Beispiel 1 Rate x und y gleichverteilt im Intervall [ 1, 1] 2 Prüfe, ob (x, y) im Kreis um den Ursprung mit Radius 1 liegt Stefan Ploner: Counting the Number of Satisfying Assignments 8/ 44

Monte-Carlo Counting MC im Allgemeinen Monte-Carlo Counting, Beispiel 1 Rate x und y gleichverteilt im Intervall [ 1, 1] 2 Prüfe, ob (x, y) im Kreis um den Ursprung mit Radius 1 liegt 3 Wiederhole die vorigen Schritte endlos 4 Sei R der Anteil an Treffern. Die Ausgabe ist R 4. Wie lautet das Ergebnis? Stefan Ploner: Counting the Number of Satisfying Assignments 8/ 44

Monte-Carlo Counting MC im Allgemeinen Monte-Carlo Counting, Beispiel 1 Rate x und y gleichverteilt im Intervall [ 1, 1] 2 Prüfe, ob (x, y) im Kreis um den Ursprung mit Radius 1 liegt 3 Wiederhole die vorigen Schritte endlos 4 Sei R der Anteil an Treffern. Die Ausgabe ist R 4. Wie lautet das Ergebnis? Pr[Trefferwskt.] 4 = 12 π 2 2 4 = π Realität: Mehr Wiederholungen führen zu einer genaueren Annäherung. Stefan Ploner: Counting the Number of Satisfying Assignments 8/ 44

Monte-Carlo Counting MC im Allgemeinen Monte-Carlo Counting, Allgemein S I : Menge zulässiger Lösungen U I : Stichprobenraum, Universum, U I S I Stefan Ploner: Counting the Number of Satisfying Assignments 9/ 44

Monte-Carlo Counting MC im Allgemeinen Monte-Carlo Counting, Allgemein S I : Menge zulässiger Lösungen U I : Stichprobenraum, Universum, U I S I U I muss bekannt sein, S I = #(I ) ist gesucht. (Kreis) (Quadrat) Stefan Ploner: Counting the Number of Satisfying Assignments 9/ 44

Monte-Carlo Counting MC im Allgemeinen Monte-Carlo Counting, Allgemein S I : Menge zulässiger Lösungen U I : Stichprobenraum, Universum, U I S I U I muss bekannt sein, S I = #(I ) ist gesucht. (Kreis) (Quadrat) Algorithmus MC: Wiederhole T mal Rate unabhängig und gleichverteilt ein Element x aus U I Prüfe, ob x S I (Treffer?) Sei L die Anzahl der Treffer. Dann ist R = L T eine (Trefferwskt.) Abschätzung für den Anteil richtiger Lösungen. Dann ist R U I eine Abschätzung von #(I ) Stefan Ploner: Counting the Number of Satisfying Assignments 9/ 44

Monte-Carlo Counting MC im Allgemeinen Estimator Theorem Satz: Sei ε > 0. Mit T 4 ( U ε 2 I S I 1) ist MC ein RASC, es gilt also: Tschebyscheff-Ungleichung: Pr[ MC(T (ε)) #(I ) ε #(I )] 3 4 Pr [ Z E[Z] ε E[Z]] 1 1 ε 2 Var[Z] E[Z] 2 Stefan Ploner: Counting the Number of Satisfying Assignments 10/ 44

Monte-Carlo Counting MC im Allgemeinen Estimator Theorem Satz: Sei ε > 0. Mit T 4 ( U ε 2 I S I 1) ist MC ein RASC, es gilt also: Tschebyscheff-Ungleichung: Pr[ MC(T (ε)) #(I ) ε #(I )] 3 4 Pr [ Z E[Z] ε E[Z]] 1 1 ε 2 Var[Z] E[Z] 2 E[Z] =... = #(I ) Stefan Ploner: Counting the Number of Satisfying Assignments 10/ 44

Monte-Carlo Counting MC im Allgemeinen Zufallsvariable für einen Treffer in der i. Stichprobe: { 1 x i S I X i = 0 sonst Stefan Ploner: Counting the Number of Satisfying Assignments 11/ 44

Monte-Carlo Counting MC im Allgemeinen Zufallsvariable für einen Treffer in der i. Stichprobe: { 1 x i S I X i = 0 sonst Rechenregeln der Varianz: Var[X ] = E[X 2 ] E[X ] 2 Var[cX ] = c 2 Var[X ] [ T ] T Var X i = Var[X i ], i=1 i=1 wenn X i unabhängig Stefan Ploner: Counting the Number of Satisfying Assignments 11/ 44

Monte-Carlo Counting MC im Allgemeinen Zufallsvariable für einen Treffer in der i. Stichprobe: { 1 x i S I X i = 0 sonst Rechenregeln der Varianz: Var[X ] = E[X 2 ] E[X ] 2 Var[cX ] = c 2 Var[X ] [ T ] T Var X i = Var[X i ], i=1 i=1 wenn X i unabhängig Var[Z] =... = S I T ( U I S I ) Stefan Ploner: Counting the Number of Satisfying Assignments 11/ 44

Monte-Carlo Counting MC im Allgemeinen Tschebyscheff-Ungleichung: Pr [ Z E[Z] ε E[Z]] 1 1 ε 2 Var[Z] E[Z] 2 ( ) Satz: Sei ε > 0. Mit T 4 UI ε 2 S I 1 ist MC ein RASC, es gilt also: Pr[ MC(T (ε)) #(I ) ε #(I )] 3 4 Stefan Ploner: Counting the Number of Satisfying Assignments 12/ 44

Monte-Carlo Counting MC im Allgemeinen Tschebyscheff-Ungleichung: Pr [ Z E[Z] ε E[Z]] 1 1 ε 2 Var[Z] E[Z] 2! 3 4 ( ) Satz: Sei ε > 0. Mit T 4 UI ε 2 S I 1 ist MC ein RASC, es gilt also: Pr[ MC(T (ε)) #(I ) ε #(I )] 3 4 Stefan Ploner: Counting the Number of Satisfying Assignments 12/ 44

Monte-Carlo Counting MC im Allgemeinen Tschebyscheff-Ungleichung: Pr [ Z E[Z] ε E[Z]] 1 1 ε 2 Var[Z] E[Z] 2! 3 4 1 ε 2 Var[Z] E[Z] 2 1 4 ( ) Satz: Sei ε > 0. Mit T 4 UI ε 2 S I 1 ist MC ein RASC, es gilt also: Pr[ MC(T (ε)) #(I ) ε #(I )] 3 4 Stefan Ploner: Counting the Number of Satisfying Assignments 12/ 44

Monte-Carlo Counting MC im Allgemeinen Tschebyscheff-Ungleichung: Pr [ Z E[Z] ε E[Z]] 1 1 ε 2 Var[Z] E[Z] 2 1 ε 2! 3 4 1 ε 2 Var[Z] E[Z] 2 1 4 S I T ( U I S I ) S I 2 1 4 ( ) Satz: Sei ε > 0. Mit T 4 UI ε 2 S I 1 ist MC ein RASC, es gilt also: Pr[ MC(T (ε)) #(I ) ε #(I )] 3 4 Stefan Ploner: Counting the Number of Satisfying Assignments 12/ 44

Monte-Carlo Counting MC im Allgemeinen Tschebyscheff-Ungleichung: Pr [ Z E[Z] ε E[Z]] 1 1 ε 2 Var[Z] E[Z] 2 1 ε 2! 3 4 1 ε 2 Var[Z] E[Z] 2 1 4 S I T ( U I S I ) 4 ε 2 S I 2 1 4 ( ) UI S I 1 T ( ) Satz: Sei ε > 0. Mit T 4 UI ε 2 S I 1 ist MC ein RASC, es gilt also: Pr[ MC(T (ε)) #(I ) ε #(I )] 3 4 Stefan Ploner: Counting the Number of Satisfying Assignments 12/ 44

Monte-Carlo Counting MC im Allgemeinen In unserem Beispiel... T I (ε) 4 ( ) UI ε 2 S I 1 T (ε) 4 ( ) 2 2 ε 2 1 2 π 1 = 1.1 ε 2 T (10 3 ) 1.1 10 ( 3) ( 2) = 1.1 10 6 Stefan Ploner: Counting the Number of Satisfying Assignments 13/ 44

Monte-Carlo Counting MC im Allgemeinen In unserem Beispiel... T I (ε) 4 ( ) UI ε 2 S I 1 T (ε) 4 ( ) 2 2 ε 2 1 2 π 1 = 1.1 ε 2 T (10 3 ) 1.1 10 ( 3) ( 2) = 1.1 10 6 Problem: Stefan Ploner: Counting the Number of Satisfying Assignments 13/ 44

Monte-Carlo Counting MC im Allgemeinen In unserem Beispiel... T I (ε) 4 ( ) UI ε 2 S I 1 T (ε) 4 ( ) 2 2 ε 2 1 2 π 1 = 1.1 ε 2 T (10 3 ) 1.1 10 ( 3) ( 2) = 1.1 10 6 Problem: S I ist eigentlich die Unbekannte. Lösung: Verwende untere Grenze l S I. T I (ε) 4 ( ) UI ε 2 1 4 ( ) UI l ε 2 S I 1 Stefan Ploner: Counting the Number of Satisfying Assignments 13/ 44

Monte-Carlo Counting MC für #k-sat Monte-Carlo Counting für #k-sat S Φ : I = Φ = (x 1 x 2 ) (x 2 x 3 ) Stefan Ploner: Counting the Number of Satisfying Assignments 14/ 44

Monte-Carlo Counting MC für #k-sat Monte-Carlo Counting für #k-sat I = Φ = (x 1 x 2 ) (x 2 x 3 ) S Φ : Menge der erfüllenden Belegungen U Φ Stefan Ploner: Counting the Number of Satisfying Assignments 14/ 44

Monte-Carlo Counting MC für #k-sat Monte-Carlo Counting für #k-sat I = Φ = (x 1 x 2 ) (x 2 x 3 ) S Φ : Menge der erfüllenden Belegungen U Φ = {0, 1} n : Belegungen der n Variablen von Φ, U Φ = 2 n Stefan Ploner: Counting the Number of Satisfying Assignments 14/ 44

Monte-Carlo Counting MC für #k-sat Monte-Carlo Counting für #k-sat I = Φ = (x 1 x 2 ) (x 2 x 3 ) S Φ : Menge der erfüllenden Belegungen U Φ = {0, 1} n : Belegungen der n Variablen von Φ, U Φ = 2 n Wiederhole T mal Für jede Variable Mit Wahrscheinlichkeit 1 : x 2 i := 1, sonst x i := 0 Werte Φ aus { 1 erfüllende Belegung X t = 0 sonst R = 1 T T t=1 X t Gebe R U Φ aus. Stefan Ploner: Counting the Number of Satisfying Assignments 14/ 44

Monte-Carlo Counting MC für #k-sat Monte-Carlo Counting für #k-sat I = Φ = (x 1 x 2 ) (x 2 x 3 ) S Φ : Menge der erfüllenden Belegungen U Φ = {0, 1} n : Belegungen der n Variablen von Φ, U Φ = 2 n Wiederhole T mal O((n + mk) T ) Für jede Variable O(n) Mit Wahrscheinlichkeit 1 : x 2 i := 1, sonst x i := 0 Werte Φ aus O(mk) { 1 erfüllende Belegung X t = 0 sonst R = 1 T T t=1 X t Gebe R U Φ aus. Stefan Ploner: Counting the Number of Satisfying Assignments 14/ 44

Monte-Carlo Counting MC für #k-sat Berechnung der Laufzeit T Φ (ε) 4 ε 2 ( UΦ l ) 1 = 4ε ( ) 2 n 2 l 1 Stefan Ploner: Counting the Number of Satisfying Assignments 15/ 44

Monte-Carlo Counting MC für #k-sat Berechnung der Laufzeit T Φ (ε) 4 ε 2 ( UΦ l LZ = (n + mk) 4 ε 2 ) 1 = 4ε ( 2 n 2 l 1 ( 2 n ) ) ( ) 1ε l 1 O 2 2n l Stefan Ploner: Counting the Number of Satisfying Assignments 15/ 44

Monte-Carlo Counting MC für #k-sat Berechnung der Laufzeit Wie wählen wir l? T Φ (ε) 4 ε 2 ( UΦ l LZ = (n + mk) 4 ε 2 ) 1 = 4ε ( 2 n 2 l 1 ( 2 n ) ) ( ) 1ε l 1 O 2 2n l Stefan Ploner: Counting the Number of Satisfying Assignments 15/ 44

Monte-Carlo Counting MC für #k-sat Berechnung der Laufzeit T Φ (ε) 4 ε 2 ( UΦ l LZ = (n + mk) 4 ε 2 ) 1 = 4ε ( 2 n 2 l 1 ( 2 n ) ) ( ) 1ε l 1 O 2 2n l Wie wählen wir l? Idee: Ein Löser für k-sat liefert uns die Untergrenze l = 1 in o(2 n ) LZ O ( 1 ε 2 2n ) Stefan Ploner: Counting the Number of Satisfying Assignments 15/ 44

Monte-Carlo Counting MC für #k-sat Berechnung der Laufzeit T Φ (ε) 4 ε 2 ( UΦ l LZ = (n + mk) 4 ε 2 ) 1 = 4ε ( 2 n 2 l 1 ( 2 n ) ) ( ) 1ε l 1 O 2 2n l Wie wählen wir l? Idee: Ein Löser für k-sat liefert uns die Untergrenze l = 1 in o(2 n ) LZ O ( 1 ε 2 2n ) Die triviale Laufzeit war auch O (2 n ). Wir sollten also noch ein wenig nachbessern... Stefan Ploner: Counting the Number of Satisfying Assignments 15/ 44

Monte-Carlo Counting MC für #k-sat Hat die Methode überhaupt Potenzial? Laufzeit in O*(.) 100 90 80 70 60 50 40 30 20 10 n = 10 0 0 256 512 768 1024 Untergrenze l 2 n / l Mit einer größeren Untergrenze l ließe sich die Laufzeit deutlich reduzieren. Stefan Ploner: Counting the Number of Satisfying Assignments 16/ 44

l-cuts 1 Einführung Was ist #k-sat? 2 Monte-Carlo Counting MC im Allgemeinen MC für #k-sat 3 l-cuts Eliminationsbäume l-cuts 4 Eliminationsbaum zurechtstutzen Verbesserung der Laufzeit zum Finden von l-cuts 5 Unabhängige Klauseln und Rekursion Wie man das Universum verkleinert... Rekursion und Berechnung von ψ 6 Zusammenfassung Stefan Ploner: Counting the Number of Satisfying Assignments 16/ 44

l-cuts Eliminationsbäume Elimination Trees Die Lösungen einer beliebigen SAT-Instanz können als Baum dargestellt werden Stefan Ploner: Counting the Number of Satisfying Assignments 17/ 44

l-cuts Eliminationsbäume Elimination Trees Die Lösungen einer beliebigen SAT-Instanz können als Baum dargestellt werden Beispiel: (x 1 x 2 ) (x 2 x 3 ) (x 2, x 1, x 3 ) Stefan Ploner: Counting the Number of Satisfying Assignments 17/ 44

l-cuts Eliminationsbäume Elimination Trees Die Lösungen einer beliebigen SAT-Instanz können als Baum dargestellt werden Beispiel: (x 1 x 2 ) (x 2 x 3 ) (x 2, x 1, x 3 ) Die Anzahl erfüllbarer Blätter entspricht der gesuchten Anzahl an Lösungen #Φ. Stefan Ploner: Counting the Number of Satisfying Assignments 17/ 44

l-cuts l-cuts l-cuts Ein l-cut ist ein Teilbaum des Eliminationsbaumes, der die Wurzel enthält und l Blätter hat. Er enthält nur Knoten, die erfüllbare Formeln repräsentieren. Stefan Ploner: Counting the Number of Satisfying Assignments 18/ 44

l-cuts l-cuts l-cuts Ein l-cut ist ein Teilbaum des Eliminationsbaumes, der die Wurzel enthält und l Blätter hat. Er enthält nur Knoten, die erfüllbare Formeln repräsentieren. Stefan Ploner: Counting the Number of Satisfying Assignments 18/ 44

l-cuts l-cuts l-cuts Ein l-cut ist ein Teilbaum des Eliminationsbaumes, der die Wurzel enthält und l Blätter hat. Er enthält nur Knoten, die erfüllbare Formeln repräsentieren. Berechnung: Von der Wurzel des Eliminationsbaums aus überprüfen, ob die teilweise belegte Formel erfüllbar ist, bis l Blätter gefunden wurden Stefan Ploner: Counting the Number of Satisfying Assignments 18/ 44

l-cuts l-cuts l-cuts Ein l-cut ist ein Teilbaum des Eliminationsbaumes, der die Wurzel enthält und l Blätter hat. Er enthält nur Knoten, die erfüllbare Formeln repräsentieren. Berechnung: Von der Wurzel des Eliminationsbaums aus überprüfen, ob die teilweise belegte Formel erfüllbar ist, bis l Blätter gefunden wurden Beispiel: (x 1 x 2 ) (x 2 x 3 ) (x 2, x 1, x 3 ) Stefan Ploner: Counting the Number of Satisfying Assignments 18/ 44

l-cuts l-cuts l-cuts Ein l-cut ist ein Teilbaum des Eliminationsbaumes, der die Wurzel enthält und l Blätter hat. Er enthält nur Knoten, die erfüllbare Formeln repräsentieren. Berechnung: Von der Wurzel des Eliminationsbaums aus überprüfen, ob die teilweise belegte Formel erfüllbar ist, bis l Blätter gefunden wurden Beispiel: (x 1 x 2 ) (x 2 x 3 ) (x 2, x 1, x 3 ) Fakten zu l-cuts: Ein l-cut hat maximal #Φ Blätter l-cut existiert #Φ l Ein l-cut enthält maximal n l Knoten Stefan Ploner: Counting the Number of Satisfying Assignments 18/ 44

l-cuts l-cuts Laufzeit zum Ermitteln eines l-cuts l-cut, max. Anzahl Knoten: Binärbaum, Höhe: Binärbaum, Anzahl Knoten pro Level: Laufzeit SAT-Solver: n-te Partialsumme der geometrischen Reihe: l n log 2 (#Knoten) 2 i 2 β k #Variablen n k=0 qk = qn+1 1 q 1 Stefan Ploner: Counting the Number of Satisfying Assignments 19/ 44

l-cuts l-cuts Laufzeit zum Ermitteln eines l-cuts l-cut, max. Anzahl Knoten: Binärbaum, Höhe: Binärbaum, Anzahl Knoten pro Level: Laufzeit SAT-Solver: n-te Partialsumme der geometrischen Reihe: l n log 2 (#Knoten) 2 i 2 β k #Variablen n k=0 qk = qn+1 1 q 1 T cut O log(n l) i=0 = O (2 β k n l 1 β k ) log(n l) 2 i 2 β k (n i) = O 2 β k n }{{} [0;1) i=0 2 (1 β k) i Stefan Ploner: Counting the Number of Satisfying Assignments 19/ 44

l-cuts l-cuts Laufzeit zum Ermitteln eines l-cuts l-cut, max. Anzahl Knoten: Binärbaum, Höhe: Binärbaum, Anzahl Knoten pro Level: Laufzeit SAT-Solver: n-te Partialsumme der geometrischen Reihe: l n log 2 (#Knoten) 2 i 2 β k #Variablen n k=0 qk = qn+1 1 q 1 T cut O log(n l) i=0 = O (2 β k n l 1 β k ) log(n l) 2 i 2 β k (n i) = O 2 β k n }{{} [0;1) i=0 2 (1 β k) i Bemerkung: l 1 β k ist im Allgemeinen kein polynomieller Faktor, l 2 n. Stefan Ploner: Counting the Number of Satisfying Assignments 19/ 44

l-cuts l-cuts Laufzeit zum Ermitteln eines l-cuts, Abhängigkeit von #Φ Bricht die Berechnung eines l-cuts vorzeitig ab, weil keine erfüllbaren Äste mehr existieren, so ist #Φ gleich der aktuellen Anzahl Blätter des Schnitts. 1024 n = 10, k = 3, beta = 0.3864 2 ( beta*n) * #Phi ( 1 - beta) 768 Laufzeit in O*(.) 512 256 0 0 256 512 768 1024 #Phi Je größer #Φ, desto aufwendiger ist die Berechnung des l-cuts Stefan Ploner: Counting the Number of Satisfying Assignments 20/ 44

l-cuts l-cuts Laufzeit von l-cut und Monte-Carlo 256 192 n = 10, k = 3, beta = 0.3864 l-cut MC Laufzeit in O*(.) 128 64 0 0 256 512 768 1024 #Phi bzw. Untergrenze l Die Stärken beider Algorithmen ergänzen sich Stefan Ploner: Counting the Number of Satisfying Assignments 21/ 44

l-cuts l-cuts Hybrider Algorithmus Berechne zuerst einen l-cut l-cut existiert nicht: #Φ entspricht der Anzahl der Blätter im Schnitt l-cut existiert: l ist eine Untergrenze der Lösungen von Φ Starte MC mit der Untergrenze l und dem gewünschten ε 256 192 n = 10, k = 3, beta = 0.3864 l-cut MC Laufzeit in O*(.) 128 64 0 0 256 512 768 1024 #Phi bzw. Untergrenze l Stefan Ploner: Counting the Number of Satisfying Assignments 22/ 44

l-cuts l-cuts Hybrider Algorithmus Berechne zuerst einen l-cut l-cut existiert nicht: #Φ entspricht der Anzahl der Blätter im Schnitt l-cut existiert: l ist eine Untergrenze der Lösungen von Φ Starte MC mit der Untergrenze l und dem gewünschten ε 256 192 n = 10, k = 3, beta = 0.3864 l-cut MC Laufzeit in O*(.) 128 64 0 0 256 512 768 1024 #Phi bzw. Untergrenze l Welcher Wert von l ist der optimale Umschaltpunkt? Stefan Ploner: Counting the Number of Satisfying Assignments 22/ 44

l-cuts l-cuts Optimales l für die kleinste Worst-Case Laufzeit T Cut O (2 β k n l 1 β k ) ( ) 1 T MC O ε 2 2n l l = arg-min l {T Cut + T MC } Stefan Ploner: Counting the Number of Satisfying Assignments 23/ 44

l-cuts l-cuts Optimales l für die kleinste Worst-Case Laufzeit T Cut O (2 β k n l 1 β k ) ( ) 1 T MC O ε 2 2n l l = arg-min l {T Cut + T MC } l (T Cut + T MC )! = 0 Stefan Ploner: Counting the Number of Satisfying Assignments 23/ 44

l-cuts l-cuts Optimales l für die kleinste Worst-Case Laufzeit T Cut O (2 β k n l 1 β k ) ( ) 1 T MC O ε 2 2n l Resultierende Worst-Case Laufzeit: l = arg-min l {T Cut + T MC } l (T Cut + T MC )! = 0 l = 2 1 β k n 2 β k Stefan Ploner: Counting the Number of Satisfying Assignments 23/ 44

l-cuts l-cuts Optimales l für die kleinste Worst-Case Laufzeit T Cut O (2 β k n l 1 β k ) ( ) 1 T MC O ε 2 2n l l = arg-min l {T Cut + T MC } l (T Cut + T MC )! = 0 l = 2 1 β k n 2 β k Resultierende Worst-Case Laufzeit: ( ) 1 O ε 2 2 1 n 2 β k Stefan Ploner: Counting the Number of Satisfying Assignments 23/ 44

l-cuts l-cuts Worst-Case Laufzeiten des hybriden Algorithmus ( ) 1 O ε 2 2 1 n 2 β k k = 3: O (ε 2 1.5366 n ) β k = 0.3864 k = 4: O (ε 2 1.6155 n ) β k = 0.5548 k 5: für β k, siehe Literatur Stefan Ploner: Counting the Number of Satisfying Assignments 24/ 44

l-cuts l-cuts Laufzeit des hybriden Algorithmus in Abhängigkeit von #Φ 1024 n = 10, k = 3, beta = 0.3864 Laufzeit in O*(.) 768 512 256 l-cut MC hybrid 0 0 256 512 768 1024 #Phi bzw. Untergrenze l für MC Stefan Ploner: Counting the Number of Satisfying Assignments 25/ 44

l-cuts l-cuts Laufzeit des hybriden Algorithmus in Abhängigkeit von #Φ 1024 n = 10, k = 3, beta = 0.3864 Laufzeit in O*(.) 768 512 256 l-cut MC hybrid 0 0 256 512 768 1024 #Phi bzw. Untergrenze l für MC Starke Verbesserung ohne in die Formel selbst hineinzuschauen! Stefan Ploner: Counting the Number of Satisfying Assignments 25/ 44

Eliminationsbaum zurechtstutzen 1 Einführung Was ist #k-sat? 2 Monte-Carlo Counting MC im Allgemeinen MC für #k-sat 3 l-cuts Eliminationsbäume l-cuts 4 Eliminationsbaum zurechtstutzen Verbesserung der Laufzeit zum Finden von l-cuts 5 Unabhängige Klauseln und Rekursion Wie man das Universum verkleinert... Rekursion und Berechnung von ψ 6 Zusammenfassung Stefan Ploner: Counting the Number of Satisfying Assignments 25/ 44

Eliminationsbaum zurechtstutzen Verbesserung der Laufzeit zum Finden von l-cuts Grad des Eliminationsbaums reduzieren - Fall κ = k Φ = (x 1 x 2 ) (x 2 x 3 ) (x 3 x 4 ) (x 1 x 2 ) Sei φ die von einem Knoten im Eliminationsbaum repräsentierte k-cnf Formel Sei C eine Klausel in φ mit κ = k Literalen Es gibt genau eine Belegung der κ Variablen, die C nicht erfüllt C = (x 1 x 2 )! = (false false) x 1 false, x 2 false Stefan Ploner: Counting the Number of Satisfying Assignments 26/ 44

Eliminationsbaum zurechtstutzen Verbesserung der Laufzeit zum Finden von l-cuts Grad des Eliminationsbaums reduzieren - Fall κ = k Φ = (x 1 x 2 ) (x 2 x 3 ) (x 3 x 4 ) (x 1 x 2 ) Sei φ die von einem Knoten im Eliminationsbaum repräsentierte k-cnf Formel Sei C eine Klausel in φ mit κ = k Literalen Es gibt genau eine Belegung der κ Variablen, die C nicht erfüllt C = (x 1 x 2 )! = (false false) x 1 false, x 2 false Belegen wir die k Variablen von C, kann der Ast, der die Klausel nicht erfüllt, weggelassen werden Stefan Ploner: Counting the Number of Satisfying Assignments 26/ 44

Eliminationsbaum zurechtstutzen Verbesserung der Laufzeit zum Finden von l-cuts Grad des Eliminationsbaums reduzieren - κ k Φ =(x 1 x 2 ) (x 2 x 3 ) (x 3 x 4 ) (x 1 x 2 ) Sei C eine Klausel in φ mit κ k Literalen Stefan Ploner: Counting the Number of Satisfying Assignments 27/ 44

Eliminationsbaum zurechtstutzen Verbesserung der Laufzeit zum Finden von l-cuts Grad des Eliminationsbaums reduzieren - κ k Φ =(x 1 x 2 ) (x 2 x 3 ) (x 3 x 4 ) (x 1 x 2 ) x 1 true, x 2 true (x 3 ) (x 3 x 4 ) Sei C eine Klausel in φ mit κ k Literalen Stefan Ploner: Counting the Number of Satisfying Assignments 27/ 44

Eliminationsbaum zurechtstutzen Verbesserung der Laufzeit zum Finden von l-cuts Grad des Eliminationsbaums reduzieren - κ k Φ =(x 1 x 2 ) (x 2 x 3 ) (x 3 x 4 ) (x 1 x 2 ) x 1 true, x 2 true (x 3 ) (x 3 x 4 ) Sei C eine Klausel in φ mit κ k Literalen Belegen wir k Variablen einschließlich der in C enthaltenen, können alle Äste, die C nicht erfüllen, weggelassen werden Stefan Ploner: Counting the Number of Satisfying Assignments 27/ 44

Eliminationsbaum zurechtstutzen Verbesserung der Laufzeit zum Finden von l-cuts Grad des Eliminationsbaums reduzieren - κ k Φ =(x 1 x 2 ) (x 2 x 3 ) (x 3 x 4 ) (x 1 x 2 ) x 1 true, x 2 true (x 3 ) (x 3 x 4 ) (x 3 false, x 4 true) und (x 3 false, x 4 false) fallen weg. Sei C eine Klausel in φ mit κ k Literalen Belegen wir k Variablen einschließlich der in C enthaltenen, können alle Äste, die C nicht erfüllen, weggelassen werden Ersparnis: 2 k κ 1 Äste Stefan Ploner: Counting the Number of Satisfying Assignments 27/ 44

Eliminationsbaum zurechtstutzen Verbesserung der Laufzeit zum Finden von l-cuts Grad des Eliminationsbaums reduzieren - κ k Φ =(x 1 x 2 ) (x 2 x 3 ) (x 3 x 4 ) (x 1 x 2 ) x 1 true, x 2 true (x 3 ) (x 3 x 4 ) (x 3 false, x 4 true) und (x 3 false, x 4 false) fallen weg. Sei C eine Klausel in φ mit κ k Literalen Belegen wir k Variablen einschließlich der in C enthaltenen, können alle Äste, die C nicht erfüllen, weggelassen werden Ersparnis: 2 k κ 1 Äste Der Knoten hat also 2 k 2 k κ 2 k 1 Kinder Die Höhe des Baumes reduziert sich auf n k Stefan Ploner: Counting the Number of Satisfying Assignments 27/ 44

Eliminationsbaum zurechtstutzen Verbesserung der Laufzeit zum Finden von l-cuts Verbesserte Laufzeit zum Ermitteln eines l-cuts verbesserter l-cut, max. Anzahl Knoten: Höhe eines Baumes mit Grad 2 k 1: Anzahl Knoten pro Level: Laufzeit SAT-Solver, Level i: n-te Partialsumme der geometrischen Reihe: T cut O log 2 k 1 (l n k ) i=0 = O (2 β k n l 1 β k l n k log 2 k 1(#Knoten) (2 k 1) i 2 β k (n k i) n k=0 qk = qn+1 1 q 1 (2 k 1) i 2 β k (n k i) k log(2 k 1) ) Stefan Ploner: Counting the Number of Satisfying Assignments 28/ 44

Eliminationsbaum zurechtstutzen Verbesserung der Laufzeit zum Finden von l-cuts Verbesserte Laufzeit zum Ermitteln eines l-cuts verbesserter l-cut, max. Anzahl Knoten: Höhe eines Baumes mit Grad 2 k 1: Anzahl Knoten pro Level: Laufzeit SAT-Solver, Level i: n-te Partialsumme der geometrischen Reihe: T cut O log 2 k 1 (l n k ) i=0 = O (2 β k n l 1 β k l n k log 2 k 1(#Knoten) (2 k 1) i 2 β k (n k i) n k=0 qk = qn+1 1 q 1 (2 k 1) i 2 β k (n k i) k log(2 k 1) ) k log(2 k 1) = log(2k ) log(2 k 1) > 1 Stefan Ploner: Counting the Number of Satisfying Assignments 28/ 44

Eliminationsbaum zurechtstutzen Verbesserung der Laufzeit zum Finden von l-cuts Änderung der Laufzeit des Hybriden Algorithmus ( Laufzeit l-cut O 2 β k n l 1 β k Umschaltpunkt ( l = exp Laufzeit Gesamt O ( 1 ε 2 2 p kn ) k log(2 k 1) 1 β k k 2 β k log(2 k 1) ) ) n wird kleiner wird größer Stefan Ploner: Counting the Number of Satisfying Assignments 29/ 44

Eliminationsbaum zurechtstutzen Verbesserung der Laufzeit zum Finden von l-cuts Änderung der Laufzeit des Hybriden Algorithmus ( Laufzeit l-cut O 2 β k n l 1 β k Umschaltpunkt ( l = exp Laufzeit Gesamt O ( 1 ε 2 2 p kn ) p k = ( ) k 1 β k log(2 k 1) 1 2 β k k log(2 k 1) k log(2 k 1) 1 β k k 2 β k log(2 k 1) ) ) n wird kleiner wird größer wird unübersichtlich Stefan Ploner: Counting the Number of Satisfying Assignments 29/ 44

Eliminationsbaum zurechtstutzen Verbesserung der Laufzeit zum Finden von l-cuts Änderung der Laufzeit des Hybriden Algorithmus ( Laufzeit l-cut O 2 β k n l 1 β k Umschaltpunkt ( l = exp Laufzeit Gesamt O ( 1 ε 2 2 p kn ) p k = ( ) k 1 β k log(2 k 1) 1 2 β k k log(2 k 1) k log(2 k 1) 1 β k k 2 β k log(2 k 1) ) ) n wird kleiner wird größer wird kleiner Stefan Ploner: Counting the Number of Satisfying Assignments 29/ 44

Eliminationsbaum zurechtstutzen Verbesserung der Laufzeit zum Finden von l-cuts Änderung der Laufzeit des Hybriden Algorithmus ( Laufzeit l-cut O 2 β k n l 1 β k Umschaltpunkt ( l = exp Laufzeit Gesamt O ( 1 ε 2 2 p kn ) p k = ( ) k 1 β k log(2 k 1) 1 2 β k k log(2 k 1) k log(2 k 1) 1 β k k 2 β k log(2 k 1) ) ) n wird kleiner wird größer wird kleiner Verbesserter l-cut ursprünglicher l-cut k = 3 O (ε 2 1.5298 n ) O (ε 2 1.5366 n ) k = 4 O (ε 2 1.6122 n ) O (ε 2 1.6155 n ) Stefan Ploner: Counting the Number of Satisfying Assignments 29/ 44

Unabhängige Klauseln und Rekursion 1 Einführung Was ist #k-sat? 2 Monte-Carlo Counting MC im Allgemeinen MC für #k-sat 3 l-cuts Eliminationsbäume l-cuts 4 Eliminationsbaum zurechtstutzen Verbesserung der Laufzeit zum Finden von l-cuts 5 Unabhängige Klauseln und Rekursion Wie man das Universum verkleinert... Rekursion und Berechnung von ψ 6 Zusammenfassung Stefan Ploner: Counting the Number of Satisfying Assignments 29/ 44

Unabhängige Klauseln und Rekursion Wie man das Universum verkleinert... Erinnerung Laufzeit des Monte-Carlo Algorithmus ( 1 O ε 2 U ) Φ l Bisheriger Fokus: Untergrenze l Stefan Ploner: Counting the Number of Satisfying Assignments 30/ 44

Unabhängige Klauseln und Rekursion Wie man das Universum verkleinert... Erinnerung Laufzeit des Monte-Carlo Algorithmus ( 1 O ε 2 U ) Φ l Bisheriger Fokus: Untergrenze l Neuer Ansatz: Reduzierung von U Φ Stefan Ploner: Counting the Number of Satisfying Assignments 30/ 44

Unabhängige Klauseln und Rekursion Wie man das Universum verkleinert... Unabhängigkeit (x 1 x 2 ) (x 3 x 4 ) }{{} Zwei Klauseln sind unabhängig, wenn sie keine gemeinsamen Variablen enthalten. Stefan Ploner: Counting the Number of Satisfying Assignments 31/ 44

Unabhängige Klauseln und Rekursion Wie man das Universum verkleinert... Unabhängigkeit Φ = (x 1 x 2 ) (x 3 x 4 ) (x }{{} 1 x 5 ) ψ Zwei Klauseln sind unabhängig, wenn sie keine gemeinsamen Variablen enthalten. Betrachte Φ als Menge von Klauseln. Eine Teilformel ψ Φ ist unabhängig, wenn die enthaltenen Klauseln paarweise unabhängig sind. Stefan Ploner: Counting the Number of Satisfying Assignments 31/ 44

Unabhängige Klauseln und Rekursion Wie man das Universum verkleinert... Unabhängigkeit Φ = (x 1 x 2 ) (x 3 x 4 ) (x }{{} 1 x 5 ) ψ Zwei Klauseln sind unabhängig, wenn sie keine gemeinsamen Variablen enthalten. Betrachte Φ als Menge von Klauseln. Eine Teilformel ψ Φ ist unabhängig, wenn die enthaltenen Klauseln paarweise unabhängig sind. ψ ist maximal, wenn jede Klausel aus Φ mindestens eine Variable enthält, die in einer Klausel von ψ enthalten ist. Stefan Ploner: Counting the Number of Satisfying Assignments 31/ 44

Unabhängige Klauseln und Rekursion Wie man das Universum verkleinert... Φ = (x 1 x 2 ) (x 3 x 4 ) (x }{{} 1 x 5 ) ψ ψ ist Teil von Φ Φ enthält weitere Klauseln, ist also restriktiver Stefan Ploner: Counting the Number of Satisfying Assignments 32/ 44

Unabhängige Klauseln und Rekursion Wie man das Universum verkleinert... Φ = (x 1 x 2 ) (x 3 x 4 ) (x }{{} 1 x 5 ) ψ ψ ist Teil von Φ Φ enthält weitere Klauseln, ist also restriktiver S ψ S Φ Stefan Ploner: Counting the Number of Satisfying Assignments 32/ 44

Unabhängige Klauseln und Rekursion Wie man das Universum verkleinert... Φ = (x 1 x 2 ) (x 3 x 4 ) (x }{{} 1 x 5 ) ψ ψ ist Teil von Φ Φ enthält weitere Klauseln, ist also restriktiver {0, 1} n S ψ S Φ Stefan Ploner: Counting the Number of Satisfying Assignments 32/ 44

Unabhängige Klauseln und Rekursion Wie man das Universum verkleinert... Ein neues Universum Φ = (x 1 x 2 ) (x 3 x 4 ) (x }{{} 1 x 5 ) ψ ψ ist Teil von Φ Φ enthält weitere Klauseln, ist also restriktiver {0, 1} n S ψ S Φ Verwende S ψ als Universum für die Approximation von S Φ = #Φ weniger Wiederholungen Stefan Ploner: Counting the Number of Satisfying Assignments 32/ 44

Unabhängige Klauseln und Rekursion Wie man das Universum verkleinert... Ein neues Universum Φ = (x 1 x 2 ) (x 3 x 4 ) (x }{{} 1 x 5 ) ψ ψ ist Teil von Φ Φ enthält weitere Klauseln, ist also restriktiver {0, 1} n S ψ S Φ Verwende S ψ als Universum für die Approximation von S Φ = #Φ weniger Wiederholungen Warum verwenden wir nicht gleich S Φ? Stefan Ploner: Counting the Number of Satisfying Assignments 32/ 44

Unabhängige Klauseln und Rekursion Wie man das Universum verkleinert... Ein neues Universum Φ = (x 1 x 2 ) (x 3 x 4 ) (x }{{} 1 x 5 ) ψ ψ ist Teil von Φ Φ enthält weitere Klauseln, ist also restriktiver {0, 1} n S ψ S Φ Verwende S ψ als Universum für die Approximation von S Φ = #Φ weniger Wiederholungen Warum verwenden wir nicht gleich S Φ? Stichproben ziehen N P Stefan Ploner: Counting the Number of Satisfying Assignments 32/ 44

Unabhängige Klauseln und Rekursion Wie man das Universum verkleinert... Ziehen von uniform verteilten Stichproben aus S ψ {}}{{}}{ Φ = (x 1 x 2 ) (x 3 x 4 ) (x }{{} 1 {}}{ x 5 ) ψ Stefan Ploner: Counting the Number of Satisfying Assignments 33/ 44

Unabhängige Klauseln und Rekursion Wie man das Universum verkleinert... Ziehen von uniform verteilten Stichproben aus S ψ (1) (1) {}}{{}}{ Φ = (x 1 x 2 ) (x 3 x 4 ) } {{ } ψ (x 1 {}}{ x 5 ) 1 Für jede Klausel aus ψ, wähle uniform eine erfüllende Belegung der enthaltenen Variablen Stefan Ploner: Counting the Number of Satisfying Assignments 33/ 44

Unabhängige Klauseln und Rekursion Wie man das Universum verkleinert... Ziehen von uniform verteilten Stichproben aus S ψ (1) (1) {}}{{}}{ Φ = (x 1 x 2 ) (x 3 x 4 ) (x 1 } {{ } ψ (2) {}}{ x 5 ) 1 Für jede Klausel aus ψ, wähle uniform eine erfüllende Belegung der enthaltenen Variablen 2 Für alle anderen Variablen, wähle uniform eine Belegung Stefan Ploner: Counting the Number of Satisfying Assignments 33/ 44

Unabhängige Klauseln und Rekursion Wie man das Universum verkleinert... Monte-Carlo Counting im neuen Universum Wiederhole T mal Φ = (x 1 x 2 ) (x 3 x 4 ) (x }{{} 1 x 5 ) ψ Für jede Variable Mit Wahrscheinlichkeit 1 : x 2 i := 1, sonst x i := 0 Werte Φ aus { 1 erfüllende Belegung X t = 0 sonst R = 1 T T t=1 X t Das Ergebnis ist R S ψ Stefan Ploner: Counting the Number of Satisfying Assignments 34/ 44

Unabhängige Klauseln und Rekursion Wie man das Universum verkleinert... Monte-Carlo Counting im neuen Universum Φ = (x 1 x 2 ) (x 3 x 4 ) (x }{{} 1 x 5 ) ψ Wiederhole T mal Für jede Klausel in ψ Würfle von 1 bis 2 k 1, setze die Literale entsprechend der Bits Für jede übrige Variable Mit Wahrscheinlichkeit 1 : x 2 i := 1, sonst x i := 0 Werte Φ aus { 1 erfüllende Belegung X t = 0 sonst R = 1 T T t=1 X t Das Ergebnis ist R S ψ Stefan Ploner: Counting the Number of Satisfying Assignments 34/ 44

Unabhängige Klauseln und Rekursion Wie man das Universum verkleinert... Laufzeit Monte-Carlo mit kleinerem Universum S ψ (2 k 1) ψ 2 n k ψ ψ = number of clauses in ψ Stefan Ploner: Counting the Number of Satisfying Assignments 35/ 44

Unabhängige Klauseln und Rekursion Wie man das Universum verkleinert... Laufzeit Monte-Carlo mit kleinerem Universum S ψ (2 k 1) ψ 2 n k ψ = }{{} 2 n (1 2 k ) }{{} = U Φ <1 ψ = number of clauses in ψ ψ Stefan Ploner: Counting the Number of Satisfying Assignments 35/ 44

Unabhängige Klauseln und Rekursion Wie man das Universum verkleinert... Laufzeit Monte-Carlo mit kleinerem Universum S ψ (2 k 1) ψ 2 n k ψ = }{{} 2 n (1 2 k ) }{{} = U Φ <1 ψ = number of clauses in ψ Es ergibt sich die Laufzeit ( ) 1 O ε 2 2n l (1 2 k ) ψ ψ Stefan Ploner: Counting the Number of Satisfying Assignments 35/ 44

Unabhängige Klauseln und Rekursion Rekursion und Berechnung von ψ Was bringt uns das neue Universum S ψ im Worst-Case? ( ) 1 O ε 2 2n l (1 2 k ) ψ Stefan Ploner: Counting the Number of Satisfying Assignments 36/ 44

Unabhängige Klauseln und Rekursion Rekursion und Berechnung von ψ Was bringt uns das neue Universum S ψ im Worst-Case? ( ) 1 O ε 2 2n l (1 2 k ) ψ Φ = (x 1 x 2 ) (x 1 x 3 ) (x 1 x 4 ) (x 1 x 5 ) Stefan Ploner: Counting the Number of Satisfying Assignments 36/ 44

Unabhängige Klauseln und Rekursion Rekursion und Berechnung von ψ Was bringt uns das neue Universum S ψ im Worst-Case? ( ) 1 O ε 2 2n l (1 2 k ) ψ Φ = (x 1 x 2 ) (x 1 x 3 ) (x 1 x 4 ) (x 1 x 5 ) ψ = 1 (1 2 k ) 1 k:=2 = 3 4 ist im Worst-Case ein konstanter Faktor Die Ersparnis wird in O-Notation komplett vernachlässigt! Stefan Ploner: Counting the Number of Satisfying Assignments 36/ 44

Unabhängige Klauseln und Rekursion Rekursion und Berechnung von ψ Φ = (x 1 x 2 ) (x 1 x 3 ) (x 1 x 4 ) (x 1 x 5 ) Stefan Ploner: Counting the Number of Satisfying Assignments 37/ 44

Unabhängige Klauseln und Rekursion Rekursion und Berechnung von ψ Rekursionsidee Φ = (x 1 x 2 ) (x 1 x 3 ) (x 1 x 4 ) (x 1 x 5 ) = #Φ x1 =true + #Φ x1 =false (vgl. Elim.-Baum) Stefan Ploner: Counting the Number of Satisfying Assignments 37/ 44

Unabhängige Klauseln und Rekursion Rekursion und Berechnung von ψ Rekursionsidee Φ = (x 1 x 2 ) (x 1 x 3 ) (x 1 x 4 ) (x 1 x 5 ) = #Φ x1 =true + #Φ x1 =false (vgl. Elim.-Baum) Φ x1 =true = (true x 2 ) (true x 3 ) (false x 4 ) (false x 5 ) Φ x1 =false = (false x 2 ) (false x 3 ) (true x 4 ) (true x 5 ) Stefan Ploner: Counting the Number of Satisfying Assignments 37/ 44

Unabhängige Klauseln und Rekursion Rekursion und Berechnung von ψ Rekursionsidee Φ = (x 1 x 2 ) (x 1 x 3 ) (x 1 x 4 ) (x 1 x 5 ) = #Φ x1 =true + #Φ x1 =false (vgl. Elim.-Baum) Φ x1 =true = (true x 2 ) (true x 3 ) (false x 4 ) (false x 5 ) = (x 4 ) (x 5 ) Φ x1 =false = (false x 2 ) (false x 3 ) (true x 4 ) (true x 5 ) = (x 2 ) (x 3 ) Stefan Ploner: Counting the Number of Satisfying Assignments 37/ 44

Unabhängige Klauseln und Rekursion Rekursion und Berechnung von ψ Rekursionsidee Φ = (x 1 x 2 ) (x 1 x 3 ) (x 1 x 4 ) (x 1 x 5 ) #2-SAT = #Φ x1 =true + #Φ x1 =false (vgl. Elim.-Baum) Φ x1 =true = (true x 2 ) (true x 3 ) (false x 4 ) (false x 5 ) = (x 4 ) (x 5 ) #1-SAT Φ x1 =false = (false x 2 ) (false x 3 ) (true x 4 ) (true x 5 ) = (x 2 ) (x 3 ) #1-SAT Mehr, aber deutlich einfachere Instanzen! Stefan Ploner: Counting the Number of Satisfying Assignments 37/ 44

Unabhängige Klauseln und Rekursion Rekursion und Berechnung von ψ Rekursion im Allgemeinen Φ = (x 1 x 2 ) (x 1 x 3 ) (x 1 x 4 ) (x 1 x 5 ) Wenn ψ klein ist Belege alle Variablen aus ψ in allen erfüllbaren Kombinationen Löse die 2 k ψ Subprobleme der Größe n n k ψ aus (k 1)-#SAT Stefan Ploner: Counting the Number of Satisfying Assignments 38/ 44

Unabhängige Klauseln und Rekursion Rekursion und Berechnung von ψ Rekursion im Allgemeinen Φ = (x 1 x 2 ) (x 1 x 3 ) (x 1 x 4 ) (x 1 x 5 ) Wenn ψ klein ist Belege alle Variablen aus ψ in allen erfüllbaren Kombinationen Löse die 2 k ψ Subprobleme der Größe n n k ψ aus (k 1)-#SAT Im Worst-Case (nur unabhängige Klauseln) würde das Verfahren (2 k 1) m < 2 n Subprobleme erzeugen Stefan Ploner: Counting the Number of Satisfying Assignments 38/ 44

Unabhängige Klauseln und Rekursion Rekursion und Berechnung von ψ Hybrider(er) Algorithmus Berechne ψ nach dem Greedy-Prinzip Wenn ψ < ˆm: Wenn k 1 = 2: Verwende Wahlström s Algorithmus Sonst: Berechne rekursiv die Summe von #(k 1)-SAT aller ψ-erfüllenden Belegungen Sonst: Stefan Ploner: Counting the Number of Satisfying Assignments 39/ 44

Unabhängige Klauseln und Rekursion Rekursion und Berechnung von ψ Hybrider(er) Algorithmus Berechne ψ nach dem Greedy-Prinzip Wenn ψ < ˆm: Wenn k 1 = 2: Verwende Wahlström s Algorithmus Sonst: Berechne rekursiv die Summe von #(k 1)-SAT aller ψ-erfüllenden Belegungen Sonst: Berechne zuerst einen l-cut l-cut existiert nicht: #Φ entspricht der Anzahl der Blätter im Schnitt l-cut existiert: l ist eine Untergrenze der Lösungen von Φ Starte MC mit der Untergrenze l und dem Universum U ψ Stefan Ploner: Counting the Number of Satisfying Assignments 39/ 44

Unabhängige Klauseln und Rekursion Rekursion und Berechnung von ψ Hybrider(er) Algorithmus Berechne ψ nach dem Greedy-Prinzip Wenn ψ < ˆm: Wenn k 1 = 2: Verwende Wahlström s Algorithmus Sonst: Berechne rekursiv die Summe von #(k 1)-SAT aller ψ-erfüllenden Belegungen Sonst: Berechne zuerst einen l-cut l-cut existiert nicht: #Φ entspricht der Anzahl der Blätter im Schnitt l-cut existiert: l ist eine Untergrenze der Lösungen von Φ Starte MC mit der Untergrenze l und dem Universum U ψ Es gilt: Für die max. Anzahl rekursiver Aufrufe: (2 k 1) ψ (2 k 1) ˆm 1 Stefan Ploner: Counting the Number of Satisfying Assignments 39/ 44

Unabhängige Klauseln und Rekursion Rekursion und Berechnung von ψ Hybrider(er) Algorithmus Berechne ψ nach dem Greedy-Prinzip Wenn ψ < ˆm: Wenn k 1 = 2: Verwende Wahlström s Algorithmus Sonst: Berechne rekursiv die Summe von #(k 1)-SAT aller ψ-erfüllenden Belegungen Sonst: ψ ˆm Berechne zuerst einen l-cut l-cut existiert nicht: #Φ entspricht der Anzahl der Blätter im Schnitt l-cut existiert: l ist eine Untergrenze der Lösungen von Φ Es gilt: Starte MC mit der Untergrenze l und dem Universum U ψ Für die max. Anzahl rekursiver Aufrufe: (2 k 1) ψ (2 k 1) ˆm 1 Für die min. Reduzierung des Universums:(1 2 k ) ψ (1 2 k ) ˆm U ψ = 2 n (1 2 k ) ψ Stefan Ploner: Counting the Number of Satisfying Assignments 39/ 44

Unabhängige Klauseln und Rekursion Rekursion und Berechnung von ψ Optimierung von ˆm und l Wahlström O (1.2377 n ( ) ) Rekursion O (2 k 1) ˆm T(#(k 1)-SAT) ( ) l-cut O 2 β k n l 1 β k k log(2 k 1) ( ) 1 MC O ε 2 2n l (1 2 k ) ˆm 2-dimensionales Optimierungsproblem Die Parameter ˆm und l können wieder durch Null-Setzen der partiellen Ableitungen berechnet werden Stefan Ploner: Counting the Number of Satisfying Assignments 40/ 44

Unabhängige Klauseln und Rekursion Rekursion und Berechnung von ψ Worst-Case Laufzeiten des hybrid(er)en Algorithmus Unabh. Klauseln Verbesserter l-cut ursprünglicher l-cut k = 3 O (ε 2 1.5181 n ) O (ε 2 1.5298 n ) O (ε 2 1.5366 n ) k = 4 O (ε 2 1.6105 n ) O (ε 2 1.6122 n ) O (ε 2 1.6155 n ) Stefan Ploner: Counting the Number of Satisfying Assignments 41/ 44

Zusammenfassung 1 Einführung Was ist #k-sat? 2 Monte-Carlo Counting MC im Allgemeinen MC für #k-sat 3 l-cuts Eliminationsbäume l-cuts 4 Eliminationsbaum zurechtstutzen Verbesserung der Laufzeit zum Finden von l-cuts 5 Unabhängige Klauseln und Rekursion Wie man das Universum verkleinert... Rekursion und Berechnung von ψ 6 Zusammenfassung Stefan Ploner: Counting the Number of Satisfying Assignments 41/ 44

Zusammenfassung Zusammenfassung Stefan Ploner: Counting the Number of Satisfying Assignments 42/ 44

Zusammenfassung Ausblick Wir haben die Verwendung der randomisierten SAT-Solver nicht exakt analysiert. Deren Fehlerwahrscheinlichkeit kann mit Hilfe der Median of Means -Methode, also durch eine polynomielle Anzahl zusätzlicher Wiederholungen, klein genug gehalten werden. Dies hat keine Auswirkung auf die Laufzeit in O -Notation Stefan Ploner: Counting the Number of Satisfying Assignments 43/ 44

Zusammenfassung Ausblick Wir haben die Verwendung der randomisierten SAT-Solver nicht exakt analysiert. Deren Fehlerwahrscheinlichkeit kann mit Hilfe der Median of Means -Methode, also durch eine polynomielle Anzahl zusätzlicher Wiederholungen, klein genug gehalten werden. Dies hat keine Auswirkung auf die Laufzeit in O -Notation Für die Rekursion und die Verkleinerung des MC-Universums ist es nicht notwendig, ausschließlich Klauseln zu verwenden Solange die Länge der verwendeten Teilformeln konstant ist, kann die Anzahl an Lösungen ohne zusätzlichen asymptotischen Aufwand berechent werden Stefan Ploner: Counting the Number of Satisfying Assignments 43/ 44

Zusammenfassung Ausblick Wir haben die Verwendung der randomisierten SAT-Solver nicht exakt analysiert. Deren Fehlerwahrscheinlichkeit kann mit Hilfe der Median of Means -Methode, also durch eine polynomielle Anzahl zusätzlicher Wiederholungen, klein genug gehalten werden. Dies hat keine Auswirkung auf die Laufzeit in O -Notation Für die Rekursion und die Verkleinerung des MC-Universums ist es nicht notwendig, ausschließlich Klauseln zu verwenden Solange die Länge der verwendeten Teilformeln konstant ist, kann die Anzahl an Lösungen ohne zusätzlichen asymptotischen Aufwand berechent werden Beim Erstellen eines l-cuts muss der SAT-Solver sehr ähnliche Formeln lösen. Möglicherweise ließe sich das zugunsten einer besseren Laufzeit ausnutzen. Stefan Ploner: Counting the Number of Satisfying Assignments 43/ 44

Zusammenfassung Vielen Dank für die Aufmerksamkeit! Fragen? Stefan Ploner: Counting the Number of Satisfying Assignments 44/ 44