Mon previous question dément mon inexpérience et était basé sur une hypothèse. Maintenant, je suis beaucoup plus sage. (Mettez 1s et 0s dans une chaîne? Pah! Je ris à la suggestion!)Quelle est la manière sensée de représenter un génome binaire pour un algorithme génétique?
Ma question est alors, comment devrais-je encoder mes génomes?
Sur le papier, ils se présentent comme suit:
01010011010110010
17 bits qui encode (dans certains cas isolés et, dans certains cas, en tant que groupes) les paramètres à tester.
Les exigences sont les suivantes:
- a besoin d'être évolutive. Il pourrait y avoir 17 pour le moment, mais cela pourrait augmenter/diminuer au fur et à mesure que les options sont ajoutées, supprimées ou modifiées.
- Chaque bit doit être individuellement retournable, pour représenter des mutations ponctuelles.
- Idéalement, il devrait être facile de prendre le dernier X% de deux génomes et de les inverser (représentant un croisement).
- Il doit y avoir une manière simple de représenter le génome en texte clair. Ici, l'accent est mis sur la commodité plutôt que sur la traductibilité humaine. (Pensez URL raccourcis.)
Quelqu'un a eu d'excellentes idées? (S'il est utile, j'utilise C#.)
Les groupes de codage dans un 'BitArray' peuvent générer des membres non valides lors de la mutation ou du croisement des bits. Jetez un oeil [ici] (http://www.obitko.com/tutorials/genetic-algorithms/encoding.php) pour quelques codages alternatifs. –