粒子群算法
Particle Swarm Optimization
王哲峰 / 2024-09-04
Particle Swarm Optimization, PSO
粒子群算法原理
粒子群算法求解无约束优化问题
用粒子群算法求解 Rastrigin 函数的极小值,Rastrigin 是一个典型的非线性多峰函数, 在搜索区域内存在许多极大值和极小值,导致寻找全局最小值比较困难,常用来测试寻优算法的性能。
Rastrigin 函数的表达式如下:
$$Z = 2a + x^{2} - a cos 2 \pi x + y^{2} - a cos 2 \pi y$$
这是一个典型非凸优化问题,通过 Python 绘制函数图形如下:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
from mpl_toolkits.mplot3d import Axes3D
# 生成 X 和 Y 的数据
X = np.arange(-5, 5, 0.1)
Y = np.arange(-5, 5, 0.1)
X, Y = np.meshgrid(X, Y)