net.sf.cpsolver.coursett.heuristics
Class LectureSelection

java.lang.Object
  extended by net.sf.cpsolver.coursett.heuristics.LectureSelection
All Implemented Interfaces:
VariableSelection<Lecture,Placement>

public class LectureSelection
extends Object
implements VariableSelection<Lecture,Placement>

Lecture (variable) selection.

If there are one or more variables unassigned, the variable selection criterion picks one of them randomly. We have tried several approaches using domain sizes, number of previous assignments, numbers of constraints in which the variable participates, etc., but there was no significant improvement in this timetabling problem towards the random selection of an unassigned variable. The reason is, that it is easy to go back when a wrong variable is picked - such a variable is unassigned when there is a conflict with it in some of the subsequent iterations.

When all variables are assigned, an evaluation is made for each variable according to the above described weights. The variable with the worst evaluation is selected. This variable promises the best improvement in optimization.

Parameters (selection among unassigned lectures):

Parameter Type Comment
Lecture.RouletteWheelSelection Boolean Roulette wheel selection
Lecture.RandomWalkProb Double Random walk probability
Lecture.DomainSizeWeight Double Domain size weight
Lecture.NrAssignmentsWeight Double Number of assignments weight
Lecture.InitialAssignmentWeight Double Initial assignment weight
Lecture.NrConstraintsWeight Double Number of constraint weight

Parameters (selection among assigned lectures, when the solution is complete):
Parameter Type Comment
Comparator.HardStudentConflictWeight Double Hard student conflict weight
Comparator.StudentConflictWeight Double Student conflict weight
Comparator.TimePreferenceWeight Double Time preference weight
Comparator.ContrPreferenceWeight Double Group constraint preference weight
Comparator.RoomPreferenceWeight Double Room preference weight
Comparator.UselessSlotWeight Double Useless slot weight
Comparator.TooBigRoomWeight Double Too big room weight
Comparator.DistanceInstructorPreferenceWeight Double Distance (of the rooms of the back-to-back classes) based instructor preferences weight
Comparator.DeptSpreadPenaltyWeight Double Department balancing penalty (see DepartmentSpreadConstraint)

Parameters (selection among subset of lectures (faster)):
Parameter Type Comment
Lecture.SelectionSubSet Boolean Selection among subset of lectures (faster)
Lecture.SelectionSubSetMinSize Double Minimal subset size
Lecture.SelectionSubSetPart Double Subset size in percentage of all lectures available for selection

Version:
CourseTT 1.2 (University Course Timetabling)
Copyright (C) 2006 - 2010 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/.
See Also:
PlacementSelection

Constructor Summary
LectureSelection(DataProperties properties)
           
 
Method Summary
 void init(Solver<Lecture,Placement> solver)
          Initialization
 Lecture selectVariable(Solution<Lecture,Placement> solution)
          Variable selection
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LectureSelection

public LectureSelection(DataProperties properties)
Method Detail

init

public void init(Solver<Lecture,Placement> solver)
Description copied from interface: VariableSelection
Initialization

Specified by:
init in interface VariableSelection<Lecture,Placement>

selectVariable

public Lecture selectVariable(Solution<Lecture,Placement> solution)
Description copied from interface: VariableSelection
Variable selection

Specified by:
selectVariable in interface VariableSelection<Lecture,Placement>
Parameters:
solution - current solution


Copyright © 2014 UniTime LLC. All Rights Reserved.