Sección 3. Capítulo 4
single
Desafío: Implementar Optimización por Enjambre de Partículas
Desliza para mostrar el menú
Tarea
Desliza para comenzar a programar
Se solicita implementar la lógica principal de actualización para un algoritmo de Optimización por Enjambre de Partículas (PSO). El objetivo es encontrar el mínimo de la función f(x) = x² + 5 * sin(x) en el intervalo [-10, 10].
Todos los parámetros (como inercia w, cognitivo c1 y social c2) y las listas iniciales (positions, velocities, pbest_positions, pbest_values, gbest_position, gbest_value) ya están configurados.
La tarea consiste en completar el proceso iterativo principal:
- Dentro del ciclo interno
for(para cada partículai), primero actualizar la velocidad de la partícula. Utilizar la ecuación completa de actualización de velocidad de PSO:w * velocities[i] + c1 * r1 * (pbest_positions[i] - positions[i]) + c2 * r2 * (gbest_position - positions[i]). - Actualizar la posición de la partícula sumando su nueva
velocities[i]apositions[i]. - Después de calcular el nuevo
valueenpositions[i], verificar si este nuevovaluees mejor que el mejor personal de la partícula (pbest_values[i]). Si lo es, actualizar tantopbest_positions[i]comopbest_values[i]. - Después del ciclo interno (que actualiza todas las partículas), verificar si el nuevo mejor valor personal (que se encuentra y almacena en
min_value) es mejor que el mejor global actual (gbest_value). Si lo es, actualizar tantogbest_valuecomogbest_position.
Solución
¿Todo estuvo claro?
¡Gracias por tus comentarios!
Sección 3. Capítulo 4
single
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla