java - 如何在 OptaPlanner 的运行时移除移动生成器?
问题描述
我的问题中有 4 种不同类型的计划实体,有些问题没有一种或多种类型的实体。我在配置文件中为所有这些生成器移动了生成器,一旦遇到问题,我想删除一个或多个这样的生成器。这是为了避免“摆脱永无止境的循环”和相关的减速(我测量为步进时间增加了 42%)。
虽然文档指出
求解器配置 XML 中的每个元素都可用作包命名空间中的
*Config
类或类的属性。*Config
org.optaplanner.core.config
我什至无法访问移动生成器——它们似乎都在某个protected
方法或字段的后面。
问题是:如何在运行时删除一些移动生成器,一旦给定问题文件,给定 XML 配置文件的路径?
解决方案
如果您没有配置任何移动选择器,您将获得默认选择器(更改和交换移动)。所以删除这些的技巧是在solverConfig.xml中配置一些:
<solver>
...
<constructionHeuristics>
<unionMoveSelector>
...
</>
</>
<localSearch>
<unionMoveSelector>
...
</>
</>
</>
请参阅有关移动选择的文档章节。
推荐阅读
- angular - 如何查看 Angular 项目的实时更改?
- python - 在正文中传播函数参数
- flutter - Flutter:导航到另一个屏幕时变量重置为默认值
- javascript - webpack 未知单词 > 1 | 从“反应”导入反应
- math - 我是否可以正常分配范围在 0 和 1 之间且在 0 附近具有严重正偏斜的变量?
- c# - 如何将自定义参数传递给 Advanced Installer 11.4
- python - Python - 我如何在我自己的类上双向执行操作?
- python - Tkinter 复选框变量未更新
- python - 多个套接字连接python
- linux - 如何在 Windows 中创建 Docker 容器以在 ubuntu vm 中运行