如果连接不依赖于规划变量,我可以告诉Optaplanner(带有约束流)不要重新计算连接吗?
我在约束流的开头使用fromUniquePair(Class<A> fromClass, BiJoiner<A,A> joiner)
。FromClass是一个计划实体,表示一个时隙。我需要所有重叠的时隙对的流,以便稍后检查它们的计划变量是否不冲突。时隙不会根据任何规划变量在时间上移动,因此此来自UniquePair联接的结果在优化时不会更改。
有没有办法告诉Optaplanner不要这样做?
解决方案
您在这里要求的内容可以与Drool中的属性反应性功能进行比较。不幸的是,约束流不支持这一点,也没有一种方法可以这样做--约束流不能看到过滤器lambdas或方法引用的内部,因此它不知道您访问的是哪些字段。这是我们为更好的抽象付出的代价。
我认为flattenLast()
在这方面不会做任何事情。您对其执行from(...)
操作的实体在每次更改时仍将被重新计算,然后所有拼合的数据也将被重新计算。也就是说,可能我误解了您的意图,如果您使用其他信息更新您的原始问题,我将重新考虑。
相关文章