net.sf.cpsolver.studentsct.heuristics.selection
Class OnlineSelection

java.lang.Object
  extended by net.sf.cpsolver.studentsct.heuristics.selection.BranchBoundSelection
      extended by net.sf.cpsolver.studentsct.heuristics.selection.OnlineSelection
All Implemented Interfaces:
NeighbourSelection

public class OnlineSelection
extends BranchBoundSelection

Section given student using branch & bound algorithm with no unassignments allowed.

Parameters:

ParameterTypeComment
Sectioning.UseStudentPreferencePenaltiesBooleanIf true, StudentPreferencePenalties are used
Sectioning.DistributionIntegerWhen student preference penalties are used, defines which distribution is to be used (one of StudentPreferencePenalties.sDistTypePreference, StudentPreferencePenalties.sDistTypePreferenceQuadratic, StudentPreferencePenalties.sDistTypePreferenceReverse, StudentPreferencePenalties.sDistTypeUniform)
Sectioning.UseOnlinePenaltiesBooleanIf true, online sectioning penalties computed based on held/expected space are used.
Sectioning.EpsilonDoubleWhen both online penalties and student preference penalties are used: a solution based on online penalties is computed first, this solution (and the given epsilon) is then used to setup bounds on online penalties for the solution that minimizes student preference penalties. Limit on online penalty is computed as (1+Section.Epsilon)*BranchBoundSelection.Selection.getPenalty(), i.e., only sections with penalty equal or below this limit can be used -- among these the solution that minimizes student preference penalties is computed.


Version:
StudentSct 1.1 (Student Sectioning)
Copyright (C) 2007 Tomáš Müller
muller@unitime.org
Lazenska 391, 76314 Zlin, Czech Republic

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 2.1 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

Nested Class Summary
 class OnlineSelection.EpsilonSelection
          Branch & bound selection for a student
 
Nested classes/interfaces inherited from class net.sf.cpsolver.studentsct.heuristics.selection.BranchBoundSelection
BranchBoundSelection.BranchBoundNeighbour, BranchBoundSelection.Selection
 
Field Summary
 
Fields inherited from class net.sf.cpsolver.studentsct.heuristics.selection.BranchBoundSelection
iDistanceConflict, iDistConfWeight, iMinimizePenalty, iOrder, iStudentsEnumeration, iTimeout, sDebug
 
Constructor Summary
OnlineSelection(DataProperties properties)
          Constructor
 
Method Summary
 BranchBoundSelection.Selection getSelection(Student student)
          Branch & bound selection for a student
 void init(Solver solver)
          Criterion initialization
 boolean isUsePenalties()
          Use online penalties
 boolean isUseStudentPrefPenalties()
          Use student preference penalties
 void updateSpace(Student student)
          Update online sectioning info after the given student is sectioned
 
Methods inherited from class net.sf.cpsolver.studentsct.heuristics.selection.BranchBoundSelection
init, selectNeighbour
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OnlineSelection

public OnlineSelection(DataProperties properties)
Constructor

Parameters:
properties - configuration
Method Detail

init

public void init(Solver solver)
Description copied from interface: NeighbourSelection
Criterion initialization

Specified by:
init in interface NeighbourSelection
Overrides:
init in class BranchBoundSelection

isUseStudentPrefPenalties

public boolean isUseStudentPrefPenalties()
Use student preference penalties


isUsePenalties

public boolean isUsePenalties()
Use online penalties


updateSpace

public void updateSpace(Student student)
Update online sectioning info after the given student is sectioned


getSelection

public BranchBoundSelection.Selection getSelection(Student student)
Branch & bound selection for a student

Overrides:
getSelection in class BranchBoundSelection