org.cpsolver.ifs.model

## Interface LazyNeighbour.LazyNeighbourAcceptanceCriterion<V extends Variable<V,T>,T extends Value<V,T>>

- Type Parameters:
    `V` - Variable
    `T` - Value
  All Known Implementing Classes:
    ExamGreatDeluge, ExamHillClimbing, ExamSimulatedAnnealing, GreatDeluge, HillClimber, NeighbourSearch, SimulatedAnnealing, StepCountingHillClimber
  Enclosing class:
    LazyNeighbour<V extends Variable<V,T>,T extends Value<V,T>>

      public static interface LazyNeighbour.LazyNeighbourAcceptanceCriterion<V extends Variable<V,T>,T extends Value<V,T>>

  Neighbour acceptance criterion interface (to be implemented by search strategies that are using `LazyNeighbour`. It is also required to call `LazyNeighbour.setAcceptanceCriterion(LazyNeighbour.LazyNeighbourAcceptanceCriterion)` before the neighbour is accepted by the search strategy.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `accept(Assignment<V,T> assignment, LazyNeighbour<V,T> neighbour, double value)` True when the currently assigned neighbour should be accepted (false means that the change will be undone

- - ### Method Detail

    - #### accept

          boolean accept(Assignment<V,T> assignment,
                         LazyNeighbour<V,T> neighbour,
                         double value)

      True when the currently assigned neighbour should be accepted (false means that the change will be undone
      Parameters:
        `assignment` - current assignment
        `neighbour` - neighbour that was assigned
        `value` - change in overall solution value
      Returns:
        true if the neighbour can be accepted (false to undo the assignment)