public class BacktrackSelection extends Object implements NeighbourSelection<Request,Enrollment>, InfoProvider<Request,Enrollment>, SolverListener<Request,Enrollment>
RandomizedBacktrackNeighbourSelection is being used.
| Modifier and Type | Class and Description |
|---|---|
static class |
BacktrackSelection.RequestComparator |
| Modifier and Type | Field and Description |
|---|---|
protected StudentFilter |
iFilter |
protected boolean |
iIncludeAssignedRequests |
protected long |
iMaxIterations |
protected long |
iNbrIterations |
protected long |
iNbrNoSolution |
protected long |
iNbrTimeoutReached |
protected RandomizedBacktrackNeighbourSelection |
iRBtNSel |
protected BacktrackSelection.RequestComparator |
iRequestComparator |
protected LinkedList<Request> |
iRequests |
protected long |
iTotalTime |
| Constructor and Description |
|---|
BacktrackSelection(DataProperties properties) |
| Modifier and Type | Method and Description |
|---|---|
void |
addRequest(Request request) |
StudentFilter |
getFilter()
Only consider students meeting the given filter.
|
void |
getInfo(Assignment<Request,Enrollment> assignment,
Map<String,String> info)
Adds some information into the table with information about the solution
|
void |
getInfo(Assignment<Request,Enrollment> assignment,
Map<String,String> info,
Collection<Request> variables)
Adds some information into the table with information about the solution,
only consider variables from the given set
|
void |
init(Solver<Request,Enrollment> solver)
Criterion initialization
|
void |
init(Solver<Request,Enrollment> solver,
String name) |
void |
neighbourFailed(Assignment<Request,Enrollment> assignment,
long iteration,
Neighbour<Request,Enrollment> neighbour)
Called when
ParallelSolver failed to assign the given neighbour |
boolean |
neighbourSelected(Assignment<Request,Enrollment> assignment,
long iteration,
Neighbour<Request,Enrollment> neighbour)
A neighbour was selected
|
protected Request |
nextRequest() |
Neighbour<Request,Enrollment> |
selectNeighbour(Solution<Request,Enrollment> solution)
select a neighbour of a given solution
|
boolean |
valueSelected(Assignment<Request,Enrollment> assignment,
long iteration,
Request variable,
Enrollment value)
A value was selected
|
boolean |
variableSelected(Assignment<Request,Enrollment> assignment,
long iteration,
Request variable)
A variable was selected
|
BacktrackSelection |
withFilter(StudentFilter filter)
Only consider students meeting the given filter.
|
protected RandomizedBacktrackNeighbourSelection iRBtNSel
protected LinkedList<Request> iRequests
protected boolean iIncludeAssignedRequests
protected long iNbrIterations
protected long iMaxIterations
protected long iTotalTime
protected long iNbrTimeoutReached
protected long iNbrNoSolution
protected StudentFilter iFilter
protected BacktrackSelection.RequestComparator iRequestComparator
public BacktrackSelection(DataProperties properties)
public void init(Solver<Request,Enrollment> solver, String name)
public void init(Solver<Request,Enrollment> solver)
NeighbourSelectioninit in interface NeighbourSelection<Request,Enrollment>solver - current solverprotected Request nextRequest()
public void addRequest(Request request)
public Neighbour<Request,Enrollment> selectNeighbour(Solution<Request,Enrollment> solution)
NeighbourSelectionselectNeighbour in interface NeighbourSelection<Request,Enrollment>solution - given solutionpublic void getInfo(Assignment<Request,Enrollment> assignment, Map<String,String> info)
InfoProvidergetInfo in interface InfoProvider<Request,Enrollment>assignment - current assignmentinfo - info tablepublic void getInfo(Assignment<Request,Enrollment> assignment, Map<String,String> info, Collection<Request> variables)
InfoProvidergetInfo in interface InfoProvider<Request,Enrollment>assignment - current assignmentinfo - info tablevariables - sub-problempublic StudentFilter getFilter()
public BacktrackSelection withFilter(StudentFilter filter)
public boolean variableSelected(Assignment<Request,Enrollment> assignment, long iteration, Request variable)
SolverListenervariableSelected in interface SolverListener<Request,Enrollment>assignment - current assignmentiteration - current iterationvariable - selected variablepublic boolean valueSelected(Assignment<Request,Enrollment> assignment, long iteration, Request variable, Enrollment value)
SolverListenervalueSelected in interface SolverListener<Request,Enrollment>assignment - current assignmentiteration - current iterationvariable - selected variablevalue - selected variablepublic boolean neighbourSelected(Assignment<Request,Enrollment> assignment, long iteration, Neighbour<Request,Enrollment> neighbour)
SolverListenerneighbourSelected in interface SolverListener<Request,Enrollment>assignment - current assignmentiteration - current iterationneighbour - neighbourpublic void neighbourFailed(Assignment<Request,Enrollment> assignment, long iteration, Neighbour<Request,Enrollment> neighbour)
SolverListenerParallelSolver failed to assign the given neighbourneighbourFailed in interface SolverListener<Request,Enrollment>assignment - current assignmentiteration - current iterationneighbour - neighbour