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.
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 (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 (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. 1. Wiederhole LLS mal: Falls LLS 1 zurückgibt KNF erfüllbar, STOP Falls LLS 0 zurückgibt nächster Versuch 2. Keine Aussage machbar! A Probabilistic Algorithm for k-SAT Based on Limited Local Search and Restart; by U. Schöning Algorithmica (2002) 32: Referenz:
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?
Das Tool
Die Partnerübung Welches sind Vorteile / Nachteile von ‚LLS & Restart‘, und ‚Brute Force Search‘? Unter welchen Vorraussetzungen? Wie hängen diese von den Parametern k, d und c ab?
Vorgehen & Abgaben 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] Viel Spass mit k-SAT!!!