Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

39
Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp

Transcript of Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Page 1: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

SpezialvorlesungSuchalgorithmen

Thema:

Selektive Suche

Stefan Edelkamp

Page 2: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Struktur des Buchs

Page 3: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Überblick

Randomisierte Suche Las Vegas und Monte Carlo SAT-Algoritmen

Lokale Suche RLS + (1+1) EA Simulated Annealing, Tabu-Suche Ameisen-Algorithmen Lagrange-Multiplikatoren

Page 4: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Randomisierte Suche

Randomisierter Algorithmus = Deterministischer Algorithmus + Zufallsexperimente

Las Vegas: Vermeide worst-case durchRandomisieren der Eingabe (immer korrekt) Monte Carlo: Randomisiere Genauigkeit (meistens

korrekt)Beispiele: Randomisierte Binärbaum (Las Vegas) Randomisiertes Quicksort (Las Vegas) Randomisierte Primzahltest (Monte Carlo)

Page 5: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

SAT:Nadel im Heuhaufen

Page 6: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Problem Max-k-SAT

m Klausen, n Variablen, k Variablen pro Klausel Probem: Suche

NP-hard selbst für k=2 !

Page 7: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Deterministische .5-Approximation

In jeder Iteration werden mindestens so viele Klauseln erfüllt wie nicht erfüllt

Page 8: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Monien-Speckenmeyer

DeterministischBricht 2^n Grenze: O(1.839^n) für 3-SATVerbesserte Version: O(1.6181^n) für 3-SAT

Page 9: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Hamming Sphere

Page 10: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Illustration

Laufzeit: (2k/(k+1))^nO((3/2)^n) für k=3

Page 11: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Random Walk

Laufzeit: (2 (1-(1/k))^nO((4/3)^n) für k=3

Page 12: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Illustration

Page 13: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Davis-Putnamwhile (true) if (!decide()) // Entscheidung für eine Variable -> Stack return(satisifiable); while (!bcp()) // Boole‘sche Constraint Propagierung if (!resolveConflict()) // Löse Konflikt, s.u. return (not satisfiable);

bool resolveConflict() d = most recent decision not ‘tried both ways’; if (d == NULL) // kein solches d gefunden return false; flip the value of d; mark d as tried both ways; undo any invalidated implications; return true;

Page 14: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Einzel-Klausel Propagierung

Idee: Wenn immer in einer Klausel eine Literal festlegt ist wird es sofort weiter propagiert

Stoppe, wenn keine weiteren Zuweisungen

erreicht werden, oder ein Konflikt identifiziert

wird (backtrack)

Page 15: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Chaff: Watch-Literal

Beim Besuch einer Klausel muss eine der zwei Bedingungen gelten:

(1) Klausel wird nicht impliziert >= 2 Literal sind nicht 0, inklusive der anderen Watched Literale. => 1 Nicht-Watched Literal wird nicht auf 0 gesetzt. Dies wird gewählt und ausgetauscht Bedingung, dass die beiden Watched-Literale nicht 0 sind

(2) The Klause wird impliziert. Dies generiert eine neue Implikation (es sei denn die Klausel ist erfüllt). Dabei ist zu beachten das die implizierte Variable immer das andere Watched Literal sein muss, da die Klausel immer ein Literal nicht 0 hat, und einer der beiden Watched Literale auf 0 gesetzt wird.

Page 16: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Illustration

Page 17: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

State-of-the-Art Siege, industriell, u.a. in SAT-Plan Minisat, public domain, u.a. in MAX-Plan

MiniSat is a minimalistic, open-source SAT solver, developed to help researchers and developers alike to get started on SAT. It is released under the MIT licence, and is currently used in a number of projects (see "Links"). On this page you will find binaries, sources, documentation and projects related to MiniSat, including the Pseudo-boolean solver MiniSat+ and the CNF minimizer/preprocessor SatELite. Together with SatELite, MiniSat was recently awarded in the three industrial categories and one of the "crafted" categories of the SAT 2005 competition

Page 18: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Setting:Lokale Suche

Page 19: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Randomisierte Lokale Suche

Betrachte die Suche nach Minimum von

f : {0,1}^n -> IR

Page 20: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

(1+1) EA

Idee: Erlaube weitere Sprünge im Suchraum durch Kreuzung von Individuen Rekombination

Page 21: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Genetische Algorithmen

Ganze Population modelliert Evolution Genetische Operatioren:

Selection, Cross-Over, Mutation, Recombination Analyse beruht auf Schema-Theorem

(heftig umstritten)

Page 22: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Implementierung

Page 23: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Simulated Annealing

Randomisierte Suchstrategie Motiviert durch

Temperaturen & Abkühlen Bolzmann-Konstante „Flut“-Algorithmus Optimal im Limit

Page 24: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Simulated Annealing

Page 25: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Tabu Suche

Oder Taboo-Suche, Wort verweist auf Aborigines „heilig - nicht berühren“

Tabu-Liste soll Lokale Minima vermeidenAnsatz: Wenn alle Nachbarn „tabu“ sind,

werden schlechtere Lösungen akzeptiert. Alternative: Wenn es einen klar verbesserndeOption gibt, ignoriere ListeStrategien zur Aktualisierung der Tabu-Liste:LRU in den letzten k Zügen

Page 26: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Tabu Suche

Page 27: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Randomisierung

Page 28: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Ameisen-Algorithmen

Populationsbasiert Randomisierte Entscheidungen, gerichtete

durch Pheromone (verbleichende Informationen) und andere Kriterien

Beschränkter Speicher Ameisen können zulässige Handlungen

erkennung und bewerten Verteilen Pheromone je nach Güte der

Lösung

Page 29: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Simple Ant System

Page 30: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Lagrange-Optimierung

Beschränktes lokales Minimum (CLP): x* zulässig und f(x*) <= f(x) für alle x in Nc(x)

Page 31: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Lagrange-Multiplikatoren

Für Vektoren Lamda und mu definiere

Idee: Optimiere L und verstärke den Einfluss von Lamda und mu nach und nach

Page 32: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Sattelpunkte

Existieren Lambda* und mu* mit

hinreichend, aber nicht notwendig für x* CLM

z.B. x*=5 in Deshalb definiere Transformierte Lagrange-

Funktion als

Page 33: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Erweiterte Sattelpunktbedingung

Existieren alpha*>=0, beta* >=0, so dass

Für alle alpha** >= alpha*, beta** >= beta*

Beispiel:

An x*=5, kein striktes Minimum für alpha=alpha*=10 aber an alpha>alpha*

Page 34: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Implementierung

Page 35: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Epilog: Unendliche Zustandsräume

Page 36: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Planen mit Presburger Formeln

Page 37: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Von Aktion zur Formel

Page 38: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Von Formel zum Automaten

Page 39: Spezialvorlesung Suchalgorithmen Thema: Selektive Suche Stefan Edelkamp.

Spezialvorlesung SS 2007

Gerichtete Modellprüfung