130 likes | 273 Views
k-SAT: Ein heuristischer Algorithmen-Vergleich. Kann man den ‚Brute Force Search‘ Algorithmus schlagen?. Einführung ins k-SAT Problem. Gegeben: Konjunktive Normal Form Frage: Ist diese KNF erfüllbar? Das k-SAT Problem ist NP vollständig. 1. 2. 3. 1. 2. 3. 1. 2. 3. 1. 2. 3.
E N D
k-SAT:Ein heuristischer Algorithmen-Vergleich Kann man den ‚Brute Force Search‘ Algorithmus schlagen?
Einführung ins k-SAT Problem • Gegeben: Konjunktive Normal Form • Frage: Ist diese KNF erfüllbar? • Das k-SAT Problem ist NP vollständig.
1 2 3 1 2 3 1 2 3 1 2 3 Die 3 Parameter • Anzahl verschiedene Variablen = d • Anzahl Klauseln = c • Anzahl Literale pro Klauseln = k
Die Algorithmen (Allgemeines) • Der Input: KNF (d, c, k) • Der Output: Eine Aussage über die Erfüllbarkeit dieser KNF.
Brute Force Search • Teste alle möglichen Belegungen, beginnend mit L=000..0 • Falls KNF(L)=1KNF erfüllbar, STOP • Falls für alle L gilt: KNF(L)=0 KNF nicht erfüllbar Komplexität:
Brute Force Search (Beispiel) L=00000 -> KNF(L)=0 L=00001 -> KNF(L)=0 L=00010 -> KNF(L)=0 L=00011 -> KNF(L)=1 -> KNF erfüllbar
Limited Local Search (LLS) • Wähle eine beliebige Initialbelegung L • Wiederhole folgendes 3*d mal: • Falls KNF(L)=1 -> RETURN 1 • Sonst wähle eine beliebige, noch nicht erfüllte Klausel C, wähle aus C ein beliebiges Literal li und flippe dessen Wert in der Belegung L. • RETURN 0
Limited Local Search (Beispiel) L=00110 -> KNF(L)=0 -> L=00111 L=00111 -> KNF(L)=0 -> L=01111 L=01111 -> KNF(L)=0 -> L=01101 L=01101 -> KNF(L)=1 -> RETURN 1
Limited Local Search & Restart Benütze dazu den LLS Algorithmus. • Wiederhole LLS mal: Falls LLS 1 zurückgibt KNF erfüllbar, STOP Falls LLS 0 zurückgibt nächster Versuch • Keine Aussage machbar! Referenz: A Probabilistic Algorithm for k-SAT Based on Limited Local Search and Restart; by U. Schöning Algorithmica (2002) 32: 615-623
Die Idee: Zufall • Randomisierte Algorithmen • Man ist schon zufrieden, wenn man meistens (mit hoher Wahrscheinlichkeit) eine Antwort findet. -> 2 Fragen: • Wie viele Belegungen müssen evaluiert werden? • Wie hoch ist die WSK, dass der Algorithmus eine Antwort findet?
Die Partnerübung Welches sind Vorteile / Nachteile von ‚LLS & Restart‘ und ‚Brute Force Search‘? Unter welchen Vorraussetzungen? Wie hängen diese von den Parametern d und c ab? (k = 3)
Vorgehen & Abgabe • Diskutiert die Frage und notiert eure Vermutungen (10 min) • Benützt das Tool um eure Notizen zu bestätigen oder zu widerlegen. Notiert die Erkenntnisse. (20 min) • [Form der Abgabe] • [Abgabezeit und Ort]