Class PropGraphCumulative

  • All Implemented Interfaces:
    Comparable<Propagator>, ICause, Identity

    public class PropGraphCumulative
    extends PropCumulative
    Graph based cumulative Maintains incrementally overlapping tasks Performs energy checking and mandatory part based filtering BEWARE : not idempotent, use two propagators to get the fix point
    Since:
    31/01/13
    Author:
    Jean-Guillaume Fages
    • Constructor Detail

      • PropGraphCumulative

        public PropGraphCumulative​(IntVar[] s,
                                   IntVar[] d,
                                   IntVar[] e,
                                   IntVar[] h,
                                   IntVar capa,
                                   boolean fast,
                                   CumulFilter... filters)
        Graph-based cumulative propagator: - only filters over subsets of overlapping tasks
        Parameters:
        s - start variables
        d - duration variables
        e - end variables
        h - height variables
        capa - capacity variable
        fast - reduces the number of propagation (less filtering)
        filters - filtering algorithm to use
    • Method Detail

      • propagate

        public void propagate​(int evtmask)
                       throws ContradictionException
        Description copied from class: Propagator
        Call the main filtering algorithm to apply to the Domain of the Variable objects. It considers the current state of this objects to remove some values from domains and/or instantiate some variables. Calling this method is done from 2 (and only 2) steps:
        - at the initial propagation step,
        - when involved in a reified constraint.
        It should initialized the internal data structure and apply filtering algorithm from scratch.
        Overrides:
        propagate in class PropCumulative
        Parameters:
        evtmask - type of propagation event this must consider.
        Throws:
        ContradictionException - when a contradiction occurs, like domain wipe out or other incoherencies.
      • propagate

        public void propagate​(int varIdx,
                              int mask)
                       throws ContradictionException
        Description copied from class: Propagator
        Incremental filtering algorithm defined within the Propagator, called whenever the variable of index idxVarInProp has changed. This method calls a CUSTOM_PROPAGATION (coarse-grained) by default.

        This method should be overridden if the argument reactToFineEvt is set to true in the constructor. Otherwise, it executes propagate(PropagatorEventType.CUSTOM_PROPAGATION.getStrengthenedMask());

        Overrides:
        propagate in class Propagator<IntVar>
        Parameters:
        varIdx - index of the variable var in this
        mask - type of event
        Throws:
        ContradictionException - if a contradiction occurs