choco.set.constraint
Class SetIntersection

java.lang.Object
  extended by choco.AbstractEntity
      extended by choco.AbstractConstraint
          extended by choco.set.constraint.AbstractSetConstraint
              extended by choco.set.constraint.AbstractTernSetConstraint
                  extended by choco.set.constraint.SetIntersection
All Implemented Interfaces:
Constraint, Entity, VarEventListener, Propagator, SetConstraint, SetVarEventListener, java.lang.Cloneable, java.util.EventListener

public class SetIntersection
extends AbstractTernSetConstraint

A constraint stating that a set is the intersection of two others There are seven propagation rules for the constraint sv3 = intersection(sv1, sv2) Ker(sv1) contains Ker(sv3) Ker(sv2) contains Ker(sv3) Ker(sv3) contains (Ker(sv1) inter Ker(sv2)) Env(v3) disjoint Complement(Env(v1)) Env(v3) disjoint Complement(Env(v2)) Env(v2) disjoint Ker(v1) inter Complement(Env(v3)) Env(v1) disjoint Ker(v2) inter Complement(Env(v3))


Field Summary
 
Fields inherited from class choco.set.constraint.AbstractTernSetConstraint
cIdx0, cIdx1, cIdx2, v0, v1, v2
 
Fields inherited from class choco.set.constraint.AbstractSetConstraint
logger
 
Fields inherited from class choco.AbstractConstraint
active, constAwakeEvent, hook, priority
 
Fields inherited from class choco.AbstractEntity
problem
 
Constructor Summary
SetIntersection(SetVar sv1, SetVar sv2, SetVar sv3)
           
 
Method Summary
 void awakeOnEnv(int varIdx, int x)
          Default propagation on enveloppe modification: propagation on removing a value from the enveloppe.
 void awakeOnInst(int varIdx)
          Default propagation on instantiation.
 void awakeOnKer(int varIdx, int x)
          Default propagation on kernel modification: propagation on adding a value to the kernel.
 java.lang.Object clone()
          returns a copy of the constraint.
 boolean isConsistent()
          tests if the constraint is consistent with respect to the current state of domains
 boolean isSatisfied()
          Semantic: Testing if the constraint is satisfied.
 void propagate()
          Propagation: Propagating the constraint until local consistency is reached.
 
Methods inherited from class choco.set.constraint.AbstractTernSetConstraint
assignIndices, getConstraintIdx, getNbVars, getSetVar, getVar, isCompletelyInstantiated, setConstraintIndex, setVar
 
Methods inherited from class choco.set.constraint.AbstractSetConstraint
awakeOnEnvRemovals, awakeOnkerAdditions, getSelfIndex
 
Methods inherited from class choco.AbstractConstraint
addListener, awake, awakeOnVar, connectVar, constAwake, delete, fail, getEvent, getPlugIn, getPriority, getProblem, getVarIdxInOpposite, isActive, isEntailed, isEquivalentTo, opposite, setActive, setEntailed, setPassive, setPlugIn, substituteVar
 
Methods inherited from class choco.AbstractEntity
pretty
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface choco.Propagator
awake, awakeOnVar, constAwake, delete, getEvent, getPlugIn, getPriority, isEntailed
 
Methods inherited from interface choco.prop.VarEventListener
addListener, isActive, setActive, setPassive
 
Methods inherited from interface choco.prop.VarEventListener
addListener, isActive, setActive, setPassive
 

Constructor Detail

SetIntersection

public SetIntersection(SetVar sv1,
                       SetVar sv2,
                       SetVar sv3)
Parameters:
sv3 - the intersection set
Method Detail

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Description copied from interface: Constraint
returns a copy of the constraint. This copy is a new object, may be a recursive copy in case of composite constraints. The original and the copy share the same variables & plugins

Specified by:
clone in interface Constraint
Overrides:
clone in class AbstractConstraint
Returns:
Throws:
java.lang.CloneNotSupportedException

awakeOnKer

public void awakeOnKer(int varIdx,
                       int x)
                throws ContradictionException
Description copied from interface: SetVarEventListener
Default propagation on kernel modification: propagation on adding a value to the kernel.

Specified by:
awakeOnKer in interface SetVarEventListener
Overrides:
awakeOnKer in class AbstractSetConstraint
Throws:
ContradictionException

awakeOnEnv

public void awakeOnEnv(int varIdx,
                       int x)
                throws ContradictionException
Description copied from interface: SetVarEventListener
Default propagation on enveloppe modification: propagation on removing a value from the enveloppe.

Specified by:
awakeOnEnv in interface SetVarEventListener
Overrides:
awakeOnEnv in class AbstractSetConstraint
Throws:
ContradictionException

awakeOnInst

public void awakeOnInst(int varIdx)
                 throws ContradictionException
Description copied from interface: SetVarEventListener
Default propagation on instantiation.

Specified by:
awakeOnInst in interface SetVarEventListener
Overrides:
awakeOnInst in class AbstractSetConstraint
Throws:
ContradictionException

propagate

public void propagate()
               throws ContradictionException
Description copied from interface: Propagator
Propagation: Propagating the constraint until local consistency is reached.

Throws:
ContradictionException

isSatisfied

public boolean isSatisfied()
Description copied from interface: Constraint
Semantic: Testing if the constraint is satisfied. Note that all variables involved in the constraint must be instantiated when this method is called.


isConsistent

public boolean isConsistent()
Description copied from interface: Propagator
tests if the constraint is consistent with respect to the current state of domains