org.cpsolver.studentsct.online.selection

## Interface OnlineSectioningSelection

- All Known Implementing Classes:
    MultiCriteriaBranchAndBoundSelection, SuggestionSelection

      public interface OnlineSectioningSelection

  Online student sectioning interface to be implemented by any sectioning algorithm.
  Version:
    StudentSct 1.3 (Student Sectioning)
    Copyright (C) 2014 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.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `BranchBoundSelection.BranchBoundNeighbour` | `select(Assignment<Request,Enrollment> assignment, Student student)` Compute student schedule
    `void` | `setMaxOverExpected(double maxOverExpected)` Set hard limit on the `OverExpectedCriterion` penalty.
    `void` | `setModel(OnlineSectioningModel model)` Set online sectioning model
    `void` | `setPreferredSections(Hashtable<CourseRequest,Set<Section>> preferredSections)` Set preferred sections
    `void` | `setRequiredFreeTimes(Set<FreeTimeRequest> requiredFreeTimes)` Set required free times
    `void` | `setRequiredSections(Hashtable<CourseRequest,Set<Section>> requiredSections)` Set required sections
    `void` | `setRequiredUnassinged(Set<CourseRequest> requiredUnassignedRequests)` Set course requests that are to be left unassigned

- - ### Method Detail

    - #### setModel

          void setModel(OnlineSectioningModel model)

      Set online sectioning model
      Parameters:
        `model` - online sectioning model

    - #### setPreferredSections

          void setPreferredSections(Hashtable<CourseRequest,Set<Section>> preferredSections)

      Set preferred sections
      Parameters:
        `preferredSections` - preferred sections for each course request

    - #### setRequiredSections

          void setRequiredSections(Hashtable<CourseRequest,Set<Section>> requiredSections)

      Set required sections
      Parameters:
        `requiredSections` - required sections for each course request

    - #### setRequiredFreeTimes

          void setRequiredFreeTimes(Set<FreeTimeRequest> requiredFreeTimes)

      Set required free times
      Parameters:
        `requiredFreeTimes` - required free times

    - #### setRequiredUnassinged

          void setRequiredUnassinged(Set<CourseRequest> requiredUnassignedRequests)

      Set course requests that are to be left unassigned
      Parameters:
        `requiredUnassignedRequests` - course requests that are required to be left unassigned

    - #### select

          BranchBoundSelection.BranchBoundNeighbour select(Assignment<Request,Enrollment> assignment,
                                                           Student student)

      Compute student schedule
      Parameters:
        `assignment` - current assignment
        `student` - student in question
      Returns:
        student schedule

    - #### setMaxOverExpected

          void setMaxOverExpected(double maxOverExpected)

      Set hard limit on the `OverExpectedCriterion` penalty.
      Parameters:
        `maxOverExpected` - max over-expected limit