如何配置 OptaPlanner 的分区搜索,使本地搜索选项可以单独应用于每个创建的分区?

How can I configure OptaPlanner's partitioned search that local search options can be applied individually to each of created partitions?

我使用分区搜索功能来解决一个非常大的 VRPTW class 问题。我已经实施了一个 SolutionPartitioner,它的工作做得很好。

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

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

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

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

请在文本文件中创建一个关于求解器配置 XML 外观的草图。然后 create a jira 就可以了。

这涉及(未实现的)对 hyper-heuristics 的支持,这是配置求解器配置以根据输入大小调整算法的能力,通过使用不同选择器的示例。

我认为 hyper-heuristics 可能会彻底解决这个问题,它被分区的事实并不重要,因为 <hyperheuristic> 将嵌套到 <partionedSearch> 中并切换到根据需要在附近和每个分区 non-nearby。