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



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

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

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

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

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

所以,我认为问题是:"我可以让一个类型的影子变量是一个问题事实吗?答案是肯定的

No. ProblemFacts是不会响应PlanningVariables变化而变化的类,因此可以在工作解决方案之间重用。

规划

实体是响应规划变量更改而更改的类,因此需要为每个工作解决方案提供一个单独的克隆。

影子变量是响应计划变量变化而变化的变量。 如果一个类包含一个影子变量,这意味着它会根据规划变量而变化,因此需要为每个工作解决方案克隆,因此是一个规划实体。

如果你把一个ShadowVariable放在一个ProblemFact上,我相信它会在运行时失败。

最新更新