Skip to main content
Log in

A flow-based tabu search algorithm for the RCPSP with transfer times

  • Regular Article
  • Published:
OR Spectrum Aims and scope Submit manuscript

Abstract

In this paper, we propose a tabu search algorithm for the resource-constrained project scheduling problem with transfer times. Solutions are represented by resource flows extending the disjunctive graph model for shop scheduling problems. Neighborhoods are defined by parallel and serial modifications rerouting or reversing flow on certain arcs. This approach is evaluated from a theoretical and experimental point of view. Besides studying the connectivity of different neighborhoods, computational results are presented for benchmark instances with and without transfer times.

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
Fig. 17
Fig. 18
Fig. 19

Similar content being viewed by others

References

  • Artigues C (2010) The resource-constrained project scheduling problem. In: Artigues C, Demassey S, Néron E (eds) Resource-constrained project scheduling. ISTE, London, pp 19–35

    Google Scholar 

  • Artigues C, Michelon P, Reusser S (2003) Insertion techniques for static and dynamic resource-constrained project scheduling. Eur J Oper Res 149(2):249–267

    Article  Google Scholar 

  • Artigues C, Roubellat F (2000) A polynomial activity insertion algorithm in a multi-resource schedule with cumulative constraints and multiple modes. Eur J Oper Res 127(2):297–316

    Article  Google Scholar 

  • Brucker P, Knust S (2011) Complex scheduling. Springer, Berlin

    Google Scholar 

  • Demeulemeester EL, Herroelen W (2002) Project scheduling: a research handbook. International Series in Operations Research & Management Science. Kluwer Academic Publishers, Boston

    Google Scholar 

  • Floyd RW (1962) Algorithm 97: shortest path. Commun ACM 5(6):345

    Article  Google Scholar 

  • Fortemps P, Hapke M (1997) On the disjunctive graph for project scheduling. Found Comput Decis Sci 22(3):195–209

    Google Scholar 

  • Glover F, Laguna M (1998) Tabu search. Kluwer Academic Publishers, Dordrecht

    Book  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

    Article  Google Scholar 

  • Hartmann S, Kolisch R (2000) Experimental evaluation of state-of-the-art heuristics for the resource-constrained project scheduling problem. Eur J Oper Res 127(2):394–407

    Article  Google Scholar 

  • Hurink J, Knust S (2001) List scheduling in a parallel machine environment with precedence constraints and setup times. Oper Res Lett 29(5):231–239

    Article  Google Scholar 

  • Kolisch R (1996) Serial and parallel resource-constrained project scheduling methods revisited: theory and computation. Eur J Oper Res 90(2):320–333

    Article  Google Scholar 

  • Kolisch R, Hartmann S (2006) Experimental investigation of heuristics for resource-constrained project scheduling: an update. Eur J Oper Res 174(1):23–37

    Article  Google Scholar 

  • Kolisch R, Sprecher A (1997) PSPLIB—a project scheduling problem library. Eur J Oper Res 96(1):205–216

    Article  Google Scholar 

  • Krüger D (2009) Multi-project scheduling with resource transfers. Books on Demand GmbH, Norderstedt

    Google Scholar 

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

    Article  Google Scholar 

  • Krüger D, Scholl A (2010) Managing and modelling general resource transfers in (multi-) project scheduling. OR Spectr 32(2):369–394

    Article  Google Scholar 

  • Mika M, Waligóra G, Wȩglarz J (2006) Modelling setup times in project scheduling. In: Józefowska J, Wȩglarz J (eds) Perspectives in modern project scheduling, vol 92. Springer, New York, pp 131–163

    Google Scholar 

  • Neumann K, Schwindt C, Zimmermann J (2003) Project scheduling with time windows and scarce resources: temporal and resource-constrained project scheduling with regular and nonregular objective functions. Springer, Berlin

    Book  Google Scholar 

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

    Article  Google Scholar 

  • Poppenborg J (2014) Modeling and optimizing the evacuation of hospitals based on the RCPSP with resource transfers. PhD thesis, Clausthal University of Technology, Clausthal-Zellerfeld, Germany

  • Roy B, Sussmann B (1964) Les problèmes d’ordonnancement avec constraintes disjonctives. Technical report note D.S. no. 9 bis, SEMA, Paris, France

  • Schwindt C, Trautmann N (2000) Batch scheduling in process industries: an application of resource-constrained project scheduling. OR Spectr 22(4):501–524

    Article  Google Scholar 

  • Schwindt C, Trautmann N (2003) Scheduling the production of rolling ingots: industrial context, model, and solution method. Int Trans Oper Res 10(6):547–563

    Article  Google Scholar 

  • Sprecher A, Kolisch R, Drexl A (1995) Semi-active, active, and non-delay schedules for the resource-constrained project scheduling problem. Eur J Oper Res 80(1):94–102

    Article  Google Scholar 

  • van Laarhoven PJM, Aarts EHL, Lenstra JK (1992) Job shop scheduling by simulated annealing. Oper Res 40(1):113–125

    Article  Google Scholar 

  • Vanhoucke M (2008) Setup times and fast tracking in resource-constrained project scheduling. Comput Ind Eng 5(4):1062–1070

    Article  Google Scholar 

Download references

Acknowledgments

We would like to thank Doreen Becker for providing her test instances and results from Krüger (2009) as well as Christoph Schwindt for giving us the code of the branch-and-bound algorithm described in Neumann et al. (2003). Additionally, we are very grateful for the constructive comments of two referees which helped us to improve the presentation of the paper.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Sigrid Knust.

Appendix

Appendix

Theorem 2 For the RCPSP with transfer times, the neighborhood \({\mathcal {N}}_1\) is connected.

Proof

To prove this, it is necessary to calculate topological orderings for AON-flow networks based on given resource flows. A topological ordering defines a sequence in which the activities can be processed such that all precedence constraints as well as all resource transfers between the activities are observed (i.e., if a precedence constraint \((i, j) \in A\) or a resource transfer \(f_{ijk} > 0\) for some resource \(k \in {\mathcal {R}}\) exists between activities \(i \in V_0\) and \(j \in V_*\), activity \(i\) comes before activity \(j\) in the topological ordering).

However, it should be noted that a topological ordering is not necessarily unique. In particular, if no directed path exists from activity \(i\) to activity \(j\) and from activity \(j\) to activity \(i\), no particular order has to exist between activities \(i\) and \(j\) (i.e., activity \(i\) can come either before or after activity \(j\) in a topological ordering). This is the case, for example, if both activities can be processed in parallel by different resource units. In this case, we assume that activities that can be processed in parallel are ordered according to increasing numbers. Then, a unique topological ordering can be calculated for each AON-flow network.

Let \({\mathcal {F}}\) and \({\mathcal {F}}'\) be two arbitrary feasible resource flows with \({\mathcal {F}} \ne {\mathcal {F}}'\). Furthermore, let \(\pi = (\pi _0, \ldots , \pi _{n+1})\) and \(\pi ' = (\pi _0',\ldots , \pi _{n+1}')\) be the topological orderings of the corresponding AON-flow networks. We now show that the neighborhood \({\mathcal {N}}_1\) is connected by transforming resource flow \({\mathcal {F}}'\) into resource flow \({\mathcal {F}}\) by a finite number of modifications in \({\mathcal {N}}_1\).

First, we consider all activities \(i,j \in V\) with \(f_{ijk}' > 0\) for some resource \(k \in {\mathcal {R}}\) in resource flow \({\mathcal {F}}'\) (i.e., activity \(i\) comes before activity \(j\) in \(\pi '\)) where activity \(j\) comes before activity \(i\) in \(\pi \) for resource flow \({\mathcal {F}}\). This implies that in resource flow \({\mathcal {F}}\) there are no direct or indirect resource transfers from activity \(i\) to activity \(j\). If such activities \(i,j\) exist, it is always possible to select two of these activities such that in resource flow \({\mathcal {F}}'\) no other path exists from activity \(i\) to activity \(j\) via other activities. This follows from the following reasoning.

Let \(u,w \in V\) be two of these candidates for which at least one path \(P = (u, v_1, \ldots , v_\mu , w)\) via \(\mu \) other activities \(v_1, \ldots , v_\mu \in V\) exists from activity \(u\) to activity \(w\). In this case, none of the activities \(v_1\) to \(v_\mu \) can simultaneously be a successor of activity \(u\) as well as a predecessor of activity \(w\) in the topological ordering \(\pi \) for resource flow \({\mathcal {F}}\). Otherwise, if an activity \(v \in \{v_1, \ldots , v_\mu \}\) came after activity \(u\) as well as before activity \(w\) in the topological ordering \(\pi \) for resource flow \({\mathcal {F}}\), this would imply that also activity \(u\) comes before activity \(w\) which contradicts the condition that activity \(w\) comes before activity \(u\) in the topological ordering \(\pi \). Thus, it is always possible to identify two consecutive activities \(i \in \{u, v_1, \ldots , v_\mu \}\) and \(j \in \{v_1, \ldots , v_\mu , w\}\) on this path such that activity \(i\) comes after activity \(j\) in \(\pi \). By this reasoning, we find two activities \(i,j \in V\) with the above property.

Now, the arcs \((i, j)_k\) for all resources \(k \in {\mathcal {R}}\) with \(f_{ijk}' > 0\) between the selected activities \(i\) and \(j\) can be reversed based on a modification in the neighborhood \({\mathcal {N}}_{\mathrm{reverse}}\). In the resulting resource flow, activity \(j\) comes before activity \(i\), i.e., the order of these two activities is reversed and matches the order of the activities in the topological ordering \(\pi \) for resource flow \({\mathcal {F}}\). Additionally, incoming resource transfers to activity \(i\) as well as outgoing resource transfers from activity \(j\) have to be adapted as described above. Here, it can be inferred from Fig. 7 that the order in which these activities have to be processed in relation to activities \(i\) and \(j\) does not change. Instead, all activities \(u \in V_0\) from which resource units are redirected to activity \(j\) are still predecessors of activity \(i\) in the resulting topological ordering and all activities \(v \in V_*\) to which resource units are redirected from activity \(i\) are still successors of activity \(j\).

It should be noted that activities \(u \in V_0\) from which resource units are transferred to activity \(i\) in resource flow \({\mathcal {F}}'\) (as well as direct and indirect predecessors of these activities \(u\)) that are not affected by a reverse move (i.e., no resource units are redirected from these activities \(u\) to activity \(j\)) can be processed in parallel to activity \(j\) (as well as in parallel to direct and indirect successors of activity \(j\)) in the resulting resource flow unless other directed paths exist between these activities. Similarly, activities \(v \in V_*\) to which resource units are transferred from activity \(j\) in resource flow \({\mathcal {F}}'\) (as well as direct and indirect successors of these activities \(v\)) that are not affected by a reverse move (i.e., no resource units are redirected from activity \(i\) to these activities \(v\)) can be processed in parallel to activity \(i\) (as well as in parallel to direct and indirect successors of activity \(i\)) in the resulting resource flow unless other directed paths between these activities exist. Here, while the topological ordering of these activities may be different in the resulting resource flow, no additional arcs are inserted into the resource flow that might have to be reversed to obtain the order \(\pi \).

An example for this situation is visualized in Fig. 20. Here, an extract of a resource flow is shown before as well as after the only arc between activities \(7\) and \(4\) has been reversed. In the resulting resource flow, activity \(4\) comes before activity \(5\). Additionally, activity \(6\) (from which no resource unit is redirected to activity \(4\)) can be processed in parallel to activities \(4\) and \(5\) and activity \(5\) (to which no resource unit is redirected from activity \(7\)) can be processed in parallel to activities \(7\), \(3\), and \(8\) such that the topological ordering of these activities changes based on their numerical ordering.

Thus, each reverse move changes the order of two activities \(i,j \in V\) into the same order as in the topological ordering \(\pi \) for resource flow \({\mathcal {F}}\) and no additional arcs result from these moves that have to be reversed to obtain \(\pi \). For this reason, it is possible to transform resource flow \({\mathcal {F}}'\) into a resource flow \({\mathcal {F}}''\) by a finite number of modifications in the neighborhood \({\mathcal {N}}_{\mathrm{reverse}}\) such that the topological ordering of all activities \(i,j \in V\) on directed paths in resource flow \({\mathcal {F}}''\) is the same as for resource flow \({\mathcal {F}}\).

Now, if \(f_{ijk}'' = f_{ijk}\) holds for all resource transfers of resource \(k \in {\mathcal {R}}\) between activities \(i \in V_0\) and \(j \in V_*\) in resource flows \({\mathcal {F}}''\) and \({\mathcal {F}}\), resource flow \({\mathcal {F}}'\) has been transformed into resource flow \({\mathcal {F}}\) and we are finished. Otherwise, due to flow conservation, at least two resource transfers \(f_{ijk}'' > 0\) and \(f_{uvk}'' > 0\) between activities \(i, u \in V_0\) and \(j, v \in V_*\) have to exist with the following properties:

  • The amount of resource units of resource \(k\) transferred on these arcs is larger than in resource flow \({\mathcal {F}}\), i.e., \(f_{ijk} < f_{ijk}''\) and \(f_{uvk} < f_{uvk}''\) hold.

  • Without loss of generality, it can be assumed that the amount of resource \(k\) transferred from activity \(i\) to activity \(v\) in resource flow \({\mathcal {F}}''\) is smaller than in resource flow \({\mathcal {F}}\), i.e., \(f_{ivk} > f_{ivk}''\) holds.

  • Activity \(j\) does not come before activity \(u\) in the topological ordering \(\pi \) for resource flow \({\mathcal {F}}\). This is assured because all activities share at least one common predecessor (e.g., the dummy activity \(0\)) as well as one common successor (e.g., the dummy activity \(n + 1\)) and all activities on directed paths from \(0\) to \(n + 1\) are ordered according to the topological ordering \(\pi \).

After such activities have been identified in resource flow \({\mathcal {F}}''\), it is possible to reroute an amount of \(q = \min \{f_{ijk}'' - f_{ijk}, f_{uvk}'' - f_{uvk}, f_{ivk} - f_{ivk}''\}\) units of resource \(k\) from activity \(i\) to activity \(v\) as well as from activity \(u\) to activity \(j\) by a modification in the neighborhood \({\mathcal {N}}_{\mathrm{reroute}}\). Now, we can consider the four affected resource transfers before and after the modification in comparison to resource flow \({\mathcal {F}}\):

  • We have \(f_{ijk} < f_{ijk}''\) before the modification. After the modification, \(q \le f_{ijk}'' - f_{ijk}\) units of resource \(k\) are redirected from activity \(i\) to activity \(v\), i.e., we have \(f_{ijk} \le f_{ijk}'' - q\). Thus, the deviation of the resulting resource transfers is reduced by \(q\) units.

  • We have \(f_{uvk} < f_{uvk}''\) before the modification. After the modification, \(q \le f_{uvk}'' - f_{uvk}\) units of resource \(k\) are redirected from activity \(u\) to activity \(j\), i.e., we have \(f_{uvk} \le f_{uvk}'' - q\). Thus, the deviation of the resulting resource transfers is reduced by \(q\) units.

  • We have \(f_{ivk} > f_{ivk}''\) before the modification. After the modification, \(q \le f_{ivk} - f_{ivk}''\) units of resource \(k\) are redirected from activity \(i\) to activity \(v\), i.e., we have \(f_{ivk} \ge f_{ivk}'' + q\). Thus, the deviation of the resulting resource transfers is reduced by \(q\) units.

  • In the worst case, we have \(f_{ujk} \le f_{ujk}''\) before the modification. After the modification, \(q\) units of resource \(k\) are redirected from activity \(u\) to activity \(j\), i.e., we have \(f_{ujk} < f_{ujk}'' + q\). Thus, the deviation of the resulting resource transfers is increased by \(q\) units.

As a result of this, the deviation for three of the resulting resource transfers is reduced by \(q\) units while it is increased by at most \(q\) units for one resource transfer. Then, because all other resource transfers remain unchanged, the deviation of the resulting resource flow from \({\mathcal {F}}\) is always reduced by at least \(2q\) compared to the deviation of \({\mathcal {F}}''\) and \({\mathcal {F}}\). Furthermore, because the modified resource transfers are selected such that activity \(u\) comes before activity \(j\) in the topological ordering \(\pi \) for resource flow \({\mathcal {F}}\), no arc is inserted that would have to be reversed based on a modification in the neighborhood \({\mathcal {N}}_{\mathrm{reverse}}\).

Thus, because each reroute move reduces the deviation of the corresponding flows (and at least one resource transfer is set to the same value as in resource flow \({\mathcal {F}}\)), it is possible to transform \({\mathcal {F}}''\) into a resource flow \({\mathcal {F}}'''\) by a finite number of modifications in the neighborhood \({\mathcal {N}}_{\mathrm{reroute}}\) such that \(f_{ijk}''' = f_{ijk}\) holds for all \(i \in V_0\), \(j \in V_*\), and \(k \in {\mathcal {R}}\), i.e., resource flow \({\mathcal {F}}'\) can be transformed into resource flow \({\mathcal {F}}\) by a finite number of modifications in the neighborhood \({\mathcal {N}}_1\). \(\square \)

Fig. 20
figure 20

Reversing the arc between activities \(7\) and \(4\)

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Poppenborg, J., Knust, S. A flow-based tabu search algorithm for the RCPSP with transfer times. OR Spectrum 38, 305–334 (2016). https://doi.org/10.1007/s00291-015-0402-2

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00291-015-0402-2

Keywords

Navigation