public interface StudentWeights extends SolutionComparator<Request,Enrollment>
Modifier and Type | Interface and Description |
---|---|
static class |
StudentWeights.Implementation
Registered implementation
|
Modifier and Type | Method and Description |
---|---|
double |
getBound(Request request)
Return lower bound for the given request
|
double |
getDistanceConflictWeight(Assignment<Request,Enrollment> assignment,
DistanceConflict.Conflict distanceConflict)
Return weight of a distance conflict
|
double |
getStudentQualityConflictWeight(Assignment<Request,Enrollment> assignment,
Enrollment enrollment,
StudentQuality.Conflict conflict)
Return weight of a student quality conflict
|
double |
getTimeOverlapConflictWeight(Assignment<Request,Enrollment> assignment,
Enrollment enrollment,
TimeOverlapsCounter.Conflict timeOverlap)
Return weight of a time overlapping conflict
|
double |
getWeight(Assignment<Request,Enrollment> assignment,
Enrollment enrollment)
Return base weight of the given enrollment
|
double |
getWeight(Assignment<Request,Enrollment> assignment,
Enrollment enrollment,
Set<DistanceConflict.Conflict> distanceConflicts,
Set<TimeOverlapsCounter.Conflict> timeOverlappingConflicts)
Return weight of the given enrollment
|
double |
getWeight(Assignment<Request,Enrollment> assignment,
Enrollment enrollment,
Set<StudentQuality.Conflict> qualityConflicts)
Return weight of the given enrollment
|
boolean |
isFreeTimeAllowOverlaps()
Return true if free time requests allow overlaps
|
isBetterThanBestSolution
double getBound(Request request)
request
- given requestdouble getWeight(Assignment<Request,Enrollment> assignment, Enrollment enrollment)
assignment
- current assignmentenrollment
- given enrollmentdouble getWeight(Assignment<Request,Enrollment> assignment, Enrollment enrollment, Set<DistanceConflict.Conflict> distanceConflicts, Set<TimeOverlapsCounter.Conflict> timeOverlappingConflicts)
assignment
- current assignmentenrollment
- given enrollmentdistanceConflicts
- distance conflictstimeOverlappingConflicts
- time overlapping conflictsdouble getWeight(Assignment<Request,Enrollment> assignment, Enrollment enrollment, Set<StudentQuality.Conflict> qualityConflicts)
assignment
- current assignmentenrollment
- given enrollmentqualityConflicts
- student quality conflictsdouble getDistanceConflictWeight(Assignment<Request,Enrollment> assignment, DistanceConflict.Conflict distanceConflict)
assignment
- current assignmentdistanceConflict
- distance conflictdouble getTimeOverlapConflictWeight(Assignment<Request,Enrollment> assignment, Enrollment enrollment, TimeOverlapsCounter.Conflict timeOverlap)
assignment
- current assignmentenrollment
- enrollment in questiontimeOverlap
- time overlapping conflictdouble getStudentQualityConflictWeight(Assignment<Request,Enrollment> assignment, Enrollment enrollment, StudentQuality.Conflict conflict)
assignment
- current assignmentenrollment
- enrollment in questionconflict
- student quality conflictboolean isFreeTimeAllowOverlaps()