MOSMA: Multi-objective Slime Mould Algorithm Based on Elitist Non-dominated Sorting


多目标优化问题的算法及其求解(转载,作为笔记补充) https://www.jianshu.com/p/7dfac8f4b94e


可以了解:


1、帕累托占优:如E对于C、D的f1和f2的目标函数值都要小,所以全面占优。




java多目标优化算法 多目标优化目标函数_java多目标优化算法


2、帕累托最优解:区别于最优解,帕累托最优解是无奈的选择,因为目标函数多了,就根本不可能找到一个解向量对其他解(全面)占优。


像解向量x1-x2这对应的所有解都是帕累托最优解。



java多目标优化算法 多目标优化目标函数_多目标_02

/


3、帕累托前沿:帕累托最优解对应的目标 函数值就是帕累托最优前沿(不是划分的范围)


如下两张图:两个目标函数的图和三个目标函数的图,可以拓展到四维五维等等(转载自CSDN:多目标优化(智能算法))



java多目标优化算法 多目标优化目标函数_多目标_03



java多目标优化算法 多目标优化目标函数_多目标_04


 


 


4.非支配排序

1)非支配排序就是将种群所有的非支配个体(解向量)划分成第一个非支配最优层,制定并赋予一个共享的虚拟的适应值(比如1);

2)然后忽略已经分层的个体,因为非支配个体已经忽略,所以现在会出现一些新的非支配个体,比如两个目标函数值为(9,10)的解向量

被忽略后可能函数值为(10,11)这样的解就变成新的非支配个体;

3)那么现在将新的非支配个体划分成第二个非支配层,也制定并赋予一个共享的虚拟的适应值,但是这个值必须要比上一个小(比如可以是0.9)

4)以此类推,直到所有种群个体被分层。这样可以保持优良个体适应度的优势,以获得更多的被开发机会,同时也维持了种群的多样性。

5.带精英策略的非支配排序

a、提出了快速非支配排序算子,优化计算复杂度。

b、提出了拥挤距离算子

c、提出了精英策略选择算子

(1)快速非支配排序流程

目的同样是分层。

n为在种群中支配个体 i 的解个体的数量。(别的解支配个体 i 的数量)

S为被个体 i 所支配的解个体的集合。(个体 i 支配别的解的集合)

1)首先,找到种群中所有 n(i)=0 的个体(不被支配的个体),存入集合F(1)中,作为第一层并同样需要赋予每个个体一个相同的非支配序 R(rank)

2)关键在于第二、三步。对于当前集合F(1),找到其中个体们所支配的解集S,然后再将S中的个体被支配个数n,减去1(因为其中最强的支配它的已经分到第一层了)

3)一直重复一二步,直到所有个体被分级。因为每次n都会减少,如果n=0则说明这个个体当前是非支配解了(终于要轮到它被分层了)。

(2)确定拥挤度

java多目标优化算法 多目标优化目标函数_机器学习_05


 

也就是说:如果两个个体的非支配排序不同,取排序号较小的个体(分层排序时,先被分离出来的个体);如果两个个体在同一级,取周围较不拥挤的个体。

原文链接:

(3)精英策略选择算子

保留父代优良个体直接进入子代, 以防止帕累托最优解改变后,Pareto 前沿的解丢失. 具体操作就可以直接把父代子代合并到一起进行非支配排序.