genetische programmierung l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Genetische Programmierung PowerPoint Presentation
Download Presentation
Genetische Programmierung

Loading in 2 Seconds...

play fullscreen
1 / 31

Genetische Programmierung - PowerPoint PPT Presentation


  • 473 Views
  • Uploaded on

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?

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Genetische Programmierung' - Rita


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
genetische programmierung

Genetische Programmierung

Dr. Uwe Quasthoff

Institut für Informatik

Universität Leipzig

quasthoff@informatik.uni-leipzig.de

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

U. Quasthoff

entwicklungsbiologe
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

vererbung
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

genetik minimalprogramm
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

erbgut von lebewesen
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

algorithmische sicht
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

probleml sen
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

erstes beispiel
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

details zu beispiel 1
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

allgemeiner genetischer algorithmus i
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

allgemeiner genetischer algorithmus ii
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

selektionsmethoden
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

fitness maximieren
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

hill climbing
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

fragen zum hill climbing i
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

fragen zum hill climbing ii
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

extreme gebirge fujiyama landschaft
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

extreme gebirge zufalls landschaft
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

gipfel der zufalls landschaft
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

interpretation der landschaft
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

ga f r reihenfolge probleme
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

crossover von permutationen
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

crossover und mutation
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

das traveling salesman problem tsp
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

tsp recombination edge 2
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

edge 2 algorithmus
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

edge 2 im beispiel
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

tsp demo
TSP Demo

U. Quasthoff