org.cpsolver.coursett.heuristics

## Class TimetableComparator

- java.lang.Object
- - org.cpsolver.ifs.solution.GeneralSolutionComparator<Lecture,Placement>
  - - org.cpsolver.coursett.heuristics.TimetableComparator

- All Implemented Interfaces:
    SolutionComparator<Lecture,Placement>

  Deprecated.

      @Deprecated
      public class TimetableComparator
      extends GeneralSolutionComparator<Lecture,Placement>

  Timetable (solution) comparator.
  The quality of a solution is expressed as a weighted sum combining soft time and classroom preferences, satisfied soft group constrains and the total number of student conflicts. This allows us to express the importance of different types of soft constraints.
  The solution comparator prefers a more complete solution (with a smaller number of unassigned variables) and a solution with a smaller number of perturbations among solutions with the same number of unassigned variables. If both solutions have the same number of unassigned variables and perturbations, the solution of better quality is selected.
  Parameters:

  Related Solver Parameters
  Parameter | Type | Comment
  --- | --- | ---
  Comparator.HardStudentConflictWeight | `Double` | Weight of hard student conflict (conflict between single-section classes)
  Comparator.StudentConflictWeight | `Double` | Weight of student conflict
  Comparator.TimePreferenceWeight | `Double` | Time preferences weight
  Comparator.ContrPreferenceWeight | `Double` | Group constraint preferences weight
  Comparator.RoomPreferenceWeight | `Double` | Room preferences weight
  Comparator.UselessSlotWeight | `Double` | Useless slots weight
  Comparator.TooBigRoomWeight | `Double` | Too big room weight
  Comparator.DistanceInstructorPreferenceWeight | `Double` | Distance (of the rooms of the back-to-back classes) based instructor preferences weight
  Comparator.PerturbationPenaltyWeight | `Double` | Perturbation penalty (see `UniversalPerturbationsCounter`)
  Comparator.DeptSpreadPenaltyWeight | `Double` | Department balancing penalty (see `DepartmentSpreadConstraint`)

  Version:
    CourseTT 1.3 (University Course Timetabling)
    Copyright (C) 2006 - 2014 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

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `TimetableComparator(DataProperties properties)` Deprecated.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `double` | `currentValue(Solution<Lecture,Placement> currentSolution)` Deprecated.
    `double` | `getBest(Solution<Lecture,Placement> currentSolution)` Deprecated.

    - ### Methods inherited from class org.cpsolver.ifs.solution.GeneralSolutionComparator

      `isBetterThanBestSolution`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### TimetableComparator

          public TimetableComparator(DataProperties properties)

      Deprecated.

  - ### Method Detail

    - #### currentValue

          @Deprecated
          public double currentValue(Solution<Lecture,Placement> currentSolution)

      Deprecated.
      Use `Model.getTotalValue()` instead.
      Parameters:
        `currentSolution` - current solution
      Returns:
        current value

    - #### getBest

          @Deprecated
          public double getBest(Solution<Lecture,Placement> currentSolution)

      Deprecated.
      Use `Solution.getBestValue()` instead.
      Parameters:
        `currentSolution` - current solution
      Returns:
        best value