我正在使用进化算法,例如NSGA-II algorithm解决具有多个目标的无约束优化问题。
由于我的适应度函数有时具有非常不同的域(例如 f1(x)会在 [0..1] 和 f2(x)内生成适应度值( [10000..10000000] )之内),我想知道这是否对所选算法的搜索行为有影响。
对适应度函数域的选择(例如,将所有域从 [lb..ub] 缩放到一个公共域)是否会影响解决方案的质量以及找到好的解决方案的速度?还是没有这个问题的一般答案?
很遗憾,我找不到关于此主题的任何内容。欢迎任何提示!
答案 0 :(得分:4)
您的问题与算法中实现的选择策略有关。在原始NSGA II的情况下,选择是使用pareto等级和拥挤距离混合进行的。虽然pareto等级(即点的非主导前端ID)没有按一定的常数缩放数值,但拥挤距离确实如此。
所以答案是肯定的,如果您的第二个目标在[10000 .. 10000000]中,那么它对拥挤距离的贡献可能会吞噬另一个目标。
在诸如NSGA II单位计数的算法中!
答案 1 :(得分:0)