# Package org.cpsolver.ifs.assignment

An assignment holds current values of all the variables of a model.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  Assignment<V extends Variable<V,T>,T extends Value<V,T>> | An assignment of all the variable of a `Model`.
  AssignmentComparable<X,V extends Variable<V,T>,T extends Value<V,T>> | Comparable interface for assignment-dependent objects.
  InheritedAssignment<V extends Variable<V,T>,T extends Value<V,T>> | An assignment inherited from some other assignment with only a few local modifications.

- Class Summary
  Class | Description
  --- | ---
  AssignmentAbstract<V extends Variable<V,T>,T extends Value<V,T>> | An abstract implementation of an `Assignment` object.
  AssignmentArray<V extends Variable<V,T>,T extends Value<V,T>> | An assignment using array to store values of all the variables of the model.
  AssignmentComparator<X extends AssignmentComparable<X,V,T>,V extends Variable<V,T>,T extends Value<V,T>> | Comparator for the `AssignmentComparable` objects.
  AssignmentMap<V extends Variable<V,T>,T extends Value<V,T>> | An assignment using a `HashMap` to store values of all the variables of the model.
  DefaultInheritedAssignment<V extends Variable<V,T>,T extends Value<V,T>> | Default inherited assignment.
  DefaultParallelAssignment<V extends Variable<V,T>,T extends Value<V,T>> | An assignment using the `Variable.getAssignments()` to store values of all the variables of the model.
  DefaultSingleAssignment<V extends Variable<V,T>,T extends Value<V,T>> | An assignment using the old `Variable.getAssignment()` to store values of all the variables of the model.
  EmptyAssignment<V extends Variable<V,T>,T extends Value<V,T>> | An empty assignment.
  InheritedAssignmentArray<V extends Variable<V,T>,T extends Value<V,T>> |
  OptimisticInheritedAssignment<V extends Variable<V,T>,T extends Value<V,T>> | Optimistic inherited assignment.
  ValueComparator<V extends Variable<V,T>,T extends Value<V,T>> | A simple class comparing two values.

## Package org.cpsolver.ifs.assignment Description

An assignment holds current values of all the variables of a model. These classes decouple an assignment of variables to their values from the model. This is needed for any kind of parallel computations, or in general, to be able to hold multiple different assignments in memory.

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