Randomisierte Optimierungsverfahren: Simulated Annealing und genetische Algorithmen Fabian Gnegel 14. August 2015 Fabian Gnegel Randomisierte Optimierung 14. August 2015 1 / 24 Outline 1 Randomisierte Optimierungsverfahren Einleitung 2 Simulated Annealing Einleitung Der Algorithmus Das Damenproblem 3 Genetische Algorithmen Einleitung Der Algorithmus Das Verschnittproblem Fabian Gnegel Randomisierte Optimierung 14. August 2015 2 / 24 Idee randomisierter Optimierungsverfahren In vielen diskreten Optimierungsproblemen (NP-schwierig) ist der Suchraum zu groß, um alle möglichen Lösungen in machbarer Zeit zu prüfen Ansatz: Anstatt wie bei Branch and Bound zu versuchen den Suchraum sukzessiv zu verkleinern, werden bei randomisierten Algorithmen zufällige Elemente eingebaut, die es ermöglichen verschiedene Gebiete des Suchraums zu erkunden Zusätzliche problemspezifische Mechanismen sind nötig, um die Suche in eine sinnvolle Richtung zu bewegen Fabian Gnegel Randomisierte Optimierung 14. August 2015 3 / 24 Vorteile und Nachteile Vorteile Sehr vielseitig einsetzbar und für fast jedes Optimierungsproblem geeignet, um gute Ergebnisse in kurzer Zeit zu erzielen nahezu unabhängig von der Größe des Suchraums Einfach zu implementieren, oft sind nur wenig tiefgehende Kenntnisse nötig um deutlich bessere Ergebnisse als Brute Force zu erzielen Nachteile Keine Garantie das Optimum zu finden Keine Möglichkeit zu prüfen, ob das Optimum bereits gefunden wurde, wenn das Optimum nicht bereits vorher bekannt ist Fabian Gnegel Randomisierte Optimierung 14. August 2015 4 / 24 Was ist Simulated Annealing? Annealing: Beim Annealing wird ein Material über seinen Gefrierpunkt erhitzt und langsam bis zur Rekristallisierung abgekühlt. Die Gibbs Energie des Materials, ein Maß für die potenzielle Energie seiner Kristallstruktur, wird effektiv durch diesen Prozess minimiert. Bei großer Hitze können sich Molekule innerhalb des Materials bewegen und die interne Struktur verändern, dies senkt oder erhöht die Gibbs Energie. Während das Material abkühlt, wird es immer unwahrscheinlicher, dass eine Struktur gebildet wird, in der die potenzielle Energie steigt. Simulated Annealing ist ein lokaler Such Algorithmus, der abhängig von einer abstrahierten Temperatur auch schlechtere Zustände akzeptiert. Fabian Gnegel Randomisierte Optimierung 14. August 2015 5 / 24 Wahl des nächsten Zustands nach Metropolis Heuristik S Suchraum, f zu minimierende Funktion, t > 0, N (s) ⊂ S für jedes s ∈ S Menge der lokalen Schritte von s, z aktueller Zustand, alle Zufallsvariablen sind gleichverteilt Metropolis Heuristik Wähle n ∈ N (z) und r ∈ (0, 1) zufällig if (f (n) < f (z)) z = n f (z)−f (n) else if r < exp t z=n else z = z. Fabian Gnegel Randomisierte Optimierung 14. August 2015 6 / 24 Einfacher Simulated Annealing Algorithmus F Gefrierpunkt, α ∈ (0, 1) Einfacher Simulated Annealing Algorithmus(Minimierung) while (t > F ) wähle n ∈ N (z) und r ∈ (0, 1) zufällig if (f (n) < f (z)) z = n f (z)−f (n) else if r < exp t z=n else z=z t = αt Fabian Gnegel Randomisierte Optimierung 14. August 2015 7 / 24 Einfacher Simulated Annealing Algorithmus F Gefrierpunkt, α ∈ (0, 1) Einfacher Simulated Annealing Algorithmus(Minimierung): while (t > F ) k=0 while (k < K) wähle n ∈ N (z) und r ∈ (0, 1) zufällig if (f (n) < f (z)) z = n f (z)−f (n) else if r < exp t z=n k=k+1 else z=z t = αt Fabian Gnegel Randomisierte Optimierung 14. August 2015 8 / 24 Das Damenproblem Das Damenproblem in seiner ursprünglichen Form Platziere acht Damen auf einem 8 × 8 Schachbrett, sodass nach den gängingen Schachregeln keine Dame eine andere angreifen. Suchraum? 8 S = a ∈ {1, · · · , 64} | a1 6= a2 6= · · · 6= a8 S = a ∈ ({1, · · · , 8} × {1, · · · , 8})8 | a1 6= a2 6= · · · 6= a8 8 S = {1, · · · , 8} ··· Funktion f ? Anzahl der Konflikte Nachbarschaft? Alle möglichen Züge 1-Schritt Züge nur diagonale / vertikale Züge ··· Fabian Gnegel Randomisierte Optimierung 14. August 2015 9 / 24 Konflikte? Figure 1: Element im Suchraum mit 2 Konflikten Fabian Gnegel Randomisierte Optimierung 14. August 2015 10 / 24 Nachbarschaft Figure 2: Eine mögliche Nachbarschaft Fabian Gnegel Randomisierte Optimierung 14. August 2015 11 / 24 16 Damen Fabian Gnegel Randomisierte Optimierung 14. August 2015 12 / 24 32 Damen Fabian Gnegel Randomisierte Optimierung 14. August 2015 13 / 24 Grundidee von genetischen Algorithmen Evolution von Chromosomen durch Mutation und Crossover kann als Optimierung einer abstrakten Funktion angesehen werden Genetische Algorithmen versuchen diesen Optimierungsprozess zu imitieren, Crossover und Mutationen nehmen eine Schlüsselrolle in jedem genetischen Algorithmus ein. Fabian Gnegel Randomisierte Optimierung 14. August 2015 14 / 24 Begriffserläuterung Individuum und Chromosom Die Elemente des Suchraums werden als Individuen bezeichnet, deren Repräsentation als Chromosom. Generation Eine vorher festgelegte Anzahl von Individuen. Crossover Der Crossoveroperator hat zwei Individuen (Eltern) als Input und zwei neue als Output für, die Eigenschaften von beiden Eltern übernommen haben und Teil der nächsten Generation sind. Mutation Der Mutationsoperator verändert mit gewisser Wahrscheinlichkeit Chromosomen der nächsten Generation. Fabian Gnegel Randomisierte Optimierung 14. August 2015 15 / 24 Begriffserläuterung Fitnessfunktion Die zu minimierende Funktion wird Fitnessfunktion genannt, je besser die Fitness, desto wahrscheinlicher, wird ein Chromosom für die nächste Generation in Frage kommen. Wahrscheinlichkeit proportional zur Fitness: p(s) = f (s) P f (t) t ∈ oldGen Turnierauswahl: Es wird eine festgelegte Anzahl Individuen zufällig ausgewählt und von denen gewinnt das mit der besten Fitness. Fabian Gnegel Randomisierte Optimierung 14. August 2015 16 / 24 Ein Beispiel für einen genetischen Algorithmus N Anzahl an Generationen, gN Größe der Generationen Einfacher genetischer Algorithmus (Minimierung): n=0 while (n > N ) while (size(neuGen) < gN ) Eltern=Turnierauswahl(altGen) neuGen+=Crossover(Eltern) Mutation(neuGen) Berechne Fitness(neuGen) altGen=neuGen neuGen={} n=n+1 Fabian Gnegel Randomisierte Optimierung 14. August 2015 17 / 24 Beispiel: Das Verschnittproblem Fabian Gnegel Randomisierte Optimierung 14. August 2015 18 / 24 Untenlinks Heuristik Fabian Gnegel Randomisierte Optimierung 14. August 2015 19 / 24 Das Verschnittproblem Idee: Verbinden von Heuristik mit genetischem Algorithmus, der die Reihenfolge für die Heuristik bestimmt. Suchraum: S = {a ∈ {1, · · · , n}n | a1 6= a2 6= · · · 6= an } f : Der Wert des Maximums aller Y-Koordinaten nach Platzierung Mutation: Vertausche 2 Stellen in der Folge. Auswahl: Turnierauswahl Parameter: Größe der Generation, Anzahl in Turnierauswahl, Mutationswahrscheinlichkeit Fabian Gnegel Randomisierte Optimierung 14. August 2015 20 / 24 Crossover Crossover (Anhand eines Beispiels): 1 5 8 4 2 6 10 9 7 3 10 2 1 9 6 7 4 5 8 3 Zwei Stellen werden zufällig ausgewählt 1 5 8 4 | 2 6 10 | 9 7 3 10 2 1 9 | 6 7 4 | 5 8 3 die Zahlen dazwischen werden automatisch an die Kinder weitergegeben | 2 6 10 | | 674| Danach werden die übrigen Zahlen vom anderen Elternteil in der Reihenfolge eingefügt, wie sie vorher waren. 1 9 7 4 2 6 10 5 8 3 1 5 8 2 6 7 4 10 9 3 . Fabian Gnegel Randomisierte Optimierung 14. August 2015 21 / 24 Lösung mit komplizierterer Heuristik nach 1 Generation Fabian Gnegel Randomisierte Optimierung 14. August 2015 22 / 24 Lösung mit komplizierterer Heuristik nach 20 Generationen Fabian Gnegel Randomisierte Optimierung 14. August 2015 23 / 24 Lösung mit komplizierterer Heuristik nach 50 Generationen Fabian Gnegel Randomisierte Optimierung 14. August 2015 24 / 24