temperature = startingTemperature;
}
public boolean isAccepted(LocalSearchMoveScope moveScope) {
LocalSearchSolverPhaseScope localSearchSolverPhaseScope = moveScope.getStepScope().getPhaseScope();
Score lastStepScore = localSearchSolverPhaseScope.getLastCompletedStepScope().getScore();
Score moveScore = moveScope.getScore();
if (moveScore.compareTo(lastStepScore) > 0) {
return true;
}
Score scoreDifference = lastStepScore.subtract(moveScore);
double[] scoreDifferenceLevels = scoreDifference.toDoubleLevels();
for (int i = 0; i < scoreDifferenceLevels.length - 1; i++) {
if (scoreDifferenceLevels[i] != 0) {
// more hard constraints broken, ignore it for now
return false;
}