Package | Description |
---|---|
net.sf.cpsolver.coursett |
University Course Timetabling.
|
net.sf.cpsolver.coursett.criteria.placement |
University Course Timetabling: Placement Selection Criteria.
|
net.sf.cpsolver.coursett.heuristics |
University Course Timetabling: Heuristics.
|
net.sf.cpsolver.coursett.neighbourhoods |
University Course Timetabling: Various Neighbourhoods.
|
net.sf.cpsolver.exam.heuristics |
Examination Timetabling: Solution Heuristics.
|
net.sf.cpsolver.exam.neighbours |
Examination Timetabling: Various Neighbourhoods.
|
net.sf.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.
|
net.sf.cpsolver.ifs.algorithms |
IFS Neighbourhood Search Algorithms
|
net.sf.cpsolver.ifs.algorithms.neighbourhoods |
IFS: Various Problem-Independent Neighbourhoods.
|
net.sf.cpsolver.ifs.dbt |
Dynamic backtracking extension of IFS solver
|
net.sf.cpsolver.ifs.example.tt |
Simple Timetabling Problem.
|
net.sf.cpsolver.ifs.extension |
IFS Extensions (conflict-based statistics, maintenance of arc
consistency)
|
net.sf.cpsolver.ifs.heuristics |
IFS Heuristics (value and variable selection criteria)
|
net.sf.cpsolver.ifs.solution |
IFS Solution (also contains solution comparator)
|
net.sf.cpsolver.ifs.solver |
IFS Solver
|
net.sf.cpsolver.ifs.termination |
IFS Termination (termination condition)
|
net.sf.cpsolver.studentsct |
Student Sectioning Solver.
|
net.sf.cpsolver.studentsct.heuristics |
Student Sectioning: Heuristics.
|
net.sf.cpsolver.studentsct.heuristics.selection |
Student Sectioning: Various Neighbour Selection Criteria.
|
net.sf.cpsolver.studentsct.weights |
Student Sectioning Weightings: various students weight models
|
Modifier and Type | Method and Description |
---|---|
protected Solution<Lecture,Placement> |
TimetableSaver.getSolution()
Solution to be saved
|
Modifier and Type | Method and Description |
---|---|
void |
Test.bestCleared(Solution<Lecture,Placement> solution) |
void |
Test.bestRestored(Solution<Lecture,Placement> solution) |
void |
Test.bestSaved(Solution<Lecture,Placement> solution) |
void |
Test.getInfo(Solution<Lecture,Placement> solution,
Map<String,String> info) |
void |
Test.getInfo(Solution<Lecture,Placement> solution,
Map<String,String> info,
Collection<Lecture> variables) |
void |
TimetableXMLLoader.load(Solution<Lecture,Placement> currentSolution) |
void |
Test.notify(Solution<Lecture,Placement> solution)
Add a line into the output CSV file when a enw best solution is found.
|
static void |
Test.printSomeStuff(Solution<Lecture,Placement> solution)
Create info.txt with some more information about the problem
|
static void |
Test.saveOutputCSV(Solution<Lecture,Placement> s,
File file) |
void |
Test.solutionUpdated(Solution<Lecture,Placement> solution) |
Modifier and Type | Method and Description |
---|---|
void |
WeightedHardConflicts.bestCleared(Solution<Lecture,Placement> solution) |
void |
WeightedHardConflicts.bestRestored(Solution<Lecture,Placement> solution) |
void |
WeightedHardConflicts.bestSaved(Solution<Lecture,Placement> solution) |
void |
WeightedHardConflicts.getInfo(Solution<Lecture,Placement> solution,
Map<String,String> info) |
void |
WeightedHardConflicts.getInfo(Solution<Lecture,Placement> solution,
Map<String,String> info,
Collection<Lecture> variables) |
void |
WeightedHardConflicts.solutionUpdated(Solution<Lecture,Placement> solution) |
Modifier and Type | Method and Description |
---|---|
int |
NeighbourSelectionWithSuggestions.SuggestionNeighbour.compareTo(Solution<Lecture,Placement> solution) |
double |
TimetableComparator.currentValue(Solution<Lecture,Placement> currentSolution)
Deprecated.
|
double |
TimetableComparator.getBest(Solution<Lecture,Placement> currentSolution)
Deprecated.
|
Neighbour<Lecture,Placement> |
NeighbourSelectionWithSuggestions.selectNeighbour(Solution<Lecture,Placement> solution) |
Neighbour<Lecture,Placement> |
NeighbourSelectionWithSuggestions.selectNeighbourWithSuggestions(Solution<Lecture,Placement> solution,
Lecture lecture,
int depth) |
Placement |
PlacementSelection.selectValue(Solution<Lecture,Placement> solution,
Lecture var) |
Lecture |
LectureSelection.selectVariable(Solution<Lecture,Placement> solution) |
Modifier and Type | Method and Description |
---|---|
Double |
RoomSwap.resolve(Solution<Lecture,Placement> solution,
double total,
long startTime,
Map<Lecture,Placement> assignments,
List<Placement> conflicts,
int index) |
Double |
TimeSwap.resolve(Solution<Lecture,Placement> solution,
double total,
long startTime,
Map<Lecture,Placement> assignments,
List<Placement> conflicts,
int index) |
Neighbour<Lecture,Placement> |
RoomChange.selectNeighbour(Solution<Lecture,Placement> solution) |
Neighbour<Lecture,Placement> |
RoomSwap.selectNeighbour(Solution<Lecture,Placement> solution) |
Neighbour<Lecture,Placement> |
TimeChange.selectNeighbour(Solution<Lecture,Placement> solution) |
Neighbour<Lecture,Placement> |
TimeSwap.selectNeighbour(Solution<Lecture,Placement> solution) |
Modifier and Type | Method and Description |
---|---|
protected boolean |
ExamGreatDeluge.accept(Solution<Exam,ExamPlacement> solution,
Neighbour<Exam,ExamPlacement> neighbour)
Accept neighbour
|
protected boolean |
ExamSimulatedAnnealing.accept(Solution<Exam,ExamPlacement> solution,
Neighbour<Exam,ExamPlacement> neighbour)
True if the given neighboir is to be be accepted
|
void |
ExamGreatDeluge.bestCleared(Solution<Exam,ExamPlacement> solution) |
void |
ExamHillClimbing.bestCleared(Solution<Exam,ExamPlacement> solution) |
void |
ExamSimulatedAnnealing.bestCleared(Solution<Exam,ExamPlacement> solution) |
void |
ExamGreatDeluge.bestRestored(Solution<Exam,ExamPlacement> solution) |
void |
ExamHillClimbing.bestRestored(Solution<Exam,ExamPlacement> solution) |
void |
ExamSimulatedAnnealing.bestRestored(Solution<Exam,ExamPlacement> solution) |
void |
ExamGreatDeluge.bestSaved(Solution<Exam,ExamPlacement> solution)
Update last improving iteration count
|
void |
ExamHillClimbing.bestSaved(Solution<Exam,ExamPlacement> solution)
Memorize the iteration when the last best solution was found.
|
void |
ExamSimulatedAnnealing.bestSaved(Solution<Exam,ExamPlacement> solution)
Memorize the iteration when the last best solution was found.
|
boolean |
ExamNeighbourSelection.canContinue(Solution<Exam,ExamPlacement> currentSolution)
Termination condition (i.e., has final phase finished)
|
protected void |
ExamSimulatedAnnealing.cool(Solution<Exam,ExamPlacement> solution)
Cool temperature
|
Neighbour<Exam,ExamPlacement> |
ExamGreatDeluge.genMove(Solution<Exam,ExamPlacement> solution)
Generate neighbour -- select neighbourhood randomly, select neighbour
|
Neighbour<Exam,ExamPlacement> |
ExamSimulatedAnnealing.genMove(Solution<Exam,ExamPlacement> solution)
Generate neighbour -- select neighbourhood randomly, select neighbour
|
void |
ExamGreatDeluge.getInfo(Solution<Exam,ExamPlacement> solution,
Map<String,String> info) |
void |
ExamHillClimbing.getInfo(Solution<Exam,ExamPlacement> solution,
Map<String,String> info) |
void |
ExamSimulatedAnnealing.getInfo(Solution<Exam,ExamPlacement> solution,
Map<String,String> info) |
void |
ExamGreatDeluge.getInfo(Solution<Exam,ExamPlacement> solution,
Map<String,String> info,
Collection<Exam> variables) |
void |
ExamHillClimbing.getInfo(Solution<Exam,ExamPlacement> solution,
Map<String,String> info,
Collection<Exam> variables) |
void |
ExamSimulatedAnnealing.getInfo(Solution<Exam,ExamPlacement> solution,
Map<String,String> info,
Collection<Exam> variables) |
protected void |
ExamGreatDeluge.incIter(Solution<Exam,ExamPlacement> solution)
Increment iteration count, update bound
|
protected void |
ExamSimulatedAnnealing.incIter(Solution<Exam,ExamPlacement> solution)
Increment iteration counter, cool/reheat/restoreBest if necessary
|
protected void |
ExamGreatDeluge.info(Solution<Exam,ExamPlacement> solution)
Print some information
|
protected void |
ExamSimulatedAnnealing.reheat(Solution<Exam,ExamPlacement> solution)
Reheat temperature
|
protected void |
ExamSimulatedAnnealing.restoreBest(Solution<Exam,ExamPlacement> solution)
restore best ever found solution
|
Neighbour<Exam,ExamPlacement> |
ExamColoringConstruction.selectNeighbour(Solution<Exam,ExamPlacement> solution) |
Neighbour<Exam,ExamPlacement> |
ExamConstruction.selectNeighbour(Solution<Exam,ExamPlacement> solution)
Select a neighbour.
|
Neighbour<Exam,ExamPlacement> |
ExamGreatDeluge.selectNeighbour(Solution<Exam,ExamPlacement> solution)
A neighbour is generated randomly untill an acceptable one is found.
|
Neighbour<Exam,ExamPlacement> |
ExamHillClimbing.selectNeighbour(Solution<Exam,ExamPlacement> solution)
Select one of the given neighbourhoods randomly, select neighbour, return
it if its value is below or equal to zero (continue with the next
selection otherwise).
|
Neighbour<Exam,ExamPlacement> |
ExamNeighbourSelection.selectNeighbour(Solution<Exam,ExamPlacement> solution)
Neighbour selection.
|
Neighbour<Exam,ExamPlacement> |
ExamSimulatedAnnealing.selectNeighbour(Solution<Exam,ExamPlacement> solution)
Select neighbour -- generate a move
ExamSimulatedAnnealing.genMove(Solution) until an acceptable
neighbour is found
ExamSimulatedAnnealing.accept(Solution, Neighbour) , keep
increasing iteration ExamSimulatedAnnealing.incIter(Solution) . |
Neighbour<Exam,ExamPlacement> |
ExamTabuSearch.selectNeighbour(Solution<Exam,ExamPlacement> solution)
Neighbor selection
|
ExamPlacement |
ExamTabuSearch.selectValue(Solution<Exam,ExamPlacement> solution,
Exam exam)
Value selection
|
Exam |
ExamUnassignedVariableSelection.selectVariable(Solution<Exam,ExamPlacement> solution)
Variable selection
|
void |
ExamGreatDeluge.solutionUpdated(Solution<Exam,ExamPlacement> solution) |
void |
ExamHillClimbing.solutionUpdated(Solution<Exam,ExamPlacement> solution) |
void |
ExamSimulatedAnnealing.solutionUpdated(Solution<Exam,ExamPlacement> solution) |
Modifier and Type | Method and Description |
---|---|
Neighbour<Exam,ExamPlacement> |
ExamPeriodSwapMove.selectNeighbour(Solution<Exam,ExamPlacement> solution)
Select an exam randomly,
select an available period randomly (if it is not assigned),
use rooms if possible, select rooms using
Exam.findBestAvailableRooms(ExamPeriodPlacement) if not (exam is unassigned, a room is not available or used). |
Neighbour<Exam,ExamPlacement> |
ExamRandomMove.selectNeighbour(Solution<Exam,ExamPlacement> solution)
Select an exam randomly, select an available period randomly (from
Exam.getPeriodPlacements() ), select rooms using
Exam.findBestAvailableRooms(ExamPeriodPlacement) . |
Neighbour<Exam,ExamPlacement> |
ExamRoomMove.selectNeighbour(Solution<Exam,ExamPlacement> solution)
Select an exam randomly, select an available period randomly (if it is
not assigned, from
Exam.getPeriodPlacements() ), select rooms
using Exam.findRoomsRandom(ExamPeriodPlacement) |
Neighbour<Exam,ExamPlacement> |
ExamTimeMove.selectNeighbour(Solution<Exam,ExamPlacement> solution)
Select an exam randomly,
select an available period randomly (if it is not assigned),
use rooms if possible, select rooms using
Exam.findBestAvailableRooms(ExamPeriodPlacement) if not (exam is unassigned, a room is not available or used). |
Modifier and Type | Method and Description |
---|---|
Neighbour<Exam,ExamPlacement> |
ExamSplitMoves.selectNeighbour(Solution<Exam,ExamPlacement> solution)
Select a split (split an exam into two), a merge (merge two split exams back together) or
shuffle operation (move students between two exams that has been split before).
|
Modifier and Type | Method and Description |
---|---|
protected boolean |
NeighbourSearch.accept(Solution<V,T> solution,
Neighbour<V,T> neighbour)
True if the generated move is to be accepted.
|
protected void |
GreatDeluge.activate(Solution<V,T> solution)
Setup the bound
|
protected void |
HillClimber.activate(Solution<V,T> solution)
Reset the idle iterations counter
|
protected void |
NeighbourSearch.activate(Solution<V,T> solution)
Called just before the neighbourhood search is called for the first time.
|
protected void |
SimulatedAnnealing.activate(Solution<V,T> solution)
Setup the temperature
|
void |
StepCountingHillClimber.activate(Solution<V,T> solution)
Reset the bound and the steps counter.
|
void |
NeighbourSearch.bestCleared(Solution<V,T> solution) |
void |
NeighbourSearch.bestRestored(Solution<V,T> solution) |
void |
GreatDeluge.bestSaved(Solution<V,T> solution)
Update last improving iteration count
|
void |
HillClimber.bestSaved(Solution<V,T> solution)
Memorize the iteration when the last best solution was found.
|
void |
NeighbourSearch.bestSaved(Solution<V,T> solution) |
void |
SimulatedAnnealing.bestSaved(Solution<V,T> solution)
Memorize the iteration when the last best solution was found.
|
protected boolean |
HillClimber.canContinue(Solution<V,T> solution)
Stop the search after a given number of idle (not improving) iterations
|
protected boolean |
NeighbourSearch.canContinue(Solution<V,T> solution)
Return false if the search is to be stopped.
|
boolean |
SimpleSearch.canContinue(Solution<V,T> currentSolution)
Termination condition (i.e., has final phase finished)
|
protected boolean |
StepCountingHillClimber.canContinue(Solution<V,T> solution)
Stop the search when the number of idle iterations is reached and the bound is no longer decreasing
|
protected void |
SimulatedAnnealing.cool(Solution<V,T> solution)
Cool temperature
|
protected void |
NeighbourSearch.deactivate(Solution<V,T> solution)
Called when the search cannot continue, just before a null neighbour is returned
|
Neighbour<V,T> |
NeighbourSearch.generateMove(Solution<V,T> solution)
Generate a random move
|
void |
NeighbourSearch.getInfo(Solution<V,T> solution,
Map<String,String> info) |
void |
NeighbourSearch.getInfo(Solution<V,T> solution,
Map<String,String> info,
Collection<V> variables) |
protected void |
GreatDeluge.incIteration(Solution<V,T> solution)
Increment iteration count, update bound
|
protected void |
HillClimber.incIteration(Solution<V,T> solution)
Increase iteration counter
|
protected void |
NeighbourSearch.incIteration(Solution<V,T> solution)
Increment iteration counters etc.
|
protected void |
SimulatedAnnealing.incIteration(Solution<V,T> solution)
Increment iteration counter, cool/reheat/restoreBest if necessary
|
void |
StepCountingHillClimber.incIteration(Solution<V,T> solution)
Increase iteration number, also update bound when the given number of steps is reached.
|
protected void |
SimulatedAnnealing.reheat(Solution<V,T> solution)
Reheat temperature
|
protected void |
SimulatedAnnealing.restoreBest(Solution<V,T> solution)
restore best ever found solution
|
Neighbour<V,T> |
NeighbourSearch.selectNeighbour(Solution<V,T> solution) |
Neighbour<V,T> |
NeighbourSelector.selectNeighbour(Solution<V,T> solution)
Neighbour selection -- use
NeighbourSelection.selectNeighbour(Solution)
update stats if desired. |
Neighbour<V,T> |
SimpleSearch.selectNeighbour(Solution<V,T> solution)
Neighbour selection.
|
void |
NeighbourSearch.solutionUpdated(Solution<V,T> solution) |
Modifier and Type | Method and Description |
---|---|
Double |
RandomSwapMove.resolve(Solution<V,T> solution,
double total,
long startTime,
Map<V,T> assignments,
List<T> conflicts,
int index)
Try to resolve given conflicts.
|
Neighbour<V,T> |
RandomMove.selectNeighbour(Solution<V,T> solution) |
Neighbour<V,T> |
RandomSwapMove.selectNeighbour(Solution<V,T> solution) |
Neighbour<V,T> |
SuggestionMove.selectNeighbour(Solution<V,T> solution) |
Modifier and Type | Method and Description |
---|---|
T |
DbtValueSelection.selectValue(Solution<V,T> solution,
V selectedVariable)
Value selection
|
V |
DbtVariableSelection.selectVariable(Solution<V,T> solution)
Variable selection
|
Modifier and Type | Method and Description |
---|---|
void |
TimetableModel.saveAsXML(DataProperties cfg,
boolean gen,
Solution<Activity,Location> solution,
File outFile) |
Modifier and Type | Method and Description |
---|---|
void |
SearchIntensification.bestCleared(Solution<V,T> solution) |
void |
SearchIntensification.bestRestored(Solution<V,T> solution) |
void |
SearchIntensification.bestSaved(Solution<V,T> solution) |
void |
SearchIntensification.getInfo(Solution<V,T> solution,
Map<String,String> info) |
void |
SearchIntensification.getInfo(Solution<V,T> solution,
Map<String,String> info,
Collection<V> variables) |
void |
SearchIntensification.solutionUpdated(Solution<V,T> solution) |
Modifier and Type | Field and Description |
---|---|
protected Solution<V,T> |
BacktrackNeighbourSelection.iSolution |
Modifier and Type | Method and Description |
---|---|
void |
RoundRobinNeighbourSelection.changeSelection(Solution<V,T> solution)
Change selection
|
int |
BacktrackNeighbourSelection.BackTrackNeighbour.compareTo(Solution<V,T> solution)
Compare two neighbours
|
Neighbour<V,T> |
BacktrackNeighbourSelection.selectNeighbour(Solution<V,T> solution)
Select neighbour.
|
Neighbour<V,T> |
NeighbourSelection.selectNeighbour(Solution<V,T> solution)
select a neighbour of a given solution
|
Neighbour<V,T> |
RoundRobinNeighbourSelection.selectNeighbour(Solution<V,T> solution)
Select neighbour.
|
Neighbour<V,T> |
StandardNeighbourSelection.selectNeighbour(Solution<V,T> solution)
Select neighbour.
|
Neighbour<V,T> |
BacktrackNeighbourSelection.selectNeighbour(Solution<V,T> solution,
V variable)
Select neighbour -- starts from the provided variable.
|
T |
GeneralValueSelection.selectValue(Solution<V,T> solution,
V selectedVariable)
Value selection
|
T |
StandardNeighbourSelection.selectValue(Solution<V,T> solution,
V variable)
Use the provided value selection criterion to select a value to the
selected variable
|
T |
ValueSelection.selectValue(Solution<V,T> solution,
V selectedVariable)
Value selection
|
V |
GeneralVariableSelection.selectVariable(Solution<V,T> solution)
Variable selection
|
V |
StandardNeighbourSelection.selectVariable(Solution<V,T> solution)
Use the provided variable selection criterion to select a variable
|
V |
VariableSelection.selectVariable(Solution<V,T> solution)
Variable selection
|
Modifier and Type | Method and Description |
---|---|
void |
SolutionListener.bestCleared(Solution<V,T> solution)
Called by the solution when method
clearBest() is
called. |
void |
SolutionListener.bestRestored(Solution<V,T> solution)
Called by the solution when method
restoreBest() is
called. |
void |
SolutionListener.bestSaved(Solution<V,T> solution)
Called by the solution when method
saveBest() is called. |
void |
SolutionListener.getInfo(Solution<V,T> solution,
Map<String,String> info)
Called by the solution when it is asked to produce info table, see
getInfo() . |
void |
SolutionListener.getInfo(Solution<V,T> solution,
Map<String,String> info,
Collection<V> variables)
Called by the solution when it is asked to produce info table, see
getInfo() . |
boolean |
GeneralSolutionComparator.isBetterThanBestSolution(Solution<V,T> currentSolution) |
boolean |
MPPSolutionComparator.isBetterThanBestSolution(Solution<V,T> currentSolution) |
boolean |
SolutionComparator.isBetterThanBestSolution(Solution<V,T> currentSolution)
Compares two solutions.
|
void |
SolutionListener.solutionUpdated(Solution<V,T> solution)
Called by the solution when it is updated, see
update(double) . |
Modifier and Type | Field and Description |
---|---|
protected Solution<V,T> |
Solver.iCurrentSolution
current solution
|
protected Solution<V,T> |
Solver.iLastSolution
last solution (after IFS Solver finishes)
|
Modifier and Type | Method and Description |
---|---|
Solution<V,T> |
Solver.currentSolution()
Current solution (during the search)
|
Solution<V,T> |
Solver.lastSolution()
Last solution (when solver finishes)
|
Modifier and Type | Method and Description |
---|---|
void |
Solver.setInitalSolution(Solution<V,T> solution)
Sets initial solution
|
Modifier and Type | Method and Description |
---|---|
boolean |
GeneralTerminationCondition.canContinue(Solution<V,T> currentSolution) |
boolean |
MPPTerminationCondition.canContinue(Solution<V,T> currentSolution) |
boolean |
TerminationCondition.canContinue(Solution<V,T> currentSolution)
Returns true when the solver can continue with the next iteration
|
Modifier and Type | Method and Description |
---|---|
static Solution<Request,Enrollment> |
Test.batchSectioning(DataProperties cfg)
Batch sectioning test
|
Solution<Request,Enrollment> |
StudentSctBBTest.getSolution()
Compute and return the sectioning solution.
|
protected Solution<Request,Enrollment> |
StudentSectioningSaver.getSolution()
Solution to be saved
|
static Solution<Request,Enrollment> |
Test.onlineSectioning(DataProperties cfg)
Online sectioning test
|
static Solution<Request,Enrollment> |
Test.solveModel(StudentSectioningModel model,
DataProperties cfg)
Solve the student sectioning problem using IFS solver
|
Modifier and Type | Method and Description |
---|---|
void |
Test.TestSolutionListener.bestCleared(Solution<Request,Enrollment> solution) |
void |
Test.TestSolutionListener.bestRestored(Solution<Request,Enrollment> solution) |
void |
Test.TestSolutionListener.bestSaved(Solution<Request,Enrollment> solution) |
void |
Test.TestSolutionListener.getInfo(Solution<Request,Enrollment> solution,
Map<String,String> info) |
void |
Test.TestSolutionListener.getInfo(Solution<Request,Enrollment> solution,
Map<String,String> info,
Collection<Request> variables) |
static void |
Test.printInfo(Solution<Request,Enrollment> solution,
boolean computeTables,
boolean computeSectInfos,
boolean runChecks)
Print some information about the solution
|
static void |
Test.saveInfoToXML(Solution<Request,Enrollment> solution,
HashMap<String,String> extra,
File file)
Save solution info as XML
|
void |
Test.TestSolutionListener.solutionUpdated(Solution<Request,Enrollment> solution) |
Modifier and Type | Method and Description |
---|---|
void |
StudentSctNeighbourSelection.changeSelection(Solution<Request,Enrollment> solution) |
protected RouletteWheelSelection<Request> |
RouletteWheelRequestSelection.getRoulette(Solution<Request,Enrollment> solution)
Populate roulette wheel selection, if null or empty.
|
Neighbour<Request,Enrollment> |
TwoPhaseStudentSctNeighbourSelection.RestoreDummyStudents.selectNeighbour(Solution<Request,Enrollment> solution)
Return all (removed) dummy students into the problem
|
Enrollment |
EnrollmentSelection.selectValue(Solution<Request,Enrollment> solution,
Request selectedVariable)
Value selection
|
Request |
RouletteWheelRequestSelection.selectVariable(Solution<Request,Enrollment> solution)
Variable selection.
|
Modifier and Type | Method and Description |
---|---|
Neighbour<Request,Enrollment> |
PriorityConstructionSelection.branchAndBound(Solution<Request,Enrollment> solution)
Find best solution for the next student using
BranchBoundSelection . |
protected void |
PriorityConstructionSelection.nextCycle(Solution<Request,Enrollment> solution)
Increment cycle
|
Neighbour<Request,Enrollment> |
BacktrackSelection.selectNeighbour(Solution<Request,Enrollment> solution) |
Neighbour<Request,Enrollment> |
BranchBoundSelection.selectNeighbour(Solution<Request,Enrollment> solution)
Select neighbour.
|
Neighbour<Request,Enrollment> |
PriorityConstructionSelection.selectNeighbour(Solution<Request,Enrollment> solution)
Select neighbor.
|
Neighbour<Request,Enrollment> |
RandomUnassignmentSelection.selectNeighbour(Solution<Request,Enrollment> solution)
With the given probabilty, a student is randomly selected to be
unassigned.
|
Neighbour<Request,Enrollment> |
ResectionIncompleteStudentsSelection.selectNeighbour(Solution<Request,Enrollment> solution)
Select neighbour.
|
Neighbour<Request,Enrollment> |
ResectionUnassignedStudentsSelection.selectNeighbour(Solution<Request,Enrollment> solution)
Select neighbour.
|
Neighbour<Request,Enrollment> |
RndUnProblStudSelection.selectNeighbour(Solution<Request,Enrollment> solution)
With the given probabilty, a problematic student is randomly selected to
be unassigned.
|
Neighbour<Request,Enrollment> |
StandardSelection.selectNeighbour(Solution<Request,Enrollment> solution)
Employ the provided
VariableSelection and ValueSelection
and return the selected value as SimpleNeighbour . |
Neighbour<Request,Enrollment> |
SwapStudentSelection.selectNeighbour(Solution<Request,Enrollment> solution)
For each student that does not have a complete schedule, try to find a
request and a student that can be moved out of an enrollment so that the
selected student can be assigned to the selected request.
|
Modifier and Type | Method and Description |
---|---|
boolean |
EqualStudentWeights.isBetterThanBestSolution(Solution<Request,Enrollment> currentSolution) |
boolean |
OriginalStudentWeights.isBetterThanBestSolution(Solution<Request,Enrollment> currentSolution) |
boolean |
PriorityStudentWeights.isBetterThanBestSolution(Solution<Request,Enrollment> currentSolution) |