public class PropSumBoolIncr extends PropSumBool
sum
b, I, l, maxI, o, pos, sumLB, sumUB
ACTIVE, constraint, model, NEW, PASSIVE, priority, reactToFineEvt, REIFIED, vars
Constructor and Description |
---|
PropSumBoolIncr(BoolVar[] variables,
int pos,
Operator o,
IntVar sum,
int b)
Creates a sum propagator: SUM(x_i) = sum + b, where x_i are boolean variables, maintained incrementally.
|
Modifier and Type | Method and Description |
---|---|
protected PropSum |
opposite() |
protected void |
prepare()
Prepare the propagation: compute sumLB, sumUB and I
|
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. |
filterOnEq, filterOnGeq, filterOnLeq, getPropagationConditions, isEntailed, toString
check, computePriority, filter, filterOnNeq, nb, nop, why
addVariable, arity, compareTo, defineIn, dynPriority, equals, fails, forcePropagate, forcePropagationOnBacktrack, getConstraint, getId, getModel, getNbVars, getPriority, getVar, getVars, getVIndices, hashCode, isActive, isCompletelyInstantiated, isPassive, isReifiedAndSilent, isStateLess, linkVariables, reactToFineEvent, setActive, setPassive, setReifiedSilent, setReifiedTrue, setVIndices
public PropSumBoolIncr(BoolVar[] variables, int pos, Operator o, IntVar sum, int b)
pos
:
those before pos
(included) are equal to 1,
the other ones are equal to -1.variables
- list of boolean variablespos
- position of the last positive (induced) coefficiento
- operatorsum
- resulting variableb
- bound to respectpublic 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 PropSum
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 occursprotected void prepare()
PropSum
prepare
in class PropSumBool
protected PropSum opposite()
opposite
in class PropSumBool
Copyright © 2016. All rights reserved.