https://github.com/luisdasartimanhas/pso-otimizacao-por-enxame-de-particulas
Utilize um algoritmo de otimização por enxame de partículas para minimizar a função descrita pela equação abaixo, função Eggholder function, que é uma função clássica na condução de testes para otimização de funções. Bidimensional e apresentando vários mínimos locais, essa função alcança o mínimo global em: Minimize a função (Eggholder function)
https://github.com/luisdasartimanhas/pso-otimizacao-por-enxame-de-particulas
Last synced: 3 months ago
JSON representation
Utilize um algoritmo de otimização por enxame de partículas para minimizar a função descrita pela equação abaixo, função Eggholder function, que é uma função clássica na condução de testes para otimização de funções. Bidimensional e apresentando vários mínimos locais, essa função alcança o mínimo global em: Minimize a função (Eggholder function)
- Host: GitHub
- URL: https://github.com/luisdasartimanhas/pso-otimizacao-por-enxame-de-particulas
- Owner: LUISDASARTIMANHAS
- License: gpl-3.0
- Created: 2024-12-05T16:28:49.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-12-16T02:02:37.000Z (6 months ago)
- Last Synced: 2025-02-01T21:26:20.712Z (5 months ago)
- Language: C
- Homepage:
- Size: 18.8 MB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# PSO-Otimizacao-por-Enxame-de-Particulas
Utilize um algoritmo de otimização por enxame de partículas para minimizar a função descrita pela equação abaixo, função Eggholder function, que é uma função clássica na condução de testes para otimização de funções. Bidimensional e apresentando vários mínimos locais, essa função alcança o mínimo global em: Minimize a função (Eggholder function)Algoritmo: Pseudocódigo do PSO.
1. Determine o número de partículas P da população.
2. Inicialize aleatoriamente a posição inicial (x) de cada partícula p de P.
3. Atribua uma velocidade inicial (v) igual para todas as partículas.
4. Para cada partícula p em P faça:
(a) Calcule sua aptidão fp = f (p).
(b) Calcule a melhor posição da partícula p até o momento (pΒ).6. Descubra a partícula com a melhor aptidão de toda a população (gΒ).
7. Para cada partícula p em P faça:
(a) Atualize a velocidade da partícula pela fórmula:vi
(t +1)=W∗vi
(t)+ϕ1∗rand1
(.)∗( pB−xi
(t))+ϕ2∗rand2
( gB−xi
(t))(b) Atualize a posição da particular pela fórmula:
x (t 1) x (t) v (t 1)
7. Se condição de término não for alcançada, retorne ao passo 4.
Observações:
• Para limitar a velocidade de uma partícula para que o sistema não extrapole o
espaço de busca, são impostos limites (vmax) para seus valores em cada dimensão
(d) do espaço de busca:• No algoritmo, as velocidades iniciais devem ser geradas aleatoriamente, com valores
limitados a 15% do espaço de busca de cada parâmetro (~[-77, +77]).• Assumir como intervalo x∈[−512,+512] e y∈[−512,+512]
• Em relação aos valores máximos da partícula, caso este saia do intervalo das variáveis, eles
deverão ser corrigidos para o máximo ou mínimo do intervalo [-512, +512], e a velocidade
setada em 0.• O critério de parada será o número de iterações (20, 50 e 100 iterações).
• Considere o tamanho da população como 50 e 100 indivíduos.
• A escolha dos parâmetros do algoritmo evolutivo (setup) faz parte do trabalho. Por favor,
use valores conforme recomendado na literatura (estado da arte).• Faça uma análise estatística dos resultados obtidos para 10 execuções, descrevendo numa
tabela o melhor, a média dos resultados e o desvio padrão.• Plote os gráficos da curva com os dados obtidos (melhor resultado e média) para cada
número de iterações (20, 50 e 100).• Escreva um relatório sobre os resultados obtidos (análise) e a eficácia do algoritmo. A
entrega do código fonte é obrigatória.