【问题标题】:How can I configure OptaPlanner's partitioned search that local search options can be applied individually to each of created partitions?如何配置 OptaPlanner 的分区搜索,以使本地搜索选项可以单独应用于每个创建的分区?
【发布时间】:2018-03-23 00:54:50
【问题描述】:

我使用分区搜索功能来解决一个非常大的 VRPTW 类问题。我已经实现了一个很好的解决方案分区器。

不幸的是,有时会有 1000 个客户的分区,在这种情况下,我使用附近的选择来加快计算速度。不幸的是,对于其他较小的分区(200 个客户以下),相同的附近选择配置比没有附近选择的结果更差。

此外,使用一些启发式方法,我可以指定一组自定义“智能”移动(在移动工厂中),有助于更快地找到最佳解决方案,但有时将所有这些移动用于每个创建的分区是不合适的。

是否可以为每个分区单独配置本地搜索选项?

【问题讨论】:

    标签: optaplanner


    【解决方案1】:

    目前在 7.7 中,无法为不同的分区配置不同的子求解器算法,因为 PartitionedSearchPhaseConfig.java 不支持(现在?)。

    请在文本文件中创建解算器配置 XML 的样子。然后create a jira 为它。

    这涉及到(未实现)对超启发式的支持,这是一种配置求解器配置以根据输入大小调整算法的能力,例如使用不同的选择器。 p>

    我认为超启发式可能会彻底解决这个问题,而且它被分区的事实并不重要,因为<hyperheuristic> 将嵌套到<partionedSearch> 中,并且每个分区会切换到附近和非附近必填。

    【讨论】:

    • 我认为求解器(它的基类)应该支持动态阶段配置重新加载——就像热插拔一样。在我的应用程序中,我可以终止求解器,保存其工作解决方案(VRP 链布局),然后使用不同的配置重新加载求解器。它就像一个暂停-恢复功能以及配置更改能力。我认为最好能够访问每个分区求解器,您可以在其中侦听这些最佳分数更改事件,并利用允许您重新加载本地搜索阶段配置并继续计算的新功能。
    • 或者正如学术界所说:“超启发式”:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-01
    • 1970-01-01
    • 2016-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多