Class OnlineSelection

  extended by net.sf.cpsolver.studentsct.heuristics.selection.BranchBoundSelection
      extended by net.sf.cpsolver.studentsct.heuristics.selection.OnlineSelection
All Implemented Interfaces:

public class OnlineSelection
extends BranchBoundSelection

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


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.

StudentSct 1.2 (Student Sectioning)
Copyright (C) 2007 - 2010 Tomáš Müller

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

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)
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


public OnlineSelection(DataProperties properties)

properties - configuration
Method Detail


public void init(Solver<Request,Enrollment> solver)
Description copied from interface: NeighbourSelection
Criterion initialization

Specified by:
init in interface NeighbourSelection<Request,Enrollment>
init in class BranchBoundSelection


public boolean isUseStudentPrefPenalties()
Use student preference penalties


public boolean isUsePenalties()
Use online penalties


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


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

getSelection in class BranchBoundSelection