Section 3. Chapitre 4
single
Défi : Implémenter l’Optimisation par Essaim Particulaire
Glissez pour afficher le menu
Tâche
Glissez pour commencer à coder
Vous devez implémenter la logique principale de mise à jour pour un algorithme d'optimisation par essaim particulaire (PSO). L'objectif est de trouver le minimum de la fonction f(x) = x² + 5 * sin(x) sur l'intervalle [-10, 10].
Tous les paramètres (comme l'inertie w, les coefficients cognitifs c1 et sociaux c2) ainsi que les listes initiales (positions, velocities, pbest_positions, pbest_values, gbest_position, gbest_value) sont déjà configurés.
Votre tâche consiste à compléter le processus itératif principal :
- À l'intérieur de la boucle interne
for(pour chaque particulei), commencez par mettre à jour la vitesse de la particule. Utilisez l'équation complète de mise à jour de la vitesse du PSO :w * velocities[i] + c1 * r1 * (pbest_positions[i] - positions[i]) + c2 * r2 * (gbest_position - positions[i]). - Mettez à jour la position de la particule en ajoutant sa nouvelle
velocities[i]àpositions[i]. - Après avoir calculé la nouvelle
valueàpositions[i], vérifiez si cette nouvellevalueest meilleure que le meilleur personnel de la particule (pbest_values[i]). Si c'est le cas, mettez à jour à la foispbest_positions[i]etpbest_values[i]. - Après la boucle interne (qui met à jour toutes les particules), vérifiez si la nouvelle meilleure valeur personnelle (que vous trouvez et stockez dans
min_value) est meilleure que le meilleur global actuel (gbest_value). Si c'est le cas, mettez à jour à la foisgbest_valueetgbest_position.
Solution
Tout était clair ?
Merci pour vos commentaires !
Section 3. Chapitre 4
single
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion