wiki.neuro.tu-berlin.de

evolutionäre Algorithmen

Evolutionäre Algorithmen

Allgemein

Ein evolutionärer Algorithmus ahmt die biologischen Evolution nach und orientiert sich an ihren Entwicklungsmustern. Evolutionäre Algorithmen eignen sich zum Lösen von komplexeren Problemen. Es handelt sich hierbei um ein Optimierungsverfahren, das eine möglichst gute Näherungslösung finden soll.

Vorgehen


Skizzenhafter Ablauf evolutionärer Algorithmen
    Abb. 1 - Skizzenhafter Ablauf evolutionärer Algorithmen von [Weicker], [TU Dortmund]
Zum Anfang stellt man eine Qualitäts- bzw. Optimierungsfunktion (auch "Fitnessfunktion") auf, die es in der Regel zu maximieren gilt. Ziel ist es, dass die Funktion einen Wert liefert, wie gut die jeweilige Lösung gerade ist.

Im ersten Schritt wird nach dem Zufallsprinzip eine Menge von Lösungskandidaten erzeugt. Die Kadidaten werden anschließend mithilfe der Qualitätsfunktion bewertet: je höher, desto besser. Auf Grundlage dieser Werte werden die besten Kandidaten ausgewählt. Diese stellen die erste Generation dar.
Mithilfe von Rekombination und Mutation wird aus der Elterngeneration ein neuer Lösungskandidat erzeugt. Rekombination wird dabei auf mindesens zwei Kandidaten angewendet, wohingegen Mutation immer nur einen Kandidaten betrifft.
Mithilfe der Qualitätsfunktion werden anschließend die neu erzeugten Kandidaten bewertet. Diese konkurrieren nun mit ihren Eltern um einen Platz in der neuen Generation. Nur die besten Kandidaten werden aufgenommen, die schlechtesten werden verworfen.
Der beschriebene Prozess kann so lange wiederholt werden, bis ein Kandidat von ausreichender Qualität bzw. eine Lösung gefunden wurde, oder es wird eine zuvor festgelegte Rechnergrenze erreicht. [1],[2]

Pseudocode

BEGIN
INITIALISE population with random candidate solutions;
EVALUATE each candidate;
REPEAT UNTIL ( TERMINATION CONDITION is satisfied ) DO
1 SELECT parents;
2 RECOMBINE pairs of parents;
3 MUTATE the resulting offspring;
4 EVALUATE new candidates;
5 SELECT individuals for the next generation;
OD
END

[1:1]

Anwendungsgebiete

Evolutionäre Algorithmen werden zur Optimierung und zur Suche verwendet. Weitere Anwendungsgebiete sind:

Literaturliste


  1. Eiben, A.E., Smith, J.E. (2015). What Is an Evolutionary Algorithm?. In: Introduction to Evolutionary Computing. Natural Computing Series. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-44874-8_3 ↩︎ ↩︎

  2. Seite „Sudoku“. In: Wikipedia – Die freie Enzyklopädie. Bearbeitungsstand: 23. Januar 2023, 20:36 UTC. URL: https://de.wikipedia.org/w/index.php?title=Sudoku&oldid=230146355 (Abgerufen: 1. Februar 2023, 20:39 UTC) ↩︎

  3. Alexander Thamm GmbH (Hrsg.). URL: https://www.alexanderthamm.com/de/data-science-glossar/evolutionaerer-algorithmus/ (Abgerufen: 25. Januar 2023, 15:37 UTC) ↩︎