# Package org.cpsolver.ifs.model

IFS Model (description of a problem)

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  ConstraintListener<V extends Variable<V,T>,T extends Value<V,T>> | IFS constraint listener.
  ExtendedInfoProvider<V extends Variable<V,T>,T extends Value<V,T>> | An extension of the `InfoProvider` class providing extended information.
  InfoProvider<V extends Variable<V,T>,T extends Value<V,T>> | A class providing INFO table.
  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`.
  ModelListener<V extends Variable<V,T>,T extends Value<V,T>> | IFS model listener.
  Neighbour<V extends Variable<V,T>,T extends Value<V,T>> | IFS neighbour.
  VariableListener<T extends Value<?,T>> | IFS variable listener.
  WeakeningConstraint<V extends Variable<V,T>,T extends Value<V,T>> | Interface of a constraint that weakens with the time.

- Class Summary
  Class | Description
  --- | ---
  BinaryConstraint<V extends Variable<V,T>,T extends Value<V,T>> | Binary constraint.
  Constraint<V extends Variable<V,T>,T extends Value<V,T>> | Generic constraint.
  GlobalConstraint<V extends Variable<V,T>,T extends Value<V,T>> | Generic global constraint.
  LazyNeighbour<V extends Variable<V,T>,T extends Value<V,T>> | Lazy neigbour (a change of the overall solution value is unknown before the neighbour is assigned, it is possible to undo the neighbour instead).
  LazySwap<V extends Variable<V,T>,T extends Value<V,T>> | Lazy swap of two variables.
  Model<V extends Variable<V,T>,T extends Value<V,T>> | Generic model (definition of a problem).
  SimpleNeighbour<V extends Variable<V,T>,T extends Value<V,T>> | A neighbour consisting of a change (either assignment or unassignment) of a single variable.
  Value<V extends Variable<V,T>,T extends Value<V,T>> | Generic value.
  Variable<V extends Variable<V,T>,T extends Value<V,T>> | Generic variable.

## Package org.cpsolver.ifs.model Description

IFS Model (description of a problem)

Version:
  IFS 1.4 (Instructor Sectioning)
  Copyright (C) 2024 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