public class DistanceConflict extends ExtensionWithContext<Request,Enrollment,DistanceConflict.DistanceConflictContext> implements ModelListener<Request,Enrollment>, CanInheritContext<Request,Enrollment,DistanceConflict.DistanceConflictContext>
DistanceMetric for more details.TimeLocation,
| Modifier and Type | Class and Description |
|---|---|
static class |
DistanceConflict.Conflict
A representation of a distance conflict
|
class |
DistanceConflict.DistanceConflictContext |
| Modifier and Type | Field and Description |
|---|---|
static boolean |
sDebug
Debug flag
|
sMaxSize| Constructor and Description |
|---|
DistanceConflict(DistanceMetric metrics,
DataProperties properties)
Alternative constructor (for online student sectioning)
|
DistanceConflict(Solver<Request,Enrollment> solver,
DataProperties properties)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
void |
afterAssigned(Assignment<Request,Enrollment> assignment,
long iteration,
Enrollment value)
Called after a value is assigned to a variable.
|
void |
afterUnassigned(Assignment<Request,Enrollment> assignment,
long iteration,
Enrollment value)
Called after a value is unassigned from a variable.
|
Set<DistanceConflict.Conflict> |
allConflicts(Assignment<Request,Enrollment> assignment,
Enrollment enrollment)
The set of all conflicts (
DistanceConflict.Conflict objects) of the given
enrollment and other enrollments that are assignmed to the same student. |
void |
beforeAssigned(Assignment<Request,Enrollment> assignment,
long iteration,
Enrollment value)
Called before a value is assigned to a variable.
|
void |
checkAllConflicts(Assignment<Request,Enrollment> assignment)
Checks the counter counting all conflicts
|
Set<DistanceConflict.Conflict> |
computeAllConflicts(Assignment<Request,Enrollment> assignment)
Compute a set of all distance conflicts (
DistanceConflict.Conflict objects). |
Set<DistanceConflict.Conflict> |
conflicts(Enrollment e1)
Return a set of distance conflicts (
DistanceConflict.Conflict objects) of a
(course) enrollment. |
Set<DistanceConflict.Conflict> |
conflicts(Enrollment e1,
Enrollment e2)
Return a set of distance conflicts (
DistanceConflict.Conflict objects) between
given (course) enrollments. |
int |
countTotalNrConflicts(Assignment<Request,Enrollment> assignment)
Compute the actual number of all distance conflicts.
|
DistanceConflict.DistanceConflictContext |
createAssignmentContext(Assignment<Request,Enrollment> assignment)
Create a new assignment context for the given assignment.
|
Set<DistanceConflict.Conflict> |
getAllConflicts(Assignment<Request,Enrollment> assignment)
Return a set of all distance conflicts (
DistanceConflict.Conflict objects). |
protected int |
getDistanceInMinutes(Placement p1,
Placement p2) |
protected int |
getDistanceInMinutes(RoomLocation r1,
RoomLocation r2) |
DistanceMetric |
getDistanceMetric() |
int |
getTotalNrConflicts(Assignment<Request,Enrollment> assignment)
Actual number of all distance conflicts
|
int |
getTotalNrShortConflicts(Assignment<Request,Enrollment> assignment)
Actual number of all distance conflicts of students that need short distances
|
boolean |
inConflict(Student student,
Section s1,
Section s2)
Return true if the given two sections are in distance conflict.
|
DistanceConflict.DistanceConflictContext |
inheritAssignmentContext(Assignment<Request,Enrollment> assignment,
DistanceConflict.DistanceConflictContext parentContext)
Create a new assignment context for the given assignment.
|
int |
nrConflicts(Enrollment e1)
Return number of distance conflict of a (course) enrollment.
|
int |
nrConflicts(Enrollment e1,
Enrollment e2)
Return number of distance conflicts that are between two enrollments.
|
String |
toString() |
getAssignmentContextReference, getContext, getContext, init, setAssignmentContextReference, unregisterbeforeUnassigned, constraintAdded, constraintRemoved, getModel, getProperties, getSolver, isRegistered, register, variableAdded, variableRemovedclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitbeforeUnassigned, constraintAdded, constraintRemoved, init, variableAdded, variableRemovedpublic static boolean sDebug
public DistanceConflict(Solver<Request,Enrollment> solver, DataProperties properties)
StudentSectioningModel.setDistanceConflict(DistanceConflict) to
set the this instance to the model.solver - constraint solverproperties - configurationpublic DistanceConflict(DistanceMetric metrics, DataProperties properties)
metrics - distance metricsproperties - configurationpublic DistanceMetric getDistanceMetric()
protected int getDistanceInMinutes(RoomLocation r1, RoomLocation r2)
protected int getDistanceInMinutes(Placement p1, Placement p2)
public boolean inConflict(Student student, Section s1, Section s2)
student - a students1 - a sections2 - a sectionpublic int nrConflicts(Enrollment e1)
e1 - an enrollmentpublic int nrConflicts(Enrollment e1, Enrollment e2)
e1 - an enrollmente2 - an enrollmentpublic Set<DistanceConflict.Conflict> conflicts(Enrollment e1)
DistanceConflict.Conflict objects) of a
(course) enrollment.e1 - an enrollmentpublic Set<DistanceConflict.Conflict> conflicts(Enrollment e1, Enrollment e2)
DistanceConflict.Conflict objects) between
given (course) enrollments.e1 - an enrollmente2 - an enrollmentpublic Set<DistanceConflict.Conflict> allConflicts(Assignment<Request,Enrollment> assignment, Enrollment enrollment)
DistanceConflict.Conflict objects) of the given
enrollment and other enrollments that are assignmed to the same student.assignment - current assignmentenrollment - given enrollmentpublic void checkAllConflicts(Assignment<Request,Enrollment> assignment)
assignment - current assignmentpublic int getTotalNrConflicts(Assignment<Request,Enrollment> assignment)
assignment - current assignmentpublic int getTotalNrShortConflicts(Assignment<Request,Enrollment> assignment)
assignment - current assignmentpublic int countTotalNrConflicts(Assignment<Request,Enrollment> assignment)
getTotalNrConflicts(Assignment).assignment - current assignmentpublic Set<DistanceConflict.Conflict> computeAllConflicts(Assignment<Request,Enrollment> assignment)
DistanceConflict.Conflict objects).assignment - current assignmentpublic Set<DistanceConflict.Conflict> getAllConflicts(Assignment<Request,Enrollment> assignment)
DistanceConflict.Conflict objects).assignment - current assignmentpublic void beforeAssigned(Assignment<Request,Enrollment> assignment, long iteration, Enrollment value)
beforeAssigned in interface ModelListener<Request,Enrollment>beforeAssigned in class Extension<Request,Enrollment>assignment - current assignmentiteration - current iterationvalue - value to be assignedpublic void afterAssigned(Assignment<Request,Enrollment> assignment, long iteration, Enrollment value)
afterAssigned in interface ModelListener<Request,Enrollment>afterAssigned in class Extension<Request,Enrollment>assignment - current assignmentiteration - current iterationvalue - value to be assignedpublic void afterUnassigned(Assignment<Request,Enrollment> assignment, long iteration, Enrollment value)
afterUnassigned in interface ModelListener<Request,Enrollment>afterUnassigned in class Extension<Request,Enrollment>assignment - current assignmentiteration - current iterationvalue - value to be unassignedpublic DistanceConflict.DistanceConflictContext createAssignmentContext(Assignment<Request,Enrollment> assignment)
HasAssignmentContextcreateAssignmentContext in interface HasAssignmentContext<Request,Enrollment,DistanceConflict.DistanceConflictContext>assignment - an assignment for which there needs to be an assignment contextpublic DistanceConflict.DistanceConflictContext inheritAssignmentContext(Assignment<Request,Enrollment> assignment, DistanceConflict.DistanceConflictContext parentContext)
CanInheritContextinheritAssignmentContext in interface CanInheritContext<Request,Enrollment,DistanceConflict.DistanceConflictContext>assignment - an assignment for which there needs to be an assignment contextparentContext - context of the parent assignment