V - VariableT - Valuepublic abstract class LazyNeighbour<V extends Variable<V,T>,T extends Value<V,T>> extends Object implements Neighbour<V,T>
LazyNeighbour.LazyNeighbourAcceptanceCriterion.| Modifier and Type | Class and Description |
|---|---|
static interface |
LazyNeighbour.LazyNeighbourAcceptanceCriterion<V extends Variable<V,T>,T extends Value<V,T>>
Neighbour acceptance criterion interface (to be implemented
by search strategies that are using
LazyNeighbour. |
| Constructor and Description |
|---|
LazyNeighbour() |
| Modifier and Type | Method and Description |
|---|---|
void |
assign(Assignment<V,T> assignment,
long iteration)
Assign neighbour, check given acceptance criterion, and undo
assignment if the change is not accepted.
|
protected abstract void |
doAssign(Assignment<V,T> assignment,
long iteration)
Perform assignment
|
LazyNeighbour.LazyNeighbourAcceptanceCriterion<V,T> |
getAcceptanceCriterion()
Return acceptance criterion (to be used by a search strategy before the
neighbour is accepted, so that it can be undone if desired)
|
abstract Model<V,T> |
getModel()
Return problem model (it is needed in order to be able to get
overall solution value before and after the assignment of this neighbour)
|
void |
setAcceptanceCriterion(LazyNeighbour.LazyNeighbourAcceptanceCriterion<V,T> criterion)
Set acceptance criterion (to be used by a search strategy before the
neighbour is accepted, so that it can be undone if desired)
|
protected abstract void |
undoAssign(Assignment<V,T> assignment,
long iteration)
Undo assignment
|
double |
value(Assignment<V,T> assignment)
Return -1 (neighbour is always accepted).
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitassignmentspublic LazyNeighbour()
public void setAcceptanceCriterion(LazyNeighbour.LazyNeighbourAcceptanceCriterion<V,T> criterion)
criterion - acceptance criterionpublic LazyNeighbour.LazyNeighbourAcceptanceCriterion<V,T> getAcceptanceCriterion()
public void assign(Assignment<V,T> assignment, long iteration)
public double value(Assignment<V,T> assignment)
LazyNeighbour.LazyNeighbourAcceptanceCriterion.protected abstract void doAssign(Assignment<V,T> assignment, long iteration)
assignment - current assignmentiteration - current iterationprotected abstract void undoAssign(Assignment<V,T> assignment, long iteration)
assignment - current assignmentiteration - current iteration