帕累托多目标遗传算法
在优化领域,遗传算法绝对占得上一席之地,但由于在染色体选择阶段,俄罗斯轮盘赌法常被使用,因此遗传算法主要被用来解决单优化问题。
对于多目标优化问题,我们常常不知道如何判断两个解孰优孰劣从而难以在遗传算法的选择阶段进行合适的选择,帕累托优化应运而生解决了这一问题。
首先,需要对一下概念进行说明:
-
支配、非支配:当A所有目标都优于B时,就说A支配了B,否则A和B就是一个非支配的关系;
-
非支配前沿:种群中所有不被任何其他解支配的解构成了非支配前沿;
其计算步骤如下图所示:
具体来说:
- 0、随机初始化N个解(父代);
- 1、经过交叉变异(与遗传算法中的方法相同)得到N个新解(子代);
- 2、将父代与子代混合(精英策略),形成新的解集合S;
- 3、从S中找出非支配解集合,记为F1;
- 4、从解集合S中剔除F1,再找出新的非支配解集合,记为F2;
- 5、重复第四步,直到S为空集;
- 6、对非支配解进行排序:{F1, F2, …, Fn};
- 7、按顺序从排序后的S中