【发布时间】:2021-11-10 16:59:41
【问题描述】:
我正在尝试添加考虑当前工作解决方案状态的移动选择器。例如,假设在云平衡问题中,我试图采取行动,优先将进程移动到已经拥有很少进程的计算机上。我有一个影子变量来跟踪计算机上的进程数,然后我有一个 valueSelector 实现了 SelectionProbabilityWeightFactory,它为进程较少的计算机赋予了更高的权重。
此设置运行良好,可以产生我想要的动作。但它非常慢,因为它更新影子变量的频率远远超过我需要的频率。由于我没有使用此影子变量进行评分,因此我不需要在该步骤中尝试每次移动后对其进行更新。我只需要在每次接受移动(即步骤结束)后更新影子变量。
或者,我可以使用自定义移动工厂,但这要求每台计算机在每一步都完全重新计算其进程计数。这意味着我将失去使用影子变量获得的增量计算优势。
那么有没有办法强制影子变量在每一步之后更新,而不是在每次移动之后更新。或者有没有更好的方法来跟踪用于移动选择器的工作解决方案的状态?
【问题讨论】:
标签: optaplanner