Package org.optaplanner.core.impl.constructionheuristic.decider

## Class ConstructionHeuristicDecider<Solution_>

- java.lang.Object
- - org.optaplanner.core.impl.constructionheuristic.decider.ConstructionHeuristicDecider<Solution_>

- Type Parameters:
    `Solution_` - the solution type, the class with the `PlanningSolution` annotation
  Direct Known Subclasses:
    `MultiThreadedConstructionHeuristicDecider`

      public class ConstructionHeuristicDecider<Solution_>
      extends Object

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected boolean` | `assertExpectedUndoMoveScore` |
    `protected boolean` | `assertMoveScoreFromScratch` |
    `protected ConstructionHeuristicForager<Solution_>` | `forager` |
    `protected org.slf4j.Logger` | `logger` |
    `protected String` | `logIndentation` |
    `protected Termination<Solution_>` | `termination` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ConstructionHeuristicDecider​(String logIndentation, Termination<Solution_> termination, ConstructionHeuristicForager<Solution_> forager)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `decideNextStep​(ConstructionHeuristicStepScope<Solution_> stepScope, Placement<Solution_> placement)` |
    `protected <Score_ extends Score<Score_>> void` | `doMove​(ConstructionHeuristicMoveScope<Solution_> moveScope)` |
    `ConstructionHeuristicForager<Solution_>` | `getForager()` |
    `void` | `phaseEnded​(ConstructionHeuristicPhaseScope<Solution_> phaseScope)` |
    `void` | `phaseStarted​(ConstructionHeuristicPhaseScope<Solution_> phaseScope)` |
    `protected void` | `pickMove​(ConstructionHeuristicStepScope<Solution_> stepScope)` |
    `void` | `setAssertExpectedUndoMoveScore​(boolean assertExpectedUndoMoveScore)` |
    `void` | `setAssertMoveScoreFromScratch​(boolean assertMoveScoreFromScratch)` |
    `void` | `solvingEnded​(SolverScope<Solution_> solverScope)` |
    `void` | `solvingStarted​(SolverScope<Solution_> solverScope)` |
    `void` | `stepEnded​(ConstructionHeuristicStepScope<Solution_> stepScope)` |
    `void` | `stepStarted​(ConstructionHeuristicStepScope<Solution_> stepScope)` |

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### logger

          protected final transient org.slf4j.Logger logger

    - #### logIndentation

          protected final String logIndentation

    - #### termination

          protected final Termination<Solution_> termination

    - #### forager

          protected final ConstructionHeuristicForager<Solution_> forager

    - #### assertMoveScoreFromScratch

          protected boolean assertMoveScoreFromScratch

    - #### assertExpectedUndoMoveScore

          protected boolean assertExpectedUndoMoveScore

  - ### Constructor Detail

    - #### ConstructionHeuristicDecider

          public ConstructionHeuristicDecider​(String logIndentation,
                                              Termination<Solution_> termination,
                                              ConstructionHeuristicForager<Solution_> forager)

  - ### Method Detail

    - #### getForager

          public ConstructionHeuristicForager<Solution_> getForager()

    - #### setAssertMoveScoreFromScratch

          public void setAssertMoveScoreFromScratch​(boolean assertMoveScoreFromScratch)

    - #### setAssertExpectedUndoMoveScore

          public void setAssertExpectedUndoMoveScore​(boolean assertExpectedUndoMoveScore)

    - #### solvingStarted

          public void solvingStarted​(SolverScope<Solution_> solverScope)

    - #### phaseStarted

          public void phaseStarted​(ConstructionHeuristicPhaseScope<Solution_> phaseScope)

    - #### stepStarted

          public void stepStarted​(ConstructionHeuristicStepScope<Solution_> stepScope)

    - #### stepEnded

          public void stepEnded​(ConstructionHeuristicStepScope<Solution_> stepScope)

    - #### phaseEnded

          public void phaseEnded​(ConstructionHeuristicPhaseScope<Solution_> phaseScope)

    - #### solvingEnded

          public void solvingEnded​(SolverScope<Solution_> solverScope)

    - #### decideNextStep

          public void decideNextStep​(ConstructionHeuristicStepScope<Solution_> stepScope,
                                     Placement<Solution_> placement)

    - #### pickMove

          protected void pickMove​(ConstructionHeuristicStepScope<Solution_> stepScope)

    - #### doMove

          protected <Score_ extends Score<Score_>> void doMove​(ConstructionHeuristicMoveScope<Solution_> moveScope)