/** * @param solverConfigContext never null */ public EmptySolverFactory(SolverConfigContext solverConfigContext) { super(solverConfigContext); solverConfig = new SolverConfig(); }
@Override public SolverFactory<Solution_> cloneSolverFactory() { if (solverConfig == null) { throw new IllegalStateException("The solverConfig (" + solverConfig + ") is null," + " call configure(...) first."); } SolverConfig solverConfigClone = new SolverConfig(solverConfig); return new EmptySolverFactory<>(solverConfigContext, solverConfigClone); }
@Test public void moveThreadCountIsCorrectlyResolvedWhenValueIsPositive() { SolverConfig solverConfig = new SolverConfig(); solverConfig.setMoveThreadCount("2"); assertEquals(Integer.valueOf(2), solverConfig.resolveMoveThreadCount()); }
SolverConfig solverConfig = new SolverConfig(); List<PhaseConfig> phaseConfigList = new ArrayList<>(2); ConstructionHeuristicPhaseConfig constructionHeuristicPhaseConfig = new ConstructionHeuristicPhaseConfig();
@Test public void moveThreadCountThrowsExceptionWhenValueIsNegative() { SolverConfig solverConfig = new SolverConfig(); solverConfig.setMoveThreadCount("-6"); try { solverConfig.resolveMoveThreadCount(); fail("IllegalArgumentException should have been thrown."); } catch (IllegalArgumentException expectedException) { //expected } }
@Test public void moveThreadCountIsResolvedToNullWhenValueIsNone() { SolverConfig solverConfig = new SolverConfig(); solverConfig.setMoveThreadCount(SolverConfig.MOVE_THREAD_COUNT_NONE); assertNull(solverConfig.resolveMoveThreadCount()); }
/** * @param solverFactory never null, also its {@link ClassLoader} is reused if any was configured during creation * @param benchmarkDirectory never null * @param <Solution_> the solution type, the class with the {@link PlanningSolution} annotation */ public static <Solution_> PlannerBenchmarkFactory createFromSolverFactory(SolverFactory<Solution_> solverFactory, File benchmarkDirectory) { SolverConfigContext solverConfigContext = ((AbstractSolverFactory) solverFactory).getSolverConfigContext(); PlannerBenchmarkFactory plannerBenchmarkFactory = (solverConfigContext == null) ? new EmptyPlannerBenchmarkFactory() : new EmptyPlannerBenchmarkFactory(solverConfigContext); PlannerBenchmarkConfig plannerBenchmarkConfig = plannerBenchmarkFactory.getPlannerBenchmarkConfig(); plannerBenchmarkConfig.setBenchmarkDirectory(benchmarkDirectory); SolverBenchmarkConfig solverBenchmarkConfig = new SolverBenchmarkConfig(); SolverConfig solverConfig = new SolverConfig(solverFactory.getSolverConfig()); solverBenchmarkConfig.setSolverConfig(solverConfig); plannerBenchmarkConfig.setInheritedSolverBenchmarkConfig(solverBenchmarkConfig); plannerBenchmarkConfig.setSolverBenchmarkConfigList(Collections.singletonList(new SolverBenchmarkConfig())); return plannerBenchmarkFactory; }
solverConfig = new SolverConfig(solverConfig); solverConfig.offerRandomSeedFromSubSingleIndex((long) subSingleBenchmarkResult.getSubSingleBenchmarkIndex());
SolverConfig p1SolverConfigX = new SolverConfig(); p1SolverConfigX.setRandomType(RandomType.JDK); p1SolverX.setSolverConfig(p1SolverConfigX); SolverBenchmarkResult p1SolverY = new SolverBenchmarkResult(p1); p1SolverY.setName("Solver Y"); SolverConfig p1SolverConfigY = new SolverConfig(); p1SolverConfigY.setRandomType(RandomType.MERSENNE_TWISTER); p1SolverY.setSolverConfig(p1SolverConfigY); SolverBenchmarkResult p2SolverZ = new SolverBenchmarkResult(p2); p2SolverZ.setName("Solver Z"); SolverConfig p2SolverConfigZ = new SolverConfig(); p2SolverConfigZ.setRandomType(RandomType.WELL1024A); p2SolverZ.setSolverConfig(p2SolverConfigZ);
public SolverConfig get() { SolverConfig solverConfig = new SolverConfig(); solverConfig.setScanAnnotatedClassesConfig(new ScanAnnotatedClassesConfig()); solverConfig.setTerminationConfig(create(config.getTermination())); solverConfig.setScoreDirectorFactoryConfig(create(config.getScoreDirectorFactoryConfig())); solverConfig.setPhaseConfigList(create(config.getPhaseConfigList())); return solverConfig; }
SolverConfig p1SolverConfigX = new SolverConfig(); p1SolverConfigX.setRandomType(RandomType.JDK); p1SolverX.setSolverConfig(p1SolverConfigX); SolverBenchmarkResult p1SolverY = new SolverBenchmarkResult(p1); p1SolverY.setName("Solver Y"); SolverConfig p1SolverConfigY = new SolverConfig(); p1SolverConfigY.setRandomType(RandomType.MERSENNE_TWISTER); p1SolverY.setSolverConfig(p1SolverConfigY); SolverBenchmarkResult p2SolverZ = new SolverBenchmarkResult(p2); p2SolverZ.setName("Solver Z"); SolverConfig p2SolverConfigZ = new SolverConfig(); p2SolverConfigZ.setRandomType(RandomType.WELL1024A); p2SolverZ.setSolverConfig(p2SolverConfigZ);
private SolverConfig getSolverConfig() { SolverConfig solverConfig = new SolverConfig(); TerminationConfig terminationConfig = new TerminationConfig(); terminationConfig.setMillisecondsSpentLimit(1l); TerminationConfig nestedTerminationConfig = new TerminationConfig(); nestedTerminationConfig.setBestScoreFeasible(true); terminationConfig.setTerminationConfigList(Arrays.asList(nestedTerminationConfig)); solverConfig.setTerminationConfig(terminationConfig); ScoreDirectorFactoryConfig scoreDirectorFactoryConfig = new ScoreDirectorFactoryConfig(); scoreDirectorFactoryConfig.setKsessionName("testKsession"); solverConfig.setScoreDirectorFactoryConfig(scoreDirectorFactoryConfig); ConstructionHeuristicPhaseConfig constructionHeuristicPhaseConfig = new ConstructionHeuristicPhaseConfig(); constructionHeuristicPhaseConfig.setConstructionHeuristicType(ConstructionHeuristicType.FIRST_FIT); LocalSearchPhaseConfig localSearchPhaseConfig = new LocalSearchPhaseConfig(); localSearchPhaseConfig.setLocalSearchType(LocalSearchType.TABU_SEARCH); solverConfig.setPhaseConfigList(Arrays.asList(constructionHeuristicPhaseConfig, localSearchPhaseConfig)); return solverConfig; } }