## Uses of Class
net.sf.cpsolver.ifs.solver.Solver

- Packages that use Solver
  Package | Description
  --- | ---
  net.sf.cpsolver.coursett | University Course Timetabling.
  net.sf.cpsolver.coursett.criteria | University Course Timetabling: Criteria.
  net.sf.cpsolver.coursett.criteria.additional | University Course Timetabling: Additional (Experimental) Criteria.
  net.sf.cpsolver.coursett.criteria.placement | University Course Timetabling: Placement Selection Criteria.
  net.sf.cpsolver.coursett.heuristics | University Course Timetabling: Heuristics.
  net.sf.cpsolver.coursett.model | University Course Timetabling: Model.
  net.sf.cpsolver.coursett.neighbourhoods | University Course Timetabling: Various Neighbourhoods.
  net.sf.cpsolver.exam | Examination Timetabling Solver.
  net.sf.cpsolver.exam.criteria | Examination Timetabling: Criteria.
  net.sf.cpsolver.exam.heuristics | Examination Timetabling: Solution Heuristics.
  net.sf.cpsolver.exam.neighbours | Examination Timetabling: Various Neighbourhoods.
  net.sf.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.
  net.sf.cpsolver.ifs.algorithms | IFS Neighbourhood Search Algorithms
  net.sf.cpsolver.ifs.algorithms.neighbourhoods | IFS: Various Problem-Independent Neighbourhoods.
  net.sf.cpsolver.ifs.criteria | IFS Criteria.
  net.sf.cpsolver.ifs.dbt | Dynamic backtracking extension of IFS solver
  net.sf.cpsolver.ifs.extension | IFS Extensions (conflict-based statistics, maintenance of arc consistency)
  net.sf.cpsolver.ifs.heuristics | IFS Heuristics (value and variable selection criteria)
  net.sf.cpsolver.ifs.model | IFS Model (description of a problem)
  net.sf.cpsolver.ifs.perturbations | Minimal Perturbation Problem: counting of perturbations
  net.sf.cpsolver.ifs.solution | IFS Solution (also contains solution comparator)
  net.sf.cpsolver.studentsct | Student Sectioning Solver.
  net.sf.cpsolver.studentsct.extension | Student Sectioning: Various Extensions.
  net.sf.cpsolver.studentsct.heuristics | Student Sectioning: Heuristics.
  net.sf.cpsolver.studentsct.heuristics.selection | Student Sectioning: Various Neighbour Selection Criteria.

- - ### Uses of Solver in net.sf.cpsolver.coursett

    Subclasses of Solver in net.sf.cpsolver.coursett
    Modifier and Type | Class and Description
    --- | ---
    `class` | `TimetableSolver` University course timetabling solver.

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

    Methods in net.sf.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 net.sf.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 net.sf.cpsolver.coursett.criteria

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

  - ### Uses of Solver in net.sf.cpsolver.coursett.criteria.additional

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

  - ### Uses of Solver in net.sf.cpsolver.coursett.criteria.placement

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

  - ### Uses of Solver in net.sf.cpsolver.coursett.heuristics

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

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

  - ### Uses of Solver in net.sf.cpsolver.coursett.model

    Methods in net.sf.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 net.sf.cpsolver.coursett.neighbourhoods

    Methods in net.sf.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 net.sf.cpsolver.exam

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

  - ### Uses of Solver in net.sf.cpsolver.exam.criteria

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

  - ### Uses of Solver in net.sf.cpsolver.exam.heuristics

    Methods in net.sf.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)` Initialization
    `void` | ExamHillClimbing.`init(Solver<Exam,ExamPlacement> solver)` Initialization
    `void` | ExamNeighbourSelection.`init(Solver<Exam,ExamPlacement> solver)` Initialization
    `void` | ExamSimulatedAnnealing.`init(Solver<Exam,ExamPlacement> solver)` Initialization
    `void` | ExamTabuSearch.`init(Solver<Exam,ExamPlacement> solver)` Initialization
    `void` | ExamUnassignedVariableSelection.`init(Solver<Exam,ExamPlacement> solver)` Initialization

  - ### Uses of Solver in net.sf.cpsolver.exam.neighbours

    Methods in net.sf.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 net.sf.cpsolver.exam.split

    Methods in net.sf.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 net.sf.cpsolver.ifs.algorithms

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

  - ### Uses of Solver in net.sf.cpsolver.ifs.algorithms.neighbourhoods

    Methods in net.sf.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 net.sf.cpsolver.ifs.criteria

    Methods in net.sf.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 net.sf.cpsolver.ifs.dbt

    Methods in net.sf.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 net.sf.cpsolver.ifs.dbt with parameters of type Solver
    Constructor and Description
    `DbtPropagation(Solver<V,T> solver, DataProperties properties)` Constructor.

  - ### Uses of Solver in net.sf.cpsolver.ifs.extension

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

    Methods in net.sf.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` | MacPropagation.`init(Solver<V,T> solver)` Initialization.
    `boolean` | MacRevised.`init(Solver<V,T> solver)` Initialization.
    `boolean` | SearchIntensification.`init(Solver<V,T> solver)`

    Constructors in net.sf.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 net.sf.cpsolver.ifs.heuristics

    Methods in net.sf.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 net.sf.cpsolver.ifs.model

    Methods in net.sf.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 net.sf.cpsolver.ifs.perturbations

    Methods in net.sf.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 net.sf.cpsolver.ifs.solution

    Methods in net.sf.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 net.sf.cpsolver.studentsct

    Methods in net.sf.cpsolver.studentsct that return Solver
    Modifier and Type | Method and Description
    --- | ---
    `Solver<Request,Enrollment>` | StudentSectioningSaver.`getSolver()` Solver

    Constructors in net.sf.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 net.sf.cpsolver.studentsct.extension

    Methods in net.sf.cpsolver.studentsct.extension with parameters of type Solver
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | DistanceConflict.`init(Solver<Request,Enrollment> solver)` Initialize extension
    `boolean` | TimeOverlapsCounter.`init(Solver<Request,Enrollment> solver)` Initialize extension

    Constructors in net.sf.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)`
    `TimeOverlapsCounter(Solver<Request,Enrollment> solver, DataProperties properties)` Constructor.

  - ### Uses of Solver in net.sf.cpsolver.studentsct.heuristics

    Methods in net.sf.cpsolver.studentsct.heuristics with parameters of type Solver
    Modifier and Type | Method and Description
    --- | ---
    `void` | EnrollmentSelection.`init(Solver<Request,Enrollment> solver)` Initialization
    `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 net.sf.cpsolver.studentsct.heuristics.selection

    Methods in net.sf.cpsolver.studentsct.heuristics.selection with parameters of type Solver
    Modifier and Type | Method and Description
    --- | ---
    `void` | BacktrackSelection.`init(Solver<Request,Enrollment> solver)`
    `void` | BranchBoundSelection.`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` | StandardSelection.`init(Solver<Request,Enrollment> solver)` Initialization
    `void` | SwapStudentSelection.`init(Solver<Request,Enrollment> solver)` Initialization
    `void` | BacktrackSelection.`init(Solver<Request,Enrollment> solver, String name)`
    `void` | BranchBoundSelection.`init(Solver<Request,Enrollment> solver, String name)` Initialize