"ProblemFact" 是否有可能成为 Optaplanner 中的影子变量

Is it possible that "ProblemFact" be a shadow variable in Optaplanner

我是使用 7.2.0 的 optaplanner 的新手。 我有一个关于车辆路线规划链接的问题。

它是否强制影子变量需要有注释@planningentity,即使它是一个问题事实?

考虑一个例子: 我有技术和工作要分配给技术。 对我来说,技术(问题事实)需要分配给工作(计划),我正在关注 VRP,因为它与它密切相关。我正在关注链接(工作和技术形式链都以技术为锚)。

我看到了关于影子变量的文档。 我的问题是,"ProblemFact" POJO 是否可以定义为规划实体并且仍然合法?

影子变量是一个字段或一个属性 (=getter/setter)。问题事实是 class。规划实体也是 class(这不是问题事实,反之亦然)。

所以,我假设问题是:“我可以拥有类型为问题事实的影子变量吗?”答案是.

没有。 ProblemFacts class不会响应 PlanningVariables 的变化而变化,因此可以在工作解决方案之间重复使用。

PlanningEntities 是 class 响应 PlanningVariables 变化而变化的实体,因此每个工作解决方案都需要有一个单独的克隆。

ShadowVariable 是响应于 PlanningVariable 变化而变化的变量。如果 class 包含一个 ShadowVariable,这意味着它会响应 PlanningVariable 而发生变化,因此需要为每个工作解决方案克隆,因此是一个 PlanningEntity。

如果将 ShadowVariable 放在 ProblemFact 上,我相信它会在运行时失败。