一、算法综述
多目标就以下三个方面为目标,各种算法使用了和单目标算法的不同组合从而进行有效实现。包括:一组数量尽可能大的非劣解(非劣解集和);要求这组解逼近问题的全局Pareto最优前端(避免局部最优);尽可能均匀地分布在整个全局最优前端上(实现解的分布均匀性和多样性)。
二、算法之间的比较
1、SPEA:
主要步骤:
1、产生初始种群P和空的外部非劣解集和NP;
2、将种群中的非劣解个体拷贝到空的外部非劣解集NP;
3、进行迭代时,剔除NP中受种群P支配的解;
4、剔除多余解(聚类分析:取两个距离比较近的C1和C2,将两个聚类合并成C3);
5、计算适应度值;(NP中个体适应度值=x/1+N,f越大,性能越好,表示支配性;
种群p的f=1+个体强度值的和,f越大,性能越差,表示被支配性)
6、交叉变异(为保证解的快速收敛,采用二元锦标赛法,将P和NP中相对较好的个体用来交叉变异);
7、判断是否循环,否则输出最优解,是则循环;
总结:
- 计算适应度赋值时,非劣解集有一个成员时,P中个体的适应度值相同(但p中个体存在支配关系),则进行二元锦标赛选择时,便是随机选择,因为每个个体的适应度值都相同。只考虑了支配个体的解,未考虑个体支配其他的解。
- NP在更新。
- 聚类分析可以降低计算的复杂性,减少非劣解集合,但可能错误的删除掉必须保存的解,影响多样性。
- SPEA2
主要步骤:
1、产生初始种群P和空的外部非劣解集和NP;
2、计算种群P和NP的适应度值;
3、确定NP大小,过大修剪,过小将P中受支配的解放入NP;
4、判断是否循环;
5、交叉变异(为保证解的快速收敛,采用二元锦标赛法,将P和NP中相对较好的个体进入交配池);
6、t=t+1;
总结:
- 交配池的设置,将相对较好的个体全部放入交配池后,进行交叉变异;
- 适应度赋值:考虑了支配个体的解,也考虑了个体支配的解;原始适应度值和密度值(均匀性)的和=适应度赋值;
- 外部档案维护,小于种群大小时,将P中最好的解移入NP,大于种群大小时,进行修剪。
- NSGA2
主要步骤:
1、生成初始种群并进行非劣排序
2、再对初始种群执行二元锦标赛选择交叉变异
3、形成新种群后进行非劣排序得到非劣前端
4、对非劣前端进行拥挤排序(偏序集)得到最好的N个个体形成新种群
5、对这个新种群进行复制交叉变异形成新种群
6、判断是否循环
总结:
- 每一代都是交叉变异后的个体,没有对个体产生的进行保留
- 群众的分布性得不到体现,容易陷入局部最优
- NSGA3 (基于分解)
主要步骤:
1、初始化种群
2、进行非支配排序,选择交叉变异形成第一代子群
3、进行迭代
4、父代子代个体合并
5、快速非支配排序
6、拥挤度计算
7、选择合适个体组成新父种群
8、再进行选择交叉变异
9、判断是否满足终止条件
总结:
1)种群多样性采用参考点的设置、种群的自适应标准化、关联操作、个体保留操作等四步来确定拥挤度。
- MOEA/D(基于分解和信息共享思想)
主要步骤:
1、初始化种群
2、为每个子问题分配权向量
3、每个子问题在邻居个体内进行交叉变异
4、根据聚合函数值更新父代种群
5、判断是否满足终止条件
总结:
1)将分解的概念引入多目标进化计算中。
2)由于算法将多目标问题分解成子问题而不是作为一个整体来解决,适应度分配和多样性控制的难度都有所降低;
3)相较NSGA-II和MOGLS算法MOEA/D具有更低的计算复杂度,但在许多场景下解得表现上更为出色;
- MOPSO
主要步骤:
1、初始化群体和Archive
2、计算适应度值得到Pbest
3、计算Archive集中粒子的密度信息
4、Archive中选择gbest
5、更新粒子的位置和速度
6、更新Archive集
7、截断操作
8、输出粒子信息
总结:
- 速度更新公式可优化
三、多目标算法总结
进化算法是一种通过代与代之间维持由潜在解组成的种群来实现全局最优。
第一代EMO(NSGA):基于非支配排序的选择和基于共享函数的多样性保持为其主要特点。缺点:如何保持种群多样性;
第二代EMO(NSGA-2):以精英保留策略为主要特征,保持种群的多样性也不再需要提前设置共享参数,使用聚类分析,拥挤度距离等方法;降低了计算复杂度。
第三代EMO(MOPSO、MOEA/D):基于分解思想,将多目标优化问题转化为单目标数学优化目标;