Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Desafio: Implementar Otimização por Enxame de Partículas | Algoritmos Baseados em Enxames
Algoritmos Bioinspirados
Seção 3. Capítulo 4
single

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:

  1. Dentro do laço interno for (para cada partícula i), 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]).
  2. Atualize a posição da partícula somando o novo velocities[i] ao positions[i].
  3. Após calcular o novo value em positions[i], verifique se esse novo value é melhor que o melhor pessoal da partícula (pbest_values[i]). Se for, atualize tanto pbest_positions[i] quanto pbest_values[i].
  4. 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 tanto gbest_value quanto gbest_position.

Solução

Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 4
single

single

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

some-alt