Package | Description |
---|---|
net.sf.cpsolver.coursett |
University Course Timetabling.
|
net.sf.cpsolver.coursett.constraint |
University Course Timetabling: Constraints.
|
net.sf.cpsolver.coursett.criteria |
University Course Timetabling: Criteria.
|
net.sf.cpsolver.coursett.criteria.additional |
University Course Timetabling: Additional (Experimental) Criteria.
|
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.model |
University Course Timetabling: Model.
|
net.sf.cpsolver.coursett.neighbourhoods |
University Course Timetabling: Various Neighbourhoods.
|
net.sf.cpsolver.studentsct |
Student Sectioning Solver.
|
net.sf.cpsolver.studentsct.extension |
Student Sectioning: Various Extensions.
|
net.sf.cpsolver.studentsct.model |
Student Sectioning: Model.
|
Modifier and Type | Method and Description |
---|---|
protected Solution<Lecture,Placement> |
TimetableSaver.getSolution()
Solution to be saved
|
Solver<Lecture,Placement> |
TimetableSaver.getSolver()
Solver
|
Solver<Lecture,Placement> |
TimetableXMLLoader.getSolver() |
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 |
Test.init(Solver<Lecture,Placement> solver)
Solver initialization
|
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 |
TimetableXMLLoader.setSolver(Solver<Lecture,Placement> solver) |
void |
Test.solutionUpdated(Solution<Lecture,Placement> solution) |
Constructor and Description |
---|
TimetableSaver(Solver<Lecture,Placement> solver)
Constructor
|
TimetableXMLSaver(Solver<Lecture,Placement> solver) |
Modifier and Type | Method and Description |
---|---|
Placement |
SpreadConstraint.getAdept(Placement placement,
int[][] nrCourses,
Set<Placement> conflicts) |
Placement |
InstructorConstraint.getPlacement(int slot,
int day) |
Placement |
RoomConstraint.getPlacement(int slot,
int day) |
Placement[] |
InstructorConstraint.getResourceOfWeek(int startDay) |
Placement[] |
RoomConstraint.getResourceOfWeek(int startDay) |
Modifier and Type | Method and Description |
---|---|
protected Criterion<Lecture,Placement> |
DepartmentSpreadConstraint.getCriterion() |
protected Criterion<Lecture,Placement> |
SpreadConstraint.getCriterion() |
List<Placement> |
FlexibleConstraint.Block.getPlacements() |
List<Placement> |
InstructorConstraint.getPlacements(int slot,
BitSet weekCode) |
List<Placement> |
InstructorConstraint.getPlacements(int slot,
Placement placement) |
protected Set<Placement> |
FlexibleConstraint.getRelevantPlacements(int dayCode,
Set<Placement> conflicts,
Placement value,
HashMap<Lecture,Placement> assignments,
BitSet week)
Returns placements of variables assigned to this constraint with assignment which satisfy following conditions:
They must be taught in the day included in dayCode.
|
List<Placement> |
InstructorConstraint.getResource(int slot)
Lookup table getResource()[slot] -> lecture using this resource placed in
the given time slot (null if empty)
|
List<Placement> |
RoomConstraint.getResource(int slot)
Lookup table getResource()[slot] -> lecture using this room placed in the
given time slot (null if empty)
|
List<Placement> |
InstructorConstraint.getUnavailabilities() |
Modifier and Type | Method and Description |
---|---|
void |
ClassLimitConstraint.addParentAdepts(Collection<Placement> adepts,
Lecture parent,
Placement value,
Set<Placement> conflicts) |
boolean |
FlexibleConstraint.Block.addPlacement(Placement placement)
Adds placement to the block and updates block's attributes.
|
boolean |
JenrlConstraint.areStudentConflictsDistance(Placement value) |
void |
DiscouragedRoomConstraint.assigned(long iteration,
Placement value) |
void |
FlexibleConstraint.assigned(long iteration,
Placement value) |
void |
GroupConstraint.assigned(long iteration,
Placement value) |
void |
InstructorConstraint.assigned(long iteration,
Placement placement) |
void |
JenrlConstraint.assigned(long iteration,
Placement value) |
void |
MaxBreaksFlexibleConstraint.assigned(long iteration,
Placement value) |
void |
MinimizeNumberOfUsedGroupsOfTime.assigned(long iteration,
Placement placement) |
void |
MinimizeNumberOfUsedRoomsConstraint.assigned(long iteration,
Placement placement) |
void |
RoomConstraint.assigned(long iteration,
Placement placement) |
void |
SpreadConstraint.assigned(long iteration,
Placement placement) |
int |
FlexibleConstraint.PlacementTimeComparator.compare(Placement p1,
Placement p2) |
void |
ClassLimitConstraint.computeAdepts(Collection<Placement> adepts,
List<Lecture> variables,
Placement value,
Set<Placement> conflicts) |
void |
BreakFlexibleConstraint.computeConflicts(Placement value,
Set<Placement> conflicts) |
void |
ClassLimitConstraint.computeConflicts(Placement value,
Set<Placement> conflicts) |
void |
DiscouragedRoomConstraint.computeConflicts(Placement value,
Set<Placement> conflicts) |
abstract void |
FlexibleConstraint.computeConflicts(Placement value,
Set<Placement> conflicts) |
void |
GroupConstraint.computeConflicts(Placement value,
Set<Placement> conflicts) |
void |
IgnoreStudentConflictsConstraint.computeConflicts(Placement value,
Set<Placement> conflicts) |
void |
InstructorConstraint.computeConflicts(Placement placement,
Set<Placement> conflicts) |
void |
JenrlConstraint.computeConflicts(Placement value,
Set<Placement> conflicts) |
void |
MaxBlockFlexibleConstraint.computeConflicts(Placement value,
Set<Placement> conflicts) |
void |
MaxBreaksFlexibleConstraint.computeConflicts(Placement value,
Set<Placement> conflicts) |
void |
MinimizeNumberOfUsedGroupsOfTime.computeConflicts(Placement placement,
Set<Placement> conflicts) |
void |
MinimizeNumberOfUsedRoomsConstraint.computeConflicts(Placement placement,
Set<Placement> conflicts) |
void |
RoomConstraint.computeConflicts(Placement placement,
Set<Placement> conflicts) |
void |
SpreadConstraint.computeConflicts(Placement placement,
Set<Placement> conflicts) |
int |
ClassLimitConstraint.currentClassLimit(Placement value,
Set<Placement> conflicts) |
boolean |
GroupConstraint.forwardCheck(Placement value,
Set<GroupConstraint> ignore,
int depth) |
void |
GroupConstraint.forwardCheck(Placement value,
Set<Placement> conflicts,
Set<GroupConstraint> ignore,
int depth) |
Placement |
SpreadConstraint.getAdept(Placement placement,
int[][] nrCourses,
Set<Placement> conflicts) |
List<FlexibleConstraint.Block> |
MaxBlockFlexibleConstraint.getBlocks(int dayCode,
Set<Placement> conflicts,
Placement value,
HashMap<Lecture,Placement> assignments,
BitSet week) |
List<FlexibleConstraint.Block> |
MaxBreaksFlexibleConstraint.getBlocks(int dayCode,
Set<Placement> conflicts,
Placement value,
HashMap<Lecture,Placement> assignments,
BitSet week) |
List<FlexibleConstraint.Block> |
BreakFlexibleConstraint.getBreakBlocks(int dayCode,
Set<Placement> conflicts,
Placement value,
HashMap<Lecture,Placement> assignments,
BitSet week)
Creates a list of consecutive blocks with back-to-back classes.
|
int |
GroupConstraint.getCurrentPreference(Placement placement)
Current constraint preference change (if given placement is assigned)
|
int |
InstructorConstraint.getDistancePreference(Placement p1,
Placement p2)
Back-to-back preference of two placements (3 means prohibited)
|
int |
SpreadConstraint.getMaxPenalty(Placement placement) |
int |
MinimizeNumberOfUsedGroupsOfTime.getOverLimit(Placement placement) |
int |
MinimizeNumberOfUsedRoomsConstraint.getOverLimit(Placement placement) |
int |
SpreadConstraint.getPenalty(Placement placement)
Department balancing penalty of the given placement
|
List<Placement> |
InstructorConstraint.getPlacements(int slot,
Placement placement) |
int |
InstructorConstraint.getPreference(Placement value)
Back-to-back preference of the given placement
|
int |
InstructorConstraint.getPreferenceCombination(Placement value) |
protected Set<Placement> |
FlexibleConstraint.getRelevantPlacements(int dayCode,
Set<Placement> conflicts,
Placement value,
HashMap<Lecture,Placement> assignments,
BitSet week)
Returns placements of variables assigned to this constraint with assignment which satisfy following conditions:
They must be taught in the day included in dayCode.
|
boolean |
ClassLimitConstraint.inConflict(Placement value) |
boolean |
DiscouragedRoomConstraint.inConflict(Placement value) |
boolean |
GroupConstraint.inConflict(Placement value) |
boolean |
InstructorConstraint.inConflict(Placement placement) |
boolean |
JenrlConstraint.inConflict(Placement value) |
boolean |
MinimizeNumberOfUsedGroupsOfTime.inConflict(Placement placement) |
boolean |
MinimizeNumberOfUsedRoomsConstraint.inConflict(Placement placeement) |
boolean |
RoomConstraint.inConflict(Placement placement) |
boolean |
SpreadConstraint.inConflict(Placement placement) |
boolean |
InstructorConstraint.isAvailable(Lecture lecture,
Placement placement) |
boolean |
GroupConstraint.isChildrenNotOverlap(Lecture lec1,
Placement plc1,
Lecture lec2,
Placement plc2) |
boolean |
DiscouragedRoomConstraint.isConsistent(Placement value1,
Placement value2) |
boolean |
FlexibleConstraint.isConsistent(Placement value1,
Placement value2) |
boolean |
GroupConstraint.isConsistent(Placement value1,
Placement value2) |
boolean |
InstructorConstraint.isConsistent(Placement p1,
Placement p2) |
boolean |
JenrlConstraint.isConsistent(Placement value1,
Placement value2) |
boolean |
MinimizeNumberOfUsedGroupsOfTime.isConsistent(Placement value1,
Placement value2) |
boolean |
MinimizeNumberOfUsedRoomsConstraint.isConsistent(Placement value1,
Placement value2) |
boolean |
RoomConstraint.isConsistent(Placement p1,
Placement p2) |
boolean |
SpreadConstraint.isConsistent(Placement p1,
Placement p2) |
static boolean |
JenrlConstraint.isInConflict(Placement p1,
Placement p2,
DistanceMetric m)
Returns true if the given placements are overlapping or they are
back-to-back and too far for students.
|
boolean |
DiscouragedRoomConstraint.isOverLimit(Placement value) |
boolean |
MinimizeNumberOfUsedGroupsOfTime.isOverLimit(Placement placement) |
boolean |
MinimizeNumberOfUsedRoomsConstraint.isOverLimit(Placement placement) |
boolean |
GroupConstraint.PairCheck.isSatisfied(GroupConstraint gc,
Placement plc1,
Placement plc2)
Check whether the constraint is satisfied for the given two assignments (required / preferred case)
|
boolean |
GroupConstraint.ConstraintType.isSatisfied(GroupConstraint gc,
Placement plc1,
Placement plc2)
True if a required or preferred constraint is satisfied between a pair of placements
|
boolean |
GroupConstraint.isSatisfiedPair(Placement plc1,
Placement plc2) |
boolean |
GroupConstraint.PairCheck.isViolated(GroupConstraint gc,
Placement plc1,
Placement plc2)
Check whether the constraint is satisfied for the given two assignments (prohibited / discouraged case)
|
boolean |
GroupConstraint.ConstraintType.isViolated(GroupConstraint gc,
Placement plc1,
Placement plc2)
True if a prohibited or discouraged constraint is satisfied between a pair of placements
|
long |
JenrlConstraint.jenrl(Lecture variable,
Placement value)
Number of joined enrollments if the given value is assigned to the given
variable
|
void |
InstructorConstraint.setNotAvailable(Placement placement) |
void |
RoomConstraint.setNotAvailable(Placement placement) |
void |
DiscouragedRoomConstraint.unassigned(long iteration,
Placement value) |
void |
FlexibleConstraint.unassigned(long iteration,
Placement value) |
void |
GroupConstraint.unassigned(long iteration,
Placement value) |
void |
InstructorConstraint.unassigned(long iteration,
Placement placement) |
void |
JenrlConstraint.unassigned(long iteration,
Placement value) |
void |
MinimizeNumberOfUsedGroupsOfTime.unassigned(long iteration,
Placement placement) |
void |
MinimizeNumberOfUsedRoomsConstraint.unassigned(long iteration,
Placement placement) |
void |
RoomConstraint.unassigned(long iteration,
Placement placement) |
void |
SpreadConstraint.unassigned(long iteration,
Placement placement) |
void |
DiscouragedRoomConstraint.weaken(Placement value) |
void |
JenrlConstraint.weaken(Placement value) |
void |
MaxBreaksFlexibleConstraint.weaken(Placement value) |
void |
MinimizeNumberOfUsedGroupsOfTime.weaken(Placement value) |
void |
MinimizeNumberOfUsedRoomsConstraint.weaken(Placement value) |
void |
SpreadConstraint.weaken(Placement value) |
Modifier and Type | Method and Description |
---|---|
void |
ClassLimitConstraint.addParentAdepts(Collection<Placement> adepts,
Lecture parent,
Placement value,
Set<Placement> conflicts) |
void |
ClassLimitConstraint.addParentAdepts(Collection<Placement> adepts,
Lecture parent,
Placement value,
Set<Placement> conflicts) |
void |
ClassLimitConstraint.computeAdepts(Collection<Placement> adepts,
List<Lecture> variables,
Placement value,
Set<Placement> conflicts) |
void |
ClassLimitConstraint.computeAdepts(Collection<Placement> adepts,
List<Lecture> variables,
Placement value,
Set<Placement> conflicts) |
void |
BreakFlexibleConstraint.computeConflicts(Placement value,
Set<Placement> conflicts) |
void |
ClassLimitConstraint.computeConflicts(Placement value,
Set<Placement> conflicts) |
void |
DiscouragedRoomConstraint.computeConflicts(Placement value,
Set<Placement> conflicts) |
abstract void |
FlexibleConstraint.computeConflicts(Placement value,
Set<Placement> conflicts) |
void |
GroupConstraint.computeConflicts(Placement value,
Set<Placement> conflicts) |
void |
IgnoreStudentConflictsConstraint.computeConflicts(Placement value,
Set<Placement> conflicts) |
void |
InstructorConstraint.computeConflicts(Placement placement,
Set<Placement> conflicts) |
void |
JenrlConstraint.computeConflicts(Placement value,
Set<Placement> conflicts) |
void |
MaxBlockFlexibleConstraint.computeConflicts(Placement value,
Set<Placement> conflicts) |
void |
MaxBreaksFlexibleConstraint.computeConflicts(Placement value,
Set<Placement> conflicts) |
void |
MinimizeNumberOfUsedGroupsOfTime.computeConflicts(Placement placement,
Set<Placement> conflicts) |
void |
MinimizeNumberOfUsedRoomsConstraint.computeConflicts(Placement placement,
Set<Placement> conflicts) |
void |
RoomConstraint.computeConflicts(Placement placement,
Set<Placement> conflicts) |
void |
SpreadConstraint.computeConflicts(Placement placement,
Set<Placement> conflicts) |
int |
ClassLimitConstraint.currentClassLimit(Placement value,
Set<Placement> conflicts) |
void |
GroupConstraint.forwardCheck(Placement value,
Set<Placement> conflicts,
Set<GroupConstraint> ignore,
int depth) |
Placement |
SpreadConstraint.getAdept(Placement placement,
int[][] nrCourses,
Set<Placement> conflicts) |
List<FlexibleConstraint.Block> |
MaxBlockFlexibleConstraint.getBlocks(int dayCode,
Set<Placement> conflicts,
Placement value,
HashMap<Lecture,Placement> assignments,
BitSet week) |
List<FlexibleConstraint.Block> |
MaxBlockFlexibleConstraint.getBlocks(int dayCode,
Set<Placement> conflicts,
Placement value,
HashMap<Lecture,Placement> assignments,
BitSet week) |
List<FlexibleConstraint.Block> |
MaxBreaksFlexibleConstraint.getBlocks(int dayCode,
Set<Placement> conflicts,
Placement value,
HashMap<Lecture,Placement> assignments,
BitSet week) |
List<FlexibleConstraint.Block> |
MaxBreaksFlexibleConstraint.getBlocks(int dayCode,
Set<Placement> conflicts,
Placement value,
HashMap<Lecture,Placement> assignments,
BitSet week) |
List<FlexibleConstraint.Block> |
BreakFlexibleConstraint.getBreakBlocks(int dayCode,
Set<Placement> conflicts,
Placement value,
HashMap<Lecture,Placement> assignments,
BitSet week)
Creates a list of consecutive blocks with back-to-back classes.
|
List<FlexibleConstraint.Block> |
BreakFlexibleConstraint.getBreakBlocks(int dayCode,
Set<Placement> conflicts,
Placement value,
HashMap<Lecture,Placement> assignments,
BitSet week)
Creates a list of consecutive blocks with back-to-back classes.
|
double |
FlexibleConstraint.getCurrentPreference(Set<Placement> conflicts,
HashMap<Lecture,Placement> assignments)
Return the current preference of the flexible constraint, considering conflicts and new assignments.
|
double |
FlexibleConstraint.getCurrentPreference(Set<Placement> conflicts,
HashMap<Lecture,Placement> assignments)
Return the current preference of the flexible constraint, considering conflicts and new assignments.
|
double |
BreakFlexibleConstraint.getNrViolations(Set<Placement> conflicts,
HashMap<Lecture,Placement> assignments) |
double |
BreakFlexibleConstraint.getNrViolations(Set<Placement> conflicts,
HashMap<Lecture,Placement> assignments) |
abstract double |
FlexibleConstraint.getNrViolations(Set<Placement> conflicts,
HashMap<Lecture,Placement> assignments) |
abstract double |
FlexibleConstraint.getNrViolations(Set<Placement> conflicts,
HashMap<Lecture,Placement> assignments) |
double |
MaxBlockFlexibleConstraint.getNrViolations(Set<Placement> conflicts,
HashMap<Lecture,Placement> assignments) |
double |
MaxBlockFlexibleConstraint.getNrViolations(Set<Placement> conflicts,
HashMap<Lecture,Placement> assignments) |
double |
MaxBreaksFlexibleConstraint.getNrViolations(Set<Placement> conflicts,
HashMap<Lecture,Placement> assignments) |
double |
MaxBreaksFlexibleConstraint.getNrViolations(Set<Placement> conflicts,
HashMap<Lecture,Placement> assignments) |
protected Set<Placement> |
FlexibleConstraint.getRelevantPlacements(int dayCode,
Set<Placement> conflicts,
Placement value,
HashMap<Lecture,Placement> assignments,
BitSet week)
Returns placements of variables assigned to this constraint with assignment which satisfy following conditions:
They must be taught in the day included in dayCode.
|
protected Set<Placement> |
FlexibleConstraint.getRelevantPlacements(int dayCode,
Set<Placement> conflicts,
Placement value,
HashMap<Lecture,Placement> assignments,
BitSet week)
Returns placements of variables assigned to this constraint with assignment which satisfy following conditions:
They must be taught in the day included in dayCode.
|
protected List<FlexibleConstraint.Block> |
FlexibleConstraint.mergeToBlocks(List<Placement> sorted,
int maxBreakBetweenBTB)
Creates a list of blocks from a placements sorted by startSlot
|
void |
GroupConstraint.setModel(Model<Lecture,Placement> model) |
Modifier and Type | Method and Description |
---|---|
PerturbationsCounter<Lecture,Placement> |
Perturbations.getPerturbationsCounter() |
Modifier and Type | Method and Description |
---|---|
static boolean |
StudentConflict.applicable(Placement p1,
Placement p2) |
static boolean |
StudentConflict.committed(Placement p1,
Placement p2) |
protected static int |
BrokenTimePatterns.countUselessSlotsBrokenTimePatterns(RoomConstraint rc,
Placement placement)
Number of broken time patterns for this room
|
protected static int |
UselessHalfHours.countUselessSlotsHalfHours(RoomConstraint rc,
Placement placement)
Number of useless half hours for this room
|
static boolean |
StudentConflict.distance(DistanceMetric m,
Placement p1,
Placement p2) |
static long |
TooBigRooms.getDiscouragedRoomSize(Placement value) |
static long |
TooBigRooms.getStronglyDiscouragedRoomSize(Placement value) |
static int |
TooBigRooms.getTooBigRoomPreference(Placement value) |
double |
BackToBackInstructorPreferences.getValue(Placement value,
Set<Placement> conflicts) |
double |
BrokenTimePatterns.getValue(Placement value,
Set<Placement> conflicts) |
double |
DepartmentBalancingPenalty.getValue(Placement value,
Set<Placement> conflicts) |
double |
DistributionPreferences.getValue(Placement value,
Set<Placement> conflicts) |
double |
FlexibleConstraintCriterion.getValue(Placement value,
Set<Placement> conflicts) |
double |
Perturbations.getValue(Placement value,
Set<Placement> conflicts) |
double |
RoomPreferences.getValue(Placement value,
Set<Placement> conflicts) |
double |
RoomViolations.getValue(Placement value,
Set<Placement> conflicts) |
double |
SameSubpartBalancingPenalty.getValue(Placement value,
Set<Placement> conflicts) |
double |
StudentCommittedConflict.getValue(Placement value,
Set<Placement> conflicts) |
double |
StudentConflict.getValue(Placement value,
Set<Placement> conflicts) |
double |
TimePreferences.getValue(Placement value,
Set<Placement> conflicts) |
double |
TooBigRooms.getValue(Placement value,
Set<Placement> conflicts) |
static boolean |
StudentConflict.hard(Placement p1,
Placement p2) |
static boolean |
StudentConflict.ignore(Placement p1,
Placement p2) |
boolean |
StudentCommittedConflict.inConflict(Placement p1,
Placement p2) |
boolean |
StudentConflict.inConflict(Placement p1,
Placement p2) |
boolean |
StudentDistanceConflict.inConflict(Placement p1,
Placement p2) |
boolean |
StudentOverlapConflict.inConflict(Placement p1,
Placement p2) |
static boolean |
StudentConflict.overlaps(Placement p1,
Placement p2) |
protected int |
BackToBackInstructorPreferences.penalty(Placement value) |
protected double |
BrokenTimePatterns.penalty(Placement value) |
protected double |
BrokenTimePatterns.penalty(RoomConstraint rc,
Placement value) |
protected double |
UselessHalfHours.penalty(RoomConstraint rc,
Placement value) |
protected boolean |
RoomViolations.violation(Placement value) |
protected boolean |
TimeViolations.violation(Placement value) |
Modifier and Type | Method and Description |
---|---|
double |
BackToBackInstructorPreferences.getValue(Placement value,
Set<Placement> conflicts) |
double |
BrokenTimePatterns.getValue(Placement value,
Set<Placement> conflicts) |
double |
DepartmentBalancingPenalty.getValue(Placement value,
Set<Placement> conflicts) |
double |
DistributionPreferences.getValue(Placement value,
Set<Placement> conflicts) |
double |
FlexibleConstraintCriterion.getValue(Placement value,
Set<Placement> conflicts) |
double |
Perturbations.getValue(Placement value,
Set<Placement> conflicts) |
double |
RoomPreferences.getValue(Placement value,
Set<Placement> conflicts) |
double |
RoomViolations.getValue(Placement value,
Set<Placement> conflicts) |
double |
SameSubpartBalancingPenalty.getValue(Placement value,
Set<Placement> conflicts) |
double |
StudentCommittedConflict.getValue(Placement value,
Set<Placement> conflicts) |
double |
StudentConflict.getValue(Placement value,
Set<Placement> conflicts) |
double |
TimePreferences.getValue(Placement value,
Set<Placement> conflicts) |
double |
TooBigRooms.getValue(Placement value,
Set<Placement> conflicts) |
boolean |
FlexibleConstraintCriterion.init(Solver<Lecture,Placement> solver) |
boolean |
Perturbations.init(Solver<Lecture,Placement> solver) |
boolean |
StudentConflict.init(Solver<Lecture,Placement> solver) |
boolean |
TimetablingCriterion.init(Solver<Lecture,Placement> solver) |
Modifier and Type | Method and Description |
---|---|
void |
InstructorLunchBreak.afterAssigned(long iteration,
Placement value)
Update criterion after an assignment.
|
void |
InstructorLunchBreak.afterUnassigned(long iteration,
Placement value)
Update criterion after an unassignment
|
double |
IgnoredCommittedStudentConflict.countCommittedConflicts(Placement placement) |
int |
IgnoredCommittedStudentConflict.countCommittedConflicts(Student student,
Placement placement) |
double |
IgnoredCommittedStudentConflict.getValue(Placement value,
Set<Placement> conflicts) |
double |
InstructorLunchBreak.getValue(Placement value,
Set<Placement> conflicts) |
double |
RoomSizePenalty.getValue(Placement value,
Set<Placement> conflicts) |
double |
InstructorLunchBreak.getWeightedValue(Placement value,
Set<Placement> conflicts) |
boolean |
ImportantStudentConflict.important(Placement p1,
Placement p2) |
boolean |
IgnoredCommittedStudentConflict.inConflict(Placement p1,
Placement p2) |
boolean |
IgnoredStudentConflict.inConflict(Placement p1,
Placement p2) |
boolean |
ImportantStudentConflict.inConflict(Placement p1,
Placement p2) |
boolean |
InstructorStudentConflict.inConflict(Placement p1,
Placement p2) |
boolean |
StudentLuchBreak.inConflict(Placement p1,
Placement p2) |
boolean |
InstructorStudentConflict.instructor(Placement p1,
Placement p2)
True if there is at least one student teaching one of the two placements and enrolled in the other.
|
boolean |
StudentLuchBreak.nolunch(Placement p1,
Placement p2) |
void |
InstructorLunchBreak.updateCriterion(InstructorConstraint instructorConstraint,
Placement placement)
Method checks or sets the CompactInfo of an InstructorConstraint.
|
void |
InstructorLunchBreak.updateLunchPenalty(InstructorConstraint constraint,
Placement p)
Method updates number of violations in days (Mo, Tue, Wed,..) considering
each week in the semester separately.
|
Modifier and Type | Method and Description |
---|---|
double |
IgnoredCommittedStudentConflict.getValue(Placement value,
Set<Placement> conflicts) |
double |
InstructorLunchBreak.getValue(Placement value,
Set<Placement> conflicts) |
double |
RoomSizePenalty.getValue(Placement value,
Set<Placement> conflicts) |
double |
InstructorLunchBreak.getWeightedValue(Placement value,
Set<Placement> conflicts) |
boolean |
InstructorLunchBreak.init(Solver<Lecture,Placement> solver) |
boolean |
RoomSizePenalty.init(Solver<Lecture,Placement> solver) |
boolean |
StudentLuchBreak.init(Solver<Lecture,Placement> solver) |
Modifier and Type | Field and Description |
---|---|
protected ConflictStatistics<Lecture,Placement> |
WeightedHardConflicts.iStat |
Modifier and Type | Method and Description |
---|---|
double |
AssignmentCount.getValue(Placement value,
Set<Placement> conflicts) |
double |
DeltaTimePreference.getValue(Placement value,
Set<Placement> conflicts) |
double |
HardConflicts.getValue(Placement value,
Set<Placement> conflicts) |
double |
PotentialHardConflicts.getValue(Placement value,
Set<Placement> conflicts) |
double |
WeightedHardConflicts.getValue(Placement value,
Set<Placement> conflicts) |
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) |
double |
AssignmentCount.getValue(Placement value,
Set<Placement> conflicts) |
double |
DeltaTimePreference.getValue(Placement value,
Set<Placement> conflicts) |
double |
HardConflicts.getValue(Placement value,
Set<Placement> conflicts) |
double |
PotentialHardConflicts.getValue(Placement value,
Set<Placement> conflicts) |
double |
WeightedHardConflicts.getValue(Placement value,
Set<Placement> conflicts) |
boolean |
DeltaTimePreference.init(Solver<Lecture,Placement> solver) |
boolean |
WeightedHardConflicts.init(Solver<Lecture,Placement> solver) |
void |
WeightedHardConflicts.solutionUpdated(Solution<Lecture,Placement> solution) |
Modifier and Type | Method and Description |
---|---|
Placement |
PlacementSelection.selectValue(Solution<Lecture,Placement> solution,
Lecture var) |
Modifier and Type | Method and Description |
---|---|
Neighbour<Lecture,Placement> |
NeighbourSelectionWithSuggestions.selectNeighbour(Solution<Lecture,Placement> solution) |
Neighbour<Lecture,Placement> |
NeighbourSelectionWithSuggestions.selectNeighbourWithSuggestions(Solution<Lecture,Placement> solution,
Lecture lecture,
int depth) |
Modifier and Type | Method and Description |
---|---|
boolean |
PlacementSelection.containsItselfSingletonOrCommited(TimetableModel model,
Set<Placement> values,
Placement selectedValue) |
Map<String,Double> |
UniversalPerturbationsCounter.getCompactInfo(TimetableModel model,
Placement assignedPlacement,
boolean includeZero,
boolean weighted) |
protected double |
UniversalPerturbationsCounter.getPenalty(Placement assignedPlacement,
Placement initialPlacement) |
Modifier and Type | Method and Description |
---|---|
int |
NeighbourSelectionWithSuggestions.SuggestionNeighbour.compareTo(Solution<Lecture,Placement> solution) |
boolean |
PlacementSelection.containsItselfSingletonOrCommited(TimetableModel model,
Set<Placement> values,
Placement selectedValue) |
double |
TimetableComparator.currentValue(Solution<Lecture,Placement> currentSolution)
Deprecated.
|
double |
TimetableComparator.getBest(Solution<Lecture,Placement> currentSolution)
Deprecated.
|
void |
LectureSelection.init(Solver<Lecture,Placement> solver) |
void |
NeighbourSelectionWithSuggestions.init(Solver<Lecture,Placement> solver) |
void |
PlacementSelection.init(Solver<Lecture,Placement> solver) |
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) |
Constructor and Description |
---|
NeighbourSelectionWithSuggestions(Solver<Lecture,Placement> solver) |
SuggestionNeighbour(Map<Lecture,Placement> resolvedLectures) |
Modifier and Type | Method and Description |
---|---|
List<Placement> |
Lecture.computeValues(boolean allowBreakHard)
Domain -- all combinations of room and time locations
|
Set<Placement> |
Student.conflictPlacements(Placement placement) |
Set<Placement> |
TimetableModel.conflictValuesSkipWeakeningConstraints(Placement value)
Returns the set of conflicting variables with this value, if it is
assigned to its variable.
|
Set<Placement> |
Student.getCommitedPlacements() |
Set<Constraint<Lecture,Placement>> |
Lecture.getWeakeningConstraints() |
List<Placement> |
Lecture.values()
All values
|
Modifier and Type | Method and Description |
---|---|
void |
Student.addCommitedPlacement(Placement placement) |
void |
OnFlySectioning.afterAssigned(long iteration,
Placement value)
FinalSectioning.resection(Lecture, boolean, boolean) is called
when given iteration number is greater than zero. |
void |
OnFlySectioning.afterUnassigned(long iteration,
Placement value) |
void |
OnFlySectioning.beforeAssigned(long iteration,
Placement value) |
void |
OnFlySectioning.beforeUnassigned(long iteration,
Placement value) |
boolean |
Placement.canShareRooms(Placement other) |
int |
Lecture.classLimit(Placement assignment,
Set<Placement> conflicts) |
Set<Placement> |
Student.conflictPlacements(Placement placement) |
Set<Student> |
Lecture.conflictStudents(Placement value)
List of students of this class in conflict with the given assignment
|
Set<Placement> |
TimetableModel.conflictValuesSkipWeakeningConstraints(Placement value)
Returns the set of conflicting variables with this value, if it is
assigned to its variable.
|
int |
Lecture.countCommittedStudentConflicts(Placement value) |
int |
Lecture.countCommittedStudentConflictsOfTheSameProblem(Placement value) |
int |
Student.countConflictPlacements(Placement placement) |
int |
Lecture.countDistanceStudentConflicts(Placement value) |
int |
Lecture.countDistanceStudentConflictsOfTheSameProblem(Placement value) |
int |
Lecture.countHardStudentConflicts(Placement value) |
int |
Lecture.countHardStudentConflictsOfTheSameProblem(Placement value) |
int |
Lecture.countStudentConflicts(Placement value)
Number of student conflicts caused by the given assignment of this
lecture
|
int |
Lecture.countStudentConflictsOfTheSameProblem(Placement value) |
int |
Lecture.getCommitedConflicts(Placement placement) |
static double |
Placement.getDistanceInMeters(DistanceMetric m,
Placement p1,
Placement p2)
Distance between two placements
|
static int |
Placement.getDistanceInMinutes(DistanceMetric m,
Placement p1,
Placement p2)
Distance between two placements
|
String |
Lecture.getNotValidReason(Placement placement) |
boolean |
Lecture.isValid(Placement placement) |
int |
Placement.nrDifferentBuildings(Placement placement) |
int |
Placement.nrDifferentRooms(Placement placement) |
boolean |
Placement.sameRooms(Placement placement) |
boolean |
Placement.sameTime(Placement placement) |
boolean |
Placement.shareRooms(Placement placement) |
Modifier and Type | Method and Description |
---|---|
void |
TimetableModel.addConstraint(Constraint<Lecture,Placement> constraint) |
void |
Lecture.addContstraint(Constraint<Lecture,Placement> constraint) |
int |
Lecture.classLimit(Placement assignment,
Set<Placement> conflicts) |
void |
OnFlySectioning.constraintAdded(Constraint<Lecture,Placement> constraint) |
void |
OnFlySectioning.constraintRemoved(Constraint<Lecture,Placement> constraint) |
boolean |
OnFlySectioning.init(Solver<Lecture,Placement> solver)
Initialization
|
void |
TimetableModel.removeConstraint(Constraint<Lecture,Placement> constraint) |
void |
Lecture.removeContstraint(Constraint<Lecture,Placement> constraint) |
Constructor and Description |
---|
Lecture(Long id,
Long solverGroupId,
Long schedulingSubpartId,
String name,
List<TimeLocation> timeLocations,
List<RoomLocation> roomLocations,
int nrRooms,
Placement initialPlacement,
int minClassLimit,
int maxClassLimit,
double room2limitRatio)
Constructor
|
Modifier and Type | Method and Description |
---|---|
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 |
---|---|
void |
RoomSwap.init(Solver<Lecture,Placement> solver) |
void |
TimeSwap.init(Solver<Lecture,Placement> solver) |
Double |
RoomSwap.resolve(Solution<Lecture,Placement> solution,
double total,
long startTime,
Map<Lecture,Placement> assignments,
List<Placement> conflicts,
int index) |
Double |
RoomSwap.resolve(Solution<Lecture,Placement> solution,
double total,
long startTime,
Map<Lecture,Placement> assignments,
List<Placement> conflicts,
int index) |
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) |
Double |
TimeSwap.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 Map<Long,Placement> |
StudentSectioningXMLLoader.loadTimetable(Element timetableRoot)
Load given timetable
|
Modifier and Type | Method and Description |
---|---|
protected Config |
StudentSectioningXMLLoader.loadConfig(Element configEl,
Offering offering,
Map<Long,Subpart> subpartTable,
Map<Long,Section> sectionTable,
Map<Long,Placement> timetable)
Load config
|
protected void |
StudentSectioningXMLLoader.loadOfferings(Element offeringsEl,
Map<Long,Offering> offeringTable,
Map<Long,Course> courseTable,
Map<Long,Placement> timetable)
Load offerings
|
protected Section |
StudentSectioningXMLLoader.loadSection(Element sectionEl,
Subpart subpart,
Map<Long,Section> sectionTable,
Map<Long,Placement> timetable)
Load section
|
protected Subpart |
StudentSectioningXMLLoader.loadSubpart(Element subpartEl,
Config config,
Map<Long,Subpart> subpartTable,
Map<Long,Section> sectionTable,
Map<Long,Placement> timetable)
Load subpart
|
Modifier and Type | Method and Description |
---|---|
protected int |
DistanceConflict.getDistanceInMinutes(Placement p1,
Placement p2) |
Modifier and Type | Method and Description |
---|---|
Placement |
Section.getPlacement()
Time/room placement of the section.
|
Modifier and Type | Method and Description |
---|---|
void |
Section.setPlacement(Placement placement)
Set time/room placement of the section.
|
Constructor and Description |
---|
Section(long id,
int limit,
String name,
Subpart subpart,
Placement placement,
String instructorIds,
String instructorNames,
Section parent)
Constructor
|