Bonjour à tous,
J'ai un problème avec l'algorithme suivant :
Code MATLAB : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 vitesse=rand(4,1); inertie=0.8; essaim=4; % Calcul des nouvelles vitesses de chaque particule : for i=1:1:essaim c1=rand(1); c2=1-c1; vitesse(i,1)=inertie*vitesse(i,1) vitesse(i,1)=vitesse(i,1)+c1*(best_perso(i,1)-fitness(i,iteration+1)) vitesse(i,1)=vitesse(i,1)+c2*(best_voisinage(i,1)-fitness(i,iteration+1)) end
Au moment où i=2, lors de l'application de la dernière formule, le vecteur entier est réinitialisé à 0. La formule n'est pas appliquée uniquement à la deuxième composante du vecteur vitesse !
Pendant le calcul, les vecteurs ont les valeurs suivantes :
Une idée de l'erreur qui peut réinitialiser l'intégralité de mon vecteur vitesse à 0 ?
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
20
21
22
23
24
25
26 best_perso = 1.0e+009 * 1.6850 1.7000 1.6951 1.6931 fitness = 1.0e+009 * 0.0000 1.6850 0.0000 1.7000 0.0000 1.6951 0.0000 1.6931 best_voisinage = 1.0e+009 * 1.6850 1.6850 1.6931 1.6850
Merci beaucoup pour votre aide,
Noëlie
Partager