## Uses of Class
net.sf.cpsolver.ifs.model.Model

- Packages that use Model
  Package | Description
  --- | ---
  net.sf.cpsolver.coursett.constraint | University Course Timetabling: Constraints.
  net.sf.cpsolver.exam.model | Examination Timetabling: Model.
  net.sf.cpsolver.ifs.algorithms | IFS Neighbourhood Search Algorithms
  net.sf.cpsolver.ifs.constant | Extension of the model with constant variables.
  net.sf.cpsolver.ifs.criteria | IFS Criteria.
  net.sf.cpsolver.ifs.example.csp | Random Binary CSP with uniform distribution.
  net.sf.cpsolver.ifs.example.jobshop | JobShop Problem.
  net.sf.cpsolver.ifs.example.rpp | Random Placement Problem.
  net.sf.cpsolver.ifs.example.tt | Simple Timetabling Problem.
  net.sf.cpsolver.ifs.extension | IFS Extensions (conflict-based statistics, maintenance of arc consistency)
  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.ifs.solver | IFS Solver
  net.sf.cpsolver.studentsct | Student Sectioning Solver.

- - ### Uses of Model in net.sf.cpsolver.coursett.constraint

    Methods in net.sf.cpsolver.coursett.constraint with parameters of type Model
    Modifier and Type | Method and Description
    --- | ---
    `void` | GroupConstraint.`setModel(Model<Lecture,Placement> model)`

  - ### Uses of Model in net.sf.cpsolver.exam.model

    Subclasses of Model in net.sf.cpsolver.exam.model
    Modifier and Type | Class and Description
    --- | ---
    `class` | `ExamModel` Examination timetabling model.

    Constructors in net.sf.cpsolver.exam.model with parameters of type Model
    Constructor and Description
    `ExamRoomSharing(Model<Exam,ExamPlacement> model, DataProperties config)`
    `PredefinedExamRoomSharing(Model<Exam,ExamPlacement> model, DataProperties config)`
    `SimpleExamRoomSharing(Model<Exam,ExamPlacement> model, DataProperties config)`

  - ### Uses of Model in net.sf.cpsolver.ifs.algorithms

    Methods in net.sf.cpsolver.ifs.algorithms with parameters of type Model
    Modifier and Type | Method and Description
    --- | ---
    `protected boolean` | GreatDeluge.`accept(Model<V,T> model, Neighbour<V,T> neighbour, double value, boolean lazy)` Accept the given neighbour if it does not worsen the current solution or when the new solution is below the bound
    `protected boolean` | HillClimber.`accept(Model<V,T> model, Neighbour<V,T> neighbour, double value, boolean lazy)` Accept any move that does not worsen the solution (value <= 0)
    `protected abstract boolean` | NeighbourSearch.`accept(Model<V,T> model, Neighbour<V,T> neighbour, double value, boolean lazy)` Acceptance criterion.
    `protected boolean` | SimulatedAnnealing.`accept(Model<V,T> model, Neighbour<V,T> neighbour, double value, boolean lazy)` True if the given neighbour is to be be accepted
    `protected boolean` | StepCountingHillClimber.`accept(Model<V,T> model, Neighbour<V,T> neighbour, double value, boolean lazy)` Accept any move that does not worsen the solution (value <= 0) or that is below the bound.

  - ### Uses of Model in net.sf.cpsolver.ifs.constant

    Subclasses of Model in net.sf.cpsolver.ifs.constant
    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 Model in net.sf.cpsolver.ifs.criteria

    Methods in net.sf.cpsolver.ifs.criteria that return Model
    Modifier and Type | Method and Description
    --- | ---
    `Model<V,T>` | AbstractCriterion.`getModel()` Returns current model

  - ### Uses of Model in net.sf.cpsolver.ifs.example.csp

    Subclasses of Model in net.sf.cpsolver.ifs.example.csp
    Modifier and Type | Class and Description
    --- | ---
    `class` | `CSPModel` Random Binary CSP with uniform distribution.
    `class` | `StructuredCSPModel` Random Binary CSP with kernels.

  - ### Uses of Model in net.sf.cpsolver.ifs.example.jobshop

    Subclasses of Model in net.sf.cpsolver.ifs.example.jobshop
    Modifier and Type | Class and Description
    --- | ---
    `class` | `JobShopModel` Job Shop model.

  - ### Uses of Model in net.sf.cpsolver.ifs.example.rpp

    Subclasses of Model in net.sf.cpsolver.ifs.example.rpp
    Modifier and Type | Class and Description
    --- | ---
    `class` | `RPPModel` RPP model.

  - ### Uses of Model in net.sf.cpsolver.ifs.example.tt

    Subclasses of Model in net.sf.cpsolver.ifs.example.tt
    Modifier and Type | Class and Description
    --- | ---
    `class` | `TimetableModel` Simple Timetabling Problem.

    Methods in net.sf.cpsolver.ifs.example.tt with parameters of type Model
    Modifier and Type | Method and Description
    --- | ---
    `void` | Resource.`setModel(Model<Activity,Location> model)`

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

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

    Methods in net.sf.cpsolver.ifs.extension with parameters of type Model
    Modifier and Type | Method and Description
    --- | ---
    `void` | ConflictStatistics.`register(Model<V,T> model)`
    `void` | Extension.`register(Model<V,T> model)` Registration of a model.
    `void` | SearchIntensification.`register(Model<V,T> model)`
    `void` | ConflictStatistics.`unregister(Model<V,T> model)`
    `void` | Extension.`unregister(Model<V,T> model)` Unregistration of a model.
    `void` | SearchIntensification.`unregister(Model<V,T> model)`

  - ### Uses of Model in net.sf.cpsolver.ifs.model

    Methods in net.sf.cpsolver.ifs.model that return Model
    Modifier and Type | Method and Description
    --- | ---
    `Model<V,T>` | Constraint.`getModel()` The model which the constraint belongs to
    `abstract Model<V,T>` | LazyNeighbour.`getModel()` Return problem model (it is needed in order to be able to get overall solution value before and after the assignment of this neighbour)
    `Model<V,T>` | LazySwap.`getModel()` Return problem model
    `Model<V,T>` | Variable.`getModel()` Model, the variable belong to

    Methods in net.sf.cpsolver.ifs.model with parameters of type Model
    Modifier and Type | Method and Description
    --- | ---
    `void` | Constraint.`setModel(Model<V,T> model)` Sets the model which the constraint belongs to
    `void` | Variable.`setModel(Model<V,T> model)` Set the model to which the variable belongs to

  - ### Uses of Model in net.sf.cpsolver.ifs.perturbations

    Methods in net.sf.cpsolver.ifs.perturbations with parameters of type Model
    Modifier and Type | Method and Description
    --- | ---
    `void` | DefaultPerturbationsCounter.`getInfo(Map<String,String> info, Model<V,T> model)`
    `void` | PerturbationsCounter.`getInfo(Map<String,String> info, Model<V,T> model)` Some (perturbation) information about the solution might be returned here.
    `void` | DefaultPerturbationsCounter.`getInfo(Map<String,String> info, Model<V,T> model, Collection<V> variables)`
    `void` | PerturbationsCounter.`getInfo(Map<String,String> info, Model<V,T> model, Collection<V> variables)` Some (perturbation) information about the solution might be returned here (only include variables from the given set).
    `double` | DefaultPerturbationsCounter.`getPerturbationPenalty(Model<V,T> model)`
    `double` | PerturbationsCounter.`getPerturbationPenalty(Model<V,T> model)` Returns perturbation penalty, i.e., the distance between current solution and the solution of the initial problem (see `Variable.getInitialAssignment()`).
    `double` | DefaultPerturbationsCounter.`getPerturbationPenalty(Model<V,T> model, Collection<V> variables)`
    `double` | PerturbationsCounter.`getPerturbationPenalty(Model<V,T> model, Collection<V> variables)` Returns perturbation penalty, i.e., the distance between current solution and the solution of the initial (only include variables from the given set) problem (see `Variable.getInitialAssignment()`).
    `double` | DefaultPerturbationsCounter.`getPerturbationPenalty(Model<V,T> model, T selectedValue, Collection<T> conflicts)`
    `double` | PerturbationsCounter.`getPerturbationPenalty(Model<V,T> model, T selectedValue, Collection<T> conflicts)` Returns perturbation penalty of the solution which become from the current solution when given conflicting values are unassigned and the selected value is assigned.

  - ### Uses of Model in net.sf.cpsolver.ifs.solution

    Methods in net.sf.cpsolver.ifs.solution that return Model
    Modifier and Type | Method and Description
    --- | ---
    `Model<V,T>` | Solution.`getModel()` The model associated with the solution

    Constructors in net.sf.cpsolver.ifs.solution with parameters of type Model
    Constructor and Description
    `Solution(Model<V,T> model)` Constructor
    `Solution(Model<V,T> model, long iteration, double time)` Constructor

  - ### Uses of Model in net.sf.cpsolver.ifs.solver

    Methods in net.sf.cpsolver.ifs.solver with parameters of type Model
    Modifier and Type | Method and Description
    --- | ---
    `void` | Solver.`setInitalSolution(Model<V,T> model)` Sets initial solution

  - ### Uses of Model in net.sf.cpsolver.studentsct

    Subclasses of Model in net.sf.cpsolver.studentsct
    Modifier and Type | Class and Description
    --- | ---
    `class` | `StudentSctBBTest` Online student sectioning test (using `BranchBoundSelection` selection).
    `class` | `StudentSectioningModel` Student sectioning model.