Package org.optaplanner.core.impl.exhaustivesearch.node.bounder

## Interface ScoreBounder

- All Known Implementing Classes:
    `TrendBasedScoreBounder`

      public interface ScoreBounder

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Score` | `calculateOptimisticBound​(ScoreDirector scoreDirector, Score score)` | In OR terms, this is called the lower bound if they minimize, and upper bound if they maximize.
    `Score` | `calculatePessimisticBound​(ScoreDirector scoreDirector, Score score)` | In OR terms, this is called the upper bound if they minimize, and lower bound if they maximize.

- - ### Method Detail

    - #### calculateOptimisticBound

          Score calculateOptimisticBound​(ScoreDirector scoreDirector,
                                         Score score)

      In OR terms, this is called the lower bound if they minimize, and upper bound if they maximize. Because we always maximize the `Score`, calling it lower bound would be a contradiction.
      Parameters:
        `scoreDirector` - never null, use `ScoreDirector.getWorkingSolution()` to get the working `PlanningSolution`
        `score` - never null, the `Score` of the working `PlanningSolution`
      Returns:
        never null, never worse than the best possible `Score` we can get by initializing the uninitialized variables of the working `PlanningSolution`.
      See Also:
        `ScoreDefinition.buildOptimisticBound(InitializingScoreTrend, Score)`

    - #### calculatePessimisticBound

          Score calculatePessimisticBound​(ScoreDirector scoreDirector,
                                          Score score)

      In OR terms, this is called the upper bound if they minimize, and lower bound if they maximize. Because we always maximize the `Score`, calling it upper bound would be a contradiction.
      Parameters:
        `scoreDirector` - never null, use `ScoreDirector.getWorkingSolution()` to get the working `PlanningSolution`
        `score` - never null, the `Score` of the working `PlanningSolution`
      Returns:
        never null, never better than the worst possible `Score` we can get by initializing the uninitialized variables of the working `PlanningSolution`.
      See Also:
        `ScoreDefinition.buildPessimisticBound(InitializingScoreTrend, Score)`