Bonjour,
J'ai programmer un algorithme génétique en java, afin de minimiser la fonction fitness f suivante:
Voici mon algo :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <img src="http://miscws.developpez.com/latex2pngcache.php?latex=U-DlStOo0FSwVYhJSk3PzKsuy00sKcqsqFWIKUtNrg6tVdBViCkuzY2vzrQ1rI2rzqtVqIjPVIgpycxNLYaoCQOqTc1LQejk5QIA" alt="Formule mathématique" title="Formule mathématique" />
Je voudrais juste votre avis en ce qui concerne les croisements et mutations.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Population initiale -> N individus (par exemple N=1000) Evaluation selon fonction fitness Selection par rang: Tri croissant des individus selon leur fitness. On Garde les M meilleurs (i.e les premiers de la liste puisque on veut celui qui minimise f) Croisement: On tire au hasard un paire d'individus dans les M meilleurs On effectue le croisement, deux nouveaux individus seront créer On répète l'opération de croisement selon le taux de croisement (ex: 60% alors sur mille on aura 600 individus issus du croisement) Mutation: On choisi au hasard des individus à muter dans M meilleurs On fait les mutations Génération suivante(taille N) = M meilleurs + individus croiser + mutants On refait toutes ces opérations jusqu'à trouver l'individu avec un fitness proche de 0
Merci.
Partager