Seção 3. Capítulo 4
single
Desafio: Implementar Otimização por Enxame de Partículas
Deslize para mostrar o menu
Tarefa
Deslize para começar a programar
Você deve implementar a lógica principal de atualização para um algoritmo de Otimização por Enxame de Partículas (PSO). O objetivo é encontrar o mínimo da função f(x) = x² + 5 * sin(x) no intervalo [-10, 10].
Todos os parâmetros (como inércia w, cognitivo c1 e social c2) e listas iniciais (positions, velocities, pbest_positions, pbest_values, gbest_position, gbest_value) já estão configurados.
Sua tarefa é preencher o processo iterativo principal:
- Dentro do laço interno
for(para cada partículai), primeiro atualize a velocidade da partícula. Utilize a equação completa de atualização de velocidade do PSO:w * velocities[i] + c1 * r1 * (pbest_positions[i] - positions[i]) + c2 * r2 * (gbest_position - positions[i]). - Atualize a posição da partícula somando o novo
velocities[i]aopositions[i]. - Após calcular o novo
valueempositions[i], verifique se esse novovalueé melhor que o melhor pessoal da partícula (pbest_values[i]). Se for, atualize tantopbest_positions[i]quantopbest_values[i]. - Após o laço interno (que atualiza todas as partículas), verifique se o novo melhor valor pessoal (que você encontra e armazena em
min_value) é melhor que o melhor global atual (gbest_value). Se for, atualize tantogbest_valuequantogbest_position.
Solução
Tudo estava claro?
Obrigado pelo seu feedback!
Seção 3. Capítulo 4
single
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo