Frage

vorherige Frage meine Unerfahrenheit Lügen gestraft und wurde auf der Annahme basiert. Jetzt bin ich viel klüger. (Put 1 und 0 in einem String? Pah! Ich lache auf Vorschlag!)

Meine Frage ist dann, Wie soll ich meine Genome kodieren?

Auf dem Papier sehen sie aus wie diese:

01010011010110010

17 Bits, kodieren (in einigen Fällen einzeln und in einigen Fällen als Gruppen) die Parameter geprüft werden.

Die Anforderungen sind:

  1. Anforderungen skalierbar. Es könnte 17 im Moment, aber das könnte wachsen / schrumpfen als Optionen hinzugefügt, entfernt oder haben ihren Bereich geändert.
  2. Jedes Bit Bedürfnisse individuell flippable sein, Punktmutationen zu repräsentieren.
  3. Im Idealfall sollte es leicht sein, die letzte X% von zwei Genome zu nehmen und schalten Sie sie über (die Crossover).
  4. Es muss eine einfache Möglichkeit, das Genom im Nur-Text darzustellen. Hier liegt der Schwerpunkt auf Komfort und nicht menschliche Übersetzbarkeit. (Man denke URL Shortener.)

got Wer noch keine gute Ideen? (Wenn es sinnvoll ist, ich bin mit C #).

War es hilfreich?

Lösung

Wie Andrey sagte, ist BitArray wahrscheinlich die beste Antwort, es erfüllt alle Anforderungen.

1) die Anzahl der Bits mit dem Konstruktor festlegen

2) ermöglicht es Ihnen, Set (ein oder aus), Oder Und Xor, nicht auf Bits

3) können Sie eine Schleife über dem letzten x% tun Crossover

4) eine ToString ist, dass sollten Sie erlauben die Ausgabe es.

Andere Tipps

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top