350 likes | 450 Views
Genetische Algorithmen. Vortrag im Rahmen der Lehrveranstaltung „Operations Research“ im Wintersemester 2004 / 05. Agenda. Einführung Begriffserklärung Pseudocode eines Genetischen Algorithmus Codierung Fitness- und Bewertungsfunktion Das Heiratsschema Crossover- Operatoren Mutationen
E N D
Genetische Algorithmen Vortrag im Rahmen der Lehrveranstaltung „Operations Research“ im Wintersemester 2004 / 05
Agenda • Einführung • Begriffserklärung • Pseudocode eines Genetischen Algorithmus • Codierung • Fitness- und Bewertungsfunktion • Das Heiratsschema • Crossover- Operatoren • Mutationen • Ersetzungsschema • Fazit Operations Research - Genetische Algorithmen
Einführung Einführung • • Genetische Algorithmen gehören zu der Gruppe der • Evolutionären Algorithmen • • Genetische Evolution wird imitiert • • John Holland war wichtigster Mitbegründer der • genetischen Programmierung • • Holland beschäftigte sich eher für die theoretischen • Aspekte der Evolution Operations Research - Genetische Algorithmen
Was können Genetische Algorithmen? • NP- Vollständige Optimierungsprobleme „Traveling Salesman“ • Diskrete Optimierungsprobleme „Rucksackproblem“ • Lineare Optimierungsprobleme „Transportproblem“ Was können GA? Operations Research - Genetische Algorithmen
Begriffserklärung Begriffserklärung Operations Research - Genetische Algorithmen
Pseudocode desGenetischen Algorithmus •Wahl einer geeigneten Codierung der Chromosomen •Initialisierung einer zufälligen Population von Chromosomen. Die Ausgangspopulation wird Generation 0 genannt REPEAT • Bewertung aller Elemente der aktuellen Generation gemäß Bewertungs- und / oder Fitnessfunktion •Selektion der Paare gemäß Heiratsschema und Erzeugung der Nachkommen der aktuellen Generation mittels Rekombination (Crossover) • Mutieren der Nachkommen • Ersetzung der Elemente der aktuellen Generation durch die Nachkommen gemäß Ersetzungsschema. Somit wird eine neue Generation erzeugt (survival of the fittest). UNTIL Abbruchbedingung erfüllt (z.B. Generation = 1000) Pseudocode des GA Operations Research - Genetische Algorithmen
Codierung • Bei genetischen Algorithmen wird in der Regel die binäre Codierung eingesetzt. • Ein Chromosom wird als binärer Vektor dargestellt: • Binärer Vektor y aus der Menge M heißt Chromosom und ist ein Element aus Mn = {0,1}n ; - n >= 1; - y = (y1, y2, ..., yn). - Mn und jede Teilmenge n von Mn wird als Population bezeichnet . Codierung Beispiel:y = (0, 1, 0, 1, 0, 1, 0, 1) Operations Research - Genetische Algorithmen
Binäre Codierung vs. Reelle Codierung Codierung Operations Research - Genetische Algorithmen
Fitness- und Bewertungsfunktion • Bewertungsfunktion misst, wie gut ein Chromosom das Optimum approximiert • Fitness gibt an, wie sich aus Güte (also der Bewertung des Chromosom) die Chance für das Chromosom errechnet, sich in der nächsten Generation zu reproduzieren • Grund zwischen den Begriffen nicht zu unterscheiden: • häufig gleiche Funktion für Bewertung und Fitness • Fitness-Funktion ist der Einfachheit halber eine simple Transformation der Bewertung Operations Research - Genetische Algorithmen
bi sei die Bewertung von xi Fit(xi) die Fitness Proportionale Fitness mit Lineare Fitness L sei eine lineare Funktion auf reelle Zahlen Für konstantes k > 0 Für konstante K, step > 0 Fitness- und Bewertungsfunktion Fitness Operations Research - Genetische Algorithmen
Das Heiratsschema • Es wird festgelegt, welche Individuen der Gesamtpopulation Nachkommen erzeugen • Aus zwei Eltern entstehen zwei Nachkommen (Normalfall) • Die Wahrscheinlichkeit der Fortpflanzung eines Individuums sollte proportional zu dessen Fitness sein. • Häufigste verwendete Heiratsschema ist „Roulette – Wheel“ Heiratsschema Operations Research - Genetische Algorithmen
Roulette - Wheel Heiratsschema - Algorithmus 1. Für Jedes Chromosom xi Bewertung B (xi) bestimmen 2. Alle Bewertungen addieren: B = B (xi) = 20.0 3. Chromosomen zufällig ordnen und mit natürlichen Zahlen indizieren Wiederhole bis genügend Paare gebildet: 4. Zufallszahlen n, m generieren mit 1 <= n, m <= B; z.B. n = 5, m = 14 5. Finde kleinste Zahl i mit B (xb) >= n ; i = 3 6. Finde kleinste Zahl j mit B (xb) >= m; j = 5 7. Gib xi und xj als Chromosomenpaar zurück Heiratsschema Operations Research - Genetische Algorithmen
Traveling Salesman Problem Crossover – Operatoren • Annahme : 5 Städte [A, B, C, D, E] • Mögliche Wege : ab, ac, ad, ae, bc, bd, be, cd, ce, de • Wahl einer geeigneten Repräsentation Operations Research - Genetische Algorithmen
Traveling Salesman Problem 1. Möglichkeit der Repräsentation: Beispiel: Weg ab ac ad ae bc bd be cd ce de 1 0 0 1 1 0 0 1 0 1 Problem: Es gibt auch ungültige Bitstrings: - Keine geschlossene Wegstrecke, Beispiel: 1 1 1 1 1 1 1 1 1 1 Crossover – Operatoren Schlechte Repräsentation, da Gültigkeitsprüfung sehr aufwendig! Operations Research - Genetische Algorithmen
Traveling Salesman Problem 2. Möglichkeit der Repräsentation: - Jeder Stadt wird genau ein Index zugeordnet. - Bei 5 Städten = Index 0 ... 4 - Jeder Index darf im Vektor nur einmal vorkommen. Beispiel: Weg (Vektor) A B C D E 0 1 2 3 4 Crossover – Operatoren Gute Repräsentation, da Gültigkeitsprüfung einfacher! Operations Research - Genetische Algorithmen
PMX – Algorithmus(Partially matched crossover) (a) Wähle zufällig zwei Positionen des Reihenfolgevektors und vertausche in diesem Intervall die jeweiligen Teilsequenzen in den Eltern- Lösungen A und B. (b) Wiederhole für jeden doppelten Wert w in A1 (B1): i.Suche die Position p, an der w im Elternteil B (A) steht. ii.Ersetze den Wert w der in A1(B1) außerhalb des Tauschintervalls steht, durch den Wert, der in A (B) an der Position p steht. Crossover – Operatoren 3 4 Operations Research - Genetische Algorithmen
OX – Algorithmus(Order crossover) (a)Markiere die Gene innerhalb des Intervalls im jeweiligen anderen Elternteil als Lücke (X). (b) Ordne die verbleibenden Indizes und die Lücken neu an. (c) Führe anschließend den Tausch im Intervall durch. X X X X Crossover – Operatoren Operations Research - Genetische Algorithmen
CX – Algorithmus Cycle crossover (a) Wähle zufällig eine Position in einem Elternteil als aktuelle Position. (b)Übernehme den dort stehenden Wert in den Nachkommen. (c) Überprüfe, welcher Wert an der aktuellen Position im anderen Elternteil steht, und suche die Position, an der dieser Wert im ersten Elternteil auftritt. Dies ist die neue aktuelle Position. (d) Wiederhole bis wieder die Anfangsposition erreicht ist, sich also ein Ring gebildet hat (daher die Benennung des Operators). Crossover – Operatoren 1 2 Operations Research - Genetische Algorithmen
UOBX – Algorithmus(Uniform order based crossover) (a) Erzeuge Zufallsstring in Länge des Reihenfolgevektors. (b) Arbeite binären Vektor positionsweise ab, wie folgt: - Steht eine 1 (0), so übernehme Gen von Eltern A (B) in Nachkommen a1 (b1). - Fülle die Lücken mit den verbleibenden Werten in der Reihenfolge, wie sie im jeweils anderen Elternteil stehen. Crossover – Operatoren Operations Research - Genetische Algorithmen
One point crossover A = (A1, ..., An)B = (B1, ..., Bn) wähle r {1, ..., n-1} zufällig Aneu = ( A1, ..., Ar, Br + 1, ..., Bn ) Bneu = ( B1, ..., Br, Ar + 1, ..., An ) Beispiel:A = ( 0 1 1 1 | 1 1 1 1 ) B = ( 1 0 0 0 | 0 0 0 0 ) Aneu = ( 0 1 1 1 0 0 0 0 ) Bneu = ( 1 0 0 0 1 1 1 1 ) Crossover – Operatoren Operations Research - Genetische Algorithmen
Two point crossover A = (A1, ..., An)B = (B1, ..., Bn) wähle r, s {1, ..., n}, r < s zufällig Aneu = ( A1, ..., Ar, Br + 1, ..., Bs, As + 1, …, An) Bneu = ( B1, ..., Br, Ar + 1, ..., As, Bs + 1, …, Bn) Beispiel: A = ( 0 1 1 | 11 | 1 1 1 ) B = ( 1 0 0 | 0 0 | 0 0 0 ) Aneu = ( 0 1 1 0 0 1 1 1 ) Bneu = ( 1 0 0 11 0 0 0 ) Crossover – Operatoren Operations Research - Genetische Algorithmen
Mutation Mutationen dienen zum verhindern einer frühzeitigen Konvergenz (premature convergence), und um eine gewisse Divergenz und Inhomogenität der Population zu sorgen. Ziel Findung gänzlich anderer Lösungen - also Lösungen, die mit der Kreuzung allein nicht generiert werden können. Mutation Operations Research - Genetische Algorithmen
Mutationsarten Eine typische Mutation für ein Chromosom x = <x1,…,xn> sieht folgendermaßen aus: Bit-Flip Mutation • Wähle eine Zufallszahl z mit • Betrachte das Gen • Setzte 1 n Mutation Operations Research - Genetische Algorithmen
Mutationsarten Positionsmutation • Wähle für jede Position xi des Chromosomen eine Zahl zi mit • Wähle für jede Position xi eine Zufallszahl ri mit • Ist , so setze , sonst lasse xi unverändert r z 1 n x Mutation Operations Research - Genetische Algorithmen
Mutationsarten Inversion Chromosom x = <x1,…,xn> • Wähle zwei gleichverteilte Zufallszahlen • Für alle setze 1 n Mutation Operations Research - Genetische Algorithmen
Ersetzungsschema Die Aufgabe der Ersetzungsschemata ist es, zu entscheiden, was mit der bisherigen Population geschehen soll, nachdem sie Nachkommen erzeugt hat. Denn die Population soll in jeder Generation ungefähr gleich groß sein. Ersetzungs- schema Operations Research - Genetische Algorithmen
Ersetzungsschemata Generational Replacement Ersetze die aktuelle Population vollständig durch ihre Nachkommen Elitismus Übernehme die n besten Elemente (die Elite) der aktuellen Population unverändert in die nächste Generation Schwacher Elitismus Übernehme die n besten Elemente (die Elite) der aktuellen Population in mutierter Form in die nächste Generation Ersetzungs- schema Operations Research - Genetische Algorithmen
Ersetzungsschemata Delete-n-last Ersetze die n schlechtesten Elemente der aktuellen Population durch n Nachkommen der Vorgängergeneration Delete-n Ersetze n zufällig gewählte Elemente der aktuellen Population durch n Nachkommen der Vorgängergeneration Delete-n mit Elitismus Ersetze n zufällig gewählte Elemente der aktuellen Population ohne Elite durch n Nachkommen der Vorgängergeneration Ersetzungs- schema Operations Research - Genetische Algorithmen
Ersetzungsschemata Ersetzungsschema X: mit Alterung Behalte einen Teil der Population für ein paar Generationen in einem "Altersheim„ auf und beteilige ihn an der Fortpflanzung. Der Grund für dieses Modell ist, dass der beste Partner für ein Individuum in einer späteren Generation folgen könnte. Ersetzungsschema X: mit Kindergarten Behalte einen Teil der Nachkommen für einige Generationen in einem "Kindergarten", und beteilige ihn erst dann an der Fortpflanzung, wenn sich die Individuen im "Kindergarten" durch Mutation (hoffentlich) verbessert haben. Ersetzungs- schema Operations Research - Genetische Algorithmen
Vorteile Durch Selektion auch weniger guter Individuen sind „versteckte“ globale Optima besser auffindbar Parallelisierbarkeit beschleunigt Rechengeschwindigkeit Methoden können mit anderen Verfahren kombiniert werden Nachteile Keine Optimalitätsgarantie für Heuristiken Hoher Rechenaufwand (mehr Funktionsauswertung) Die Festlegung der Strategie-parameter setzt die Erfahrung und Expertenwissen voraus Vor- und Nachteile Fazit Operations Research - Genetische Algorithmen
Fazit Bei der Bearbeitung eines Optimierungsproblems muss die Zielfunktion keine speziellen algebraischen oder analytischen Eigenschaften (Linearität, Konvexität, Stetigkeit, Differenzierbarkeit) besitzen. Genetische Algorithmen sind daher insbesondere zur Optimierung nicht linearer Funktionen geeignet. In vielen Fällen führt bereits der Einsatz problem-unabhängiger Standardoperatoren des klassischen Genetischen Algorithmus zu befriedigenden Resultaten. Doch es gibt auch Grenzen der Einsetzung! Fazit Operations Research - Genetische Algorithmen
Quellen • Eberhard Schöneburg, Frank Heinzmann, Sven Feddersen: „Genetische Algorithmen und Evolutionsstrategien“, 1994 • Uwe Schöning: „Algorithmik“, 2001 • Wolfgang Hauke, Otto Opitz „Mathematische Unternehmensplanung“ 2003 • www.wikipedia.org Quellen Operations Research - Genetische Algorithmen
Vielen Dank für Ihre Aufmerksamkeit ! Operations Research - Genetische Algorithmen