|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectchoco.kernel.solver.propagation.Propagator
choco.kernel.solver.constraints.AbstractSConstraint<IntDomainVar>
choco.kernel.solver.constraints.integer.AbstractIntSConstraint
choco.kernel.solver.constraints.integer.AbstractLargeIntSConstraint
choco.cp.solver.constraints.integer.extension.CspLargeSConstraint
choco.cp.solver.constraints.integer.extension.GAC3rmPositiveLargeConstraint
public final class GAC3rmPositiveLargeConstraint
GAC3rm (GAC3 with residual supports)
Field Summary | |
---|---|
protected int |
arity
size of the scope of the constraint |
protected static int |
NO_SUPPORT
minimum number of support among all values of each variable; |
protected int[] |
offsets
original lower bounds |
protected IterTuplesTable |
relation
|
protected int[][] |
supports
supports[i][j stores the index of the tuple that currently support the variable-value pair (i,j) |
protected int[][][] |
tab
|
protected ValidityChecker |
valcheck
|
Fields inherited from class choco.cp.solver.constraints.integer.extension.CspLargeSConstraint |
---|
currentTuple |
Fields inherited from class choco.kernel.solver.constraints.AbstractSConstraint |
---|
cIndices, constraintType, extensions, vars |
Fields inherited from class choco.kernel.solver.propagation.Propagator |
---|
active, constAwakeEvent, priority, propagationEngine |
Fields inherited from interface choco.kernel.solver.constraints.SConstraint |
---|
LOGGER |
Constructor Summary | |
---|---|
GAC3rmPositiveLargeConstraint(IntDomainVar[] vs,
IterTuplesTable relation)
|
Method Summary | |
---|---|
void |
awake()
Propagation: Propagating the constraint for the very first time until local consistency is reached. |
void |
awakeOnBounds(int varIndex)
|
void |
awakeOnInf(int idx)
Default propagation on improved lower bound: propagation on domain revision. |
void |
awakeOnInst(int idx)
Default propagation on instantiation: full constraint re-propagation. |
void |
awakeOnRem(int idx,
int x)
Default propagation on one value removal: propagation on domain revision. |
void |
awakeOnRemovals(int idx,
DisposableIntIterator deltaDomain)
The default implementation of propagation when a variable has been modified consists in iterating all values that have been removed (the delta domain) and propagate them one after another, incrementally. |
void |
awakeOnSup(int idx)
Default propagation on improved upper bound: propagation on domain revision. |
void |
filter(int idx)
|
int |
getFilteredEventMask(int idx)
|
int |
getSupport(int indexVar,
int value)
|
void |
initSupports()
initialize the residual supports of each pair to their first allowed tuple |
boolean |
isSatisfied(int[] tuple)
TEMPORARY: if not overriden by the constraint, throws an error to avoid bug using reified constraints in constraints that have not been changed to fulfill this api yet ! |
String |
pretty()
pretty printing of the object. |
void |
propagate()
Propagation: Propagating the constraint until local consistency is reached. |
void |
reviseVar(int indexVar)
updates the support for all values in the domain of variable and remove unsupported values for variable |
int |
seekNextSupport(int indexVar,
int nva)
seek a new support for the pair variable-value : (indexVar, nva) start the iteration from scratch in the list |
void |
setSupport(int idxSupport)
set the support using multidirectionality |
Methods inherited from class choco.cp.solver.constraints.integer.extension.CspLargeSConstraint |
---|
clone, getRelation, isEntailed, opposite |
Methods inherited from class choco.kernel.solver.constraints.integer.AbstractIntSConstraint |
---|
getConstraintType, isConsistent, isSatisfied |
Methods inherited from class choco.kernel.solver.constraints.AbstractSConstraint |
---|
addExtension, addListener, getAbstractSConstraintExtensionNumber, getConstraintIdx, getExtension, getFineDegree, getNbVarNotInst, getNbVars, getVar, getVarQuick, isCompletelyInstantiated, setConstraintIndex, setExtension, setVar, toString |
Methods inherited from class choco.kernel.solver.propagation.Propagator |
---|
activate, constAwake, fail, getEvent, getPriority, isActive, setActive, setActiveSilently, setEntailed, setPassive, setPropagationEngine |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected int[][] supports
protected int arity
protected int[] offsets
protected static final int NO_SUPPORT
protected IterTuplesTable relation
protected int[][][] tab
protected ValidityChecker valcheck
Constructor Detail |
---|
public GAC3rmPositiveLargeConstraint(IntDomainVar[] vs, IterTuplesTable relation)
Method Detail |
---|
public int getFilteredEventMask(int idx)
getFilteredEventMask
in class CspLargeSConstraint
public void reviseVar(int indexVar) throws ContradictionException
indexVar
-
ContradictionException
public int seekNextSupport(int indexVar, int nva)
public void setSupport(int idxSupport)
idxSupport
- public int getSupport(int indexVar, int value)
indexVar
- value
- with offset removed
public void initSupports() throws ContradictionException
ContradictionException
public void propagate() throws ContradictionException
Propagator
propagate
in class CspLargeSConstraint
ContradictionException
- contradiction exceptionpublic void awakeOnRemovals(int idx, DisposableIntIterator deltaDomain) throws ContradictionException
AbstractIntSConstraint
awakeOnRemovals
in interface IntPropagator
awakeOnRemovals
in class CspLargeSConstraint
ContradictionException
public void awakeOnInf(int idx) throws ContradictionException
AbstractIntSConstraint
awakeOnInf
in interface IntPropagator
awakeOnInf
in class AbstractIntSConstraint
ContradictionException
public void awakeOnSup(int idx) throws ContradictionException
AbstractIntSConstraint
awakeOnSup
in interface IntPropagator
awakeOnSup
in class AbstractIntSConstraint
ContradictionException
public void awakeOnRem(int idx, int x) throws ContradictionException
AbstractIntSConstraint
awakeOnRem
in interface IntPropagator
awakeOnRem
in class AbstractIntSConstraint
ContradictionException
public void awakeOnBounds(int varIndex) throws ContradictionException
awakeOnBounds
in interface IntPropagator
awakeOnBounds
in class CspLargeSConstraint
ContradictionException
public void awakeOnInst(int idx) throws ContradictionException
AbstractIntSConstraint
awakeOnInst
in interface IntPropagator
awakeOnInst
in class CspLargeSConstraint
ContradictionException
public void awake() throws ContradictionException
Propagator
awake
in class Propagator
ContradictionException
- contradiction exceptionpublic void filter(int idx) throws ContradictionException
ContradictionException
public String pretty()
IPretty
pretty
in interface IPretty
pretty
in class CspLargeSConstraint
public boolean isSatisfied(int[] tuple)
AbstractIntSConstraint
isSatisfied
in interface IntPropagator
isSatisfied
in class CspLargeSConstraint
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |