Bonjour,
Je suis coincé sur ce petit code qui comporte deux classes: individu qui génère un vecteur aléatoire et la classe mutation qui mis a jour et affiche le nouveau individu.
voila la classe mutation qui returne toujours l'individu initiale
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
17
18
19 public class individu implements constant { Random random = new Random(); double[] parent = new double[2]; double[] stepSize = new double[1]; //===============crrer vecteur initial============ public individu(){ System.out.print("["); for (int i=0; i<parent.length; i++) { parent[i]= range(); System.out.print(parent[i]); System.out.print(" "); } System.out.print("] "); for(int i=0; i<stepSize.length; i++) { stepSize[i]=random.nextDouble(); System.out.println("step size "+ stepSize[i]); } }
Aprés l'exécution je reçois aucune mise a jour de l'individu créer
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
17
18
19 public class mutation implements constant { public static individu mutate(individu parent) { individu fils = new individu(); fils.stepSize= parent.stepSize; for (int i=0; i<fils.stepSize.length; i++) { fils.stepSize[i]= fils.stepSize[i] * Math.exp(MUTATION_T_N * random.nextGaussian()); System.out.println(fils.stepSize[i]); } for(int i=0; i<NUMBER_OF_DIMENSION; i++) { fils.parent[i]=fils.parent[i] + random.nextGaussian()*fils.stepSize[0]; } return fils; // j'attend le nouveau individu } }
Merci d'avance ))
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public class run { public static void main(String[] args) { // creer un objet individu individu vector = new individu(); vector.setFitness(); mutation.mutate(vector); } }
Partager