public class ExamSplitMoves extends Object implements NeighbourSelection<Exam,ExamPlacement>
AbstractCriterion.getWeight()
.
Modifier and Type | Class and Description |
---|---|
protected class |
ExamSplitMoves.ExamMergeNeighbour
Merge two exams that have been split before back into one.
|
protected class |
ExamSplitMoves.ExamShuffleNeighbour
Shuffle students between the parent exam and all of its children.
|
protected class |
ExamSplitMoves.ExamSplitNeighbour
Split an exam into two
|
Constructor and Description |
---|
ExamSplitMoves(DataProperties properties)
Constructor
|
Modifier and Type | Method and Description |
---|---|
ExamSplitMoves.ExamSplitNeighbour |
bestSplit(Assignment<Exam,ExamPlacement> assignment,
Exam exam)
Find a best split for the given exam.
|
Set<ExamRoomPlacement> |
findBestAvailableRooms(Assignment<Exam,ExamPlacement> assignment,
Exam exam,
ExamPeriodPlacement period,
int examSize)
Find best available rooms for a new exam (that is to be split from the given one),
if is is assigned into the given examination period.
|
void |
init(Solver<Exam,ExamPlacement> solver)
Initialization
|
Neighbour<Exam,ExamPlacement> |
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).
|
public ExamSplitMoves(DataProperties properties)
properties
- solver configurationpublic void init(Solver<Exam,ExamPlacement> solver)
init
in interface NeighbourSelection<Exam,ExamPlacement>
solver
- current solverpublic Set<ExamRoomPlacement> findBestAvailableRooms(Assignment<Exam,ExamPlacement> assignment, Exam exam, ExamPeriodPlacement period, int examSize)
assignment
- current assignmentexam
- an exam to be splitperiod
- a period to be assigned to the new examexamSize
- size of the new exam (i.e., the number of students that will be moved from the given exam to the new one)public ExamSplitMoves.ExamSplitNeighbour bestSplit(Assignment<Exam,ExamPlacement> assignment, Exam exam)
assignment
- current assignmentexam
- an exam to be splitpublic Neighbour<Exam,ExamPlacement> selectNeighbour(Solution<Exam,ExamPlacement> solution)
selectNeighbour
in interface NeighbourSelection<Exam,ExamPlacement>
solution
- given solution