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 thePlanningSolution
annotation
public class MultiThreadedConstructionHeuristicDecider<Solution_> extends ConstructionHeuristicDecider<Solution_>
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
assertExpectedStepScore
protected boolean
assertShadowVariablesAreNotStaleAfterStep
protected boolean
assertStepScoreFromScratch
protected ExecutorService
executor
protected CyclicBarrier
moveThreadBarrier
protected int
moveThreadCount
protected List<MoveThreadRunner<Solution_,?>>
moveThreadRunnerList
protected BlockingQueue<MoveThreadOperation<Solution_>>
operationQueue
protected OrderByMoveIndexBlockingQueue<Solution_>
resultQueue
protected int
selectedMoveBufferSize
protected ThreadFactory
threadFactory
-
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 ExecutorService
createThreadPoolExecutor()
void
decideNextStep(ConstructionHeuristicStepScope<Solution_> stepScope, Placement<Solution_> placement)
void
phaseEnded(ConstructionHeuristicPhaseScope<Solution_> phaseScope)
void
phaseStarted(ConstructionHeuristicPhaseScope<Solution_> phaseScope)
void
setAssertExpectedStepScore(boolean assertExpectedStepScore)
void
setAssertShadowVariablesAreNotStaleAfterStep(boolean assertShadowVariablesAreNotStaleAfterStep)
void
setAssertStepScoreFromScratch(boolean assertStepScoreFromScratch)
-
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:
phaseStarted
in classConstructionHeuristicDecider<Solution_>
-
phaseEnded
public void phaseEnded(ConstructionHeuristicPhaseScope<Solution_> phaseScope)
- Overrides:
phaseEnded
in classConstructionHeuristicDecider<Solution_>
-
createThreadPoolExecutor
protected ExecutorService createThreadPoolExecutor()
-
decideNextStep
public void decideNextStep(ConstructionHeuristicStepScope<Solution_> stepScope, Placement<Solution_> placement)
- Overrides:
decideNextStep
in classConstructionHeuristicDecider<Solution_>
-
-