粒子群优化策略
粒子群策略的理念起源于对鸟/鱼群捕食模式的研究,模仿鸟集群飞行觅食的动态,鸟之间通过团队协作实现群体最佳目标,是一种基于Swarm智力的优化手段。它不涉及遗传算法的“交配”(Crossover)和“突变”(Mutation)操作,它通过追踪当前找到的最优解来探寻全局最优。粒子群策略与其他现代优化策略相比的一个显著特点就是所需调整的参数极少、易于操作,收敛迅速,已成为现代优化策略领域研究的焦点。
想象这样一个情景:一群鸟在随机搜寻食物。已知在这片区域内仅有一块食物;所有的鸟都不清楚食物的具体位置;但它们能够感知到当前的位置与食物还有多远。那么找到食物的最佳策略是什么呢?
1.在离食物最近的鸟的周边区域进行搜寻
2.根据自身飞行的经验推测食物的位置。
PSO正从这种模型中获取灵感,PSO的基础是信息的社会性共享
每个优化问题的解都被视为一只鸟,称之为“粒子”。所有粒子都在一个D维空间中进行搜寻。
所有粒子都由一个适应度函数确定适应度以评价当前位置的好坏。
每个粒子必须具备记忆功能,能记住所搜寻到的最佳位置。
每个粒子还有一个速度来决定飞行的距离和方向。这个速度根据它自身的飞行经验以及同伴的飞行经验进行动态调整。
粒子速度更新公式包括三部分:第一部分为“惯性部分”,即对粒子先前速度的记忆;第二部分为“自我认知”部分,可理解为粒子i当前位置与自己最好位置之间的距离;第三部分为“社会经验”部分,表示粒子间的信息共享与合作,可理解为粒子i当前位置与群体最好位置之间的距离。
第1步 在初始化范围内,对粒子群进行随机初始化,包括随机位置和速度
第2步 根据适应度函数,计算每个粒子的适应度
第3步 对每个粒子,将其当前适应度与其个体历史最佳位置(pbest)对应的适应度作比较,如果当前的适应度更高,则用当前位置更新粒子个体的历史最优位置pbest
第4步 对每个粒子,将其当前适应度与全局最佳位置(gbest)对应的适应度作比较,如果当前的适应度更高,则用当前位置更新粒子群体的历史最优位置gbest
第5步 更新粒子的速度和位置
第6步 若未达到终止条件,则转第2步
【通常算法达到最大迭代次数或者最佳适应度值得增量小于某个给定的阈值时算法停止】
粒子群优化策略流程图如下:
以Ras函数(Rastrigin's Function)为目标函数,求其在x1,x2∈[-5,5]上的最小值。这个函数对模拟退火、进化计算等算法具有很强的误导性,因为它拥有非常多的局部最小值点和局部最大值点,很容易使算法陷入局部最优,而无法得到全局最优解。如下图所示,该函数只在(0,0)处存在全局最小值0。
标准粒子群优化策略的速度和位置更新方式
1、需要更新速度以及位置速度更新公式:v(i)=v(i)w+c1rand(pbest(i)-x(i))+c2rand(gbest(i)-x(i))。
2、速度更新公式由三部分组成:之前的速度影响v(i)*w,个体最优影响(pbest(i)-x(i))和全局最优的影响(gbest(i)-x(i))则位置更新公式为:x(i)=x(i)+v(i)。
3、其中,i指的是种群中的第i个粒子x(i):粒子i的位置,刚开始应该给粒子随机初始化位置v(i):粒子i的速度,刚开始应该给粒子随机初始化速度c1是粒子个体的学习因子,c2是粒子的群体学习因子,表示个体最优和群体最优的影响,w为惯性因子,代表了历史成绩的影响pbest和gbest分别代表粒子个体最优位置和群体最优位置。