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<Request,Enrollment>

public class OnlineSelection
extends BranchBoundSelection

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

Parameters:

Parameter Type Comment
Sectioning.UseStudentPreferencePenalties Boolean If true, StudentPreferencePenalties are used
Sectioning.Distribution Integer When student preference penalties are used, defines which distribution is to be used (one of StudentPreferencePenalties.sDistTypePreference, StudentPreferencePenalties.sDistTypePreferenceQuadratic, StudentPreferencePenalties.sDistTypePreferenceReverse, StudentPreferencePenalties.sDistTypeUniform)
Sectioning.UseOnlinePenalties Boolean If true, online sectioning penalties computed based on held/expected space are used.
Sectioning.Epsilon Double When 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.2 (Student Sectioning)
Copyright (C) 2007 - 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/.

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, iModel, iOrder, iStudentsEnumeration, iTimeout, iTimeOverlaps, sDebug
 
Constructor Summary
OnlineSelection(DataProperties properties)
          Constructor
 
Method Summary
 BranchBoundSelection.Selection getSelection(Student student)
          Branch & bound selection for a student
 void init(Solver<Request,Enrollment> 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, setModel
 
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<Request,Enrollment> solver)
Description copied from interface: NeighbourSelection
Criterion initialization

Specified by:
init in interface NeighbourSelection<Request,Enrollment>
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