constructionHeuristicSolverPhaseConfig.setConstructionHeuristicType(
ConstructionHeuristicSolverPhaseConfig.ConstructionHeuristicType.FIRST_FIT_DECREASING);
constructionHeuristicSolverPhaseConfig.setConstructionHeuristicPickEarlyType(
ConstructionHeuristicPickEarlyType.FIRST_LAST_STEP_SCORE_EQUAL_OR_IMPROVING);
solverPhaseConfigList.add(constructionHeuristicSolverPhaseConfig);
LocalSearchSolverPhaseConfig localSearchSolverPhaseConfig = new LocalSearchSolverPhaseConfig();
ChangeMoveSelectorConfig changeMoveSelectorConfig = new ChangeMoveSelectorConfig();
changeMoveSelectorConfig.setSelectionOrder(SelectionOrder.ORIGINAL);
localSearchSolverPhaseConfig.setMoveSelectorConfigList(
Arrays.<MoveSelectorConfig>asList(changeMoveSelectorConfig));
localSearchSolverPhaseConfig.getAcceptorConfig().setSolutionTabuSize(1000);
solverPhaseConfigList.add(localSearchSolverPhaseConfig);
solverConfig.setSolverPhaseConfigList(solverPhaseConfigList);
return solverConfig.buildSolver();
}