choco.set.constraint
Class SetIntersection
java.lang.Object
choco.AbstractEntity
choco.AbstractConstraint
choco.set.constraint.AbstractSetConstraint
choco.set.constraint.AbstractTernSetConstraint
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))
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.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 java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
SetIntersection
public SetIntersection(SetVar sv1,
SetVar sv2,
SetVar sv3)
- Parameters:
sv3
- the intersection set
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