Module org.chocosolver.solver
Class PropXplusYeqZ
java.lang.Object
org.chocosolver.solver.constraints.Propagator<IntVar>
org.chocosolver.solver.constraints.ternary.PropXplusYeqZ
- All Implemented Interfaces:
Comparable<Propagator<IntVar>>
,ICause
,Identity
A propagator to ensure that X + Y = Z holds, where X, Y and Z are IntVar.
This propagator ensures AC when all variables are enumerated, BC otherwise.
Project: choco.
- Since:
- 03/02/2016.
- Author:
- Charles Prud'homme
-
Field Summary
Fields inherited from class org.chocosolver.solver.constraints.Propagator
ACTIVE, constraint, model, operations, priority, reactToFineEvt, state, vars
-
Constructor Summary
ConstructorsConstructorDescriptionPropXplusYeqZ
(IntVar X, IntVar Y, IntVar Z) Create propagator for ternary sum: X + Y =Z -
Method Summary
Modifier and TypeMethodDescriptionCheck wetherthis
is entailed according to the current state of its internal structure.void
propagate
(int evtmask) Call the main filtering algorithm to apply to theDomain
of theVariable
objects.Methods inherited from class org.chocosolver.solver.constraints.Propagator
addVariable, arity, bounds, compareTo, defaultReason, doFinePropagation, doFlush, doSchedule, doScheduleEvent, dynPriority, equals, fails, fails, forcePropagate, forcePropagationOnBacktrack, forEachIntVar, getConstraint, getId, getModel, getNbVars, getPosition, getPriority, getPropagationConditions, getVar, getVars, getVIndice, getVIndices, hashCode, isActive, isCompletelyInstantiated, isPassive, isReified, isReifiedAndSilent, isStateLess, lbounds, lcg, linkVariables, manageReification, propagate, reactToFineEvent, reason, setActive, setEnabled, setPassive, setPosition, setReifiedSilent, setReifiedTrue, setVIndices, toString, ubounds, unlinkVariables, unschedule
-
Constructor Details
-
PropXplusYeqZ
Create propagator for ternary sum: X + Y =Z- Parameters:
X
- an integer variableY
- an integer variableZ
- an integer variable
-
-
Method Details
-
propagate
Description copied from class:Propagator
Call the main filtering algorithm to apply to theDomain
of theVariable
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:
- at the initial propagation step,
- when involved in a reified constraint.
It should initialized the internal data structure and apply filtering algorithm from scratch.- Specified by:
propagate
in classPropagator<IntVar>
- Parameters:
evtmask
- type of propagation eventthis
must consider.- Throws:
ContradictionException
- when a contradiction occurs, like domain wipe out or other incoherencies.
-
isEntailed
Description copied from class:Propagator
Check wetherthis
is entailed according to the current state of its internal structure. At least, should check the satisfaction ofthis
(when all is instantiated).- Specified by:
isEntailed
in classPropagator<IntVar>
- Returns:
- ESat.TRUE if entailed, ESat.FALSE if not entailed, ESat.UNDEFINED if unknown
-