From 144b91d7aae6c79aa074a688bc8bac21fdf560f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Petrovick=C3=BD?= Date: Thu, 24 Jul 2025 15:16:51 +0200 Subject: [PATCH 1/2] Remove all uses of VRM --- .../benchmarks/micro/scoredirector/problems/AbstractProblem.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/ai/timefold/solver/benchmarks/micro/scoredirector/problems/AbstractProblem.java b/src/main/java/ai/timefold/solver/benchmarks/micro/scoredirector/problems/AbstractProblem.java index fb88a4a4..93dfca3e 100644 --- a/src/main/java/ai/timefold/solver/benchmarks/micro/scoredirector/problems/AbstractProblem.java +++ b/src/main/java/ai/timefold/solver/benchmarks/micro/scoredirector/problems/AbstractProblem.java @@ -141,7 +141,6 @@ public final void setupIteration() { // Prepare the lifecycle. var solverScope = new SolverScope(); solverScope.setScoreDirector(scoreDirector); - solverScope.setValueRangeManager(scoreDirector.getValueRangeManager()); solverScope.setWorkingRandom(new Random(0)); // Fully reproducible random selection. moveRepository.solvingStarted(solverScope); phaseScope = new LocalSearchPhaseScope<>(solverScope, 0); From a88760a6c2c5761c388fc5711cf37ca4839e5b97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Petrovick=C3=BD?= Date: Thu, 24 Jul 2025 15:47:40 +0200 Subject: [PATCH 2/2] Fix the first cases --- .../competitive/AbstractCompetitiveBenchmark.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/main/java/ai/timefold/solver/benchmarks/competitive/AbstractCompetitiveBenchmark.java b/src/main/java/ai/timefold/solver/benchmarks/competitive/AbstractCompetitiveBenchmark.java index d6719d60..ec581db8 100644 --- a/src/main/java/ai/timefold/solver/benchmarks/competitive/AbstractCompetitiveBenchmark.java +++ b/src/main/java/ai/timefold/solver/benchmarks/competitive/AbstractCompetitiveBenchmark.java @@ -20,8 +20,7 @@ import ai.timefold.solver.core.api.solver.SolverFactory; import ai.timefold.solver.core.config.solver.SolverConfig; import ai.timefold.solver.core.impl.score.director.InnerScore; -import ai.timefold.solver.core.impl.score.director.ValueRangeManager; -import ai.timefold.solver.core.impl.solver.DefaultSolverFactory; +import ai.timefold.solver.core.impl.solver.DefaultSolver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -198,9 +197,8 @@ private Result solveDataset(Configuration_ configuration, Data LOGGER.info("Started {} ({} / {}), ~{} minute(s) remain in {}.", dataset.name(), dataset.ordinal() + 1, totalDatasetCount, minutesRemaining, configuration.name()); var bestSolution = solver.solve(solution); - var solutionDescriptor = ((DefaultSolverFactory) solverFactory).getSolutionDescriptor(); - var initializationStatistics = - solutionDescriptor.computeInitializationStatistics(bestSolution, new ValueRangeManager<>()); + var valueRangeManager = ((DefaultSolver) solver).getSolverScope().getScoreDirector().getValueRangeManager(); + var initializationStatistics = valueRangeManager.getInitializationStatistics(); var actualDistance = extractScore(bestSolution); var innerScore = initializationStatistics.isInitialized() ? InnerScore.fullyAssigned(actualDistance) : InnerScore.withUnassignedCount(actualDistance, initializationStatistics.getInitCount());