如何将阶段终止设置为最大未改进步数?
How to set a phase termination to maximum Unimproved Step Count?
我想在本地搜索阶段使用 maximumUnimprovedStepCount
终止条件。
solverConfigResource
的 unmarshalling
失败并出现错误
No such field org.optaplanner.core.config.solver.termination.TerminationConfig.maximumUnimprovedStepCount
文档说这个终止对求解器不起作用,只对一个阶段起作用,所以我猜测正确的资源应该是 org. ... .config.termination. ...
(中间没有 solver
)。
但是为什么不能直接得到正确的class?
这是我的最小求解器配置文件:
<solver>
<scanAnnotatedClasses/>
<scoreDirectorFactory>
<scoreDefinitionType>HARD_SOFT</scoreDefinitionType>
<scoreDrl>solver/rules.drl</scoreDrl>
</scoreDirectorFactory>
<constructionHeuristic>
<constructionHeuristicType>FIRST_FIT_DECREASING</constructionHeuristicType>
</constructionHeuristic>
<termination>
<secondsSpentLimit>60</secondsSpentLimit>
</termination>
<localSearch>
<termination>
<maximumUnimprovedStepCount>100</maximumUnimprovedStepCount>
</termination>
</localSearch>
</solver>
因为现在叫<unimprovedStepCountLimit>
,见TerminationConfig.java
:
<solver>
...
<localSearch>
<termination>
<unimprovedStepCountLimit>...</>
</>
</>
</>
IIRC 在 public API 和 6.1 的配置完成之前重命名。
我想在本地搜索阶段使用 maximumUnimprovedStepCount
终止条件。
solverConfigResource
的 unmarshalling
失败并出现错误
No such field org.optaplanner.core.config.solver.termination.TerminationConfig.maximumUnimprovedStepCount
文档说这个终止对求解器不起作用,只对一个阶段起作用,所以我猜测正确的资源应该是 org. ... .config.termination. ...
(中间没有 solver
)。
但是为什么不能直接得到正确的class?
这是我的最小求解器配置文件:
<solver>
<scanAnnotatedClasses/>
<scoreDirectorFactory>
<scoreDefinitionType>HARD_SOFT</scoreDefinitionType>
<scoreDrl>solver/rules.drl</scoreDrl>
</scoreDirectorFactory>
<constructionHeuristic>
<constructionHeuristicType>FIRST_FIT_DECREASING</constructionHeuristicType>
</constructionHeuristic>
<termination>
<secondsSpentLimit>60</secondsSpentLimit>
</termination>
<localSearch>
<termination>
<maximumUnimprovedStepCount>100</maximumUnimprovedStepCount>
</termination>
</localSearch>
</solver>
因为现在叫<unimprovedStepCountLimit>
,见TerminationConfig.java
:
<solver>
...
<localSearch>
<termination>
<unimprovedStepCountLimit>...</>
</>
</>
</>
IIRC 在 public API 和 6.1 的配置完成之前重命名。