Class Cumulative

  • Direct Known Subclasses:
    CumulativeUnary

    public class Cumulative
    extends CumulativeBasic
    Cumulative implements the scheduling constraint using

    edge-finding (edgeFind) algorithms based on

    Petr Vilim, "Edge Finding Filtering Algorithm for Discrete Cumulative Resources in O(kn log n)", Principles and Practice of Constraint Programming - CP 2009 Volume 5732 of the series Lecture Notes in Computer Science pp 802-816.

    and

    Joseph Scott, "Filtering Algorithms for Discrete Cumulative Resources", MSc thesis, Uppsala University, Department of Information Technology, 2010, no IT 10 048,

    edge-finding algorithm with quadratic complexity (edgeFindQuad) is based on

    Roger Kameugne, Laure Pauline Fotso, Joseph Scott, and Youcheu Ngo-Kateu, "A quadratic edge-finding filtering algorithm for cumulative resource constraints", Constraints, 2014, July, vol. 19, no. 3, pp. 243--269.

    Version:
    4.7
    See Also:
    http://urn.kb.se/resolve?urn=urn:nbn:se:uu:diva-132172
    • Field Detail

      • doEdgeFind

        private boolean doEdgeFind
      • doQuadraticEdgeFind

        private boolean doQuadraticEdgeFind
      • preComputedCapacities

        private java.util.Set<java.lang.Integer> preComputedCapacities
      • preComputedCapMap

        private int[] preComputedCapMap
      • taskIncEstComparator

        protected java.util.Comparator<TaskView> taskIncEstComparator
      • taskDecLctComparator

        protected java.util.Comparator<TaskView> taskDecLctComparator
    • Constructor Detail

      • Cumulative

        public Cumulative​(IntVar[] starts,
                          IntVar[] durations,
                          IntVar[] resources,
                          IntVar limit)
        It creates a cumulative constraint.
        Parameters:
        starts - variables denoting starts of the tasks.
        durations - variables denoting durations of the tasks.
        resources - variables denoting resource usage of the tasks.
        limit - the overall limit of resources which has to be used.
      • Cumulative

        public Cumulative​(java.util.List<? extends IntVar> starts,
                          java.util.List<? extends IntVar> durations,
                          java.util.List<? extends IntVar> resources,
                          IntVar limit)
        It creates a cumulative constraint.
        Parameters:
        starts - variables denoting starts of the tasks.
        durations - variables denoting durations of the tasks.
        resources - variables denoting resource usage of the tasks.
        limit - the overall limit of resources which has to be used.
    • Method Detail

      • doQuadraticEdgeFind

        public void doQuadraticEdgeFind​(boolean doQEF)
      • consistency

        public void consistency​(Store store)
        Description copied from class: Constraint
        It is a (most probably incomplete) consistency function which removes the values from variables domains. Only values which do not have any support in a solution space are removed.
        Overrides:
        consistency in class CumulativeBasic
        Parameters:
        store - constraint store within which the constraint consistency is being checked.
      • edgeFind

        private void edgeFind​(Store store)
      • edgeFind

        private void edgeFind​(Store store,
                              TaskView[] tn)
      • edgeFindQuad

        private void edgeFindQuad​(Store store)
      • edgeFindQuad

        private void edgeFindQuad​(Store store,
                                  TaskView[] tn)
      • toString

        public java.lang.String toString()
        Description copied from class: Constraint
        It produces a string representation of a constraint state.
        Overrides:
        toString in class CumulativeBasic
      • divRoundUp

        private long divRoundUp​(long a,
                                long b)