org.cpsolver.coursett.criteria.placement

## Class PlacementSelectionCriterion

- java.lang.Object
- - org.cpsolver.ifs.criteria.AbstractCriterion<Lecture,Placement>
  - - org.cpsolver.coursett.criteria.TimetablingCriterion
    - - org.cpsolver.coursett.criteria.placement.PlacementSelectionCriterion

- All Implemented Interfaces:
    CanHoldContext, HasAssignmentContext<Lecture,Placement,AbstractCriterion.ValueContext>, Criterion<Lecture,Placement>, ExtendedInfoProvider<Lecture,Placement>, InfoProvider<Lecture,Placement>, ModelListener<Lecture,Placement>
  Direct Known Subclasses:
    AssignmentCount, DeltaTimePreference, HardConflicts, WeightedHardConflicts

      public abstract class PlacementSelectionCriterion
      extends TimetablingCriterion

  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). Such criterion is for instance the number of hard conflict (values that have to be unassigned before a selected value can be assigned for the problem to remain consistent).
  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/.

- - ### Nested Class Summary

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

      `AbstractCriterion.ValueContext, AbstractCriterion.ValueUpdateType`

  - ### Field Summary

    - ### Fields inherited from class org.cpsolver.ifs.criteria.AbstractCriterion

      `iBest, iDebug, iWeight, sDoubleFormat, sPercentFormat`

    - ### Fields inherited from interface org.cpsolver.ifs.assignment.context.CanHoldContext

      `sMaxSize`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PlacementSelectionCriterion()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info)` Adds some information into the table with information about the solution
    `void` | `getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)` Adds some information into the table with information about the solution, only consider variables from the given set
    `double` | `getWeightDefault(DataProperties config)` Defines default weight (when `AbstractCriterion.getWeightName()` parameter is not present in the criterion).

    - ### Methods inherited from class org.cpsolver.coursett.criteria.TimetablingCriterion

      `configure, getPlacementSelectionAdjustmentsName, getPlacementSelectionWeight, getPlacementSelectionWeightDefault, getPlacementSelectionWeightName`

    - ### Methods inherited from class org.cpsolver.ifs.criteria.AbstractCriterion

      `afterAssigned, afterUnassigned, beforeAssigned, beforeUnassigned, bestRestored, bestSaved, clearCache, computeBounds, constraintAdded, constraintRemoved, createAssignmentContext, getAbbreviation, getAssignmentContextReference, getBest, getBounds, getBounds, getBounds, getBounds, getContext, getContext, getExtendedInfo, getModel, getName, getPerc, getPercentage, getPercRev, getValue, getValue, getValue, getValue, getValueUpdateType, getWeight, getWeightedBest, getWeightedValue, getWeightedValue, getWeightedValue, getWeightedValue, getWeightedValue, getWeightedValue, getWeightName, inc, inc, init, setAssignmentContextReference, setModel, setValueUpdateType, toString, variableAdded, variableRemoved`

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

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

    - ### Methods inherited from interface org.cpsolver.ifs.criteria.Criterion

      `getValue`

- - ### Constructor Detail

    - #### PlacementSelectionCriterion

          public PlacementSelectionCriterion()

  - ### Method Detail

    - #### getWeightDefault

          public double getWeightDefault(DataProperties config)

      Description copied from class: `AbstractCriterion`
      Defines default weight (when `AbstractCriterion.getWeightName()` parameter is not present in the criterion).
      Overrides:
        `getWeightDefault` in class `AbstractCriterion<Lecture,Placement>`
      Parameters:
        `config` - solver configuration
      Returns:
        default criterion weight value

    - #### getInfo

          public void getInfo(Assignment<Lecture,Placement> assignment,
                              Map<String,String> info)

      Description copied from interface: `InfoProvider`
      Adds some information into the table with information about the solution
      Specified by:
        `getInfo` in interface `InfoProvider<Lecture,Placement>`
      Overrides:
        `getInfo` in class `AbstractCriterion<Lecture,Placement>`
      Parameters:
        `assignment` - current assignment
        `info` - info table

    - #### getInfo

          public void getInfo(Assignment<Lecture,Placement> assignment,
                              Map<String,String> info,
                              Collection<Lecture> variables)

      Description copied from interface: `InfoProvider`
      Adds some information into the table with information about the solution, only consider variables from the given set
      Specified by:
        `getInfo` in interface `InfoProvider<Lecture,Placement>`
      Overrides:
        `getInfo` in class `AbstractCriterion<Lecture,Placement>`
      Parameters:
        `assignment` - current assignment
        `info` - info table
        `variables` - sub-problem