适应度函数域选择对多目标进化优化的影响

时间:2018-07-13 13:09:50

标签: algorithm optimization mathematical-optimization evolutionary-algorithm

我正在使用进化算法,例如NSGA-II algorithm解决具有多个目标的无约束优化问题。

由于我的适应度函数有时具有非常不同的域(例如 f1(x)会在 [0..1] f2(x)内生成适应度值 [10000..10000000] )之内),我想知道这是否对所选算法的搜索行为有影响。

对适应度函数域的选择(例如,将所有域从 [lb..ub] 缩放到一个公共域)是否会影响解决方案的质量以及找到好的解决方案的速度?还是没有这个问题的一般答案?

很遗憾,我找不到关于此主题的任何内容。欢迎任何提示!

2 个答案:

答案 0 :(得分:4)

您的问题与算法中实现的选择策略有关。在原始NSGA II的情况下,选择是使用pareto等级和拥挤距离混合进行的。虽然pareto等级(即点的非主导前端ID)没有按一定的常数缩放数值,但拥挤距离确实如此。

所以答案是肯定的,如果您的第二个目标在[10000 .. 10000000]中,那么它对拥挤距离的贡献可能会吞噬另一个目标。

在诸如NSGA II单位计数的算法中!

答案 1 :(得分:0)

我刚刚遇到了您的问题,我不同意之前的回答。如果仔细阅读本文,您会发现拥挤距离应该在归一化物镜空间中计算。正是由于一个目标不能支配另一个目标。

我的博士生导师是Kalyanmoy Deb,他提出了NSGA-II,我自己实现了该算法(可在我们的进化多目标优化框架pymoo中使用)。因此,我可以肯定地说,归一化应该包含在算法中。 如果您对矢量化拥挤距离实现感到好奇,请随时关注GitHub pymoo 中的pymoo/algorithms/nsga2.py