org.cpsolver.instructor.criteria

## Class UnusedInstructorLoad

- java.lang.Object
- - org.cpsolver.ifs.criteria.AbstractCriterion<TeachingRequest.Variable,TeachingAssignment>
  - - org.cpsolver.instructor.criteria.InstructorSchedulingCriterion
    - - org.cpsolver.instructor.criteria.UnusedInstructorLoad

- All Implemented Interfaces:
    CanHoldContext, HasAssignmentContext<TeachingRequest.Variable,TeachingAssignment,AbstractCriterion.ValueContext>, Criterion<TeachingRequest.Variable,TeachingAssignment>, ExtendedInfoProvider<TeachingRequest.Variable,TeachingAssignment>, InfoProvider<TeachingRequest.Variable,TeachingAssignment>, ModelListener<TeachingRequest.Variable,TeachingAssignment>

      public class UnusedInstructorLoad
      extends InstructorSchedulingCriterion

  Unused Instructor Load. If an instructor is being used (has at least one teaching assignment), this criterion can penalize the remaining (unused) load of the instructor. That is the difference between instructor maximal load and the assigned load of the instructor.
  Version:
    IFS 1.3 (Instructor Sectioning)
    Copyright (C) 2016 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

- - ### 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
    `UnusedInstructorLoad()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `getAbbreviation()` Abbreviated name of the criterion for `Object.toString()`.
    `double` | `getValue(Assignment<TeachingRequest.Variable,TeachingAssignment> assignment, Collection<TeachingRequest.Variable> variables)` Value of a part of the problem (given by the collection of variables)
    `double` | `getValue(Assignment<TeachingRequest.Variable,TeachingAssignment> assignment, TeachingAssignment value, Set<TeachingAssignment> conflicts)` Value of a proposed assignment (including hard conflicts)
    `double` | `getWeightDefault(DataProperties config)` Defines default weight (when `AbstractCriterion.getWeightName()` parameter is not present in the criterion).

    - ### Methods inherited from class org.cpsolver.instructor.criteria.InstructorSchedulingCriterion

      `getAssignedInstructors, getInfo, getInfo, getInstructors`

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

      `afterAssigned, afterUnassigned, beforeAssigned, beforeUnassigned, bestRestored, bestSaved, clearCache, computeBounds, configure, constraintAdded, constraintRemoved, createAssignmentContext, getAssignmentContextReference, getBest, getBounds, getBounds, getBounds, getBounds, getContext, getContext, getExtendedInfo, getModel, getName, getPerc, getPercentage, getPercRev, 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`

- - ### Constructor Detail

    - #### UnusedInstructorLoad

          public UnusedInstructorLoad()

  - ### 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<TeachingRequest.Variable,TeachingAssignment>`
      Parameters:
        `config` - solver configuration
      Returns:
        default criterion weight value

    - #### getValue

          public double getValue(Assignment<TeachingRequest.Variable,TeachingAssignment> assignment,
                                 TeachingAssignment value,
                                 Set<TeachingAssignment> conflicts)

      Description copied from interface: `Criterion`
      Value of a proposed assignment (including hard conflicts)
      Parameters:
        `assignment` - current assignment
        `value` - given value
        `conflicts` - values conflicting with the given value
      Returns:
        change in this criterion value when assigned

    - #### getValue

          public double getValue(Assignment<TeachingRequest.Variable,TeachingAssignment> assignment,
                                 Collection<TeachingRequest.Variable> variables)

      Description copied from interface: `Criterion`
      Value of a part of the problem (given by the collection of variables)
      Specified by:
        `getValue` in interface `Criterion<TeachingRequest.Variable,TeachingAssignment>`
      Overrides:
        `getValue` in class `AbstractCriterion<TeachingRequest.Variable,TeachingAssignment>`
      Parameters:
        `assignment` - current assignment
        `variables` - list of problem variables
      Returns:
        value of the given variables

    - #### getAbbreviation

          public String getAbbreviation()

      Description copied from class: `AbstractCriterion`
      Abbreviated name of the criterion for `Object.toString()`.
      Overrides:
        `getAbbreviation` in class `AbstractCriterion<TeachingRequest.Variable,TeachingAssignment>`
      Returns:
        abbreviated name of the criterion