## Uses of Class
org.cpsolver.ifs.solver.Solver

- Packages that use Solver
  Package | Description
  --- | ---
  org.cpsolver.coursett | University Course Timetabling.
  org.cpsolver.coursett.criteria | University Course Timetabling: Criteria.
  org.cpsolver.coursett.criteria.additional | University Course Timetabling: Additional (Experimental) Criteria.
  org.cpsolver.coursett.criteria.placement | University Course Timetabling: Placement Selection Criteria.
  org.cpsolver.coursett.heuristics | University Course Timetabling: Heuristics.
  org.cpsolver.coursett.model | University Course Timetabling: Model.
  org.cpsolver.coursett.neighbourhoods | University Course Timetabling: Various Neighbourhoods.
  org.cpsolver.coursett.sectioning | Additional Student Sectioning Algorithms.
  org.cpsolver.exam | Examination Timetabling Solver.
  org.cpsolver.exam.criteria | Examination Timetabling: Criteria.
  org.cpsolver.exam.heuristics | Examination Timetabling: Solution Heuristics.
  org.cpsolver.exam.neighbours | Examination Timetabling: Various Neighbourhoods.
  org.cpsolver.exam.split | This package contains an an experimental criterion that allows an exam to be split into two if it decreases the number of student conflicts.
  org.cpsolver.ifs.algorithms | IFS Neighbourhood Search Algorithms
  org.cpsolver.ifs.algorithms.neighbourhoods | IFS: Various Problem-Independent Neighbourhoods.
  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.criteria | IFS Criteria.
  org.cpsolver.ifs.dbt | Dynamic backtracking extension of IFS solver
  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.util | Utilities
  org.cpsolver.studentsct | Student Sectioning Solver.
  org.cpsolver.studentsct.extension | Student Sectioning: Various Extensions.
  org.cpsolver.studentsct.heuristics | Student Sectioning: Heuristics.
  org.cpsolver.studentsct.heuristics.selection | Student Sectioning: Various Neighbour Selection Criteria.

- - ### Uses of Solver in org.cpsolver.coursett

    Subclasses of Solver in org.cpsolver.coursett
    Modifier and Type | Class and Description
    --- | ---
    `class` | `TimetableSolver` Deprecated.

    Methods in org.cpsolver.coursett that return Solver
    Modifier and Type | Method and Description
    --- | ---
    `Solver<Lecture,Placement>` | TimetableXMLLoader.`getSolver()`

    Methods in org.cpsolver.coursett with parameters of type Solver
    Modifier and Type | Method and Description
    --- | ---
    `void` | Test.`init(Solver<Lecture,Placement> solver)` Solver initialization
    `void` | TimetableXMLLoader.`setSolver(Solver<Lecture,Placement> solver)`

    Constructors in org.cpsolver.coursett with parameters of type Solver
    Constructor and Description
    `TimetableSaver(Solver<Lecture,Placement> solver)` Constructor
    `TimetableXMLSaver(Solver<Lecture,Placement> solver)`

  - ### Uses of Solver in org.cpsolver.coursett.criteria

    Methods in org.cpsolver.coursett.criteria with parameters of type Solver
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | Perturbations.`init(Solver<Lecture,Placement> solver)`

  - ### Uses of Solver in org.cpsolver.coursett.criteria.additional

    Methods in org.cpsolver.coursett.criteria.additional with parameters of type Solver
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | StudentLuchBreak.`init(Solver<Lecture,Placement> solver)`

  - ### Uses of Solver in org.cpsolver.coursett.criteria.placement

    Methods in org.cpsolver.coursett.criteria.placement with parameters of type Solver
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | WeightedHardConflicts.`init(Solver<Lecture,Placement> solver)`

  - ### Uses of Solver in org.cpsolver.coursett.heuristics

    Methods in org.cpsolver.coursett.heuristics with parameters of type Solver
    Modifier and Type | Method and Description
    --- | ---
    `void` | FixCompleteSolutionNeighbourSelection.`init(Solver<Lecture,Placement> solver)`
    `void` | LectureSelection.`init(Solver<Lecture,Placement> solver)`
    `void` | NeighbourSelectionWithSuggestions.`init(Solver<Lecture,Placement> solver)`
    `void` | PlacementSelection.`init(Solver<Lecture,Placement> solver)`

    Constructors in org.cpsolver.coursett.heuristics with parameters of type Solver
    Constructor and Description
    `NeighbourSelectionWithSuggestions(Solver<Lecture,Placement> solver)`

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

    Methods in org.cpsolver.coursett.model with parameters of type Solver
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | OnFlySectioning.`init(Solver<Lecture,Placement> solver)` Initialization

  - ### Uses of Solver in org.cpsolver.coursett.neighbourhoods

    Methods in org.cpsolver.coursett.neighbourhoods with parameters of type Solver
    Modifier and Type | Method and Description
    --- | ---
    `void` | RoomSwap.`init(Solver<Lecture,Placement> solver)`
    `void` | TimeSwap.`init(Solver<Lecture,Placement> solver)`

  - ### Uses of Solver in org.cpsolver.coursett.sectioning

    Methods in org.cpsolver.coursett.sectioning with parameters of type Solver
    Modifier and Type | Method and Description
    --- | ---
    `void` | StudentSwapGenerator.`init(Solver<Lecture,Placement> solver)`

  - ### Uses of Solver in org.cpsolver.exam

    Constructors in org.cpsolver.exam with parameters of type Solver
    Constructor and Description
    `ShutdownHook(Solver<Exam,ExamPlacement> solver)`

  - ### Uses of Solver in org.cpsolver.exam.criteria

    Methods in org.cpsolver.exam.criteria with parameters of type Solver
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | DistributionPenalty.`init(Solver<Exam,ExamPlacement> solver)`
    `boolean` | PeriodPenalty.`init(Solver<Exam,ExamPlacement> solver)`
    `boolean` | RoomPenalty.`init(Solver<Exam,ExamPlacement> solver)`

  - ### Uses of Solver in org.cpsolver.exam.heuristics

    Methods in org.cpsolver.exam.heuristics with parameters of type Solver
    Modifier and Type | Method and Description
    --- | ---
    `void` | ExamColoringConstruction.`init(Solver<Exam,ExamPlacement> solver)`
    `void` | ExamConstruction.`init(Solver<Exam,ExamPlacement> solver)` Initialization
    `void` | ExamGreatDeluge.`init(Solver<Exam,ExamPlacement> solver)` Deprecated. Initialization
    `void` | ExamHillClimbing.`init(Solver<Exam,ExamPlacement> solver)` Deprecated. Initialization
    `void` | ExamNeighbourSelection.`init(Solver<Exam,ExamPlacement> solver)` Initialization
    `void` | ExamSimulatedAnnealing.`init(Solver<Exam,ExamPlacement> solver)` Deprecated. Initialization
    `void` | ExamTabuSearch.`init(Solver<Exam,ExamPlacement> solver)` Initialization
    `void` | ExamUnassignedVariableSelection.`init(Solver<Exam,ExamPlacement> solver)` Initialization

  - ### Uses of Solver in org.cpsolver.exam.neighbours

    Methods in org.cpsolver.exam.neighbours with parameters of type Solver
    Modifier and Type | Method and Description
    --- | ---
    `void` | ExamPeriodSwapMove.`init(Solver<Exam,ExamPlacement> solver)` Initialization
    `void` | ExamRandomMove.`init(Solver<Exam,ExamPlacement> solver)` Initialization
    `void` | ExamRoomMove.`init(Solver<Exam,ExamPlacement> solver)` Initialization
    `void` | ExamTimeMove.`init(Solver<Exam,ExamPlacement> solver)` Initialization

  - ### Uses of Solver in org.cpsolver.exam.split

    Methods in org.cpsolver.exam.split with parameters of type Solver
    Modifier and Type | Method and Description
    --- | ---
    `void` | ExamSplitMoves.`init(Solver<Exam,ExamPlacement> solver)` Initialization
    `boolean` | ExamSplitter.`init(Solver<Exam,ExamPlacement> solver)` Initialization

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

    Methods in org.cpsolver.ifs.algorithms with parameters of type Solver
    Modifier and Type | Method and Description
    --- | ---
    `void` | HillClimber.`init(Solver<V,T> solver)` Initialization
    `void` | MetaHeuristicSearch.`init(Solver<V,T> solver)` Initialization
    `void` | NeighbourSearch.`init(Solver<V,T> solver)`
    `void` | NeighbourSelector.`init(Solver<V,T> solver)` Initialization
    `void` | ParallelConstruction.`init(Solver<V,T> solver)`
    `void` | SimpleSearch.`init(Solver<V,T> solver)` Initialization

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

    Methods in org.cpsolver.ifs.algorithms.neighbourhoods with parameters of type Solver
    Modifier and Type | Method and Description
    --- | ---
    `void` | RandomMove.`init(Solver<V,T> solver)`
    `void` | RandomSwapMove.`init(Solver<V,T> solver)`
    `void` | SuggestionMove.`init(Solver<V,T> solver)`

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

    Methods in org.cpsolver.ifs.assignment.context with parameters of type Solver
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | ExtensionWithContext.`init(Solver<V,T> solver)`
    `void` | NeighbourSelectionWithContext.`init(Solver<V,T> solver)`
    `protected boolean` | NeighbourSelectionWithContext.`isSingleContextSolver(Solver<V,T> solver)` Returns true if there should be only one context for this neighbourhood selection.

    Constructors in org.cpsolver.ifs.assignment.context with parameters of type Solver
    Constructor and Description
    `ExtensionWithContext(Solver<V,T> solver, DataProperties properties)`

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

    Methods in org.cpsolver.ifs.criteria with parameters of type Solver
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | AbstractCriterion.`init(Solver<V,T> solver)`

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

    Methods in org.cpsolver.ifs.dbt with parameters of type Solver
    Modifier and Type | Method and Description
    --- | ---
    `void` | DbtValueSelection.`init(Solver<V,T> solver)` Heuristics initialization
    `void` | DbtVariableSelection.`init(Solver<V,T> solver)` Heuristics initialization

    Constructors in org.cpsolver.ifs.dbt with parameters of type Solver
    Constructor and Description
    `DbtPropagation(Solver<V,T> solver, DataProperties properties)` Constructor.

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

    Methods in org.cpsolver.ifs.extension that return Solver
    Modifier and Type | Method and Description
    --- | ---
    `Solver<V,T>` | Extension.`getSolver()` Returns the solver

    Methods in org.cpsolver.ifs.extension with parameters of type Solver
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | Extension.`init(Solver<V,T> solver)` Initialization -- called before the solver is started
    `boolean` | MacRevised.`init(Solver<V,T> solver)` Initialization.
    `boolean` | SearchIntensification.`init(Solver<V,T> solver)`

    Constructors in org.cpsolver.ifs.extension with parameters of type Solver
    Constructor and Description
    `ConflictStatistics(Solver<V,T> solver, DataProperties properties)`
    `Extension(Solver<V,T> solver, DataProperties properties)` Constructor
    `MacPropagation(Solver<V,T> solver, DataProperties properties)` Constructor
    `MacRevised(Solver<V,T> solver, DataProperties properties)` Constructor
    `SearchIntensification(Solver<V,T> solver, DataProperties properties)`
    `ViolatedInitials(Solver<V,T> solver, DataProperties properties)`

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

    Fields in org.cpsolver.ifs.heuristics declared as Solver
    Modifier and Type | Field and Description
    --- | ---
    `protected Solver<V,T>` | RoundRobinNeighbourSelection.`iSolver`

    Methods in org.cpsolver.ifs.heuristics with parameters of type Solver
    Modifier and Type | Method and Description
    --- | ---
    `void` | BacktrackNeighbourSelection.`init(Solver<V,T> solver)` Solver initialization
    `void` | GeneralValueSelection.`init(Solver<V,T> solver)` Initialization
    `void` | GeneralVariableSelection.`init(Solver<V,T> solver)` Initialization
    `void` | NeighbourSelection.`init(Solver<V,T> solver)` Criterion initialization
    `void` | RoundRobinNeighbourSelection.`init(Solver<V,T> solver)` Initialization
    `void` | StandardNeighbourSelection.`init(Solver<V,T> solver)` Initialization -- methods `VariableSelection.init(Solver)` and `ValueSelection.init(Solver)` are called.
    `void` | ValueSelection.`init(Solver<V,T> solver)` Initialization
    `void` | VariableSelection.`init(Solver<V,T> solver)` Initialization

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

    Methods in org.cpsolver.ifs.model with parameters of type Solver
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | Model.`init(Solver<V,T> solver)` Model initialization
    `boolean` | ModelListener.`init(Solver<V,T> solver)` Notification that the model was initialized by the solver.

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

    Methods in org.cpsolver.ifs.perturbations with parameters of type Solver
    Modifier and Type | Method and Description
    --- | ---
    `void` | DefaultPerturbationsCounter.`init(Solver<V,T> solver)` Initialization
    `void` | PerturbationsCounter.`init(Solver<V,T> solver)` Initialization

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

    Methods in org.cpsolver.ifs.solution with parameters of type Solver
    Modifier and Type | Method and Description
    --- | ---
    `void` | Solution.`init(Solver<V,T> solver)` Initialization

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

    Subclasses of Solver in org.cpsolver.ifs.solver
    Modifier and Type | Class and Description
    --- | ---
    `class` | `ParallelSolver<V extends Variable<V,T>,T extends Value<V,T>>` Multi-threaded solver.

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

    Methods in org.cpsolver.ifs.util that return Solver
    Modifier and Type | Method and Description
    --- | ---
    `Solver<V,T>` | ProblemSaver.`getSolver()` Solver

    Constructors in org.cpsolver.ifs.util with parameters of type Solver
    Constructor and Description
    `ProblemSaver(Solver<V,T> solver)` Constructor

  - ### Uses of Solver in org.cpsolver.studentsct

    Constructors in org.cpsolver.studentsct with parameters of type Solver
    Constructor and Description
    `StudentSectioningSaver(Solver<Request,Enrollment> solver)` Constructor
    `StudentSectioningXMLSaver(Solver<Request,Enrollment> solver)` Constructor

  - ### Uses of Solver in org.cpsolver.studentsct.extension

    Constructors in org.cpsolver.studentsct.extension with parameters of type Solver
    Constructor and Description
    `DistanceConflict(Solver<Request,Enrollment> solver, DataProperties properties)` Constructor.
    `StudentConflictStatistics(Solver<Request,Enrollment> solver, DataProperties properties)`
    `StudentQuality(Solver<Request,Enrollment> solver, DataProperties properties)` Constructor
    `TimeOverlapsCounter(Solver<Request,Enrollment> solver, DataProperties properties)` Constructor.

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

    Methods in org.cpsolver.studentsct.heuristics with parameters of type Solver
    Modifier and Type | Method and Description
    --- | ---
    `void` | EnrollmentSelection.`init(Solver<Request,Enrollment> solver)` Initialization
    `void` | RestoreBestSolution.`init(Solver<Request,Enrollment> solver)`
    `void` | RouletteWheelRequestSelection.`init(Solver<Request,Enrollment> solver)` Initialization
    `void` | StudentSctNeighbourSelection.`init(Solver<Request,Enrollment> solver)`
    `void` | TwoPhaseStudentSctNeighbourSelection.`init(Solver<Request,Enrollment> solver)` Initialization -- also remove all the dummy students from the problem
    `void` | TwoPhaseStudentSctNeighbourSelection.RestoreDummyStudents.`init(Solver<Request,Enrollment> solver)`
    `void` | StudentSctNeighbourSelection.`setup(Solver<Request,Enrollment> solver)`

  - ### Uses of Solver in org.cpsolver.studentsct.heuristics.selection

    Methods in org.cpsolver.studentsct.heuristics.selection with parameters of type Solver
    Modifier and Type | Method and Description
    --- | ---
    `void` | AssignInitialSelection.`init(Solver<Request,Enrollment> solver)`
    `void` | BacktrackSelection.`init(Solver<Request,Enrollment> solver)`
    `void` | BranchBoundSelection.`init(Solver<Request,Enrollment> solver)`
    `void` | CriticalCoursesBranchAndBoundSelection.`init(Solver<Request,Enrollment> solver)`
    `void` | CriticalStandardSelection.`init(Solver<Request,Enrollment> solver)`
    `void` | MinCreditBranchAndBoundSelection.`init(Solver<Request,Enrollment> solver)`
    `void` | OnlineSelection.`init(Solver<Request,Enrollment> solver)`
    `void` | PriorityConstructionSelection.`init(Solver<Request,Enrollment> solver)` Initialize
    `void` | RandomUnassignmentSelection.`init(Solver<Request,Enrollment> solver)` Initialization
    `void` | ResectionIncompleteStudentsSelection.`init(Solver<Request,Enrollment> solver)`
    `void` | ResectionUnassignedStudentsSelection.`init(Solver<Request,Enrollment> solver)`
    `void` | RndUnProblStudSelection.`init(Solver<Request,Enrollment> solver)` Initialization -- `ProblemStudentsProvider.getProblemStudents()` is called
    `void` | ShuffleStudentsSelection.`init(Solver<Request,Enrollment> solver)`
    `void` | StandardSelection.`init(Solver<Request,Enrollment> solver)` Initialization
    `void` | StudentEnrollmentSwapSelection.`init(Solver<Request,Enrollment> solver)`
    `void` | SwapStudentSelection.`init(Solver<Request,Enrollment> solver)` Initialization
    `void` | UnassignedCriticalCourseRequestSelection.`init(Solver<Request,Enrollment> solver)`
    `void` | UnassignedRequestSelection.`init(Solver<Request,Enrollment> solver)`
    `void` | BacktrackSelection.`init(Solver<Request,Enrollment> solver, String name)`
    `void` | BranchBoundSelection.`init(Solver<Request,Enrollment> solver, String name)` Initialize
    `void` | CriticalBacktrackSelection.`init(Solver<Request,Enrollment> solver, String name)`
    `protected void` | StandardSelection.`init(Solver<Request,Enrollment> solver, String name)`
    `void` | StudentEnrollmentSwapSelection.`init(Solver<Request,Enrollment> solver, String name)`