}
acceptorList.add(acceptor);
}
if ((acceptorTypeList != null && acceptorTypeList.contains(AcceptorType.MOVE_TABU))
|| moveTabuSize != null || fadingMoveTabuSize != null) {
MoveTabuAcceptor acceptor = new MoveTabuAcceptor();
acceptor.setUseUndoMoveAsTabuMove(false);
if (moveTabuSize != null) {
acceptor.setTabuSizeStrategy(new FixedTabuSizeStrategy(moveTabuSize));
}
if (fadingMoveTabuSize != null) {
acceptor.setFadingTabuSizeStrategy(new FixedTabuSizeStrategy(fadingMoveTabuSize));
}
if (environmentMode.isNonIntrusiveFullAsserted()) {
acceptor.setAssertTabuHashCodeCorrectness(true);
}
acceptorList.add(acceptor);
}
if ((acceptorTypeList != null && acceptorTypeList.contains(AcceptorType.UNDO_MOVE_TABU))
|| undoMoveTabuSize != null || fadingUndoMoveTabuSize != null) {
MoveTabuAcceptor acceptor = new MoveTabuAcceptor();
acceptor.setUseUndoMoveAsTabuMove(true);
if (undoMoveTabuSize != null) {
acceptor.setTabuSizeStrategy(new FixedTabuSizeStrategy(undoMoveTabuSize));
}
if (fadingUndoMoveTabuSize != null) {
acceptor.setFadingTabuSizeStrategy(new FixedTabuSizeStrategy(fadingUndoMoveTabuSize));
}
if (environmentMode.isNonIntrusiveFullAsserted()) {
acceptor.setAssertTabuHashCodeCorrectness(true);
}
acceptorList.add(acceptor);
}
if ((acceptorTypeList != null && acceptorTypeList.contains(AcceptorType.SOLUTION_TABU))
|| solutionTabuSize != null || fadingSolutionTabuSize != null) {
SolutionTabuAcceptor acceptor = new SolutionTabuAcceptor();
if (solutionTabuSize != null) {
acceptor.setTabuSizeStrategy(new FixedTabuSizeStrategy(solutionTabuSize));
}
if (fadingSolutionTabuSize != null) {
acceptor.setFadingTabuSizeStrategy(new FixedTabuSizeStrategy(fadingSolutionTabuSize));
}
if (environmentMode.isNonIntrusiveFullAsserted()) {
acceptor.setAssertTabuHashCodeCorrectness(true);
}
acceptorList.add(acceptor);
}
if ((acceptorTypeList != null && acceptorTypeList.contains(AcceptorType.SIMULATED_ANNEALING))
|| simulatedAnnealingStartingTemperature != null) {
SimulatedAnnealingAcceptor acceptor = new SimulatedAnnealingAcceptor();
acceptor.setStartingTemperature(configPolicy.getScoreDefinition()
.parseScore(simulatedAnnealingStartingTemperature));
acceptorList.add(acceptor);
}
if ((acceptorTypeList != null && acceptorTypeList.contains(AcceptorType.LATE_ACCEPTANCE))
|| lateAcceptanceSize != null) {
LateAcceptanceAcceptor acceptor = new LateAcceptanceAcceptor();
acceptor.setLateAcceptanceSize((lateAcceptanceSize == null) ? 1000 : lateAcceptanceSize);
acceptorList.add(acceptor);
}
if ((acceptorTypeList != null && acceptorTypeList.contains(AcceptorType.STEP_COUNTING_HILL_CLIMBING))
|| stepCountingHillClimbingSize != null) {
int stepCountingHillClimbingSize_ = (stepCountingHillClimbingSize == null)
? 1000 : stepCountingHillClimbingSize;
StepCountingHillClimbingType stepCountingHillClimbingType_ = (stepCountingHillClimbingType == null)
? StepCountingHillClimbingType.STEP : stepCountingHillClimbingType;
StepCountingHillClimbingAcceptor acceptor = new StepCountingHillClimbingAcceptor(
stepCountingHillClimbingSize_, stepCountingHillClimbingType_);
acceptorList.add(acceptor);
}
if ((acceptorTypeList != null && acceptorTypeList.contains(AcceptorType.LATE_SIMULATED_ANNEALING))
|| lateSimulatedAnnealingSize != null) {
LateSimulatedAnnealingAcceptor acceptor = new LateSimulatedAnnealingAcceptor();
acceptor.setLateSimulatedAnnealingSize((lateSimulatedAnnealingSize == null) ? 1000 : lateSimulatedAnnealingSize);
acceptorList.add(acceptor);
}
if (acceptorList.size() == 1) {
return acceptorList.get(0);
} else if (acceptorList.size() > 1) {