|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectnet.sf.cpsolver.exam.split.ExamSplitMoves
public class ExamSplitMoves
Experimental neighbor selection that allows an exam to be split
into two if it decreases the number of student conflicts.
An examination split is improving (and is considered) if the weighted
number of student conflicts that will be removed by the split is bigger
than the weight of the splitter criterion AbstractCriterion.getWeight()
.
Nested Class Summary | |
---|---|
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 Summary | |
---|---|
ExamSplitMoves(DataProperties properties)
Constructor |
Method Summary | |
---|---|
ExamSplitMoves.ExamSplitNeighbour |
bestSplit(Exam exam)
Find a best split for the given exam. |
Set<ExamRoomPlacement> |
findBestAvailableRooms(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). |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public ExamSplitMoves(DataProperties properties)
Method Detail |
---|
public void init(Solver<Exam,ExamPlacement> solver)
init
in interface NeighbourSelection<Exam,ExamPlacement>
public Set<ExamRoomPlacement> findBestAvailableRooms(Exam exam, ExamPeriodPlacement period, int examSize)
exam
- 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(Exam exam)
exam
- an exam to be split
public Neighbour<Exam,ExamPlacement> selectNeighbour(Solution<Exam,ExamPlacement> solution)
selectNeighbour
in interface NeighbourSelection<Exam,ExamPlacement>
solution
- given solution
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |