public class SctModel extends Object
Modifier and Type | Field and Description |
---|---|
static double |
sEps |
Constructor and Description |
---|
SctModel(TimetableModel model,
Assignment<Lecture,Placement> assignment)
Constructor
|
Modifier and Type | Method and Description |
---|---|
void |
assign(org.cpsolver.coursett.sectioning.SctModel.SctSolution solution)
Assign given solution
|
org.cpsolver.coursett.sectioning.SctModel.SctSolution |
computeSolution()
Compute best possible enrollment of students into the given offering
|
void |
computeSolution(org.cpsolver.coursett.sectioning.SctModel.SctSolution solution,
int index,
SctEnrollment[] enrollments,
Map<Long,Double> limits,
Map<Long,Map<Long,org.cpsolver.coursett.sectioning.SctModel.Match>> match,
double totalConflicts,
long t0)
Compute best possible enrollment of students into the given offering
|
org.cpsolver.coursett.sectioning.SctModel.SctSolution |
currentSolution() |
protected void |
decJenrl(Assignment<Lecture,Placement> assignment,
Student student,
Lecture l1,
Lecture l2)
Decrement
JenrlConstraint between the given two classes by the given student |
Assignment<Lecture,Placement> |
getAssignment()
Current assignment
|
List<Configuration> |
getConfigurations()
All configuration of the selected offering
|
Long |
getOfferingId()
Selected offering id
|
List<StudentConflict> |
getStudentConflictCriteria()
List of student conflict criteria
|
Map<Long,Set<Lecture>> |
getSubparts(Configuration configuration)
List of scheduling subparts and their classes of the given configuration
|
TimetableModel |
getTimetableModel()
Course timetabling model
|
protected double |
group(SctEnrollment[] enrollments,
int index,
Map<Long,Double> limits,
Map<Long,Map<Long,org.cpsolver.coursett.sectioning.SctModel.Match>> matches)
Group weight of the given enrollments (up until the given index, computing bound for students above the index)
|
protected void |
incJenrl(Assignment<Lecture,Placement> assignment,
Student student,
Lecture l1,
Lecture l2)
Increment
JenrlConstraint between the given two classes by the given student |
boolean |
isTimeOutReached()
Was time out reached while
computeSolution() was called? |
void |
setConfiguration(Configuration config)
Select an offering for the model
|
void |
unassign()
Unassign all previous enrollments into the given offering
|
public static double sEps
public SctModel(TimetableModel model, Assignment<Lecture,Placement> assignment)
model
- course timetabling modelassignment
- current assignmentpublic List<StudentConflict> getStudentConflictCriteria()
public List<Configuration> getConfigurations()
public void setConfiguration(Configuration config)
public Map<Long,Set<Lecture>> getSubparts(Configuration configuration)
public Long getOfferingId()
public TimetableModel getTimetableModel()
public Assignment<Lecture,Placement> getAssignment()
protected double group(SctEnrollment[] enrollments, int index, Map<Long,Double> limits, Map<Long,Map<Long,org.cpsolver.coursett.sectioning.SctModel.Match>> matches)
public void computeSolution(org.cpsolver.coursett.sectioning.SctModel.SctSolution solution, int index, SctEnrollment[] enrollments, Map<Long,Double> limits, Map<Long,Map<Long,org.cpsolver.coursett.sectioning.SctModel.Match>> match, double totalConflicts, long t0)
public org.cpsolver.coursett.sectioning.SctModel.SctSolution computeSolution()
public boolean isTimeOutReached()
computeSolution()
was called?public org.cpsolver.coursett.sectioning.SctModel.SctSolution currentSolution()
protected void decJenrl(Assignment<Lecture,Placement> assignment, Student student, Lecture l1, Lecture l2)
JenrlConstraint
between the given two classes by the given studentprotected void incJenrl(Assignment<Lecture,Placement> assignment, Student student, Lecture l1, Lecture l2)
JenrlConstraint
between the given two classes by the given studentpublic void unassign()
public void assign(org.cpsolver.coursett.sectioning.SctModel.SctSolution solution)