Randomisierte Optimierungsverfahren: Simulated Annealing und

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