Table of Contents
Fetching ...

Implementing Cumulative Functions with Generalized Cumulative Constraints

Pierre Schaus, Charles Thomas, Roger Kameugne

TL;DR

This work tackles scheduling with conditional time intervals and cumulative functions, a modeling paradigm not available in open-source solvers. It introduces Generalized Cumulative, a flexible global constraint, and a time-table filtering algorithm built on a Profile data structure to efficiently prune variable domains. The approach is validated on RCPSP-CPR, SMIC, and MESP problems, showing competitive scalability against commercial CPOptimizer and open-source Gecode, while preserving support for negative heights and optional tasks. The authors provide open-source MaxiCP implementations and outline future enhancements, including explanations and potential gains for CP-SAT-based solvers.

Abstract

Modeling scheduling problems with conditional time intervals and cumulative functions has become a common approach when using modern commercial constraint programming solvers. This paradigm enables the modeling of a wide range of scheduling problems, including those involving producers and consumers. However, it is unavailable in existing open-source solvers and practical implementation details remain undocumented. In this work, we present an implementation of this modeling approach using a single, generic global constraint called the Generalized Cumulative. We also introduce a novel time-table filtering algorithm specifically designed to handle tasks defined on conditional time-intervals. Experimental results demonstrate that this approach, combined with the new filtering algorithm, performs competitively with existing solvers enabling the modeling of producer and consumer scheduling problems and effectively scales to large-scale problems.

Implementing Cumulative Functions with Generalized Cumulative Constraints

TL;DR

This work tackles scheduling with conditional time intervals and cumulative functions, a modeling paradigm not available in open-source solvers. It introduces Generalized Cumulative, a flexible global constraint, and a time-table filtering algorithm built on a Profile data structure to efficiently prune variable domains. The approach is validated on RCPSP-CPR, SMIC, and MESP problems, showing competitive scalability against commercial CPOptimizer and open-source Gecode, while preserving support for negative heights and optional tasks. The authors provide open-source MaxiCP implementations and outline future enhancements, including explanations and potential gains for CP-SAT-based solvers.

Abstract

Modeling scheduling problems with conditional time intervals and cumulative functions has become a common approach when using modern commercial constraint programming solvers. This paradigm enables the modeling of a wide range of scheduling problems, including those involving producers and consumers. However, it is unavailable in existing open-source solvers and practical implementation details remain undocumented. In this work, we present an implementation of this modeling approach using a single, generic global constraint called the Generalized Cumulative. We also introduce a novel time-table filtering algorithm specifically designed to handle tasks defined on conditional time-intervals. Experimental results demonstrate that this approach, combined with the new filtering algorithm, performs competitively with existing solvers enabling the modeling of producer and consumer scheduling problems and effectively scales to large-scale problems.

Paper Structure

This paper contains 34 sections, 10 equations, 14 figures, 1 table, 4 algorithms.

Figures (14)

  • Figure 1: Elementary cumulative functions.
  • Figure 2: Example \ref{['ex:cumfun']}: AST (left) and cumul. function (right).
  • Figure 3: Representation of the tasks of Example \ref{['ex:profile']} with the resulting minimum ($\underline{P}$) and maximum ($\overline{P}$) profile.
  • Figure 4: Timetabling processing order for a task with a fixed part (top) and one without (bottom). Those steps (1, 2, 3, and 3') are also referenced in Algorithm \ref{['algo:timetabling']} comments.
  • Figure 5: Representation of the tasks of Example \ref{['ex:profile']} after timetabling. Adjustments are shown as gray arrows when applicable.
  • ...and 9 more figures

Theorems & Definitions (10)

  • Example 1
  • Example 2
  • Definition 1
  • Definition 2
  • Example 3
  • Example 4
  • Example 5
  • Example 6
  • Example 7
  • Example 8