## Uses of Class
org.cpsolver.coursett.criteria.TimetablingCriterion

- Packages that use TimetablingCriterion
  Package | Description
  --- | ---
  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.

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

    Subclasses of TimetablingCriterion in org.cpsolver.coursett.criteria
    Modifier and Type | Class and Description
    --- | ---
    `class` | `BackToBackInstructorPreferences` Bact-to-back instructor preferences.
    `class` | `BrokenTimePatterns` Broken time patterns.
    `class` | `DepartmentBalancingPenalty` Department balancing penalty.
    `class` | `DistributionPreferences` Distribution preferences.
    `class` | `FlexibleConstraintCriterion` The class encapsulates various flexible constraints concerning compact timetables of instructors.
    `class` | `Perturbations` Perturbations.
    `class` | `RoomPreferences` Room preferences.
    `class` | `RoomViolations` Room violations.
    `class` | `SameSubpartBalancingPenalty` Same subpart balancing penalty.
    `class` | `StudentCommittedConflict` Student committed conflicts.
    `class` | `StudentConflict` Student conflicts.
    `class` | `StudentDistanceConflict` Student distance conflicts.
    `class` | `StudentHardConflict` Student hard conflicts.
    `class` | `StudentOverlapConflict` Student overlapping conflicts.
    `class` | `StudentWorkdayConflict` Student work-day conflicts.
    `class` | `TimePreferences` Time preferences.
    `class` | `TimeViolations` Time violations.
    `class` | `TooBigRooms` Too big rooms.
    `class` | `UselessHalfHours` Useless half-hours.

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

    Subclasses of TimetablingCriterion in org.cpsolver.coursett.criteria.additional
    Modifier and Type | Class and Description
    --- | ---
    `class` | `IgnoredCommittedStudentConflict` Ignored committed student conflicts.
    `class` | `IgnoredStudentConflict` Ignored student conflicts.
    `class` | `ImportantStudentConflict` Important student conflicts.
    `class` | `ImportantStudentHardConflict` Important student hard conflicts.
    `class` | `InstructorConflict` Instructor conflict counting criterion.
    `class` | `InstructorFairness` This class represent fairness criterion for instructors.
    `class` | `InstructorLunchBreak` The class represents various criteria concerning compact timetables of instructors.
    `class` | `InstructorStudentConflict` Instructor student conflicts.
    `class` | `InstructorStudentHardConflict` Instructor student conflicts.
    `class` | `QuadraticStudentConflict` Quadratic student conflicts.
    `class` | `QuadraticStudentHardConflict` Quadratic student conflicts.
    `class` | `RoomSizePenalty` Cost for using room(s) that are too big.
    `class` | `StudentLuchBreak` Naive, yet effective approach for modeling student lunch breaks.
    `class` | `StudentMinimizeDaysOfWeek` Naive, yet effective approach for minimizing number of days in student schedule.
    `class` | `StudentMinimizeScheduleHoles` Naive, yet effective approach for minimizing holes in student schedule.
    `class` | `StudentOnlineConflict` An experimental criterion that tries to minimize cases where a student has an online and in-person class on the same day.
    `class` | `StudentOverLunchConflict` An experimental criterion that tries to keep student all classes before or after the lunch period.

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

    Subclasses of TimetablingCriterion in org.cpsolver.coursett.criteria.placement
    Modifier and Type | Class and Description
    --- | ---
    `class` | `AssignmentCount` Deprecated.
    `class` | `DeltaTimePreference` Difference between proposed and best time assignment.
    `class` | `HardConflicts` Number of values (of other variables) that have to be unassigned in order before this value can be assigned.
    `class` | `PlacementSelectionCriterion` Abstract class for all criteria that are to be used only in the placement selection (do not have any impact on the overall solution value).
    `class` | `PotentialHardConflicts` Use conflict-based statistics to compute potential hard conflicts.
    `class` | `WeightedHardConflicts` Hard conflicts weighted by the conflict-based statistics (past occurrences).