有可能" ProblemFact"是Optaplanner中的阴影变量

时间:2017-10-11 14:55:57

标签: optaplanner

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

它是否要求阴影变量需要注释@planningentity,即使它是一个有问题的事实?

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

我遇到了有关阴影变量的文档。 我的问题是," ProblemFact" POJO被定义为计划实体并且仍然合法吗?

2 个答案:

答案 0 :(得分:1)

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

所以,我认为问题是:“我可以拥有影子变量,其类型是一个问题吗?”答案是

答案 1 :(得分:1)

不。 ProblemFacts是根据PlanningVariables的变化而不变的类,因此可以在工作解决方案之间重用。

PlanningEntities是根据PlanningVariables的变化而要做而发生变化的类,因此,每个工作解决方案都需要有一个单独的克隆。

ShadowVariable是根据PlanningVariable的更改而更改的变量。如果一个类包含ShadowVariable,则意味着它会随着PlanningVariable的变化而变化,因此需要为每个工作解决方案对其进行克隆,并为其提供PlanningEntity。

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