choco.cp.solver.constraints.global.scheduling.precedence
Class AbstractPrecedenceSConstraint

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.global.scheduling.precedence.AbstractPrecedenceSConstraint
All Implemented Interfaces:
ITemporalSRelation, IExtensionnable, IPretty, ITemporalRelation<TaskVar<?>,IntDomainVar>, SConstraint<IntDomainVar>, IntPropagator, Cloneable, EventListener
Direct Known Subclasses:
PrecedenceDisjoint, PrecedenceImplied, PrecedenceReified, PrecedenceVDisjoint, PrecedenceVSDisjoint, VariablePrecedenceDisjoint

public abstract class AbstractPrecedenceSConstraint
extends AbstractLargeIntSConstraint
implements ITemporalSRelation


Field Summary
protected static int BIDX
           
protected  int k1
           
protected  int k2
           
protected  Boolean reuseBool
           
protected  TaskVar task1
           
protected  TaskVar task2
           
 
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.cp.solver.constraints.global.scheduling.precedence.ITemporalSRelation
PRESERVED_PRECISION
 
Fields inherited from interface choco.kernel.model.constraints.ITemporalRelation
BWD, FWD
 
Fields inherited from interface choco.kernel.solver.constraints.SConstraint
LOGGER
 
Constructor Summary
AbstractPrecedenceSConstraint(IntDomainVar[] vars)
           
 
Method Summary
 void awakeOnBounds(int idx)
           
 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 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.
 int backwardSetup()
           
 void filterOnP1P2TowardsB()
           
 int forwardSetup()
           
 double getBackwardPreserved()
           
 TaskVar getDestination()
           
 IntDomainVar getDirection()
           
 int getDirVal()
           
 int getFilteredEventMask(int idx)
           
 double getForwardPreserved()
           
 TaskVar getOrigin()
           
 int getTotalSlack()
           
protected  Boolean isEntailed(int idx1, int idx2)
          isEntailed vars[idx1] <= vars[idx2]
protected  Boolean isEntailed(int idx1, int k1, int idx2)
          isEntailed vars[idx1] + k1 <= vars[idx2]
 boolean isFixed()
           
abstract  Boolean isP1Entailed()
           
abstract  Boolean isP2Entailed()
           
protected  boolean isSatisfied(int idx1, int idx2)
           
protected  boolean isSatisfied(int idx1, int k1, int idx2)
           
protected  String pretty(int idx1, int idx2)
           
protected  String pretty(int idx1, int k1, int idx2)
           
protected  String pretty(String name, String trueStr, String falseStr)
           
 void propagate()
          Propagation: Propagating the constraint until local consistency is reached.
protected  void propagate(int idx1, int idx2)
          propagate vars[idx1] <= vars[idx2]
protected  void propagate(int idx1, int k1, int idx2)
          propagate vars[idx1] + k1 <= vars[idx2]
abstract  void propagateP1()
           
abstract  void propagateP2()
           
 void setTasks(TaskVar t1, TaskVar t2)
           
 String toString()
           
 
Methods inherited from class choco.kernel.solver.constraints.integer.AbstractIntSConstraint
awakeOnRem, getConstraintType, isConsistent, isSatisfied, isSatisfied
 
Methods inherited from class choco.kernel.solver.constraints.AbstractSConstraint
addExtension, addListener, clone, getAbstractSConstraintExtensionNumber, getConstraintIdx, getExtension, getFineDegree, getNbVarNotInst, getNbVars, getVar, getVarQuick, isCompletelyInstantiated, isEntailed, opposite, pretty, setConstraintIndex, setExtension, setVar
 
Methods inherited from class choco.kernel.solver.propagation.Propagator
activate, awake, 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

BIDX

protected static final int BIDX
See Also:
Constant Field Values

task1

protected TaskVar task1

task2

protected TaskVar task2

k1

protected int k1

k2

protected int k2

reuseBool

protected Boolean reuseBool
Constructor Detail

AbstractPrecedenceSConstraint

public AbstractPrecedenceSConstraint(IntDomainVar[] vars)
Method Detail

getFilteredEventMask

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

setTasks

public final void setTasks(TaskVar t1,
                           TaskVar t2)

getOrigin

public final TaskVar getOrigin()
Specified by:
getOrigin in interface ITemporalRelation<TaskVar<?>,IntDomainVar>

getDestination

public final TaskVar getDestination()
Specified by:
getDestination in interface ITemporalRelation<TaskVar<?>,IntDomainVar>

getDirection

public IntDomainVar getDirection()
Specified by:
getDirection in interface ITemporalRelation<TaskVar<?>,IntDomainVar>

isFixed

public final boolean isFixed()
Specified by:
isFixed in interface ITemporalRelation<TaskVar<?>,IntDomainVar>

getDirVal

public int getDirVal()
Specified by:
getDirVal in interface ITemporalRelation<TaskVar<?>,IntDomainVar>

backwardSetup

public final int backwardSetup()
Specified by:
backwardSetup in interface ITemporalRelation<TaskVar<?>,IntDomainVar>

forwardSetup

public final int forwardSetup()
Specified by:
forwardSetup in interface ITemporalRelation<TaskVar<?>,IntDomainVar>

propagate

protected final void propagate(int idx1,
                               int idx2)
                        throws ContradictionException
propagate vars[idx1] <= vars[idx2]

Throws:
ContradictionException

propagate

protected final void propagate(int idx1,
                               int k1,
                               int idx2)
                        throws ContradictionException
propagate vars[idx1] + k1 <= vars[idx2]

Throws:
ContradictionException

propagateP1

public abstract void propagateP1()
                          throws ContradictionException
Throws:
ContradictionException

propagateP2

public abstract void propagateP2()
                          throws ContradictionException
Throws:
ContradictionException

isEntailed

protected final Boolean isEntailed(int idx1,
                                   int idx2)
isEntailed vars[idx1] <= vars[idx2]


isEntailed

protected final Boolean isEntailed(int idx1,
                                   int k1,
                                   int idx2)
isEntailed vars[idx1] + k1 <= vars[idx2]


isP1Entailed

public abstract Boolean isP1Entailed()

isP2Entailed

public abstract Boolean isP2Entailed()

isSatisfied

protected final boolean isSatisfied(int idx1,
                                    int idx2)

isSatisfied

protected final boolean isSatisfied(int idx1,
                                    int k1,
                                    int idx2)

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 AbstractIntSConstraint
Throws:
ContradictionException

filterOnP1P2TowardsB

public void filterOnP1P2TowardsB()
                          throws ContradictionException
Throws:
ContradictionException

awakeOnRemovals

public final 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 AbstractIntSConstraint
Throws:
ContradictionException

awakeOnSup

public final 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

awakeOnInf

public final 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

awakeOnBounds

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

propagate

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

Specified by:
propagate in class Propagator
Throws:
ContradictionException - contradiction exception

pretty

protected final String pretty(int idx1,
                              int k1,
                              int idx2)

pretty

protected final String pretty(int idx1,
                              int idx2)

pretty

protected final String pretty(String name,
                              String trueStr,
                              String falseStr)

getTotalSlack

public int getTotalSlack()
Specified by:
getTotalSlack in interface ITemporalSRelation

getForwardPreserved

public double getForwardPreserved()
Specified by:
getForwardPreserved in interface ITemporalSRelation

getBackwardPreserved

public double getBackwardPreserved()
Specified by:
getBackwardPreserved in interface ITemporalSRelation

toString

public String toString()
Overrides:
toString in class AbstractSConstraint<IntDomainVar>


Copyright © 2012. All Rights Reserved.