algorithm - 适应度函数域选择对多目标进化优化的影响
问题描述
我正在使用进化算法,例如NSGA-II 算法来解决具有多个目标的无约束优化问题。
由于我的适应度函数有时具有非常不同的域(例如f1(x)在[0..1]内生成适应度值,而f2(x)在[10000..10000000]内生成适应度值)我想知道这是否对搜索行为有影响所选择的算法。
适应度函数域的选择(例如,从[lb..ub]将所有域缩放到一个公共域)是否会影响解决方案的质量和找到好的解决方案的速度?或者这个问题没有普遍的答案?
不幸的是,我找不到有关此主题的任何内容。欢迎任何提示!
解决方案
您的问题与算法中实施的选择策略有关。在原始 NSGA II 的情况下,选择是使用帕累托等级和拥挤距离的混合来进行的。虽然帕累托等级(即一个点的非支配前 id)没有改变以某个常数缩放数值,但拥挤距离确实如此。
所以答案是肯定的,如果你的第二个目标是 [10000 .. 10000000] 它对拥挤距离的贡献可能会吃掉另一个目标。
在 NSGA II 等算法中,单位计数!
推荐阅读
- .net - 为什么 dotnet build 和 build in Visual Studio 会产生不同的输出?
- javascript - 两个不同的 .Click() 函数同时工作而不是单独工作 - jquery
- javascript - 通过 JS 更改 CSS 变量
- flutter - RangeSlider 上的 Flutter RangeLabels 不起作用
- php - Codeigniter 3 博客应用程序错误:即使帖子标题没有更改,也要发布 slug 更新
- python - 性能改进 - 搜索 dict (id -> list of lists)
- java - 使用 FileWriter 覆盖相同的文件
- r - 不能使用大于和替换年份
- javascript - 我无法使用
- spring - Thymeleaf 无法将多部分文件转换为字节