Stochastische Optimierungsalgorithmen ADS: Algorithmen und Datenstrukturen 2 Problemstellung Lösungensmenge X , Bewertungsfunktion f : X → R. Finde globales Minimum von f Grundprinzip Teil 11 Prof. Peter F. Stadler & Sebastian Will Start: endliche Menge A von erlaubten Lösungen (“Population”) mit |A| = n. Bioinformatik/IZBI Institut für Informatik & Interdisziplinäres Zentrum für Bioinformatik Universität Leipzig 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. 18. Juni 2014 [Letzte Aktualisierung: 16/06/2014, 11:19] Abbruchbedingung 1 / 32 Stochastische Optimierungsalgorithmen P.F. Stadler & S. Will (Bioinf, Uni LE) 2 / 32 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 4 ADS 2, V11 18. Juni 2014 Genetische Algorithmen 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 ... ) P.F. Stadler & S. Will (Bioinf, Uni LE) ADS 2, V11 18. Juni 2014 3 / 32 Genetische Algorithmen Wähle eine Teilemenge von A und ziehe für jedes x ∈ A einen Mutanten y ∈ N(x). Bilde die Vereinigung von A, den Cross-over Nachkommen, und den Mutanten P.F. Stadler & S. Will (Bioinf, Uni LE) ADS 2, V11 18. Juni 2014 4 / 32 Die Eingeweide: Kodierung Explizite Representation der Lösungen Selektion: viele Varianten: Strings fixer Länge. Moves: Ersetzen eines Zeichens N(x) = {y |dH (x, y ) = 1} dH . . . Hamming Distanz fitness-proportional selection. Ziehe aus B mit Wahrscheinlichkeiten proportional zu −f (z) oder exp(−f (z)) bis genau n Lösungen gezogen sind Permutationen. Moves: Transpositionen ziehe zwei Lösungen z und z 0 . Falls z > z 0 , akzeptiere z. Wiederhole bis n Lösungen akzeptiert sind. Reell-wertige Vektoren. Hier werden oft normalverteilte “Mutanten” gewählt: Wähle die besten n Lösungen. pyx ∼ exp(−||x − y ||2 /σ 2 ) ... auch andere kombinatorische Objekte können benutzt werden: Spannbäume, Partitionen, Matchings, ... P.F. Stadler & S. Will (Bioinf, Uni LE) ADS 2, V11 18. Juni 2014 5 / 32 P.F. Stadler & S. Will (Bioinf, Uni LE) ADS 2, V11 18. Juni 2014 6 / 32 Cross-Over Cross-Over Für Strings: 1-Punkt Crossover Uniformer Crossover übernimm jede Position zufällig entweder unverändert oder vertausche die beiden Zeichen zwischen Eltern x1 = 0100001010100010101010101101 x2 = 1010101110101010011100110101 x1 = 0110001110101010101100100101 x2 = 1000101010100010011010111101 tausch --**-***--******---**---**-* 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 Beobachtung: d(x1 , x10 ) ≤ d(x1 , d2 ) und d(x1 , x20 ) ≤ d(x1 , d2 ) Übliche Forderung an Rekombination: x1’ = 0100001.110101010011100110101 x2’ = 1010101.010100010101010101101 R(x, y ) = R(y , x) Für z ∈ R(x, y ) gilt d(x, z), d(y , z) ≤ d(x, y ) P.F. Stadler & S. Will (Bioinf, Uni LE) ADS 2, V11 18. Juni 2014 7 / 32 P.F. Stadler & S. Will (Bioinf, Uni LE) ADS 2, V11 18. Juni 2014 8 / 32 Crossover für Vektoren 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 Mittelwertbildung: 1 z = (x + y ) 2 Konvexe Kombination: [x, y ] = {z ∈ X |d(x, z) + d(z, y ) = d(x, y )} z = px + (1 − p)y p ∈ [0, 1] (=Menge aller Konfigurationen auf kürzesten Pfaden von x nach y ) Sogenannte topologische Crossover-Operator erfüllen Die Zufallszahl p wird typischerweise aus einer Gleichverteilung gezogen Spezielle Verfahren für andere Typen von Objekten, wie z.B., Permutationen, Bäume . . . R(x, y ) ⊆ [x, y ] D.h., jede Rekombinanten liegt auf einem kürzesten Pfad zwischen den Eltern P.F. Stadler & S. Will (Bioinf, Uni LE) ADS 2, V11 18. Juni 2014 9 / 32 P.F. Stadler & S. Will (Bioinf, Uni LE) ADS 2, V11 18. Juni 2014 10 / 32 Abbruchbedingungen 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| Normalerweise ist nicht bekannt, ob das Ziel bereits erreicht ist, d.h., ob ein globales Minimum bereits gefunden ist. minimiert wird. (Lösung: a = b = c = d = e). Fixe Anzahl von Iterationen Kodierung: Als einfachste Möglichkeit fassen wir in den Genen die freien Variablen zusammen: (a,b,c,d,e) Fitness: F → min Keine Verbesserung seit K Iterationen Verbesserung in den letzten K Iterationen weniger als (im Fall von reell-wertigen Problemstellungen) 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. U. Quasthoff ADS 2, V11 18. Juni 2014 11 / 32 Details zu Beispiel 1 • 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. U. Quasthoff Algorithmen und Datenstrukturen 2 11 ADS 2, V11 18. Juni 2014 13 / 32 Rang 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 U. Quasthoff P.F. Stadler & S. Will (Bioinf, 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 12 / 32 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 -26 22 -16 -14 18 -29 8 5 -6 -22 ... 34 12 U. Quasthoff -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 -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 Algorithmen und Datenstrukturen 2 P.F. Stadler & S. Will (Bioinf, Uni LE) ADS 2, V11 12 18. Juni 2014 14 / 32 Generation 46 -33 -33 -33 -33 -33 -33 -33 -33 -33 -33 ... -33 -33 -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 Vorbereitung • Fitness-Funktion problemangepasst festlegen -33 -33 -33 -33 -33 -33 -33 -33 -33 -33 ... -33 -33 • Abbruchkriterium festlegen • Genetische Kodierung: lernrelevante Parameter des Systems durch Gene eindeutig kodieren • Genetische Operationen festlegen (Vermehrung, Mutation) • Selektionskriterien festlegen Algorithmen und Datenstrukturen 2 ADS 2, V11 18. Juni 2014 Allgemeiner Genetischer Algorithmus I Bsp. 1: Generationen 15 und 46 Fitness 10 ADS 2, V11 Bsp. 1: Generationen 0 und 1 • Startpopulation aus 50 Individuen P.F. Stadler & S. Will (Bioinf, Uni LE) Algorithmen und Datenstrukturen 2 P.F. Stadler & S. Will (Bioinf, Uni LE) Rang P.F. Stadler & S. Will (Bioinf, Uni LE) 13 18. Juni 2014 15 / 32 U. Quasthoff P.F. Stadler & S. Will (Bioinf, Uni LE) Algorithmen und Datenstrukturen 2 ADS 2, V11 14 18. Juni 2014 16 / 32 Allgemeiner Genetischer Algorithmus II 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.] Durchführung 1. Initialisierung: Ausgangspopulation erzeugen 2. Rekombination: Nachkommen erzeugen mittels der genetischen Operationen 3. Fitness bestimmen • Ein Kind wird jeweils von k Elternteilen erzeugt: 4. Selektion: Bilden der neuen Population durch Selektion (z.B. entsprechend Qualität, Alter) (µ/k+λ)-Strategie: Population aus µ Individuen, daraus λ Kinder, die µ fittesten überleben. [Im Beispiel wurde also eine (50/2+50)-Srategie benutzt.] (µ/k,λ)-Strategie: analog 5. Abbruch? Falls Abbruchkriterium erfüllt, dann STOPP. 6. Gehe zu Schritt 2. U. Quasthoff Algorithmen und Datenstrukturen 2 P.F. Stadler & S. Will (Bioinf, Uni LE) ADS 2, V11 15 18. Juni 2014 17 / 32 U. Quasthoff Algorithmen und Datenstrukturen 2 P.F. Stadler & S. Will (Bioinf, Uni LE) ADS 2, V11 16 18. Juni 2014 18 / 32 Fitness maximieren GA für Reihenfolge-Probleme • Fitness ist eine Funktion F von mehreren Variablen. Untersucht werden sollen Fragestellungen, bei denen die Größe des Erfolges von der Reihenfolge der Arbeitsschritte abhängt. • Die Suche nach Individuen mit großer Fitness entspricht der Suche nach dem Maximum von F. Beispiele – Traveling Salesman Problem: Zu gegebenen n Punkten in der Ebene ist eine möglichst kurze Rundreise gesucht. Es gibt verschiedene Verfahren für verschiedene Typen von Aufgaben: – Gibt es ein oder mehrere lokale Maxima? – Anordnungsprobleme unter Verwendung möglichst vieler Teile: Rucksackproblem – Wie glatt ist die Funktion (z.B. differenzierbar)? – allgemeinstes Beispiel: Maximierung einer Funktion, die auf allen Permutationen einer Menge {1, 2,..., n} definiert ist. – Wie weit darf die Lösung vom globalen Maximum entfernt sein? U. Quasthoff Algorithmen und Datenstrukturen 2 P.F. Stadler & S. Will (Bioinf, Uni LE) ADS 2, V11 17 18. Juni 2014 19 / 32 U. Quasthoff Algorithmen und Datenstrukturen 2 P.F. Stadler & S. Will (Bioinf, Uni LE) ADS 2, V11 18 18. Juni 2014 20 / 32 Crossover von Permutationen 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 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 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 U. Quasthoff P.F. Stadler & S. Will (Bioinf, Uni LE) Algorithmen und Datenstrukturen 2 ADS 2, V11 19 18. Juni 2014 21 / 32 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 U. Quasthoff P.F. Stadler & S. Will (Bioinf, Uni LE) Crossover-Bereich Algorithmen und Datenstrukturen 2 ADS 2, V11 20 18. Juni 2014 22 / 32 Crossover und Mutation Das Traveling Salesman Problem (TSP) • Crossover ist nicht symmetrisch zwischen den Eltern. 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. • Vom ersten Elternteil wird der ausgewählte Bereich (wie immer) unverändert übernommen. ⇒ Nachbarschaft in einer Permutation entscheidend, nicht die Reihenfolge • Vom zweiten Teil wird kein Bereich übernommen, aber immerhin bleibt für die übernommenen Elemente die relative Ordnung erhalten. 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 Einfachste und natürlichste Mutation: Wähle eine Teilliste aus und permutiere diese. U. Quasthoff P.F. Stadler & S. Will (Bioinf, Uni LE) Algorithmen und Datenstrukturen 2 ADS 2, V11 21 18. Juni 2014 23 / 32 U. Quasthoff P.F. Stadler & S. Will (Bioinf, Uni LE) Algorithmen und Datenstrukturen 2 ADS 2, V11 22 18. Juni 2014 24 / 32 TSP Vorbereitung TSP Recombination: Edge-2 • Genetische Kodierung: lernrelevante Parameter durch Gene kodieren Permutation der n Städte Erklärung am Beispiel: Rekombiniert werden sollen die Wege • Fitness-Funktion problemangepasst festlegen Summe der Entfernungen von Stadt zu Stadt auf der Rundreise Elternteil 1: g Elternteil 2: c • Genetische Operationen festlegen (Vermehrung, Mutation) – Crossover für Permutationen – Edge-2 a b c d • Abbruchkriterium festlegen – Unterschreiten eines festgelegten Limits (Rundreise „kurz genug“) – genau x Generationen – x Generationen keine Änderung am fittesten Individuum U. Quasthoff Algorithmen und Datenstrukturen 2 ADS 2, V11 m k h a b g j b f h i i 23 18. Juni 2014 25 / 32 - *k,g,i *h,g,j *e,d,g *m,g,c e f g h U. Quasthoff - *k,*c *j,m,i a,b,c,d *b,i,m 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. Elternteil 1: g Elternteil 2: c c d 25 18. Juni 2014 27 / 32 i j k m - h,j,a,f *f,i,b *e,*a *d,f,h d e m k 24 h a b g j b f h i i 18. Juni 2014 a j k f e m 26 / 32 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: Algorithmen und Datenstrukturen 2 ADS 2, V11 e m ADS 2, V11 Edge-2 im Beispiel P.F. Stadler & S. Will (Bioinf, Uni LE) k f Algorithmen und Datenstrukturen 2 P.F. Stadler & S. Will (Bioinf, Uni LE) Edge-2 Algorithmus U. Quasthoff a j Dazu werden die Nachbarschaften in folgender Kantenliste dargestellt: (Anfang – Enden, doppelt auftretende Enden mit * markiert) • Selektionskriterien festlegen – Überleben der µ besten Individuen – Tournament set P.F. Stadler & S. Will (Bioinf, Uni LE) d e a k e U. Quasthoff P.F. Stadler & S. Will (Bioinf, Uni LE) c d m h b g i f j Algorithmen und Datenstrukturen 2 ADS 2, V11 26 18. Juni 2014 28 / 32 TSP als Wettbewerb TSP Demo • 1962 ausgeschrieben von Proctor & Gamble • 33 vorgegebene Städte in den USA • Mehrere Gewinner mit optimaler Lösung U. Quasthoff P.F. Stadler & S. Will (Bioinf, Uni LE) Algorithmen und Datenstrukturen 2 ADS 2, V11 27 18. Juni 2014 29 / 32 U. Quasthoff P.F. Stadler & S. Will (Bioinf, Uni LE) Algorithmen und Datenstrukturen 2 ADS 2, V11 U. Quasthoff P.F. Stadler & S. Will (Bioinf, Uni LE) Algorithmen und Datenstrukturen 2 ADS 2, V11 30 / 32 • 2001: Optimale Tour für 15112 Städte in Deuschland • Gefunden von Applegate, Bixby und Chvátal • 1977: Optimale Tour für 120 Städte in der BRD • Gefunden von Martin Grötschel U. Quasthoff 28 18. Juni 2014 Algorithmen und Datenstrukturen 2 30 29 18. Juni 2014 31 / 32 P.F. Stadler & S. Will (Bioinf, Uni LE) ADS 2, V11 18. Juni 2014 32 / 32