我在项目中使用可弯曲的得分,我有多个级别。
战略振荡背后的标准已证明在最后两个层面非常有用。因此,从N-1级突破一些约束但从N级改进一些约束的动作非常好。这有助于求解器从局部最优中逃脱,并且在此之后的移动从N-1级修复破坏的约束并且产生新的最佳分数。
虽然它在最后两个级别之间非常有用,但是当它开始允许移动改善较低级别但例如违反级别0时会产生混乱。
所以我的问题是可以配置战略振荡,因此它只能看到最后两个级别,OptaPlanner是否具有此内置功能?如果不是我怎么能使这成为可能,我想我将不得不实施自定义觅食者?
答案 0 :(得分:1)
我想你想创建一个在FinalistPodium
内使用的自定义Forager
。就像奥运会的领奖台一样,它表示谁是第一,谁是第二,等等。
请参阅StrategicOscillationByLevelFinalistPodium.java
。这里是龙。这是非常内部的代码,而不是公共API。你可能不想这样做。
至于自己插入电源,请在自己的LocalSearchForagerConfig.buildForager()
中覆盖ForagerConfig
,然后通过编程API(SolverConfig
等)插入。