Skip to main content
Log in

Integration of routing into a resource-constrained project scheduling problem

  • Original Paper
  • Published:
EURO Journal on Computational Optimization

Abstract

The resource-constrained project scheduling problem (RCPSP), one of the most challenging combinatorial optimization scheduling problems, has been the focus of a great deal of research, resulting in numerous publications in the last decade. Previous publications focused on the RCPSP, including several extensions with different objectives to be minimized and constraints to be checked. The present work investigates the integration of the routing, i.e., the transport of the resources between activities into the RCPSP, and provides a new resolution scheme. The two subproblems are solved using an integrated approach that draws on both a disjunctive graph model and an explicit modeling of the routing. The resolution scheme takes advantage of an indirect representation of the solution to define both the schedule of activities and the routing of vehicles. The routing solution is modeled by a set of trips that define the loaded transport operations of vehicles that are induced by the flow in the graph. The numerical experiments prove that the models and the methods introduced in this paper are promising for solving the RCPSP with routing.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16

Similar content being viewed by others

References

  • Adnen EA, Mohsen E (2016) An efficient new heuristic for the hoist scheduling problem. Comput Oper Res 67:184–192

    Google Scholar 

  • Afsar HM, Lacomme P, Ren L, Prodhon C, Vigo D (2016) Resolution of a Job-Shop problem with transportation constraints: a master/slave approach. IFAC-PapersOnLine 49(12):898–903

    Google Scholar 

  • Ahuja RV, Magnanti TL, Orlin JB (1993) Network flows: theory/applications. Prentice hall, Upper Saddle River

    Google Scholar 

  • Alvarez-Valdés R, Tamarit JM (1993) The project scheduling polyhedron: dimension, facets and lifting theorems. EJOR 67:204–220

    Google Scholar 

  • Artigues C, Roubellat F (2000) A polynomial insertion algorithm in RCPSP with cumulative constraints and multiple nodes. EJOR 127(2):297–316

    Google Scholar 

  • Artigues C, Michelon P, Reusser S (2003) Insertion for static/dyn. RCPSP EJOR 149:249–267

    Google Scholar 

  • Beasley JE (1983) Route-first cluster-second methods for vehicle routing. Omega 11:403–408

    Google Scholar 

  • Blazewicz J, Lenstra JK, Rinooy Kan AHG (1983) Scheduling subject to resource constraints: classification and complexity. Discret Appl Math 5:11–24

    Google Scholar 

  • Boudia M, Prins C, Reghioui M (2007) An effective memetic algorithm with population management for the split delivery vehicle routing problem. Hybrid Metaheuristics. Springer, Berlin Heidelberg, pp 16–30

    Google Scholar 

  • Brucker P, Drexl A, Mohring R, Neumann K, Pesch E (1999) Resource-constrained project scheduling: notation, classification, models, and methods. EJOR 112(1):3–41

    Google Scholar 

  • Brucker P, Knust S, Roper D, Zinde Y (2000) Scheduling UET task system with concurrency on two parallel identical processors. Math Methods Oper Res 53:369–387

    Google Scholar 

  • Caumond A, Lacomme P, Moukrim A, Tchernev N (2009) An MILP for scheduling problems in a FMS with one vehicle. EJOR 199(3):706–722

    Google Scholar 

  • Chassaing M (2015) Problèmes de transport à la demande avec prise en compte de la qualité de service. Doctoral dissertation. Blaise Pascal University, Clermont-Ferrand, N° d’ordre: D. U: 2631

  • Chen ZL (2010) Integrated production and outbound distribution scheduling: review and extensions. Oper Res 58(1):130–148

    Google Scholar 

  • Cheng R, Gen M, Tsujimura Y (1996) A tutorial survey of job-shop scheduling problems using genetic algorithms—I representation. Comput Ind Eng 30:983–997

    Google Scholar 

  • Chtourou S, Manier M-A, Loukil T (2013) A hybrid algorithm for the cyclic hoist scheduling problem with two transportation resources. Comput Ind Eng 65(3):426–437

    Google Scholar 

  • Cordeau J-F, Laporte G (2003) A tabu search heuristic for the static multi-vehicle dial-a ride problem. Transp Res Part B Methodol 37:579–594

    Google Scholar 

  • Dauzère-Pérès S, Lasserre JB (1995). A new mixed-integer formulation of the flow-shop sequencing problem. In: 2nd Workshop on models and algorithms for planning and scheduling problems, Wernigerode, Germany

  • Dell’amico M, Trubian M (1993) Applying tabu-search to the job-shop scheduling problem. Ann Oper Res 41:231–252

    Google Scholar 

  • Demeulemeester E, Herroelen W (2002) Project scheduling—a research and book international series. Operations Research and Management Science, Kluwer Academic Publishers, Boston

    Google Scholar 

  • Dongarra J (2014) Performance of various computers using standard linear equations software. Report CS-89-85, University of Manchester

  • Duhamel C, Lacomme P, Prodhon C (2011) Efficient frameworks for greedy split and new depth first search split procedures for routing problems. Comput Oper Res 38(4):723–739

    Google Scholar 

  • Duhamel C, Lacomme P, Prodhon C (2012) A hybrid evolutionary local search with depth first search split procedure for the heterogeneous vehicle routing problems. Eng Appl Artif Intell 25(2):345–358

    Google Scholar 

  • Feo TA, Resende MGC (1995) Greedy randomized adaptive search procedures. J Glob Optim 6(2):109–133

    Google Scholar 

  • Firat M, Woeginger GJ (2011) Analysis of the dial-a-ride problem of Hunsaker and Savelsbergh. Oper Res Lett 39:32–35

    Google Scholar 

  • Hartmann S, Briskorn D (2010) A survey of variants and extensions of the resource-constrained project scheduling problem. Eur J Oper Res 207(1):1–14

    Google Scholar 

  • Herroelen W, De Reyck B, Demeulemeester E (1998) Resource-constrained project scheduling: a survey of recent developments. Comput Oper Res 25(4):279–302

    Google Scholar 

  • Honglin Q, Sujing W, Qiang Xu (2016) A new method of cyclic hoist scheduling for multi-recipe and multi-stage material handling processes. Comput Chem Eng 90:171–187

    Google Scholar 

  • Knust S (1999) Shop-scheduling problems with transportation. Ph.D. thesis. Fachbereich Mathematik/Informatik, Universität Osnabrück

  • Kolisch R, Padman R (2001) An integrated survey of deterministic project scheduling. OMEGA 29:249–272

    Google Scholar 

  • Kreter S, Rieck J, Zimmermann JA (2016) Models and solution procedures for the resource-constrained project scheduling problem with general temporal constraints and calendars. Eur J Oper Res 251:387–403

    Google Scholar 

  • Krüger D, Scholl A (2009) A heuristic solution framework for the resource constrained (multi-) project scheduling problem with sequence-dependent transfer time. EJOR 197(2):492–508

    Google Scholar 

  • Laarhoven VPJM, Aarts EHL, Lenstra JK (1992) Job shop scheduling by Simulated Annealing. Oper Res 40(1):113–125

    Google Scholar 

  • Lacomme P, Prins C, Ramdane-Cherif W (2001) Competitive genetic algorithms for the capacitated arc routing problem and its extensions. Lect Notes Comput Sci 2037:473–483

    Google Scholar 

  • Lacomme P, Prins C, Ramdane-Chérif W (2004) Competitive memetic algorithms for arc routing problems. Ann Oper Res 131:159–185

    Google Scholar 

  • Lacomme P, Larabi M, Tchernev N (2007) A disjunctive graph for the job-shop with several robots. In: MISTA conference, Paris, France

  • Lacomme P, Larabi M, Tchernev N (2013) Job-shop based framework for simultaneous scheduling of machines and automated guided vehicles. Int J Prod Econ 143(1):24–34

    Google Scholar 

  • Lacomme P, Moukrim A, Quilliot A, Vinot M (2017) Formalisation linéaire d’un problème de RCPSP avec transport de ressources, 18ème congrès annuel de la Société française de Recherche Opérationnelle et d’Aide à la Décision (ROADEF). Metz, France

    Google Scholar 

  • Matsuo H, Suh CJ, Sullivan RS (1988) A controlled search simulated annealing method for the general job-shop scheduling problem. Working Paper, 03–04–88, Graduate School of Business, University of Texas at Austin, Austin, Texas, USA

  • Nowicki E, Smutnicki C (1996) A fast taboo search algorithm for the job-shop problem. Manag Sci 42(6):797–813

    Google Scholar 

  • Poppenborg J, Knust S (2016) A flow-based tabu search algorithm for the RCPSP with transfer times. OR Spectr 38(2):305–334

    Google Scholar 

  • Prins C (2004) A simple and effective evolutionary algorithm for the vehicle routing problem. Comput Oper Res 31(12):1985–2002

    Google Scholar 

  • Prins C (2009) A GRASP × evolutionary local search hybrid for the vehicle routing problem. Bio-inspir Algorithms Veh Rout Probl 161:35–53

    Google Scholar 

  • Prins C, Lacomme P, Prodhon C (2014) Order-first split-second methods for vehicle routing problems: a review. Transp Res Part C Emerg Technol 40:179–200

    Google Scholar 

  • Pritsker A, Watters L (1968). A zero-one programming approach to scheduling with limited resources. The RAND Corporation, RM-5561- PR

  • Pritsker A, Watters L, Wolfe P (1969) Multi-project scheduling with limited resources: a zero-one programming approach. Manag Sci 16:93–108

    Google Scholar 

  • Quilliot A, Toussaint H (2012) Resource constrained project scheduling with transportation delays. IFAC Proc Vol 45(6):1481–1486

    Google Scholar 

  • Roy B, Sussmann B (1964) Les problèmes d’ordonnancement avec contraintes disjonctives. Note DS no. 9 bis, SEMA, Paris

  • Weglarz J (1999) Project scheduling. Recent models, algorithms and applications. Kluwer, Boston

    Google Scholar 

  • Weiss I, Schwindt C (2016) The resource transfer Problem: Modeling and solving integrated scheduling and routing problems. In: IEEE international conference on industrial engineering and engineering management (IEEM), 755–759)

  • Wolf S, Merz P (2007) Evolutionary local search for the super-peer selection problem and the p-hub median problem. Lect Notes Comput Sci 4771:1–15

    Google Scholar 

  • Zhang Q, Manier H, Manier M-A (2012a) A modified disjunctive graph for job-shop scheduling problems with bounded processing times and transportation constraints. IFAC Proc 45(6):1377–1382

    Google Scholar 

  • Zhang Q, Manier H, Manier M-A (2012b) A genetic algorithm with tabu search procedure for flexible job shop scheduling with transportation constraints and bounded processing times. Comput Oper Res 39(7):1713–1723

    Google Scholar 

Download references

Acknowledgements

This work was carried out and funded within the framework of the ATHENA project (Reference: ANR-13-BS02-0006) and the Labex MS2T. It was supported by the French government through the “Investments for the future” program managed by the French National Research Agency (Reference: ANR-11-IDEX-0004-02).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Philippe Lacomme.

Appendix

Appendix

1.1 A.1: MILP formulation for the RCPSPR

Data of the problem

\( p_{i} \):

processing time of activity \( i \)

\( b_{i} \):

number of resource required for activity \( i \)

\( t_{ij} \):

transfer time from activity \( i \) to activity \( i \)

\( V \):

set of activities to schedule

\( E \):

set of couple of activities linked by a precedence constraints

\( T \):

set of vehicle

\( T_{i} \):

vehicle \( i \)

\( C_{i} \):

capacity of vehicle \( i \)

Variables

\( {\varphi }_{\text{ijk}} \):

number of resource \( k \) transferred from \( i \) to \( j \)

\( {\text{z}}_{\text{ij}} \):

binary variable that value 1 if activity \( i \) is scheduled before activity \( j \)

\( {\text{S}}_{\text{i}} \):

starting time of activity \( i \)

\( y_{ijut} \):

amount of resource transported from activity \( i \) to \( j \) by vehicle \( u \) during the \( t^{th} \) transport operation

\( x_{ijut} \):

binary variable such \( x_{ijut} = 1 \) if vehicle \( u \) make the transport of resource from activity \( i \) to \( j \) during the \( t^{th} \) transport operation

\( a_{ijtpqv}^{u} \):

binary variable with \( a_{ijtpqv}^{u} = 1 \) if transport operation number \( t \) of vehicle \( u \) from activity \( i \) to \( j \) is scheduled before the transport operation number \( v \) of vehicle \( u \) from activity \( p \) to q.

The constraints numbered 1 to 9 in \( P1 \) are the classical RCPSP constraints (scheduling constraint), and constraints numbered 10 to 25 in \( P2 \) are the constraints tackling the transport.

$$ P1:\left\{ {\begin{array}{*{20}l} {} \hfill &\quad {Minimize\; S_{n + 1} } \hfill &\quad {(1)} \hfill \\ {\forall \left( {i ,j} \right) \in E} \hfill &\quad {z_{ij} = 1} \hfill &\quad {(2)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} } \hfill &\quad {S_{j} \ge S_{i} + p_{i} + M\left( {z_{ij} - 1} \right)} \hfill &\quad {(3)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} } \hfill &\quad {\varphi_{ij} \le min\left( {b_{i} ,b_{j} } \right)z_{ij} } \hfill &\quad {(4)} \hfill \\ {\forall j \in V} \hfill &\quad {\mathop \sum \limits_{i \in V} \varphi_{ij} = b_{j} } \hfill &\quad {(5)} \hfill \\ {\forall i \in V} \hfill &\quad {\mathop \sum \limits_{j \in V} \varphi_{ij} = b_{i} } \hfill &\quad {(6)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} } \hfill &\quad {z_{ij} \in \left\{ {0,1} \right\},\;z_{ii} = 0} \hfill &\quad {(7)} \hfill \\ {\forall i \in V} \hfill &\quad {S_{i} \in {\mathbb{N}}} \hfill &\quad {(8)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} } \hfill &\quad {\varphi_{ij} \in {\mathbb{N}},\text{ }\varphi_{ii} = 0} \hfill &\quad {(9)} \hfill \\ \end{array} } \right. $$
$$ P2:\left\{ {\begin{array}{*{20}l} {\forall \left( {i ,j} \right) \in V^{2} } \hfill & {\mathop \sum \limits_{u \in T} \mathop \sum \limits_{{t \in X_{ij} }} y_{ijut} = \varphi_{ij} } \hfill & {(10)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} , \forall u \in T,\quad \forall t \in X_{ij} } \hfill & {y_{ijut} \le min\left( {b_{i} ,b_{j} ,C_{u} } \right)x_{ijut} } \hfill & {(11)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} , \forall u \in T,\quad \forall t \in X_{ij} } \hfill & {x_{ijut} \le y_{ijut} } \hfill & {(12)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} , \forall u \in T,\forall t \in X_{ij} } \hfill & {A_{ijut} \ge B_{ijut} + t_{ij} + \left( {x_{ijut} - 1} \right).H} \hfill & {(13)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} , \forall u \in T,\forall t \in X_{ij} } \hfill & {S_{j} \ge A_{ijut} + \left( {x_{ijut} - 1} \right).H} \hfill & {(14)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} , \forall u \in T,\forall t \in X_{ij} } \hfill & {B_{ijut} \ge S_{i} + p_{i} + \left( {x_{ijut} - 1} \right).H} \hfill & {(15)} \hfill \\ {\forall \left( {i ,j,p ,q} \right) \in V^{4} ,\forall u \in T,\forall \left( {t,v} \right) \in X_{ij}^{2} } \hfill & {a_{ijtpqv}^{u} + a_{pqvijt}^{u} \le x_{ijut} } \hfill & {(16)} \hfill \\ {\forall \left( {i ,j,p ,q} \right) \in V^{4} ,\forall u \in T,\forall \left( {t,v} \right) \in X_{ij}^{2} } \hfill & {a_{ijtpqv}^{u} + a_{pqvijt}^{u} \le x_{pquv} } \hfill & {(17)} \hfill \\ {\forall \left( {i ,j,p ,q} \right) \in V^{4} ,\forall u \in T,\forall \left( {t,v} \right) \in X_{ij}^{2} } \hfill & {a_{ijtpqv}^{u} + a_{pqvijt}^{u} \ge 1 - \left( {2 - x_{ijut} - x_{pquv} } \right).H} \hfill & {(18)} \hfill \\ {\forall \left( {i ,j,p ,q} \right) \in V^{4} ,\forall u \in T,\forall \left( {t,v} \right) \in X_{ij}^{2} } \hfill & {B_{pquv} \ge A_{ijut} + t_{jp} + \left( {a_{ijtpqv}^{u} - 1} \right).H} \hfill & {(19)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} , \forall u \in T, \forall t \in 1,\;\left[ {min\left( {b_{i} ,b_{j} } \right) - 1} \right]} \hfill & {y_{ijut + 1} \le y_{ijut} } \hfill & {(20)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} , \forall u \in T,\forall t \in X_{ij} } \hfill & {y_{ijut} \in {\mathbb{N}}} \hfill & {(21)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} , \forall u \in T,\forall t \in X_{ij} } \hfill & {x_{ijut} \in \left\{ {0,1} \right\}} \hfill & {(22)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} , \forall u \in T,\forall t \in X_{ij} } \hfill & {A_{ijut} \in {\mathbb{N}}} \hfill & {(23)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} , \forall u \in T,\forall t \in X_{ij} } \hfill & {B_{ijut} \in {\mathbb{N}}} \hfill & {(24)} \hfill \\ {\forall \left( {i ,j,p ,q} \right) \in V^{4} ,\forall u \in T,\forall \left( {t,v} \right) \in X_{ij}^{2} } \hfill & {a_{ijtpqv}^{u} \in \left\{ {0,1} \right\}} \hfill & {(25)} \hfill \\ \end{array} } \right. $$

1.2 A.2: CP formulation for the RCPSPR

The CP model was formulated from the MILP, and both CP data and CP decision variables have been introduced considering the same trend as the MILP, in order to favor readability first, and to facilitate second a better knowledge and understanding for researchers coming from the scheduling community and who are more experienced in MILP than CP. A CP model resembles an integer programming model in terms of syntax. It contains decision variables with their domains, a set of constraints, and possibly, an objective function. However, the CP modeling paradigm is much more expressive. In fact, the language is a superset of the integer linear programming modeling language. In addition to equality and inequality constraints between linear mathematical expressions, a CP model can contain nonlinear expressions, logical expressions, use decision variables as indices to other vectors of decision variables and include global constraints that capture a relationship between large sets of decision variables.

Disjunctive formulation of the CP

$$ P1:\left\{ {\begin{array}{*{20}l} {} \hfill &\quad {Minimize\; S_{n + 1} } \hfill &\quad {(1)} \hfill \\ {\forall \left( {i ,j} \right) \in E} \hfill &\quad {z_{ij} = 1} \hfill &\quad {(2)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} } \hfill &\quad {z_{ij} = 1 \Rightarrow S_{j} \ge S_{i} + p_{i} } \hfill &\quad {(3)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} } \hfill &\quad {\varphi_{ij} \le min\left( {b_{i} ,b_{j} } \right)z_{ij} } \hfill &\quad {(4)} \hfill \\ {\forall j \in V} \hfill &\quad {\mathop \sum \limits_{i \in V} \varphi_{ij} = b_{j} } \hfill &\quad {(5)} \hfill \\ {\forall i \in V} \hfill &\quad {\mathop \sum \limits_{j \in V} \varphi_{ij} = b_{i} } \hfill &\quad {(6)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} } \hfill &\quad {z_{ij} \in \left\{ {0,1} \right\},z_{ii} = 0} \hfill &\quad {(7)} \hfill \\ {\forall i \in V} \hfill &\quad {S_{i} \in {\mathbb{N}}} \hfill &\quad {(8)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} } \hfill &\quad {\varphi_{ij} \in {\mathbb{N}},\text{ }\varphi_{ii} = 0} \hfill &\quad {(9)} \hfill \\ \end{array} } \right. $$
$$ P2:\left\{ {\begin{array}{*{20}l} {\forall \left( {i ,j} \right) \in V^{2} } \hfill & {\mathop \sum \limits_{u \in T} \mathop \sum \limits_{{t \in X_{ij} }} y_{ijut} = \varphi_{ij} } \hfill & {(10)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} , \forall u \in T,\forall t \in X_{ij} } \hfill & {y_{ijut} \le min\left( {b_{i} ,b_{j} ,C_{u} } \right)x_{ijut} } \hfill & {(11)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} , \forall u \in T,\forall t \in X_{ij} } \hfill & {y_{ijut} = 0 \Rightarrow x_{ijut} = 0 \wedge A_{ijut} = 0 \wedge B_{ijut} = 0 } \hfill & {(12)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} , \forall u \in T,\forall t \in X_{ij} } \hfill & {x_{ijut} = 1 \Rightarrow A_{ijut} \ge B_{ijut} + t_{ij} } \hfill & {(13)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} , \forall u \in T,\forall t \in X_{ij} } \hfill & {x_{ijut} = 1 \Rightarrow S_{j} \ge A_{ijut} } \hfill & {(14)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} , \forall u \in T,\forall t \in X_{ij} } \hfill & {x_{ijut} = 1 \Rightarrow B_{ijut} \ge S_{i} + p_{i} } \hfill & {(15)} \hfill \\ {\forall \left( {i ,j,p ,q} \right) \in V^{4} ,\forall u \in T,\forall \left( {t,v} \right) \in X_{ij}^{2} } \hfill & {a_{ijtpqv}^{u} + a_{pqvijt}^{u} \le x_{ijut} } \hfill & {(16)} \hfill \\ {\forall \left( {i ,j,p ,q} \right) \in V^{4} ,\forall u \in T,\forall \left( {t,v} \right) \in X_{ij}^{2} } \hfill & {a_{ijtpqv}^{u} + a_{pqvijt}^{u} \le x_{pquv} } \hfill & {(17)} \hfill \\ {\forall \left( {i ,j,p ,q} \right) \in V^{4} ,\forall u \in T,\forall \left( {t,v} \right) \in X_{ij}^{2} } \hfill & {\left( {x_{ijut} = 1 \wedge x_{pquv} = 1} \right) \Rightarrow a_{ijtpqv}^{u} + a_{pqvijt}^{u} \ge 1} \hfill & {(18)} \hfill \\ {\forall \left( {i ,j,p ,q} \right) \in V^{4} ,\forall u \in T,\forall \left( {t,v} \right) \in X_{ij}^{2} } \hfill & {a_{ijtpqv}^{u} = 1 \Rightarrow B_{pquv} \ge A_{ijut} + t_{jp} } \hfill & {(19)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} , \forall u \in T, \forall t \in 1,\;\left[ {min\left( {b_{i} ,b_{j} } \right) - 1} \right]} \hfill & {y_{ijut + 1} \le y_{ijut} } \hfill & {(20)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} , \forall u \in T,\forall t \in X_{ij} } \hfill & {y_{ijut} \in \left\{ {0,B} \right\}} \hfill & {(21)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} , \forall u \in T,\forall t \in X_{ij} } \hfill & {x_{ijut} \in \left\{ {0,1} \right\}} \hfill & {(22)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} , \forall u \in T,\forall t \in X_{ij} } \hfill & {A_{ijut} \in {\mathbb{N}}} \hfill & {(23)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} , \forall u \in T,\forall t \in X_{ij} } \hfill & {B_{ijut} \in {\mathbb{N}}} \hfill & {(24)} \hfill \\ {\forall \left( {i ,j,p ,q} \right) \in V^{4} ,\forall u \in T,\forall \left( {t,v} \right) \in X_{ij}^{2} } \hfill & {a_{ijtpqv}^{u} \in \left\{ {0,1} \right\}} \hfill & {(25)} \hfill \\ \end{array} } \right. $$

Cumulative formulation of the CP for the scheduling part

In the cumulative formulation, the activities are represented by interval variables. An interval variable represents an interval of time during which an activity is performed:

interval act[i in 0…n+1] size pi

The cumulative constraint to define \( f \) enforces that at each point in time, the cumulated resource demands of the set of activities that require the resource at this time, does not exceed a given limit.

cumulFunction f=sum (i in 1…n) pulse (act[i], bi)

$$ P1^{\prime } :\left\{ {\begin{array}{*{20}l} {} \hfill &\quad {Minimize \;end\;Of\left( {act\left[ {n + 1} \right]} \right);} \hfill &\quad {(1)} \hfill \\ {} \hfill &\quad {f \le B;} \hfill &\quad {(2)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} } \hfill &\quad {z_{ij} = 1 \Rightarrow endBeforeStart(act\left[ j \right], act\left[ i \right]); } \hfill &\quad {(3)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} } \hfill &\quad {\varphi_{ij} \le min\left( {b_{i} ,b_{j} } \right)z_{ij} } \hfill &\quad {(4)} \hfill \\ {\forall j \in V} \hfill &\quad {\mathop \sum \limits_{i \in V} \varphi_{ij} = b_{j} } \hfill &\quad {(5)} \hfill \\ {\forall i \in V} \hfill &\quad {\mathop \sum \limits_{j \in V} \varphi_{ij} = b_{i} } \hfill &\quad {(6)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} } \hfill &\quad {z_{ij} \in \left\{ {0,1} \right\},z_{ii} = 0} \hfill &\quad {(7)} \hfill \\ {\forall i \in V} \hfill &\quad {S_{i} \in {\mathbb{N}}} \hfill &\quad {(8)} \hfill \\ {\forall \left( {i ,j} \right) \in V^{2} } \hfill &\quad {\varphi_{ij} \in {\mathbb{N}},\text{ }\varphi_{ii} = 0} \hfill &\quad {(9)} \hfill \\ \end{array} } \right. $$

The constraints to tackle the routing remain the same as the CP disjunctive formulation with the model \( P2 \).

1.3 A.3: Additional numerical experiments

Extra modeled should be investigated to get around MILP drawbacks that come from the large number of variables used and from the big-M constraints required for disjunctions of both scheduling and routing.

Cumulative constraint-based models have been proved to be efficient in RCPSP resolution (Kreter et al. 2016), and in several RCPSP variants providing results that compete with MILP formulation. Because, the transport operations are fully defined by exchange of resources between activities, the RCPSPR that requires the proper coordination of both activities and routing constraints, presents characteristics that do not favor cumulative model and by consequence resolution (Table 10).

Table 10 CP resolution, disjunctive model vs. cumulative model

To obtain a fair comparative study, the two models (disjunctive MILP formulation and CP disjunctive formulation) do not encompass any extra constraint that could strengthen the model and the two models have been solved using the CPLEX 12.7 package running on the same computer. The default parameters are used in the resolution of both MILP and CP: The results are introduced in Table 11 where * is used for optimal solution and \( t.l. \) for computational time exceeding 48 h.

Table 11 GRASP \( \times \) ELS resolution vs. MILP and CP

The results prove the efficiency of constraint programming formulations first (that permit to obtain numerous optimal solutions) and that the CP optimizer of CPLEX competes with the MILP solver. The coordination between scheduling and routing operations should receive attention to strengthen both models. For example, the difference between starting time of \( i \) and starting time of \( j \), for two scheduling operations with a non-null flow (\( \varphi_{ij} \ge 0 \)), could be used to create new transportation constraints by a careful evaluation of the number of loaded and unloaded transport operations required, and by consequence, of the delay between \( S_{j} \) and \( S_{i} \). The linear constraint \( S_{j} \ge S_{i} + p_{i} + M\left( {z_{ij} - 1} \right) \) could be updated with \( S_{j} \ge S_{i} + p_{i} + \delta + M\left( {z_{ij} - 1} \right) \) where \( \delta \) is the extra delay (Fig. 17).

Fig. 17
figure 17

Illustration of one additional constraint strengthening the model

Table 12 reports the best solutions obtained by CPLEX MILP and CPLEX CP within the time that the GRASP \( \times \) ELS found its best upper bound. CPLEX MILP failed to provide a solution (except for instance LMQV_U5 and LMQV_C6), whereas CPLEX CP provides 7 solutions, with poor quality regarding the solutions of the GRASP \( \times \) ELS. For LMQV_U1, CPLEX CP provides a solution of 91 that is strongly larger than 74 which is the best solution found by GRASP \( \times \) ELS in 58 s. The CPLEX CP provides a first solution in shorten computational time than CPLEX MILP. Such results push us into considering that constraint programming is a promising method that could be used in investigating the RCPSPR.

Table 12 GRASP \( \times \) ELS resolution vs. MILP and CP within the same time

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Lacomme, P., Moukrim, A., Quilliot, A. et al. Integration of routing into a resource-constrained project scheduling problem. EURO J Comput Optim 7, 421–464 (2019). https://doi.org/10.1007/s13675-018-0104-z

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s13675-018-0104-z

Keywords

Mathematics Subject Classification

Navigation