Evolutionäre Algorithmen sind eine Familie von Optimierungsalgorithmen, die auf dem Prinzip der Darwinschen natürlichen Selektion basieren . Als Teil der natürlichen Auslese hat eine gegebene Umgebung eine Population von Individuen, die um Überleben und Fortpflanzung konkurrieren. Die Fähigkeit jedes Einzelnen, diese Ziele zu erreichen, bestimmt seine Chance, Kinder zu haben, dh, seine Gene an die nächste Generation von Einzelpersonen weiterzugeben, die aus genetischen Gründen die Chance haben, diese Ziele besser und besser zu verwirklichen zwei Ziele.
Dieses Prinzip der kontinuierlichen Verbesserung über die Generationen hinweg wird von evolutionären Algorithmen übernommen, um die Lösungen für ein Problem zu optimieren. In der ersten Generation wird eine Population, die sich aus verschiedenen Individuen zusammensetzt , zufällig oder mit anderen Methoden erzeugt. Ein Individuum ist eine mehr oder weniger gute Lösung des Problems: Die Qualität des Individuums in Bezug auf das Problem wird Fitness genannt , was die Angemessenheit der Lösung des zu lösenden Problems widerspiegelt. Je höher die Fitness eines Individuums ist, desto höher ist die Wahrscheinlichkeit, dass ein Teil oder der gesamte Genotyp an die Individuen der nächsten Generation weitergegeben wird.
Ein Individuum wird als ein Genotyp codiert , der eine beliebige Form haben kann, wie beispielsweise ein ** Bit-Vektor ( genetische Algorithmen ) oder ein realer Vektor (Evolutionsstrategien). Jeder Genotyp wird bei der Beurteilung des Individuums, dh bei der Berechnung seiner Fitness , in einen Phänotyp umgewandelt . In einigen Fällen ist der Phänotyp identisch mit dem Genotyp: Man spricht von direkter Kodierung. Andernfalls wird die Codierung als indirekt bezeichnet. Angenommen, Sie möchten die Größe eines rechteckigen Parallelepipeds optimieren, die durch seine Länge, Höhe und Breite definiert ist. Nehmen wir zur Vereinfachung des Beispiels an, dass diese drei Größen ganze Zahlen zwischen 0 und 15 sind. Wir können sie dann jeweils mit einer 4-Bit-Binärzahl beschreiben. Ein Beispiel für eine mögliche Lösung könnte der Genotyp 0001 0111 01010 sein. Der entsprechende Phänotyp ist ein Parallelepiped der Länge 1, Höhe 7 und Breite 10.
Während des Übergangs von der alten auf die neue Generation genannt Variation Operatoren , deren Zweck es ist , Menschen zu manipulieren. Es gibt zwei verschiedene Arten von Variationsoperatoren:
- die Mutation Operatoren , die als genetische Mutationen im gleichen Individuum, einzuführen Variationen verwendet werden;
- die Kreuzungsoperator , die verwendet werden , mindestens zwei verschiedene Genotypen, wie genetische Kreuzungen überqueren aus der Zucht.
Evolutionäre Algorithmen haben sich in verschiedenen Bereichen wie Operations Research, Robotics, Biology, Nuance oder Cryptography bewährt. Darüber hinaus können sie mehrere Objektive gleichzeitig optimieren und können als Black Box verwendet werden, da sie im mathematischen Modell keine zu optimierenden Eigenschaften annehmen. Ihre einzige wirkliche Einschränkung ist die rechnerische Komplexität.