【发布时间】:2016-01-28 21:37:49
【问题描述】:
我正在使用 OptaPlanner 解决一些规划问题。我阅读了文档,但我不太确定爬山和禁忌搜索算法究竟是如何工作的。我不确定的是:
- 爬山选择是否只能选择比当前得分更好的最佳得分移动,还是允许选择不比当前得分更差的最佳得分移动?
- 禁忌搜索是否允许选择得分比当前得分更差的移动,如果没有移动导致解决方案的得分高于或等于当前得分?
【问题讨论】:
标签: optaplanner hill-climbing tabu-search
我正在使用 OptaPlanner 解决一些规划问题。我阅读了文档,但我不太确定爬山和禁忌搜索算法究竟是如何工作的。我不确定的是:
【问题讨论】:
标签: optaplanner hill-climbing tabu-search
对于爬山,请参阅HillClimbingAcceptor#isAccepted(...)。它接受任何得分优于或等于最后一步得分的移动。并且查看用于爬山的默认觅食配置(在LocalSearchPhaseConfig 中,上面写着foragerConfig.setAcceptedCountLimit(1);),只要接受 1 步,即是获胜步。
对于禁忌搜索,它将选择得分较低的动作,如果:
acceptedCountLimit 配置为1000 左右),没有看到更好的移动PS:爬山很烂。没有理由不使用延迟接受或禁忌搜索。
PPS:使用 Benchmarker,让 HC、LA、TS、... 互相对抗。它会给你很多洞察力。
【讨论】: