利用群体中的个体对信息的共享使整个群体的运动在问题求解空间中产生从无序到有序的演化过程,从而获得最优解。
粒子群参数设置
1 | int n = 3; // 粒子个数 |
适应度函数
定义适应度函数,每个粒子都有自己的适应度(这里求解y=-x2+2x的最大值)
1 | public void fitnessFunction() { |
粒子群初始化
初始化当前个体最优位置,并找到群体最优位置
1 | public void init() { |
更新粒子群
更新每个粒子的位置和速度,更新个体极值和群体极值
1 | public void PSO(int max) { |
主函数
1 | public static void main(String[] args) { |
运算结果
1 | 粒子n0 : x = 0.9999999999934679 v = 2.595715028936614E-12 |