Package org.optaplanner.core.impl.localsearch.decider

## Class LocalSearchDecider<Solution_>

- java.lang.Object
- - org.optaplanner.core.impl.localsearch.decider.LocalSearchDecider<Solution_>

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

      public class LocalSearchDecider<Solution_>
      extends Object

- - ### Field Summary

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

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `LocalSearchDecider​(String logIndentation, Termination<Solution_> termination, MoveSelector<Solution_> moveSelector, Acceptor<Solution_> acceptor, LocalSearchForager<Solution_> forager)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `decideNextStep​(LocalSearchStepScope<Solution_> stepScope)` |
    `protected <Score_ extends Score<Score_>> void` | `doMove​(LocalSearchMoveScope<Solution_> moveScope)` |
    `Acceptor<Solution_>` | `getAcceptor()` |
    `LocalSearchForager<Solution_>` | `getForager()` |
    `MoveSelector<Solution_>` | `getMoveSelector()` |
    `Termination<Solution_>` | `getTermination()` |
    `void` | `phaseEnded​(LocalSearchPhaseScope<Solution_> phaseScope)` |
    `void` | `phaseStarted​(LocalSearchPhaseScope<Solution_> phaseScope)` |
    `protected void` | `pickMove​(LocalSearchStepScope<Solution_> stepScope)` |
    `void` | `setAssertExpectedUndoMoveScore​(boolean assertExpectedUndoMoveScore)` |
    `void` | `setAssertMoveScoreFromScratch​(boolean assertMoveScoreFromScratch)` |
    `void` | `solvingEnded​(SolverScope<Solution_> solverScope)` |
    `void` | `solvingStarted​(SolverScope<Solution_> solverScope)` |
    `void` | `stepEnded​(LocalSearchStepScope<Solution_> stepScope)` |
    `void` | `stepStarted​(LocalSearchStepScope<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

    - #### moveSelector

          protected final MoveSelector<Solution_> moveSelector

    - #### acceptor

          protected final Acceptor<Solution_> acceptor

    - #### forager

          protected final LocalSearchForager<Solution_> forager

    - #### assertMoveScoreFromScratch

          protected boolean assertMoveScoreFromScratch

    - #### assertExpectedUndoMoveScore

          protected boolean assertExpectedUndoMoveScore

  - ### Constructor Detail

    - #### LocalSearchDecider

          public LocalSearchDecider​(String logIndentation,
                                    Termination<Solution_> termination,
                                    MoveSelector<Solution_> moveSelector,
                                    Acceptor<Solution_> acceptor,
                                    LocalSearchForager<Solution_> forager)

  - ### Method Detail

    - #### getTermination

          public Termination<Solution_> getTermination()

    - #### getMoveSelector

          public MoveSelector<Solution_> getMoveSelector()

    - #### getAcceptor

          public Acceptor<Solution_> getAcceptor()

    - #### getForager

          public LocalSearchForager<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​(LocalSearchPhaseScope<Solution_> phaseScope)

    - #### stepStarted

          public void stepStarted​(LocalSearchStepScope<Solution_> stepScope)

    - #### decideNextStep

          public void decideNextStep​(LocalSearchStepScope<Solution_> stepScope)

    - #### doMove

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

    - #### pickMove

          protected void pickMove​(LocalSearchStepScope<Solution_> stepScope)

    - #### stepEnded

          public void stepEnded​(LocalSearchStepScope<Solution_> stepScope)

    - #### phaseEnded

          public void phaseEnded​(LocalSearchPhaseScope<Solution_> phaseScope)

    - #### solvingEnded

          public void solvingEnded​(SolverScope<Solution_> solverScope)