net.sf.cpsolver.studentsct.weights
Class OriginalStudentWeights

java.lang.Object
  extended by net.sf.cpsolver.studentsct.weights.OriginalStudentWeights
All Implemented Interfaces:
SolutionComparator<Request,Enrollment>, StudentWeights

public class OriginalStudentWeights
extends Object
implements StudentWeights

Original weighting that was used before this student weightings model was introduced

Version:
StudentSct 1.2 (Student Sectioning)
Copyright (C) 2007 - 2010 Tomas Muller
muller@unitime.org
http://muller.unitime.org

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not see http://www.gnu.org/licenses/.

Nested Class Summary
 
Nested classes/interfaces inherited from interface net.sf.cpsolver.studentsct.weights.StudentWeights
StudentWeights.Implementation
 
Constructor Summary
OriginalStudentWeights(DataProperties config)
           
 
Method Summary
 double getBound(Request request)
          Return lower bound for the given request
 double getDistanceConflictWeight(DistanceConflict.Conflict c)
          Return weight of a distance conflict
 double getTimeOverlapConflictWeight(Enrollment enrollment, TimeOverlapsCounter.Conflict timeOverlap)
          Return weight of a time overlapping conflict
 double getWeight(Enrollment enrollment)
          Return base weight of the given enrollment
 double getWeight(Enrollment enrollment, Set<DistanceConflict.Conflict> distanceConflicts, Set<TimeOverlapsCounter.Conflict> timeOverlappingConflicts)
          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()
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OriginalStudentWeights

public OriginalStudentWeights(DataProperties config)
Method Detail

normalizePenalty

public double normalizePenalty(double penalty)
Normalized enrollment penalty -- to be used in Enrollment.toDouble()


getWeight

public double getWeight(Request request)

getBound

public double getBound(Request request)
Description copied from interface: StudentWeights
Return lower bound for the given request

Specified by:
getBound in interface StudentWeights
Parameters:
request - given request
Returns:
weight of the best value

getWeight

public double getWeight(Enrollment enrollment)
Description copied from interface: StudentWeights
Return base weight of the given enrollment

Specified by:
getWeight in interface StudentWeights
Parameters:
enrollment - given enrollment
Returns:
weight (higher weight means better value)

getWeight

public double getWeight(Enrollment enrollment,
                        Set<DistanceConflict.Conflict> distanceConflicts,
                        Set<TimeOverlapsCounter.Conflict> timeOverlappingConflicts)
Description copied from interface: StudentWeights
Return weight of the given enrollment

Specified by:
getWeight in interface StudentWeights
Parameters:
enrollment - given enrollment
distanceConflicts - distance conflicts
timeOverlappingConflicts - time overlapping conflicts
Returns:
weight (higher weight means better value)

getDistanceConflictWeight

public double getDistanceConflictWeight(DistanceConflict.Conflict c)
Description copied from interface: StudentWeights
Return weight of a distance conflict

Specified by:
getDistanceConflictWeight in interface StudentWeights

getTimeOverlapConflictWeight

public double getTimeOverlapConflictWeight(Enrollment enrollment,
                                           TimeOverlapsCounter.Conflict timeOverlap)
Description copied from interface: StudentWeights
Return weight of a time overlapping conflict

Specified by:
getTimeOverlapConflictWeight in interface StudentWeights

isBetterThanBestSolution

public boolean isBetterThanBestSolution(Solution<Request,Enrollment> currentSolution)
Description copied from interface: SolutionComparator
Compares two solutions. Returns true if the given solution is better than its best ever found solution (see Solution.saveBest() and Solution.restoreBest()).

Specified by:
isBetterThanBestSolution in interface SolutionComparator<Request,Enrollment>
Parameters:
currentSolution - given solution
Returns:
true if the given solution is better than the best ever found solution

main

public static void main(String[] args)
Test case -- run to see the weights for a few courses


isFreeTimeAllowOverlaps

public boolean isFreeTimeAllowOverlaps()
Description copied from interface: StudentWeights
Return true if free time requests allow overlaps

Specified by:
isFreeTimeAllowOverlaps in interface StudentWeights


Copyright © 2014 UniTime LLC. All Rights Reserved.