choco.cp.solver.constraints.global.scheduling
Class AbstractResourceSConstraint

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.kernel.solver.constraints.global.scheduling.AbstractTaskSConstraint
                      extended by choco.cp.solver.constraints.global.scheduling.AbstractResourceSConstraint
All Implemented Interfaces:
IExtensionnable, IPretty, IResource<TaskVar>, IResourceParameters, SConstraint<IntDomainVar>, IntPropagator, TaskPropagator, Serializable, Cloneable, EventListener
Direct Known Subclasses:
AbstractCumulativeSConstraint, Disjunctive, ForbiddenIntervals

public abstract class AbstractResourceSConstraint
extends AbstractTaskSConstraint
implements IResource<TaskVar>

Since:
23 janv. 2009 version 2.0.0
Version:
2.0.3
Author:
Arnaud Malapert
See Also:
Serialized Form

Field Summary
protected  BitMask flags
           
protected  int indexUB
           
protected  choco.cp.solver.constraints.global.scheduling.AbstractResourceSConstraint.RMakespan makespan
           
protected  String name
           
protected  IRTask[] rtasks
           
static int TASK_MASK
           
 
Fields inherited from class choco.kernel.solver.constraints.global.scheduling.AbstractTaskSConstraint
endOffset, startOffset, taskIntVarOffset, taskvars
 
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
AbstractResourceSConstraint(Solver solver, String name, TaskVar[] taskvars, int nbOptionalTasks, boolean enableHeights, boolean enableHypotheticalDomain, IntDomainVar... intvars)
          Create a ressource constraint.
AbstractResourceSConstraint(Solver solver, String name, TaskVar[] taskvars, IntDomainVar makespan)
           
 
Method Summary
 List<IRTask> asRTaskList()
           
 List<TaskVar> asTaskList()
          A view of the resource as an immutable list.
 void awake()
          Propagation: Propagating the constraint for the very first time until local consistency is reached.
 void awakeOnBounds(int varIndex)
           
 void awakeOnInf(int varIdx)
          Default propagation on improved lower bound: propagation on domain revision.
 void awakeOnInst(int idx)
          Default propagation on instantiation: full constraint re-propagation.
 void awakeOnSup(int varIdx)
          Default propagation on improved upper bound: propagation on domain revision.
 boolean checkTask(int varIdx)
           
 void enforceTaskConsistency()
           
 void fireTaskRemoval(IRTask rtask)
           
 int getFilteredEventMask(int idx)
           
 BitMask getFlags()
           
protected  int getHeight(int[] tuple, int tidx)
           
protected  int getHeightIndex(int taskIdx)
          do not use subclass fields to compute the index because the function is called by the constructor.
 int getNbOptionalTasks()
           
 int getNbRegularTasks()
           
 String getRscName()
           
 IRTask getRTask(int idx)
           
 Iterator<IRTask> getRTaskIterator()
           
 Iterator<TaskVar> getTaskIterator()
          an iterator over all tasks
protected  int getUsageIndex(int taskIdx)
          do not use subclass fields to compute the index because the function is called by the constructor.
 int indexOf(TaskVar task)
           
 boolean isCumulativeSatisfied(int[] tuple, int consumption, int capacity)
           
protected  boolean isRegular(int[] tuple, int tidx)
           
protected  boolean isTaskSatisfied(int[] tuple, int tidx)
          returns (s_i + p_i = e_i)
 String pretty()
          pretty printing of the object.
abstract  void readOptions(List<String> options)
           
 
Methods inherited from class choco.kernel.solver.constraints.global.scheduling.AbstractTaskSConstraint
addListener, awakeOnHypDomMod, awakeOnRem, awakeOnRemovals, createTaskVarArray, getDurationIndex, getEndIndex, getNbTasks, getStartIndex, getTask, getTaskIntVarOffset, isTaskConsistencyEnforced, makeIntVarArray, pretty
 
Methods inherited from class choco.kernel.solver.constraints.integer.AbstractIntSConstraint
getConstraintType, isConsistent, isSatisfied, isSatisfied
 
Methods inherited from class choco.kernel.solver.constraints.AbstractSConstraint
addExtension, clone, getAbstractSConstraintExtensionNumber, getConstraintIdx, getExtension, getFineDegree, getNbVarNotInst, getNbVars, getVar, getVarQuick, isCompletelyInstantiated, isEntailed, opposite, setConstraintIndex, setExtension, setVar, toString
 
Methods inherited from class choco.kernel.solver.propagation.Propagator
activate, constAwake, fail, getEvent, getPriority, isActive, propagate, setActive, setActiveSilently, setEntailed, setPassive, setPropagationEngine
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface choco.kernel.solver.constraints.global.scheduling.IResource
getNbTasks, getTask
 

Field Detail

TASK_MASK

public static final int TASK_MASK
See Also:
Constant Field Values

rtasks

protected final IRTask[] rtasks

makespan

protected final choco.cp.solver.constraints.global.scheduling.AbstractResourceSConstraint.RMakespan makespan

name

protected final String name

flags

protected final BitMask flags

indexUB

protected final int indexUB
Constructor Detail

AbstractResourceSConstraint

public AbstractResourceSConstraint(Solver solver,
                                   String name,
                                   TaskVar[] taskvars,
                                   IntDomainVar makespan)

AbstractResourceSConstraint

public AbstractResourceSConstraint(Solver solver,
                                   String name,
                                   TaskVar[] taskvars,
                                   int nbOptionalTasks,
                                   boolean enableHeights,
                                   boolean enableHypotheticalDomain,
                                   IntDomainVar... intvars)
Create a ressource constraint.

Parameters:
solver -
name - the ressource name
taskvars - the tasks using the resources
enableHypotheticalDomain -
uppBound - is an integer variable such that max(end(T))<= uppBound
otherVars - = [ u_k, ...,u_n,h_1,...,h_n,v_1,v_m, ub, cste:1]
Method Detail

readOptions

public abstract void readOptions(List<String> options)

indexOf

public final int indexOf(TaskVar task)

getNbRegularTasks

public final int getNbRegularTasks()
Specified by:
getNbRegularTasks in interface IResourceParameters

getNbOptionalTasks

public final int getNbOptionalTasks()
Specified by:
getNbOptionalTasks in interface IResourceParameters

getFilteredEventMask

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

getRTask

public final IRTask getRTask(int idx)
Specified by:
getRTask in interface IResource<TaskVar>

getUsageIndex

protected final int getUsageIndex(int taskIdx)
do not use subclass fields to compute the index because the function is called by the constructor.


getHeightIndex

protected final int getHeightIndex(int taskIdx)
do not use subclass fields to compute the index because the function is called by the constructor.


enforceTaskConsistency

public final void enforceTaskConsistency()
                                  throws ContradictionException
Throws:
ContradictionException

getFlags

public final BitMask getFlags()

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

checkTask

public final boolean checkTask(int varIdx)
                        throws ContradictionException
Throws:
ContradictionException

awakeOnBounds

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

awakeOnInf

public void awakeOnInf(int varIdx)
                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

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

awakeOnSup

public void awakeOnSup(int varIdx)
                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

fireTaskRemoval

public void fireTaskRemoval(IRTask rtask)

isTaskSatisfied

protected final boolean isTaskSatisfied(int[] tuple,
                                        int tidx)
returns (s_i + p_i = e_i)


isRegular

protected final boolean isRegular(int[] tuple,
                                  int tidx)

getHeight

protected final int getHeight(int[] tuple,
                              int tidx)

isCumulativeSatisfied

public final boolean isCumulativeSatisfied(int[] tuple,
                                           int consumption,
                                           int capacity)

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 AbstractTaskSConstraint
Returns:
a readable string representation of the object

getRscName

public final String getRscName()
Specified by:
getRscName in interface IResourceParameters

asTaskList

public final List<TaskVar> asTaskList()
Description copied from interface: IResource
A view of the resource as an immutable list.

Specified by:
asTaskList in interface IResource<TaskVar>

asRTaskList

public List<IRTask> asRTaskList()
Specified by:
asRTaskList in interface IResource<TaskVar>

getTaskIterator

public final Iterator<TaskVar> getTaskIterator()
Description copied from interface: IResource
an iterator over all tasks

Specified by:
getTaskIterator in interface IResource<TaskVar>
Returns:

getRTaskIterator

public final Iterator<IRTask> getRTaskIterator()
Specified by:
getRTaskIterator in interface IResource<TaskVar>


Copyright © 2012. All Rights Reserved.