Modellierung mit Genetischen Algorithmen
Lokale Suchverfahren: Nur das Ergebnis zählt!
Evolutionäre Algorithmen sind lokale Suchverfahren, wobei gleichzeitig an mehreren Stellen im Problemraum gesucht wird. Sie bedienen sich Mechanismen aus der Evolution: Es gibt eine Population von Individuen, die jedes das Problem kodieren ("vollständige Zustandsbeschreibung") und damit im Laufe der Suche zu einer möglichen Lösung werden können.
Die Individuen werden mit Hilfe einer Fitnessfunktion bewertet, wie gut sie bereits an das Problem angepasst sind (bzw. wie sehr sie bereits der gesuchten Lösung entsprechen). Über eine fitnessproportionale Selektion werden Individuen ausgewählt, aus denen mittels Rekombination (auch "Crossover" genannt) neue Individuen mit Eigenschaften der Eltern erzeugt werden. Über eine Mutation werden dann noch Elemente der neuen Individuen leicht verändert, bevor diese zur neuen Population werden ...
Durch das Anwenden von Rekombination und Mutation springt man im Problemraum umher. Auch wenn als Basis die fitteren (angepassteren) Individuen dienen, kann es wie bei allen lokalen Suchverfahren vorkommen, dass sich der Algorithmus in lokalen Minima (bzw. lokalen Maxima, je nach Richtung der Optimierung) festfrisst.
- (K3) GA: Kodierung, Fitnessfunktion, Ablauf, Operatoren, Auswertung
EA -- Allgemeiner Ablauf
Kodierung Individuen
-
Binäre Lösungsrepräsentation (Bitstring):
- String gliedert sich in
Elemente (mit ) => jedes Segment entspricht einer Problemvariablen - Dekodierungsfunktion
Alle relevanten Aspekte des Problems müssen in die Codierung einfließen!
Bei ES hat man einen Vektor mit reellen Zahlen, wobei jeder Eintrag einen Parameter des Problems darstellt. Eine Dekodierungsfunktion benötigt man entsprechend nicht.
Bei der Erzeugung der Startpopulation werden die Individuen zufällig (mit zufälligen Werten) initialisiert.
- String gliedert sich in
-
Fitnessfunktion
ordnet jedem Individuum eine reelle Zahl zu:- Zielfunktion
: wie sehr genügt ein Individuum bereits dem Optimierungproblem - Strafterme
: Anreicherung der Optimierung mit weiteren Informationen - Gewichte
: statisch oder dynamisch (Abkühlen)
Die Wahl einer guten Fitnessfunktion ist oft eine Herausforderung, aber dennoch wichtig, da damit die Suche gesteuert wird!
- Zielfunktion
Selektion: Erstelle Matingpool mit Individuen
-
Fitnessproportionale Selektion (Roulette Wheel Selection): Auswahlwahrscheinlichkeit für Individuum
: => Voraussetzung: positive Fitnesswerte -
Turnier-Selektion (Tournament Selection):
- Turniergröße
- Turnier: ziehe
Individuen gleichverteilt (mit Zurücklegen!) und kopiere fittestes Individuum in den Matingpool - Führe
Turniere durch
- Turniergröße
Hinweis: Es gibt noch viele weitere Selektionsmechanismen. Die vorgestellten sind in der Praxis am gebräuchlichsten.
Über die Selektion wird der sogenannte "Selektionsdruck" aufgebaut: Wie gut muss ein Individuum sein (im Vergleich zu den restlichen Individuen in der Population), damit es eine Chance zur Reproduktion erhält? Dürfen sich nur die "Guten" fortpflanzen, oder erhalten auch die "Schlechten" eine gewisse Chance?
Da jedes Individuum einen Punkt im Suchraum darstellt, beeinflusst die Wahl der Selektion die Geschwindigkeit der Suche, begünstigt u.U. aber auch ein eventuelles Festfahren in lokalen Minima. Dies kann beispielsweise geschehen, wenn immer nur die "Guten" selektiert werden, aber die "Guten" der Population sich in der Nähe eines lokalen Minimums befinden. Dann werden auch die Nachfolger sich wieder dort aufhalten.
Crossover: Erzeuge zwei Nachkommen aus zwei Eltern
Festlegung der Crossover-Wahrscheinlichkeit
-
Selektiere Eltern
und gleichverteilt aus Matingpool -
Zufallsexperiment:
-
mit
: Kinder identisch zu Eltern (kein Crossover) -
mit
: Crossover mit und- Ziehe
gleichverteilt mit - Kinder aus
und zusammenbauen: und
=> Trenne Eltern an gleicher Stelle auf, vertausche Bestandteile
- Ziehe
-
-
Gehe zu Schritt 1, bis insg.
Nachkommen
Anmerkung: Die Eltern werden jeweils in die Ausgangsmenge zurückgelegt.
Mit einer kleinen Wahrscheinlichkeit sind die Kinder also identisch zu den Eltern. Dies ist im Sinne der lokalen Suche wichtig, um bereits erreichte gute Positionen im Suchraum nicht zu verlieren: Es könnte sein, dass die Nachfolger alle schlechter sind ...
Varianten:
Bei ES wird parameterweise gekreuzt. Dabei gibt es verschiedene Möglichkeiten: Übernahme eines Parameters von einem Elternteil, Verrechnen (beispielsweise Mitteln) der Werte beider Eltern, ... Bei ES heißt "Crossover" deshalb oft "Rekombination".
Mutation
-
Mutationswahrscheinlichkeit
(typische Werte: oder ) -
Für alle Individuen:
-
Mutiere jedes Gen eines Individuums mit
:=>
gleichverteilte Zufallsvariable (Intervall ), für jedes Bit neu bestimmen
-
Anmerkung: Die optimale Mutationsrate
Die beim Crossover erstellten Nachfolger liegen im Suchraum in der Nähe der Eltern. Durch die Mutationsrate bestimmt man, ob und wie weit sich ein Kind entfernen kann. Dies entspricht dem Bild des "Schüttelns" der Zustandslandschaft.
Bei ES unterscheidet man Mutationswahrscheinlichkeit und Mutationsrate. Es wird parameterweise mutiert.
Bewertungskriterien
Vorsicht: Es handelt sich um Zufallsexperimente. Wenn man nicht nur direkt nach einer Lösung sucht, sondern beispielsweise Parametereinstellungen oder die Wahl der Fitnessfunktion für ein Problem vergleichen will, muss man jeweils mehrere Experimente mit der selben Einstellung machen und Kenngrößen berechnen.
Geschwindigkeit: AES Average Evaluations to a Solution
Die AES liegt im Intervall
Lösungswahrscheinlichkeit: SR Success Rate
Die SR liegt im Intervall
Typische Läufe
- Populationsgröße
- Anzahl Nachfahren
- Abbruch nach
Generationen
Stochastischer Algorithmus! Ausreichend Wiederholungen durchführen und mitteln!
Hinweis: Die Parameter müssen problemabhängig gewählt werden. Zu hohe Werte
für
Wrap-Up
Lokale Suchverfahren: Nur das Ergebnis zählt!
- Evolutionäre Algorithmen:
- Begriffe: Individuum, Population, Kodierung
- Operationen: Selektion, Rekombination, Mutation
- Bewertung mit Fitnessfunktion
Sudoku
Ein
Geben Sie für dieses Problem jeweils eine geeignete Kodierung der Individuen, passende Operatoren (Crossover, Mutation) und eine geeignete Fitnessfunktion an, damit das Problem mit einem GA gelöst werden kann. Begründen Sie Ihre Wahl!
Was würden Sie noch benötigen, um das Probleme mit Simulated Annealing lösen zu können?
Travelling Salesman Problem
Das Travelling Salesman Problem für 10 Städte, d.h. das Finden der kürzesten Route zwischen 10 Städten, soll mit einem GA gelöst werden.
Geben Sie für dieses Problem jeweils eine geeignete Kodierung der Individuen, passende Operatoren (Crossover, Mutation) und eine geeignete Fitnessfunktion an, damit das Problem mit einem GA gelöst werden kann. Begründen Sie Ihre Wahl!
Was würden Sie noch benötigen, um das Probleme mit Simulated Annealing lösen zu können?
- [Baeck1996] Evolutionary Algorithms in Theory and Praxis
Bäck, T., Oxford University Press, 1996. ISBN 978-0-1950-9971-3. - [Michalewicz1996] Genetic Algorithms + Data Structures = Evolution Programs
Michalewicz, Z., Springer, 1996. ISBN 978-3-5406-0676-5. - [Nissen1997] Einführung in Evolutionäre Algorithmen
Nissen, V., Vieweg+Teubner Verlag, 1997. ISBN 978-3-5280-5499-1. - [Russell2020] Artificial Intelligence: A Modern Approach
Russell, S. und Norvig, P., Pearson, 2020. ISBN 978-0134610993.
GA: Abschnitt 4.1.4 - [Schwefel1995] Evolution and Optimum Seeking
Schwefel, H. P., Wiley, 1995. ISBN 978-0-4715-7148-3.
Originalarbeit zu Evolutionsstrategien