影子变量能帮助optaplanner做出更好的初始方案吗?

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

我正在使用Optaplanner来制作一个计划表,它的效果相当不错。

在阅读了文档之后,我意识到我应该使用至少1个(或更多)影子变量,因为我的drool-file正在调用基于planningVariable的值进行大量计算的方法。

我花了几个小时重写了我的代码来使用影子变量,但我注意到最初的解决方案非常糟糕(与没有影子变量相比),我不得不等待数分钟才能得到一个正常的结果。这正常吗?看起来最初的解决方案根本没有使用影子变量。

optaplanner
1个回答
2
投票

这个问题非常通用,所以我的回答也会如此。

有时你可以通过引入影子变量或其他形式的缓存来简化问题。如果你找到了正确的平衡点,你确实可以加快Drools的计算速度,并且--因此--在更短的时间内得到相同的解决方案。也因此,在同样的时间内达到更好的解决方案。

也就是说,引入影子变量不应该真正改变你的分数--只改变它们的计算速度。如果你看到相同的分数不同的 @PlanningSolution,其实你的问题已经改变了,相对的性能已经没有可比性。

另外,你可能想检查一下 环境模式 以确保你没有在不经意间将分数损坏引入你的问题中。

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