}
workingMemory.update(afterCityAssignmentFactHandle, afterCityAssignment);
workingMemory.update(beforeCityAssignmentFactHandle, beforeCityAssignment);
// Calculate score
Score score = abstractSolverScope.calculateScoreFromWorkingMemory();
if (score.compareTo(bestScore) > 0) {
bestScore = score;
bestAfterCityAssignment = afterCityAssignment;
bestAfterCityAssignmentFactHandle = afterCityAssignmentFactHandle;
bestBeforeCityAssignment = beforeCityAssignment;
bestBeforeCityAssignmentFactHandle = beforeCityAssignmentFactHandle;