# Package org.cpsolver.studentsct.heuristics.selection

Student Sectioning: Various Neighbour Selection Criteria.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  ProblemStudentsProvider | An interface to pass the list problematic students computed by a neighbour selection to the next neighbour selection.

- Class Summary
  Class | Description
  --- | ---
  AssignInitialSelection | Assign initial enrollments.
  BacktrackSelection | Use backtrack neighbour selection.
  BacktrackSelection.RequestComparator |
  BranchBoundSelection | Section all students using incremental branch & bound (no unassignments).
  BranchBoundSelection.BranchBoundNeighbour | Branch & bound neighbour -- a schedule of a student
  CriticalBacktrackSelection | Use backtrack neighbour selection.
  CriticalCoursesBranchAndBoundSelection | This selection is very much like `BranchBoundSelection`, but only critical course requests are assigned (see `Request.isCritical()`.
  CriticalStandardSelection | Use the standard IFS search for the unassigned critical course requests.
  MinCreditBranchAndBoundSelection | This selection is very much like `BranchBoundSelection`, but only enough courses to a student is assigned to reach the min credit (see `Student.getMinCredit()`).
  OnlineSelection | Section given student using branch & bound algorithm with no unassignments allowed.
  PriorityConstructionSelection | This selection is very much like `BranchBoundSelection`, but it works in cycles (over all the students) assigning only the first N priority courses.
  RandomUnassignmentSelection | Random unassignment of some (randomly selected) students.
  RandomUnassignmentSelection.UnassignStudentNeighbour | Unassignment of all requests of a student
  ResectionIncompleteStudentsSelection | Resection incomplete studends.
  ResectionUnassignedStudentsSelection | Resection studends with empty schedule.
  RndUnProblStudSelection | Random unassignment of some problematic students.
  ShuffleStudentsSelection | Shuffle students along request groups.
  ShuffleStudentsSelection.ShuffleBacktrackNeighbourSelection | A special version of the `BacktrackNeighbourSelection` that filters the enrollments with the provided section filter.
  StandardSelection | Use the provided variable and value selection for some time.
  StudentEnrollmentSwapSelection | Swap enrollments of different students of a course.
  SwapStudentSelection | Pick a student (one by one) with an incomplete schedule, try to find an improvement, identify problematic students.
  SwapStudentSelection.SwapStudentNeighbour | Neighbour that contains the swap
  UnassignedCriticalCourseRequestSelection |
  UnassignedRequestSelection |

## Package org.cpsolver.studentsct.heuristics.selection Description

Student Sectioning: Various Neighbour Selection Criteria.
These criteria are used by StudentSctNeighbourSelection.