net.sf.cpsolver.coursett.criteria
Class StudentConflict

java.lang.Object
  extended by net.sf.cpsolver.ifs.criteria.AbstractCriterion<Lecture,Placement>
      extended by net.sf.cpsolver.coursett.criteria.TimetablingCriterion
          extended by net.sf.cpsolver.coursett.criteria.StudentConflict
All Implemented Interfaces:
Criterion<Lecture,Placement>, InfoProvider<Lecture>, ModelListener<Lecture,Placement>
Direct Known Subclasses:
IgnoredCommittedStudentConflict, IgnoredStudentConflict, ImportantStudentConflict, InstructorStudentConflict, QuadraticStudentConflict, StudentCommittedConflict, StudentDistanceConflict, StudentHardConflict, StudentLuchBreak, StudentOverlapConflict

public class StudentConflict
extends TimetablingCriterion

Student conflicts. This criterion counts student conflicts between classes. A conflict occurs when two classes that are attended by the same student (or students) are overlapping in time or place back-to-back in rooms that are too far a part. The combinations of classes that share students are maintained by JenrlConstraint.

Version:
CourseTT 1.2 (University Course Timetabling)
Copyright (C) 2006 - 2011 Tomas Muller
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
protected  boolean iIncludeConflicts
           
 
Fields inherited from class net.sf.cpsolver.ifs.criteria.AbstractCriterion
iBest, iDebug, iValue, iValueUpdateType, iWeight, sDoubleFormat, sPercentFormat
 
Constructor Summary
StudentConflict()
           
 
Method Summary
static boolean applicable(Lecture l1, Lecture l2)
           
static boolean applicable(Placement p1, Placement p2)
           
 void bestRestored()
          Notification that the current solution has been restored from the best.
static boolean committed(Lecture l1, Lecture l2)
           
static boolean committed(Placement p1, Placement p2)
           
static boolean distance(DistanceMetric m, Placement p1, Placement p2)
           
 double[] getBounds()
          Bounds (minimum and maximum) estimate for the value
 double[] getBounds(Collection<Lecture> variables)
          Value bounds (minimum and maximum) of the criterion on a part of the problem
 DistanceMetric getMetrics()
           
 String getPlacementSelectionWeightName()
           
 double getValue()
          Current value of the criterion (optimization objective)
 double getValue(Collection<Lecture> variables)
          Value of a part of the problem (given by the collection of variables)
 double getValue(Placement value, Set<Placement> conflicts)
          Value of a proposed assignment (including hard conflicts)
static boolean hard(Lecture l1, Lecture l2)
           
static boolean hard(Placement p1, Placement p2)
           
static boolean ignore(Lecture l1, Lecture l2)
           
static boolean ignore(Placement p1, Placement p2)
           
 void incJenrl(JenrlConstraint jenrl, double studentWeight, Double conflictPriority, Student student)
           
 boolean inConflict(Placement p1, Placement p2)
           
 boolean init(Solver<Lecture,Placement> solver)
          Notification that the model was initialized by the solver.
 boolean isApplicable(Lecture l1, Lecture l2)
           
protected  double jointEnrollment(JenrlConstraint jenrl)
           
static boolean overlaps(Placement p1, Placement p2)
           
 
Methods inherited from class net.sf.cpsolver.coursett.criteria.TimetablingCriterion
getPlacementSelectionWeight, getPlacementSelectionWeightDefault
 
Methods inherited from class net.sf.cpsolver.ifs.criteria.AbstractCriterion
afterAssigned, afterUnassigned, beforeAssigned, beforeUnassigned, bestSaved, clearCache, computeBounds, constraintAdded, constraintRemoved, getBest, getInfo, getInfo, getModel, getName, getPerc, getPercRev, getWeight, getWeightDefault, getWeightedBest, getWeightedValue, getWeightedValue, getWeightedValue, getWeightName, inc, variableAdded, variableRemoved
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

iIncludeConflicts

protected boolean iIncludeConflicts
Constructor Detail

StudentConflict

public StudentConflict()
Method Detail

init

public boolean init(Solver<Lecture,Placement> solver)
Description copied from interface: ModelListener
Notification that the model was initialized by the solver.

Specified by:
init in interface ModelListener<Lecture,Placement>
Overrides:
init in class TimetablingCriterion
Parameters:
solver - IFS solver

getPlacementSelectionWeightName

public String getPlacementSelectionWeightName()
Overrides:
getPlacementSelectionWeightName in class TimetablingCriterion

getValue

public double getValue()
Description copied from interface: Criterion
Current value of the criterion (optimization objective)

Specified by:
getValue in interface Criterion<Lecture,Placement>
Overrides:
getValue in class AbstractCriterion<Lecture,Placement>

getMetrics

public DistanceMetric getMetrics()

overlaps

public static boolean overlaps(Placement p1,
                               Placement p2)

jointEnrollment

protected double jointEnrollment(JenrlConstraint jenrl)

distance

public static boolean distance(DistanceMetric m,
                               Placement p1,
                               Placement p2)

ignore

public static boolean ignore(Placement p1,
                             Placement p2)

ignore

public static boolean ignore(Lecture l1,
                             Lecture l2)

committed

public static boolean committed(Placement p1,
                                Placement p2)

committed

public static boolean committed(Lecture l1,
                                Lecture l2)

applicable

public static boolean applicable(Placement p1,
                                 Placement p2)

applicable

public static boolean applicable(Lecture l1,
                                 Lecture l2)

hard

public static boolean hard(Placement p1,
                           Placement p2)

hard

public static boolean hard(Lecture l1,
                           Lecture l2)

isApplicable

public boolean isApplicable(Lecture l1,
                            Lecture l2)

inConflict

public boolean inConflict(Placement p1,
                          Placement p2)

getValue

public double getValue(Placement value,
                       Set<Placement> conflicts)
Description copied from interface: Criterion
Value of a proposed assignment (including hard conflicts)


getValue

public double getValue(Collection<Lecture> 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<Lecture,Placement>
Overrides:
getValue in class AbstractCriterion<Lecture,Placement>

getBounds

public double[] getBounds()
Description copied from interface: Criterion
Bounds (minimum and maximum) estimate for the value

Specified by:
getBounds in interface Criterion<Lecture,Placement>
Overrides:
getBounds in class AbstractCriterion<Lecture,Placement>

getBounds

public double[] getBounds(Collection<Lecture> 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<Lecture,Placement>
Overrides:
getBounds in class AbstractCriterion<Lecture,Placement>

incJenrl

public void incJenrl(JenrlConstraint jenrl,
                     double studentWeight,
                     Double conflictPriority,
                     Student student)

bestRestored

public void bestRestored()
Description copied from interface: Criterion
Notification that the current solution has been restored from the best.

Specified by:
bestRestored in interface Criterion<Lecture,Placement>
Overrides:
bestRestored in class AbstractCriterion<Lecture,Placement>


Copyright © 2014 UniTime LLC. All Rights Reserved.