Score maxScore = greedyFitSolverPhaseScope.getScoreDefinition().getPerfectMinimumScore();
while (planningVariableWalker.hasWalk()) {
planningVariableWalker.walk();
Score score = greedyFitSolverPhaseScope.calculateScoreFromWorkingMemory();
if (assertMoveScoreIsUncorrupted) {
greedyFitSolverPhaseScope.assertWorkingScore(score);
}
if (score.compareTo(maxScore) > 0) {
greedyFitStepScope.setVariableToValueMap(planningVariableWalker.getVariableToValueMap());
maxScore = score;
}