Laurent Michel and Pascal Van Hentenryck
Cumulative scheduling is a generalization of jobshop scheduling, where machines have discrete capacities and activities may require several capacity units. This paper considers iterative flattening, a heuristic procedure aiming at producing high-quality solutions to large cumulative problems in reasonable time. On standard benchmarks (with as much as 900 activities), iterative flattening quickly delivers solutions that are within 10% of the best upper bounds in average. This paper analyzes iterative flattening and identifies a pathological behaviour which explains why it may result in solutions where resources are under-utilized in early parts of the schedules. It proposes a simple extension of the algorithm which has dramatic effect on the quality of the solutions, while preserving its computational efficiency. The new algorithm found 21 new best upper bounds to the same benchmarks and quickly delivers solutions that are within 1% of the best available upper bounds in the average.