1 / 31

Genetische Programmierung

Genetische Programmierung Dr. Uwe Quasthoff Institut für Informatik Universität Leipzig quasthoff@informatik.uni-leipzig.de Übersicht Wie funktionieren genetische Algorithmen? Für welche Aufgabenstellungen sind sie (vielleicht) anwendbar? Wo liegen die Schwierigkeiten?

Rita
Télécharger la présentation

Genetische Programmierung

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Genetische Programmierung Dr. Uwe Quasthoff Institut für Informatik Universität Leipzig quasthoff@informatik.uni-leipzig.de

  2. Übersicht • Wie funktionieren genetische Algorithmen? • Für welche Aufgabenstellungen sind sie (vielleicht) anwendbar? • Wo liegen die Schwierigkeiten? • Beispiele aus verschiedenen Bereichen. U. Quasthoff

  3. Entwicklungsbiologe Lebewesen durchlaufen eine Entwicklung • vom Niederen zum Höheren • vom Einfachen zum Komplexen • hin zu erfolgreicherem Handeln Evolutionäre Entwicklung erfolgt ausschließlich durch Fortpflanzung über viele Generationen. Dabei sind in jeder Generation die Besten bevorzugt. Evolotion kann als Lernprozeß verstanden werden: Evolution optimiert die Lösung der Probleme, die durch die Umwelt vorgegeben sind. U. Quasthoff

  4. Vererbung Bei der Fortpflanzung werden Eigenschaften der Eltern auf die Kinder vererbt. Vererbung bedeutet • eine (zufällige) Kombination der Eigenschaften der Eltern • evtl. weitere zufällige Abweichungen durch Mutation. Beobachtung: Es treten praktisch nur sinnvolle Kombinationen und nur sehr wenige destruktive Mutationen auf. Vergleich: Versuchen Sie, ein C-Programm durch eine „zufällige Mutation“ so zu ändern, daß es besser wird! U. Quasthoff

  5. Genetik (Minimalprogramm) Die Erbinformation wird in mehreren Genen gespeichert. Für uns ist ein Gen Platzhalter für ein Zeichen aus einem gegebenen Wertevorrat. Das konkrete Zeichen heißt Allel. Bei der Fortpflanzung werden mittels Cross Over die Gene der Eltern kombiniert, um die Gene eines Kindes zu erhalten Beispiel: Elterngene: abcdefg und ABCDEFG Cross Over nach Position 4 Gene der Kinder: abcdEFG und ABCDefg U. Quasthoff

  6. Erbgut von Lebewesen Erbgut des Menschen 100.000 Gene bilden eine Folge aus 3.000.000.000 Symbolen Mykoplasmen, die einfachsten freilebenden Lebewesen besitzen noch 500-800 Gene. U. Quasthoff

  7. Algorithmische Sicht Gene beschreiben eine Menge von Parametern eines abstrakten Individuums. Es gibt eine Population aus vielen solchen Individuen. Individuen können sich nach einem vorgegebenen Schema vermehren (Cross Over und Mutation). Jedes Individuum kann mittels einer Fitness-Funktion bewertet werden. Diese Funktion benutzt gerade die in den Genen gespeicherten Parameter. Selektion: Individuen können aus der Population entfernt werden (sterben) wegen hohen Alters oder mangelnder Fitness. U. Quasthoff

  8. Problemlösen Für ein Problem soll aus einer großen Menge von möglichen Konfigurationen eine möglichst optimale Lösung gefunden werden. Die möglichen Konfigurationen werden durch Gene beschrieben. Die Fitness beschreibt die „Nähe“ zur optimalen Lösung. Ziel ist es, in einer Population eine optimale Lösung zu züchten. U. Quasthoff

  9. Erstes Beispiel Gesucht sind 5 ganze Zahlen a,b,c,d,e, so daß 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 im Gen 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. U. Quasthoff

  10. Details zu Beispiel 1 • Startpopulation aus 50 Individuen • Fünf Gene, Wertebereich [-50,50] • Vermehrung mit einfachem Cross Over, Mutation 1 mit Wahrscheinlichkeit 1% bei jedem Gen. • Durch zufällige Eltern-Paare werden 50 Kinder erzeugt. • Von den 100 überleben die 50 mit der besten Fitness U. Quasthoff

  11. Bsp. 1: Generationen 0 und 1 U. Quasthoff

  12. Bsp. 1: Generationen 15 und 47 U. Quasthoff

  13. Allgemeiner Genetischer Algorithmus I Vorbereitung • Fitness-Funktion problemangepasst festlegen • Abbruchkriterium festlegen • Genetische Kodierung: Die lernrelevante Parameter des Systems durch Gene eindeutig kodieren. • Genetische Operationen festlegen (Vermehrung, Mutation) • Selektionskriterien festlegen U. Quasthoff

  14. 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 STOP. 6. Gehe zu Schritt 2. U. Quasthoff

  15. Selektionsmethoden Ein Kind wird jeweils von einem Elternteil erzeugt: (+)-Strategie: Die Population besteht aus  Individuen, daraus werden  Kinder erzeugt, die  fittesten ü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 U. Quasthoff

  16. 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? U. Quasthoff

  17. Hill Climbing Beim Hill climbing geht man jeweils einen Schritt in die Richtung des steilsten Anstieges. Abschwächung: Man geht einen Schritt in eine beliebige Richtung bergauf. Der Weg führt zu einem lokalen Maximum, nicht unbedigt zum globalen Maximum. Auswege: • mehrere Bergsteiger mit verschiedenen Startpunkten • Zufälliger größerer Schritt (Mutation) in eine beliebige Richtung, um danach mit Hill climbing auf ein vermutlich anderes, höheres lokales Maximum zu stoßen U. Quasthoff

  18. Fragen zum Hill climbing I Wie weit sollen die zufälligen Schritte sein? • Immer gleich • Zufällig aus einem Bereich • Kleiner werdend • Abhängig vom Individuum (d.h. die mit der besseren Schrittweite überleben) • Läßt sich ein zufälliger Schritt als Rekombination zweier Eltern deuten? Kann man die Entfernung vom Maximum abschätzen • als einzelnes Individuum bzw. • als Beobachter der Population? U. Quasthoff

  19. Fragen zum Hill climbing II Wie ist die richtige Selektionsstrategie? • Selektion nach jedem Schritt (bergauf oder zufällig) oder nur, wenn ein lokales Maximum erreicht ist. • Selektion erst nach größeren Zeiträumen, um das Überwinden von „Durststrecken“ zu ermöglichen. Wie viele Individuen bzw. Generationen werden vermutlich zur Problemlösung benötigt? Teilweise Antworten lassen sich bei Kenntnis gewisser Eigenschaften des Gebirges geben. U. Quasthoff

  20. Extreme Gebirge: Fujiyama-Landschaft Fujiyama-Landschaft: Landschaft mit genau einem lokalen und globalen Maximum. • Hill climbing funktioniert immer, keine Zufallschritte nötig. • Ein Individuum reicht aus. • Durchschnittliche Schrittzahl hängt vom Durchmesser der Landschaft (gemessen in Schritten) ab. Außerdem gibt es unzählige andere mathematische Verfahren, die dieses Maximum finden. Viele Verfahren sind effizienter. U. Quasthoff

  21. Extreme Gebirge: Zufalls-Landschaft Eine Zufalls-Landschaft wird folgendermaßen erzeugt: • Wir betrachten N-stellige Dualzahlen (N Gene, Werte 0/1). Beispiel: N=100 • Ein Schritt erfolgt von einem Punkt zu jeweils einem benachbarten Punkt, der sich in genau einer Ziffer unterscheidet. • Jeder solchen Zahl wird eine Fitness zufällig zugewiesen. Hill climbing: Von einem Punkt gehen wir einen beliebigen Schritt bergauf. Am lokalen Gipfel warten wir. U. Quasthoff

  22. Gipfel der Zufalls-Landschaft Wieviel Gipfel hat die Zufallslandschaft? Jeder Punkt hat N Nachbarn, die Wahrscheinlichkeit für einen Punkt, ein lokales Maximum zu sein, ist also =1/(N+1). Damit gibt es rund 2N/(N+1) Gipfel. Für N=100 sind das 1028 lokale Gipfel Wie lang ist ein typischer Weg bergauf? Antwort: ln(N); für N=100 also rund 4.6. Wieviel Wege führen bergauf? Antwort: Nach jedem Schritt bergauf halbiert sich im Schnitt die Anzahl der Wege nach oben. Für N=100 führen vom niedrigsten Punkt 100 Wege bergauf, vom nächsten noch 50, dann 25 usw. Es wird damit immer aufwendiger, einen Weg nach oben zu finden. U. Quasthoff

  23. Interpretation der Landschaft • In einer zufälligen Landschaft ist von einem Punkt aus keine Voraussage der Höhe der Nachbarpunkte möglich. Dies entspricht keinerlei Redundanz. • Erbinformation enthält relativ viel Redundanz, damit lassen sich Informationen über die Landschaft gewinnen. U. Quasthoff

  24. 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: In welcher Reihenfolge sollen die Elemente angeordnet werden, damit möglichst viele in dieser Reihenfolge verwendet werden können, bis es zu einem Überlauf kommt? Z.B. Packen von Quadern unterschied-licher Größe in eine Kiste. • Allgemeinstes Beispiel: Maximierung einer Funktion, die auf allen Permutationen einer Menge {1, 2,..., n} definiert ist. U. Quasthoff

  25. Crossover von Permutationen 1. Crossover-Bereich für die Eltern A und B festlegen 2. Für Kind 1 den unveränderten Bereich von A kopieren 3. In 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 1 2 3 4 5 6 7 8 Elternteil B 8 6 4 2 7 5 3 1 Crossover xxxxxxx xxxxxxx Kind 1 - 2 3 - 5 6 - - (nach Schritt 2) Kind 2 8 - - 2 - - 3 1 (nach Schritt 2) Kind 1 8 2 3 4 5 6 7 1 Kind 2 8 4 5 2 6 7 3 1 U. Quasthoff

  26. 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. U. Quasthoff

  27. 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. Damit ist die Nachbarschaft in einer Permutation entscheidend, nicht die Reihenfolge. 1. Anwendung: Mutation Drehen eines Teilweges: Wähle einen beliebig langen Teilweg aus und durchlaufe diesen rückwärts. Dabei entsteht eine Änderung nur an zwei Elementarstücken an den Enden des Teilweges. U. Quasthoff

  28. TSP Recombination: Edge-2 Erklärung am Beispiel: Recombiniert werden sollen die Wege Elternteil 1: g d m h b j f i a k e c Elternteil 2: c e k a g b h i j f m d Dazu wird die folgende Kantenliste (Anfang - Enden, doppelt auftretende Enden mit *) erstellt: a - *k,g,i e - *k,*c i - h,j,a,f b - *h,g,j f - *j,m,i j - *f,i,b c - *e,d,g g - a,b,c,d k - *e,*a d - *m,g,c h - *b,i,m m - *d,f,h U. Quasthoff

  29. 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 folendermaß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. U. Quasthoff

  30. Edge-2 im Beispiel Elternteil 1: g d m h b j f i a k e c Elternteil 2: c e k a g b h i j f m d Kantenliste: a - *k,g,i d - *m,g,c g - a,b,c,d j - *f,i,b b - *h,g,j e - *k,*c h - *b,i,m k - *e,*a c - *e,d,g f - *j,m,i i - h,j,a,f m - *d,f,h Zufällige Auswahl: a In Schritt 3 wird zunächs 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 c d m h b g i f j U. Quasthoff

  31. TSP Demo U. Quasthoff

More Related