Dieser Artikel wurde als eigenes Memorandum verfasst. Bitte haben Sie Verständnis dafür, ob er schwer zu verstehen ist.
Unter den Überkreuzungen genetischer Algorithmen werden wir uns auf kreisförmige Überkreuzungen konzentrieren.
Circular Crossover ist ein Crossover-Verfahren, das für die sequentielle Codierung verwendet wird. Ich werde es Schritt für Schritt erklären. STEP0 Geben Sie zunächst die Sequenz der Gene von Elternteil 1 und Elternteil 2 wie folgt an.
Elternteil 1 = [3, 7, 2, 5, 6, 1, 4] Elternteil 2 = [1, 7, 3, 6, 2, 4, 5] STEP1 Entscheide dich zufällig für eine Reihe von Zahlen. Diesmal,
Elternteil 1 = [3, 7, ** 2 **, 5, 6, 1, 4] Elternteil 2 = [1, 7, ** 3 **, 6, 2, 4, 5]
Ich habe es gemacht. Kopieren Sie das Gen auf die Nachkommen, ohne diese Position zu ändern.
Kind 1 = [#, #, 2, #, #, #, #] Kind 2 = [#, #, 3, #, #, #, #]
"#" Ist ein Ort, an dem die Nummern noch nicht gefüllt sind. STEP2 Übertragen Sie als Nächstes die gepaarten Nummern des zufällig bestimmten Nummernpaars auf das Kind. Es ist 3, wenn es von Kind 1 aus gesehen wird, und 2, wenn es von Kind 2 aus gesehen wird. Kopieren Sie diese Nummer an denselben Speicherort wie das übergeordnete Element. Die Positionen der Elternnummern sind wie folgt.
Elternteil 1 = [** 3 **, 7, 2, 5, 5, 6, 1, 4] Elternteil 2 = [1, 7, 3, 6, ** 2 **, 4, 5]
Wenn Sie es bewegen, ohne diese Position zu ändern
Kind 1 = [** 3 **, #, 2, #, #, #, #] Kind 2 = [#, #, 3, #, ** 2 **, #, #]
Es wird so kopiert. STEP3 Dies ist der letzte Schritt. Schreiben Sie zunächst die Liste der Kinder wie folgt um, um das Nachdenken zu erleichtern.
Kind 1 = [3, # (7), 2, # (5), # (6), # (1), # (4)] Kind 2 = [# (1), # (7), 3, # (6), 2, # (4), # (5)]
Die Zahlen in Klammern sind die Zahlen, die der Elternteil an derselben Position hat. Dann wird diese Nummer zwischen den Kindern in der Reihenfolge von links ausgetauscht. Erstens, wenn Sie nur das linke Ende ersetzen,
Kind 1 = [3, ** # (1) , 2, # (5), # (6), # (1), # (4)] Kind 2 = [ # (7) **, # (7), 3, # (6), 2, # (4), # (5)]
Es sieht aus wie. Wenn Sie dies bis zum rechten Ende wiederholen und "#"
Kind 1 = [3, 1, 2, 7, 6, 4, 5] Kind 2 = [7, 5, 3, 6, 2, 1, 4, 4]
Das Gen wurde wie folgt kopiert. Die getauschten Zahlenpaare sind "5⇔7", "6⇔6", "1⇔4" und "4⇔5" als "Kind 1 Nummer ⇔ Kind 2 Nummer". Dies ist abgeschlossen.
Recommended Posts