24
Übung Organic Computing – Genetische Algorithmen Sabine Helwig 1 Übung zu Organic Computing „Survival of the Fittest“ Optimierung mittels Genetischer Algorithmen Sabine Helwig Lehrstuhl für Informatik 12 (Hardware-Software-Co-Design) Universität Erlangen-Nürnberg [email protected]

„Survival of the Fittest“ Optimierung mittels Genetischer ... · Optimierung durch „Survival of the Fittest“ Ziel der heutigen Übung: Kennenlernen eines genetischen Algorithmus

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: „Survival of the Fittest“ Optimierung mittels Genetischer ... · Optimierung durch „Survival of the Fittest“ Ziel der heutigen Übung: Kennenlernen eines genetischen Algorithmus

Übung Organic Computing – Genetische AlgorithmenSabine Helwig 1

Übung zu Organic Computing

„Survival of the Fittest“

Optimierung mittels Genetischer Algorithmen

Sabine Helwig

Lehrstuhl für Informatik 12 (Hardware-Software-Co-Design)

Universität Erlangen-Nü[email protected]

Page 2: „Survival of the Fittest“ Optimierung mittels Genetischer ... · Optimierung durch „Survival of the Fittest“ Ziel der heutigen Übung: Kennenlernen eines genetischen Algorithmus

Übung Organic Computing – Genetische AlgorithmenSabine Helwig 2

Naturinspirierte Optimierungsverfahren

Wir haben bereits kennengelernt:

Partikelschwarmoptimierung Ameisenalgorithmus

Beide Verfahren optimieren durch Kooperation der Teilnehmer

Weiteres naturinspiriertes Optimierungsverfahren: Genetische Algorithmen:

Nachahmung des Evolutionsprozesses in der Natur Optimierung durch „Survival of the Fittest“

Ziel der heutigen Übung:Kennenlernen eines genetischen Algorithmus

anhand des Traveling Salesperson Problem (TSP)

Page 3: „Survival of the Fittest“ Optimierung mittels Genetischer ... · Optimierung durch „Survival of the Fittest“ Ziel der heutigen Übung: Kennenlernen eines genetischen Algorithmus

Übung Organic Computing – Genetische AlgorithmenSabine Helwig 3

Gegeben ist ein vollständig verbundener Graph, jede Kante hat ein Gewicht

Gesucht ist eine kürzeste Rundreise auf dem Graphen, die jeden Knoten genau einmal besucht

Codierung für den Genetischen Algorithmus (Genotyp):Jede Rundreise wird als Permutation repräsentiert, die dieBesuchsreihenfolge der Knoten angibt, z.B. (1, 3, 4, 2).

Traveling Salesperson Problem (TSP)

2

4

1 3

22

2

104

1

Page 4: „Survival of the Fittest“ Optimierung mittels Genetischer ... · Optimierung durch „Survival of the Fittest“ Ziel der heutigen Übung: Kennenlernen eines genetischen Algorithmus

Übung Organic Computing – Genetische AlgorithmenSabine Helwig 4

1. Erstellung und Bewertung der Initialpopulation

2. Solange bis maximale Anzahl an Generationen erreicht: Selektion 1: Elternselektion Crossover (Rekombination): Generieren der Nachkommen Mutation Bewertung der Nachkommen Selektion 2: Welche Individuen aus der Menge

bilden die nächste Generation?

Der evolutionäre Zyklus

{Alte Population}∪{Nachkommen}

Page 5: „Survival of the Fittest“ Optimierung mittels Genetischer ... · Optimierung durch „Survival of the Fittest“ Ziel der heutigen Übung: Kennenlernen eines genetischen Algorithmus

Übung Organic Computing – Genetische AlgorithmenSabine Helwig 5

Selektion

Nur die besten Individuen sollen für das Crossover ausgewählt werden (Selektion 1)

Nur die besten Individuen sollen für die nächste Generation ausgewählt werden (Selektion 2)

Page 6: „Survival of the Fittest“ Optimierung mittels Genetischer ... · Optimierung durch „Survival of the Fittest“ Ziel der heutigen Übung: Kennenlernen eines genetischen Algorithmus

Übung Organic Computing – Genetische AlgorithmenSabine Helwig 6

Selektion

Nur die besten Individuen sollen für das Crossover ausgewählt werden (Selektion 1)

Nur die besten Individuen sollen für die nächste Generation ausgewählt werden (Selektion 2)

Beispiele für Selektionsverfahren:

Turnierselektion

Rangbasierte Selektion

Zusätzlich kann Elitismus eingesetzt werden: Das beste Individuumwird automatisch in die nächste Generation übernommen.

Page 7: „Survival of the Fittest“ Optimierung mittels Genetischer ... · Optimierung durch „Survival of the Fittest“ Ziel der heutigen Übung: Kennenlernen eines genetischen Algorithmus

Übung Organic Computing – Genetische AlgorithmenSabine Helwig 7

SelektionTurnierselektion

Ziehe zufällig zwei oder mehr Individuen aus der Population. Der Bessere gewinnt (evtl. auch prohabilistisch, d.h. der

Bessere gewinnt mit höherer Wahrscheinlichkeit).

Page 8: „Survival of the Fittest“ Optimierung mittels Genetischer ... · Optimierung durch „Survival of the Fittest“ Ziel der heutigen Übung: Kennenlernen eines genetischen Algorithmus

Übung Organic Computing – Genetische AlgorithmenSabine Helwig 8

SelektionTurnierselektion

Ziehe zufällig zwei oder mehr Individuen aus der Population. Der Bessere gewinnt (evtl. auch prohabilistisch, d.h. der

Bessere gewinnt mit höherer Wahrscheinlichkeit).

Rangbasierte Selektion Erstelle eine Rangliste der Individuen bzgl. ihrer Güte

Sei I1 das beste und I

N das schlechteste Individuum

Wähle Ik mit Wahrscheinlichkeit

Auch andere Wahrscheinlichkeitsverteilungen möglich Beispiel N=10:

Pr [ I k ] =2N

⋅ 1− k−1N−1

Pr [ I1 ]=945

, Pr [ I 2 ]=845

, Pr [ I 3 ]=745

, , Pr [ I N−1 ]=145

, Pr [ I N ]=0

Page 9: „Survival of the Fittest“ Optimierung mittels Genetischer ... · Optimierung durch „Survival of the Fittest“ Ziel der heutigen Übung: Kennenlernen eines genetischen Algorithmus

Übung Organic Computing – Genetische AlgorithmenSabine Helwig 9

Crossover und Mutation Verantwortlich für das Generieren neuer Lösungen Verschiedene Rollen:

Crossover: Die neuen Individuen sollen möglichst viele Eigenschaften der Eltern „erben“

Mutation: Geringfügige Modifikation eines Individuums

Da wir das TSP lösen wollen, müssen beide Operatoren auf Permutationen arbeiten:

Crossover

Mutation

Permutation 1 (Vater)

Permutation 2 (Mutter)Neue Permutation(en)

PermutationGeringfügigmodifiziertePermutation

Page 10: „Survival of the Fittest“ Optimierung mittels Genetischer ... · Optimierung durch „Survival of the Fittest“ Ziel der heutigen Übung: Kennenlernen eines genetischen Algorithmus

Übung Organic Computing – Genetische AlgorithmenSabine Helwig 10

MutationSwap mutation operator Wähle zufällig zwei Zahlen der Permutation und vertausche

sie:

Auswirkungen auf die Rundreise (Phänotyp):

1 2 3 4 5 6 7 8

1 2 7 4 5 6 3 8

1 2 3 4

5678

1 2 3 4

5678

Page 11: „Survival of the Fittest“ Optimierung mittels Genetischer ... · Optimierung durch „Survival of the Fittest“ Ziel der heutigen Übung: Kennenlernen eines genetischen Algorithmus

Übung Organic Computing – Genetische AlgorithmenSabine Helwig 11

Inversion mutation operator Wähle zufällig zwei Zahlen der Permutation und spiegle die

dazwischenliegende Sequenz:

Auswirkungen auf die Rundreise (Phänotyp):

Geringere Auswirkungen als Swap mutation operator.

Mutation

1 2 3 4 5 6 7 8

1 2 7 6 5 4 3 8

1 2 3 4

5678

1 2 3 4

5678

Page 12: „Survival of the Fittest“ Optimierung mittels Genetischer ... · Optimierung durch „Survival of the Fittest“ Ziel der heutigen Übung: Kennenlernen eines genetischen Algorithmus

Übung Organic Computing – Genetische AlgorithmenSabine Helwig 12

CrossoverOne-point crossover Wähle zufällig den Crossover-Punkt Behalte für jeden Elter den Teil der Permutation bis zum

Crossover-Punkt. Die Zahlen nach dem Crossover-Punkt werden so sortiert, wie sie im anderen Elternteil vorliegen.

1 2 3 4 5 6 7 8

7 1 2 6 3 8 5 4

Vater:

Mutter:

Crossover-Punkt

1 2 3 4 5 7 6 8

7 1 2 6 3 4 5 8

Kind 1:

Kind 2:

Page 13: „Survival of the Fittest“ Optimierung mittels Genetischer ... · Optimierung durch „Survival of the Fittest“ Ziel der heutigen Übung: Kennenlernen eines genetischen Algorithmus

Übung Organic Computing – Genetische AlgorithmenSabine Helwig 13

CrossoverPartially matched crossover (PMX) Wähle zufällig zwei Crossover-Punkte, und tausche die

dazwischenliegende Teilpermutation

Fülle nun die restlichen Positionen mit Zahlen aus dem entsprechenden Elternteil auf. Würde dadurch eine Zahl doppelt vorkommen, betrachte die Teilpermutation zwischen den Crossover-Punkten als Zuordnung und verwende zugeordnete Zahl. In unserem Beispiel: 2 → 3, 6 → 4, und 3 → 5

1 2 3 4 5 6 7 8

7 1 2 6 3 8 5 4

Vater:

Mutter:

2 6 3

3 4 5

Kind 1:

Kind 2:

Page 14: „Survival of the Fittest“ Optimierung mittels Genetischer ... · Optimierung durch „Survival of the Fittest“ Ziel der heutigen Übung: Kennenlernen eines genetischen Algorithmus

Übung Organic Computing – Genetische AlgorithmenSabine Helwig 14

CrossoverPartially matched crossover (PMX)

1 2 3 4 5 6 7 8

7 1 2 6 3 8 5 4

Vater:

Mutter:

2 6 3

3 4 5

Kind 1:

Kind 2:

1 5 2 6 3 4 7 8

7 1 3 4 5 8 2 6

Kind 1:

Kind 2:

Page 15: „Survival of the Fittest“ Optimierung mittels Genetischer ... · Optimierung durch „Survival of the Fittest“ Ziel der heutigen Übung: Kennenlernen eines genetischen Algorithmus

Übung Organic Computing – Genetische AlgorithmenSabine Helwig 15

CrossoverEdge recombination crossover (ERX) Ziel: Möglichst viele Kanten der Nachkommen sollen auch in

einem Elternteil vorgekommen sein. Dazu wird die Nachbarschaftsinformation jedes Knotens

extrahiert:

1 2 3 4 5 6

4 1 2 6 3 5

Vater:

Mutter:

Nachbarschaften:

1: 6, 2, 42: 1, 3, 63: 2, 4, 5, 64: 3, 5, 15: 4, 6, 36: 5, 1, 2, 3

Page 16: „Survival of the Fittest“ Optimierung mittels Genetischer ... · Optimierung durch „Survival of the Fittest“ Ziel der heutigen Übung: Kennenlernen eines genetischen Algorithmus

Übung Organic Computing – Genetische AlgorithmenSabine Helwig 16

CrossoverEdge recombination crossover (ERX)

Starte mit dem Anfangswert eines zufälligen Elternteils Solange das Kind nicht fertig ist:

Wähle als Nachfolger den Nachbar mit der kürzesten Nachbarliste (zufällige Wahl falls mehrere solche existieren)

Gibt es keinen Nachbarn: Wähle zufällig freie Zahl Lösche gewählte Zahl aus allen Nachbarschaften

1 2 3 4 5 6

4 1 2 6 3 5

Vater:

Mutter:

Nachbarschaften:

1: 6, 2, 42: 1, 3, 63: 2, 4, 5, 64: 3, 5, 15: 4, 6, 36: 5, 1, 2, 3

Page 17: „Survival of the Fittest“ Optimierung mittels Genetischer ... · Optimierung durch „Survival of the Fittest“ Ziel der heutigen Übung: Kennenlernen eines genetischen Algorithmus

Übung Organic Computing – Genetische AlgorithmenSabine Helwig 17

Nachbarschaften:

1: 6, 2, 42: 1, 3, 63: 2, 4, 5, 64: 3, 5, 15: 4, 6, 36: 5, 1, 2, 3

CrossoverEdge recombination crossover (ERX)

Starte mit dem Anfangswert eines zufälligen Elternteils Solange das Kind nicht fertig ist:

Wähle als Nachfolger den Nachbar mit der kürzesten Nachbarliste (zufällige Wahl falls mehrere solche existieren)

Gibt es keinen Nachbarn: Wähle zufällig freie Zahl Lösche gewählten Knoten aus allen Nachbarschaften

1 2 3 4 5 6

4 1 2 6 3 5

Vater:

Mutter:

1

4: 3, 5, 1Kind:

6: 5, 1, 2, 3

2: 1, 3, 6

Page 18: „Survival of the Fittest“ Optimierung mittels Genetischer ... · Optimierung durch „Survival of the Fittest“ Ziel der heutigen Übung: Kennenlernen eines genetischen Algorithmus

Übung Organic Computing – Genetische AlgorithmenSabine Helwig 18

CrossoverEdge recombination crossover (ERX)

Starte mit dem Anfangswert eines zufälligen Elternteils Solange das Kind nicht fertig ist:

Wähle als Nachfolger den Nachbar mit der kürzesten Nachbarliste (zufällige Wahl falls mehrere solche existieren)

Gibt es keinen Nachbarn: Wähle zufällig freie Zahl Lösche gewählten Knoten aus allen Nachbarschaften

1 2 3 4 5 6

4 1 2 6 3 5

Vater:

Mutter:

1 4

Nachbarschaften:

1: 6, 2, 42: 1, 3, 63: 2, 4, 5, 64: 3, 5, 15: 4, 6, 36: 5, 1, 2, 3

Kind:

Page 19: „Survival of the Fittest“ Optimierung mittels Genetischer ... · Optimierung durch „Survival of the Fittest“ Ziel der heutigen Übung: Kennenlernen eines genetischen Algorithmus

Übung Organic Computing – Genetische AlgorithmenSabine Helwig 19

CrossoverEdge recombination crossover (ERX)

Starte mit dem Anfangswert eines zufälligen Elternteils Solange das Kind nicht fertig ist:

Wähle als Nachfolger den Nachbar mit der kürzesten Nachbarliste (zufällige Wahl falls mehrere solche existieren)

Gibt es keinen Nachbarn: Wähle zufällig freie Zahl Lösche gewählten Knoten aus allen Nachbarschaften

1 2 3 4 5 6

4 1 2 6 3 5

Vater:

Mutter:

1 4

Nachbarschaften:

2: 3, 63: 2, 4, 5, 64: 3, 55: 4, 6, 36: 5, 2, 3

Kind: 5: 4, 6, 3

3: 2, 4, 5, 6

Page 20: „Survival of the Fittest“ Optimierung mittels Genetischer ... · Optimierung durch „Survival of the Fittest“ Ziel der heutigen Übung: Kennenlernen eines genetischen Algorithmus

Übung Organic Computing – Genetische AlgorithmenSabine Helwig 20

CrossoverEdge recombination crossover (ERX)

Starte mit dem Anfangswert eines zufälligen Elternteils Solange das Kind nicht fertig ist:

Wähle als Nachfolger den Nachbar mit der kürzesten Nachbarliste (zufällige Wahl falls mehrere solche existieren)

Gibt es keinen Nachbarn: Wähle zufällig freie Zahl Lösche gewählten Knoten aus allen Nachbarschaften

1 2 3 4 5 6

4 1 2 6 3 5

Vater:

Mutter:

1 4 5

Nachbarschaften:

2: 3, 63: 2, 5, 6

5: 6, 36: 5, 2, 3

Kind:

Page 21: „Survival of the Fittest“ Optimierung mittels Genetischer ... · Optimierung durch „Survival of the Fittest“ Ziel der heutigen Übung: Kennenlernen eines genetischen Algorithmus

Übung Organic Computing – Genetische AlgorithmenSabine Helwig 21

CrossoverEdge recombination crossover (ERX)

Starte mit dem Anfangswert eines zufälligen Elternteils Solange das Kind nicht fertig ist:

Wähle als Nachfolger den Nachbar mit der kürzesten Nachbarliste (zufällige Wahl falls mehrere solche existieren)

Gibt es keinen Nachbarn: Wähle zufällig freie Zahl Lösche gewählten Knoten aus allen Nachbarschaften

1 2 3 4 5 6

4 1 2 6 3 5

Vater:

Mutter:

1 4 5 3

Nachbarschaften:

2: 3, 63: 2, 6

6: 2, 3

Kind:

Page 22: „Survival of the Fittest“ Optimierung mittels Genetischer ... · Optimierung durch „Survival of the Fittest“ Ziel der heutigen Übung: Kennenlernen eines genetischen Algorithmus

Übung Organic Computing – Genetische AlgorithmenSabine Helwig 22

CrossoverEdge recombination crossover (ERX)

Starte mit dem Anfangswert eines zufälligen Elternteils Solange das Kind nicht fertig ist:

Wähle als Nachfolger den Nachbar mit der kürzesten Nachbarliste (zufällige Wahl falls mehrere solche existieren)

Gibt es keinen Nachbarn: Wähle zufällig freie Zahl Lösche gewählten Knoten aus allen Nachbarschaften

1 2 3 4 5 6

4 1 2 6 3 5

Vater:

Mutter:

1 4 5 3 2 6

Kind:

Page 23: „Survival of the Fittest“ Optimierung mittels Genetischer ... · Optimierung durch „Survival of the Fittest“ Ziel der heutigen Übung: Kennenlernen eines genetischen Algorithmus

Übung Organic Computing – Genetische AlgorithmenSabine Helwig 23

Wie könnte eine konkrete Implementierung für das TSP aussehen?

1. Erstelle 50 zufällige Permutationen (Initialpopulation) undbewerte diese.

2. Wiederhole 500-mal: Selektion 1: Wähle 50 Elternpaare mittels Turnierselektion Crossover: Erstelle 50 Kinder mittels ERX Mutation: Führe auf jedem Kind mit einer Wahrscheinlichkeit von

1% Inversion mutation aus. Bewerte die Nachkommen Selektion 2: Wähle aus den nun 100 vorhandenen Individuen 50

verschiedene Individuen mittels rangbasierter Selektion für die nächste Generation aus. Übernehme auf jeden Fall das beste Individuum (Elitismus).

Der evolutionäre Zyklus

Page 24: „Survival of the Fittest“ Optimierung mittels Genetischer ... · Optimierung durch „Survival of the Fittest“ Ziel der heutigen Übung: Kennenlernen eines genetischen Algorithmus

Übung Organic Computing – Genetische AlgorithmenSabine Helwig 24

Literatur David E. Goldberg: Genetic Algorithms in Search,

Optimization & Machine Learning. Addison-Wesley Publishing Company, 1989

Karsten Weicker: Evolutionäre Algorithmen. Teubner GmbH, 2002