多objective进化优化中适应度函数域选择的影响
Impact of fitness function domain selection in multi-objective evolutionary optimization
我正在使用进化算法,例如NSGA-II algorithm 解决具有多个目标的无约束优化问题。
因为我的适应度函数有时具有非常不同的域(例如 f1(x) 在 [0..1] 内生成适应度值f2(x) within [10000..10000000]) 我想知道这是否对所选算法的搜索行为有影响。
适应度函数域的选择(例如,将所有域从 [lb..ub] 缩放到一个公共域)是否会影响解决方案的质量和找到好的解决方案的速度解决方案?或者这个问题没有通用的答案?
很遗憾,我找不到关于此主题的任何内容。欢迎任何提示!
您的问题与算法中实现的选择策略有关。在原始 NSGA II 的情况下,使用帕累托等级和拥挤距离的混合进行选择。虽然帕累托等级(即一个点的非支配前 id)没有改变按某个常数缩放数值,但拥挤距离确实如此。
所以答案是肯定的,如果你的第二个 objective 在 [10000 .. 10000000] 中,它对拥挤距离的贡献可能会吃掉另一个 objective。
在 NSGA II 等算法中,单位计数!
我刚看到你的问题,我不同意之前的回答。如果你仔细阅读论文你会发现拥挤距离应该是在 normalized objective space 中计算的。正是因为一个人 objective 不能支配另一个人。
我的博士导师是 Kalyanmoy Deb,他提出了 NSGA-II,我自己实现了算法(在我们的进化多 objective 优化框架 pymoo 中可用)。所以我可以肯定地说归一化应该被纳入算法。
如果您对矢量化拥挤距离实现感到好奇,请随时查看 GitHub 上 pymoo 中的 pymoo/algorithms/nsga2.py
。
我正在使用进化算法,例如NSGA-II algorithm 解决具有多个目标的无约束优化问题。
因为我的适应度函数有时具有非常不同的域(例如 f1(x) 在 [0..1] 内生成适应度值f2(x) within [10000..10000000]) 我想知道这是否对所选算法的搜索行为有影响。
适应度函数域的选择(例如,将所有域从 [lb..ub] 缩放到一个公共域)是否会影响解决方案的质量和找到好的解决方案的速度解决方案?或者这个问题没有通用的答案?
很遗憾,我找不到关于此主题的任何内容。欢迎任何提示!
您的问题与算法中实现的选择策略有关。在原始 NSGA II 的情况下,使用帕累托等级和拥挤距离的混合进行选择。虽然帕累托等级(即一个点的非支配前 id)没有改变按某个常数缩放数值,但拥挤距离确实如此。
所以答案是肯定的,如果你的第二个 objective 在 [10000 .. 10000000] 中,它对拥挤距离的贡献可能会吃掉另一个 objective。
在 NSGA II 等算法中,单位计数!
我刚看到你的问题,我不同意之前的回答。如果你仔细阅读论文你会发现拥挤距离应该是在 normalized objective space 中计算的。正是因为一个人 objective 不能支配另一个人。
我的博士导师是 Kalyanmoy Deb,他提出了 NSGA-II,我自己实现了算法(在我们的进化多 objective 优化框架 pymoo 中可用)。所以我可以肯定地说归一化应该被纳入算法。
如果您对矢量化拥挤距离实现感到好奇,请随时查看 GitHub 上 pymoo 中的 pymoo/algorithms/nsga2.py
。