35
Algorithmen und Datenstrukturen 2 Sommersemester 2012 13. Vorlesung Uwe Quasthoff Universität Leipzig Institut für Informatik [email protected]

Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

Embed Size (px)

Citation preview

Page 1: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

Algorithmen und

Datenstrukturen 2

Sommersemester 2012

13. Vorlesung

Uwe Quasthoff

Universität LeipzigInstitut für Informatik

[email protected]

Page 2: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff Algorithmen und Datenstrukturen 2 2

Genetisches Programmieren

Rückblick: Bisher wurden Parameter optimiert.

Nichts widerspricht der Optimierung von Programmen im Gegensatz zu Daten.

Daten - Programm

Fitnessfunktion - Qualität

Vermehrung - ??

Mutation - ??

Page 3: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff Algorithmen und Datenstrukturen 2 3

Darstellung von Programmen

Für Programme kann man eine LISP- artige Notation wählen. Während in LISP-Files wie üblich alle Programmschritte linear auf die Zeilen geschrieben werden, kann man sie ebenfalls als Baum auffassen.

Dazu spezifiziert man die Menge der Funktionen und Terminalen, z. B.

F = { AND, OR, NOT, XOR },

T = { D0, D1, D2, . . . }.

ACHTUNG ! Die Menge F muss abgeschlossen sein, d. h. alle Ein- und Ausgänge haben denselben Typ ( arithmetisch, boolsch, . . . ). Außerdem sollte das Problem prinzipiell mit ( F , T ) lösbar sein.

Page 4: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff Algorithmen und Datenstrukturen 2 4

Die Ausgangspopulation

Zuerst initialisiert man eine Population von zufällig generierten Programmbäumen.

1. Wahl des zu ergänzenden Knotens,

2. Wahl der Funktion / Terminale,

3. Einfügen.

Damit dabei nicht zu komplizierte Programme entstehen, kann man die Entwicklung durch Restriktionen steuern. Zudem entfernt man doppelte Individuen.

Die Programme sind also dem Problem in Struktur und Tiefe in keiner Weise angepasst.

Page 5: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff Algorithmen und Datenstrukturen 2 5

Genetische Operationen: Crossover

Crossover ist komplizierter als gewöhnlich und nutzt die Abgeschlossenheit der Funktionenmenge aus. Das Programm wird als Baum dargestellt. Dann werden mit Copy und Paste Teilbäume vertauscht.

Da die Baumeigenschaft erhalten bleibt, liegen auch automatisch syntaktisch korrekte Programme vor.

Page 6: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff Algorithmen und Datenstrukturen 2 6

Programmbäume

OR

ANDNOT

D1D0D1

4

3

2

1

5 6

OR

OR AND

NOTD1 NOT NOT

D1D0 D0

73 4

2

1

6

5 10

9

8

Page 7: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff Algorithmen und Datenstrukturen 2 7

Austausch der markierten Teilbereiche

OR

AND NOT

D1D0 D1

OR

OR

NOTD1

D0

AND

NOT NOT

D1D0

Page 8: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff Algorithmen und Datenstrukturen 2 8

Programmierung von Ameisen

Ameisen sind abstrakte Lebewesen,

• die auf einem quadratischen Gitter leben,

• sich schrittweise darauf in eine Richtung ihrer Wahl (oder auch zufällig) bewegen können und

• über einfache Sensoren verfügen, z.B. Nahrung erkennen.

Mit solchen Funktionen ausgestattet soll die Ameise Aufgabenstellungen lösen. D.h. es soll mittels genetischer Programmierung ein Programm entstehen, welches die Aufgabenstellung löst.

Page 9: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff Algorithmen und Datenstrukturen 2 9

Aufgabe: Weg verfolgen

Auf einem 32x32-Feld (zum Torus gefaltet) liegt Nahrung (schwarz) auf einem Weg aus. Die Folge von Nahrungsstücken hat Unterbrechungen (grau) der Länge 1, 2 oder 3, auch an Ecken. Die Ameise soll den Weg verfolgen und möglichst viele Nahrungsstücke aufnehmen. Gesamtzeit: 400 Programmschritte.

|Start

Page 10: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff Algorithmen und Datenstrukturen 2 10

Funktionen der Ameisen

Eine Ameise ist charakterisiert durch ihre Position und die Richtung ihres Kopfes.

• RIGHT: Die Ameise dreht sich auf der Stelle nach rechts

• LEFT: Die Ameise dreht sich auf der Stelle nach links

• MOVE: Die Ameise läuft einen Schritt vorwärts. Betritt sie ein Feld mit Nahrung, wird diese automatisch gefressen.

• IF-FOOD-HERE: Steuerung für eine bedingte Anweisung. Sie wird ausgeführt, falls das Feld in Blickrichtung unmittelbar vor der Ameise Nahrung enthält.

• Zusätzlich: PROGN begrenzt Blöcke von Anweisungen beliebiger Länge (vgl. LISP-Funktion PROGN).

Page 11: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff Algorithmen und Datenstrukturen 2 11

Entwicklung

Initialisierung: 500 zufällige Programme

Fitness: Anzahl der gefressenen Nahrungsstücke binnen 400 Programmschritten

Es entstehen Programme mit typischem Verhalten und (zunächst) geringer Fitness:

(PROGN (MOVE) (MOVE)) läuft immer geradeaus. Fitness 3 von 90.

Übungsaufgabe: Wie bewegt sich der folgende „Quilter“?

(PROGN (RIGHT)

(PROGN (MOVE) (MOVE) (MOVE))

(PROGN (LEFT) (MOVE)))

Page 12: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff Algorithmen und Datenstrukturen 2 12

Der „Avoider“

Der Avoider beobachtet die Nahrungsbrocken genau. Er läuft neben dem Weg entlang und nutzt die erste Lücke, um hindurchzuschlüpfen und heimzulaufen.

(IF-FOOD-HERE (RIGHT)

(IF-FOOD-HERE (RIGHT)

(PROGN (MOVE)

(LEFT))))

X XX X X X

X XX XX X XX XX X X X

X X X X X

Page 13: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff Algorithmen und Datenstrukturen 2 13

Erfolgreiches Programm

Das folgende Programm leert erfolgreich den ganzen Weg:(IF-FOOD-HERE (MOVE)

(PROGN (LEFT)

(PROGN (IF-FOOD-HERE (MOVE)

(RIGHT))

(PROGN (RIGHT)

(PROGN (LEFT)

(RIGHT))))

(PROGN (IF-FOOD-HERE (MOVE)

(LEFT))

(MOVE))))

Page 14: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff Algorithmen und Datenstrukturen 2 14

Abhängigkeit von der Populationsgröße

02010 30 40 50

40

60

80

20

Artificial Ant -- Santa Fe Trail

Pop = 2000

Pop = 1000

Pop = 500

Generation

100

Page 15: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff Algorithmen und Datenstrukturen 2 15

Emergentes Verhalten

Emergentes Verhalten eines Systems ist das scheinbar sinnvolle Zusammenwirken von Komponenten (hier: Individuen), so daß die Fähigkeiten des Systems weit über die Fähigkeiten der Komponenten hinausgehen.

Dieses Zusammenwirken wird dabei nicht durch ein hierarchisches System organisiert, sondern entsteht „von selbst“ durch die Interaktion der Komponenten.

Page 16: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff Algorithmen und Datenstrukturen 2 16

Emergentes Verhalten eines Ameisenvolkes

Aufgabenstellung: Das Ameisenvolk soll Futter zu seinem Bau transportieren. Da möglicherweise viel Futter an einer Stelle zu finden ist, soll anderen Ameisen die Orientierung erleichtert werden, indem Duftmarken (Pheromone) gesetzt werden.

Die Welt besteht aus

• 32x32 - Feld

• 144 Portionen Futter in zwei Blöcken 3x3 Grundfläche, Höhe 8

• 20 Ameisen, beschrieben durch Position und Blickrichtung (8 Möglichkeiten)

Page 17: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff Algorithmen und Datenstrukturen 2 17

Funktionen der Ameisen I

• MOVE-RANDOM: Zunächst Blickrichtung zufällig ändern, dann 2 Schritte in diese Richtung

• MOVE-TO-NEST: Ein Schritt in Richtung Bau.

• PICK-FOOD: hebt Nahrung (falls vorhanden) auf, falls nicht schon welche transportiert wird

• DROP-PHEROMONE: Setzt eine Duftmarke, falls Nahrung transportiert wird. Die Duftmarke ist als Wolke im Bereich der Größe 3x3 wahrnehmbar. Sie verschwindet nach einiger Zeit.

• IF-FOOD-HERE

• IF-CARRYING-FOOD

Page 18: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff Algorithmen und Datenstrukturen 2 18

Funktionen der Ameisen II

• MOVE-TO-ADJACENT-FOOD-ELSE: Falls Nahrung in einer oder mehreren der Nachbarzellen, so bewegt sich die Ameise zu demjenigen Feld mit Nahrung, für das die geringste Richtungsänderung nötig ist. Sonst ELSE-Zweig verfolgen.

• MOVE-TO-ADJACENT-PHEROMONE-ELSE: analog

• PROGN: wie immer

Page 19: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff Algorithmen und Datenstrukturen 2 19

Leben des Ameisenvolkes

Alle Ameisen verfügen über die gleiche Funktion. In jedem Zeitschritt wird diese für jede Ameise ausgeführt.

Zu Beginn befinden sich alle Ameisen im Nest mit zufälliger Blickrichtung.

Der Versuch läuft über eine bestimmte, hinreichend große Zahl von Schritten.

Fitness: Wieviel der 144 Futterstücke werden nach Hause gebracht?

Zufällig erzeugte Programme: 93% haben Fitness 0, weitere 3% haben Fitness 1 (von 144)

Page 20: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff Algorithmen und Datenstrukturen 2 20

Das erfolgreiche Programm

(PROGN (PICK-UP)(IF_CARRYING_FOOD

(PROGN (MOVE-TO-ADJACENT-PHEROMONE-ELSE(MOVE-TO-ADJACENT-FOOD-ELSE (PICK-UP)))

(MOVE-TO-ADJACENT-FOOD-ELSE (PICK-UP))(MOVE-TO-NEST)(DROP-PHEROMONE)(MOVE-TO-NEST)(DROP-PHEROMONE))

(MOVE-TO-ADJACENT-FOOD-ELSE(IF-FOOD-HERE(PICK-UP)(MOVE-TO-ADJACENT-PHEROMONE-ELSE

(MOVE-RANDOM))))))

Page 21: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff Algorithmen und Datenstrukturen 2 21

Das Leben zur Zeit 3

Die Ameisen haben den Bau verlassen und irren herum.

Page 22: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff Algorithmen und Datenstrukturen 2 22

Das Leben zur Zeit 12

Einige Ameisen haben Futter gefunden und setzen Duftmarken um die Fundstelle.

Page 23: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff Algorithmen und Datenstrukturen 2 23

Das Leben zur Zeit 15

Die ersten zwei Portionen Futter sind heim gebracht, es gibt eine Duftspur, die den Weg anzeigt.

Page 24: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff Algorithmen und Datenstrukturen 2 24

Das Leben zur Zeit 129

118 der 144 Portionen Futter sind heim gebracht, der obere Duftweg zerfällt, obwohl dort noch Futter ist.

Der linke Duftweg bleibt intakt.

Page 25: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff Algorithmen und Datenstrukturen 2 25

Das Leben zur Zeit 152

Der linke Stapel ist abgeräumt, der Duftweg zum oberen Stapel wieder aufgebaut. Die verbliebenen Portionen werden sicher nach Hause gebracht.

Page 26: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff Algorithmen und Datenstrukturen 2 26

Food Collection Genetic Program Parameters I

Parameter Default Value

POPULATION_SIZE 1000

The number of ant programs in the population. This is the number of random solutions that will be creared when the GP starts.

TOURNAMENT_SIZE 4

The number of ant programs from the population that are selected for the tournament for crossover. The best two solutions from the tournament are used in the crossover, and replace the worst two solutions in the tournament.

FOOD_LEFT_WEIGHT 10000000

How much each piece of food not returned to the nest affects the fitness of the ant program.

FOOD_UNFOUND_WEIGHT 100000

How much each piece of food not found affects the fitness of the ant program.

NODE_WEIGHT 10000

How much the size of the ant program affects the fitness of the ant program.

Page 27: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff Algorithmen und Datenstrukturen 2 27

Food Collection Genetic Program Parameters II

NODE_GROUP 50

Used to group together ant programs with similar sizes, so that NODE_WEIGHT has a less affect on fitness. Thus, all other factors being equal, a solution with 1 node and a solution with 49 nodes will have the same fitness, while a solution with 50 nodes will be worse.

TIME_WEIGHT 1

How much the time taken to move all of the food to the nest affects the fitness of the ant program.

LEAF_ODDS 9

The chance that the next node will be a leaf node, when creating the initial population. The chance the node will be a leaf node is LEAF_ODDS / (LEAF_ODDS + NON_LEAF_ODDS)

NON_LEAF_ODDS 6

The chance that the next node will be a non-leaf node, when creating the initial population. The chance the node will be a non-leaf node is NON_LEAF_ODDS / (LEAF_ODDS + NON_LEAF_ODDS)

Page 28: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff Algorithmen und Datenstrukturen 2 28

Food Collection Genetic Program Parameters IIIMUTATE_ODDS 100

The odds that the new ant programs created by crossover will be mutated.PERCENT_GREEDY_MUTATE 80

The odds that the mutation will be greedy (fitness must increase with mutation). MAX_TURNS 1000

The maximum number of turns the ants are given to find all of the food. Each move forward counts as a turn.

NUM_ANTS 15The number of ants that execute the ant program in the environment.

GOAL_FITNESS 0The fitness that must be achieved for the genetic program to end.

WAIT_ODDS 0The chance that an ant waiting for help to pick up food will leave instead.

AUTO_FOOD_DROP 1Boolean for automatically dropping food when the ant is over the nest.

Page 29: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff Algorithmen und Datenstrukturen 2 29

Food Collection Genetic Program Parameters IV

PHEROMONE_STRENGTH 300The amount of pheromone released on a RELEASE PHEROMONE command.

PHEROMONE_SPREAD 50The amount of pheromone that is spread to adjacent squares each iteration.

POP_SEED 0The random number generator seed when creating the initial population.

INTERP_SEED 0The random number generator seed when executing the ant program. 0 = no new seed.

Page 30: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff 30

Genetischer Algorithmus oder Programm?

Manchmal beides möglich. Beispiel: Sortieren. N Gegenstände sollen der Größe nach sortiert werden. Fitneß-Funktion: Test für mehrere (typische) Ausgangssituationen. Wieviel Objekte sind falsch einsortiert?

1. genetische Lösung: Datengetrieben analog TSP. Eine gegebene Reihenfolge wird schrittweise verändert, bis sich nichts mehr verbessern läßt.

2. genetische Lösung: Programmentwicklung analog zu Ameisen. Genetische Entwicklung eines Programms aus elementaren Listen-Operationen, welches möglichst gut sortiert.

Page 31: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff 31

GA und Teile -und -Herrsche

Eigenschaften von Teile-und-Herrsche:• Probleme großen Umfangs können gelöst werden

– Zunächst wird das Problem (rekursiv) in Teileprobleme zerlegt

– Jedes Teilproblem wird einzeln gelöst– Die Teillösungen werden zusammengefügt

• Das in n Teile zerlegte Gesamtproblem ist wesentlich schneller zu bearbeiten als das Gesamtproblem ohne Zerlegung.

• Teile-und-Herrsche funktioniert, wenn die Lösungen der Teilprobleme auch lokale Lösungen des Gesamtproblems sind, damit das zusammenfügen zur Gesamtlösung trivial ist.

Page 32: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff 32

Analoge Formulierung für GA

• Das zu optimierende System (Gen) wird durch eine Liste vieler Einzelzustände beschrieben.

• Individuen mit erfolgreicher Gesamtliste werden bevorzugt.

• Beim Crossover werden einzelne Teile der Liste weitergegeben.

• D.h., in der Population werden „erfolgreiche“ Teile bevorzugt.

• Durch Rekombination entstehen möglicherweise nahezu optimale Kinder aus Eltern mit entsprechend optimalen Teilen.

Page 33: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff 33

Damit es so schön klappt: Lokalität

Notwendig sind:• Gleichzeitig zu optimierende Parameter müssen auch lokal nahe beieinander

stehen, sonst wird ein gutes Ergebnis bei Crossover wieder „zerrissen“.• Dies ist genau das Schema-Konzept: „Lokale“ Maximierbarkeit.• Kausalität im Genom soll kurzreichweitig sein.• Dies ist „Rekombinierbarkeit“: Übertragung guter Eigenschaften von Eltern auf

das Kind.

Wenn es nicht möglich sein sollte, diese Eigenschaften in einem strengen Sinn zu realisieren, sollte man sie doch wenigstens teilweise zu realisieren versuchen.

Nur so kann die enorme Effektivität von Teile-und-Herrsche gerettet werden.

Page 34: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff 34

Wie lange dauert die Evolution?

In unseren Beispielen: Ca. 102 Generationen mit je ca. 102 Individuen. Also insgesamt 104 „Versuche“, das Optimum zu finden.

Das ist

• Verschwindend klein verglichen mit biologischen Zahlen

• Nahe am Maximum dessen, was technisch realisierbar ist.

Deshalb scheint genetische Programmierung momentan ungeeignet für

• Programme mit komplexer Struktur (da jeder Zweig einzeln optimiert werden muss)

• Programme mit Dialogen (da niemand einen Dialog 104-mal trainieren möchte.

Page 35: Algorithmen und Datenstrukturen 2 - asv.informatik.uni ...asv.informatik.uni-leipzig.de/uploads/document/file_link/501/ADS213.pdf · Dieses Zusammenwirken wird dabei nicht durch ein

U. Quasthoff Algorithmen und Datenstrukturen 2 35

Auf Wiedersehenzur Prüfungsklausur für ADS

am 25. Juli 201214:00 – 15:00 Hörsaal 9 im Hörsaalgebäude