我需要在每次移动结束时将计算结果存入内存,然后根据此更新分数。计算结果必须是有状态的,如在其他位置引用(存储在解决方案中)。
文档建议这应该是在主实体上用VariableListener更新为ShadowVariable的PlanningEntity,但是当然,这自然会触发每个实体的更改,不必要地重新计算。
1)听起来像阴影变量。请注意,您仍然需要常规约束,也可以根据该阴影变量的状态更新分数。
在移动结束时,每个移动都调用triggerShadowVariableListeners()
,而不是在中间。因此,如果您担心性能,那就不要了。如果您担心正确性-因为调用次数会影响您的计算-请勿以这种方式设计/实施...
2)问题事实在解决过程中不能更改(不计算实时计划)。他们没有一个领域。否则,它是一个PlanningEntity。