public class PropCompactTable extends Propagator<IntVar>
Modifier and Type | Class and Description |
---|---|
protected class |
PropCompactTable.RSparseBitSet |
Modifier and Type | Field and Description |
---|---|
protected PropCompactTable.RSparseBitSet |
currTable |
protected IIntDeltaMonitor[] |
monitors |
protected int[] |
offset |
protected UnaryIntProcedure<Integer> |
onValRem |
protected int[][] |
residues |
protected long[][][] |
supports |
protected Tuples |
tuples |
constraint, model, priority, reactToFineEvt, vars
Constructor and Description |
---|
PropCompactTable(IntVar[] vars,
Tuples tuples)
Create a propagator for table constraint
Only for feasible Tuples
|
Modifier and Type | Method and Description |
---|---|
protected void |
computeSupports(Tuples tuples) |
ESat |
isEntailed()
Check wether
this is entailed according to the current state of its internal structure. |
protected UnaryIntProcedure<Integer> |
makeProcedure() |
void |
propagate(int evtmask)
Call the main filtering algorithm to apply to the
Domain of the Variable objects. |
void |
propagate(int vIdx,
int mask)
Incremental filtering algorithm defined within the
Propagator , called whenever the variable
of index idxVarInProp has changed. |
addVariable, arity, compareTo, doFinePropagation, doFlush, doSchedule, doScheduleEvent, dynPriority, equals, fails, forcePropagate, forcePropagationOnBacktrack, getConstraint, getId, getModel, getNbVars, getPosition, getPriority, getPropagationConditions, getVar, getVars, getVIndice, getVIndices, hashCode, isActive, isCompletelyInstantiated, isPassive, isReifiedAndSilent, isStateLess, linkVariables, reactToFineEvent, setActive, setPassive, setPosition, setReifiedSilent, setReifiedTrue, setVIndices, toString, unlinkVariables, unschedule, why
protected PropCompactTable.RSparseBitSet currTable
protected Tuples tuples
protected long[][][] supports
protected int[][] residues
protected int[] offset
protected IIntDeltaMonitor[] monitors
protected UnaryIntProcedure<Integer> onValRem
protected UnaryIntProcedure<Integer> makeProcedure()
protected void computeSupports(Tuples tuples)
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 vIdx, 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>
vIdx
- 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>
Copyright © 2018. All rights reserved.