Class MultiThreadedConstructionHeuristicDecider<Solution_>
- java.lang.Object
 - 
- org.optaplanner.core.impl.constructionheuristic.decider.ConstructionHeuristicDecider<Solution_>
 - 
- org.optaplanner.core.impl.constructionheuristic.decider.MultiThreadedConstructionHeuristicDecider<Solution_>
 
 
 
- 
- Type Parameters:
 Solution_- the solution type, the class with thePlanningSolutionannotation
public class MultiThreadedConstructionHeuristicDecider<Solution_> extends ConstructionHeuristicDecider<Solution_>
 
- 
- 
Field Summary
Fields Modifier and Type Field Description protected booleanassertExpectedStepScoreprotected booleanassertShadowVariablesAreNotStaleAfterStepprotected booleanassertStepScoreFromScratchprotected ExecutorServiceexecutorprotected CyclicBarriermoveThreadBarrierprotected intmoveThreadCountprotected List<MoveThreadRunner<Solution_,?>>moveThreadRunnerListprotected BlockingQueue<MoveThreadOperation<Solution_>>operationQueueprotected OrderByMoveIndexBlockingQueue<Solution_>resultQueueprotected intselectedMoveBufferSizeprotected ThreadFactorythreadFactory- 
Fields inherited from class org.optaplanner.core.impl.constructionheuristic.decider.ConstructionHeuristicDecider
assertExpectedUndoMoveScore, assertMoveScoreFromScratch, forager, logger, logIndentation, termination 
 - 
 
- 
Constructor Summary
Constructors Constructor Description MultiThreadedConstructionHeuristicDecider(String logIndentation, Termination<Solution_> termination, ConstructionHeuristicForager<Solution_> forager, ThreadFactory threadFactory, int moveThreadCount, int selectedMoveBufferSize) 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected ExecutorServicecreateThreadPoolExecutor()voiddecideNextStep(ConstructionHeuristicStepScope<Solution_> stepScope, Placement<Solution_> placement)voidphaseEnded(ConstructionHeuristicPhaseScope<Solution_> phaseScope)voidphaseStarted(ConstructionHeuristicPhaseScope<Solution_> phaseScope)voidsetAssertExpectedStepScore(boolean assertExpectedStepScore)voidsetAssertShadowVariablesAreNotStaleAfterStep(boolean assertShadowVariablesAreNotStaleAfterStep)voidsetAssertStepScoreFromScratch(boolean assertStepScoreFromScratch)voidsolvingError(SolverScope<Solution_> solverScope, Exception exception)- 
Methods inherited from class org.optaplanner.core.impl.constructionheuristic.decider.ConstructionHeuristicDecider
doMove, getForager, pickMove, setAssertExpectedUndoMoveScore, setAssertMoveScoreFromScratch, solvingEnded, solvingStarted, stepEnded, stepStarted 
 - 
 
 - 
 
- 
- 
Field Detail
- 
threadFactory
protected final ThreadFactory threadFactory
 
- 
moveThreadCount
protected final int moveThreadCount
 
- 
selectedMoveBufferSize
protected final int selectedMoveBufferSize
 
- 
assertStepScoreFromScratch
protected boolean assertStepScoreFromScratch
 
- 
assertExpectedStepScore
protected boolean assertExpectedStepScore
 
- 
assertShadowVariablesAreNotStaleAfterStep
protected boolean assertShadowVariablesAreNotStaleAfterStep
 
- 
operationQueue
protected BlockingQueue<MoveThreadOperation<Solution_>> operationQueue
 
- 
resultQueue
protected OrderByMoveIndexBlockingQueue<Solution_> resultQueue
 
- 
moveThreadBarrier
protected CyclicBarrier moveThreadBarrier
 
- 
executor
protected ExecutorService executor
 
- 
moveThreadRunnerList
protected List<MoveThreadRunner<Solution_,?>> moveThreadRunnerList
 
 - 
 
- 
Constructor Detail
- 
MultiThreadedConstructionHeuristicDecider
public MultiThreadedConstructionHeuristicDecider(String logIndentation, Termination<Solution_> termination, ConstructionHeuristicForager<Solution_> forager, ThreadFactory threadFactory, int moveThreadCount, int selectedMoveBufferSize)
 
 - 
 
- 
Method Detail
- 
setAssertStepScoreFromScratch
public void setAssertStepScoreFromScratch(boolean assertStepScoreFromScratch)
 
- 
setAssertExpectedStepScore
public void setAssertExpectedStepScore(boolean assertExpectedStepScore)
 
- 
setAssertShadowVariablesAreNotStaleAfterStep
public void setAssertShadowVariablesAreNotStaleAfterStep(boolean assertShadowVariablesAreNotStaleAfterStep)
 
- 
phaseStarted
public void phaseStarted(ConstructionHeuristicPhaseScope<Solution_> phaseScope)
- Overrides:
 phaseStartedin classConstructionHeuristicDecider<Solution_>
 
- 
phaseEnded
public void phaseEnded(ConstructionHeuristicPhaseScope<Solution_> phaseScope)
- Overrides:
 phaseEndedin classConstructionHeuristicDecider<Solution_>
 
- 
solvingError
public void solvingError(SolverScope<Solution_> solverScope, Exception exception)
- Overrides:
 solvingErrorin classConstructionHeuristicDecider<Solution_>
 
- 
createThreadPoolExecutor
protected ExecutorService createThreadPoolExecutor()
 
- 
decideNextStep
public void decideNextStep(ConstructionHeuristicStepScope<Solution_> stepScope, Placement<Solution_> placement)
- Overrides:
 decideNextStepin classConstructionHeuristicDecider<Solution_>
 
 - 
 
 -