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 DistanceConflict |
iDistanceConflict |
protected double |
iDistConfWeight |
protected boolean |
iMinimizePenalty |
protected StudentSectioningModel |
iModel |
protected StudentOrder |
iOrder |
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 StudentSectioningModel iModel
public static boolean sDebug
protected boolean iMinimizePenalty
protected StudentOrder iOrder
protected double iDistConfWeight
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 © 2016 UniTime LLC. All Rights Reserved.