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)
NeighbourSelection
init
in interface NeighbourSelection<Request,Enrollment>
solver
- current solverprotected Request nextRequest()
public void addRequest(Request request)
public Neighbour<Request,Enrollment> selectNeighbour(Solution<Request,Enrollment> solution)
NeighbourSelection
selectNeighbour
in interface NeighbourSelection<Request,Enrollment>
solution
- given solutionpublic void getInfo(Assignment<Request,Enrollment> assignment, Map<String,String> info)
InfoProvider
getInfo
in interface InfoProvider<Request,Enrollment>
assignment
- current assignmentinfo
- info tablepublic void getInfo(Assignment<Request,Enrollment> assignment, Map<String,String> info, Collection<Request> variables)
InfoProvider
getInfo
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)
SolverListener
variableSelected
in interface SolverListener<Request,Enrollment>
assignment
- current assignmentiteration
- current iterationvariable
- selected variablepublic boolean valueSelected(Assignment<Request,Enrollment> assignment, long iteration, Request variable, Enrollment value)
SolverListener
valueSelected
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)
SolverListener
neighbourSelected
in interface SolverListener<Request,Enrollment>
assignment
- current assignmentiteration
- current iterationneighbour
- neighbourpublic void neighbourFailed(Assignment<Request,Enrollment> assignment, long iteration, Neighbour<Request,Enrollment> neighbour)
SolverListener
ParallelSolver
failed to assign the given neighbourneighbourFailed
in interface SolverListener<Request,Enrollment>
assignment
- current assignmentiteration
- current iterationneighbour
- neighbour