粒子群算法相比其他算法,在节省成本的基础上可以提高速锁速率,有较好的分布性。这样多目标粒子群算法的改进算法对求解多目标问题意义重大。
本文的结构是:首先详细介绍了粒子群算法的概述,通过对离子群算法的认真分析,得出粒子群算法流程图,并对流程图做说明。之后介绍多目标粒子群算法,并给出求解多目标优化问题的计算步骤及流程图。最后利用MATLAB软件对多目标粒子群算法引入竞争机制和没有引入竞争机制两种情况分别与遗传算法进行算法编译,对同一个标准测试函数在相同运行环境下,去得出一系列数据,再根据得出的数据去作图比较得出结论,另外通过数据分析找到论文的依据。
1. 粒子群算法简介
粒子群算法中,个体称为一个“粒子”,每个个体粒子就代表一个潜在的解。
设 是第i个粒子( )的D文位置矢量,根据设定的适应值函数来计算z目前的适应值,因此来衡量粒子位置的优劣; 是粒子i的飞行速度,即粒子的移动距离; 文粒子为迄今为止我们搜索到的最优位置。
在每次迭代中,粒子会根据以下粒子来更新速度和位置:
(1)
(2)
其中, 是算法迭代次数, 和 为[0,1]之间的随机数用来保持种群多样性。 和 是学习因子,也叫加速因子。学习因子使粒子群有学习和自我总结能力,可以向群内最优点和历史最优点靠近。适当调整这两个参数可以减少局部最小值困扰使收敛速度变快。粒子群算法粒子速度没有实际的机制用来控制,需要对粒子最大速度进行限制,粒子速度超过这个阈值,设它为 这个参数很重要。速度的最小值取为 ,位置 的取值范围设为 ~ 。
式(1)中的第二项是认知的部分,代表了粒子对自身学习。而公式中第三项是社会部分,代表了粒子之间的协作。式(1)是粒子根据它当前位置、上一次迭代的速度和自身好经验以及与群体好经验之间的距离来更新速度。然后粒子会根据式(2)飞向新的目标位置[6]。
因此粒子群算法流程图如下:
画流程图前要选定离子群种群规模,规定迭代次数。会用速度、位置更新公式更新速度和位置,可以判断的出Pbest和上代Pbest谁最优,如果最优保存,否则就更新。还有Gbest和上代Gbest要用同样方法比较。在达到最大迭代次数后没有得出最优解,这样情况要重新转入循环。 基于粒子群算法的多目标优化问题研究+算法代码(2):http://www.youerw.com/shuxue/lunwen_38078.html