Class PropCircuit_ArboFiltering
- java.lang.Object
-
- org.chocosolver.solver.constraints.Propagator<IntVar>
-
- org.chocosolver.solver.constraints.nary.circuit.PropCircuit_ArboFiltering
-
- All Implemented Interfaces:
Comparable<Propagator>
,ICause
,Identity
- Direct Known Subclasses:
PropCircuit_AntiArboFiltering
public class PropCircuit_ArboFiltering extends Propagator<IntVar>
Propagator for sub-circuit constraint based on dominators Redundant propagator- Author:
- Jean-Guillaume Fages
-
-
Field Summary
Fields Modifier and Type Field Description protected CircuitConf
conf
protected DirectedGraph
connectedGraph
protected AbstractLengauerTarjanDominatorsFinder
domFinder
protected int
n
protected int
offSet
protected Random
rd
-
Fields inherited from class org.chocosolver.solver.constraints.Propagator
ACTIVE, constraint, DEFAULT_EXPL, model, operations, OUTPUT_DEFAULT_EXPL, priority, reactToFineEvt, state, vars
-
-
Constructor Summary
Constructors Constructor Description PropCircuit_ArboFiltering(IntVar[] succs, int offSet, CircuitConf conf)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
filterFromDom(int duplicatedNode)
ESat
isEntailed()
Check 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, compareTo, defaultExplain, doFinePropagation, doFlush, doSchedule, doScheduleEvent, dynPriority, equals, explain, fails, forcePropagate, forcePropagationOnBacktrack, forEachIntVar, getConstraint, getId, getModel, getNbVars, getPosition, getPriority, getPropagationConditions, getVar, getVars, getVIndice, getVIndices, hashCode, isActive, isCompletelyInstantiated, isPassive, isReified, isReifiedAndSilent, isScheduled, isStateLess, linkVariables, propagate, reactToFineEvent, reifiedWith, setActive, setActive0, setPassive, setPosition, setReifiedSilent, setReifiedTrue, setVIndices, toString, unlinkVariables, unschedule
-
-
-
-
Field Detail
-
connectedGraph
protected DirectedGraph connectedGraph
-
n
protected int n
-
domFinder
protected AbstractLengauerTarjanDominatorsFinder domFinder
-
offSet
protected int offSet
-
rd
protected Random rd
-
conf
protected CircuitConf conf
-
-
Constructor Detail
-
PropCircuit_ArboFiltering
public PropCircuit_ArboFiltering(IntVar[] succs, int offSet, CircuitConf conf)
-
-
Method Detail
-
propagate
public void propagate(int evtmask) throws ContradictionException
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.
-
filterFromDom
protected void filterFromDom(int duplicatedNode) throws ContradictionException
- Throws:
ContradictionException
-
isEntailed
public ESat 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
-
-