net.sf.cpsolver.exam.criteria.additional

## Class RoomViolation

- java.lang.Object
- - net.sf.cpsolver.ifs.criteria.AbstractCriterion<Exam,ExamPlacement>
  - - net.sf.cpsolver.exam.criteria.ExamCriterion
    - - net.sf.cpsolver.exam.criteria.additional.RoomViolation

- All Implemented Interfaces:
    Criterion<Exam,ExamPlacement>, InfoProvider<Exam>, ModelListener<Exam,ExamPlacement>

      public class RoomViolation
      extends ExamCriterion

  Experimental criterion counting violations of room assignments. If this criterion is enabled, any room can be assigned to an exam (not only those that are in the domain of the exam).
  To enable assignment of prohibited rooms, set parameter Exam.SoftRooms to a weight that should be inferred by a prohibited room assignment.
  Version:
    ExamTT 1.2 (Examination Timetabling)
    Copyright (C) 2008 - 2012 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/.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class net.sf.cpsolver.ifs.criteria.AbstractCriterion

      `AbstractCriterion.ValueUpdateType`

  - ### Field Summary

    - ### Fields inherited from class net.sf.cpsolver.ifs.criteria.AbstractCriterion

      `iBest, iDebug, iValue, iValueUpdateType, iWeight, sDoubleFormat, sPercentFormat`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `RoomViolation()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `double[]` | `getBounds(Collection<Exam> variables)` Value bounds (minimum and maximum) of the criterion on a part of the problem
    `double` | `getValue(ExamPlacement value, Set<ExamPlacement> conflicts)` Value of a proposed assignment (including hard conflicts)
    `String` | `getWeightName()` Defines weight name (to be used to get the criterion weight from the configuration).
    `String` | `getXmlWeightName()` Name of the weight parameter in the parameters section of the examination XML file.
    `boolean` | `isPeriodCriterion()` True if this criterion is based on period assignment.
    `String` | `toString()`

    - ### Methods inherited from class net.sf.cpsolver.exam.criteria.ExamCriterion

      `getInfo, getPeriodValue, getRoomValue, getXmlParameters, isRoomCriterion, setWeight, setXmlParameters`

    - ### Methods inherited from class net.sf.cpsolver.ifs.criteria.AbstractCriterion

      `afterAssigned, afterUnassigned, beforeAssigned, beforeUnassigned, bestRestored, bestSaved, clearCache, computeBounds, constraintAdded, constraintRemoved, getBest, getBounds, getInfo, getModel, getName, getPerc, getPercRev, getValue, getValue, getWeight, getWeightDefault, getWeightedBest, getWeightedValue, getWeightedValue, getWeightedValue, inc, init, variableAdded, variableRemoved`

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

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

- - ### Constructor Detail

    - #### RoomViolation

          public RoomViolation()

  - ### Method Detail

    - #### getWeightName

          public String getWeightName()

      Description copied from class: `AbstractCriterion`
      Defines weight name (to be used to get the criterion weight from the configuration).
      Overrides:
        `getWeightName` in class `ExamCriterion`

    - #### getXmlWeightName

          public String getXmlWeightName()

      Description copied from class: `ExamCriterion`
      Name of the weight parameter in the parameters section of the examination XML file.
      Overrides:
        `getXmlWeightName` in class `ExamCriterion`

    - #### getValue

          public double getValue(ExamPlacement value,
                                 Set<ExamPlacement> conflicts)

      Description copied from interface: `Criterion`
      Value of a proposed assignment (including hard conflicts)

    - #### getBounds

          public double[] getBounds(Collection<Exam> variables)

      Description copied from interface: `Criterion`
      Value bounds (minimum and maximum) of the criterion on a part of the problem
      Specified by:
        `getBounds` in interface `Criterion<Exam,ExamPlacement>`
      Overrides:
        `getBounds` in class `ExamCriterion`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

    - #### isPeriodCriterion

          public boolean isPeriodCriterion()

      Description copied from class: `ExamCriterion`
      True if this criterion is based on period assignment. Used by `ExamPlacement.getTimeCost()`.
      Overrides:
        `isPeriodCriterion` in class `ExamCriterion`