在调用所有影子变量更改后挂钩

问题描述 投票:0回答:1

我目前正在使用 optaplanner 并希望优化我的代码,以便它不会经常计算某个值,每次“移动”只计算一次。 因此,在完成所有影子变量更改调用之后,我需要某种挂钩,现在将评估约束。

原因是,我的计算取决于所有其他实体,如果其中一个实体发生变化,我将删除所有实体的计算值并重新计算。但在同一个影子变量更改中,我将更改另一个实体,并且还会删除所有实体的值并重新计算它直到最后一次调用。 计算值用于可视化和约束。所以我不能事后计算它。

我唯一的想法是在 getter 中使用某种脏标志和计算。但如果有某种钩子我可以使用会更优雅,也更稳定。

optaplanner timefold
1个回答
0
投票

Timefold,我们目前正在处理一个非常相似的问题。

目前,我们没有任何有效的解决方案;事实证明,如果您需要在处理完所有影子变量之后执行任何操作,只会触发另一轮影子变量处理。换句话说 - 没有一个点可以调用这个最终钩子;只会造成无限循环。 似乎没有办法解决这个问题 - 如果您在不通知听众的情况下更改变量,则会出现分数损坏。目前,我们还没有解决该问题的方案,但我们正在考虑一些方案。

© www.soinside.com 2019 - 2024. All rights reserved.