繁体   English   中英

Optaplanner 可以自动添加或删除计划实体吗?

[英]May planning entities be added or removed automatically by Optaplanner?

我是 Optaplanner 的新手。 我以为我已经理解了计划实体是什么,以及计划变量,真正的或一些反类的影子。 我已经开始研究文档、示例和旧 StackOverflow 的问题,但仍然存在一些疑问。

在尝试使我的分数计算器递增时,我在 IncrementalScoreCalculator 接口中发现了一些意想不到的方法。 连同 beforeVariableChanged 和 afterVariableChanged,我发现 *EntityAdded 和 *EntityRemoved,这让我怀疑实体对象可能被添加和删除。 此外,这些方法在 NQueens 记录的示例中实现,但在我查看的示例中,分配班次、资源、时隙等的示例中,我发现域的设计方式是规划实体是预计会被修改,但不会添加或删除。

我不知道实体对象的添加/删除是否在某处使用过,例如我没有深入研究的路线规划问题,以及这些添加和删除是显式的还是隐式的。 那么,Optaplanner 是否可以在不被要求的情况下添加或删除规划实体?

不,开箱即用的 OptaPlanner 不会添加或删除计划实体实例,因为默认移动选择器仅修改计划实体,它们不会创建或销毁它们。

OptaPlanner 还没有任何通用的移动选择器可以做到这一点(一旦我们这样做了,它们就不会默认开启)。

如果您编写自定义移动(请参阅文档中的 MoveListFactory 和 MoveIteratorFactory),那么您可以选择在移动中添加/删除实体,这就是存在这些方法的原因,但很少有用户这样做。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM