public abstract class PropConditionnal extends Propagator<Variable>
constraint, model, priority, reactToFineEvt, vars
Constructor and Description |
---|
PropConditionnal(Variable[] vars2observe,
Constraint[] condTrue,
Constraint[] condFalse) |
Modifier and Type | Method and Description |
---|---|
abstract ESat |
checkCondition()
Check a specific condition.
If the condition returns ESat.TRUE, then posts temporarily the first propagator, If the condition returns Esat.FALSE, then it posts temporarily the second propagator, Otherwise wait for the condition to be fully (un)satisfied. |
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. |
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, propagate, reactToFineEvent, setActive, setPassive, setPosition, setReifiedSilent, setReifiedTrue, setVIndices, toString, unlinkVariables, unschedule, why
public PropConditionnal(Variable[] vars2observe, Constraint[] condTrue, Constraint[] condFalse)
vars2observe
- set of variables to observe, their modifications triggers the condition checkingcondTrue
- the constraint to post if the condition is satisfiedcondFalse
- the constraint to post if the condition is not satisfiedpublic 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<Variable>
evtmask
- type of propagation event this
must consider.ContradictionException
- when a contradiction occurs, like domain wipe out or other incoherencies.public 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<Variable>
public abstract ESat checkCondition()
Copyright © 2018. All rights reserved.