|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectnet.sf.cpsolver.studentsct.heuristics.selection.BranchBoundSelection
public class BranchBoundSelection
Section all students using incremental branch & bound (no unassignments). All
students are taken in a random order, for each student a branch & bound
algorithm is used to find his/her best schedule on top of all other existing
student schedules (no enrollment of a different student is unassigned).
Parameters:
| 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). |
| Nested Class Summary | |
|---|---|
static class |
BranchBoundSelection.BranchBoundNeighbour
Branch & bound neighbour -- a schedule of a student |
class |
BranchBoundSelection.Selection
Branch & bound selection for a student |
| Field Summary | |
|---|---|
protected DistanceConflict |
iDistanceConflict
|
protected double |
iDistConfWeight
|
protected boolean |
iMinimizePenalty
|
protected StudentSectioningModel |
iModel
|
protected StudentOrder |
iOrder
|
protected Iterator<Student> |
iStudentsEnumeration
|
protected int |
iTimeout
|
protected TimeOverlapsCounter |
iTimeOverlaps
|
static boolean |
sDebug
|
| Constructor Summary | |
|---|---|
BranchBoundSelection(DataProperties properties)
Constructor |
|
| Method Summary | |
|---|---|
BranchBoundSelection.Selection |
getSelection(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 |
Neighbour<Request,Enrollment> |
selectNeighbour(Solution<Request,Enrollment> solution)
Select neighbour. |
void |
setModel(StudentSectioningModel model)
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected int iTimeout
protected DistanceConflict iDistanceConflict
protected TimeOverlapsCounter iTimeOverlaps
protected StudentSectioningModel iModel
public static boolean sDebug
protected Iterator<Student> iStudentsEnumeration
protected boolean iMinimizePenalty
protected StudentOrder iOrder
protected double iDistConfWeight
| Constructor Detail |
|---|
public BranchBoundSelection(DataProperties properties)
properties - configuration| Method Detail |
|---|
public void init(Solver<Request,Enrollment> solver,
String name)
public void setModel(StudentSectioningModel model)
public void init(Solver<Request,Enrollment> solver)
NeighbourSelection
init in interface NeighbourSelection<Request,Enrollment>public Neighbour<Request,Enrollment> selectNeighbour(Solution<Request,Enrollment> solution)
selectNeighbour in interface NeighbourSelection<Request,Enrollment>solution - given solution
public BranchBoundSelection.Selection getSelection(Student student)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||