## Uses of Class
org.cpsolver.ifs.model.Variable

- Packages that use Variable
  Package | Description
  --- | ---
  org.cpsolver.coursett.model | University Course Timetabling: Model.
  org.cpsolver.exam.model | Examination Timetabling: Model.
  org.cpsolver.ifs.algorithms | IFS Neighbourhood Search Algorithms
  org.cpsolver.ifs.algorithms.neighbourhoods | IFS: Various Problem-Independent Neighbourhoods.
  org.cpsolver.ifs.assignment | An assignment holds current values of all the variables of a model.
  org.cpsolver.ifs.assignment.context | Assignment context can be used by a class (e.g., a constraint, a extension, a neighborhood selection, or a criterion) to contain any assignment dependent data.
  org.cpsolver.ifs.constant | Extension of the model with constant variables.
  org.cpsolver.ifs.criteria | IFS Criteria.
  org.cpsolver.ifs.dbt | Dynamic backtracking extension of IFS solver
  org.cpsolver.ifs.example.csp | Random Binary CSP with uniform distribution.
  org.cpsolver.ifs.example.jobshop | JobShop Problem.
  org.cpsolver.ifs.example.rpp | Random Placement Problem.
  org.cpsolver.ifs.example.tt | Simple Timetabling Problem.
  org.cpsolver.ifs.extension | IFS Extensions (conflict-based statistics, maintenance of arc consistency)
  org.cpsolver.ifs.heuristics | IFS Heuristics (value and variable selection criteria)
  org.cpsolver.ifs.model | IFS Model (description of a problem)
  org.cpsolver.ifs.perturbations | Minimal Perturbation Problem: counting of perturbations
  org.cpsolver.ifs.solution | IFS Solution (also contains solution comparator)
  org.cpsolver.ifs.solver | IFS Solver
  org.cpsolver.ifs.termination | IFS Termination (termination condition)
  org.cpsolver.ifs.util | Utilities
  org.cpsolver.instructor.model | Instructor Scheduling: Model.
  org.cpsolver.studentsct.heuristics | Student Sectioning: Heuristics.
  org.cpsolver.studentsct.model | Student Sectioning: Model.

- - ### Uses of Variable in org.cpsolver.coursett.model

    Subclasses of Variable in org.cpsolver.coursett.model
    Modifier and Type | Class and Description
    --- | ---
    `class` | `Lecture` Lecture (variable).

  - ### Uses of Variable in org.cpsolver.exam.model

    Subclasses of Variable in org.cpsolver.exam.model
    Modifier and Type | Class and Description
    --- | ---
    `class` | `Exam` Representation of an exam (problem variable).

  - ### Uses of Variable in org.cpsolver.ifs.algorithms

    Classes in org.cpsolver.ifs.algorithms with type parameters of type Variable
    Modifier and Type | Class and Description
    --- | ---
    `class` | `GreatDeluge<V extends Variable<V,T>,T extends Value<V,T>>` Great deluge.
    `class` | `HillClimber<V extends Variable<V,T>,T extends Value<V,T>>` Hill climber.
    `class` | `MetaHeuristicSearch<V extends Variable<V,T>,T extends Value<V,T>>` Meta-heuristic search neighbor selection.
    `class` | `NeighbourSearch<V extends Variable<V,T>,T extends Value<V,T>>` Base class for the search techniques like hill climber, great deluge, or simulated annealing.
    `class` | `NeighbourSelector<V extends Variable<V,T>,T extends Value<V,T>>` A wrapper for `NeighbourSelection` that keeps some stats about the given neighbour selector.
    `class` | `ParallelConstruction<V extends Variable<V,T>,T extends Value<V,T>>` A simple neighbourhood selection extension suitable for the `ParallelSolver` during the construction phase.
    `class` | `SimpleSearch<V extends Variable<V,T>,T extends Value<V,T>>` Simple search neighbour selection.
    `class` | `SimulatedAnnealing<V extends Variable<V,T>,T extends Value<V,T>>` Simulated annealing.
    `class` | `StepCountingHillClimber<V extends Variable<V,T>,T extends Value<V,T>>` Step counting hill climber.

  - ### Uses of Variable in org.cpsolver.ifs.algorithms.neighbourhoods

    Classes in org.cpsolver.ifs.algorithms.neighbourhoods with type parameters of type Variable
    Modifier and Type | Class and Description
    --- | ---
    `class` | `RandomMove<V extends Variable<V,T>,T extends Value<V,T>>` Try to assign a variable with a new value.
    `class` | `RandomSwapMove<V extends Variable<V,T>,T extends Value<V,T>>` Try to assign a variable with a new value.
    `class` | `SuggestionMove<V extends Variable<V,T>,T extends Value<V,T>>` Suggestion move.

  - ### Uses of Variable in org.cpsolver.ifs.assignment

    Classes in org.cpsolver.ifs.assignment with type parameters of type Variable
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `Assignment<V extends Variable<V,T>,T extends Value<V,T>>` An assignment of all the variable of a `Model`.
    `class` | `AssignmentAbstract<V extends Variable<V,T>,T extends Value<V,T>>` An abstract implementation of an `Assignment` object.
    `class` | `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.
    `interface` | `AssignmentComparable<X,V extends Variable<V,T>,T extends Value<V,T>>` Comparable interface for assignment-dependent objects.
    `class` | `AssignmentComparator<X extends AssignmentComparable<X,V,T>,V extends Variable<V,T>,T extends Value<V,T>>` Comparator for the `AssignmentComparable` objects.
    `class` | `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.
    `class` | `DefaultInheritedAssignment<V extends Variable<V,T>,T extends Value<V,T>>` Default inherited assignment.
    `class` | `DefaultParallelAssignment<V extends Variable<V,T>,T extends Value<V,T>>` An assignment using the `getAssignments()` to store values of all the variables of the model.
    `class` | `DefaultSingleAssignment<V extends Variable<V,T>,T extends Value<V,T>>` An assignment using the old `getAssignment()` to store values of all the variables of the model.
    `class` | `EmptyAssignment<V extends Variable<V,T>,T extends Value<V,T>>` An empty assignment.
    `interface` | `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` | `InheritedAssignmentArray<V extends Variable<V,T>,T extends Value<V,T>>`
    `class` | `OptimisticInheritedAssignment<V extends Variable<V,T>,T extends Value<V,T>>` Optimistic inherited assignment.
    `class` | `ValueComparator<V extends Variable<V,T>,T extends Value<V,T>>` A simple class comparing two values.

  - ### Uses of Variable in org.cpsolver.ifs.assignment.context

    Classes in org.cpsolver.ifs.assignment.context with type parameters of type Variable
    Modifier and Type | Class and Description
    --- | ---
    `class` | `AbstractClassWithContext<V extends Variable<V,T>,T extends Value<V,T>,C extends AssignmentContext>` An abstract implementation of an assignment context holding class.
    `interface` | `AssignmentConstraintContext<V extends Variable<V,T>,T extends Value<V,T>>` An extension of the simple `AssignmentContext` which is used by the `ConstraintWithContext` class.
    `interface` | `AssignmentContextHolder<V extends Variable<V,T>,T extends Value<V,T>>` An interface holding all assignment contexts associated with one assignment.
    `class` | `AssignmentContextHolderArray<V extends Variable<V,T>,T extends Value<V,T>>` A simple assignment context holder implementation using array to store all the assignment contexts.
    `class` | `AssignmentContextHolderMap<V extends Variable<V,T>,T extends Value<V,T>>` A simple assignment context holder implementation using `HashMap` to store all the assignment contexts.
    `class` | `AssignmentContextReference<V extends Variable<V,T>,T extends Value<V,T>,C extends AssignmentContext>` A reference to an assignment context.
    `class` | `BinaryConstraintWithContext<V extends Variable<V,T>,T extends Value<V,T>,C extends AssignmentConstraintContext<V,T>>` A binary constraint with an assignment context.
    `interface` | `CanInheritContext<V extends Variable<V,T>,T extends Value<V,T>,C extends AssignmentContext>` An additional interface that can be implemented by the `HasAssignmentContext` class.
    `class` | `ConstraintWithContext<V extends Variable<V,T>,T extends Value<V,T>,C extends AssignmentConstraintContext<V,T>>` A constraint with an assignment context.
    `class` | `DefaultParallelAssignmentContextHolder<V extends Variable<V,T>,T extends Value<V,T>>` A simple assignment context holder implementation used by the `DefaultParallelAssignment` class.
    `class` | `DefaultSingleAssignmentContextHolder<V extends Variable<V,T>,T extends Value<V,T>>` A simple assignment context holder implementation used by the `DefaultSingleAssignment` class.
    `class` | `ExtensionWithContext<V extends Variable<V,T>,T extends Value<V,T>,C extends AssignmentContext>` An extension with an assignment context.
    `interface` | `HasAssignmentContext<V extends Variable<V,T>,T extends Value<V,T>,C extends AssignmentContext>` An interface to be implemented by a class that need an assignment context associated with it.
    `class` | `InheritedAssignmentContextHolder<V extends Variable<V,T>,T extends Value<V,T>>` A variant of the `AssignmentContextHolderMap` that is used by the `InheritedAssignment` class.
    `class` | `ModelWithContext<V extends Variable<V,T>,T extends Value<V,T>,C extends AssignmentConstraintContext<V,T>>` A model with an assignment context.
    `class` | `NeighbourSelectionWithContext<V extends Variable<V,T>,T extends Value<V,T>,C extends AssignmentContext>` A neighborhood selection with an assignment context.
    `class` | `VariableWithContext<V extends Variable<V,T>,T extends Value<V,T>,C extends AssignmentContext>` A variable with an assignment context.

    Subclasses of Variable in org.cpsolver.ifs.assignment.context
    Modifier and Type | Class and Description
    --- | ---
    `class` | `VariableWithContext<V extends Variable<V,T>,T extends Value<V,T>,C extends AssignmentContext>` A variable with an assignment context.

    Methods in org.cpsolver.ifs.assignment.context with type parameters of type Variable
    Modifier and Type | Method and Description
    --- | ---
    `static <V extends Variable<V,T>,T extends Value<V,T>,C extends AssignmentContext> C` | AssignmentContextHelper.`getContext(HasAssignmentContext<V,T,C> source, Assignment<V,T> assignment)` Returns an assignment context associated with the given object.

  - ### Uses of Variable in org.cpsolver.ifs.constant

    Classes in org.cpsolver.ifs.constant with type parameters of type Variable
    Modifier and Type | Class and Description
    --- | ---
    `class` | `ConstantModel<V extends Variable<V,T>,T extends Value<V,T>>` Extension of the model with constant variables.

  - ### Uses of Variable in org.cpsolver.ifs.criteria

    Classes in org.cpsolver.ifs.criteria with type parameters of type Variable
    Modifier and Type | Class and Description
    --- | ---
    `class` | `AbstractCriterion<V extends Variable<V,T>,T extends Value<V,T>>` Abstract Criterion.
    `class` | `AssignedValue<V extends Variable<V,T>,T extends Value<V,T>>` Simple Criterion: Sum of `Value.toDouble(Assignment)`.
    `interface` | `Criterion<V extends Variable<V,T>,T extends Value<V,T>>` Criterion.

  - ### Uses of Variable in org.cpsolver.ifs.dbt

    Classes in org.cpsolver.ifs.dbt with type parameters of type Variable
    Modifier and Type | Class and Description
    --- | ---
    `class` | `DbtPropagation<V extends Variable<V,T>,T extends Value<V,T>>` Maintenance of arc consistency in dynamic backtracking.
    `class` | `DbtValueSelection<V extends Variable<V,T>,T extends Value<V,T>>` Selection of a value for dynamic backtracking.
    `class` | `DbtVariableSelection<V extends Variable<V,T>,T extends Value<V,T>>` Selection of a variable for dynamic backtracking.

  - ### Uses of Variable in org.cpsolver.ifs.example.csp

    Subclasses of Variable in org.cpsolver.ifs.example.csp
    Modifier and Type | Class and Description
    --- | ---
    `class` | `CSPVariable` CSP variable.

  - ### Uses of Variable in org.cpsolver.ifs.example.jobshop

    Subclasses of Variable in org.cpsolver.ifs.example.jobshop
    Modifier and Type | Class and Description
    --- | ---
    `class` | `Operation` Operation.

  - ### Uses of Variable in org.cpsolver.ifs.example.rpp

    Subclasses of Variable in org.cpsolver.ifs.example.rpp
    Modifier and Type | Class and Description
    --- | ---
    `class` | `Rectangle` Rectangle (variable).

  - ### Uses of Variable in org.cpsolver.ifs.example.tt

    Subclasses of Variable in org.cpsolver.ifs.example.tt
    Modifier and Type | Class and Description
    --- | ---
    `class` | `Activity` Activity (variable).

  - ### Uses of Variable in org.cpsolver.ifs.extension

    Classes in org.cpsolver.ifs.extension with type parameters of type Variable
    Modifier and Type | Class and Description
    --- | ---
    `class` | `ConflictStatistics<V extends Variable<V,T>,T extends Value<V,T>>` Conflict-based statistics.
    `class` | `Extension<V extends Variable<V,T>,T extends Value<V,T>>` Generic extension of IFS solver.
    `class` | `MacPropagation<V extends Variable<V,T>,T extends Value<V,T>>` MAC propagation.
    `class` | `MacRevised<V extends Variable<V,T>,T extends Value<V,T>>` Another implementation of MAC propagation.
    `class` | `SearchIntensification<V extends Variable<V,T>,T extends Value<V,T>>` Go back to the best known solution when no better solution is found within the given amount of iterations.
    `class` | `ViolatedInitials<V extends Variable<V,T>,T extends Value<V,T>>` Computation of violated initial values (minimal perturbation problem).

  - ### Uses of Variable in org.cpsolver.ifs.heuristics

    Classes in org.cpsolver.ifs.heuristics with type parameters of type Variable
    Modifier and Type | Class and Description
    --- | ---
    `class` | `BacktrackNeighbourSelection<V extends Variable<V,T>,T extends Value<V,T>>` Backtracking-based neighbour selection.
    `class` | `GeneralValueSelection<V extends Variable<V,T>,T extends Value<V,T>>` General implementation of value selection criterion.
    `class` | `GeneralVariableSelection<V extends Variable<V,T>,T extends Value<V,T>>` General implementation of variable selection criterion.
    `class` | `MaxIdleNeighbourSelection<V extends Variable<V,T>,T extends Value<V,T>>` Simple extension of a provided `NeighbourSelection` that halts the construction heuristic or the IFS search when the underlying heuristic is unable to improve the number of assigned variables.
    `interface` | `NeighbourSelection<V extends Variable<V,T>,T extends Value<V,T>>` Neighbour selection criterion.
    `class` | `RoundRobinNeighbourSelection<V extends Variable<V,T>,T extends Value<V,T>>` A round robin neighbour selection.
    `class` | `StandardNeighbourSelection<V extends Variable<V,T>,T extends Value<V,T>>` Standard neighbour selection criterion.
    `interface` | `ValueSelection<V extends Variable<V,T>,T extends Value<V,T>>` Value selection criterion.
    `interface` | `VariableSelection<V extends Variable<V,T>,T extends Value<V,T>>` Variable selection criterion.

    Methods in org.cpsolver.ifs.heuristics with parameters of type Variable
    Modifier and Type | Method and Description
    --- | ---
    `void` | BacktrackNeighbourSelection.BacktrackNeighbourSelectionContext.`saveBest(V... variables2resolve)`

    Constructors in org.cpsolver.ifs.heuristics with parameters of type Variable
    Constructor and Description
    `BackTrackNeighbour(BacktrackNeighbourSelection.BacktrackNeighbourSelectionContext context, V... resolvedVariables)` Constructor

  - ### Uses of Variable in org.cpsolver.ifs.model

    Classes in org.cpsolver.ifs.model with type parameters of type Variable
    Modifier and Type | Class and Description
    --- | ---
    `class` | `BinaryConstraint<V extends Variable<V,T>,T extends Value<V,T>>` Binary constraint.
    `class` | `Constraint<V extends Variable<V,T>,T extends Value<V,T>>` Generic constraint.
    `interface` | `ConstraintListener<V extends Variable<V,T>,T extends Value<V,T>>` IFS constraint listener.
    `interface` | `ExtendedInfoProvider<V extends Variable<V,T>,T extends Value<V,T>>` An extension of the `InfoProvider` class providing extended information.
    `class` | `GlobalConstraint<V extends Variable<V,T>,T extends Value<V,T>>` Generic global constraint.
    `interface` | `InfoProvider<V extends Variable<V,T>,T extends Value<V,T>>` A class providing INFO table.
    `class` | `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).
    `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`.
    `class` | `LazySwap<V extends Variable<V,T>,T extends Value<V,T>>` Lazy swap of two variables.
    `class` | `Model<V extends Variable<V,T>,T extends Value<V,T>>` Generic model (definition of a problem).
    `interface` | `ModelListener<V extends Variable<V,T>,T extends Value<V,T>>` IFS model listener.
    `interface` | `Neighbour<V extends Variable<V,T>,T extends Value<V,T>>` IFS neighbour.
    `class` | `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.
    `class` | `Value<V extends Variable<V,T>,T extends Value<V,T>>` Generic value.
    `class` | `Variable<V extends Variable<V,T>,T extends Value<V,T>>` Generic variable.
    `interface` | `WeakeningConstraint<V extends Variable<V,T>,T extends Value<V,T>>` Interface of a constraint that weakens with the time.

    Methods in org.cpsolver.ifs.model with parameters of type Variable
    Modifier and Type | Method and Description
    --- | ---
    `void` | Value.`setVariable(Variable variable)` Sets the variable which this value belongs to

  - ### Uses of Variable in org.cpsolver.ifs.perturbations

    Classes in org.cpsolver.ifs.perturbations with type parameters of type Variable
    Modifier and Type | Class and Description
    --- | ---
    `class` | `DefaultPerturbationsCounter<V extends Variable<V,T>,T extends Value<V,T>>` Default computation of perturbation penalty (minimal perturbation problem).
    `interface` | `PerturbationsCounter<V extends Variable<V,T>,T extends Value<V,T>>` Counter of perturbation penalty (minimal perturbation problem).

  - ### Uses of Variable in org.cpsolver.ifs.solution

    Classes in org.cpsolver.ifs.solution with type parameters of type Variable
    Modifier and Type | Class and Description
    --- | ---
    `class` | `GeneralSolutionComparator<V extends Variable<V,T>,T extends Value<V,T>>` General implementation of solution comparator.
    `class` | `MPPSolutionComparator<V extends Variable<V,T>,T extends Value<V,T>>` General implementation of solution comparator for minimal perturbation problem.
    `class` | `Solution<V extends Variable<V,T>,T extends Value<V,T>>` Generic solution.
    `interface` | `SolutionComparator<V extends Variable<V,T>,T extends Value<V,T>>` IFS solution comparator.
    `interface` | `SolutionListener<V extends Variable<V,T>,T extends Value<V,T>>` IFS solution listener.

  - ### Uses of Variable in org.cpsolver.ifs.solver

    Classes in org.cpsolver.ifs.solver with type parameters of type Variable
    Modifier and Type | Class and Description
    --- | ---
    `class` | `ParallelSolver<V extends Variable<V,T>,T extends Value<V,T>>` Multi-threaded solver.
    `class` | `Solver<V extends Variable<V,T>,T extends Value<V,T>>` IFS Solver.
    `interface` | `SolverListener<V extends Variable<V,T>,T extends Value<V,T>>` IFS Solver Listener.

  - ### Uses of Variable in org.cpsolver.ifs.termination

    Classes in org.cpsolver.ifs.termination with type parameters of type Variable
    Modifier and Type | Class and Description
    --- | ---
    `class` | `GeneralTerminationCondition<V extends Variable<V,T>,T extends Value<V,T>>` General implementation of termination condition.
    `class` | `MPPTerminationCondition<V extends Variable<V,T>,T extends Value<V,T>>` General implementation of termination condition for minimal perturbation problem.
    `interface` | `TerminationCondition<V extends Variable<V,T>,T extends Value<V,T>>` Termination condition.

  - ### Uses of Variable in org.cpsolver.ifs.util

    Classes in org.cpsolver.ifs.util with type parameters of type Variable
    Modifier and Type | Class and Description
    --- | ---
    `class` | `ProblemLoader<V extends Variable<V,T>,T extends Value<V,T>,M extends Model<V,T>>` Abstract problem loader class.
    `class` | `ProblemSaver<V extends Variable<V,T>,T extends Value<V,T>,M extends Model<V,T>>` Abstract problem saver class.

  - ### Uses of Variable in org.cpsolver.instructor.model

    Subclasses of Variable in org.cpsolver.instructor.model
    Modifier and Type | Class and Description
    --- | ---
    `class` | `TeachingRequest.Variable` Single instructor assignment to this teaching request

  - ### Uses of Variable in org.cpsolver.studentsct.heuristics

    Classes in org.cpsolver.studentsct.heuristics with type parameters of type Variable
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `AssignmentCheck<V extends Variable<V,T>,T extends Value<V,T>>` Simple interface providing an assignment check for the `EnrollmentSelection`.

  - ### Uses of Variable in org.cpsolver.studentsct.model

    Subclasses of Variable in org.cpsolver.studentsct.model
    Modifier and Type | Class and Description
    --- | ---
    `class` | `CourseRequest` Representation of a request of a student for one or more course.
    `class` | `FreeTimeRequest` Representation of a request of a student for free time.
    `class` | `Request` Representation of a request of a student for a course(s) or a free time.