K-SAT: Ein heuristischer Algorithmen- Vergleich Kann man den ‚Brute Force Search‘ Algorithmus...

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

Transcript of K-SAT: Ein heuristischer Algorithmen- Vergleich Kann man den ‚Brute Force Search‘ Algorithmus...

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

k-SAT:Ein heuristischer

Algorithmen-Vergleich

Kann man den ‚Brute Force Search‘ Algorithmus

schlagen?

Page 2: 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.

321542432421 llllllllllllKNF

1110154321 lllllL 1)( LKNF

Page 3: K-SAT: Ein heuristischer Algorithmen- Vergleich Kann man den ‚Brute Force Search‘ Algorithmus schlagen?

Die 3 Parameter Anzahl verschiedene Variablen = d Anzahl Klauseln = c Anzahl Literale pro Klauseln = k

321542432421 llllllllllll

5 d

3 k4 c

1 2 3 1 2 3 1 2 3 1 2 3

Page 4: K-SAT: Ein heuristischer Algorithmen- Vergleich Kann man den ‚Brute Force Search‘ Algorithmus schlagen?

Die Algorithmen (Allgemeines) Der Input: KNF (d, c, k) Der Output: Eine Aussage über

die Erfüllbarkeit dieser KNF.

Page 5: K-SAT: Ein heuristischer Algorithmen- Vergleich Kann man den ‚Brute Force Search‘ Algorithmus schlagen?

Brute Force Search (Beispiel)

521542432421 llllllllllll

L=00000

-> KNF(L)=0L=0000

1-> KNF(L)=0L=0001

0-> KNF(L)=0L=0001

1-> KNF(L)=1

-> KNF erfüllbar

Page 6: K-SAT: Ein heuristischer Algorithmen- Vergleich Kann man den ‚Brute Force Search‘ Algorithmus schlagen?

Limited Local Search (Beispiel)

521542432421 llllllllllll

L=00110

-> KNF(L)=0

-> L=00111L=0011

1-> KNF(L)=0

-> L=01111L=0111

1-> KNF(L)=0

-> L=01101L=01101

-> KNF(L)=1

-> RETURN 1

Page 7: K-SAT: Ein heuristischer Algorithmen- Vergleich Kann man den ‚Brute Force Search‘ Algorithmus schlagen?

Limited Local Search & RestartBenütze dazu den LLS Algorithmus.1. Wiederhole LLS mal:

Falls LLS 1 zurückgibt KNF erfüllbar, STOPFalls LLS 0 zurückgibt nächster Versuch

22 Keine Aussage machbar!

d

kk

)1(230

A Probabilistic Algorithm for k-SAT Based on Limited Local Search and Restart; by U. Schöning

Algorithmica (2002) 32: 615-623

Referenz:

Page 8: K-SAT: Ein heuristischer Algorithmen- Vergleich Kann man den ‚Brute Force Search‘ Algorithmus schlagen?

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?

Page 9: K-SAT: Ein heuristischer Algorithmen- Vergleich Kann man den ‚Brute Force Search‘ Algorithmus schlagen?

Das Tool

Page 10: K-SAT: Ein heuristischer Algorithmen- Vergleich Kann man den ‚Brute Force Search‘ Algorithmus schlagen?

Die PartnerübungWelches 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?

Page 11: K-SAT: Ein heuristischer Algorithmen- Vergleich Kann man den ‚Brute Force Search‘ Algorithmus schlagen?

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