# Time symmetry of resource constrained project scheduling with general temporal constraints and take-give resources

- 359 Downloads
- 5 Citations

## Abstract

The paper studies a lacquer production scheduling problem formulated as a resource constrained project scheduling problem with general temporal constraints (i.e., positive and negative time-lags). This real-world scheduling problem requires so-called take-give resources that are needed from the beginning of an activity to the completion of another activity of the production process. Furthermore, we consider sequence dependent changeover times on take-give resources. We formulate this problem by mixed integer linear programming and we suggest a parallel heuristic to solve the problem. This heuristic exploits a time symmetry mapping which allows an easy construction of a schedule in the backward time orientation. In the second part of the paper, it is proven that the time symmetry mapping is bijective and involutive even for the problem with general temporal constraints, changeover times, and take-give resources. The motivation to use this mapping is to improve the performance of the heuristic and to simplify its implementation. Finally, the performance of the heuristic algorithm is evaluated on a set of lacquer production benchmarks requiring take-give resources and on standard benchmarks for the resource constrained project scheduling problem with general temporal constraints where we found new better solutions in 16 and 12 instances out of 90 for UBO500 and UBO1000 respectively.

## Keywords

Scheduling algorithms Project scheduling General temporal constraints Backward scheduling Additional resources## List of symbols

- \(a_{{ ilk}}\)
Binary constant indicating the requirement of take-give resource

*k*for occupation*i*i.e., \(a_{{ ilk}}=1\) iff take-give resource*k*is taken at \(s_i\) and given (released) at \(C_l\)*b*Number of take-give resources

- \(C_i\)
Completion time of activity

*i*- \(C_{{ max}}\)
Schedule makespan

- \(d_{{ ij}}\)
Length of the longest path from node

*i*to node*j**G*Graph

*i*,*j*,*l*,*h*Activity indices

*I*Instance, given by the input parameters of the scheduling problem

*k*Resource index

*m*Number of resources

*n*Number of activities

- \(o_{{ ij}}\)
Changeover time (sequence dependent set-up time) from activity

*i*to activity*j*- \(\tilde{o}_{{ ij}}\)
Changeover time (sequence dependent set-up time) from occupation

*i*to occupation*j*- \(p_i\)
Processing time of activity

*i*- \(\tilde{p}_i\)
Processing time of occupation

*i*i.e., \(\tilde{p}_{i}=C_l - s_i\) iff exists take-give resource*k*taken at \(s_i\) and given at \(C_l\)- \(Q_k\)
Capacity of take-give resource

*k*in number of units- \(r_{{ ik}}\)
Requirement of resource

*k*for activity*i*- \(R_k\)
Capacity of resource

*k*in number of units*S*Schedule, given by variables

*s*,*z*- \(s_i\)
Start time of activity

*i*- \({ UB}\)
Upper bound on schedule makespan

*v*Unit index

- \(x_{{ ij}}\)
Binary variable indicating whether activity

*i*precedes activity*j*on one resource unit- \(\tilde{x}_{{ ij}}\)
Binary variable indicating whether occupation

*i*precedes occupation*j*on one take-give resource unit- \(y_{{ ij}}\)
Binary variable indicating whether activity

*i*and activity*j*must be assigned to different units of common resources i.e. if \(y_{{ ij}}=1\) then \(\forall k \in \left\{ 1,\ldots ,m\right\} , \forall v \in \left\{ 1,\ldots ,R_k\right\} ; z_{{ ivk}} \cdot z_{jvk} \ne 1 \)- \(\tilde{y}_{{ ij}}\)
Binary variable indicating whether occupation

*i*and occupation*j*must be assigned to different units of common take-give resource i.e., if \(\tilde{y}_{{ ij}}=1\) then \(\forall k \in \left\{ 1,\ldots ,b\right\} , \forall v \in \left\{ 1,\ldots ,Q_k\right\} ; \tilde{z}_{{ ivk}} \cdot \tilde{z}_{jvk} \ne 1 \)- \(z_{{ ivk}}\)
assignment binary variable i.e., \(z_{{ ivk}}=1\) iff activity

*i*is assigned to unit*v*of resource*k*- \(\tilde{z}_{{ ivk}}\)
Take-give assignment binary variable i.e., \(\tilde{z}_{{ ivk}}=1\) iff occupation

*i*is assigned to unit*v*of take-give resource*k*- \(\delta _{{ ij}}\)
Length of edge \(e_{{ ij}}\)

- \(\mathcal {E}\)
Set of edges \(e_{{ ij}}\)

- \(\mathcal {M}\)
Set of resource conflicts between two activities i.e., unordered couple \(\left\{ i,j\right\} \in \mathcal {M}\) iff \(\exists k \in \left\{ 1,\ldots ,m \right\} ; r_{{ ik}} \cdot r_{jk} \ge 1\) and \(R_k < \infty \) and \((~d_{{ ij}} < (p_i + o_{{ ij}})\) and \(~d_{ji} < (p_j + o_{ji}))\)

- \(\mathcal {Q}\)
Set of take-give resources

- \(\mathcal {R}\)
Set of resources

- \(\mathcal {S}\)
Set of feasible schedules

- \(\mathcal {V}\)
Set of activities

## Notes

### Acknowledgments

The authors would like to thank Mirko Navara from the Czech Technical University and anonymous reviewers for their valuable comments and inspirational suggestions. This work was supported by the Grant Agency of the Czech Republic under the Project GACR P103-16-23509S.

## References

- Artigues, C., & Briand, C. (2009). The resource-constrained activity insertion problem with minimum and maximum time lags.
*Journal of Scheduling*,*12*(5), 447–460.CrossRefGoogle Scholar - Ballestín, F., Barrios, A., & Valls, V. (2011). An evolutionary algorithm for the resource-constrained project scheduling problem with minimum and maximum time lags.
*Journal of Scheduling*,*14*(4), 391–406.CrossRefGoogle Scholar - Bartels, J. H., Gather, T., & Zimmermann, J. (2011). Dismantling of nuclear power plants at optimal NPV.
*Annals of Operations Research*,*186*(1), 407–427.CrossRefGoogle Scholar - Behrmann, G., Brinksma, E., Hendriks, M., Mader, A. (2005). Production scheduling by reachability analysis - a case study. In: Workshop on parallel and distributed real-time systems, p. 140. IEEE Computer Society Press.Google Scholar
- Brucker, P., Hilbig, T., & Hurink, J. (1999). A branch and bound algorithm for a single-machine scheduling problem with positive and negative time-lags.
*Discrete Applied Mathematics*,*94*(1–3), 77–99.CrossRefGoogle Scholar - Brucker, P., & Kampmeyer, T. (2008). Cyclic job shop scheduling problems with blocking.
*Annals of Operations Research*,*159*(1), 161–181.CrossRefGoogle Scholar - Bukata, L., Sucha, P., & Hanzalek, Z. (2015). Solving the resource constrained project scheduling problem using the parallel tabu search designed for the CUDA platform.
*Journal of Parallel and Distributed Computing*,*77*, 58–68.CrossRefGoogle Scholar - Cesta, A., Oddi, A., & Smith, S. F. (2002). A constraint-based method for project scheduling with time windows.
*Journal of Heuristics*,*8*(1), 109–136.CrossRefGoogle Scholar - Demeulemeester, E.L., Herroelen, W. (2002). Project scheduling: A research handbook. KluwerGoogle Scholar
- El Hachemi, N., El Hallaoui, I., Gendreau, M., & Rousseau, L. M. (2015). Flow-based integer linear programs to solve the weekly log-truck scheduling problem.
*Annals of Operations Research*,*232*(1), 87–97.Google Scholar - Franck, B., Neumann, K., & Schwindt, C. (2001). Truncated branch-and-bound, schedule-construction, and schedule-improvement procedures for resource-constrained project scheduling.
*OR Spektrum*,*23*(3), 297–324.CrossRefGoogle Scholar - Gafarov, E., Lazarev, A., & Werner, F. (2014). Approximability results for the resource-constrained project scheduling problem with a single type of resources.
*Annals of Operations Research*,*213*(1), 115–130.CrossRefGoogle Scholar - Herroelen, W., De Reyck, B., Demeulemeester, E. (1998). Resource-constrained project scheduling : A survey of recent developments. Computers and Operations Research
**25**(4), 279–302 ElsevierGoogle Scholar - Hurink, J., Kok, A., Paulus, J., & Schutten, J. (2011). Time-constrained project scheduling with adjacent resources.
*Computers and Operations Research*,*38*(1), 310–319. Elsevier.CrossRefGoogle Scholar - Kelbel, J., Hanzálek, Z. (2006) A case study on earliness/tardiness scheduling by constraint programming. In: Twelfth International Conference on Principles and Practice of Constraint Programming, pp. 108–113. Laboratoire d’Informatique de Nantes AtlantiqueGoogle Scholar
- Kolisch, R., & Hartmann, S. (2006). Experimental investigation of heuristics for resource-constrained project scheduling: An update.
*European Journal of Operational Research*,*174*(1), 23–37.CrossRefGoogle Scholar - Laborie, P. (2003). Algorithms for propagating resource constraints in AI planning and scheduling: Existing approaches and new results.
*Artificial Intelligence*,*143*(2), 151–188.CrossRefGoogle Scholar - Lambrechts, O., Demeulemeester, E., & Herroelen, W. (2011). Time slack-based techniques for robust project scheduling subject to resource uncertainty.
*Annals of Operations Research*,*186*(1), 443–464.CrossRefGoogle Scholar - Li, K., & Willis, R. (1992). An iterative scheduling technique for resource-constrained project scheduling.
*European Journal of Operational Research*,*56*(3), 370–379.CrossRefGoogle Scholar - Mascis, A., & Pacciarelli, D. (2002). Job-shop scheduling with blocking and no-wait constraints.
*European Journal of Operational Research*,*143*(3), 498–517.CrossRefGoogle Scholar - Mellentien, C., Schwindt, C., & Trautmann, N. (2004). Scheduling the factory pick-up of new cars.
*OR Spectrum*,*26*(4), 579–601.CrossRefGoogle Scholar - Neumann, K., Schwindt, C., & Zimmermann, J. (2003).
*Project scheduling with time windows and scarce resources*. Berlin: Springer.CrossRefGoogle Scholar - Neumann, K., & Schwindt, C. (2002). Project scheduling with inventory constraints.
*Mathematical Methods of Operations Research*,*56*(3), 513–533.CrossRefGoogle Scholar - Palpant, M., Artigues, C., & Michelon, P. (2004). LSSPER: Solving the resource-constrained project scheduling problem with large neighbourhood search.
*Annals of Operations Research*,*131*(1–4), 237–257.CrossRefGoogle Scholar - Rau, B.R. (2000). Iterative modulo scheduling. In: PROGRESS 2000 Workshop on Embedded Systems, Utrecht, The Netherlands.Google Scholar
- Schwindt, C. (2005).
*Resource allocation in project management*. Berlin: Springer.Google Scholar - Schwindt, C., & Trautmann, N. (2003). Scheduling the production of rolling ingots: Industrial context, model and solution method.
*International Transactions in Operational Research*,*10*(6), 547–563.CrossRefGoogle Scholar - Smith, T.B. (2004) An effective algorithm for project scheduling with arbitrary temporal constraints. In: Proceedings of the 19th National Conference on Artificial Intelligence., pp. 544–549. AAAI Press, Menlo Park, California, San Jose, California, USA.Google Scholar
- Sobeyko, O., & Mönch, L. (2015). Grouping genetic algorithms for solving single machine multiple orders per job scheduling problems.
*Annals of Operations Research*,*235*(1), 709–739.CrossRefGoogle Scholar - Terada, J., Vo, H., Joslin, D. (2006). Combining genetic algorithms with squeaky-wheel optimization. In: GECCO ’06: Proceedings of the 8th annual conference on Genetic and evolutionary computation, pp. 1329–1336. ACM Press, New York, NY, USA.Google Scholar
- Tormos, P., & Lova, A. (2001). A competitive heuristic solution technique for resource-constrained project scheduling.
*Annals of Operations Research*,*102*(1–4), 65–81.CrossRefGoogle Scholar - Valls, V., Ballestin, F., & Quintanilla, S. (2005). Justification and RCPSP: A technique that pays.
*European Journal of Operational Research*,*165*(2), 375–386. Project Management and Scheduling.CrossRefGoogle Scholar