Zum Inhalt

Optimierung

Definieren Sie den evolutionÀren Algorithmus

Bei der Erörterung, wie cBots optimiert werden können, haben wir erwÀhnt, dass cBots mit der Methode des evolutionÀren Algorithmus verfeinert werden können. In diesem Leitfaden erklÀren wir genau, was das ist und wie es funktioniert.

Die Methode des evolutionĂ€ren Algorithmus basiert auf der Theorie der natĂŒrlichen Selektion. Diese Theorie besagt, dass nur die am besten angepassten Individuen fĂŒr die nachfolgende Fortpflanzung ĂŒberleben.

Bei der cBot-Optimierung wird jeder Optimierungsdurchlauf als ein Individuum betrachtet. Um einzelne DurchlĂ€ufe zu bewerten, berechnet der evolutionĂ€re Algorithmus eine bestimmte Fitnesswertung fĂŒr jeden Durchlauf und vergleicht diese Wertung mit allen anderen DurchlĂ€ufen.

Damit er funktioniert, benötigt der evolutionĂ€re Algorithmus eine Ausgangspopulation. Um diese zu erzeugen, fĂŒhrt der Optimierer mehrere verschiedene DurchlĂ€ufe mit randomisierten Parametern aus. Nach der Erstellung seiner Ausgangspopulation beginnt der Algorithmus mit dem Prozess der Suche nach dem am besten angepassten Optimierungsdurchlauf. Dieser Prozess wird fortgesetzt, bis die Fitnesswertungen der untergeordneten DurchlĂ€ufe zu stagnieren und zu konvergieren beginnen. An diesem Punkt wird der Algorithmus gestoppt.

Phasen des evolutionÀren Algorithmus

Jeder evolutionÀre Algorithmus hat die folgenden Phasen.

graph TB
  B([Selektion]) ==> C([Crossover]);
  C ==> D([Mutation]);
  D ==> B;

Die Phasen werden wie folgt erklÀrt.

Selektion

WÀhrend dieser Phase findet der Algorithmus die zwei am besten angepassten OptimierungsdurchlÀufe anhand ihrer jeweiligen Fitnesswertungen.

Crossover

Nachdem die zwei am besten angepassten OptimierungsdurchlĂ€ufe gefunden wurden, verwendet der Algorithmus sie, um neue untergeordnete (oder Nachkommen-)DurchlĂ€ufe zu erstellen, indem er Kombinationen der Parameterwerte beider ĂŒbergeordneten DurchlĂ€ufe verwendet.

Beispiel

Wenn Ihr cBot vier verschiedene Parameter zur Optimierung hat, erhÀlt der Algorithmus die Werte des ersten und zweiten Parameters der NachkommendurchlÀufe von einem Elternteil und den dritten und vierten Parameter vom zweiten Elternteil.

Mutation

In dieser Phase mutiert der Algorithmus die NachkommendurchlÀufe, indem er einen oder mehrere Parameterwerte zufÀllig modifiziert.

Nach der Mutationsphase fĂŒhrt der Optimierer einen neuen Nachkommen-Optimierungsdurchlauf aus. Anschließend wiederholt er alle Phasen, aber nur, wenn die Fitnesswertung eines Nachkommendurchlaufs höher war als die des letzten am besten angepassten Optimierungsdurchlaufs. Ein solches Ergebnis wĂŒrde bedeuten, dass es Raum fĂŒr Verbesserungen gibt, was darauf hinweist, dass die Optimierung fortgesetzt werden sollte.

Andernfalls erhöht der Algorithmus seinen StagnationszĂ€hler. Wenn der StagnationszĂ€hler den Wert des Parameters fĂŒr die Stagnationsperiode des Algorithmus erreicht, wird der Optimierungsprozess automatisch gestoppt.

Parameter des evolutionÀren Algorithmus

Der evolutionÀre Algorithmus hat mehrere Parameter, die er wÀhrend seiner Laufzeit verwendet. Diese Parameter können nicht geÀndert werden.

Parameter Definition
GrĂ¶ĂŸe der Datenmenge Die maximale GrĂ¶ĂŸe einer Population oder die maximale Anzahl von DurchlĂ€ufen, die wĂ€hrend jeder Optimierungsiteration durchgefĂŒhrt werden.
Maximale Iterationsanzahl Die maximale Anzahl von Optimierungsiterationen, die vom Algorithmus durchgefĂŒhrt werden.
Stagnationszeitraum Der maximale Wert des StagnationszÀhlers. Wenn dieser Wert erreicht wird, wird der Algorithmus gestoppt.
Elite-Prozentsatz Dieser Wert wird verwendet, um einen X%-Anteil von Individuen mit den höchsten Fitnesswertungen aus der aktuellen Algorithmusiteration auszuwĂ€hlen. Diese DurchlĂ€ufe ĂŒberleben bis zur nĂ€chsten Iteration.
TurniergrĂ¶ĂŸe-Prozentsatz Dieser Wert wird verwendet, um einen X%-Anteil von Individuen aus einer Iteration fĂŒr die Suche nach ĂŒbergeordneten DurchlĂ€ufen auszuwĂ€hlen.
Migranten-Prozentsatz Dieser Wert wird verwendet, um einen X%-Anteil von zufĂ€llig erstellten DurchlĂ€ufen wĂ€hrend jeder neuen Iteration oder Populationsgenerierung hinzuzufĂŒgen.
Mutations-Prozentsatz Der Prozentsatz der Parameter von NachkommendurchlÀufen, die mutiert werden sollen.
Mutationswahrscheinlichkeits-Prozentsatz Der Prozentsatz der NachkommendurchlÀufe, die mutiert werden sollen. Die DurchlÀufe, die nicht in diesem Prozentsatz enthalten sind, durchlaufen die Mutationsphase nicht.