|
31 | 31 | import ai.timefold.solver.core.impl.domain.entity.descriptor.EntityDescriptor; |
32 | 32 | import ai.timefold.solver.core.impl.domain.variable.declarative.TopologicalOrderGraph; |
33 | 33 | import ai.timefold.solver.core.impl.evolutionaryalgorithm.common.state.SolutionState; |
34 | | -import ai.timefold.solver.core.impl.evolutionaryalgorithm.common.state.SolutionStateManager; |
35 | | -import ai.timefold.solver.core.impl.evolutionaryalgorithm.crossover.CrossoverStrategy; |
36 | 34 | import ai.timefold.solver.core.impl.evolutionaryalgorithm.decider.EvolutionaryDecider; |
37 | | -import ai.timefold.solver.core.impl.evolutionaryalgorithm.population.individual.IndividualBuilder; |
38 | | -import ai.timefold.solver.core.impl.evolutionaryalgorithm.population.individual.generator.ConstructionIndividualStrategy; |
| 35 | +import ai.timefold.solver.core.impl.evolutionaryalgorithm.decider.HybridGeneticSearchWorkerContext; |
39 | 36 | import ai.timefold.solver.core.impl.heuristic.HeuristicConfigPolicy; |
40 | 37 | import ai.timefold.solver.core.impl.heuristic.selector.entity.EntitySelector; |
41 | 38 | import ai.timefold.solver.core.impl.heuristic.selector.list.DestinationSelector; |
|
48 | 45 | import ai.timefold.solver.core.impl.localsearch.decider.forager.LocalSearchForager; |
49 | 46 | import ai.timefold.solver.core.impl.neighborhood.MoveRepository; |
50 | 47 | import ai.timefold.solver.core.impl.partitionedsearch.PartitionedSearchPhase; |
51 | | -import ai.timefold.solver.core.impl.phase.Phase; |
52 | 48 | import ai.timefold.solver.core.impl.score.constraint.ConstraintMatchTotal; |
53 | 49 | import ai.timefold.solver.core.impl.score.director.InnerScore; |
54 | 50 | import ai.timefold.solver.core.impl.score.director.InnerScoreDirector; |
@@ -181,13 +177,9 @@ <Solution_> PartitionedSearchPhase<Solution_> buildPartitionedSearch(int phaseIn |
181 | 177 | BiFunction<HeuristicConfigPolicy<Solution_>, SolverTermination<Solution_>, PhaseTermination<Solution_>> phaseTerminationFunction); |
182 | 178 |
|
183 | 179 | <Solution_, Score_ extends Score<Score_>, State_ extends SolutionState<Solution_, Score_>> |
184 | | - EvolutionaryDecider<Solution_, Score_> buildHybridGeneticSearch(int populationSize, int generationSize, |
185 | | - int eliteGroupSize, int populationRestartCount, |
186 | | - ConstructionIndividualStrategy<Solution_, Score_> constructionIndividualStrategy, |
187 | | - Phase<Solution_> localSearchPhase, Phase<Solution_> swapStarPhase, |
188 | | - CrossoverStrategy<Solution_, Score_> crossoverStrategy, |
189 | | - IndividualBuilder<Solution_, Score_> individualBuilder, |
190 | | - SolutionStateManager<Solution_, Score_, State_> solutionInitializer, |
| 180 | + EvolutionaryDecider<Solution_, Score_> buildHybridGeneticSearch(HeuristicConfigPolicy<Solution_> solverConfigPolicy, |
| 181 | + int agentCount, int populationSize, int generationSize, int eliteGroupSize, int populationRestartCount, |
| 182 | + List<HybridGeneticSearchWorkerContext<Solution_, Score_, State_>> agentContextList, |
191 | 183 | PhaseTermination<Solution_> phaseTermination, BestSolutionRecaller<Solution_> bestSolutionRecaller); |
192 | 184 |
|
193 | 185 | <Solution_> EntitySelector<Solution_> applyNearbySelection(EntitySelectorConfig entitySelectorConfig, |
@@ -236,7 +228,9 @@ enum Feature { |
236 | 228 | "remove multistageMoveSelector and/or listMultistageMoveSelector from the solver configuration"), |
237 | 229 | CONSTRAINT_PROFILING("Constraint profiling", "remove constraintStreamProfilingEnabled from the solver configuration"), |
238 | 230 | SCORE_ANALYSIS("Score analysis", "do not use SolutionManager's analyze() method"), |
239 | | - RECOMMENDATIONS("Recommendations", "do not use SolutionManager's recommendAssignment() method"); |
| 231 | + RECOMMENDATIONS("Recommendations", "do not use SolutionManager's recommendAssignment() method"), |
| 232 | + EVOLUTIONARY_ALGORITHM("Evolutionary Algorithm", |
| 233 | + "remove the agent count property from the evolutionary algorithm configuration"); |
240 | 234 |
|
241 | 235 | private final String name; |
242 | 236 | private final String workaround; |
|
0 commit comments