I want to use the maximumUnimprovedStepCount
termination criterion for a local search phase.
The unmarshalling
of solverConfigResource
fails with the error
No such field org.optaplanner.core.config.solver.termination.TerminationConfig.maximumUnimprovedStepCount
The doc says that this termination does not work for the solver, only for a phase, so I am guessing that the correct resource should be org. ... .config.termination. ...
(without solver
in the middle).
But why isn't it getting the right class directly?
This is my minimal solver conf:
<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>
Because it's called <unimprovedStepCountLimit>
now, see TerminationConfig.java
:
<solver>
...
<localSearch>
<termination>
<unimprovedStepCountLimit>...</>
</>
</>
</>
IIRC it got renamed before the public API & config of 6.1 was finished.