ADS: Algorithmen und Datenstrukturen 2 Teil 11 Gerhard Heyer, Florian Holz unter Verwendung der Materialien der letzten Jahre Abteilung Automatische Sprachverarbeitung Institut für Informatik Universität Leipzig 03. Juli 2013 1 / 32 Stochastische Optimierungsalgorithmen Problemstellung Stochastische Optimierungsalgorithmen Problemstellung Lösungensmenge X , Bewertungsfunktion f : X → R. Finde globales Minimum von f Grundprinzip Start: endliche Menge A von erlaubten Lösungen (“Population”) mit |A| = n. Schleife (1) Erzeuge erweiterte Lösungsmenge B, |B| = m > n. (2) Selektiere eine neue Population A0 ⊂ B mit |A0 | = n in der die besseren Lösungen angereichert sind. Abbruchbedingung G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 11 SS 2013 2 / 32 Stochastische Optimierungsalgorithmen Problemstellung Stochastische Optimierungsalgorithmen Motiviation durch Prozesse in der Natur: Evolution als Wechselspiel von Mutation (allergemeiner: Erzeugung von Variabilität und Selektion (aus den vorhandenen Varianten) Schrittweise Energie-Minimierung in physikalischen Systemen (z.B. Gefrieren von Flüssigkeiten ... ) G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 11 SS 2013 3 / 32 Stochastische Optimierungsalgorithmen Genetische Algorithmen I Genetische Algorithmen Cross-Over: “mischen” von 2 Eltern. R(x, y ) Menge der möglichen Kinder der Eltern x und y Konstruktion der erweiterten Population: 1 Wähle eine Menge von Eltern-Paaren 2 Für jedes Elternpaar (x, y ) ziehe einen, zwei oder mehrere Nachkommen z ∈ R(x). 3 Wähle eine Teilemenge von A und ziehe für jedes x ∈ A einen Mutanten y ∈ N(x). 4 Bilde die Vereinigung von A, den Cross-over Nachkommen, und den Mutanten G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 11 SS 2013 4 / 32 Stochastische Optimierungsalgorithmen Genetische Algorithmen I Genetische Algorithmen Selektion: viele Varianten: fitness-proportional selection. Ziehe aus B mit Wahrscheinlichkeiten proportional zu −f (z) oder exp(−f (z)) bis genau n Lösungen gezogen sind ziehe zwei Lösungen z und z 0 . Falls z > z 0 , akzeptiere z. Wiederhole bis n Lösungen akzeptiert sind. Wähle die besten n Lösungen. ... G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 11 SS 2013 5 / 32 Stochastische Optimierungsalgorithmen Genetische Algorithmen I Die Eingeweide: Kodierung Explizite Representation der Lösungen Strings fixer Länge. Moves: Ersetzen eines Zeichens N(x) = {y |dH (x, y ) = 1} dH . . . Hamming Distanz Permutationen. Moves: Transpositionen Reell-wertige Vektoren. Hier werden oft normalverteilte “Mutanten” gewählt: pyx ∼ exp(−||x − y ||2 /σ 2 ) auch andere kombinatorische Objekte können benutzt werden: Spannbäume, Partitionen, Matchings, ... G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 11 SS 2013 6 / 32 Stochastische Optimierungsalgorithmen Genetische Algorithmen I Cross-Over Für Strings: 1-Punkt Crossover x1 = 0100001010100010101010101101 x2 = 1010101110101010011100110101 Bestimme einen zufälligen Bruchpunkt k und vertausche die Suffixe: x10 = x1 [1..k]x2 [k + 1..n] und x20 = x2 [1..k]x1 [k + 1..n] Für k = 7 x1’ = 0100001.110101010011100110101 x2’ = 1010101.010100010101010101101 G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 11 SS 2013 7 / 32 Stochastische Optimierungsalgorithmen Genetische Algorithmen I Cross-Over Uniformer Crossover übernimm jede Position zufällig entweder unverändert oder vertausche die beiden Zeichen zwischen Eltern x1 = 0110001110101010101100100101 x2 = 1000101010100010011010111101 tausch --**-***--******---**---**-* Beobachtung: d (x1 , x10 ) ≤ d (x1 , d2 ) und d (x1 , x20 ) ≤ d (x1 , d2 ) Übliche Forderung an Rekombination: R(x, y ) = R(y , x) Für z ∈ R(x, y ) gilt d (x, z), d (y , z) ≤ d (x, y ) G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 11 SS 2013 8 / 32 Stochastische Optimierungsalgorithmen Genetische Algorithmen I Crossover für Vektoren Mittelwertbildung: 1 z = (x + y ) 2 Konvexe Kombination: z = px + (1 − p)y p ∈ [0, 1] Die Zufallszahl p wird typischerweise aus einer Gleichverteilung gezogen Spezielle Verfahren für andere Typen von Objekten, wie z.B., Permutationen, Bäume . . . G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 11 SS 2013 9 / 32 Stochastische Optimierungsalgorithmen Genetische Algorithmen I Crossover im Allgemeinen Gegeben: Suchraum X eine Graphenstrukur auf X , d.h., Nachbarschaften N(x) für jede Konfiguration so dass y ∈ N(x) =⇒ x ∈ N(y ). Die graphische Distanz d : X × X → R+ 0 auf (X , N) is definiert durch d (x, y ) ist die Länge des kürzesten Pfades von x nach y . Segment [x, y ] zwischen x und y is definiert durch [x, y ] = {z ∈ X |d (x, z) + d (z, y ) = d (x, y )} (=Menge aller Konfigurationen auf kürzesten Pfaden von x nach y ) Sogenannte topologische Crossover-Operator erfüllen R(x, y ) ⊆ [x, y ] D.h., jede Rekombinanten liegt auf einem kürzesten Pfad zwischen den Eltern G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 11 SS 2013 10 / 32 Stochastische Optimierungsalgorithmen Genetische Algorithmen I Abbruchbedingungen Normalerweise ist nicht bekannt, ob das Ziel bereits erreicht ist, d.h., ob ein globales Minimum bereits gefunden ist. Fixe Anzahl von Iterationen Keine Verbesserung seit K Iterationen Verbesserung in den letzten K Iterationen weniger als (im Fall von reell-wertigen Problemstellungen) G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 11 SS 2013 11 / 32 Stochastische Optimierungsalgorithmen Genetische Algorithmen I Erstes Beispiel Gesucht sind 5 ganze Zahlen a, b, c, d, e, so dass die Funktion F = |a-b|+ |b-c|+ |c-d|+ |d-e|+ |e-a| minimiert wird. (Lösung: a = b = c = d = e). Kodierung: Als einfachste Möglichkeit fassen wir in den Genen die freien Variablen zusammen: (a,b,c,d,e) Fitness: F → min Rekombination: einfaches Crossover an Position co: – wähle 1 ≤ co ≤ 4, – kopiere die Allele 1 bis co vom ersten Elternteil und die Allele von co+1 bis 5 vom zweiten. Mutation an einer Position um ±1 ist möglich. G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 11 SS 2013 12 / 32 Stochastische Optimierungsalgorithmen Genetische Algorithmen I Details zu Beispiel 1 • Startpopulation aus 50 Individuen • Fünf Gene (für jede Zahl ein Gen), Wertebereich [-50,50] • Vermehrung mit einfachem Crossover, Mutation ±1 mit Wahrscheinlichkeit 1% bei jedem Gen • Durch zufällige Eltern-Paare werden 50 Kinder erzeugt. • Von den nun insgesamt 100 Individuen überleben die 50 mit der besten Fitness. G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 11 SS 2013 13 / 32 Stochastische Optimierungsalgorithmen Genetische Algorithmen I Rang Bsp. 1: Generationen 0 und 1 Fitness 1 2 3 4 5 6 7 8 9 10 ... 49 50 24 74 78 82 90 96 112 114 118 120 ... 282 346 Fitness Generation 0 -33 -4 -21 5 -3 3 -38 -28 -5 18 ... -1 38 -29 6 -3 -8 10 -34 -32 2 4 -1 ... -33 -49 G. Heyer, F. Holz (Abt ASV, Uni LE) -26 22 -16 -14 18 -29 8 5 -6 -22 ... 34 12 -35 0 -29 -17 17 -33 -14 14 44 -7 ... -34 43 -38 -15 -42 24 41 -40 -48 -43 24 38 ... 40 -43 24 74 78 82 90 94 96 102 112 114 ... 166 166 Generation 1 -33 -4 -21 5 -3 -38 3 -12 -38 -28 ... 10 18 ADS 2, V 11 -29 6 -3 -8 10 -32 -34 -19 -32 2 ... 46 15 -26 22 -16 -14 18 8 -29 31 8 5 ... -6 11 -35 0 -29 -17 17 -14 -33 -2 -14 14 ... -2 -40 -38 -15 -42 24 41 -13 -40 -13 -48 -43 ... 41 43 SS 2013 14 / 32 Stochastische Optimierungsalgorithmen Genetische Algorithmen I Rang Bsp. 1: Generationen 15 und 46 Fitness 1 2 3 4 5 6 7 8 9 10 ... 49 50 20 20 22 22 22 22 22 22 22 22 ... 24 24 Fitness Generation 15 -33 -33 -33 -33 -33 -33 -33 -33 -33 -33 ... -32 -33 -29 -29 -29 -29 -29 -29 -29 -28 -29 -29 ... -29 -29 G. Heyer, F. Holz (Abt ASV, Uni LE) -28 -28 -27 -27 -27 -27 -27 -26 -27 -27 ... -26 -26 -35 -35 -35 -35 -35 -35 -35 -35 -35 -35 ... -35 -35 -38 -38 -38 -38 -38 -38 -38 -37 -38 -38 ... -38 -38 2 2 4 4 4 4 4 4 4 4 ... 4 4 Generation 46 -33 -33 -33 -33 -33 -33 -33 -33 -33 -33 ... -33 -33 ADS 2, V 11 -33 -32 -31 -31 -31 -31 -32 -31 -31 -31 ... -31 -31 -32 -32 -31 -31 -31 -31 -31 -31 -31 -31 ... -31 -31 -33 -33 -33 -33 -33 -33 -33 -33 -33 -33 ... -33 -33 -33 -33 -33 -33 -33 -33 -33 -33 -33 -33 ... -33 -33 SS 2013 15 / 32 Stochastische Optimierungsalgorithmen Genetische Algorithmen I Allgemeiner Genetischer Algorithmus I Vorbereitung • Fitness-Funktion problemangepasst festlegen • Abbruchkriterium festlegen • Genetische Kodierung: lernrelevante Parameter des Systems durch Gene eindeutig kodieren • Genetische Operationen festlegen (Vermehrung, Mutation) • Selektionskriterien festlegen G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 11 SS 2013 16 / 32 Stochastische Optimierungsalgorithmen Genetische Algorithmen I Allgemeiner Genetischer Algorithmus II Durchführung 1. Initialisierung: Ausgangspopulation erzeugen 2. Rekombination: Nachkommen erzeugen mittels der genetischen Operationen 3. Fitness bestimmen 4. Selektion: Bilden der neuen Population durch Selektion (z.B. entsprechend Qualität, Alter) 5. Abbruch? Falls Abbruchkriterium erfüllt, dann STOPP. 6. Gehe zu Schritt 2. G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 11 SS 2013 17 / 32 Stochastische Optimierungsalgorithmen Genetische Algorithmen I Selektionsmethoden • Ein Kind wird jeweils von einem Elternteil erzeugt: (µ+λ)-Strategie: Die Population besteht aus µ Individuen, daraus werden λ Kinder erzeugt, die µ fittesten Individuen überleben. (µ,λ)-Strategie: Die Population besteht aus µ Individuen, daraus werden λ>µ Kinder erzeugt, die µ fittesten dieser Kinder überleben. [Sinnvoll ist z.B. eine (10+100)-Srategie.] • Ein Kind wird jeweils von k Elternteilen erzeugt: (µ/k+λ)-Strategie: Population aus µ Individuen, daraus λ Kinder, die µ fittesten überleben. [Im Beispiel wurde also eine (50/2+50)-Srategie benutzt.] (µ/k,λ)-Strategie: analog G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 11 SS 2013 18 / 32 Stochastische Optimierungsalgorithmen Genetische Algorithmen I Fitness maximieren • Fitness ist eine Funktion F von mehreren Variablen. • Die Suche nach Individuen mit großer Fitness entspricht der Suche nach dem Maximum von F. Es gibt verschiedene Verfahren für verschiedene Typen von Aufgaben: – Gibt es ein oder mehrere lokale Maxima? – Wie glatt ist die Funktion (z.B. differenzierbar)? – Wie weit darf die Lösung vom globalen Maximum entfernt sein? G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 11 SS 2013 19 / 32 Stochastische Optimierungsalgorithmen Genetische Algorithmen I GA für Reihenfolge-Probleme Untersucht werden sollen Fragestellungen, bei denen die Größe des Erfolges von der Reihenfolge der Arbeitsschritte abhängt. Beispiele – Traveling Salesman Problem: Zu gegebenen n Punkten in der Ebene ist eine möglichst kurze Rundreise gesucht. – Anordnungsprobleme unter Verwendung möglichst vieler Teile: Rucksackproblem – allgemeinstes Beispiel: Maximierung einer Funktion, die auf allen Permutationen einer Menge {1, 2,..., n} definiert ist. G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 11 SS 2013 20 / 32 Stochastische Optimierungsalgorithmen Genetische Algorithmen I Probleme beim Kreuzen Wie sollen die Nachkommen bei Reihenfolge-Problemen erzeugt werden? Rekombination: einfaches Crossover an Position co: – wähle 1 ≤ co < n – kopiere die Allele 1 bis co vom ersten Elternteil und die Allele von co+1 bis n vom zweiten Elternteil 1: Elternteil 2: (1,2,3,4,5,6,7,8) (6,5,4,3,1,2,7,8) Crossover an co = 3: Kind: (1,2,3,3,1,2,7,8) ⇒ kein gültiges Individuum G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 11 SS 2013 21 / 32 Stochastische Optimierungsalgorithmen Genetische Algorithmen I Crossover von Permutationen 1. Crossover-Bereich für die Eltern A und B festlegen 2. Für Kind 1 den nicht zu verändernden Bereich von A kopieren und 3. in den Crossover-Bereich die restlichen Elemente von A einfügen, und zwar in der Reihenfolge, wie sie in B vorkommen. 4. Kind 2 mit vertauschten Rollen von A und B erzeugen. Beispiel Elternteil A Elternteil B 1 8 2 6 3 4 4 2 5 7 6 5 7 3 8 1 Schritt 1 Kind 1 Kind 2 8 2 - 3 - 2 5 - 6 - 3 1 Schritt 2 Kind 1 Kind 2 8 8 2 4 3 5 4 2 5 6 6 7 7 3 1 1 Schritt 3 G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 11 Crossover-Bereich SS 2013 22 / 32 Stochastische Optimierungsalgorithmen Genetische Algorithmen I Crossover und Mutation • Crossover ist nicht symmetrisch zwischen den Eltern. • Vom ersten Elternteil wird der ausgewählte Bereich (wie immer) unverändert übernommen. • Vom zweiten Teil wird kein Bereich übernommen, aber immerhin bleibt für die übernommenen Elemente die relative Ordnung erhalten. Einfachste und natürlichste Mutation: Wähle eine Teilliste aus und permutiere diese. G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 11 SS 2013 23 / 32 Stochastische Optimierungsalgorithmen Genetische Algorithmen I Das Traveling Salesman Problem (TSP) Vorüberlegungen: Wege können vorwärts und rückwärts durchlaufen werden, d.h. einem Teilweg ist zunächst (auch bei der Bestimmung der Fitness) keine Richtung zugeordnet. ⇒ Nachbarschaft in einer Permutation entscheidend, nicht die Reihenfolge Anwendung: Mutation Drehen eines Teilweges: Wähle einen beliebig langen Teilweg aus und durchlaufe diesen rückwärts. ⇒ Änderung nur an zwei Elementarstücken – an den Enden des Teilweges G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 11 SS 2013 24 / 32 Stochastische Optimierungsalgorithmen Genetische Algorithmen I TSP Vorbereitung • Genetische Kodierung: lernrelevante Parameter durch Gene kodieren Permutation der n Städte • Fitness-Funktion problemangepasst festlegen Summe der Entfernungen von Stadt zu Stadt auf der Rundreise • Genetische Operationen festlegen (Vermehrung, Mutation) – Crossover für Permutationen – Edge-2 • Selektionskriterien festlegen – Überleben der µ besten Individuen – Tournament set • Abbruchkriterium festlegen – Unterschreiten eines festgelegten Limits (Rundreise „kurz genug“) – genau x Generationen – x Generationen keine Änderung am fittesten Individuum G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 11 SS 2013 25 / 32 Stochastische Optimierungsalgorithmen Genetische Algorithmen I TSP Recombination: Edge-2 Erklärung am Beispiel: Rekombiniert werden sollen die Wege Elternteil 1: g Elternteil 2: c d e m k h a b g j b f h i i a j k f e m c d Dazu werden die Nachbarschaften in folgender Kantenliste dargestellt: (Anfang – Enden, doppelt auftretende Enden mit * markiert) a b c d - *k,g,i *h,g,j *e,d,g *m,g,c G. Heyer, F. Holz (Abt ASV, Uni LE) e f g h - *k,*c *j,m,i a,b,c,d *b,i,m ADS 2, V 11 i j k m - h,j,a,f *f,i,b *e,*a *d,f,h SS 2013 26 / 32 Stochastische Optimierungsalgorithmen Genetische Algorithmen I Edge-2 Algorithmus 1. Der Startknoten wird zufällig gewählt. 2. Der aktuell gewählte Knoten wird aus den rechten Seiten der Kantenliste überall entfernt. 3. Der nächste Knoten wird folgendermaßen gewählt: – Falls die Kantenliste zum aktuellen Knoten einen mit * markierten Knoten enthält, wird dieser gewählt. (Bei mehreren Knoten mit dieser Eigenschaft wird zufällig daraus gewählt.) – Sonst wird der unmarkierte Knoten mit der kürzesten verbliebenen Kantenliste gewählt. (Bei mehreren Knoten mit dieser Eigenschaft wird zufällig daraus gewählt.) – Sonst wird zufällig ein Knoten ausgewählt. – Ist kein Knoten mehr wählbar, sind wir fertig. 4. Weiter zu Schritt 2. G. Heyer, F. Holz (Abt ASV, Uni LE) ADS 2, V 11 SS 2013 27 / 32 Stochastische Optimierungsalgorithmen Genetische Algorithmen I Edge-2 im Beispiel Elternteil 1: g Elternteil 2: c d e m k h a b g j b f h i i a j k f e m c d Kantenliste: a - *k,g,i b - *h,g,j c - *e,d,g d - *m,g,c e - *k,*c f - *j,m,i g - a,b,c,d h - *b,i,m i - h,j,a,f j - *f,i,b k - *e,*a m - *d,f,h Zufällige Auswahl: a In Schritt 3 wird zunächst k gewählt, dann e, dann c. Danach wird von d und g (Länge der verbliebenen Kantenliste ist jeweils 2) zufällig d gewählt, dann m (eindeutig), h (zufällig aus f und h), b (eindeutig), g (eindeutig). Jetzt wird i zufällig ausgewählt, es entsteht erstmalig eine neue Kante. Danach f und j. Ergebnis: a k e G. Heyer, F. Holz (Abt ASV, Uni LE) c d m h b ADS 2, V 11 g i f j SS 2013 28 / 32 Stochastische Optimierungsalgorithmen Genetische Algorithmen I TSP Demo G. Heyer, F. Holz (Abt ASV, Uni LE) U. Quasthoff ADS und 2, VDatenstrukturen 11 Algorithmen 2 SS 2013 29 /27 32 Stochastische Optimierungsalgorithmen Genetische Algorithmen I TSP als Wettbewerb • 1962 ausgeschrieben von Proctor & Gamble • 33 vorgegebene Städte in den USA • Mehrere Gewinner mit optimaler Lösung U. Quasthoff G. Heyer, F. Holz (Abt ASV, Uni LE) Algorithmen und Datenstrukturen 2 ADS 2, V 11 SS 2013 28 30 / 32 Stochastische Optimierungsalgorithmen Genetische Algorithmen I • 1977: Optimale Tour für 120 Städte in der BRD • Gefunden von Martin Grötschel G. Heyer, F. Holz (Abt ASV, Uni LE) U. Quasthoff ADS und 2, VDatenstrukturen 11 Algorithmen 2 SS 2013 31 /29 32 Stochastische Optimierungsalgorithmen Genetische Algorithmen I • 2001: Optimale Tour für 15112 Städte in Deuschland • Gefunden von Applegate, Bixby und Chvátal U. Quasthoff G. Heyer, F. Holz (Abt ASV, Uni LE) Algorithmen und Datenstrukturen 2 ADS 2, V 11 30 SS 2013 32 / 32