Natürliche Optimierung - mastersong.de · Methode Operatoren Wertebereich Genetische Algorithmen...
Transcript of Natürliche Optimierung - mastersong.de · Methode Operatoren Wertebereich Genetische Algorithmen...
Natürliche Optimierung
Sven Schirmer
Inhalt• Überblick traditionelle Optimierung• Überblick heuristische Optimierungsmethoden• Wirkungsweise Evolutionäre Algorithmen
– Genetik und Evolution– Kostenfunktion und Suchraum– Selektion– Binärer GA– Kontinuierlicher GA – Anpassung GA-Operatoren: Spezialfall TSP (??)– MOO Multi Objective Optimization
• Ant Colony Optimization (TSP)• Particle Swarm Optimization
Optimierung
Ziel: Finden geeigneter Lösungen für komplexe Problemstellungen
Beispiele:• Traveling Salesman• Chip-Layout• Produktions- und Einsatzplanung• Modellparametrisierung• Mustererkennung
Problem
• oft unbekannte, ggf. multimodale und nicht vollständig berechenbare Fehleroberfläche
• Hohe Anzahl freier Variablen = hochdimensionaler Suchraum
• Kostenfunktion/Fehlerfunktion Berechnung der Qualität einer Lösung
Traditionelle Optimierung
Lineare Optimierung • Nur für Lineare (Un-) Gleichungssysteme
z.B. Produktionsplanung
• Lösungsmethoden– Simplex-Algo (Dantzig)– Innere Punkte
Analytische Optimierung• Über Ableitung zu Minima und Maxima• Nur bei differenzierbaren Kostenfunktionen
Traditionelle Optimierung II
• Brute Force; Exhaustive Search– Extrem rechenaufwendig– Erfolg intervallabhängig
• Nelder Mead Downhill Simplex – Oft werden nur lokale Minima gefunden– Aufwendige Berechnungsmethoden– Ursprünglich wenig parallelisierbar
• Gradientenabstiegsverfahren (Cauchy 1847)
Traditionelle Optimierung
• Oft gefangen in lokalen Minima
• Ergebnis von Startpunkt abhängig
• Deterministisch
• Matlab-Tool: optimtool
Überblick Natürliche Optimierungsmethoden
Methode Operatoren WertebereichGenetische Algorithmen(1975, Holland)
Selektion,
Rekombination,
Mutation
Binär
Diskret
KontinuierlichEvolutionäre Algorithmen(Schwefel, 1995)
Particle Swarm Optimization(Kennedy 1985)
Follow the best kontinuierlich
Ant Colony Optimization(Dorigo,Maria 1997)
Pherom Update Traveling Salesman(Permutation)
In Summe sind verschiedene Optimierungsmethoden
auf unterschiedlichen Problemen gleich gut geeignet
Kein „perfektes“ Optimierungsverfahren
No Free Lunch Theorem(Wolpert / McReady 1997)
Vorteile Natürlicher Optimierungsmethoden
• Massiv-parallele Suche nach brauchbaren Lösungen
• Ohne Ableitungen der Kostenfunktion
• Weniger anfällig für lokale Minima
• Auch für diskrete und nichtkontinuierliche Kostenfunktionen
Nachteile Natürlicher Optimierungsmethoden
• Nicht deterministisch – unterschiedlichste Lösungen bei mehreren Durchgängen möglich
• Erzeugen gute, jedoch nicht unbedingt die beste Lösung
• rechenintensiv
Genetische / Evolutionäre Optimierung
• Heutige Artvielfalt = Resultat vieler Millionen Iterationen natürlicher (stochastischer) Optimierung
• Unterschiedlichste Eigenschaften der Lebewesen ermöglichen Leben in verschiedensten „Nischen“
• Dynamische Änderung der Umweltbedingungen bedingt Weiterentwicklung oder Aussterben
Wie funktioniert das?Genetik - skizzenhaft
• Chromosomen (DNA + viel Protein)
• Gen = Abschnitt auf DNA
• Enthält RNA/Protein Bauanleitungen
Erb-Informationen in 20 Aminosäuren
Art Anz. Chromosomen Anzahl GeneMücke 6 16.047
Frosch 26 20.000
Mensch 46 23.700
Kartoffel 48 …
Goldfisch 96 …
• Allel Ausprägung eines Gens• Paarung Informationen beider
Gene werden kombiniert• Dominante / rezessive Allele• Genotyp bedingt Phänotyp
(Augenfarbe, Hautfarbe…)
Genetik und Evolution - skizzenhaft
• Veränderung innerhalb der Art durch Rekombination und Mutation Mendel 1860
• Erfolgreiche Änderungen pflanzen sich fort Evolution Darwin 1858
Terminologie und Synonyme
• Chromosom = Lösungsvorschlag, Parametersatz, Ausprägung, Genotyp
• Population = Menge von Lösungen in einer Generation
• Anzahl Generationen = Anzahl der GA-Iterationen
• Fitness = Kosten = Qualität
GA - Allgemeiner Ablauf
Wiederholen für N Generationen
Kosten bestimmen
Selektion
Lösung evaluieren
Mutation
Rekombination
Startpopulation bestimmen
Kostenfunktion und Suchraum definieren
Abbruchj/n
Startpopulation bestimmen
Kostenfunktion und Suchraum definieren
Rekombination
Startpopulation bestimmen
Kostenfunktion und Suchraum definieren
Mutation
Rekombination
Startpopulation bestimmen
Kostenfunktion und Suchraum definieren
Suchraum festlegen
• Anzahl freier Variablen = Dimension des Suchraumes
• Wertebereiche sinnvoll eingrenzen!• Binäre GA: Wertebereich quantifizieren =
Chromosomenkodierung
X Y
0 00000 0 0000000
0.2 00001 1 0000001
0.4 00010 2 0000010
0.6 00011 … 3 0000011 ...
3.1 11111 127 1111111
= 12 bit Genom
Kostenfunktion
• Problembeschreibung– analytische Funktion
– Modell– Gleichungssystem
• bewertet die Qualität der Lösung
• GA Optimierung auf Minimum oder Maximum
• tKostenfunktion ~ tGA
Startpopulation
• Gleichmäßige (!?) Verteilung der Lösungen im gesamten Suchraum
• Binär: round(rand(npop,nbit))
• Kontinuierlich: rand(npop,nparam) * (og – ug) + ug
Selektion
• Kosten aller (noch nicht berechneten) Chromosomen bestimmen
• Generationswechsel: Survival of the fittest– Selektionsrate (e.g. 50%) – (wahrscheinlich) die Besten– Oder Grenzwertbasiert – anfangs „überleben“
wenige Chromosomen, später mehr
Rekombination, Reproduktion
• Austausch von Allelen immitiert biolog. Paarungsprozess zur Weitergabe von Eigenschaften
• Auswahl der Partner-Chromosomen– Sortiert: bestes mit zweitbesten usw.– Roulette
– gewichtetes Roulette – Tournament
Rekombination - Binär
• Crossover: Position zufällig auswählen
parents
children
• Multiple Crossover: mehrere Bereiche austauschen; Positionen zufällig auswählen
1 1 0 1 0 0 1 1 1 0 1 0 1 1 0 1
1 1 0 1 1 1 0 1 1 0 1 0 0 0 1 1
Mutation• „verbreitert“ Suchspektrum• ermöglicht das Verlassen lokaler Minima
• Mutationsrate ggf. 20% der Population sehr hoch im Vergleich zur Natur
Elitarismus „schützt“ beste Lösungen
• Binäre Mutation– Z.B.: Für gesamte Populationsmatrix: an zufällig
bestimmten Reihen/Spalten Bits umkehren
• Bereiche rotieren
… ggf. an eigene Problemstellung anpassen
Mutation - Binär
Für jede weitere Generation
1. Qualität der Nachkommen berechnen
2. Selektion
3. Rekombination, Mutation
4. Abbruchkriterium prüfen
Abbruchkriterien1. Anzahl Generationen erreicht
2. Optimierungsziel erreicht
3. Timeout
Konvergenz - TraceAnzeige der Kosten der besten Lösung je Generation
Wenn nicht, liegt ggf. ein Problem in Kostenfunktion vor
Trace für mehrere Durchläufe
Beispiel
Fehleroberfläche
for i=1:70for j=1:70
err_s(i,j)=ga_testfun_bin([-2+i*0.1 - 2+j*0.1]);end
end
Approximierte Lösungen: x=5.0000 y=5.0000 min = -7.5568X=4.3000 y=4.0000 max = 8.6398
• Ausgeprägte lokale Maxima und Minima• Zwei Variablen• Wertebereich: [-2 5]; Intervall 0.1
Matlab GA-Toolboxen
• Gatool – GUI für GA Optimierung minimiert Kosten
• Gaot Toolbox maximiert Kosten
• GPLab– http://gplab.sourceforge.net/features.html
GAOT Toolbox, binäres Problem
[pop] = initializega(init_pop_size,bounds,'ga_testfun_bin',... options, [accuracy 0]);
[sol,endPop,bestSols,trace,allPops]=ga_disp(bounds,'ga_testfun_bin',... options,pop,... %options for evalFN [accuracy 0 0],... %[epsilon prob_ops display] ['maxGenTerm'],... %termination function [generations],... %termination options ['normGeomSelect'],... %selection function [0.08],... %selection function options ['simpleXover'],... %XOverFn [wurst], ... %XOverFn options don’t matter ['binaryMutation shiftMutation'],...
[prob_of_mutation; wurst]);
Demo: „ga_run_bin“
Einfluss der Mutation
• 20 Durchläufe a 60 Generationen über 20 Individuen
Populationsgröße und Konvergenz
Kontinuierlich vs. Binär
• Kontinuierliche EA sind – schneller
– leichter zu adaptieren– genauer
(Michalewicz 1992)
• Gleiche Selektionsmethoden
• Vielfalt genetischer Operatoren
Konvergenzvergleich
Gleiches Optimierungsproblemgleiche Variablengrenzendefault-GA Einstellungen
• Simple / diskrete Rekombination
• ArithmetischC = a*P1 + (1-a)*P2
• HeuristischC = a * (Pbetter – Pworse) + Pbetter)
Rekombination - Kontinuierlich
Mutation - Kontinuierlich
• boundaryMutation
• unifMutation ein Parameter wird in Bereichsgrenzen mutiert
• nonUnifMutation kleinere Mutation in späteren Generationen
• multiNonUnifMutation wie nunUnifMutation, aber für alle Variablen eines Chromosoms
GAOT Toolboxkontinuierliches Problem
sol= ga(bounds,'ga_testfun_bin',... options,pop,... %options for evalFN [accuracy 1 0],... %[epsilon prob_ops display] ['maxGenTerm'],... %termination function [generations],... %termination options ['normGeomSelect'],... %selection function [0.08],... %selection options ['arithXover heuristicXover simpleXover'],... %XOverFn [2 0;2 3;2 0], ... %XOverFn options ['boundaryMutation nonUnifMutation …
multiNonUnifMutation unifMutation'], ... %Mutation fun [4 0 0;6 100 3;4 100 3;4 0 0]); %Mutation options
Demo GA-Kontinuierlich
• ga_run_float.m
Knapsack - Problem
Gegeben: Rucksack mit bestimmten Volumen Vmax; Gegenstände mit unterschiedlichen Volumina v und Wert w
Gesucht: optimale Rucksack-Beladung für maximalen Wert C
max1
=⋅= ∑=
i
N
ii wnC i
N
ii vnV ⋅≥ ∑
=1maxbei und Ν∈n
Knapsack Rahmenbedingungen
• Maximales Volumen = 100
• Welche Parametergrenzen?
ID Volumen Wert
1 5 8 1,6
2 5 8 1,6
9 15 20 1,333
8 15 17 1,133
5 10 10 1
3 6 6 1
7 12 10 0,833
10 30 20 0,667
4 8 5 0,625
6 11 5 0,455
Wert / Volumen
Knapsack Problem
• Diskrete Werte für i ?
Runden der kontinuierlichen Werte vor Berechnung
• Constraints (max. Volumen) einbeziehen?
• Beispiel: ga_knapsack.m
Einfluss der Mutationsoperatoren
ga_diskret(bounds,'costfun_knapsack',... ['boundaryMutation multiNonUnifMutation unifMutation'],… [4 0 0;4 0 0;4 0 0] );
ga_diskret(bounds,'costfun_knapsack',... ['boundaryMutation unifMutation'],… [4 0 0;8 0 0] );
• Rundreiseproblem mit N Orten (2D) und festem Ausgangs- und Endpunkt, jeder Ort nur einmal
• Diskretes Permutations- bzw. Sortierproblem (NP-vollständig – nicht deterministisch, polynomiale Zeit)
• Kostenfunktion :
Traveling Salesman Problem (TSP)
∑=
++−+−=
N
nnnnn yyxxc
1
2
1
2
1)()(
Sortieren mit EA
Bisherige Rekombinations- und Mutationoperatoren unbrauchbar - Permutationsoperatoren notwendig!
Zyklische Rekombination
index = find(p1==1)
while c1(index)==0
{
c1(index)=p1(index)
index=find(p1==p2(index))
}
p1 2 1 7 4 6 5 3 8p2 3 7 2 5 6 4 8 1c1 1
p1 2 1 7 4 6 5 3 8p2 3 7 2 5 6 4 8 1c1 1 8
p1 2 1 7 4 6 5 3 8p2 3 7 2 5 6 4 8 1c1 1 3 8
p1 2 1 7 4 6 5 3 8p2 3 7 2 5 6 4 8 1c1 2 1 3 8
p1 2 1 7 4 6 5 3 8p2 3 7 2 5 6 4 8 1c1 2 1 7 3 8
p1 2 1 7 4 6 5 3 8p2 3 7 2 5 6 4 8 1c1 2 1 7 5 6 4 3 8
left=find(c1==0);c1(left)=p2(left);
Reihenfolgen - Rekombinationcut1 = round(rand*(n-1)+0.5);cut2 = round(rand*(sz-cut1-1)+1+cut1); pm1=p1(1:end-1);pm2=p2(1:end-1);c1=p1;c2=p2;for i=[1:cut1 (cut2+1):size] pm1=strrep(pm1,p2(i),-1); pm2=strrep(pm2,p1(i),-1);endc1((cut1+1):cut2)=…
p2(find(pm2>0));c2((cut1+1):cut2)=…
p1(find(pm1>0));
cut1 cut2+1
1 5 6 7 8
p1 7 2 1 8 4 5 6 3
p2 5 6 7 1 3 8 2 4
pm1 7 -1 1 -1 -1 -1 6 -1
c1 7 1 8 2 4 5 6 3
p1 7 2 1 8 4 5 6 3
p2 5 6 7 1 3 8 2 4
pm1 7 -1 1 -1 -1 -1 6 -1
c1 7 1 8 2 4 5 6 3
p1 7 2 1 8 4 5 6 3
p2 5 6 7 1 3 8 2 4
pm1 7 -1 1 -1 -1 -1 6 -1
c1 7 1 8 2 4 5 6 3
c2 5 7 1 6 3 8 2 4
PMX-Operator (Partially Mapped Crossover)
Pos1 = 3 SS1 = [7 6]
Pos2 = 4 SS2 = [8 6]
p1 5 3 7 6 4 8 1 2
p2 5 4 8 6 1 2 7 3
c1 5 3 8 6 4 7 1 2
c2 5 4 7 6 1 2 8 3
Pos1 = 4 SS1 = [8 1 3 7 6]
Pos2 = 8 SS2 = [1 7 3 6 5]
p1 5 4 2 8 1 3 7 6
p2 2 4 8 1 7 3 6 5
c1 8 4 2 1 7 3 6 5
c2 2 4 5 8 1 3 7 6
Wozu jetzt das?
Ggf. gute Teilgebiete weiterentwickeln
Mutation für Permutation
• Swap Mutation– verdreht zwei zufällig ausgewählte Zahlen
• AdjacentSwap Mutation– Verdreht eine zufällig ausgewählte Zahl mit
ihrem Nachbarn
Mutation für Permutation
• Shift Mutation
• Inversionsmutation
3 5 6 7 4 2 8 1
chi 3 5 6 7 2 8 1 4
par
P1 = 1; P2 = 6
2 4 8 1 7 3 6 5
chi 3 7 1 8 4 2 6 5
par
Wie Qualität der Lösung bewerten?
• Visuell: wenn sich Bewegungslinien nicht schneiden
Demo „orderbasedExample“
Multikriterielle Optimierung
• Engl.: Multi-Objective Optimization (MOO)
• Konkurrierende Ziele gleichzeitig:
432211 xxxxf +++=
432
212
111
xx
xxf +++=
MOOP• values = rand(700,4)
• f1_ = f1(values)
• f2_ = f2(values)
Methode 1: gewichtete Teilfunktionen nur eine Lösung je GA-Durchlauf
MOOP: Pareto-optimale Lösung
Kein Funktionswert läßt sich verbessern ohne einen anderen zu verschlechtern
Wenn Pareto-Menge bekannt, kann Benutzer selbst das „richtige“ auswählen
Pareto-Lösung mit EA suchen
• Dominanz von Lösungen: x1 dominiert x2
wenn:)()( 2111 xfxf <
• MOGA: Nach jedem Durchlauf werden Lösungen iterativ nach Dominanz gerankt: jeweils alle nichtdominierten Chromosomen werden einem Rang zugeordnet (Fonesca/Flemming 1993)
• Cluster vermeiden: Zu nahe Lösungen werden mit höheren Kosten bestraft
)()( 2212 xfxf ≤UND
Futtersuche der Ameisen – Wege - Optimierung
• Ameisen bewegen sich auf Futtersuche anfangs zufällig
• legen Duftmarke (Pherome)– langer Weg wenig Pherom– wenige Ameisen wenig Pherom
• Wegfindung durch Intensität der Pheromspur an Gabelungen
• Pheromspur degeneriert mit Zeitverlauf
ACO – Ant Colony Optimization
• Anwendungsgebiete:– Wegefindung in Graphen – TSP
– Machine Learning– Knapsack– Dynamisches Netzwerkrouting
ACO – TSP - Algorithmus
1. Starttouren initialisieren
2. Für jede Ameise: a) Gesamt-Tour Schritt für Schritt anhand Distanz zur
nächsten Stadt und deren Pherom-Intensität berechnen
b) Gesamt-Tourlänge bestimmen
c) Pherom-Updates für alle Teilstrecken bestimmen
∑=
q
bmn
amn
bmn
amnk
mn d
dp
/
/
ττ
a) ∑−
=+=
1
11,/
n
i
kii
kmn dQτc)
ACO – TSP - Algorithmus
3. Beste Tour ermitteln (Elite-Pheromspur)
4. Pherom-Matrix aktualisieren (inkl. zeitl. Verfall)
5. Zurück zu 2. bis max. Iterationen erreicht
elitemn
N
k
kmnmnmn
ants
ετττξτ ++−= ∑=1
)1(
Demo ACO - antcolony.m
Simple Regeln im natürlichen Schwarmverhalten
• Vorgänger folgen (Heuschrecken)
• Kollisionen vermeiden– Gleiche Richtung– Gleiche Geschwindigkeit
• Anonyme „Anführer“ kennen beste Lösung (Bienen)
• Kommunikation zwischen Individuen
Particle Swarm Optimization (PSO)
• Kennedy / Edward 1985
• Viele Partikel „fliegen“ durch Lösungsraum
• Aktuelle „Kosten“ aller Individuen bekannt
• Partikel streben zur besten Lösung:
newnm
oldnm
newnm
oldnm
bestglobalnm
oldnm
bestlocalnm
oldnm
newnm
vpp
pprpprvv
,,,
,_
,22,_
,11,, )()(
+=
−××Γ+−××Γ+=
VektorParameterp
gkeitGeschwindiv
lenZufahlszahrr
Lernfaktor
−==
==ΓΓ
21
11
,
,
Literatur
• Haupt, Randy L. (2004): Practical Genetic Algorithms (Second Edition). 2. Aufl.
• Kost, Bernd (2003): Optimierung mit Evolutionsstrategien. Eine Einführung in Methodik und Praxis mit Visualisierungsprogrammen. 1. Aufl. Frankfurt am Main: Deutsch.
• Mitchell, Melanie (1998, c1996): An introduction to genetic algorithms. 1. Aufl. Cambridge, Mass: MIT Press.
• Deb, Kalyanmoy (2001): Multi-objective optimization using evolutionary algorithms. 1. Aufl. Chichester ;, New York: John Wiley & Sons.
• Dorigo, Marco; Stützle, Thomas (2004): Ant colony optimization. Cambridge, Mass: MIT Press.