Package  Description 

org.cpsolver.coursett.heuristics 
University Course Timetabling: Heuristics.

org.cpsolver.coursett.neighbourhoods 
University Course Timetabling: Various Neighbourhoods.

org.cpsolver.coursett.sectioning 
Additional Student Sectioning Algorithms.

org.cpsolver.exam.heuristics 
Examination Timetabling: Solution Heuristics.

org.cpsolver.exam.neighbours 
Examination Timetabling: Various Neighbourhoods.

org.cpsolver.exam.split 
This package contains an an experimental criterion that allows an exam to be split into two if it decreases the number of student conflicts.

org.cpsolver.ifs.algorithms 
IFS Neighbourhood Search Algorithms

org.cpsolver.ifs.algorithms.neighbourhoods 
IFS: Various ProblemIndependent Neighbourhoods.

org.cpsolver.ifs.assignment.context 
Assignment context can be used by a class (e.g., a constraint, a extension, a neighborhood selection, or a criterion) to
contain any assignment dependent data.

org.cpsolver.ifs.heuristics 
IFS Heuristics (value and variable selection criteria)

org.cpsolver.ifs.solver 
IFS Solver

org.cpsolver.studentsct.heuristics 
Student Sectioning: Heuristics.

org.cpsolver.studentsct.heuristics.selection 
Student Sectioning: Various Neighbour Selection Criteria.

org.cpsolver.studentsct.online.selection 
Online Student Sectioning Solver: Selection Weights and Heuristics.

Modifier and Type  Class and Description 

class 
FixCompleteSolutionNeighbourSelection
University course timetabling neighbour selection.

class 
NeighbourSelectionWithSuggestions
Neighbour selection which does the standard time neighbour selection most of
the time, however, the very best neighbour is selected time to time (using
backtracking based search).

Constructor and Description 

FixCompleteSolutionNeighbourSelection(DataProperties config,
NeighbourSelection<Lecture,Placement> parent) 
Modifier and Type  Class and Description 

class 
RoomChange
Try to assign a class with a new room.

class 
RoomSwap
Try to assign a class with a new room.

class 
TimeChange
Try to assign a class with a new time.

class 
TimeSwap
Try to assign a class with a new time.

Modifier and Type  Class and Description 

class 
StudentSwapGenerator
Generate student swaps.

Modifier and Type  Class and Description 

class 
ExamColoringConstruction
Examination timetabling construction heuristics based on graph vertex coloring.

class 
ExamConstruction
Initial solution construction heuristics.

class 
ExamGreatDeluge
Deprecated.

class 
ExamHillClimbing
Deprecated.

class 
ExamNeighbourSelection
Examination timetabling neighbour selection.

class 
ExamSimulatedAnnealing
Deprecated.

class 
ExamTabuSearch
Tabu search algorithm.

Modifier and Type  Class and Description 

class 
ExamPeriodSwapMove
Try to swap a period between two exams.

class 
ExamRandomMove
A period is selected randomly for a randomly selected exam.

class 
ExamRoomMove
Try to swap a room between two exams.

class 
ExamTimeMove
A new period is selected for a randomly selected exam.

Modifier and Type  Class and Description 

class 
ExamSplitMoves
Experimental neighbor selection that allows an exam to be split
into two if it decreases the number of student conflicts.

Modifier and Type  Class and Description 

class 
GreatDeluge<V extends Variable<V,T>,T extends Value<V,T>>
Great deluge.

class 
HillClimber<V extends Variable<V,T>,T extends Value<V,T>>
Hill climber.

class 
MetaHeuristicSearch<V extends Variable<V,T>,T extends Value<V,T>>
Metaheuristic search neighbor selection.

class 
NeighbourSearch<V extends Variable<V,T>,T extends Value<V,T>>
Base class for the search techniques like hill climber, great deluge, or simulated annealing.

class 
NeighbourSelector<V extends Variable<V,T>,T extends Value<V,T>>
A wrapper for
NeighbourSelection that keeps some stats about the
given neighbour selector. 
class 
ParallelConstruction<V extends Variable<V,T>,T extends Value<V,T>>
A simple neighbourhood selection extension suitable for the
ParallelSolver
during the construction phase. 
class 
SimpleSearch<V extends Variable<V,T>,T extends Value<V,T>>
Simple search neighbour selection.

class 
SimulatedAnnealing<V extends Variable<V,T>,T extends Value<V,T>>
Simulated annealing.

class 
StepCountingHillClimber<V extends Variable<V,T>,T extends Value<V,T>>
Step counting hill climber.

Modifier and Type  Field and Description 

protected NeighbourSelection<V,T> 
ParallelConstruction.iParent 
Modifier and Type  Method and Description 

NeighbourSelection<V,T> 
MetaHeuristicSearch.MetaHeuristicSearchContext.getConstructionSelection() 
NeighbourSelection<V,T> 
MetaHeuristicSearch.MetaHeuristicSearchContext.getHillClimberSelection() 
NeighbourSelection<V,T> 
MetaHeuristicSearch.MetaHeuristicSearchContext.getImprovementSelection() 
NeighbourSelection<V,T> 
MetaHeuristicSearch.MetaHeuristicSearchContext.getIncompleteSelection() 
protected NeighbourSelection<V,T> 
NeighbourSearch.nextNeighbourSelection()
Generate and return next neighbour selection

NeighbourSelection<V,T> 
NeighbourSelector.selection()
Given neighbour selection

Modifier and Type  Method and Description 

protected List<? extends NeighbourSelection<V,T>> 
NeighbourSearch.getNeighbours()
Return list of neighbour selections

Modifier and Type  Method and Description 

protected void 
NeighbourSearch.addNeighbourSelection(NeighbourSelection<V,T> ns,
double bonus)
Add neighbour selection

Constructor and Description 

NeighbourSelector(NeighbourSelection<V,T> sel,
double bonus,
boolean update)
Constructor

ParallelConstruction(DataProperties config,
NeighbourSelection<V,T> parent) 
Modifier and Type  Class and Description 

class 
RandomMove<V extends Variable<V,T>,T extends Value<V,T>>
Try to assign a variable with a new value.

class 
RandomSwapMove<V extends Variable<V,T>,T extends Value<V,T>>
Try to assign a variable with a new value.

class 
SuggestionMove<V extends Variable<V,T>,T extends Value<V,T>>
Suggestion move.

Modifier and Type  Class and Description 

class 
NeighbourSelectionWithContext<V extends Variable<V,T>,T extends Value<V,T>,C extends AssignmentContext>
A neighborhood selection with an assignment context.

Modifier and Type  Class and Description 

class 
BacktrackNeighbourSelection<V extends Variable<V,T>,T extends Value<V,T>>
Backtrackingbased neighbour selection.

class 
RoundRobinNeighbourSelection<V extends Variable<V,T>,T extends Value<V,T>>
A round robin neighbour selection.

class 
StandardNeighbourSelection<V extends Variable<V,T>,T extends Value<V,T>>
Standard neighbour selection criterion.

Modifier and Type  Method and Description 

NeighbourSelection<V,T> 
RoundRobinNeighbourSelection.getSelection() 
Modifier and Type  Method and Description 

void 
RoundRobinNeighbourSelection.registerSelection(NeighbourSelection<V,T> selection)
Register a neighbour selection

Modifier and Type  Method and Description 

NeighbourSelection<V,T> 
Solver.getNeighbourSelection()
Returns neighbour selection criterion

Modifier and Type  Method and Description 

void 
Solver.setNeighbourSelection(NeighbourSelection<V,T> neighbourSelection)
Sets neighbour selection criterion

Modifier and Type  Class and Description 

class 
RandomizedBacktrackNeighbourSelection
Randomized backtrackingbased neighbour selection.

class 
RestoreBestSolution
A simple step that checks whether the best solution has improved since the last check.

class 
StudentSctNeighbourSelection
(Batch) student sectioning neighbour selection.

class 
TwoPhaseStudentSctNeighbourSelection
Twophase (Batch) student sectioning neighbour selection.

protected class 
TwoPhaseStudentSctNeighbourSelection.RestoreDummyStudents
Return all dummy students into the problem, executed as the last phase of
the first round

Modifier and Type  Class and Description 

class 
AssignInitialSelection
Assign initial enrollments.

class 
BacktrackSelection
Use backtrack neighbour selection.

class 
BranchBoundSelection
Section all students using incremental branch & bound (no unassignments).

class 
CriticalBacktrackSelection
Use backtrack neighbour selection.

class 
CriticalCoursesBranchAndBoundSelection
This selection is very much like
BranchBoundSelection , but only critical
course requests are assigned (see Request.isCritical() . 
class 
CriticalStandardSelection
Use the standard IFS search for the unassigned critical course requests.

class 
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() ). 
class 
OnlineSelection
Section given student using branch & bound algorithm with no unassignments
allowed.

class 
PriorityConstructionSelection
This selection is very much like
BranchBoundSelection , but it works in cycles
(over all the students) assigning only the first N priority courses. 
class 
RandomUnassignmentSelection
Random unassignment of some (randomly selected) students.

class 
ResectionIncompleteStudentsSelection
Resection incomplete studends.

class 
ResectionUnassignedStudentsSelection
Resection studends with empty schedule.

class 
RndUnProblStudSelection
Random unassignment of some problematic students.

class 
ShuffleStudentsSelection
Shuffle students along request groups.

static class 
ShuffleStudentsSelection.ShuffleBacktrackNeighbourSelection
A special version of the
BacktrackNeighbourSelection that filters the enrollments with the
provided section filter. 
class 
StandardSelection
Use the provided variable and value selection for some time.

class 
StudentEnrollmentSwapSelection
Swap enrollments of different students of a course.

class 
SwapStudentSelection
Pick a student (one by one) with an incomplete schedule, try to find an
improvement, identify problematic students.

Modifier and Type  Class and Description 

class 
SuggestionSelection
Online student sectioning algorithm based on the
BranchBoundSelection of the batch solver. 