public class OriginalStudentWeights extends Object implements StudentWeights
StudentWeights.Implementation| Modifier and Type | Field and Description |
|---|---|
protected double[] |
iQalityWeights |
| Constructor and Description |
|---|
OriginalStudentWeights(DataProperties config) |
| 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 c)
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
|
double |
getWeight(Request request) |
boolean |
isBetterThanBestSolution(Solution<Request,Enrollment> currentSolution)
Compares two solutions.
|
boolean |
isFreeTimeAllowOverlaps()
Return true if free time requests allow overlaps
|
static void |
main(String[] args)
Test case -- run to see the weights for a few courses
|
double |
normalizePenalty(double penalty)
Normalized enrollment penalty -- to be used in
Enrollment.toDouble(Assignment) |
protected double[] iQalityWeights
public OriginalStudentWeights(DataProperties config)
public double normalizePenalty(double penalty)
Enrollment.toDouble(Assignment)penalty - given penaltypublic double getBound(Request request)
StudentWeightsgetBound in interface StudentWeightsrequest - given requestpublic double getWeight(Assignment<Request,Enrollment> assignment, Enrollment enrollment)
StudentWeightsgetWeight in interface StudentWeightsassignment - current assignmentenrollment - given enrollmentpublic double getWeight(Assignment<Request,Enrollment> assignment, Enrollment enrollment, Set<DistanceConflict.Conflict> distanceConflicts, Set<TimeOverlapsCounter.Conflict> timeOverlappingConflicts)
StudentWeightsgetWeight in interface StudentWeightsassignment - current assignmentenrollment - given enrollmentdistanceConflicts - distance conflictstimeOverlappingConflicts - time overlapping conflictspublic double getDistanceConflictWeight(Assignment<Request,Enrollment> assignment, DistanceConflict.Conflict c)
StudentWeightsgetDistanceConflictWeight in interface StudentWeightsassignment - current assignmentc - distance conflictpublic double getTimeOverlapConflictWeight(Assignment<Request,Enrollment> assignment, Enrollment enrollment, TimeOverlapsCounter.Conflict timeOverlap)
StudentWeightsgetTimeOverlapConflictWeight in interface StudentWeightsassignment - current assignmentenrollment - enrollment in questiontimeOverlap - time overlapping conflictpublic boolean isBetterThanBestSolution(Solution<Request,Enrollment> currentSolution)
SolutionComparatorSolution.saveBest() and
Solution.restoreBest()).isBetterThanBestSolution in interface SolutionComparator<Request,Enrollment>currentSolution - given solutionpublic static void main(String[] args)
args - program argumentspublic boolean isFreeTimeAllowOverlaps()
StudentWeightsisFreeTimeAllowOverlaps in interface StudentWeightspublic double getWeight(Assignment<Request,Enrollment> assignment, Enrollment enrollment, Set<StudentQuality.Conflict> qualityConflicts)
StudentWeightsgetWeight in interface StudentWeightsassignment - current assignmentenrollment - given enrollmentqualityConflicts - student quality conflictspublic double getStudentQualityConflictWeight(Assignment<Request,Enrollment> assignment, Enrollment enrollment, StudentQuality.Conflict conflict)
StudentWeightsgetStudentQualityConflictWeight in interface StudentWeightsassignment - current assignmentenrollment - enrollment in questionconflict - student quality conflict