【问题标题】:Most performant selection method最高效的选择方法
【发布时间】:2016-04-27 12:43:39
【问题描述】:

我正在研究一个关于时间表问题的遗传算法,但我在决定我应该选择哪种选择方法时遇到了问题。

我的问题是:

1)选择方法的选择如何影响遗传算法的性能?

2)什么是最有效的选择方法?

3)如果我尝试使用随机选择来规避基于适应度的选择会发生什么情况(因为在我的情况下这项任务需要时间)?

提前谢谢你..

【问题讨论】:

  • 3) 无导向的随机游走

标签: artificial-intelligence genetic-algorithm genetic-programming


【解决方案1】:

1) 您的适应度函数、变异/交叉算子和整体搜索空间紧密而微妙地相互关联。每个问题/选择方法都有自己的性能特征。因此,您的问题没有明确的答案。这仍然是一个开放的研究问题。

2) 不能说是因为 1)。您必须亲自尝试、测量和查看。

3) 可能是 ziggystar 建议的完全随机游走,但这可能没问题。

【讨论】:

  • 关于您的第三个答案,在这种情况下可以吗?非常感谢你的好回答
  • 什么时候随机游走好?在遗传算法中,人们谈论探索/利用紧张。有时你需要利用,有时你需要探索。最好的探索方式是随机漫步。例如,大海捞针问题的最佳策略是随机游走。
  • @Ray 但是如果你从不将杠杆转向利用,你就不可能找到一个好的解决方案。对 GA 的探索只有在算法记得一些东西时才有用。这种能力受到人口规模的限制。如果没有选择,您可以将此容量平等地用于(更普遍的)不良配置和罕见的良好配置。所以我认为你的探索能力很快就耗尽了。
  • 嘿@ziggy。我不想暗示人们应该总是使用随机游走。同样,这一切都取决于问题。我只是说明在某些(退化但并非不切实际)的情况下,随机游走是(令人惊讶的!)最好的策略。在这些情况下,内存、弹出大小和选择根本不重要。在调整 GA 时记住这一点很有用。
【解决方案2】:

在大多数情况下,我使用随机选择或二元锦标赛,但我的人口模型是稳态(如果比这个更好,后代会替换最差的 - 所以我已经在那里进行了生存选择)。

随机选择确保我不会很快收敛。如果我增加选择压力(例如 q-tournament,q > 2)我会得到非常快的收敛,这对于困难的问题是不利的。

Q-tournament 也很容易实现:只需随机选择 q 个个体,其中最好的就是选择的结果。如果 q == 1,那么你有随机选择。

如果您在实现此功能时遇到问题,可以查看我的实现:http://mepx.org/source_code.html(我为遗传编程的一个变体做到了)。

【讨论】:

  • 你说:“如果我增加选择压力(例如q-tournament,q > 2)我会得到非常快的收敛,[[这对困难的问题不好]] 。我不太明白最后一句你能解释一下吗?提前谢谢你
  • 首先:什么是难题?一个困难的问题是搜索空间很大且局部最优的问题。我们要找到的是全局最优值,而不是局部最优值。在遗传算法中,我们有一群人,有些人比其他人更好。如果问题很困难,那么优秀的个体很可能比全局最优更接近局部最优。如果选择压力很大,您将主要选择更接近局部最优的个体并且算法会在那里收敛。因此,最好保持较低的选择压力以避免局部优化下降
猜你喜欢
  • 2014-06-04
  • 2011-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多