Rekombination (evolutionärer Algorithmus)

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Als Rekombination oder Crossover wird bei evolutionären Algorithmen die Erzeugung eines neuen Genoms (auch als Filialgenom bezeichnet) aus (in der Regel) zwei Elterngenomen (Parentalgenomen) bezeichnet. Eine Funktion, die eine zulässige Menge von Parentalgenomen auf eine Menge von Filialgenomen abbildet, heißt Rekombinationsfunktion. Eine Rekombinationsfunktion ist ein genetischer Operator.

In der Literatur ist neben der Rekombination auch häufig von Crossover die Rede und beide Begriffe werden meist synonym verwendet.

Ziel der Rekombination ist es, gute Eigenschaften zweier verschiedener Eltern auf ein Kind zu übertragen. Im Vergleich zu Algorithmen, die nur die Mutation zur Veränderung der Genome benutzen, können so möglicherweise schneller Individuen gefunden werden, die zwei gute Eigenschaften A und B in sich tragen, wenn es vorher nur Individuen gab, die entweder nur über A oder B verfügten. Generell gilt, dass die Erzeugung von Elternklonen aus Effizienzgründen zu vermeiden ist.

Gute Rekombinationsfunktionen zeichnen sich dadurch aus, dass sie zumindest die guten Eigenschaften der Eltern erhalten und nicht so rekombinieren, dass diese Eigenschaften zerstört werden.

Für verschiedene Genom- und Problemtypen eignen sich verschiedene Rekombinationstypen unterschiedlich gut. Die nachstehende Liste von Operatoren ist keineswegs vollständig und dient vor allem der beispielhaften Veranschaulichung dieses dyadischen genetischen Operatortyps. Weitere Operatoren und weitere Einzelheiten sind in der Literatur zu finden.[1][2][3][4][5][6]

Rekombination von binären Zahlen (Bitstrings)[Bearbeiten | Quelltext bearbeiten]

Bei der Rekombination binärer Zahlen werden die Parentalgenome an einer oder mehreren Stellen unterteilt und das Filialgenom aus diesen Teilen zusammengesetzt.

Zu den schon frühzeitig verwendeten Rekombinationsoperatoren gehören das 1-Punkt- und das n-Punkt-Crossover. Bei beiden Operatoren werden Crossoverpunkte zufällig innerhalb des Genoms eines Elters bestimmt, die dann für beide Parentalgenome gelten. Das n-Punkt-Crossover beginnt mit der zufälligen Bestimmung der Anzahl der Crossoverpunkte, deren Anzahl kleiner sein muss als die der Gene des Genoms. Beim 1-Punkt-Crossover gilt . Das Kindgenom wird dadurch gebildet, das abwechselnd die Gene des ersten und des zweiten Parentalgenoms bis zum jeweils nächsten Crossoverpunkt auf das Kindgenom kopiert werden.

Als Beispiel soll ein 2-Punkt-Crossover dienen:

Verfahren Beispiel
  • Gegeben seien zwei binäre Zahlen.
und
  • Wähle nun zufällig zwei Indizes, an denen die Genome unterteilt werden.
, ,
  • Für das Kindgenom werden aus alle Stellen übernommen, die zwischen und liegen, während alle restlichen Stellen aus übernommen werden.

Ein ebenfalls häufig genutzter Operator ist das Uniform Crossover, bei dem für jedes Gen (hier jedes Bit) zufällig entschieden wird, von welchem Parentalgenom es stammen soll.[7]

Je nach Ausgestaltung eines Rekombinationsoperators können auch die bei den vorgestellten drei Operatoren verbleibenden Genomstücke zu einem zweiten Kindgenom zusammengefügt werden. Dann erzeugt der so modifizierte Rekombinationsoperator zwei an Stelle von einem Nachkommen pro Ausführung.

Rekombination von ganzzahligen oder reellwertigen Genomen[Bearbeiten | Quelltext bearbeiten]

Beispiel für eine diskrete Rekombination im dreidimensionalen Fall. Die beiden möglichen Nachkommen liegen auf den blau gekennzeichneten Ecken des Quaders.

Für die oben vorgestellten und für die meisten anderen Rekombinationsoperatoren für Bitstrings gilt, dass sie auch auf ganzzahlige oder reellwertige Genome, deren Gene aus je einer ganzen oder reellwertigen Zahl bestehen, entsprechend angewandt werden können. Anstelle einzelner Bits werden dann einfach ganze oder reelle Zahlen in das Kindgenom kopiert. Die Nachkommen liegen auf den verbleibenden Ecken des durch die beiden Eltern aufgespannten Hyperkörpers. Nebenstehendes Bild zeigt dies beispielhaft für den dreidimensionalen Fall, bei dem die Nachkommen auf den Ecken des durch die beiden Eltern und aufgespannten Quaders liegen.

Diskrete Rekombination[Bearbeiten | Quelltext bearbeiten]

Wenn bei der Erzeugung des Nachkommen die Regeln des Uniform Crossover für Bitstrings angewandt werden, spricht man auch von diskreter Rekombination.[8][9]

Intermediäre Rekombination[Bearbeiten | Quelltext bearbeiten]

Bei diesem Rekombinationsoperator werden die Allelwerte des Filialgenoms durch Mischung aus den Allelen der beiden Parentalgenome und erzeugt:[10][9]

Der durch intermediäre Rekombination gebildete Nachkomme der beiden beispielhaften zweidimensionalen Eltern und liegt im grau markierten Bereich.
    mit jeweils zufällig gleichverteilt pro Gen

Die Wahl des Intervalls bewirkt die Einbeziehung des Inneren des durch die Allelwerte der Elterngene aufgespannten Hyperkörpers und einer gewissen Umgebung. Für wird ein Wert von empfohlen, um der bei einem Wert von sonst vorhandenen Tendenz zur Verkleinerung der Allelwerte entgegenzuwirken.[11]

Nebenstehendes Bild zeigt beispielhaft für den zweidimensionalen Fall den grau dargestellten Wertebereich der möglichen neuen Allele der beiden Parentalgenome und bei intermediärer Rekombination. Die möglichen Nachkommen der diskreten Rekombination und sind ebenfalls eingezeichnet. Die intermediäre Rekombination erfüllt die nach der Theorie der virtuellen Alphabete geforderte arithmetische Berechnung der Allelwerte des Filialgenoms.[12] Diskrete und intermediäre Rekombination finden bei der Evolutionsstrategie standardmäßig Verwendung.[13]

Rekombination von Permutationen[Bearbeiten | Quelltext bearbeiten]

Für kombinatorische Aufgabenstellungen werden in der Regel Permutationen verwendet, die speziell für Genome ausgelegt sind, die selbst Permutationen einer Menge sind. Die zu Grunde liegende Menge ist in der Regel eine Teilmenge von oder . Wenn man für solche Genome 1- oder n-Punkt- oder Uniform Crossover für ganzzahlige Genome verwendet, kann es vorkommen, dass ein Filialgenom einige Werte doppelt enthält und andere fehlen. Dies kann durch Reparaturmaßnahmen (genetic repair) behoben werden, etwa indem man die überzähligen Gene (positionstreu) gegen fehlende aus dem anderen Filialgenom austauscht.

Um die Erzeugung ungültiger Nachkommen zu vermeiden, wurden spezielle Crossover-Operatoren für Permutationen entwickelt, die die Grundvoraussetzung für Permutationen erfüllen, nämlich dass alle Elemente der ursprünglichen Permutation auch in der neuen vorhanden sind und nur die Reihenfolge geändert wird.[14] Man kann zwischen kombinatorischen Aufgaben, bei denen alle Folgen zulässig sind, und solchen, bei denen es Einschränkungen in Form von unzulässigen Teilfolgen gibt, unterscheiden. Ein bekannter Vertreter des ersten Aufgabentyps ist das Traveling-Salesman-Problem (TSP), bei dem das Ziel darin besteht, eine Menge von Städten auf der kürzesten Tour genau einmal zu besuchen. Ein Beispiel für den eingeschränkten Aufgabentyp ist das Scheduling von Workflows. Bei Workflows gibt es für einige der einzelnen Arbeitsschritte Reihenfolgebeschränkungen. So kann z. B. ein Gewinde erst geschnitten werden, nachdem das entsprechende Loch in ein Werkstück gebohrt worden ist. Solche Probleme werden auch als reihenfolgebasierte Permutationen bezeichnet.

Beispielhaft seien nachfolgend drei Operatoren vorgestellt.

Position-based Crossover[Bearbeiten | Quelltext bearbeiten]

Das Position-based Crossover[15] und auch das nachfolgend vorgestellte Order Crossover geben die relative Reihenfolge der Elterngenome an das oder die Kinder weiter. Der Rekombinationsoperator wird anhand eines Beispiels erläutert:

Verfahren Beispiel
  • Gegeben seien 2 Permutationen derselben Menge
und
  • sowie eine zufällige Auswahl, welche Stellen direkt von der ersten Permutation übernommen werden sollen.
  • Als Kind-Permutation wird eine Permutation generiert, die überall dort von kopiert ist, wo eine hat.
  • Die Stellen, die von nicht übernommen wurden, werden nun ebenfalls übernommen, aber in der Reihenfolge, wie sie in vorkommen.

  • Damit ergibt sich das fertige Kind-Genom.

Order Crossover (OX1)[Bearbeiten | Quelltext bearbeiten]

Neben dem feingranularen Position-based Crossover gibt es noch das Order Crossover,[2] das in größerem Maße mit zusammenhängenden Teilstücken der Genome arbeitet. Dazu werden Anzahl und Länge der Teilstücke ausgewürfelt und danach mit den entstandenen Gensequenzen ähnlich verfahren, wie zuvor beschrieben:

Verfahren Beispiel
  • Gegeben seien 2 Permutationen derselben Menge
und
  • sowie eine zufällige Auswahl von Genabschnitten in . Hier von Genposition 1 bis 2 und von 6 bis 8.
  • Als Kind-Permutation wird eine Permutation generiert, die die ausgewählten Genabschnitte von positionstreu enthält.
  • Die Stellen, die von nicht übernommen wurden, werden nun ebenfalls übernommen, aber in der Reihenfolge, wie sie in vorkommen.

  • Damit ergibt sich das fertige Kind-Genom.

Das Order Crossover ist unter anderem gut für das Scheduling von Workflows geeignet, wenn es in Verbindung mit 1- und n-Punkt-Crossover eingesetzt wird.[16] In diesem Zusammenhang sei angemerkt, dass beide Operatoren nicht garantieren, dass eine Reihenfolgekorrektheit der Eltern weitervererbt wird. Dies ist jedoch kein Nachteil gegenüber anderen Operatoren, welche die Weitervererbung gewährleisten.[16]

Man kann mit den vorgestellten Operatoren auch ein zweites (in gewisser Weise inverses) Kind erzeugen, indem man die Eltern vertauscht und das Verfahren ohne erneutes Auswürfeln erneut anwendet.

Edge-Rekombination[Bearbeiten | Quelltext bearbeiten]

Eine weitere Variante der Rekombination von Permutationen ist die Edge-Rekombination, bei der die Nachbarschaftsbeziehungen zwischen den Elementen der Elterngenome so gut wie möglich erhalten werden. Bei der Edge-2-Rekombination werden dabei Verbindungen bevorzugt, die in beiden Elterngenomen vorkommen. Die Edge-3- und Edge-4-Rekombination versuchen zusätzlich, durch Inversion der Genome noch zusätzliche Nachbarschaften auszunutzen, die bei der Edge-2-Rekombination verloren gingen. Dieses Verfahren ist besonders gut geeignet für kombinatorische Optimierungsprobleme wie das TSP.[17][18]

Weitere Rekombinationsoperatoren für Permutationen[Bearbeiten | Quelltext bearbeiten]

Im Laufe der Zeit wurde eine Vielzahl von Rekombinationsoperatoren für Permutationen vorgeschlagen, so dass die folgende Liste nur eine kleine Auswahl darstellt. Für weitere Informationen wird der Leser auf die Literatur verwiesen.[1][2][14][18][19]

  1. Partially Mapped Crossover (PMX)[18][20]
  2. Cycle Crossover (CX)[18][21]
  3. Order-based Crossover (OX2)[19][15]
  4. Voting Recombination (VR)[14]
  5. Alternating-positions Crossover (AP)[14]
  6. Maximal Preservative Crossover (MPX)[19][22]
  7. Merge Crossover (MX)[19][23]

Rekombination von Bäumen[Bearbeiten | Quelltext bearbeiten]

Die Rekombination von Bäumen ist speziell für Genome ausgelegt, die selbst Bäume sind.[24][25]

Ein Beispiel für eine Rekombination von Bäumen ist folgendes Verfahren:

  • Gegeben seien zwei Eltern-Bäume (Eltern-Genome).
  • Wähle in jedem Eltern-Baum einen Teilbaum aus.
  • Vertausche diese zwei Teilbäume.

Die zwei so neu entstandenen Bäume sind nun die zwei Kind-Genome.

Literatur[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. a b Hartmut Pohlheim: Evolutionäre Algorithmen. Springer, Berlin, Heidelberg 2000, ISBN 3-642-63052-9, Rekombination, S. 34–45, doi:10.1007/978-3-642-57137-4.
  2. a b c Lawrence Davis: Handbook of Genetic Algorithms. Van Nostrand Reinhold, New York 1991, ISBN 0-442-00173-8 (englisch).
  3. Lashon B. Booker, David B. Fogel, Darrell Whitley, Peter J. Angeline, A.E. Eiben: Recombination. In: Thomas Bäck, David B. Fogel, Zbigniew Michalewicz (Hrsg.): Evolutionary computation. Vol. 1: Basic algorithms and operators. Institute of Physics Pub, Bristol 2000, ISBN 0-585-30560-9, S. 256–307 (englisch).
  4. Xinjie Yu, Mitsuo Gen: Introduction to Evolutionary Algorithms (= Decision Engineering). Springer, London 2010, ISBN 978-1-84996-128-8, Representation, Mutation, and Recombination, S. 40–63, doi:10.1007/978-1-84996-129-5 (englisch).
  5. Xinjie Yu, Mitsuo Gen: Introduction to Evolutionary Algorithms (= Decision Engineering). Springer, London 2010, ISBN 978-1-84996-128-8, Variation Operators for Permutation Code, S. 285–299, doi:10.1007/978-1-84996-129-5 (englisch).
  6. A.E. Eiben, J.E. Smith: Introduction to Evolutionary Computing (= Natural Computing Series). 2. Auflage. Springer, Berlin, Heidelberg 2015, ISBN 978-3-662-44873-1, Representation, Mutation, and Recombination, S. 49–78, doi:10.1007/978-3-662-44874-8 (englisch).
  7. Gilbert Syswerda: Uniform Crossover in Genetic Algorithms. In: David Schaffer (Hrsg.): Proc. of Int. Conf. on Genetic Algorithms (3rd ICGA). Morgan Kaufman Publishers Inc., 1989, ISBN 1-55860-066-3, S. 2–9.
  8. Hartmut Pohlheim: Evolutionäre Algorithmen. Springer, Berlin, Heidelberg 2000, ISBN 3-642-63052-9, Diskrete Rekombination, S. 35, doi:10.1007/978-3-642-57137-4.
  9. a b A.E. Eiben, J.E. Smith: Introduction to Evolutionary Computing (= Natural Computing Series). 2. Auflage. Springer, Berlin, Heidelberg 2015, ISBN 978-3-662-44873-1, Recombination Operators for Real-Valued Representation, S. 56–67, doi:10.1007/978-3-662-44874-8 (englisch).
  10. Xinjie Yu, Mitsuo Gen: Introduction to Evolutionary Algorithms (= Decision Engineering). Springer, London 2010, ISBN 978-1-84996-128-8, Real Code and Related Operators, S. 45–63, doi:10.1007/978-1-84996-129-5 (englisch).
  11. Heinz Mühlenbein, Dirk Schlierkamp-Voosen: Predictive Models for the Breeder Genetic Algorithm I. Continuous Parameter Optimization. In: Evolutionary Computation. Band 1, Nr. 1, März 1993, ISSN 1063-6560, S. 25–49, doi:10.1162/evco.1993.1.1.25 (englisch).
  12. David Goldberg: Real-coded Genetic Algorithms, Virtual Alphabets, and Blocking. In: Complex Systems. Band 5, Nr. 2, 1991, S. 139–167 (englisch, complex-systems.com).
  13. Hans-Paul Schwefel: Evolution and optimum seeking. Wiley, New York 1995, ISBN 0-471-57148-2 (englisch, tu-dortmund.de [abgerufen am 6. März 2023]).
  14. a b c d P. Larrañaga, C.M.H. Kuijpers, R.H. Murga, I. Inza, S. Dizdarevic: Genetic Algorithms for the Travelling Salesman Problem: A Review of Representations and Operators. In: Artificial Intelligence Review. Band 13, Nr. 2, 1999, S. 129–170, doi:10.1023/A:1006529012972 (englisch).
  15. a b Gilbert Syswerda: Schedule Optimization Using Genetic Algorithms. In: Lawrence Davis (Hrsg.): Handbook of Genetic Algorithms. Van Nostrand Reinhold, New York 1991, ISBN 0-442-00173-8, S. 332–349 (englisch).
  16. a b Wilfried Jakob, Alexander Quinte, Karl-Uwe Stucky, Wolfgang Süß: Fast Multi-objective Scheduling of Jobs to Constrained Resources Using a Hybrid Evolutionary Algorithm. In: Günter Rudolph (Hrsg.): Parallel Problem Solving from Nature – PPSN X. LNCS, Nr. 5199. Springer, Berlin, Heidelberg 2008, ISBN 978-3-540-87699-1, S. 1031–1040, doi:10.1007/978-3-540-87700-4_102 (englisch).
  17. Darrell Whitley, Timothy Starkweather, Daniel Shaner: The Traveling Salesman and Sequence Scheduling: Quality Solutions Using Genetic Edge Recombination. In: Lawrence Davis (Hrsg.): Handbook of Genetic Algorithms. Van Nostrand Reinhold, New York 1991 (englisch, psu.edu [PDF]).
  18. a b c d A.E. Eiben, J.E. Smith: Introduction to Evolutionary Computing (= Natural Computing Series). 2. Auflage. Springer, Berlin, Heidelberg 2015, ISBN 978-3-662-44873-1, Recombination for Permutation Representation, S. 70–74, doi:10.1007/978-3-662-44874-8 (englisch).
  19. a b c d Darrell Whitley: Permutations. In: Thomas Bäck, David B. Fogel, Zbigniew Michalewicz (Hrsg.): Evolutionary computation. Vol. 1: Basic algorithms and operators. Institute of Physics Pub, Bristol 2000, ISBN 0-585-30560-9, S. 274–283.
  20. David E. Goldberg, R. Lingle: Alleles, loci, and the traveling salesman problem. In: John J. Grefenstette (Hrsg.): Proceedings of the First International Conference on Genetic Algorithms and Their Applications. Lawrence Erlbaum Associates, Hillsdale, N.J. 1985, ISBN 0-8058-0426-9, S. 154–159 (englisch).
  21. I.M. Oliver, D.J. Smith, J. Holland: A study of permutation crossover operators on the travelling salesman problem. In: John J. Grefenstette (Hrsg.): Proceedings of the second International Conference on Genetic Algorithms. Lawrence Erlbaum Associates, Hillsdale, N.J. 1987, ISBN 0-8058-0158-8, S. 224–230 (englisch).
  22. John Dzubera, Darrell Whitley: Advanced correlation analysis of operators for the traveling salesman problem. In: Parallel Problem Solving from Nature — PPSN III. LNCS 866. Springer, Berlin, Heidelberg 1994, ISBN 3-540-58484-6, S. 68–77, doi:10.1007/3-540-58484-6_251 (englisch).
  23. Joe L. Blanton, Roger L. Wainwright: Multiple Vehicle Routing with Time and Capacity Constraints Using Genetic Algorithm. In: Stephanie Forrest (Hrsg.): Proceedings of the Fifth International Conference on Genetic Algorithms. Morgan Kaufmann Publishers, San Mateo, Calif. 1993, ISBN 1-55860-299-2, S. 452–459 (englisch).
  24. Karsten Weicker: Evolutionäre Algorithmen. Teubner, Stuttgart 2002, ISBN 3-519-00362-7, Genetisches Programmieren, S. 147–156.
  25. Peter J. Angeline: Crossover: parse trees. In: David B. Fogel, Thomas Bäck, Zbigniew Michalewicz (Hrsg.): Evolutionary computation. Vol. 1: Basic algorithms and operators. Institute of Physics Pub, Bristol 2000, ISBN 0-585-30560-9, S. 286–289.