A Quadratic Edge-Finding Filtering Algorithm for Cumulative Resource Constraints
Abstract
The cumulative scheduling constraint, which enforces the sharing of a finite resource by several tasks, is widely used in constraint-based scheduling applications. Propagation of the cumulative constraint can be performed by several different filtering algorithms, often used in combination. One of the most important and successful of these filtering algorithms is edge-finding. Recent work by Vilím has resulted in a \(\mathcal{O}(kn \log n)\) algorithm for cumulative edge-finding, where n is the number of tasks and k is the number of distinct capacity requirements. In this paper, we present a sound \(\mathcal{O}(n^2)\) cumulative edge-finder. This algorithm reaches the same fixpoint as previous edge-finding algorithms, although it may take additional iterations to do so. While the complexity of this new algorithm does not strictly dominate Vilím’s for small k, experimental results on benchmarks from the Project Scheduling Problem Library suggest that it typically has a substantially reduced runtime. Furthermore, the results demonstrate that in practice the new algorithm rarely requires more propagations than previous edge-finders.
Keywords
Schedule Problem Release Date Outer Loop Project Schedule Problem Early Start TimePreview
Unable to display preview. Download preview PDF.
References
- 1.Baptiste, P., Le Pape, C.: Constraint propagation and decomposition techniques for highly disjunctive and highly cumulative project scheduling problems. In: Smolka, G. (ed.) CP 1997. LNCS, vol. 1330, pp. 375–389. Springer, Heidelberg (1997)CrossRefGoogle Scholar
- 2.Baptiste, P., Le Pape, C., Nuijten, W.: Constraint-based scheduling: applying constraint programming to scheduling problems. Kluwer, Boston (2001)CrossRefMATHGoogle Scholar
- 3.Carlier, J., Pinson, E.: Adjustment of heads and tails for the job-shop problem. European Journal of Operational Research 78, 146–161 (1994)CrossRefMATHGoogle Scholar
- 4.Caseau, Y., Laburthe, F.: Improved CLP scheduling with task intervals. In: Van Hentenryck, P. (ed.) ICLP94, pp. 369–383. MIT Press, Boston (1994)Google Scholar
- 5.Gecode Team: Gecode, a generic constraint development environment (2006), http://www.gecode.org
- 6.Kameugne, R., Fotso, L.P.: A not-first/not-last algorithm for cumulative resource in \(\mathcal{O}(n^2\log n)\) (2010) (accepted to CP 2010 Doctoral Program)Google Scholar
- 7.Kolisch, R., Sprecher, A.: PSPLIB – A project scheduling problem library. European Journal of Operational Research 96(1), 205–216 (1997)CrossRefMATHGoogle Scholar
- 8.Mercier, L., Van Hentenryck, P.: Edge finding for cumulative scheduling. INFORMS Journal on Computing 20(1), 143–153 (2008)MathSciNetCrossRefMATHGoogle Scholar
- 9.Nuijten, W.: Time and resource constrained scheduling: a constraint satisfaction approach. PhD thesis, Eindhoven University of Technology (1994)Google Scholar
- 10.Schutt, A., Wolf, A.: A New \(\mathcal{O}(n^2\log n)\) Not-First/Not-Last Pruning Algorithm for Cumulative Resource Constraints. In: Cohen, D. (ed.) CP 2010. LNCS, vol. 6308, pp. 445–459. Springer, Heidelberg (2010)CrossRefGoogle Scholar
- 11.Vilím, P.: Global constraints in scheduling. PhD thesis, Charles University, Prague (2007)Google Scholar
- 12.Vilím, P.: Max energy filtering algorithm for discrete cumulative resources. In: van Hoeve, W.-J., Hooker, J.N. (eds.) CPAIOR 2009. LNCS, vol. 5547, pp. 66–80. Springer, Heidelberg (2009)CrossRefGoogle Scholar
- 13.Vilím, P.: Edge Finding Filtering Algorithm for Discrete Cumulative Resources in \(\mathcal{O}(kn\log n)\). In: Gent, I.P. (ed.) CP 2009. LNCS, vol. 5732, pp. 802–816. Springer, Heidelberg (2009)CrossRefGoogle Scholar
- 14.Wolf, A., Schrader, G.: \(\mathcal{O}(n \log n)\) overload checking for the cumulative constraint and its application. In: Umeda, M., Wolf, A., Bartenstein, O., Geske, U., Seipel, D., Takata, O., et al. (eds.) INAP 2005. LNCS (LNAI), vol. 4369, pp. 88–101. Springer, Heidelberg (2006)CrossRefGoogle Scholar