public class BranchBoundSelection extends Object implements NeighbourSelection<Request,Enrollment>
Parameter | Type | Comment |
---|---|---|
Neighbour.BranchAndBoundTimeout | Integer |
Timeout for each neighbour selection (in milliseconds). |
Neighbour.BranchAndBoundMinimizePenalty | Boolean |
If true, section penalties (instead of section values) are minimized: overall penalty is minimized together with the maximization of the number of assigned requests and minimization of distance conflicts -- this variant is to better mimic the case when students can choose their sections (section times). |
Modifier and Type | Class and Description |
---|---|
static class |
BranchBoundSelection.BranchBoundNeighbour
Branch & bound neighbour -- a schedule of a student
|
class |
BranchBoundSelection.Selection
Branch & bound selection for a student
|
Modifier and Type | Field and Description |
---|---|
protected boolean |
iBranchWhenSelectedHasNoConflict |
protected DistanceConflict |
iDistanceConflict |
protected double |
iDistConfWeight |
protected boolean |
iMinimizePenalty |
protected StudentSectioningModel |
iModel |
protected StudentOrder |
iOrder |
protected StudentQuality |
iStudentQuality |
protected Queue<Student> |
iStudents |
protected int |
iTimeout |
protected TimeOverlapsCounter |
iTimeOverlaps |
static boolean |
sDebug |
Constructor and Description |
---|
BranchBoundSelection(DataProperties properties)
Constructor
|
Modifier and Type | Method and Description |
---|---|
void |
addStudent(Student student) |
BranchBoundSelection.Selection |
getSelection(Assignment<Request,Enrollment> assignment,
Student student)
Branch & bound selection for a student
|
void |
init(Solver<Request,Enrollment> solver)
Criterion initialization
|
void |
init(Solver<Request,Enrollment> solver,
String name)
Initialize
|
protected Student |
nextStudent() |
Neighbour<Request,Enrollment> |
selectNeighbour(Solution<Request,Enrollment> solution)
Select neighbour.
|
void |
setModel(StudentSectioningModel model) |
protected int iTimeout
protected DistanceConflict iDistanceConflict
protected TimeOverlapsCounter iTimeOverlaps
protected StudentQuality iStudentQuality
protected StudentSectioningModel iModel
public static boolean sDebug
protected boolean iMinimizePenalty
protected StudentOrder iOrder
protected double iDistConfWeight
protected boolean iBranchWhenSelectedHasNoConflict
public BranchBoundSelection(DataProperties properties)
properties
- configurationpublic void init(Solver<Request,Enrollment> solver, String name)
solver
- current solvername
- phase namepublic void setModel(StudentSectioningModel model)
public void init(Solver<Request,Enrollment> solver)
NeighbourSelection
init
in interface NeighbourSelection<Request,Enrollment>
solver
- current solverprotected Student nextStudent()
public void addStudent(Student student)
public Neighbour<Request,Enrollment> selectNeighbour(Solution<Request,Enrollment> solution)
selectNeighbour
in interface NeighbourSelection<Request,Enrollment>
solution
- given solutionpublic BranchBoundSelection.Selection getSelection(Assignment<Request,Enrollment> assignment, Student student)
assignment
- current assignmentstudent
- selected studentCopyright © 2019 UniTime LLC. All Rights Reserved.