public void solvingStarted(DefaultSolverScope solverScope) {
// Starting bestSolution is already set by Solver.solve(Solution)
InnerScoreDirector scoreDirector = solverScope.getScoreDirector();
int uninitializedVariableCount = scoreDirector.countWorkingSolutionUninitializedVariables();
solverScope.setBestUninitializedVariableCount(uninitializedVariableCount);
Score score = scoreDirector.calculateScore();
solverScope.setBestScore(score);
solverScope.setBestSolutionTimeMillis(System.currentTimeMillis());
// The original bestSolution might be the final bestSolution and should have an accurate Score
solverScope.getBestSolution().setScore(score);
if (uninitializedVariableCount == 0) {