1 Introduction
1.1 Processing time function
1.2 Problem setting
-
which jobs should complete before the common ideal start time \(\tau \) (denoted by job set A), and
-
which job should be the first job that starts before or at \(\tau \) and that as well completes at or after \(\tau \) (this job is called the straddler job \(\chi \)) if it exists;
-
then, the remaining jobs (excluding the straddler job, if it exists) all start at or after \(\tau \) (job set B).
-
Case \({\mathcal {P}_{\textit{agreeable}}}\) asserts \(\ell _i a_j\le \ell _j a_i\iff \ell _i b_j\le \ell _j b_i\) for any pair i, j of jobs, which we call agreeable ratios of basic processing time and slopes.
-
This property is also fulfilled by the special case of related slopes, which scales common basic slopes \(1\ge a\ge 0\), \(b\ge 0\) by a job-specific rational scale factor \(1\ge v_j\ge 0\) to \(a_j=av_j\) and \(b_j=bv_j\) for each job j.
-
Special cases of related slopes are monotonic slopes where either \(a_j=0\) for each job j, which yields a nondecreasing \(p_j\), or \(b_j=0\) for each job j, which yields a nonincreasing \(p_j\), and
-
common slopes \(a_j=a\), \(b_j=b\) (case \({\mathcal {P}_{\textit{common}}}\)).
2 Summary of results and organization
-
Identification of three polynomial cases: first, if \(t_{\min }\ge \tau \); second, if a certain job sequence starts each job before or at \(\tau \); third, if each basic processing time is zero.
-
Proof that the studied problem is NP-hard already for the special case \({\mathcal {P}_{\textit{common}}}\) of common slopes. This is shown by reduction from Even-Odd Partition. See Table 2 for an overview.
-
Introduction of a fully polynomial time approximation scheme (FPTAS) for the case \({\mathcal {P}_{\textit{agreeable}}}\) of agreeable ratios of basic processing time and slopes. This approach can be also be used in the common slope case and known monotonic slope cases, see Table 3 for an overview. Notably, the underlying dynamic program is not pseudopolynomial, which is exceptional (Garey and Johnson 1979, p. 140). Because the objective value can be exponential in input length and input values, please note that the existence of an FPTAS neither implies the existence of a pseudopolynomial algorithm, nor rules out NP-hardness in the strong sense.
Objective | Common weights \(w_j=w\) | Job-specific weights \(w_j\) |
---|---|---|
\(\sum _jw_j\,C_j\) | \(\circ \) Polynomial (Smith 1956) | \(\circ \) Polynomial (Smith 1956) |
\(\sum _jw_j\,T_j\) | \(\circ \) Polynomial (Lawler and Moore 1969) | \(\circ \) NP-hard (Yuan 1992) |
\(\circ \) Strongly polynomial FPTAS (Kacem 2010) | ||
\(\sum _jw_j\left( {E_j+T_j}\right) \) | \(\circ \) Strongly polynomial FPTAS (Kellerer and Strusevich 2010) |
3 Literature review
3.1 Literature with constant processing times
3.2 Literature on time-dependent scheduling
\(a_j\) | \(b_j\) | Complexity | Complexity of selected special cases |
---|---|---|---|
0 | b | \(\circ \) polynomial (Melnikov and Shafransky 1979) | |
a | 0 | \(\circ \) polynomial (Melnikov and Shafransky 1979) | |
0 | \(b_j\) | ||
\(a_j\) | 0 | \(\circ \) NP-hard (Cheng et al. 2003) | \(\bullet \) polynomial if a \({\ell _j}/{a_j}{\searrow }\)-sorted sequence where the smaller \(\ell _j\) is first for ties starts all jobs before or at \(\tau \) (Lemma 5) |
a | b | \(\bullet \) NP-hard (Theorem 1) | |
\(\bullet \) polynomial if ordering the jobs nondecreasingly by \(\ell _j\) starts each job before or at \(\tau \) (Lemma 5) | |||
\(\bullet \) FPTAS (Corollary 9) | |||
\(a_j\) | \(b_j\) | \(\bullet \) NP-hard (Corollary 7) | |
\(\bullet \) polynomial if a \({\ell _j}/{a_j}{\searrow }\)-sorted sequence with smaller \(\ell _j\) first (in the case of ties) starts all jobs before or at \(\tau \) (Lemma 5) | |||
\(a_j\) | \(b_j\) | FPTAS runtime in the agreeable ratios of basic processing time and slopes case \({\mathcal {P}_{{ agreeable}}}\) | |
---|---|---|---|
\(a_j\) | \(b_j\) | \(\bullet \) \({\mathcal {O}\!\left( n^5\cdot {\log \!\left( {1+b_{\max }}\right) }\cdot \left( \log \ell _{\max }+n\log \left( {1+b_{\max }}\right) \right) \!/\varepsilon ^2\right) }\) | Theorem 2 |
0 | \(b_j\) | \(\circ \) \(\mathcal {O}\!\left( n^5\cdot {\log \!\left( {1+b_{\max }}\right) }\cdot \left( \log \ell _{\max }+n\log \left( {1+b_{\max }}\right) \right) \!/\varepsilon ^2\right) \) | |
\(\circ \) \(\mathcal {O}\!\left( n^{{5}}\cdot \log ^{{{4}}}{\max \{n,1/\varepsilon ,\ell _{\max },1+b_{\max }\}}/\varepsilon ^{{3}}\right) \) | |||
\(\circ \) \(\mathcal {O}\!\left( n^4 \cdot \log ^{3}{\max \{\ell _{\max },1+b_{\max },\tau \}}\cdot {\log \!\left( {n\log \max \{\ell _{\max },1+b_{\max },\tau \}/{\varepsilon }}\right) } /\varepsilon ^2\right) \) |
Halman (2019) | ||
\(\bullet \) \({\mathcal {O}\!\left( n^5\cdot {\log \!\left( {1+b_{\max }}\right) }\cdot \left( \log \ell _{\max }+n\log \left( {1+b_{\max }}\right) \right) \!/\varepsilon ^2\right) }\) | Theorem 2 | ||
\(a_j\) | b | \(\bullet \) \(\mathcal {O}\!\left( n^4\cdot \left( \log \ell _{\max }+n\log \left( {1+b_{\max }}\right) \right) \!/\varepsilon \right) \) | Corollary 9 |
\(a_j\) | 0 | \(\circ \) \(\mathcal {O}\!\left( n^3\cdot \log ^{3}{\max \{n,1/\varepsilon ,{\ell _{\max }}\}}/\varepsilon ^2\right) \) |
Ji and Cheng (2007) |
\(\bullet \) \(\mathcal {O}\!\left( n^3\cdot \log \!\left( {\ell _{\max }n}\right) \!/\varepsilon \right) \) | Corollary 10 |
3.3 Practical application in automobile production planning
4 Preliminaries
4.1 Notation of sequences
-
‘\({\ell _j}/{a_j}{\searrow }\)-sorted’ if \(\ell _ja_k\ge \ell _ka_j\), or
-
‘\({\ell _j}/{b_j}{\nearrow }\)-sorted’ if \(\ell _jb_k\le \ell _kb_j\)
4.2 Makespan calculation
5 Polynomial cases of \(\mathcal {P}\)
5.1 Early ideal start time
5.2 Late ideal start time
5.3 Zero basic processing times
6 Symmetry in optimal sequences for \(\mathcal {P}\)
7 Computational complexity of \(\mathcal {P}\), \({\mathcal {P}_{\textit{agreeable}}}\), \({\mathcal {P}_{\textit{common}}}\)
8 Dynamic programming algorithm for \({\mathcal {P}_{\textit{agreeable}}}\)
-
sequence \(S_1\) of job set A is \({\ell _j}/{a_j}{\searrow }\)-sorted, to start at \(t_{\min }\) and guaranteed to complete before \(\tau \), and
-
sequence \(S_2\) of job set B is \({\ell _j}/{b_j}{\nearrow }\)-sorted, to start at \(\tau \).
-
The first component, x, denotes sequence \(S_1\)’s completion time, hence, \(x=\alpha _{S_1}(t_{\min })\), see Lemma 1.
-
The y component describes the proportional increase of sequence \(S_2\)’s makespan if increasing its start time \(t{\ge \tau }{}\), hence, \(y=\frac{\mathrm {d}}{\mathrm {d}t} \beta _{S_2}(t)=\frac{\mathrm {d}}{\mathrm {d}t} \beta _{S_2}(\tau )\), see Corollary 2(b).
-
Lastly, z represents sequence \(S_2\)’s makespan if starting it at \(\tau \), hence, \(z=\beta _{S_2}(\tau )-\tau \), see Lemma 2.
-
If the vector is generated in (13b), job j is in set A. The value \(x'\) describes the start time of job j, completing at x. If \(x'=t_{\min }\), job j is the first job in set A and it starts at the global start time \(t_{\min }\). As \(\ell _{j-1}a_j{}{}\ge \ell _ja_{j-1}{}\), the makespan x of the jobs in set A is minimum, see Proposition 2. The condition \({C_j(x')}{<} \tau \) ensures that j does not turn into the straddler job. As the set B is unchanged, \(y=y'\) and \(z=z'\) remain the same.
-
Else, if the vector is generated in (13c), job j is instead in set \(B\). For this, j is (for now) started at \(\tau \). Then, j completes at \(C_j(\tau )\). If \(z'=0\), job j is the first job in set B. Then, \(z=C_j(\tau )-\tau {=\ell _j}\). If \(z'>0\), job j is prepended to the jobs \(B'=B\setminus \{j\}\). Then, they start later, by \(C_j(\tau )-\tau {=\ell _j}\). As of Corollary 2(b), their completion time increases by \({y\cdot }\prod _{j\in B'}\left( {1+b_j}\right) \). Each job that is inserted in set B multiplies the previous y by \(\left( {1+b_j}\right) \). Therefore, \(y'=\prod _{j\in B'}\left( {1+b_j}\right) \). Then, z expresses the sum of processing times of all jobs in set B when started at \(\tau \). Moreover, the jobs are sequenced as \({S_B=(} j,\dots ,\min B{)}\). Thus, \(z={\beta _{S_B}(\tau )}-\tau \). As \(\ell _j\le \ell _{j-1}\), this makespan is minimum for the jobs in set B if started at or after \(\tau \).
9 Fully polynomial time approximation scheme for \({\mathcal {P}_{\textit{agreeable}}}\)
-
The first case applies if \(x<\tau \), i.e., the job j is appended to \(S_1\) such that it completes before \(\tau \). Consider vector \([x',y',z']\in {V}_{j-1}\) where \(C_j(x')=x\), \(y'=y\), \(z'=z\) as generated in (14b).Then, by induction, the corresponding vector \([x'^\#,y'^\#,z'^\#]\in {V}^\#_{j-1}\) with \(x'^\#\le x'\), \(y'^\#\le y'\cdot \varDelta ^{j-1}\), and \(z'^\#\le z'\cdot \varDelta ^{j-1}\) exists. Also, the condition \(x'^\#\le \tau \) is satisfied. Furthermore, the algorithm created \([\tilde{x}',\tilde{y}',\tilde{z}']=[C_j(x'^\#), y'^\#,z'^\#]\in \tilde{{V}}^\#_j\), see (14b). Although, after the trimming operation in (14d) this vector may not be in \({V}^\#_j\), there exists a vector \([x^\#,y^\#,z^\#]\in {V}^\#_j\) with \(x^\#\le \tilde{x}'\), \(h(y^\#)\le h(\tilde{y}')\), and \(h(z^\#)=h(\tilde{z}')\) (thus, \(y^\#\le \tilde{y}' \cdot \varDelta \) and \(z^\#\le \tilde{z}' \cdot \varDelta \)).Let us show the induction hypothesis for this vector. Remember that \(C_j(t)\) is an nondecreasing function. Thus, \( x^\#\le \tilde{x}' = C_j(x'^\#)\le C_j(x')=x\) for (15a). As \(y^\#\le \tilde{y}'\cdot \varDelta = y'^\#\cdot \varDelta \le y'\cdot \varDelta ^j=y\cdot \varDelta ^j\), (15b) is satisfied. Inequality \(z^\#\le \tilde{z}' \cdot \varDelta = z'^\# \cdot \varDelta \le z' \cdot \varDelta ^{j}=z \cdot \varDelta ^j\) satisfies (15c).
-
In the second case corresponding to (14c), consider vector \([x',y',z']\in {V}_{j-1}\) where \(x'=x\), \(\left( {1+b_{j}}\right) y'=y\), and \(z'+y'\,\ell _j= y\).By induction hypothesis, the corresponding vector \([x'^\#,y'^\#,z'^\#]\in {V}^\#_{j-1}\) with \(x'^\#\le x'\), \(y'^\#= y'\cdot \varDelta ^{j-1}\), and \(z'^\#\le z'\cdot \varDelta ^{j-1}\) exists. Then, the algorithm created a corresponding vector \([\tilde{x}',\tilde{y}',\tilde{z}']=[x'^\#,\,\left( {1+b_{j}}\right) y'^\#,\,z'^\#+y'^\#\,\ell _j]\in \tilde{{V}}^\#_j\) in (14c). Even though, by trimming, this vector may not be in set \({V}^\#_j\), there must exist some vector \([x^\#,y^\#,z^\#]\in {V}^\#_j\) with \(x^\#\le \tilde{x}'\), \(h(y^\#)\le h(\tilde{y}')\), and \(h(z^\#)=h(\tilde{z}')\) (thus \(y^\#\le \tilde{y}'\cdot \varDelta \) and \(z^\#\le \tilde{z}'\cdot \varDelta \)).Let us show the induction hypothesis. For (15a): \(x^\#\le \tilde{x}' = x'^\# \le x' = x\). As \(y^\#\le \tilde{y}' \cdot \varDelta = \left( {1+b_{j}}\right) \cdot y'^\# \cdot \varDelta \le \left( {1+b_{j}}\right) \cdot \left( y' \cdot \varDelta ^{j-1} \right) \cdot \varDelta =y \cdot \varDelta ^j\), (15b) is satisfied. Lastly, (15c) is satisfied because$$\begin{aligned} z^\#&\le \tilde{z}' \cdot \varDelta = \left( z'^\#+y'^\#\,\ell _j\right) \cdot \varDelta \\&\le \left( z' \cdot \varDelta ^{j-1} +y'\,\ell _j\cdot \varDelta ^{j-1} \right) \cdot \varDelta = \left( z' +y'\,\ell _j \right) \cdot \varDelta ^{j}\\&= z\cdot \varDelta ^{j}.\qquad \qquad \qquad \qquad \qquad \qquad \qquad \qquad \qquad \qquad \quad \,\,{\square } \end{aligned}$$