org.cpsolver.ifs.termination

## Interface TerminationCondition<V extends Variable<V,T>,T extends Value<V,T>>

- Type Parameters:
    `V` - Variable
    `T` - Value
  All Known Implementing Classes:
    ExamNeighbourSelection, GeneralTerminationCondition, MPPTerminationCondition

      public interface TerminationCondition<V extends Variable<V,T>,T extends Value<V,T>>

  Termination condition.
  The termination condition determines when the algorithm should finish. For example, the solver should terminate when the maximal number of iterations or some other given timeout value is reached. Moreover, it can stop the search process when the current solution is good enough, e.g., all variables are assigned and/or some other solution parameters are in the required ranges. For example, the solver can stop when all variables are assigned and less than 10% of the soft constraints are violated. Termination of the process by the user can also be a part of the termination condition.
  Version:
    IFS 1.3 (Iterative Forward Search)
    Copyright (C) 2006 - 2014 Tomáš Müller
    muller@unitime.org
    http://muller.unitime.org
    This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
    This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
    You should have received a copy of the GNU Lesser General Public License along with this library; if not see http://www.gnu.org/licenses.
  Author:
    Tomáš Müller
  See Also:
    `Solver`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `canContinue(Solution<V,T> currentSolution)` Returns true when the solver can continue with the next iteration

- - ### Method Detail

    - #### canContinue

          boolean canContinue(Solution<V,T> currentSolution)

      Returns true when the solver can continue with the next iteration
      Parameters:
        `currentSolution` - current solution
      Returns:
        true if the solver can continue with the next iteration