TLDR: The paper introduces a novel implementation of cumulative functions for scheduling problems using a Generalized Cumulative constraint and a new time-tabling filtering algorithm. This approach, implemented in the open-source solver MaxiCP, allows for modeling complex scenarios like producer-consumer problems, including tasks with negative resource consumption and optional execution. Experimental results demonstrate its competitive performance against commercial and open-source solvers, particularly in large-scale problems.
Scheduling problems are a common challenge across many industries, from manufacturing and logistics to project management. These problems involve allocating resources and sequencing tasks over time to achieve specific objectives, such as minimizing completion time or maximizing resource utilization. Modern commercial solvers have become quite sophisticated in handling these complexities, especially with features like ‘conditional time intervals’ (tasks that may or may not be executed) and ‘cumulative functions’ (which model how resources are consumed or produced over time). However, these advanced modeling capabilities have largely been absent from open-source solvers, leaving a gap for researchers and practitioners who rely on accessible tools.
A new research paper, “Implementing Cumulative Functions with Generalized Cumulative Constraints” by Pierre Schaus, Charles Thomas, and Roger Kameugne, addresses this very challenge. The authors present a novel approach to bring these powerful scheduling paradigms to open-source environments. Their work focuses on implementing these modeling techniques using a single, versatile global constraint known as the Generalized Cumulative constraint.
A Unified Approach to Resource Management
The core of their solution lies in the Generalized Cumulative constraint, which is designed to handle a wide range of resource interactions. Unlike traditional cumulative constraints, this generalized version supports tasks with ‘negative heights’—meaning tasks can not only consume resources but also produce them. This is crucial for modeling scenarios like producer-consumer problems, where one task might generate a resource that another task consumes. It also seamlessly integrates ‘optional tasks,’ where the execution of a task is not guaranteed, adding another layer of flexibility to problem modeling.
Introducing a Smarter Filtering Algorithm
To make this generalized constraint efficient, the researchers developed a new time-tabling filtering algorithm. Filtering algorithms are essential in constraint programming as they help to quickly reduce the possible range of values for variables, thereby speeding up the search for a solution. This new algorithm is specifically designed to handle tasks defined on conditional time intervals. It works in two main steps: first, it builds an ‘optimistic’ and ‘pessimistic’ profile of resource usage over time using a data structure called ‘Profile’. Second, it processes each task, comparing it against these profiles to prune (or narrow down) its possible start times, end times, durations, and even its resource consumption values. The algorithm employs four distinct filtering rules—Forbid, Mandatory, Height, and Length—to ensure robust and efficient pruning.
Real-World Performance and Scalability
The effectiveness of this new approach was rigorously tested against state-of-the-art commercial and open-source solvers, including IBM ILOG CP Optimizer and Gecode. The authors implemented their method in MaxiCP, an open-source solver. They evaluated its performance on three different types of cumulative scheduling problems:
-
RCPSP-CPR (Resource Constrained Project Scheduling Problem with Consumption and Production of Resources): This problem involves tasks that consume renewable resources and also interact with reservoir resources (e.g., water levels) by consuming at the start and producing at the end. MaxiCP performed competitively with CP Optimizer, solving a similar number of instances, indicating comparable filtering strength.
-
SMIC (Single Machine with Inventory Constraints): Here, tasks have release dates and affect an inventory level, which must stay within a specified range. While CP Optimizer showed stronger performance, the authors suggest this is due to its ability to reformulate the problem into a simpler, well-optimized disjunctive constraint, a technique not available in open-source solvers.
-
MESP (Maximum Energy Scheduling Problem): This problem involves optional tasks with variable durations and demands (which can be positive or negative), aiming to maximize total positive energy consumption. This benchmark was particularly relevant for evaluating the new filtering algorithm’s full capabilities. MaxiCP demonstrated superior scalability, solving more instances than both Gecode and CP Optimizer, especially on larger problems, and significantly reducing the need for backtracking during the search.
Also Read:
- Unpacking AI Overthinking: A Dual-Penalty Method for Sharper Reasoning
- BART: A Constraint Solver for Efficient Program Generation
Conclusion
The research successfully demonstrates how the Generalized Cumulative constraint, combined with their innovative time-tabling filtering algorithm, can effectively implement the advanced modeling paradigms of cumulative functions for scheduling problems. The experimental results highlight that this approach is not only competitive with existing commercial solvers but also offers excellent scalability, particularly for complex problems involving optional tasks and variable resource demands. This work marks a significant step forward in making sophisticated scheduling capabilities more accessible within the open-source constraint programming community.


