Bonjour,
Je débute dans les algorithmes génétiques. Je voudrais savoir comment je pourrais transformer une variable en une chaine binaire afin de faciliter la sélection, mutation,.... pour cette variable.
Merci d'avance
Bonjour,
Je débute dans les algorithmes génétiques. Je voudrais savoir comment je pourrais transformer une variable en une chaine binaire afin de faciliter la sélection, mutation,.... pour cette variable.
Merci d'avance
Si la finalité de ton projet est de recréer une librairie pour algorithmes génétiques, alors tu devrais plutôt poser ta question sur le forum de ton langage préféré.
Par contre, si tu souhaites juste utiliser les algo génétiques pour atteindre un autre but, alors tu pourras peut-être gagner du temps en utilisant des librairies déja existantes ici et là, et disponibles pour plusieurs langages de programmation.
Sinon tu peux aussi envisager d'écrire ton code génétique au format XML. Ca te donne la possibilité de l'éditer "à la main" si besoin.
A garder en tête que les algorithmes génétiques demandent souvent beaucoup de puissance de calcul, donc il faut éviter les implémentations trop lentes, i.e. entre paramétrer du xml qui sera appelé par le programme lors de l'exécution ou mettre des paramètres dans du code compilé par la suite, la seconde solution sera peut-être meilleure si besoin d'une puissance de calcul importante.Envoyé par egann538
Quel est le type de ta variable ? Un réel ? Un entier ? Une structure plus complexe du genre réseau de neurones ?Envoyé par Maximus7898520
rna = réseau de neurones artificiels ou bien acide ribonucléique ?Envoyé par Maximus7898520
La sélection n'a pas grand-chose à voir avec le mode de codage de ton génotype, elle se base simplement sur le score de ta fonction fitness.Envoyé par Maximus7898520
Concernant la mutation, si tu traduis ta variable en chaine binaire, cela va discrétiser l'ensemble de tes poids de ton réseau, mais peut-être que dans ton cas cela n'est pas gênant. Cependant, faire muter des réels est tout aussi simple techniquement, mais peut ralentir l'évolution (eg http://pages.isir.upmc.fr/~mouret/sf...html#sec-2.5.2 - c'est une librairie implémentant des algorithmes évolutionnistes, et il y a d'ailleurs un module de temps permettant de manipuler des individus ayant pour structure un réseau de neurones).
Comptes-tu ajouter en plus des mutations structurelles (ajout/suppression de neurones/connexions) ?
Partager