Wie funktionieren Mutation und Crossover mit realen Chromosomen?


7

Wie genau werden "Mutation" und "Cross-Over" im Kontext eines genetischen Algorithmus angewendet, der auf reellen Zahlen basiert (im Gegensatz zu nur Bits)? Ich glaube, ich habe verstanden, wie diese beiden Phasen in einem "kanonischen" Kontext angewendet werden, in dem Chromosomen Bits von Bits fester Länge sind, aber ich kann keine Beispiele für andere Situationen finden. Wie würden diese Phasen im Bereich der reellen Zahlen aussehen?

Antworten:


4

Sie haben ein Genom mit bestimmten Genen:

genome = { GeneA: value, GeneB: value, GeneC: value }

Nehmen wir zum Beispiel:

genome = { GeneA: 1, GeneB: 2.5, GeneC: 3.4 }

Einige Beispiele für Mutationen könnten sein:

  • Schalten Sie zwei Gene um: { GeneA: 1, GeneB: 3.4, GeneC: 2.5 }
  • Addiere / subtrahiere einen zufälligen Wert von einem Gen: { GeneA: 0.9, GeneB: 2.5, GeneC: 3.4 }

Angenommen, Sie haben zwei Genome:

genome1 = { GeneA: 1, GeneB: 2.5, GeneC: 3.4 }
genome2 = { GeneA: 0.4, GeneB: 3.5, GeneC: 3.2 }

Einige Beispiele für Frequenzweichen könnten sein:

  • Den Durchschnitt nehmen: { GeneA: 0.7, GeneB: 3.0, GeneC: 3.3 }
  • Uniform (50% Chance): { GeneA: 0.4, GeneB: 2.5, GeneC: 3.2 }
  • N-Punkt-Frequenzweiche: { GeneA: 1, | CROSSOVER POINT | GeneB: 3.5, GeneC: 3.2 }

Sie können ziemlich einfallsreich sein, wenn Sie Mutations- und Crossover-Methoden entwickeln.


4

Wie @Thomas W sagte, können Sie ziemlich einfallsreich sein, wenn Sie Mutations- und Crossover-Methoden entwickeln. Jedes Problem hat seine eigenen Merkmale und erfordert daher eine andere Strategie.

ABER aus meiner Erfahrung würde ich sagen, dass 90% der Überkreuzungen und Mutationen auf Genotypen mit reellen Zahlen unter Verwendung des BLX-α-Algorithmus gelöst werden.

Frequenzweiche:

BlX-α-Algorithmusbereich

Dieser Algorithmus ist wirklich einfach. Angesichts der Eltern X und Y und eines α-Werts (innerhalb des Bereichs [0,1], im Allgemeinen um 0,1 / 0,15, dies hängt jedoch vom Problem ab): Für jedes Gen Ihres Genotyps:

  1. extrahiere die Gene xi und yi
  2. Finden Sie die minimalen und maximalen Werte
  3. Das neue Gen ist eine Zufallszahl im Intervall [min - Bereich * α, max + Bereich * α]

Eine Variation dieses Algorithmus ist das BLX-αβ, bei dem wir berücksichtigen, welcher Elternteil besser abschneidet, und zwei Konstanten (α> β) verwenden, um die Wahrscheinlichkeit zu erhöhen, dass der neue Wert näher an dem des am besten geeigneten Elternteils liegt

BLX-αβ-Algorithmusbereich

Mutation:

Bei der Mutation ist die Situation ähnlich: Wir müssen einen zufälligen Wert erhalten, der sich auf unsere Problemdomäne bezieht (wir wollen nicht, dass die Mutationen destruktiv sind! Sie haben die Funktion , den Raum zu erkunden ).
In diesen Fällen ist es nützlich, einen Bereich für die Mutation zu bestimmen und diesen Bereich zu verwenden, um den neuen Wert des Gens unter Verwendung von BLX-α zu finden.

Ein ausgefeilterer Mutationsalgorithmus kann unter Verwendung von BLX-α an Grenzen erreicht werden, die vom tatsächlichen Wert des Gens und der Fitnessfunktion des Individuums abhängen.
Stellen wir uns vor, dass unser Individuum sehr schlecht abschneidet. In diesem Fall wird der Mutationsoperator verwendet, um das Individuum an einen entfernten Punkt im Suchraum zu verschieben, wo es wahrscheinlich eine bessere Leistung erbringt.
Wenn das Individuum jedoch bereits fit ist, möchten wir möglicherweise keine dramatischen Veränderungen mithilfe der Mutation einführen. In diesem Fall wäre die Mutation Bereich mehr enthalten und würde die Funktion haben Abstimmen des Genotyps statt Erkundung für bessere Alternativen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.