首页 > 解决方案 > 如何在 OptaPlanner 的运行时移除移动生成器?

问题描述

我的问题中有 4 种不同类型的计划实体,有些问题没有一种或多种类型的实体。我在配置文件中为所有这些生成器移动了生成器,一旦遇到问题,我想删除一个或多个这样的生成器。这是为了避免“摆脱永无止境的循环”和相关的减速(我测量为步进时间增加了 42%)。

虽然文档指出

求解器配置 XML 中的每个元素都可用作包命名空间中的*Config类或类的属性。*Configorg.optaplanner.core.config

我什至无法访问移动生成器——它们似乎都在某个protected方法或字段的后面。

问题是:如何在运行时删除一些移动生成器,一旦给定问题文件,给定 XML 配置文件的路径?

标签: javaoptaplanner

解决方案


如果您没有配置任何移动选择器,您将获得默认选择器(更改和交换移动)。所以删除这些的技巧是在solverConfig.xml中配置一些:

<solver>
  ...
  <constructionHeuristics>
    <unionMoveSelector>
      ...
    </>
  </>
  <localSearch>
    <unionMoveSelector>
      ...
    </>
  </>
</>

请参阅有关移动选择的文档章节。


推荐阅读