数学建模社区-数学中国
标题:
粒子群算法
[打印本页]
作者:
1827846396
时间:
2022-8-11 09:20
标题:
粒子群算法
在数学建模比赛中,优化类问题是个非常重要的问题,基本可以说无论哪个比赛都会有优化类问题,而粒子群算法正是处理优化类问题的一个关键算法,它的原理简单也受到很多人的青睐。
/ G/ V. z' G: N7 `6 n/ K4 b2 K
1995年,美国学者Kennedy和Eberhart共同提出了粒子群算法,其基本思想源于对鸟类群体行为进行建模与仿真的研究结果的启发[1]。粒子群优化算法(PSO:Particle swarm optimization) 是一种进化计算技术。源于对鸟群捕食的行为研究。它的核心思想是
利用群体中的个体对信息的共享使整个群体的运动在问题求解空间中产生从无序到有序的演化过程,从而获得问题的可行解。
PSO的优势:在于简单容易实现并且
没有许多参数的调节
。目前已被广泛应用于函数优化、神经网络训练、模糊系统控制以及其他遗传算法的应用领域。
" r" Z& K9 y$ |) A
设置一群随机分布的鸟儿——初始化粒子群速度和位置,惯性因子,加速常数,最大迭代次数,算法终止的最小误差
判断每个鸟儿与食物的距离——评价每个粒子的初始适应值,即代入目标函数
找到初始时刻每个鸟儿与食物的距离——将初始适应值作为当前粒子的局部最优值(因变量),且将位置作为当前的局部最优所在的位置(自变量)
找到鸟群里距离食物最近的那个鸟以及对应的距离——将所有粒子中的最佳局部最优(初始适应值)作为当前全局最优值,并将其作为当前的全局最优值(最强的那个),最佳位置最为全局最优的位置
鸟儿根据三个不同地点调整飞行方向——代入速度更新关系式,更新粒子的飞行速度,并限幅处理,使其不能超过该粒子最大的粒子飞行速度
鸟儿开始起飞!鸟儿的位置开始变化——然后代入位移更新表达式,更新每个粒子的位置
鸟儿每飞一次,都反省一下自己这一次的位置有没有上一次的位置好——对每个粒子比较每个粒子的适应值是否比历史的局部最优值好,如果好的话则当前适应值作为粒子的局部最优值,对应位置作为粒子的局部最优的位置
飞一次后,鸟群里肯定有个鸟的位置最好,找到这个鸟以及对应的位置!——在当前粒子群中找出全局最优值,并将对应的位置作为全局最优的位置
鸟儿不断地飞飞飞,直到找到最多食物——重复5~9,直到满足设定的最小误差或达到最大迭代次数10、输出最优值和位置以及其他粒子的局部最优值和位置
7 Z8 Y' @) }: b# {3 }4 P
5 P% h& C8 P! W+ G8 W- k
( k7 }# _3 f" G$ u' R! \+ L
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5