net.sf.cpsolver.coursett.heuristics
Class PlacementSelection

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

public class PlacementSelection
extends Object
implements ValueSelection<Lecture,Placement>

Placement (value) selection.

We have implemented a hierarchical handling of the value selection criteria (see HeuristicSelector).

The value selection heuristics also allow for random selection of a value with a given probability (random walk, e.g., 2%) and, in the case of MPP, to select the initial value (if it exists) with a given probability (e.g., 70%).

Parameters (general):

Parameter Type Comment
Placement.RandomWalkProb Double Random walk probability
Placement.GoodSelectionProb Double Good value (not removed from domain) selection probability (MAC related)
Placement.TabuLength Integer Tabu-list length (-1 means do not use tabu-list)
Placement.MPP_InitialProb Double MPP initial selection probability
Placement.MPP_Limit Integer MPP: limit on the number of perturbations (-1 for no limit)
Placement.MPP_PenaltyLimit Double MPP: limit on the perturbations penalty (-1 for no limit)

Parameters (for each level of selection):
Parameter Type Comment
Placement.NrAssignmentsWeight1
Placement.NrAssignmentsWeight2
Placement.NrAssignmentsWeight3
Double Number of previous assignments of the value weight
Placement.NrConflictsWeight1,2,3 Double Number of conflicts weight
Placement.WeightedConflictsWeight1,2,3 Double Weighted conflicts weight (Conflict-based Statistics related)
Placement.NrPotentialConflictsWeight1,2,3 Double Number of potential conflicts weight (Conflict-based Statistics related)
Placement.MPP_DeltaInitialAssignmentWeight1,2,3 Double Delta initial assigments weight (MPP, violated initials related)
Placement.NrHardStudConfsWeight1,2,3 Double Hard student conflicts weight (student conflicts between single-section classes)
Placement.NrStudConfsWeight1,2,3 Double Student conflicts weight
Placement.TimePreferenceWeight1,2,3 Double Time preference weight
Placement.DeltaTimePreferenceWeight1,2,3 Double Time preference delta weight (difference between before and after assignemnt of the value)
Placement.ConstrPreferenceWeight1,2,3 Double Constraint preference weight
Placement.RoomPreferenceWeight1,2,3 Double Room preference weight
Placement.UselessSlotsWeight1,2,3 Double Useless slot weight
Placement.TooBigRoomWeight1,2,3 Double Too big room weight
Placement.DistanceInstructorPreferenceWeight1,2,3 Double Distance (of the rooms of the back-to-back classes) based instructor preferences weight
Placement.DeptSpreadPenaltyWeight1,2,3 Double Department spreading: penalty of when a slot over initial allowance is used
Placement.ThresholdKoef1,2 Double Threshold koeficient of the level

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

Field Summary
static String GOOD_SELECTION_PROB
           
static String INITIAL_SELECTION_PROB
           
static String NR_MPP_LIMIT
           
static String NR_MPP_PENALTY_LIMIT
           
static String NR_THRESHOLD_KOEF
           
static String RW_SELECTION_PROB
           
static String TABU_LENGTH
           
 
Constructor Summary
PlacementSelection(DataProperties properties)
           
 
Method Summary
 boolean containsItselfSingletonOrCommited(TimetableModel model, Set<Placement> values, Placement selectedValue)
           
 void init(Solver<Lecture,Placement> solver)
          Initialization
 Placement selectValue(Solution<Lecture,Placement> solution, Lecture var)
          Value selection
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

GOOD_SELECTION_PROB

public static final String GOOD_SELECTION_PROB
See Also:
Constant Field Values

RW_SELECTION_PROB

public static final String RW_SELECTION_PROB
See Also:
Constant Field Values

INITIAL_SELECTION_PROB

public static final String INITIAL_SELECTION_PROB
See Also:
Constant Field Values

NR_MPP_LIMIT

public static final String NR_MPP_LIMIT
See Also:
Constant Field Values

NR_MPP_PENALTY_LIMIT

public static final String NR_MPP_PENALTY_LIMIT
See Also:
Constant Field Values

NR_THRESHOLD_KOEF

public static final String NR_THRESHOLD_KOEF
See Also:
Constant Field Values

TABU_LENGTH

public static final String TABU_LENGTH
See Also:
Constant Field Values
Constructor Detail

PlacementSelection

public PlacementSelection(DataProperties properties)
Method Detail

init

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

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

selectValue

public Placement selectValue(Solution<Lecture,Placement> solution,
                             Lecture var)
Description copied from interface: ValueSelection
Value selection

Specified by:
selectValue in interface ValueSelection<Lecture,Placement>
Parameters:
solution - current solution
var - selected variable

containsItselfSingletonOrCommited

public boolean containsItselfSingletonOrCommited(TimetableModel model,
                                                 Set<Placement> values,
                                                 Placement selectedValue)