Evolutionsstrategien für das Multi Gravity Assist Problem Ein Vergleich mehrerer Evolutionsstrategien angewandt auf das Cassini-Problem des Multi Gravity Assist Problems © 2009, Gruber Andy TU Wien Inhalt • EINLEITUNG • EVOLUTIONÄRE ALGORITHMEN • MULTI GRAVITIY ASSIST • ERGEBNISSE Einleitung [Abb 1] Terminologie Individuum ◦ Kandidatenlösung. Meist binär oder reell kodierter Vektor Gen ◦ Eine Stelle des Vektors Allel ◦ Ausprägung einer Stelle des Vektors Population ◦ Menge von Individuen Offspring ◦ Erzeugte Nachkommen Evolutionäre Algorithmen Metaheuristik Optimierungsverfahren Arbeitet mit Population von Kandidatenlösungen Relativ robustes Verfahren Bestandteile eines EAs: Rekombination Mutation Selektion Nicht bei allen EAs vorhanden Drei Hauptvertreter: Evolutionäres Programmieren Genetische Algorithmen Evolutionsstrategien Evolutionäre Algorithmen (2) Formale Definition: EA = (I ,Φ ,Ω , s ,ι ,μ ,λ) ◦ Suchraum ◦ Fitnessfunktion ◦ Genetische Operatoren ◦ Selektionsoperator ◦ Abbruchkriterium ◦ Parents ◦ Offsprings Entnommen aus Evolutionary Algorithms in Theory and Practise, Thomas Bäck Evolutionäre Algorithmen (3) Formaler Ablauf: initialisiere(Eltern); werte_Aus(Eltern); while(Abbruchkriterium nicht erfüllt) rekombiniere(Eltern, Kinder); mutiere(Kinder); werte_Aus(Kinder); selektiere(Kinder,Eltern); do Biologischer Hintergrund 1856 Charles Darwin - Evolutionstheorie 1865 Gregor Mendel - Vererbung DNA kodiert Erbinformationen Variationsfaktoren: ◦ Rekombination(Meiose) ◦ Mutation(Fehler bei Meiose) [Abb 2] Evolutionäres Programmieren Lawrence J. Fogel 1960 Struktur eines EP nicht genau definiert Jedes Individuum wird als eigene Spezies angesehen ◦ Daher (im Normalfall) keine Rekombination Anfangs: Voraussagen von Bitfolgen mittels Endliche Automaten, welche durch Mutation und Selektion optimiert wurden. Genetische Algorithmen Holland und Goldberg um 1970 DNA wird als [0,1]-Folge betrachtet Rekombination wichtiger als Mutation ◦ Mutation: Eine Stelle wird invertiert Crossover erzeugt neue/zerstört alte Schemata Gutes Schema Individuum Bevorzugter Crossoverpunkt Suboptimaler Crossoverpunkt Evolutionsstrategien Rechenberg und Schwefel 1960 Individuen reell kodiert Mutation primärer Operator ◦ Oft in Kombination mit Anpassung der Strategieparameter Rekombination sekundär (teilw. weggelassen) ◦ (1+1)ES – keine Rekombination ES vs. GA GA Int Bin Gray ◦ Binär kodiert 0 000 000 ◦ Eher für kombinatorische Probleme geeignet 1 001 001 2 010 011 3 011 010 4 100 110 5 101 111 ◦ Setzt auf Rekombination ◦ Hamming-Klippe → Gray Code ES ◦ Reell kodiert ◦ Gut geeignet für kontinuierliche Optimierungsprobleme ◦ Setzt auf Mutation [Abb 3] Rekombinationsarten Crossover: Genau ein Rekombinationsstelle wischen zwei benachbarten Genen Uniform Crossover: Verallgemeinerte Version des Standard Crossovers. 1 – (n-1) Rekombinationsstellen, wobei n die Anzahl der Gene Rekombinationsarten (2) Panmictic discrete: Ein Parent wird gehalten und zufällig dieser oder ein zufälliger anderer Parent für jedes Gen ausgewählt Intermediate: Offspring besteht aus Mittelwerten der einzelnen Gene der Eltern Rekombinationsarten (3) Generalized intermediate: Wie Intermediate, nur werden die Eltern zufällig gewichtet Bsp: O[i] = P1[i] * r + P2[i] * (1-r), r = U(0,1) Panmictic generalized intermediate: Ein Parent wird festgehalten und für jedes Gen wird zufällig ein zweiter ausgewählt und von diesen beiden der gewichtete Durchschnitt genommen. Mutationsarten U(0,σ) Auf jedes Allel eines Individuums wird eine uniform verteilte Zufallszahl addiert/subtrahiert Konvergenzgeschwindigkeit nicht adäquat Zerstört häufig „gute“ Individuen bzw. „vergisst“ gute Bereiche „Breiter gefächerte“ Suchraumabdeckung N(0,σ) Gute Individuen, sowie gute Bereiche werden beibehalten Wie in Natur → Kleinere Abweichungen häufiger als große Präzisere Suchraumabdeckung Tendiert eher dazu in lokalen Optima hängen zu bleiben Strategieparameteranpassung Schnellere und gezieltere Konvergenz in Richtung Optimum [Abb 4] 1 Strategieparameter (σ) 1/5 Regel (Rechenberg): Zu statisch und zu allgemein n Strategieparameter Für jedes Gen eines Individuums wird ein σ mitgeführt (n²+n) / 2 Strategieparameter - CMA-ES Pro Individuum wird eine (Korrelations-)Rotationsmatrix mitgeführt Strategieparameteranpassung (2) N Strategieparameter: ◦ Werden mit rekombiniert ◦ Schwefel empfiehlt folgende Werte: τ α ( √(2 √(n) )-1 τʹ α ( √(2n) )-1 → → [0,1] [0,1] ◦ In der Praxis werden meist für τ und τʹ = 1 eingesetzt σi‘ = σi * exp( τ’ * N(0,1) + τ * Ni(0,1) ) xi‘ = xi + σi‘ * Ni(0,1) ◦ τ und τʹ Lernfaktoren Strategieparameteranpassung (3) CMA-ES ◦ N Strategieparameter + Rotationsmatrix pro Individuum ◦ Rotationsmatrix wird mit jeder Generation aktualisiert ◦ „Lernt“ die paarweisen Abhängigkeiten zwischen zwei Variablen ◦ Mutation wird nicht nur auf Achsenrichtungen beschränkt ◦ Gezielteres „abtasten“ des Suchraumes Selektionsarten Selektionsdruck Quotient aus (Anzahl Kinder)/(Anzahl Eltern) ES(µ+λ) Nächste Generation wird durch λ besten Individuen aus Eltern und Offspring gebildet. → Fitnesswerte monoton fallend. Spezialfall (1+1): Keine Rekombination Selektionsarten (2) ES(µ,λ) Nächste Generation wird durch λ besten Individuen aus Offspring gebildet. → Fitnesswerte nicht unbedingt monoton fallend. (Multi) Gravity Assist [Abb 5] Ausnutzen der Gravitation in Kombination mit der Bewegung eines Planeten Beschleunigung/Verlangsamung möglich Energieerhaltungssatz → Raumsonde behält Geschwindigkeit relativ zum Planeten. Mehrfaches Ausnutzen dieses Effektes nennt man multi gravity assist GTOP: Cassini/Huygens Problem Flugbahn E-V-V-E-J-S ◦ Mittels gravity assists zu lösen ◦ Deep space maneuver wird vernachlässigt Minimieren des Δv Budgets ◦ Summe des Aufwandes der nötigen Impulse zur Änderung der Geschwindigkeit [Abb 6] GTOP: Global Optimization Trajectory Problems and Solutions GTOPtoolbox: ◦ Auf der Homepage der ESA erhältlich ◦ „Wettbewerb“ ◦ C++ Framework ◦ Enthält mehrere Problemstellungen, in denen es gilt Flugbahnen von Raumsonden zu optimieren ◦ Darunter auch das Cassini-Problem double cassini1(const std::vector &x, std::vector& rp) rp1 > 6351.8 km rp2 > 6351.8 km rp3 > 6778.1 km rp4 > 671492 km Implementierung OOP in C++ Pro: Anpassung der Strategieparameter einfacher Kontra: Rechen/Laufzeit höher Individuum Double Values[6] Double stdDev[6] Double Fitness Verschiedene Rekombinationsarten (µ,λ), sowie (µ + λ) Variationsparameter können „zur Laufzeit“ verstellt werden Probleme Lokale Optima ◦ Wie gelangt man wieder heraus? ◦ Ist es schon das globale Optimum? Suchraumabdeckung ◦ Gezielte, minimal erforderliche Suchraumabdeckung erwünscht Welche Strategie ist optimal für diese Problemstellung? Messergebnisse Parameter: Strategie Sel Best AVG Dev t/Gen[s] ◦ 20 Eltern No recombination , 5,68310 7,04252 2,57920 0,1 ◦ 100 Kinder No recombination + 5,90280 6,98327 1,02741 0,17 ◦ 1000 Generationen Crossover , 5,20242 5,33467 0,10400 1,795 Crossover + 5,30392 5,46430 0,29342 1,767 ◦ 30 Runs Uniform Crossover , 5,06380 6,02480 2,26461 0,659 ◦ 10 Initiale Uniform Crossover + 5,18885 5,37967 0,19311 0,631 StdDev Panmictic discrete , 5,30571 6,01289 1,56185 1,785 Panmictic discrete + 5,30480 5,92314 0,46828 1,746 Generalized Intermediate , 5,31651 6,12639 1,34027 0,637 Generalized Intermediate + 5,14089 5,83976 0,25157 0,616 Panmictic generalized intermediate , 5,31560 10,9193 2,68076 0,650 Panmictic generalized intermediate + 5,30850 5,44183 0,28221 0,643 Bestes Ergebnis Reproduzierbar mit ES(1000,200) nach 800 Generationen: ◦ 4,9656 ◦ {-789.229, 155.339, 449.385, 56.252, 1006.671, 4523.828} Aktuell weltweit bester erreichter Wert: ◦ 4,9307 ◦ {-789.812, 158.302, 449.385, 54.748, 1024.362, 4552.307} Papanek Martin: ◦ PSO: 4.95223 ◦ DE mit NM: 4.93071 Andere versuchte Ansätze ES(µ,λ) zusammen mit k besten Eltern Keine signifikante Verbesserung Minimal bessere Konvergenz N(0,µ), wobei µ = Elter[1].val – Elter[2].val Keine merkbare Verbesserung Werte in der „Mitte“ häufen sich im Verlauf der Generationen ES(µ,λ) mit k besten Kindern Zusätzlich zu den λ-k besten Individuen aus dem Offspring werden die k fittesten Individuen aus dem Offspring gewählt Andere versuchte Ansätze (2) Primitive lokale Optimierung nach EA Sehr rechenintensiv Schnellere Konvergenz Lokale Verbesserungen aber schlussendlich selbe Ergebnisse % zufällig ausgewählte Kinder Keine feststellbare Verbesserung Größere Streuung der Fitnesswerte am Anfang Weitere mögliche Ansätze Hybrider Ansatz ◦ ES mit einer Lokalen Suchstrategie kombinieren Linear ranking ◦ Individuen werden ihres Fitnesswerts nach geordnet ◦ Die Wahrscheinlichkeit der Selektion ist proportional zu dessen Rang Nicht alle Individuen rekombinieren ◦ Nur einen großen Teil (zb. 80%) rekombinieren, Rest direkt übernehmen Weitere mögliche Ansätze (2) Tournament selection ◦ K zufällige Individuen auswählen und das beste davon selektieren Individuen überleben nur k Generationen ◦ Lebenszeit eines Individuums wird nach jeder Generation dekrementiert Search space pruning ◦ Individuen oder ganze Bereiche innerhalb des Suchraumes ausschließen, da sie „unmöglich“ sind Erkenntnisse Populationsgröße nicht unwichtig, aber Anzahl von Generationen wichtiger → Variationsfaktoren haben großen Einfluss auf die Ergebnisse Zu viele Einschränkungen können einen guten Algorithmus verschlechtern → Z.B. Ständiges Überprüfen auf Duplikate vernachlässigen. Referenzen [Abb 1] http://www.ngcsu.edu/academic/sciences/physics/jones/astr1010home/trajectory_lg.gif [Abb 2] http://ocw.mit.edu/NR/rdonlyres/Biology/7-A12Fall-2005/D4134A30-F348-4615-8B0AD0CB5ED86081/0/chp_dna.jpg [Abb 3] Folien Heuristische Optimierungsverfahren WS08, Raidl/Chwatal [Abb 4] Evolutionary Programming in Theory and Practise, Thomas Bäck [Abb 5] http://www.math.ubc.ca/~cass/courses/m308/projects/lim/images/Slingshot4.GIF [Abb 6] http://www.raumfahrer.net/multimedia/4images/details.php?image_id=1792 Allgemein: MGA – Cassini-Problem: http://www.esa.int/gsp/ACT/inf/op/globopt/evvejs.htm Evolutionary Programming in Theory and Practise, Thomas Bäck Folien Heuristische Optimierungsverfahren WS08, Raidl/Chwatal Danke für die Aufmerksamkeit Fragen oder Anregungen?