## Uses of Class
org.cpsolver.exam.criteria.ExamCriterion

- Packages that use ExamCriterion
  Package | Description
  --- | ---
  org.cpsolver.exam.criteria | Examination Timetabling: Criteria.
  org.cpsolver.exam.criteria.additional | Examination Timetabling: Additional (Experimental) Criteria.
  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.

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

    Subclasses of ExamCriterion in org.cpsolver.exam.criteria
    Modifier and Type | Class and Description
    --- | ---
    `class` | `DistributionPenalty` Distribution penalty.
    `class` | `ExamRotationPenalty` Rotation penalty.
    `class` | `InstructorBackToBackConflicts` Number of back-to-back instructor conflicts.
    `class` | `InstructorDirectConflicts` Number of direct instructor conflicts.
    `class` | `InstructorDistanceBackToBackConflicts` Number of back-to-back distance instructor conflicts.
    `class` | `InstructorMoreThan2ADayConflicts` Number of more than two exams a day instructor conflicts.
    `class` | `InstructorNotAvailableConflicts` Number of direct instructor conflicts caused by the fact that an instructor is not available.
    `class` | `LargeExamsPenalty` Front load penalty.
    `class` | `PeriodIndexPenalty` Average index of the assigned period.
    `class` | `PeriodPenalty` Cost for using a period.
    `class` | `PeriodSizePenalty` A weight for period penalty (used in `ExamPeriodPlacement.getPenalty()` multiplied by examination size `Exam.getSize()`.
    `class` | `PerturbationPenalty` Perturbation penalty.
    `class` | `RoomPenalty` Room penalty (penalty for using given rooms).
    `class` | `RoomPerturbationPenalty` Room perturbation penalty.
    `class` | `RoomSizePenalty` Cost for using room(s) that are too big.
    `class` | `RoomSplitDistancePenalty` Room split distance penalty.
    `class` | `RoomSplitPenalty` Cost for using more than one room (nrSplits^2).
    `class` | `StudentBackToBackConflicts` Number of back-to-back student conflicts.
    `class` | `StudentDirectConflicts` Number of direct student conflicts.
    `class` | `StudentDistanceBackToBackConflicts` Number of back-to-back distance student conflicts.
    `class` | `StudentMoreThan2ADayConflicts` Number of more than two exams a day student conflicts.
    `class` | `StudentNotAvailableConflicts` Number of direct student conflicts caused by the fact that a student is not available.

  - ### Uses of ExamCriterion in org.cpsolver.exam.criteria.additional

    Subclasses of ExamCriterion in org.cpsolver.exam.criteria.additional
    Modifier and Type | Class and Description
    --- | ---
    `class` | `DistanceToStronglyPreferredRoom` Experimental criterion measuring average distance (in meters) to the strongly preferred room (or rooms) of the examination.
    `class` | `DistributionViolation` Experimental criterion counting violations of hard distribution constraints.
    `class` | `PeriodViolation` Experimental criterion counting violations of periods assignments.
    `class` | `RoomViolation` Experimental criterion counting violations of room assignments.
    `class` | `StudentMoreThan1ADayConflicts` Number of more than One exam a day student conflicts.

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

    Subclasses of ExamCriterion in org.cpsolver.exam.split
    Modifier and Type | Class and Description
    --- | ---
    `class` | `ExamSplitter` Experimental criterion that allows an exam to be split into two if it decreases the number of student conflicts.