public class PropDistanceXYC extends Propagator<IntVar>
Modifier and Type | Field and Description |
---|---|
protected int |
cste |
protected IIntDeltaMonitor[] |
idms |
protected Operator |
operator |
protected org.chocosolver.solver.constraints.binary.PropDistanceXYC.RemProc |
remproc |
aCause, ACTIVE, constraint, LOGGER, NEW, PASSIVE, priority, reactToFineEvt, REIFIED, solver, vars
Constructor and Description |
---|
PropDistanceXYC(IntVar[] vars,
Operator operator,
int cste) |
Modifier and Type | Method and Description |
---|---|
void |
duplicate(Solver solver,
gnu.trove.map.hash.THashMap<Object,Object> identitymap)
Duplicate the current propagator.
|
void |
filterFromVarToVar(IntVar var1,
IntVar var2)
Initial propagation in case of EQ and enumerated domains
|
void |
filterGT()
In case of a GT
|
void |
filterGTonVar(IntVar v0,
IntVar v1)
In case of a GT, due to a modification on v0 domain
|
void |
filterLT()
In case of a LT
|
void |
filterLTonVar(IntVar v0,
IntVar v1)
In case of a LT, due to a modification on v0 domain
|
void |
filterNeq() |
void |
filterOnInf(IntVar v0,
IntVar v1)
In case of a EQ, due to a modification of the lower bound of v0
|
void |
filterOnInst(IntVar v,
int val)
In case of a EQ, due to the instantion to one variable to val
|
void |
filterOnSup(IntVar v0,
IntVar v1)
In case of a EQ, due to a modification of the upper bound of v0
|
int |
getPropagationConditions(int idx)
Return the specific mask indicating the variable events on which this
Propagator object can react. |
ESat |
isEntailed()
Check wether
this is entailed according to the current state of its internal structure. |
void |
propagate(int evtmask)
Call the main filtering algorithm to apply to the
Domain of the Variable objects. |
void |
propagate(int varIdx,
int mask)
Incremental filtering algorithm defined within the
Propagator , called whenever the variable
of index idxVarInProp has changed. |
String |
toString() |
boolean |
why(RuleStore ruleStore,
IntVar var,
IEventType evt,
int value)
Add new rules to the rule store
|
addVariable, advise, arity, compareTo, contradiction, decNbPendingEvt, defineIn, dynPriority, flushPendingEvt, forcePropagate, getConstraint, getId, getNbPendingEvt, getNbVars, getPriority, getSolver, getVar, getVars, getVIndices, hashCode, incNbPendingEvt, isActive, isCompletelyInstantiated, isPassive, isReifiedAndSilent, isStateLess, reactToFineEvent, setActive, setPassive, setReifiedSilent, setReifiedTrue, setVIndices
protected final Operator operator
protected final int cste
protected final org.chocosolver.solver.constraints.binary.PropDistanceXYC.RemProc remproc
protected final IIntDeltaMonitor[] idms
public int getPropagationConditions(int idx)
Propagator
Propagator
object can react.getPropagationConditions
in class Propagator<IntVar>
idx
- index of the variable within the propagatorREMOVE
and/or INSTANTIATE
and/or DECUPP
and/or INCLOW
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 varIdx, 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>
varIdx
- index of the variable var
in this
mask
- type of eventContradictionException
- if a contradiction occurspublic ESat isEntailed()
Propagator
this
is entailed according to the current state of its internal structure.
At least, should check the satisfaction of this
(when all is instantiated).isEntailed
in class Propagator<IntVar>
public String toString()
toString
in class Propagator<IntVar>
public boolean why(RuleStore ruleStore, IntVar var, IEventType evt, int value)
ICause
why
in interface ICause
why
in class Propagator<IntVar>
ruleStore
- the rule storevar
- the modified variableevt
- the undergoing eventvalue
- the value (for REMOVE only)public void filterFromVarToVar(IntVar var1, IntVar var2) throws ContradictionException
ContradictionException
public void filterGT() throws ContradictionException
ContradictionException
public void filterGTonVar(IntVar v0, IntVar v1) throws ContradictionException
ContradictionException
public void filterLT() throws ContradictionException
ContradictionException
public void filterLTonVar(IntVar v0, IntVar v1) throws ContradictionException
ContradictionException
public void filterOnInf(IntVar v0, IntVar v1) throws ContradictionException
ContradictionException
public void filterOnSup(IntVar v0, IntVar v1) throws ContradictionException
ContradictionException
public void filterOnInst(IntVar v, int val) throws ContradictionException
ContradictionException
public void filterNeq() 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.