我正在尝试设计一个非线性适应度函数,其中我最大化变量 A 并最小化变量 B。问题是最大化 A 在单个数字值上更为重要,几乎是对数。B 需要最小化,与 A 相比,它在较小(小于 1)时变得不那么重要,而在较大(>1)时变得更重要,因此呈指数衰减。
主要目标是优化 A,所以我猜一个类比是 A=利润,B=成本
我应该以保持一切积极为目标,以便我可以使用轮盘赌选择,还是使用等级/锦标赛类型的系统会更好?我的算法的目的是优化形状。
谢谢
我正在尝试设计一个非线性适应度函数,其中我最大化变量 A 并最小化变量 B。问题是最大化 A 在单个数字值上更为重要,几乎是对数。B 需要最小化,与 A 相比,它在较小(小于 1)时变得不那么重要,而在较大(>1)时变得更重要,因此呈指数衰减。
主要目标是优化 A,所以我猜一个类比是 A=利润,B=成本
我应该以保持一切积极为目标,以便我可以使用轮盘赌选择,还是使用等级/锦标赛类型的系统会更好?我的算法的目的是优化形状。
谢谢
在考虑多目标问题时,目标通常是识别位于帕累托曲线上的所有解决方案——帕累托最优集。在这里查看二维视觉示例。当算法完成时,您需要一组不受任何其他解决方案支配的解决方案。因此,您需要定义一个帕累托排名机制来考虑这两个目标- 要获得更深入的解释以及更多阅读的链接,请转到此处
考虑到这一点,为了有效地探索帕累托前沿的所有解决方案,您不需要鼓励过早收敛的实现,否则您的算法将仅探索帕累托曲线的一个特定区域中的搜索空间。我将实现一个选择运算符,以保留每次迭代的最佳解决方案集的所有成员,即所有不受另一个 + 控制的解决方案加上其他解决方案的参数控制百分比。通过这种方式,您可以鼓励沿着帕累托曲线进行探索。
您还需要确保您的变异和交叉运算符也正确调整。对于进化算法的任何新应用,问题的一部分是试图为问题域确定一个最佳参数集......这就是它真正有趣的地方!
描述非常模糊,但假设您实际上知道函数应该是什么样子,并且您只是想知道是否需要修改它以便可以轻松使用比例选择,那么不需要。无论健身功能如何,您都应该默认使用锦标赛选择之类的东西。控制选择压力是您必须做的最重要的事情之一,以便获得始终如一的良好结果,而轮盘赌选择不允许您进行这种控制。你通常会很早就受到巨大的压力,这会导致过早收敛。在某些情况下,这可能更可取,但这不是我开始调查的地方。