choco.cp.solver.constraints.integer.extension
Class GACstrPositiveLargeSConstraint

java.lang.Object
  extended by choco.kernel.solver.propagation.Propagator
      extended by choco.kernel.solver.constraints.AbstractSConstraint<IntDomainVar>
          extended by choco.kernel.solver.constraints.integer.AbstractIntSConstraint
              extended by choco.kernel.solver.constraints.integer.AbstractLargeIntSConstraint
                  extended by choco.cp.solver.constraints.integer.extension.CspLargeSConstraint
                      extended by choco.cp.solver.constraints.integer.extension.GACstrPositiveLargeSConstraint
All Implemented Interfaces:
IExtensionnable, IPretty, SConstraint<IntDomainVar>, IntPropagator, Cloneable, EventListener

public final class GACstrPositiveLargeSConstraint
extends CspLargeSConstraint

GAC maintained by STR


Field Summary
protected  int arity
          size of the scope
protected  List<Integer> futureVars
          Variables that are not proved to be GAC yet
protected  BitSet[] gacValues
          Values that have found a support for each variable
protected  IStateIntVector ltuples
          The backtrackable list of tuples representing the current allowed tuples of the constraint
protected  int[] nbGacValues
           
protected  int[] offsets
          original lower bounds
protected  TuplesList relation
           
protected  ValidityChecker valcheck
           
 
Fields inherited from class choco.cp.solver.constraints.integer.extension.CspLargeSConstraint
currentTuple
 
Fields inherited from class choco.kernel.solver.constraints.AbstractSConstraint
cIndices, constraintType, extensions, vars
 
Fields inherited from class choco.kernel.solver.propagation.Propagator
active, constAwakeEvent, priority, propagationEngine
 
Fields inherited from interface choco.kernel.solver.constraints.SConstraint
LOGGER
 
Constructor Summary
GACstrPositiveLargeSConstraint(IntDomainVar[] vs, LargeRelation relation, IEnvironment environment)
           
 
Method Summary
 void awake()
          Propagation: Propagating the constraint for the very first time until local consistency is reached.
 void awakeOnBounds(int varIndex)
           
 void awakeOnInf(int idx)
          Default propagation on improved lower bound: propagation on domain revision.
 void awakeOnInst(int idx)
          Default propagation on instantiation: full constraint re-propagation.
 void awakeOnRem(int idx, int x)
          Default propagation on one value removal: propagation on domain revision.
 void awakeOnRemovals(int idx, DisposableIntIterator deltaDomain)
          The default implementation of propagation when a variable has been modified consists in iterating all values that have been removed (the delta domain) and propagate them one after another, incrementally.
 void awakeOnSup(int idx)
          Default propagation on improved upper bound: propagation on domain revision.
 void filter(int idx)
           
 void gacstr()
          Main propagation loop.
 void gacstr(int idx)
          Main Incremental propagation loop.
 double getCartesianProduct()
           
 int getFilteredEventMask(int idx)
           
 void initializeData()
           
 boolean isSatisfied(int[] tuple)
          TEMPORARY: if not overriden by the constraint, throws an error to avoid bug using reified constraints in constraints that have not been changed to fulfill this api yet !
 void maintainList()
          maintain the list by checking all variable within isValid
 void maintainList(int idx)
          maintain the list by checking only the variable that has changed when checking if a tuple is valid.
 String pretty()
          pretty printing of the object.
 void propagate()
          Propagation: Propagating the constraint until local consistency is reached.
 void pruningPhase()
           
 
Methods inherited from class choco.cp.solver.constraints.integer.extension.CspLargeSConstraint
clone, getRelation, isEntailed, opposite
 
Methods inherited from class choco.kernel.solver.constraints.integer.AbstractIntSConstraint
getConstraintType, isConsistent, isSatisfied
 
Methods inherited from class choco.kernel.solver.constraints.AbstractSConstraint
addExtension, addListener, getAbstractSConstraintExtensionNumber, getConstraintIdx, getExtension, getFineDegree, getNbVarNotInst, getNbVars, getVar, getVarQuick, isCompletelyInstantiated, setConstraintIndex, setExtension, setVar, toString
 
Methods inherited from class choco.kernel.solver.propagation.Propagator
activate, constAwake, fail, getEvent, getPriority, isActive, setActive, setActiveSilently, setEntailed, setPassive, setPropagationEngine
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

relation

protected TuplesList relation

valcheck

protected ValidityChecker valcheck

arity

protected int arity
size of the scope


offsets

protected int[] offsets
original lower bounds


futureVars

protected List<Integer> futureVars
Variables that are not proved to be GAC yet


gacValues

protected BitSet[] gacValues
Values that have found a support for each variable


nbGacValues

protected int[] nbGacValues

ltuples

protected IStateIntVector ltuples
The backtrackable list of tuples representing the current allowed tuples of the constraint

Constructor Detail

GACstrPositiveLargeSConstraint

public GACstrPositiveLargeSConstraint(IntDomainVar[] vs,
                                      LargeRelation relation,
                                      IEnvironment environment)
Method Detail

getFilteredEventMask

public int getFilteredEventMask(int idx)
Overrides:
getFilteredEventMask in class CspLargeSConstraint

initializeData

public void initializeData()

pruningPhase

public void pruningPhase()
                  throws ContradictionException
Throws:
ContradictionException

maintainList

public void maintainList(int idx)
maintain the list by checking only the variable that has changed when checking if a tuple is valid.

Parameters:
idx - : the variable changed

maintainList

public void maintainList()
maintain the list by checking all variable within isValid


gacstr

public void gacstr(int idx)
            throws ContradictionException
Main Incremental propagation loop. It maintains the list of valid tuples through the search

Throws:
ContradictionException

gacstr

public void gacstr()
            throws ContradictionException
Main propagation loop. It maintains the list of valid tuples through the search

Throws:
ContradictionException

getCartesianProduct

public double getCartesianProduct()

propagate

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

Overrides:
propagate in class CspLargeSConstraint
Throws:
ContradictionException - contradiction exception

awakeOnRemovals

public void awakeOnRemovals(int idx,
                            DisposableIntIterator deltaDomain)
                     throws ContradictionException
Description copied from class: AbstractIntSConstraint
The default implementation of propagation when a variable has been modified consists in iterating all values that have been removed (the delta domain) and propagate them one after another, incrementally.

Specified by:
awakeOnRemovals in interface IntPropagator
Overrides:
awakeOnRemovals in class CspLargeSConstraint
Throws:
ContradictionException

awakeOnInf

public void awakeOnInf(int idx)
                throws ContradictionException
Description copied from class: AbstractIntSConstraint
Default propagation on improved lower bound: propagation on domain revision.

Specified by:
awakeOnInf in interface IntPropagator
Overrides:
awakeOnInf in class AbstractIntSConstraint
Throws:
ContradictionException

awakeOnSup

public void awakeOnSup(int idx)
                throws ContradictionException
Description copied from class: AbstractIntSConstraint
Default propagation on improved upper bound: propagation on domain revision.

Specified by:
awakeOnSup in interface IntPropagator
Overrides:
awakeOnSup in class AbstractIntSConstraint
Throws:
ContradictionException

awakeOnRem

public void awakeOnRem(int idx,
                       int x)
                throws ContradictionException
Description copied from class: AbstractIntSConstraint
Default propagation on one value removal: propagation on domain revision.

Specified by:
awakeOnRem in interface IntPropagator
Overrides:
awakeOnRem in class AbstractIntSConstraint
Throws:
ContradictionException

awakeOnBounds

public void awakeOnBounds(int varIndex)
                   throws ContradictionException
Specified by:
awakeOnBounds in interface IntPropagator
Overrides:
awakeOnBounds in class CspLargeSConstraint
Throws:
ContradictionException

awakeOnInst

public void awakeOnInst(int idx)
                 throws ContradictionException
Description copied from class: AbstractIntSConstraint
Default propagation on instantiation: full constraint re-propagation.

Specified by:
awakeOnInst in interface IntPropagator
Overrides:
awakeOnInst in class CspLargeSConstraint
Throws:
ContradictionException

awake

public void awake()
           throws ContradictionException
Description copied from class: Propagator
Propagation: Propagating the constraint for the very first time until local consistency is reached.

Overrides:
awake in class Propagator
Throws:
ContradictionException - contradiction exception

filter

public void filter(int idx)
            throws ContradictionException
Throws:
ContradictionException

isSatisfied

public boolean isSatisfied(int[] tuple)
Description copied from class: AbstractIntSConstraint
TEMPORARY: if not overriden by the constraint, throws an error to avoid bug using reified constraints in constraints that have not been changed to fulfill this api yet !

Specified by:
isSatisfied in interface IntPropagator
Overrides:
isSatisfied in class CspLargeSConstraint

pretty

public String pretty()
Description copied from interface: IPretty
pretty printing of the object. This String is not constant and may depend on the context.

Specified by:
pretty in interface IPretty
Overrides:
pretty in class CspLargeSConstraint
Returns:
a readable string representation of the object


Copyright © 2012. All Rights Reserved.