public class PropLargeGAC2001 extends PropLargeCSP<LargeRelation>
Modifier and Type | Field and Description |
---|---|
protected int[] |
blocks |
protected int[] |
offsets |
protected int |
size |
protected IStateInt[] |
supports |
protected ValidityChecker |
valcheck |
relation
aCause, ACTIVE, constraint, LOGGER, NEW, PASSIVE, priority, reactToFineEvt, REIFIED, solver, vars
Constructor and Description |
---|
PropLargeGAC2001(IntVar[] vs,
Tuples tuples) |
Modifier and Type | Method and Description |
---|---|
void |
duplicate(Solver solver,
gnu.trove.map.hash.THashMap<Object,Object> identitymap)
Duplicate the current propagator.
|
void |
filter(int idx) |
int[] |
getFirstValidTupleFrom(int[] t,
int indexVar)
t is a consistent tuple not valid anymore, we need to go to the first valid tuple
greater than t before searching among the valid tuples
|
int[] |
getUBport(int indexVar,
int value) |
int[] |
lastSupport(int indexVar,
int value) |
void |
propagate(int evtmask)
Call the main filtering algorithm to apply to the
Domain of the Variable objects. |
void |
propagate(int idxVarInProp,
int mask)
Incremental filtering algorithm defined within the
Propagator , called whenever the variable
of index idxVarInProp has changed. |
void |
reviseVar(int indexVar,
boolean fromScratch) |
int[] |
seekNextSupport(int indexVar,
int val,
boolean fromscratch)
seek a new support for (variable, value), the smallest tuple greater than currentSupport
the search is made through valid tuples until and allowed one is found.
|
void |
setSupport(int indexVar,
int value,
int[] support) |
getRelation, isEntailed, toString
addVariable, advise, arity, compareTo, contradiction, decNbPendingEvt, defineIn, dynPriority, flushPendingEvt, forcePropagate, getConstraint, getId, getNbPendingEvt, getNbVars, getPriority, getPropagationConditions, getSolver, getVar, getVars, getVIndices, hashCode, incNbPendingEvt, isActive, isCompletelyInstantiated, isPassive, isReifiedAndSilent, isStateLess, reactToFineEvent, setActive, setPassive, setReifiedSilent, setReifiedTrue, setVIndices, why
protected IStateInt[] supports
protected int[] blocks
protected int size
protected int[] offsets
protected ValidityChecker valcheck
public void propagate(int evtmask) throws ContradictionException
Propagator
Domain
of the Variable
objects.
It considers the current state of this objects to remove some values from domains and/or instantiate some variables.
Calling this method is done from 2 (and only 2) steps:
propagate
in class Propagator<IntVar>
evtmask
- type of propagation event this
must consider.ContradictionException
- when a contradiction occurs, like domain wipe out or other incoherencies.public void propagate(int idxVarInProp, int mask) throws ContradictionException
Propagator
Propagator
, called whenever the variable
of index idxVarInProp has changed. This method calls a CUSTOM_PROPAGATION (coarse-grained) by default.
This method should be overridden if the argument reactToFineEvt
is set to true
in the constructor.
Otherwise, it executes propagate(PropagatorEventType.CUSTOM_PROPAGATION.getStrengthenedMask());
propagate
in class Propagator<IntVar>
idxVarInProp
- index of the variable var
in this
mask
- type of eventContradictionException
- if a contradiction occurspublic void reviseVar(int indexVar, boolean fromScratch) throws ContradictionException
ContradictionException
public void setSupport(int indexVar, int value, int[] support)
public int[] getUBport(int indexVar, int value)
public int[] lastSupport(int indexVar, int value)
public int[] seekNextSupport(int indexVar, int val, boolean fromscratch)
public int[] getFirstValidTupleFrom(int[] t, int indexVar)
public void filter(int idx) throws ContradictionException
ContradictionException
public void duplicate(Solver solver, gnu.trove.map.hash.THashMap<Object,Object> identitymap)
Propagator
duplicate
in class Propagator<IntVar>
solver
- the target solveridentitymap
- a map to ensure uniqueness of objectsCopyright © 2015. All rights reserved.