MOPSO学习小结:
一些基本的定义
1、 一般化的多目标优化问题即多目标优化问题的数学模型;(分最小化和最大化问题)决策空间和目标空间,不等和等式约束条件;
2、 Parto支配关系,非劣解;(决策向量的支配关系和目标向量的支配关系)一个决策向量X1支配另一个决策向量X2,当且仅当X1在所有的目标上都不差于X2,而且至少在一个目标上严格优于X2;
3、 Parto最优解;一个决策向量是Pareto最优解,条件就是不存在另外一个决策向量支配它(目标向量的最优类似)
4、 Parto最优解集;最优解组成的集合
5、 Parto前沿、端面;所有的Pareto最优目标向量组成的曲面
多目标优化问题考虑的基本因素:
收敛性:minimizing the distance to the Pareto front
多样性:maximizing the distribution over the Pareto front
分布性:其实等同于多样性
MOPSO简单描述:多目标粒子群(MOPSO)算法是在2004年提出来的,目的是将原来只能用在单目标上的粒子群算法(PSO)应用于多目标上。
MOPSO算法主要是针对以下一些问题进行研究:
1、如何选择pbest。对于多目标来说两个粒子的对比,并不能对比出哪个好一些。如果粒子的每个目标都要好的话,则该粒子更优。若有些更好,有些更差的话,就无法严格的说哪个好些,哪个差一些。(例如采用支配关系来选择)
2、 如何选择gbest。对于多目标来说,最优的个体有很多个。该如何选择,涉及到最优个体的存档、存档的管理等问题(多样性)
3、 速度更新公式优化;
4、 位置更新处理;
5、 增加扰乱算子即变异算子的选择问题,主要是为了解决PSO快速收敛到局部最优的问题,增加扰乱可以使得收敛到全局最优
6、 增加一些其他的操作来改善收敛性和多样性
MOPSO算法的一般流程:
->初始化需要设定的参数,如种群大小、存档大小、迭代次数等
->根据目标函数的评估在决策空间中随机初始化得到一个粒子群
->初始化每个粒子的速度为0.0;
->初始化粒子位置(一般都是随机生成)
->根据选定的方法初始化存档(存储最优解,也可以说是pareto临时最优断面)gbest就是在其中根据一定的方法选取
->初始化历史最优pbest为其本身;
进入主循环:
->根据速度和位置公式进行位置和速度的计算更新
->对每个粒子增加的一些操作(如变异算子)
->根据目标函数对每一个粒子做评估操作得到新的粒子群
->更新存档,更新gbest(存档若是超出最大存储粒子数做相应的裁剪操作如根据拥挤度距离裁剪、根据自适应网格法裁剪等)
->根据采用的方法更新历史最优pbest(支配法,无法判别优劣的情况下随机选则的方法)
->收敛或者达到最大迭代次数则退出循环
->返回存档中的最优解集
一般速度的更新公式如下:
vi(t)= w ·vi(t−1)+C1 ·r1·(xpbesti −xi)+C2 ·r2 ·(xgbesti −xi)
等式右边由三部分组成,第一部分是惯性量,是延续粒子上一次运动的矢量,如果w