1 / 13

k-SAT: Ein heuristischer Algorithmen-Vergleich

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.

karim
Télécharger la présentation

k-SAT: Ein heuristischer Algorithmen-Vergleich

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. k-SAT:Ein heuristischer Algorithmen-Vergleich Kann man den ‚Brute Force Search‘ Algorithmus schlagen?

  2. Einführung ins k-SAT Problem • Gegeben: Konjunktive Normal Form • Frage: Ist diese KNF erfüllbar? • Das k-SAT Problem ist NP vollständig.

  3. 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

  4. Die Algorithmen (Allgemeines) • Der Input: KNF (d, c, k) • Der Output: Eine Aussage über die Erfüllbarkeit dieser KNF.

  5. Brute Force Search • Teste alle möglichen Belegungen, beginnend mit L=000..0 • Falls KNF(L)=1KNF erfüllbar, STOP • Falls für alle L gilt: KNF(L)=0 KNF nicht erfüllbar Komplexität:

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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?

  11. Das Tool

  12. 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)

  13. 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]

More Related