Evolutionäres Programmieren



Ähnliche Dokumente
Adaptive Systeme. Prof. Dr.-Ing. Heinz-Georg Fehn Prof. Dr. rer. nat. Nikolaus Wulff

Betriebliche Optimierung

Adaptive Systeme. Prof. Dr.-Ing. Heinz-Georg Fehn Prof. Dr. rer. nat. Nikolaus Wulff

Genetische und Evolutionäre Algorithmen (Vol. 1)

Computational Intelligence 1 / 28. Computational Intelligence Evolutionsstrategien 3 / 28

10. Vorlesung Stochastische Optimierung

Genetische und Evolutionäre Algorithmen (Vol. 2)

Betriebliche Optimierung

Evolutionsstrategien

Ü b u n g s b l a t t 15

Proseminar Genetische und Evolutionäre Algorithmen Evolutionsstrategien

Populationsbasierte Suche. Evolutionäre Algorithmen (1)

Optimale Produktliniengestaltung mit Genetischen Algorithmen

Hauptseminar Repräsentationen für Optimierungsalgorithmen

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Binomialverteilung und Bernoulli- Experiment

Genetische Algorithmen

1. Inhaltsverzeichnis

PREISE UND PREISLISTEN UNTER ORGAMAX BEARBEITEN

12. Vorlesung Stochastische Optimierung

Synthese Eingebetteter Systeme. Übung 6

Stetige Verteilungen. A: Beispiele Beispiel 1: a) In den folgenden Abbildungen sind die Dichtefunktionen von drei bekannten Verteilungen graphisch

6. Stochastische Modelle II: Stetige Wahrscheinlichkeitsverteilungen, insbesondere Normalverteilungen

T (n) = max. g(x)=n t(n) S(n) = max. g(x)=n s(n)

LAF Mathematik. Näherungsweises Berechnen von Nullstellen von Funktionen

Klausur zur Wahrscheinlichkeitstheorie für Lehramtsstudierende

Künstliche Intelligenz - Optimierungsprobleme - Suche in Spielbäumen

Künstliche Intelligenz und Ameisen. Microsoft C# spielerisch erlernen

InformatiCup 2009 EvolutionConsole

b) Nennen Sie vier hinreichende Bedingungen für Evolution. b) Anzahl fortlaufender Einsen von rechts. c) Sind in a) oder b) Plateaus enthalten?

Evolutionäre Strategien

Matura2016-Lösung. Problemstellung 1

Technische Universität Chemnitz. Ein Genetischer Algorithmus zur simultanen Dimensionierung und Strukturierung von Fertigungssystemen

Datenstrukturen & Algorithmen

Diskrete Optimierungsverfahren zur Lösung von Sudokus

Probeklausur zur Vorlesung Statistik II für Studierende der Soziologie und Nebenfachstudierende

Das Simplexverfahren

1 Varianten von Turingmaschinen

825 e 290 e 542 e 945 e 528 e 486 e 675 e 618 e 170 e 500 e 443 e 608 e. Zeichnen Sie das Box-Plot. Sind in dieser Stichprobe Ausreißer vorhanden?

Stetige Wahrscheinlichkeitsverteilung

Effizienz von Algorithmen

Newton-Verfahren zur gleichungsbeschränkten Optimierung. 1 Gleichungsbeschränkte Optimierungsprobleme

Konfidenzintervall für den Anteilswert θ. Konfidenzintervalle. Jost Reinecke. Universität Bielefeld. 13. Juni 2005

b) Nennen Sie vier hinreichende Bedingungen für Evolution. b) Anzahl fortlaufender Einsen von rechts. c) Sind in a) oder b) Plateaus enthalten?

5. Spezielle stetige Verteilungen

NTM2-Praktikum 7 Random Access Beispiel

Mathematische Funktionen

Kenngrößen von Zufallsvariablen

8.1 Einleitung. Grundlagen der Künstlichen Intelligenz. 8.1 Einleitung. 8.2 Lokale Suchverfahren. 8.3 Zusammenfassung. Suchprobleme: Überblick

Evolutionäre / Genetische Algorithmen. Einführung in die Methoden der Künstlichen Intelligenz. Evolutionäre / Genetische Algorithmen (2) Beispiel

2. Rechnen mit Wahrscheinlichkeiten

Klausur zur Spieltheorie Musterlösung

5 Kontinuierliches Wachstum

Sigma-Umgebung. Vergleichen wir die beiden Binomialverteilungen: n = 30 p = 0,5. n = 20 p = 0,75

Genetische Algorithmen

Inferenzstatistik (=schließende Statistik)

Einführung in die Methoden der Künstlichen Intelligenz. Evolutionäre Algorithmen

3 Reihen. 3.1 Konvergenz und Divergenz. Die Eindeutigkeit nach Satz 13 ergibt schließlich (5). (6) folgt aus (2) und (1) wegen. 1 a +log ba.

Bewertung von Optimierungs- und Zuverlässigkeitsalgorithmen für die virtuelle Produktauslegung

2 Rationale und reelle Zahlen

Wahrscheinlichkeitsverteilungen

Erfolgversprechende Konfigurationen für Versuche mit Evolutionsstrategien anhand von ausgewählten Testfunktionen

Abitur 2009 Mathematik GK Stochastik Aufgabe C1

3. Selbstbehalt und Selbstbeteiligung

12 Die Normalverteilung

Einführung in die Methoden der Künstlichen Intelligenz. Evolutionäre Algorithmen

Fundamente der Computational Intelligence

Venndiagramm, Grundmenge und leere Menge

Zufallsvariablen: Die allgemeine Definition

EVOLUTION STRATEGIES DANIELA SCHACHERER SEMINAR: IST KÜNSTLICHE INTELLIGENZ GEFÄHRLICH? SOMMERSEMESTER 2017

Computational Intelligence

Elemente der Stochastik (SoSe 2016) 9. Übungsblatt

Statistik für SozialwissenschaftlerInnen II p.85

Evolution und Algorithmen

Teil II Optimierung. Modellgestützte Analyse und Optimierung Kap. 5 Einführung Optimierung. Peter Buchholz 2006

Survival of the Fittest Optimierung mittels Genetischer Algorithmen

Kombinatorische Optimierung Vorlesung für den Bereich Diplom/Master Informatik

Einführung in Heuristische Suche

Exponentialgleichungen und Logarithmen

1. Evolutionsstrategien. 2. Genetische Algorithmen. Evolutionsstrategie / Genetischer Algorithmus. Dr. Markus Olhofer markus.olhofer(at)honda-ri.

Anwendung genetischer Algorithmen zur Lösung des n Dame Problems und zur Optimierung von Autoprofilen

Lineare Algebra II 5. Übungsblatt

Entwurfsmuster Zustand

Implementation und Evaluierung innovativer Heuristiken für die Anordnung von Entwurfsentscheidungen

Messung von Rendite und Risiko. Finanzwirtschaft I 5. Semester

Analytische Statistik II

Von der Normalverteilung zu z-werten und Konfidenzintervallen

Konfidenzintervalle. Einführung von Ac

Seminar Verkehrsinformatik Offline-Optimierung der Lichtsignal-Koordinierung mittels genetischer Algorithmen

Teil 2: Dynamische Spiele mit vollständigen Informationen

VERWEIS-FUNKTIONEN...

KAPITEL 6. Nichtlineare Ausgleichsrechnung

Einführung genetischer Algorithmen mit Anwendungsbeispiel

Einführung in die Angewandte Informatik Modellierung und Simulation

Genetische Algorithmen von der Evolution lernen

Zusammenfassung Performancegesetze

Multivariate lineare Regression. Statistik für SozialwissenschaftlerInnen II p.167

Arbeitsblatt 27: Normalverteilung Kerzen

Transkript:

Evolutionäres Programmieren Martin Bader 29. Mai 2002 1

2 2 GRUNDKONZEPTE 1 Einleitung Evolutionäre und genetische Algorithmen sind Optimierungsverfahren, die sich, wie der Name schon sagt, nach dem Vorbild der Evolution richten. Das Grundprinzip besteht darin, aus einer zufällig generierten Menge von Problemlösungen die besten herauszupicken, kopieren und die Kopien leicht abzuändern. Daraus entsteht eine neue, bessere Menge von Problemlösungen, auf die man wieder das selber Verfahren anwendet. Durch die ständige Verbesserung der Lösungen erhofft man sich, wenn nicht das Optimum, so doch zumindest eine relativ gute Lösung zu finden. Es gibt verschiedenartige Ansätze in diese Richtung, wie zum Beispiel genetische Algorithmen oder den Sintflutalgorithmus. Einen dieser Ansätze, die evolutionäre Programmierung, soll hier näher betrachtet werden. Evolutionäre Programmierung (EP) geht zurück auf Arbeiten von L.J. Fogel, A.J.Owens und M.J. Walsh in den 60er Jahren. Ihr Ziel lag jedoch nicht in der Optimierung, sondern sie versuchten, künstlich-intelligente Automaten zu generieren, die in der Lage sein sollten, selbständig Probleme zu lösen. Ein weiterer Gedanke war, durch künstliche Intelligenz Rückschlüsse auf den menschlichen Verstand zu ziehen. Obwohl dieser Ansatz eher mit Artificial Life zu tun hat, gelang es D.B. Fogel, Sohn von L.J.Fogel, daraus ein Verfahren zur Optimierung insbesondere kontinuierlicher Entscheidungsgrössen zu entwickeln, welches die heutige Form von EP darstellt. 2 Grundkonzepte Im Gegensatz zu den genetischen Algorithmen, in denen Lösungen als Genstrings betrachtet werden, interpretiert man diese in EP als Populationen oder Arten. Desweiteren sieht man die biologischen Evolution in erster Linie als Anpassungsprozess auf der Verhaltensebene, die zugrundeliegenden Chromosomen sind nicht von Interesse. Dies nennt man einen phänotypischen (im Gegensatz zum genotypischen) Ansatz. Aufgrund dieser Betrachtungsweise verzichtet EP in der heutigen Form auf alle genetischen Operationen, wie zum Beispiel der Rekombination (die Vereinigung mehrerer Lösungen). Der einzige verwendete Suchoperator ist Mutation, wobei dieser, wie wir später sehen werden, nicht auf einzelnen Bits arbeitet, sondern eine leichte Veränderung der Gesamtlösung darstellt. Er widerspricht also offensichtlich nicht dem phänotypischen Ansatz. Um den Mutationsoperator möglichst effizient zu gestalten, arbeitet man mit einer selbstanpassenden Mutationsschrittweite. Individuen mit schlechten Fitnesswerten können sich so schnell mit grossen Mutationsschritten in die Umgebung guter Lösungen bewegen. Je besser der Fitnesswert, desto kleiner werden die Schrittweiten. Dadurch hindert man Individuen daran, über die Lösung hinauszuschiessen, und sucht den vielversprechenden Bereich mit einem feineren Raster ab.

3 3 Genereller Ablauf Der Ablauf des Standard-EPs zu Optimierungszwecken kann in die folgenden 5 Schritte unterteilt werden: Schritt 1: Initialisierung In der Initialisierungsphase wird eine Ausgangspopulation P(0) von µ Individuen stochastisch erzeugt. Dabei sind Populationsgrössen von µ 200 üblich. Für jedes Individuum wird die Ausprägung jedes Vektorelements aufgrund einer Gleichverteilung aus einem Intervall [u j, o j ] bestimmt. Diese Schranken sind nur für die Ausgangspopulation relevant, weitere Generationen dürfen diese überschreiten. Bei Minimierungsproblemen mit optimalen Zielfunktionswert von null verwendet Fogel als Schranken u j = 50 und o j = 50. Allerdings sind diese Konstanten stark problemspezifisch und müssen auf die Anforderungen der Anwendung ausgerichtet sein. Existiert zum Beispiel schon eine grobe Abschätzung des Ergebnisses, so können die Schranken daran ausgerichtet werden. Schritt 2: Bewerten der Ausgangslösungen Nun wird jedem Individuum x i ein Fitnesswert Φ( x i ) zugeteilt, welcher aussagt, wie gut das Individuum die Problemstellung löst. Häufig wird dazu der unmodifizierte Zielfunktionswert F ( x i ) verwendet. Gegebenfalls kann mit einer Funktion Ω : R ω Ω R + eine Transformation in den positiven Bereich und eine Skalierung durchgeführt werden, wobei bei der Selektion ein positiver Fitnesswert nicht zwingend ist. Ebenfalls üblich ist die Modifikation des Fitnesswertes durch eine individuumspezifische Zufallsvariable v i. Die allgemeine Form der Fitnessfunktion ist Φ( x i ) = Ω(F ( x i ), v i ) Diese µ Individuen bilden die Eltern für den nächsten Schritt. Schritt 3: Erzeugen von Nachkommen Für jedes Individuum x 1,..., x µ werden die 3 Teilschritte Replikation, Mutation und Bewertung durchgeführt. Teilschritt 3.1: Replikation Es wird eine Kopie des Individuums erzeugt. Teilschritt 3.2: Mutation Die gerade erzeugte Kopie wird durch die Addition eines Vektors mit Zufallszahlen modifiziert. Alle Zufallszahlen werden stochastisch aus einer Normalverteilung mit Erwartungswert 0 und einer vom Fitnesswert abhängigen Standardabweichung gewonnen. Dadurch erreicht man, dass man bei schlechten Fitnesswerten sich der Lösung schnell nähern kann, wogegen man bei einer

4 3 GENERELLER ABLAUF bereits guten Näherung das Suchraster verfeinert. Für die Vektorelemente x j des Nachkommen gilt: x j = x j + N(0, 1) k j Φ(x) + z j Dabei sind k j eine globale Skalierungskonstante, Φ(x) der elterliche Fitnesswert, z j eine globale Grundvarianz und N(0,1) eine normalverteilte Zufallsvariable mit Erwartungswert 0 und Standardabweichung 1. Durch k j und z j ergeben sich 2n vom Benutzer festzulegende Strategieparameter, die der Einfachheit halber häufig standardmässig mit k j = 1, z j = 0 j festgelegt werden. Daraus ergibt sich die vereinfachte Form x j = x j + N(0, 1) Φ(x) Teilschritt 3.3: Bewerten der Nachkommen und Ergänzen der Population Den Nachkommen wird auf gleicher Weise wie den Eltern ein Fitnesswert zugeordnet. Falls man mit stochastisch modifizierten Fitnesswerten arbeitet, so muss die Zufallsgrösse v neu bestimmt werden. Anschliessend wird das Individuum zur Population hinzugefügt, so dass diese schrittweise auf 2µ anwächst. Schritt 4: Stochastische Selektion Um die Populationsgrösse wieder auf µ zu senken, findet ein Wettkampf statt, in dem jedes der Individuen paarweise gegen h Gegner antreten muss. Übliche Werte für h sind 0.05µ < h < 0.1µ. Ein Individuum erringt einen Sieg, wenn sein Fitnesswert mindestens genau so gut wie der seines Gegners ist. Nach diesem Wettkampf werden die Individuen nach der Anzahl ihrer Siege sortiert und aufgrund dieser Reihenfolge werden die besten µ in die neue Population übernommen. Bei Punktegleichheit entscheidet der Fitnesswert. Obwohl der Fitnesswert nur zweitrangig ist und auch schlechtere Individuen bei Losglück eine Chance haben, handelt es sich um eine Eliteselektion und eine diskriminierende Selektion, denn das beste Individuum kann nicht verlieren und das schlechteste nicht gewinnen. Schritt 5: Weiter bei Schritt 3, bis ein Abbruchkriterium greift Aus dieser neu erzeugte Population werden wieder Nachkommen generiert, bewertet und aufgrund eines Wettkampfes die besten ausgesucht. Dies wiederholt sich, bis ein Abbruchkriterium erfüllt ist. Mögliche Abbruchkriterien können ressourcenabhängig sein, zum Beispiel das erreichen einer bestimmten Anzahl von Generationen. Eine andere Variante ist es, abzubrechen, sobald das Niveau der Lösungen gut genug ist, oder wenn der Optimierungsprozess stagniert, also keine nennenswerte Verbesserung von einer zur nächsten Generation eintritt. Als Lösung wird im Allgemeinen das beste während des gesamten Optimierungsprozesses gefundene Individuum genommen.

5 Beispiel: Hauptprogramm eines EP Das folgende Codefragment ist das Hauptprogramm eines in Java geschriebenen EP zur Minimierung kontinuierlicher Funktionen. public static void main(string[] args) // the Individuums Individuum[] ind = new Individuum[2 * POPULATION]; // the opponent in a competition int opponent; for (int i = 0; i < POPULATION; i++) // create random individuums ind[i] = new Individuum(MINVAL, MAXVAL); for (int i = 0; i < GENERATIONS; i++) System.out.println("Generation " + i); for (int j = 0; j < POPULATION; j++) // create the mutants ind[population + j] = ind[j].mutate(); for (int j = 0; j < 2 * POPULATION; j++) // do the competition ind[j].victories = 0; // reset victories for (int k = 0; k < COMPETITIONS; k++) // look for opponents do opponent = rand.nextint(2 * POPULATION); while (opponent == j); if (ind[j].fitness <= ind[opponent].fitness) // victory ind[j].victories++; quicksort(ind, 0, 2 * POPULATION - 1); System.out.println("Best Individum: "); ind[0].print();

6 4 META-EP Die hier nicht dargestellte Klasse Individuum enthält einen Vektor von kontinuierlichen Variablen zur Lösungsrepräsentation, seinen Fitnesswert, einen Zähler für die Siege im Wettkampf sowie Methoden zum Vergleichen von Fitnesswerten und zum Erzeugen einer mutierten Kopie. Desweiteren benötigt man eine Klasse Function, welche den zu einem Lösungsvektor gehörenden Fitnesswert berechnet. Hierbei wird eine Fitness von null als optimal angesehen, je höher der Wert, desto schlechteer die Fitness. 4 Meta-EP Bei der praktischen Anwendung des Standard-EP kommt es häufig Problemen beim Versuch, die Mutationsschrittweite durch die Quadratwurzel des Fitnesswertes zu bestimmen. So kann bei Funktionen mit optimalem Fitnesswert ungleich null das Ergebnis nicht systematisch und präzise erreicht werden, weil die Mutationsschrittweite hier nicht gegen null konvergiert. Bei sehr grossen Fitnesswerten ergibt sich dadurch schon beinahe ein random search. Oft ist dem Anwender der global optimale Zielfunktionswert unbekannt, so dass es nahezu unmöglich ist, geeignete Transformations- und Skalierungsfaktoren zu finden. Ein weiteres Problem besteht durch die hohe Anzahl der Strategieparameter k j und z j, die den Anwender vor ein weiteres Optimierungsproblem stellen, falls er die Standardeinstellungen für ungünstig hält. Diese Nachteile haben dazu geführt, dass inzwischen eine als Meta-EP bezeichnete Variante die gebräuchlichste Form von EP ist. In Meta-EP wird die Schrittweite nicht mehr über den Fitnesswert festgelegt, sondern auf gleicher Weise wie der Lösungsvektor von Generation zu Generation optimiert. Jedes Individuum erhält zusätzlich zu seinen n problembezogenen Variablen einen Vektor σ j von n Standardabweichungen, welchen man als die Mutationsschrittweise interpretieren kann. Es ergeben sich folgende Abweichungen im Ablauf: Schritt 1: Initialisierung Die Initialisierung erfolgt analog zu der des Standard-EP, mit dem Zusatz dass für jedes Individuum die Standardabweichungen initialisiert werden müssen. Jedes Vektorelement wird aus einer Gleichverteilung im Intervall [0, β] zufällig bestimmt, wobei β ein benutzerdefinierter Strategieparameter ist, den Fogel standardmässig auf 25 setzt. Schritt 2: Bewerten der Ausgangslösungen Wie bei Standard-EP Schritt 3: Erzeugen von Nachkommen Der erste Teilschritt, die Replikation, erfolgt noch wie beim Standard-EP. Der Unterschied zum Standard-EP wird jedoch bei der Mutation deutlich: Statt eine fitnessabhängige Mutationsschrittweise zu wählen, mutiert man zuerst den Vektor mit den Standardabweichungen und danach

7 aufgrund dessen Werte die eigenlichen Variablen. Dazu werden folgende Formeln verwendet: σ j = σ j + α σ j N j (0, 1) x j = x j + σ j N(0, 1) Zusätzlich benötigt man noch folgende Anpassungsregel: Falls σ j 0, dann setze σ j = ε (ε > 0) Der Faktor α ist ein benutzerdefinierter Strategieparameter und hat wesentlichen Einfluss auf das Verhalten des Meta-EP. Wird er zu gross gewählt, so mutieren Standardabweichungen leicht in den negativen Bereich und werden auf ε gesetzt. Dadurch wird die Geschwindigkeit der Lösungsoptimierung stark herabgesetzt. Ist α zu klein, so dauert die Selbstanpassung der Mutationsschrittweiten zu lange. Fogel schlägt für α einen Wert von ungefähr 1/6 vor. ε wird benötigt, um zu verhindern, dass der Optimierungsprozess durch eine Standardabweichung von null zum erliegen kommt. Verschiedentlich wird zur Anpassung der Standardabweichung auch eine andere Formel verwendet, die automatisch positive Werte liefert und einer anderen Variante der evolutionären Algorithmen, den Evolutionsstrategien, entspringt. Sie lautet: σ j = σ j e τ 1 N(0,1)+τ 2 N j (0,1) Hierbei bezeichnet N(0,1) eine für das Individuum einmalig bestimmte Zufallsvariable, welche eine Grundausprägung der Mutation bestimmt. N j (0, 1) wird für jedes Vektorelement separat bestimmt und ermöglicht eine individuelle Anpassung der Schrittweite in jede Dimension. τ 1 und τ 2 sind benutzerdefinierte Strategieparamter, wobei τ 1 = τ 2 = 0.15 empfohlen wird. Schritt 4: Stochastische Selektion Wie bei EP Schritt 5: Weiter bei Schritt 3, bis ein Abbruchkriterium greift Wie bei EP 5 Continuous-EP Eine weitere Abart von EP stellt das Continuous-EP dar. Statt einem general replacement wird hier pro Generation nur ein Individdum ersetzt. Dazu wird stochastisch ein Elter gewählt, repliziert und mutiert. Hierbei ist sowohl die Variante des Standard-EP als auch die des Meta-EP möglich. Anschliessend wird das Individuum mit dem schlechtesten Fitnesswert verworfen.

8 7 EP UND KI 6 Sonstige Erweiterungen Bisher wurden aus µ Eltern µ Nachkommen erzeugt. Man kann jedoch auch mehr Nachkommen erzeugen, zum Beispiel n statt nur einem Nachkomme pro Elternteil. Das erhöht die Selektionshärte, weil gute Individuen eine Schwemme von guten Nachkommen erzeugen, die die schlechten Individuen schnell verdrängen. Dies erhöht vor allem bei unimodalen Funktionen die Fortschrittsgeschwindigkeit. Bei vielen Optimierungsproblemen sind die vorgestellten Varianten ungeeignet, weil die Problemstellung kombinatorischer oder diskreter Natur ist. Der auf Zufallsgrössen basierende Mutationsoperator würde zum Beispiel ungültige Lösungen bringen. Dennoch lassen sich die Grundprinzipien des EP auch auf solche Probleme übertragen. Geht es zum Beispiel darum, eine möglichst günstige Permutation einer Menge zu finden (wie zum Beispiel beim Travelling Salesman Problem), kann man die Mutation zum Beispiel folgendermassen durchführen: Die Anzahl der Mutationsschritte wird aufgrund der Fitnessfunktion wie beim Standard-EP festgelegt und auf die nächste ganze Zahl aufgerundet. Ein Mutationsschritt besteht nun darin, ein Element zufällig aus der Permutation zu entnehmen und an einer anderen Position einzufügen. Aufgrund der Anzahl der Mutationsschritte werden schlechtere Lösungen wesentlich stärker verändert als gute, was wieder dem Grundprinzip der EP entspricht. Allerdings existiert keine standardisierte Vorgehensweise des EP für diskrete und kombinatorische Probleme. 7 EP und KI Der eigentliche Ursprung des EP ist weniger im Optimierungsbereich als in der künstlichen Intelligenz zu sehen. Fogel, Owens und Walsh benutzten EP in den 60er-Jahren, um die Evolution intelligenten Verhaltens zu simulieren. Zur Darstellung intelligenten Verhaltens benutzten sie sogenannte finite state machines (finite Automaten, abgekürzt FA), auch als Mealey- und Moore- Automaten bezeichnet. Obwohl im Normalfall Mealey-Automaten eingesetzt wurden, betrachten wir hier wegen des einfacheren Verständnisses nur Moore-Automaten. Das Verhalten eines FA ist vollständig bestimmt durch seine möglichen Zustände, den Ausgangszustand und die eingabeabhängigen Zustandsübergänge. Im folgenden Bild ist ein FA mit den drei Zuständen A, B und C dargestellt. Mögliche Eingaben sind 0 und 1, Ausgabesignale sind α und β.

9 Der angenommene Ausgangszustand sei A. Der Automat liefert nun das Ausgangssignal α und wartet dann auf ein Eingangssignal. Angenommen, dieses sei 1. Der Automat wechselt nun in den Zustand B, welcher ebenfalls das Ausgangssignal α liefert. Ist das nächste Eingabesignal nun 0, bleibt er in diesem Zustand, bei 1 wechselt er zurück nach A. Fogel, Owens und Walsh benutzten nun EP, um die Verhaltensweise des Automaten einem gegebenen Problem möglichst gut anzupassen. Beispiel: Gefangenen-Dilemma Der Einsatz von FA zur Repräsentation von intelligentem Verhalten und dessen Optimierung mittels EP kann an einem Beispiel aus der Spieletheorie, dem Gefangenen-Dilemma, veranschaulicht werden: Zwei Spieler, die sich nicht absprechen können, müssen für sich zwischen den Verhaltensweisen Kooperation (K) und Egoismus (E) entscheiden. Kooperation verbessertdie Gesamtsituation beider Spieler, wogegen Egoismus die eigene Situation auf Kosten des Gegenspielers verbessert. Konkret ergeben sich dadurch folgende Regeln: Wählen beide Spieler K, so erhalten beide je 3 Punkte. Wählt ein Spieler K und der andere E, so erhält der Spieler mit E 5 Punkte, wogegen der andere leer ausgeht. Wählen beide Spieler E, so erhalten beide nur je einen Punkt. Jedes Spiel geht über 151 Züge. Ziel des Spieles ist nicht, mehr Punkte als der Gegner zu haben, sondern möglichst viele Punkte zu haben. Gegen einen kooperativen Spieler erhält man also viele Punkte, indem man häufig E wählt. Allerdings besteht das Risiko, dass der Gegner seine Strategie ebenfalls auf Egoismus umstellt, wenn er feststellt, dass seine Kooperation ausgenutzt

10 7 EP UND KI wird. Ab diesem Moment bekommt man nur noch sehr wenige Punkte. Die Kunst besteht also darin, eine Strategie zu entwickeln, die sich dem Verhalten des Gegners anpasst. Spielstrategien können durch FAs repräsentiert werden. Das folgende Beispiel zeigt die recht effiziente Strategie wie du mir, so ich dir. Hierbei entscheidet man sich grundsätzlich für das, was der andere im Zug zuvor gemacht hat. Im Zustand A (welches auch der Startzustand ist, verhält sich die Strategie kooperativ, im Zustand B egoistisch. Der Zustand wechselt von A nach B, sobald er E als Eingabe erhält, und andersherum. Nun soll mittels eines EP eine erfolgversprechende Strategie gesucht werden. Die 5 Schritte können zum Beispiel wie folgt aussehen: Schritt 1: Initialisierung Eine Ausgangspopulation von µ = 50 wird stochastisch erzeugt. Dazu wird zunächst für jedes Individuum zufällig eine Anzahl von 1 bis 6 Zuständen ermittelt. Im späteren Verlauf wird die Obergrenze entweder nach oben gesetzt oder ganz aufgehoben. Jedem Zustand werden ein Ausgabesignal und zwei Zustandsübergänge zugeordnet, wobei die Zustandsübergänge gleichverteilt aus allen möglichen Folgezuständen gezogen werden. Danach folgt noch die stochastische Bestimmung des Startzustandes. Schritt 2: Erzeugen von Nachkommen Jedes FA wird kopiert und die Kopie anschliessend mutiert. Mögliche Mutationen sind: die Änderung des Startzustandes das Ändern des Ausgabesignales eines Zustandes das Hinzufügen eines Zustandes das Löschen eines Zustandes das Ändern eines Zustandübergangs

11 Beim Löschen von Zuständen müssen alle Übergange, die auf diesen Zustand verweisen, geändert werden. Ebenso darf niemals der letzte Zustand gelöscht werden. Beim Hinzufügen eines Zustandes erzielte ich bessere Ergebnisse, wenn dieser Zustand anfangs unerreichbar war, als die Mutation mit der Änderung eines Zustandübergangs auf den neuen Zustand zu kombinieren. Welche der Mutationen gewählt wird, ist wiederum zufällig zu bestimmen, wobei die einzelnen Wahrscheinlichkeiten benutzerdefinierte Strategieparameter sind. Während Fogel mit nur einer Mutation pro Individuum arbeitet, erzielte ich die besten Resultate mit 4 Mutationen je Individuum. Ebenso ist es natürlich denkbar, die Anzahl der Mutationen abhängig von der Fitness zu machen. Schritt 3: Bewerten der FA Da der Erfolg einer Strategie von der Gegenstrategie abhängt, kann erst jetzt die Fitness ermittelt werden. Dazu muss jedes Individuum paarweise gegen jedes andere für ein Spiel über 151 Züge antreten. Als Fitness wählt man entweder die Gesamtpunktzahl über alle Spiele, oder teilt diesen Wert noch durch die Anzahl der Züge, um so die durchschnittliche Gewinnerwartung pro Zug zu erhalten. Schritt 4: Deterministische Selektion Die 50 FA mit den besten Fitnesswerten überleben. Schritt 5: Weiter bei Schritt 2, bis ein Abbruchkriterium greift Der evolutionäre Prozess wird nach 50 Generationen abgebrochen. Fogel benutzt zwar 200 Generationen, meine eigene Erfahrung ist jedoch, dass nach ca 40 Generationen keine wesentlichen Veränderungen mehr eintreten. Während anfangs zunächst egoistische Strategien vorherrschen und die besten Strategien nach wenigen Generationen eine Gewinnerwartung von ca 1.5 Punkten / Zug haben, treten nach ca 5-10 Generationen Strategien auf, die sich kooperativ verhalten, wenn sie auf einen kooperativen Gegner treffen. Am Ende dominieren kooperative Funktionen, die in dieser Population eine Gewinnerwartung von ca 2.7 Punkten / Zug haben. 8 Quellen Volker Nissen. Einführung in Evolutionäre Algorithmen Vieweg 1997 L.J.Fogel, A.J.Owens, M.J.Walsh. Artificial Intelligence through Simulated Evolution Wiley 1976