1 Introduction

We consider the problem of scheduling maintenance jobs on the arcs of a flow network with the objective of maximizing the throughput over a given time horizon. This problem combines the diverse fields of scheduling [see for instance Pinedo (2008)] and network flow optimization, in particular dynamic network flows, which have been the subject of intense study in recent years; see, for example, Koch et al. (2011), Kotnyek (2003), and Skutella (2009).

The combination of scheduling and network optimization represents a natural extension to existing network models, and admits many interesting variants. For example, Tawamalarmi and Li (2011), motivated by a problem in highway maintenance, consider a multicommodity flow variant, providing complexity results, combinatorial algorithms, and integer programming models. Network optimization problems and scheduling have also been combined in the context of restoring infrastructure networks after major disruptions (Nurre 2013; Nurre and Sharkey 2014; Nurre et al. 2012) and in network design over time (Baxter et al. 2014; Kalinowski et al. 2015).

The optimization problem studied in the present paper was originally motivated by annual maintenance planning for a coal export supply chain (Boland and Savelsbergh 2011b), in which maximizing the annual throughput is a key concern (see Lidén 2014 for a comprehensive survey of mathematical models in railway maintenance scheduling). Boland et al. (2013a, (2014b) introduced a general network optimization problem in which arc maintenance jobs need to be scheduled so as to maximize the total flow in the network over time. A simplified version of the problem in which all jobs have unit processing time was studied in Boland et al. (2014a), and the complexity was determined taking into account certain instance characteristics, such as special network structures and restrictions on the set of jobs.

In the present paper we extend this model by adding the constraint that the number of jobs scheduled in any time period is bounded by a number K which is given as part of the input. The problem is defined over a network \(N=(V,A,s,t,u)\) with node set V, arc set A (we admit parallel arcs having the same start and end nodes), source \(s\in V\), sink \(t\in V\) and nonnegative integral capacity vector \(u=(u_a)_{a\in A}\). By \(\delta ^-(v)\) and \(\delta ^+(v)\) we denote the set of incoming and outgoing arcs of node v, respectively. We consider this network over a set of T time periods indexed by the set \([T]:=\{1,2,\ldots ,T\}\), and our objective is to maximize the total flow from s to t. We are also given a subset \(J\subseteq A\) of arcs that have to be shut down for exactly one time period in the time horizon. In other words, there is a set of maintenance jobs, one for each arc in J, each with unit processing time. In addition, there is a parameter K such that the number of maintenance jobs scheduled in any time period must not exceed K.

From a practical point of view, this is a natural variation of the model. In many real world network maintenance scheduling problems, there are resource and budget constraints that do not allow too many jobs to be performed at the same time. For example, the number of crews available to work at night may be limited, or the maintenance operation may require the use of specialized machines, of which very few are available. In the coal supply chain situation that motivated this research, some types of rail maintenance require the use of such machines: the machines were shared across the whole state, with at most two available in the region at any one time. Of course, in practice there can be complicated rules about the combinations of jobs that are allowed. Disregarding these complications, we propose to study a very simple version of the model as an abstract combinatorial optimization problem. We also make the simplifying assumptions that flow is instantaneous, i.e., there are no transit times associated with the arcs, and that there is always enough flow available to exhaust the network capacity. These are both valid assumptions in the case of the coal supply chain application that motivated this work (Boland et al. 2011a, 2013a, b). For example, it can be shown that all transit times can be set to zero if all job start times are expressed in a standardized time, in which each job’s start time is delayed by the travel time from its location to the port terminal.

The optimization problem is to choose the outage time periods in such a way that the total flow from s to t is maximized. We call this problem Maximum Flow Arc Shutdown Scheduling (MFASS), and more formally, it can be written as a mixed binary program as follows:

$$\begin{aligned} {\text {maximize}}\ z= & {} \sum _{i=1}^T\sum _{a\in \delta ^+(s)}x_{ai}\,\quad {\text { subject to}}\nonumber \\ x_{ai}\leqslant & {} u_ay_{ai} \qquad \qquad \,\, \qquad a\in J,\ i\in [T], \end{aligned}$$
(1)
$$\begin{aligned} x_{ai}\leqslant & {} u_a \qquad \qquad \qquad \qquad a\in A\setminus J,\ i\in [T], \end{aligned}$$
(2)
$$\begin{aligned} \sum _{i=1}^Ty_{ai}= & {} T-1 \qquad \qquad \,\qquad a\in J, \end{aligned}$$
(3)
$$\begin{aligned} \sum _{a\in \delta ^-(v)}x_{ai}= & {} \sum _{a\in \delta ^+(v)}x_{ai} \qquad \qquad v \in V\setminus \{s,t\},\ i\in [T], \end{aligned}$$
(4)
$$\begin{aligned} \sum _{a\in J} y_{ai}\geqslant & {} |J|- K \ \qquad \quad \qquad i\in [T], \end{aligned}$$
(5)
$$\begin{aligned} x_{ai}\geqslant & {} 0 \qquad \qquad \qquad \qquad \quad a\in A,\ i\in [T], \end{aligned}$$
(6)
$$\begin{aligned} y_{ai}\in & {} \{0,1\} \qquad \qquad \qquad \quad a\in A,\ i\in [T], \end{aligned}$$
(7)

where \(x_{ai}\) for \(a \in A\) and \(i \in [T]\) denotes the flow on arc a in time period i, and \(y_{ai} \in \{0,1\}\) for \(a \in A\) and \(i \in [T]\) indicates when the arc a is available in time period i, i.e., \(y_{ai}=0\) in the period i in which the outage for arc a is scheduled. The problem is to schedule the maintenance jobs so that the total flow of the network over the time horizon T is maximized.

In the present work, our focus is not primarily on the real-world application in the background, but on the abstract optimization problem MFASS and on the properties that make a class of instances hard or easy. These instance classes may or may not correspond to properties that occur in the coal supply chain application. For instance, the reduction from 3-Partition in Boland et al. (2014b) shows that the general problem is strongly NP-complete for the class of instances with \(K=3\), and this raises the question about the hardness of the case \(K=2\). Nevertheless, the original supply chain application did motivate some features studied. For example, the real-life network is series-parallel, (Boland et al. 2013a), some types of maintenance, (especially on the rail network), require the use of scarce equipment, motivating the study of small values of K, and the sum of arc capacities entering any node is equal, or nearly equal, to the sum of arc capacities leaving any node, for almost all network nodes (Boland et al. 2014a). In Boland et al. (2014a) several instance classes for the problem without the job limit per time period were analyzed.

In order to classify instances we introduce the following notation. Let \({\mathcal {C}}\) be the class of all MFASS instances. With an upper index K we denote the class of all instances with an upper bound of K on the number of jobs scheduled per time period, and a lower index indicates additional restrictions as introduced in Boland et al. (2014a).

  • Let \({\mathcal {C}}_{\mathrm{sp}}\) be the class of instances where the underlying network is series-parallel.

  • Let \({\mathcal {C}}_{\mathrm{bal}}\) be the class of instances where the underlying network is balanced, i.e., for each transshipment node \(v\in V\setminus \{s,t\}\) the capacity into this node equals the capacity out of this node.

  • Let \({\mathcal {C}}_{\mathrm{uc}}\) be the class of unit capacity instances, i.e., the capacities are \(u_a=1\) for all arcs \(a\in A\).

  • Let \({\mathcal {C}}_{\mathrm{aa}}\) be the class of instances where all arcs have a job associated, i.e., \(J=A\).

For instance \(\left( {\mathcal {C}}^3_{\mathrm{sp}}\cap {\mathcal {C}}^3_{\mathrm{aa}}\right) \setminus {\mathcal {C}}^3_{\mathrm{bal}}\) is the set of all instances with a series-parallel network which is not balanced, a job associated with every arc, and the constraint that at most 3 jobs can be scheduled per time period. In general, K is not constant, and we also consider instance classes with varying K, but imposing some restrictions on how K can vary relative to other instance parameters. For instance, \({\mathcal {C}}^{|J|}_{\mathrm{sp}}\) is the class of instances with a series-parallel network and no limit on the number of jobs per time period, and \({\mathcal {C}}^{|J|/3}\) contains the instances in which at most one third of all jobs can be scheduled per time period. As proved in Boland et al. (2014a), the classes \({\mathcal {C}}^{|J|}_{\mathrm{aa}}\) and \({\mathcal {C}}^{|J|}_{\mathrm{sp}}\cap {\mathcal {C}}^{|J|}_{\mathrm{bal}}\) are trivial: it is always optimal to schedule all jobs at the same time. In contrast, the restriction of the problem to \({\mathcal {C}}^{|J|}_{\mathrm{bal}}\) is still strongly NP-hard, and the restriction to \({\mathcal {C}}^{|J|}_{\mathrm{sp}}\) is NP-hard, but for fixed T it can be solved in pseudopolynomial time using dynamic programming. Our new complexity results are summarized in Table 1.

Table 1 Complexity results

Note that the classes \({\mathcal {C}}_{\mathrm{sp}}\), \({\mathcal {C}}_{\mathrm{bal}}\) and \({\mathcal {C}}_{\mathrm{uc}}\) are interesting from the coal chain point of view: the actual network underlying the work in Boland et al. (2013a, (2014b) is series-parallel, almost balanced, and has the property that a large proportion of the arcs have the same capacity.

Note that the problem is solvable in polynomial time if both T and K are bounded, say \(T\leqslant T_0\) and \(K\leqslant K_0\) for some absolute constants \(T_0\) and \(K_0\). Then \(|J|\leqslant K_0T_0\) for any feasible instance, and we can enumerate all partitions of J into at most T sets of size at most K of which there are at most

$$\begin{aligned} C=\prod _{i=0}^{T_0}\left( {\begin{array}{c}K_0(T_0-i)\\ K_0\end{array}}\right) . \end{aligned}$$

For each of these partitions we have to solve T maximum flow problems, hence the run-time is bounded by \(CT_0nm\), since the maximum flow problem can be solved in O(mn) time (King et al. 1994; Orlin 2013). Consequently, for the asymptotic analysis we are interested in instance classes where at least one of the parameters T and K is unbounded.

The paper is organized as follows. In Sect. 2 we show that the case \(K=2\) can be solved in polynomial time. In addition we provide an explicit description of an optimal solution for \(K=2\) and a network with a single transshipment node which leads to a significantly better run-time bound for this case. The hardness results are proved in Sect. 3. In Sect. 4 we present a fully polynomial time approximation scheme for series-parallel networks with fixed time horizon. We also provide a polynomial time approximation scheme for series parallel networks in general when \(K = |J|\).

2 The case \(K=2\)

In this section we consider the case \(K=2\). In Sect. 2.1 we show that this case can be reduced to a maximum weighted matching problem and thus is solvable in polynomial time, and in Sect. 2.2 we give an explicit description of an optimal solution for the case that the network has only a single transshipment node.

2.1 General networks

We reduce the problem to a maximum weight perfect matching problem. Let \(F_0\) denote the maximum flow value in the whole network, for \(a\in J\) let \(F_a\) denote the maximum flow when arc a is shut, and for distinct \(a,b\in J\) let \(F_{ab}\) be the maximum flow when arcs a and b are shut. We set \(p=\max \{0,|J|-T\}\) and define an auxiliary graph whose vertex set contains two vertices for every arc \(a\in J\) and two sets W and \(W'\) of dummy vertices with \(|W|=2p\) and \(|W'|=2(\lfloor |J|/2\rfloor -p)\). The two vertices for \(a\in J\) are denoted by a and \(a'\), and the weighted edge set of the auxiliary graph is defined as follows:

  • For distinct arcs \(a,b\in J\) there is an edge \(\{a,b\}\) with weight \(F_{ab}+F_0\).

  • For \(a\in J\) there is an edge \(\{a,a'\}\) of weight \(F_a\).

  • There are all edges of the form \(\{a',w\}\) for \(a\in J\) and \(w\in W\cup W'\). All these edges have zero weight.

  • The vertex set \(W'\) induces a matching consisting of zero weight edges.

There is a correspondence between perfect matchings in the auxiliary graph and outage schedules. Let M be a perfect matching in the auxiliary digraph. The corresponding schedule has

  • For every edge \(\{a,b\}\in M\) with \(a,b\in J\) one time period with arcs a and b shut,

  • For every edge \(\{a,a'\}\in M\) with \(a\in J\) one time period with only arc a shut,

  • All other time periods without shut arcs.

This construction is illustrated in Fig. 1 for \(J=\{a,b,\ldots ,h\}\) and \(T=6\). The bold edges form a perfect matching corresponding to scheduling the following outage of schedule: period 1: \(\{a,d\}\), period 2: \(\{c,f\}\), period 3: \(\{g,h\}\), period 4: \(\{b\}\), period 5: \(\{e\}\), period 6: \(\varnothing \).

Fig. 1
figure 1

A perfect matching in the auxiliary graph

For a perfect matching M we define subsets \(M_1\subseteq M\) and \(M_2\subseteq M\) by

Note that the 2p nodes in W must be matched to nodes \(a'\), hence

$$\begin{aligned} |M_2|\leqslant |J|-2p\leqslant |J|-2(|J|-T)=2T-|J|, \end{aligned}$$

and with \(|M_1|=\frac{1}{2}(|J|-|M_2|)\) this implies

$$\begin{aligned} |M_1|+|M_2|=\frac{1}{2}(|J|-|M_2|)+|M_2|=\frac{1}{2}(|J|+|M_2|)\leqslant T. \end{aligned}$$

The total throughput for the schedule corresponding to the matching M is

$$\begin{aligned}&\sum _{\{a,b\}\in M_1}F_{ab}+\sum _{\{a,a'\}\in M_2}F_a+(T-|M_1|-|M_2|)F_0\\&\quad =\sum _{\{a,b\}\in M_1}\left( F_{ab}+F_0\right) +\sum _{\{a,a'\}\in M_2}F_a+(T-2|M_1|-|M_2|)F_0 \\&\quad = \omega (M)+(T-|J|)F_0, \end{aligned}$$

where \(\omega (M)\) is the weight of M. Thus the original problem is equivalent to finding a maximum weighted perfect matching in the auxiliary graph, and with an efficient implementation (Gabow 1990) of the blossom algorithm (Edmonds 1965) we have proved the following proposition.

Proposition 1

For \(K=2\) the problem MFASS can be solved in \(O(|J|^3)\) time.

2.2 The single node case

Consider a network with a single transshipment node v, a job set J, a time horizon T and \(K=2\). We use the notation \(J^-=\delta ^-(v)\cap J\) and \(J^+=\delta ^+(v)\cap J\) and assume without loss of generality that \(|J^-|\leqslant |J^+|\). We order the arcs in \(J^-\) and \(J^+\) such that the capacities are non-increasing, i.e. \(J^-=\{a_1,\ldots ,a_r\}\) and \(J^+=\{b_1,\ldots ,b_s\}\) (\(s\geqslant r\)) with

$$\begin{aligned} u_{a_1}&\geqslant u_{a_2}\geqslant \cdots \geqslant u_{a_r},&u_{b_1}&\geqslant u_{b_2}\geqslant \cdots \geqslant u_{b_s}. \end{aligned}$$

Note that it is necessary for feasibility that \(r+s\leqslant 2T\), and in particular \(r\leqslant T\). We will show that an optimal solution can be obtained as follows.

Proposition 2

An optimal solution for the single node problem with \(K=2\) is given by the following schedule.

  • For \(i=1,2,\ldots ,r\) take arcs \(a_i\) and \(b_i\) out in time period i.

  • For \(i=r+1,r+2,\ldots ,\min \{T,\,2T-s\}\) take arc \(b_i\) out in time period i.

  • If \(s>T\) then for \(i=2T-s+1,2T-s+2,\ldots ,T\) take arcs \(b_i\) and \(b_{2T+1-i}\) out in time period i.

For the proof of Proposition 2 we will need the following notation for the inbound and outbound capacities under various outage scenarios.

$$\begin{aligned} X&= \sum _{a\in \delta ^-(v)}u_a,&Y&= \sum _{a\in \delta ^+(v)}u_a, \\ X_i&= X-u_{a_i}{\text { for }}1\leqslant i\leqslant r,&Y_i&= Y-u_{b_i}\text { for }1\leqslant i\leqslant s, \\ X_{ij}&= X-u_{a_i}-u_{a_j}\text { for }1\leqslant i<j\leqslant r,&Y_{ij}&= Y-u_{b_i}-u_{b_j}\text { for }1\leqslant i<j\leqslant s. \end{aligned}$$

We need the following inequality.

Lemma 1

For any real numbers \(x_1,\ldots ,x_6\) satisfying \(x_3,x_4\in [x_1,\,x_2]\), \(x_3+x_4=x_1+x_2\) and \(x_5\leqslant x_6\), we have

$$\begin{aligned} \min \{x_3,\,x_6\} +\min \{x_4,\,x_5\}\geqslant \min \{x_1,\,x_6\}+\min \{x_2,\,x_5\}. \end{aligned}$$

Proof

The LHS is \(\min \{x_3+x_4,\,x_3+x_5,\,x_6+x_4,\,x_6+x_5\}\), and we have

\(\square \)

Proof of Proposition 2

Let S be the schedule described in the proposition, and let \(S_i\) be the set of arcs that are scheduled to be shut in period i \((i=1,\ldots ,T)\). For the sake of contradiction, suppose that S is not optimal. Among all optimal schedules we can choose one, say \(S'\), that differs from S as late as possible, i.e., such that the smallest index i with \(S'_i\ne S_i\) is maximal, where \(S'_i\) is the set of arcs that are shut down in period i according to schedule \(S'\).

  • Case 1 \(i\leqslant r\). There are indices \(p,q\geqslant i\) with \(a_i\in S'_p\), and \(b_i\in S'_q\). Without loss of generality, we may assume \(p=i\), since otherwise \(S'_i\) could be swapped with \(S'_p\) to yield a schedule with the same objective value. Furthermore, \(q>i\) since otherwise \(S'_i=S_i\). Replacing \(S'_i\) with \(\{a_i,\,b_i\}\) and \(S'_q\) with \(S'_i\cup S'_q\setminus \{a_i,\,b_i\}\) we obtain another schedule \(S''\) which agrees with S for one time period more than \(S'\). In order to arrive at the required contradiction we have to check that schedule \(S''\) is not worse than schedule \(S'\). Note that the schedules \(S'\) and \(S''\) differ only in periods i and q. We distinguish several cases for the sets \(S'_i\) and \(S'_q\). For each case we write down the total flows in periods i and q for the schedules \(S'\) and \(S''\), and then we apply Lemma 1 to verify that \(S''\) is at least as good as \(S'\).

    • Case 1.1 \(S'_i=\{a_i,\,b_k\}\) and \(S'_q=\{a_j,\,b_i\}\) for some \(j\in \{i+1,\ldots ,r\}\) and \(k\in \{i+1,\ldots ,s\}\).

      $$\begin{aligned} S' :\ \min \{X_i,\,Y_k\}&+ \min \{X_j,\,Y_i\},&S'':\ \min \{X_i,\,Y_i\}&+ \min \{X_j,\,Y_k\}. \end{aligned}$$

      The claim follows from Lemma 1 with \((x_1,\ldots ,x_6)=(X_i,\,X_j,\,X_j,\,X_i,Y_i,\,Y_k)\).

    • Case 1.2 \(S'_i=\{a_i,\,b_k\}\) for some \(k\in \{i+1,\ldots ,s\}\), and \(S'_q=\{b_i\}\).

      $$\begin{aligned} S' :\ \min \{X_i,\,Y_k\}&+ \min \{X,\,Y_i\},&S'':\ \min \{X_i,\,Y_i\}&+ \min \{X,\,Y_k\}. \end{aligned}$$

      The claim follows from Lemma 1 with \((x_1,\ldots ,x_6)=(X_i,\,X,\,X,\,X_i,\,Y_i,\,Y_k)\).

    • Case 1.3 \(S'_i\!=\!\{a_i\}\) and \(S'_q=\{a_j,\,b_i\}\) for some \(j\in \{i+1,\ldots ,r\}\).

      $$\begin{aligned} S' :\ \min \{X_i,\,Y\}&+ \min \{X_{j},\,Y_i\},&S'':\ \min \{X_i,\,Y_i\}&+ \min \{X_{j},\,Y\}. \end{aligned}$$

      The claim follows from Lemma 1 with \((x_1,\ldots ,x_6)=(X_i,\,X_j,\,X_j,\,X_i, Y_i,\,Y)\).

    • Case 1.4 \(S'_i=\{a_i\}\) and \(S'_q=\{b_i\}\).

      $$\begin{aligned} S' :\ \min \{X_i,\,Y\}&+ \min \{X,\,Y_i\},&S'':\ \min \{X_i,\,Y_i\}&+ \min \{X,\,Y\}. \end{aligned}$$

      The claim follows from Lemma 1 with \((x_1,\ldots ,x_6)=(X_i,\,X,\,X,\,X_i,\,Y_i,\,Y)\).

    • Case 1.5 \(S'_i=\{a_i,\,a_j\}\) and \(S'_q=\{b_i,\,b_k\}\).

      $$\begin{aligned} S' :\ \min \{X_{ij},\,Y\}&+ \min \{X,\,Y_{ik}\},&S'':\ \min \{X_i,\,Y_i\}&+ \min \{X_{j},\,Y_{k}\}. \end{aligned}$$

      The claim follows from Lemma 1 applied twice, first with \((x_1,\ldots ,x_6)=(X_{ij},\,X,\,X_j,\,X_i,\,Y_i,\,Y_k)\) and then with \((x_1,\ldots ,x_6)=(Y_{ik},\,Y,\,Y_i,\,Y_k, X_{ij},\,X)\):

      $$\begin{aligned} \min \{X_j,\,Y_k\}+\min \{X_i,\,Y_i\}\geqslant & {} \min \{X_{ij},\,Y_k\}+\min \{X,\,Y_{i}\}\\\geqslant & {} \min \{X_{ij},\,Y\} +\min \{X,\,Y_{ik}\}. \end{aligned}$$
    • Case 1.6 \(S'_i=\{a_i,\,a_j\}\) for some \(j\in \{i+1,\ldots ,r\}\), and \(S'_q=\{b_i\}\).

      $$\begin{aligned} S' :\ \min \{X_{ij},\,Y\} + \min \{X,\,Y_{i}\}, \quad \quad S'':\ \min \{X_i,\,Y_i\} + \min \{X_{j},\,Y\}. \end{aligned}$$

      The claim follows from Lemma 1 with \((x_1,\ldots ,x_6)=(X_{ij},\,X,\,X_j,\,X_i, Y_i,\,Y)\).

    • Case 1.7 \(S'_i=\{a_i\}\) and, \(S'_q=\{b_i,\,b_k\}\) for some \(k\in \{i+1,\ldots ,s\}\).

      $$\begin{aligned} S' :\ \min \{X_{i},\,Y\} + \min \{X,\,Y_{ik}\}, \quad \quad S'':\ \min \{X_i,\,Y_i\} + \min \{X,\,Y_{k}\}. \end{aligned}$$

      The claim follows from Lemma 1 with \((x_1,\ldots ,x_6)\!=\!(Y_{ik},\,Y,\,Y_k,\,Y_i,\,X_i,\,X)\).

    • Case 1.8 \(S'_i=\{a_i,\,a_j\}\) and \(S'_q=\{a_k,b_i\}\) for some \(j,k\in \{i+1,\ldots ,r\}\).

      $$\begin{aligned} S' :\ \min \{X_{ij},\,Y\} + \min \{X_k,\,Y_{i}\}, \quad \quad S'':\ \min \{X_i,\,Y_i\} + \min \{X_{jk},\,Y\}. \end{aligned}$$

      The claim follows from Lemma 1 with \((x_1,\ldots ,x_6)=(X_{ij},\,X_k,\,X_{jk},\,X_i, Y_i,\,Y)\).

    • Case 1.9 \(S'_i=\{a_i,\,b_j\}\) and \(S'_q=\{b_k,\,b_i\}\) for some \(j,k\in \{i+1,\ldots ,s\}\).

      $$\begin{aligned} S' :\ \min \{X_{i},\,Y_j\} + \min \{X,\,Y_{ik}\}, \quad \quad S'':\ \min \{X_i,\,Y_i\} + \min \{X,\,Y_{jk}\}. \end{aligned}$$

      The claim follows from Lemma 1 with \((x_1,\ldots ,x_6)=(Y_{ik},\,Y_j,\,Y_{jk},\,Y_i, X_i,\,X)\).

  • Case 2 \(i>r\) and \(S_i=\{b_i\}\). Without loss of generality, we assume that \(b_i\in S'_i\), and then \(S'_i\ne S_i\) implies \(S'_i=\{b_i,\,b_j\}\) for some \(j\in \{i+1,\ldots ,s\}\). Furthermore, \(S'_{i}\cup S'_{i+1}\cup \cdots \cup S'_{T}=S_{i}\cup S_{i+1}\cup \cdots \cup S_{T}\), and from \(|S_i|=1\) and \(|S'_i|=2\) it follows that \(|S'_q|\leqslant 1\) for some \(q\in \{i+1,\ldots ,T\}\). Consequently, \(S'_q=\emptyset \) or \(S'_q=\{b_k\}\) for some \(k\in \{i+1,\ldots ,s\}\). Replacing \(S'_i\) with \(\{b_i\}\) and \(S'_q\) with \(\{b_j\}\cup S'_q\) we obtain another schedule \(S''\) which agrees with S for one time period more than \(S'\), and we claim that \(S''\) is not worse than \(S'\). If \(S'_q=\{b_k\}\) then the total flows in periods i and q are

    $$\begin{aligned} S' :\ \min \{X,\,Y_{ij}\} + \min \{X,\,Y_{k}\}, \quad \quad S'':\ \min \{X,\,Y_i\} + \min \{X,\,Y_{jk}\}, \end{aligned}$$

    and the claim follows from Lemma 1 with \((x_1,\ldots ,x_6)\!=\!(Y_{ij},\,Y_k,\,Y_{jk},\,Y_i,\,X,\,X)\). If \(S'_q=\emptyset \) then the total flows in periods i and q are

    $$\begin{aligned} S' :\ \min \{X,\,Y_{ij}\} + \min \{X,\,Y\}, \quad \quad S'':\ \min \{X,\,Y_i\} + \min \{X,\,Y_{j}\}, \end{aligned}$$

    and the claim follows from Lemma 1 with \((x_1,\ldots ,x_6)\!=\!(Y_{ij},\,Y,\,Y_j,\,Y_i,\,X,\,X)\).

  • Case 3 \(i>r\) and \(S_i=\{b_i,\,b_{2T+1-i}\}\). We have \(S'_i\cup \cdots \cup S'_T=S_i\cup \cdots \cup S_T=\{b_i,\,b_{i+1},\ldots ,b_{2T+1-i}\}\). This implies \(|S_p|=2\) for all \(p\in \{i,\ldots ,T\}\). Without loss of generality, we assume \(S'_i=\{b_i,\,b_j\}\) for some \(j\in \{i+1,\ldots ,2T-i\}\), and there exists \(q\in \{i+1,\ldots ,T\}\) with \(S'_q=\{b_k,b_\ell \}\) for \(\ell =2T+1-i\) and some \(k\in \{i+1,\ldots ,2T-i\}\). Replacing \(S'_i\) with \(\{b_i,\,b_\ell \}\) and \(S'_q\) with \(\{b_j,\,b_k\}\) we obtain another schedule \(S''\) which agrees with S for one time period more than \(S'\). The total flows in periods i and q are

    $$\begin{aligned} S' :\ \min \{X,\,Y_{ij}\} + \min \{X,\,Y_{k\ell }\}, \quad \quad S'':\ \min \{X,\,Y_{i\ell }\} + \min \{X,\,Y_{jk}\}. \end{aligned}$$

    From Lemma 1 with \((x_1,\ldots ,x_6)=(Y_{ij},\,Y_{k\ell },\,Y_{i\ell },\,Y_{jk},\,X,\,X)\) it follows that \(S''\) is at least as good as \(S'\) and this is the required contradiction.

\(\square \)

Since sorting the arcs dominates the run-time of the algorithm to find the solution described in Proposition 2 we obtain the following stronger run-time bound for the single-node case.

Corollary 1

For \(K=2\) and a single transshipment node MFASS can be solved in time \(O(|J|\log |J|)\).

3 Hardness results

Before proving the hardness results we make precise the definition of series-parallel network. In the present paper this term refers to a two-terminal series-parallel network: a network that has a single source and single sink and is constructed by a sequence of series and parallel compositions starting from single arcs. For two networks \(N_1\) and \(N_2\) the parallel composition of \(N_1\) and \(N_2\) is obtained by identifying the source node \(s_1\) and sink node \(t_1\) of \(N_1\) with the source node \(s_2\) and sink node \(t_2\) of \(N_2\), respectively. The series composition of \(N_1\) and \(N_2\) is obtained by identifying the sink node \(t_1\) of \(N_1\) with the source node \(s_2\) of \(N_2\). The construction of a series parallel network can be encoded into a tree, the so-called SP-tree, whose leaves are the arcs of the network. This is illustrated in Fig. 2.

Fig. 2
figure 2

A series-parallel network and the corresponding SP-tree

Proposition 3

The restriction of MFASS to the instance class \({\mathcal {C}}^3_{\mathrm{sp}}\cap {\mathcal {C}}^3_{\mathrm{bal}}\cap {\mathcal {C}}^3_{\mathrm{aa}}\) is strongly NP-complete.

Fig. 3
figure 3

The network for \({\mathcal {C}}^3_{\mathrm{sp}}\cap {\mathcal {C}}^3_{\mathrm{bal}}\cap {\mathcal {C}}^3_{\mathrm{aa}}\)

Proof

We use reduction from 3-Partition. Let a 3-Partition instance be given by an integer B and a set \(\{u_1,\ldots ,u_{3n}\}\) of integers with \(B/4<u_j<B/2\) for all j and \(\sum _{j=1}^{3n}u_j=nB\). The problem is to decide if there is a partition of the set \(\{u_1,\ldots ,u_{3n}\}\) into n triples such that the sum of each triple equals B. We define new numbers \(u'_i\) for \(i=1,\ldots ,3n\) by \(u'_i=3u_i-B\). Note that

$$\begin{aligned} \sum _{i=1}^{3n}u'_i=\sum _{i=1}^{3n}\left( 3u_i-B\right) = 3\sum _{i=1}^{3n}u_i-3nB=3nB-3nB=0, \end{aligned}$$
(8)

and for every triple (ijk) we have

Without loss of generality we assume that for some integer r, we have \(u'_i\geqslant 0\) for \(i\leqslant r\) and \(u'_i<0\) for \(i>r\). We define an instance of our problem with \(K=3\), \(T=n\), a single transshipment node v and the following arcs:

  • For \(i=1,2,\ldots ,r\) there is an arc \(a_i\) into v having capacity \(u'_i\), and

  • for \(i=r+1,\ldots ,3n\) there is an arc \(a_i\) that goes out of v and has capacity \(-u'_i\).

This is illustrated in Fig. 3, where the arc labels represent capacities and all arcs have an associated job, i.e., \(J=A\). Obviously the network is series-parallel. From \(K=3\), \(T=n\) and \(|J|=3n\) it follows that we need to shut down exactly 3 arcs in every period. It follows from (8) that the network is balanced. Let \(X=u_1+\ldots +u_r\) be the capacity of the network. Clearly, \((n-1)X\) is an upper bound for the total throughput, and we claim that this bound can be achieved if and only if the set \(\{u'_i\ :\ i=1,\ldots ,3n\}\) can be partitioned into triples that sum up to zero, or equivalently, the set \(\{u_i\ :\ i=1,\ldots ,3n\}\) can be partitioned into triples that sum up to B. First assume that

$$\begin{aligned} \{1,\ldots ,3n\}=\{i_1,\,j_1,\,k_1\}\cup \cdots \cup \{i_n,\,j_n,\,k_n\} \end{aligned}$$

is a partition with \(u'_{i_p}+u'_{j_p}+u'_{k_p}=0\) for all \(p\in \{1,\ldots ,n\}\). Consider the schedule that shuts down the arcs \(a_{i_p}\), \(a_{j_p}\) and \(a_{k_p}\) in period r. It follows from \(u'_{i_p}+u'_{j_p}+u'_{k_p}=0\) that the network with arc set \(A_p=A\setminus \left\{ a_{i_p},\,a_{j_p},\,a_{k_p}\right\} \) is balanced, and therefore we get a feasible flow in which every arc in \(A_p\) is at capacity. Therefore, every arc is at capacity in \(n-1\) periods and the total throughput equals

$$\begin{aligned} \sum _{i=1}^r(n-1)u_i=(n-1)X. \end{aligned}$$

Conversely, if there is a schedule with a total throughput of \((n-1)X\) then every arc must be at capacity in every period in which it is not shut down. This implies that in every period \(p\in \{1,\ldots ,n\}\) the network with arc set \(A_p=A\setminus \left\{ a_{i_p},\,a_{j_p},\,a_{k_p}\right\} \), is balanced, where \(i_p\), \(j_p\) and \(k_p\) are the indices of the arcs that are shut down in period p. Consequently \(u'_{i_p}+u'_{j_p}+u'_{k_p}=0\) for every \(p\in \{1,\ldots ,n\}\), and this yields a solution for the 3-Partition instance. \(\square \)

Fig. 4
figure 4

The network for \({\mathcal {C}}^{|J|-1}_{\mathrm{sp}}\cap {\mathcal {C}}^{|J|-1}_{\mathrm{bal}}\cap {\mathcal {C}}^{|J|-1}_{\mathrm{aa}}\)

Proposition 4

The restriction of MFASS to the instance class \({\mathcal {C}}^{|J|-1}_{\mathrm{sp}}\cap {\mathcal {C}}^{|J|-1}_{\mathrm{bal}}\cap {\mathcal {C}}^{|J|-1}_{\mathrm{aa}}\) is NP-complete.

Proof

We use reduction from Partition. Let a Partition instance be given by an integer B and a set \(\{u_1,\ldots ,u_{n}\}\) of integers with \(\sum _{j=1}^{n}u_j=2B\). The problem is to decide if there is a partition of the set \(\{u_1,\ldots ,u_{n}\}\) into two parts such that the sum of each part equals B. The network used for the reduction is shown in Fig. 4, where the arc labels represent capacities and all arcs have an associated job, i.e., \(J=A\). Consider this network for the time horizon \(T=2\) and with \(K=n+1=|J|-1\). Each of the two arcs of capacity B can carry at most B units of flow over the whole time horizon, because it needs to be shut down for one period. Therefor 2B is an upper bound for the total throughput. It is not possible to have a flow of 2B in a single period, since otherwise all \(n+2\) arcs would need to be shut in the other period. Therefore, in order to achieve the bound of 2B we must have a flow of value B in each time period. This is possible if and only if the total capacity of the arcs between s and v that are shut down in period 1 is B, i.e., the Partition instance is a YES instance. \(\square \)

Note that the algorithm from Boland et al. (2014a) for series-parallel networks and \(K=|J|\) which is pseudopolynomial for fixed T can be adapted to the case \(K=|J|-1\). This algorithm computes a list of T-dimensional vectors for each node of the SP-tree. The vectors at a node v of the SP-tree represent the possible throughputs for the corresponding subnetwork: \((z_1,\ldots ,z_T)\) is in the list at node v if and only if the jobs for arcs in the subnetwork can be scheduled such that the maximum flow value for the subnetwork in time period i is \(z_i\) (\(i=1,\ldots ,T\)). In each node of the tree we flag a vector that can only be achieved by scheduling all jobs at the same time (which is at most one per node in the tree). Finally, when we scan the list at the root node in order to determine the optimal solution, we exclude the flagged vector.

In Boland et al. (2014a), the class \({\mathcal {C}}_{\mathrm{uc}}\) of instances where every arc has unit capacity was shown to be tractable when there is no limit for the number of jobs per time period. We finish this section with a proof that this class becomes NP-complete when such a limit is introduced.

Fig. 5
figure 5

Instance for the reduction in the proof of Proposition 5. The dashed arcs indicate the set J of arcs with an associated job

Proposition 5

The restriction of MFASS to the instance class \({\mathcal {C}}_{\mathrm{uc}}\) is NP-complete.

Proof

We use reduction from 3-Partition. Let a 3-Partition instance be given by an integer B and a set \(\{u_1,\ldots ,u_{3n}\}\) of integers with \(B/4<u_j<B/2\) for all j and \(\sum _{j=1}^{3n}u_j=nB\). This can be reduced to the instance presented in Fig. 5, where every arc has unit capacity and the set J is represented by dashed arcs. Since 3-Partition is strongly NP-hard we may assume that the numbers \(u_i\) are bounded by a polynomial in the input size, and this ensures that the network size is polynomial in the size of the 3-Partition instance. We consider this network with a time horizon \(T=n\) and a bound of \(K=B\) jobs per time period. The total throughput is bounded by \(3n(n-1)\) since the total capacity of the arcs entering node t is \(3(n-1)\) and there are n time periods. From \(|J|=nB\) it follows that exactly B jobs have to be scheduled in each time period. We claim that the bound of \(3n(n-1)\) on the total throughput can be achieved if and only if the 3-Partition instance is a YES instance. First suppose the 3-Partition instance is a YES instance, and let

$$\begin{aligned} \{1,\ldots ,3n\}=\{i_1,j_1,k_1\}\cup \cdots \cup \{i_n,j_n,k_n\} \end{aligned}$$

be a partition with \(u_{i_p}+u_{j_p}+u_{k_p}=B\) for all \(p\in \{1,\ldots ,n\}\). We obtain a schedule that achieves the upper bound as follows. In time period p we shut down the arcs on the paths number \(i_p\), \(j_p\) and \(k_p\), where the paths between s and v are numbered from top to bottom in Fig. 5, i.e., the i-th path contains exactly \(u_i\) dashed arcs. Conversely, suppose that there is a schedule that achieves a total throughput of \(3n(n-1)\). For \(p\in \{1,\ldots ,n\}\) let \(I_p\) be the set of paths on which at least one arc is shut down in period p. In order to achieve a total throughput of \(3n(n-1)\) we must have a flow of value \(3(n-1)\) in each time period. Therefore, in each period we can shut down arcs on at most 3 paths from s to v, i.e., \(|I_p|\leqslant 3\) for all \(p\in \{1,\ldots ,n\}\). Since all dashed arcs have to be shut down in some time period we have \(I_1\cup \cdots \cup I_n=\{1,\ldots ,3n\}\), and consequently, \(|I_p|=3\) for all p and \(I_p\cap I_{p'}=\emptyset \) for all \(p\ne p'\). This implies that in every time period all arcs on exactly 3 paths are shut down, hence \(\sum _{i\in I_p}u_i=B\) for every \(p\in \{1,\ldots ,n\}\) and the 3-sets \(I_1,\ldots ,I_n\) form a solution of the 3-Partition instance. \(\square \)

4 An FPTAS for series-parallel networks with fixed T

In this section we restrict our attention to series-parallel networks. We modify the algorithm from Boland et al. (2014a) such that the bound K can be taken into account. For fixed time horizon T, this algorithm runs in pseudopolynomial time, and we use it together with scaling and rounding (Williamson and Shmoys 2011) to design an FPTAS.

The algorithm presented in Boland et al. (2014a) starts at the leaves of the SP-tree and computes a list of vectors \(z=(z_1,\ldots ,z_T)\) for each node of the SP-tree, where the list at a node v in the SP-tree contains exactly the vectors z such that there exists some schedule for which the subnetwork corresponding to v can carry flow \(z_i\) in time period i for \(i=1,\ldots ,T\). In the problem variant studied in Boland et al. (2014a) there is no restriction on the number of arcs that can be shut in a period, so it is sufficient to keep track of the possible flow vectors at the nodes of the SP-tree. But the same capacity vector can be realised through different schedules. For instance, for the network shown in in Fig. 6, there are three possibilities to get the flow vector (7, 0), i.e. 7 units in the first time period and zero flow in the second period:

  • Shut 2 arcs in period 1 (arcs with capacities 1 and 2), and 2 arcs in period 2 (arcs with capacities 8 and 7); or

  • Shut 1 arc in period 1 (arc with capacity 1 or 2), and 3 arcs in period 2 (arcs with capacities 8, 7 and (2 or 1)); or

  • Shut no arc in period 1, and all four arcs in period 2.

Thus with a limit K for the number of shut arcs per time period it becomes important to keep track of the number of arcs shut in each period along with maximum flow that can be sent in that period. Let \(j_i\) represent the number of arcs shut in the \(i^{th}\) period. We determine lists of job-capacity vectors of the form \(z=((j_1,z_1),(j_2,z_2),\ldots ,(j_T,z_T))\) at each node of the SP-tree. The interpretation of such a vector z in the list of node N is that there is a solution in which, for \(i=1,\ldots ,T\), in time period i exactly \(j_i\) arcs from the subnetwork corresponding to N are shut, and this subnetwork has capacity \(z_i\). Due to the symmetry with respect to the time periods it is no loss of generality to require the job-capacity vectors to be ordered. Hence we consider only vectors that satisfy, for \(i=1,\ldots ,T-1\), either \(z_i>z_{i+1}\) or \(z_i=z_{i+1}\) and \(j_i\geqslant j_{i+1}\). We say that a vector with this property is in standard form, and we note that for every job-capacity vector there is a unique vector in standard form which can be obtained by a permutation of the entries. The list at a leaf node of the tree, corresponding to an arc a of the network, consists of the unique vector \(((0,u_a),(0,u_a),\ldots ,(0,u_a),(1,0))\) if \(a \in J\) or \(((0,u_a),(0,u_a),\ldots ,(0,u_a),(0,u_a))\) if \(a \notin J\). As in Boland et al. (2014a), let \({\mathcal {L}}\) and \({\mathcal {W}}\) denote the sets of leaves and internal nodes of the SP-tree, and let \({\mathcal {W}}_i\) (\(i=0,\ldots ,d\)) be the set of internal nodes at distance i from the root. The lists of job-capacity vectors are computed as described in Algorithm 1.

figure a

Example 1

Consider the series-parallel graph in Fig. 6 where arc labels indicate capacities, all arcs need maintenance for a period over a time horizon of 2 periods. Suppose that \(K=3\). In Fig. 7, we show how job-capacity vectors are computed in the SP-tree.

Fig. 6
figure 6

Example network

Fig. 7
figure 7

Computation of job-capacity vectors

Proposition 6

Let m be the number of arcs, B be an upper bound for the capacities and K be the limit on the number of arcs that can be shut in a period. For series-parallel networks MFASS can be solved in time \(O(T\log T(KmB)^{2T}T! m)\).

Proof

The first and second component of an entry of a vector in the list at an internal node are bounded by K and mB respectively, hence each entry can take KmB possible values. Therefore every list can contain at most \((KmB)^T\) elements. Thus, the loop over \((z, z') \in L_u \times L_w\) and permutations \(\pi \) is over at most \(T!(KmB)^{2T}\) elements. If hash tables are used for the check of \(z''\in L_v\) then the bound of \(O(T\log T)\) for sorting \(z''\) dominates the run-time of the loop. In total there are \(m-1\) internal nodes, thus the run-time of the complete algorithm is \(O(T\log T(KmB)^{2T}T! m)\). \(\square \)

From Proposition 6, it follows that for fixed T MFASS on series-parallel networks can be solved in \(O(m^{2T+1}B^{2T}K^{2T})\) time where B is the maximum capacity of an arc in the network. Now we use a scaling approach to derive a fully polynomial approximation scheme (FPTAS), that is a family \(({\mathcal {A}}_\varepsilon )\) of algorithms, parameterized by a positive real number \(\varepsilon \), such that algorithm \({\mathcal {A}}_\varepsilon \) produces a solution with objective value at least \((1-\varepsilon )z^*\), where \(z^*\) is the optimal value, and the run-time of algorithm \({\mathcal {A}}_\varepsilon \) is polynomially bounded in the input size and \(1/\varepsilon \).

Our approximation scheme is based on scaling the problem such that the maximum capacity becomes bounded. In order to ensure that the solution of the scaled problem is sufficiently close to the optimum we need a lower bound for the optimal objective value. If \(|J|\leqslant K(T-1)\) there is a feasible solution having one time period without any outage, and the flow value for such a time period will be sufficient as lower bound for our purpose. For \(|J|>K(T-1)\) the situation is more complicated, and we need a preprocessing step to transform a given instance into an equivalent one with some control on the maximum capacity. Let \(\rho =\max \{0,|J|-K(T-1)\}\in \{0,1,\ldots ,K\}\), and let M be the maximum flow value with \(\rho \) arcs closed. For \(\rho =0\), M is the capacity of a minimum cut and can be computed by solving a max flow problem. For \(\rho >0\), the computation of M is described in Algorithm 2. Here, for a node v in the SP-tree and a number \(j\in \{0,1,\ldots ,\rho \}\), \(z_v^j\) is the capacity of the subnetwork corresponding to node v when j arcs in the intersection of J and this subnetwork are closed. If j is larger than the size of this intersection, we put \(z_v^j=-\infty \). Algorithm 2 shows that M can be computed efficiently.

figure b

Lemma 2

The maximum flow value M subject to the constraint that \(\rho \) arcs from J carry zero flow can be determined in time \(O(mK^2)=O(m^3)\). \(\square \)

No arc can carry more than M units of flow in any time period, hence we may assume w.l.o.g. that \(B\leqslant M\). We also know that the optimal objective value is at least M because, we can schedule \(\rho \) jobs allowing a flow of value M in time period 1, and then continue arbitrarily. Let \(L=\max \{1,\varepsilon B/(mT)\}\) and consider the scaled problem with the capacities \(u_a\) replaced by \(u'_a=\lfloor u_a/L\rfloor \). The scaled instance can be solved in time

$$\begin{aligned} O\left( m^{2T+1}(B/L)^{2T}K^{2T}\right) =O\left( m^{4T+1}K^{2T} /\varepsilon ^{2T}\right) . \end{aligned}$$

For any feasible vector \(y=(y_{ai})_{a\in A,i\in [T]}\in \{0,1\}^{|J|\, T}\), let F(y) and \(F'(y)\) denote the objective values for the problem on the original network and for the scaled version, respectively. Let \(y^*=(y^*_{ai})_{a\in A,i\in [T]}\) and \({\tilde{y}}=({\tilde{y}}_{ai})_{a\in A,i\in [T]}\) denote optimal solutions of the problem on the original network and of the scaled version, respectively. In the following lemma, we study the the behaviour of the objective values for these solutions under the scaling.

Lemma 3

We have the following estimates:

$$\begin{aligned} L\cdot F'(y^*)&\geqslant (1-\varepsilon )F(y^*), \end{aligned}$$
(9)
$$\begin{aligned} F({\tilde{y}})&\geqslant L\cdot F'({\tilde{y}}). \end{aligned}$$
(10)

Proof

Both inequalities are obvious for \(L=1\), because in this case the original and the scaled problem coincide. So we assume \(L>1\). For \(i=1,\ldots ,T\) let \(C_i\) be a minimum cut in the network \((V,A^*_i,s,t,u')\) where \(A^*_i=\{a\in A\,:\,y^*_{ai}=1\}\). Then, using \(B\leqslant M\leqslant F(y^*)\), we obtain

$$\begin{aligned} L\cdot F'(y^*)= & {} L\sum _{i=1}^T\sum _{a\in C_i}u'_{a}\geqslant L\sum _{i=1}^T\left( \sum _{a\in C_i}\frac{u_{a}}{L}-|C_i|\right) \geqslant \sum _{i=1}^T\sum _{a\in C_i}u_{a}-LmT\\= & {} \sum _{i=1}^T\sum _{a\in C_i}u_{a}-\varepsilon B\geqslant (1-\varepsilon )F(y^*). \end{aligned}$$

Similarly, let \(C'_i\) be a minimum cut in the network \((V,{\tilde{A}}_i,s,t,u)\) where \({\tilde{A}}_i=\{a\in A\,:\,{\tilde{y}}_{ai}=1\}\). Then

$$\begin{aligned} F({\tilde{y}}) = \sum _{i=1}^T\sum _{a\in C'_i}u_{ai}\geqslant L\sum _{i=1}^T\sum _{a\in C'_i}u'_{ai}\geqslant LF'({\tilde{y}}). \end{aligned}$$

\(\square \)

Proposition 7

For fixed T, the class \({\mathcal {C}}_{\mathrm{sp}}\) of instances with a series-parallel network has an FPTAS with run-time \(O(m^{2T+1}(B/L)^{2T}K^{2T})=O(m^{4T+1}K^{2T} /\varepsilon ^{2T})=O(m^{6T+1}/\varepsilon ^{2T})\).

Proof

The run-time bound for the scaled problem is a consequence of Proposition 6, and the approximation guarantee follows from (9) and (10): \(F({\tilde{y}})\geqslant LF'({\tilde{y}})\geqslant LF'(y^*)\geqslant (1-\varepsilon )F(y^*)\). \(\square \)

Remark 1

The problem can be generalized by allowing the bound on the number of jobs to vary over time. In other words, the parameter K is replaced by a vector \((K_1,\ldots ,K_T)\) and constraints (5) are replaced by

$$\begin{aligned} \sum _{a\in J} y_{ai} \geqslant |J|- K_i\qquad \text {for all }i\in [T]. \end{aligned}$$

Algorithm 1 can be modified to solve this more general problem, and with

$$\begin{aligned} \rho =\max \left\{ 0,\,|J|-\sum _{i=1}^TK_i+\min _{i\in [T]}K_i\right\} \end{aligned}$$

we obtain an FPTAS of runtime \(O(m^{6T+1}/\varepsilon ^{2T})\) for this problem.

For \(K=|J|\), it was shown in Boland et al. (2014a) that the method corresponding to Algorithm 1 runs in time \(O(m^{2T-1}B^{2T-2})\), and using the same argument as above, we obtain the following approximation result.

Proposition 8

For fixed T, \(K=|J|\) and series-parallel networks, MFASS has an FPTAS with run-time \(O(m^{2T-1}(B/L)^{2T-2})=O(m^{4T-3} /\varepsilon ^{2T-2})\).

If T is not fixed we still get a PTAS using the fact that for \(K=|J |\) shutting all arcs in the job set J at the same time gives an approximation ratio of \((1-1/T)\). The basic idea is that in order to get a \((1-\varepsilon )\)-approximation for an instance with arbitrary T we can distinguish two cases: if \(1/T\leqslant \varepsilon \) we schedule all jobs at time 1 and otherwise we run the \((1-\varepsilon )\)-approximation algorithm from Proposition 8.

Corollary 2

For \(K=|J|\) and series-parallel networks, MFASS has a PTAS with run-time

$$\begin{aligned} O\left( f(1/\varepsilon )m^{4/\varepsilon -3}\right) \end{aligned}$$

where \(\displaystyle f(x)=x^{5x-5/2}e^{x}\log x\).

Proof

Let \(\varepsilon >0\) be fixed. If \(1/T\leqslant \varepsilon \) we schedule all jobs at time 1. Otherwise \(T< 1/\varepsilon \) and we run the \((1-\varepsilon )\)-approximation algorithm for T. By Proposition 7 in Boland et al. (2014a), the run-time is bounded by

$$\begin{aligned}&O\left( T\log (T)T!(mB/L+1)^{2(T-1)}m\right) \nonumber \\&\quad =O\left( T\log (T)T!\left( \frac{m^2T}{\varepsilon } +1\right) ^{2(T-1)}m\right) \nonumber \\&\quad =O\left( (mT)^{4T-3}\log (T)T!\left( \frac{1}{\varepsilon T} +\frac{1}{(mT)^2}\right) ^{2(T-1)}\right) . \end{aligned}$$
(11)

We have

$$\begin{aligned} \left( \frac{1}{\varepsilon T}+\frac{1}{(mT)^2}\right) ^{2(T-1)} =\left( \frac{m^2T+\varepsilon }{\varepsilon (mT)^2}\right) ^{2(T-1)} =\left( 1+\frac{m^2T+ \varepsilon -\varepsilon (mT)^2}{\varepsilon (mT)^2}\right) ^{2(T-1)} \end{aligned}$$

With \(\alpha =m^2T+\varepsilon -\varepsilon (mT)^2\) and \(\beta =\varepsilon (mT)^2\) we obtain

$$\begin{aligned} \left( \frac{1}{\varepsilon T}+\frac{1}{(mT)^2}\right) ^{2(T-1)} = \left[ \left( 1+\frac{\alpha }{\beta }\right) ^{\beta /\alpha }\right] ^{2(T-1)\alpha /\beta } \leqslant e^{2(T-1)\alpha /\beta }. \end{aligned}$$

Now

$$\begin{aligned} 2(T-1)\frac{\alpha }{\beta }\leqslant 2T\cdot \frac{m^2T+\varepsilon -\varepsilon (mT)^2}{\varepsilon (mT)^2} =2\cdot \frac{m^2T(1-\varepsilon T)+\varepsilon }{\varepsilon m^2T} \leqslant 2/\varepsilon +1, \end{aligned}$$

and this implies

$$\begin{aligned} \left( \frac{1}{\varepsilon T}+\frac{1}{(mT)^2}\right) ^{2(T-1)} = O(e^{2/\varepsilon }). \end{aligned}$$

Substituting into (11) yields a run-time bound of

$$\begin{aligned} O\left( (mT)^{4T-3}\log (T)T!e^{2/\varepsilon }\right) , \end{aligned}$$

and since all terms are increasing in T, we get with \(T<1/\varepsilon \) and using Stirling’s formula to bound the factorial, that the run-time is bounded by

$$\begin{aligned}&O\left( (1/\varepsilon )^{4/\varepsilon -3}\log (1/\varepsilon )\lceil 1/\varepsilon \rceil !e^{2/\varepsilon }m^{4/\varepsilon -3}\right) \\&\quad = O\left( (1/\varepsilon )^{4/\varepsilon -3}\log (1/\varepsilon )(1/\varepsilon )^{1/\varepsilon }e^{-1/\varepsilon } \sqrt{1/\varepsilon }e^{2/\varepsilon }m^{4/\varepsilon -3}\right) \\&\quad =O\left( (1/\varepsilon )^{5/\varepsilon -5/2}\log (1/\varepsilon )e^{1/\varepsilon }m^{4/\varepsilon -3}\right) . \end{aligned}$$

\(\square \)