Skip to content

Commit 68e78fb

Browse files
authored
fix: centralize the ownership of ValueRangeManager to avoid subtle bugs
1 parent 83dd679 commit 68e78fb

2 files changed

Lines changed: 3 additions & 6 deletions

File tree

src/main/java/ai/timefold/solver/benchmarks/competitive/AbstractCompetitiveBenchmark.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@
2020
import ai.timefold.solver.core.api.solver.SolverFactory;
2121
import ai.timefold.solver.core.config.solver.SolverConfig;
2222
import ai.timefold.solver.core.impl.score.director.InnerScore;
23-
import ai.timefold.solver.core.impl.score.director.ValueRangeManager;
24-
import ai.timefold.solver.core.impl.solver.DefaultSolverFactory;
23+
import ai.timefold.solver.core.impl.solver.DefaultSolver;
2524

2625
import org.slf4j.Logger;
2726
import org.slf4j.LoggerFactory;
@@ -198,9 +197,8 @@ private Result<Dataset_, Score_> solveDataset(Configuration_ configuration, Data
198197
LOGGER.info("Started {} ({} / {}), ~{} minute(s) remain in {}.", dataset.name(), dataset.ordinal() + 1,
199198
totalDatasetCount, minutesRemaining, configuration.name());
200199
var bestSolution = solver.solve(solution);
201-
var solutionDescriptor = ((DefaultSolverFactory<Solution_>) solverFactory).getSolutionDescriptor();
202-
var initializationStatistics =
203-
solutionDescriptor.computeInitializationStatistics(bestSolution, new ValueRangeManager<>());
200+
var valueRangeManager = ((DefaultSolver<Solution_>) solver).getSolverScope().getScoreDirector().getValueRangeManager();
201+
var initializationStatistics = valueRangeManager.getInitializationStatistics();
204202
var actualDistance = extractScore(bestSolution);
205203
var innerScore = initializationStatistics.isInitialized() ? InnerScore.fullyAssigned(actualDistance)
206204
: InnerScore.withUnassignedCount(actualDistance, initializationStatistics.getInitCount());

src/main/java/ai/timefold/solver/benchmarks/micro/scoredirector/problems/AbstractProblem.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,6 @@ public final void setupIteration() {
141141
// Prepare the lifecycle.
142142
var solverScope = new SolverScope<Solution_>();
143143
solverScope.setScoreDirector(scoreDirector);
144-
solverScope.setValueRangeManager(scoreDirector.getValueRangeManager());
145144
solverScope.setWorkingRandom(new Random(0)); // Fully reproducible random selection.
146145
moveRepository.solvingStarted(solverScope);
147146
phaseScope = new LocalSearchPhaseScope<>(solverScope, 0);

0 commit comments

Comments
 (0)