Bonjour à tous,
J'essaye d'implémenter une classe d'algorithme génétique toute simple, mon soucis principal étant la mise en oeuvre.
D'une manière basique, pour un algorithme génétique, on utilise des gènes, des chromosomes (composés d'un certains nombre de gènes) et enfin une population, composée d'un certains nombres de chromosomes.
La réprésentation habituelle des gènes (et incidemment des chromosomes) se fait par l'intermédiaire de bits.
Pour ce faire j'ai pensé à "vector <bool>" qui correspond, je crois, assez bien à cela.
J'en arrive à mon problème :
En imaginant qu'une population soit composée d'une centaine de chromosomes et que chaque chromosome soit composé de 5 gènes, j'en arrive à 3 vector imbriqués ce que je trouve très lourd à gérer.
la spécialisation de vector<bool> est elle un choix judicieux ? manipuler les chaînes de bits en tant que chaînes de caractères (via std::string) n'eut-il pas été un meilleur choix ? l'utilisation de <valarray> serait-elle une option envisageable ?
Sachant que je dois pouvoir manipuler chaque gène indépendamment, ou encore chaque chromosome de la population, quel serait au final la solution la plus adéquate ?
En vous remerciant.
Partager