1 Introduction
1.1 Literature overview
Cranes | Dim. | Operation characteristics | Objective function | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Twin | CO | Triple | G | T | \(p_j\) | \(w_j\) | \(e_j\) | \(d_j\) | \(\overline{d}_j\) | prec | \(C_{\max }\) | \(\max f_{j}\) | \(\sum f_{j}\) | |
Briskorn and Angeloudis (2016) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | |||||||||
Briskorn and Zey (2018) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | ||||||||||
Eilken (2019) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | ||||||
Nossack et al. (2018) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | ||||||||||
Zey et al. (2020) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | ||||||||
This paper | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | (\(\checkmark \)) | \(\checkmark \) | \(\checkmark \) |
1.2 Contribution and outline
2 Problem settings
2.1 Problem description and assumptions
-
The sequences of containers to be transported are fully known, and the containers’ properties are deterministic. The problem setting we consider is very short-term, and thus this restriction seems to be acceptable.
-
Interference between cranes depends only on the positions of their gantries. Obviously, while this might not cover all kinds of interference, it fully accounts for physical interference.
-
The gantry and the trolley of each crane move either with full speed or not at all, that is, we neglect bounded acceleration. Furthermore, the full gantry speeds for the two cranes are identical.
-
The spreader can only be moved while the gantry and trolley stand still. This is a technical prerequisite of many cranes and a safety restriction in most container terminals. However, the gantry and the trolley of a crane can move in parallel.
-
The cost functions are non-decreasing in time. As long as release dates are respected, we typically will not suffer from completing lifting or drop-off as early as possible, since it provides more flexibility to other devices exchanging containers with cranes.
-
We have a grid of discrete gantry and trolley positions of cranes in the block which needs to be considered in order to pick up or drop off a container. Since blocks are typically discretized into slots able to host one stack of large containers or two stacks of small containers, these discrete positions occur naturally.
-
Gantry positions of cranes are with respect to the center of the respective gantry, and gantries do not overlap if their positions differ by a distance of two consecutive gantry positions in the grid.
2.2 Problem definitions
-
the visit associated with task \(\sigma _c(k)\) has a time interval preceding the one of the visits associated with task \(\sigma _c(k+1)\) for each \(k=1,\ldots ,n_c-1\), and
-
for each \(k=1,\dots ,n_c\) the time interval of the visit of \(\sigma _c(k)\) is in \([e_j,d_j]\).
-
For a twin crane system, we assume crane 1 to be the crane located towards the seaside. Then, a pair \(((p_1^g,p_1^t),(p_2^g,p_2^t))\) of sequence-compatible routings is interference-compatible if \(p_1^g(\theta )\le p_2^g(\theta )-1\) for each \(\theta \in [0,\Theta ]\).
-
For a crossover crane system, we assume crane 1 to be the larger crane. Then, a pair \(((p_1^g,p_1^t),(p_2^g,p_2^t))\) of sequence-compatible routings is interference-compatible if \(|p_1^g(\theta )-p_2^g(\theta )|\ge 1\) or \(\theta \) is not in an interval of a visit associated with a task of crane 1 for each \(\theta \in [0,\Theta ]\). Hence, interference can occur only during visits associated with tasks of crane 1. During these visits, the gantries are required to maintain a distance of at least one bay.
j | \(b_j\) | \(r_j\) | \(p_j\) | \(e_j\) | \(d_j\) |
---|---|---|---|---|---|
a | 5 | 4 | 3 | 4 | 8 |
b | 6 | 4 | 2 | 0 | 20 |
c | 5 | 4 | 4 | 0 | 20 |
d | 8 | 4 | 1 | 0 | 20 |
-
in the last interval (potentially of length 0), both cranes have completed their respective task sequence;
-
in the kth interval, k odd (potentially of length 0), both cranes are processing their task sequences in parallel; and
-
in the kth interval, k even, only one crane c is processing its task sequence while \(3-c\) is not and idles or avoids c for c to complete a task.
3 General problem settings
3.1 NP hardness of Crossover-Sum and Twin-Sum
-
For the time being, we assume that larger crane 1 reaches b at the same time point as crane 2 reaches bay \(b-1\) (we will justify this assumption later). This point of time depends on the routings up to this point. Hence, it is not constant, but we assume it to be bounded from below by \(\underline{\theta _k}\) and from above by \(\overline{\theta _k}\). Now, the decision must be made as to which crane can go first. We have \(p_{k_1}=\overline{\theta _k}-\underline{\theta _k}+a_k\), \(d'_{k_1}=\infty \), \(w_{k_1}=0\), \(p_{k_2}=a_k-2\), \(d'_{k_2}=\overline{\theta _k}+a_k-1\), and \(w_{k_2}=a_k\). Note that completion of \(k_2\) will be non-tardy if and only if crane 2 goes first, and we are indifferent as to whether to let crane 1 go first with respect to \(f_{k_1}(C_{k_1})\), since \(w_{k_1}=0\).
-
For the two next tasks \(k'_1\) and \(k'_2\), we have \(p_{k'_1}=a_k-2\), \(d'_{k'_1}=2\cdot \overline{\theta _k}-\underline{\theta _k}+3\cdot a_k\), \(w_{k'_1}=\infty \), \(p_{k'_2}=d'_{k'_1}-\underline{\theta _k}\), \(d'_{k'_2}=\infty \), and \(w_{k'_2}=0\). Again, we must decide which crane can go first. Note that completion of \(k'_1\) will be non-tardy if and only crane 1 conducts \(k'_1\) before crane 2 conducts \(k'_2\), and this does not depend on the priority of cranes with regard to \(k_1\) and \(k_2\). In order to meet a given finite upper bound for the overall objective value, \(k'_1\) indeed needs to be conducted first due to \(w_{k'_1}=\infty \).
-
the total weight of tardy tasks among \(k_1\), \(k_2\), \(k'_1\), and \(k'_2\) is zero, and
-
the time span between cranes 1 and 2 reaching bays b and \(b-1\), respectively, and crane 1 completing \(k'_1\) isHere, the left part reflects the length of time that crane 1 is delayed from starting \(k_1\) by crane 2, and the right part reflects the time crane 1 needs to complete \(k'_1\) after that.$$\begin{aligned}&\underbrace{1+p_{k_2}+1}_{\text {in }b\text {, }k_2\text {, out of }b}+\underbrace{p_{k_1}+2+p_{k'_1}}_{\text {}k_1\text {, move to }b+2\text {, }k'_1}\nonumber \\&\quad =a_k+(\overline{\theta _k}-\underline{\theta _k}+a_k)+2+(a_k-2)=3\cdot a_k\\&\qquad +(\overline{\theta _k}-\underline{\theta _k}). \end{aligned}$$
-
the total weight of tardy tasks among \(k_1\), \(k_2\), \(k'_1\), and \(k'_2\) is \(w_{k_2}=a_k\), and
-
the time span between cranes 1 and 2 reaching bays b and \(b-1\), respectively, and crane 1 completing \(k'_1\) isHere, crane 1 can start \(k_1\) immediately, and crane 2 can conduct \(k_2\) and move to \(b+1\) while crane 1 conducts \(k'_1\).$$\begin{aligned}&p_{k_1}+2+p_{k'_1}=(\overline{\theta _k}-\underline{\theta _k}+a_k)+2+(a_k-2)\\&\quad =2\cdot a_k+(\overline{\theta _k}-\underline{\theta _k}) \end{aligned}$$
3.2 General dynamic programming framework
-
If we consider twin cranes, then the gantry of crane \(3-c\) is located in bay \(b=b_{\sigma _c(k_c)}+3-2c\). The trolley of crane \(3-c\) has a position in \([r_{\sigma _{3-c}(k_{3-c}+1)}-|b-b_{\sigma _{3-c}(k_{3-c}+1)}|,r_{\sigma _{3-c}(k_{3-c}+1)}+|b-b_{\sigma _{3-c}(k_{3-c}+1)}|]\). Note that any trolley position in this interval allows an adjustment of the trolley to the next task’s row \(r_{\sigma _{3-c}(k_{3-c}+1)}\) while moving the gantry to the next task’s bay \(b_{\sigma _{3-c}(k_{3-c}+1)}\). Thus, if the trolley is in a position in this interval, then the start of the next task of crane \(3-c\) is delayed by crane c. If, however, the trolley is not in a position in this interval, then while the gantry of crane \(3-c\) is prevented from approaching the next task’s bay, crane \(3-c\) can use this delay of the gantry (at least partially) to adjust its trolley.
-
If we consider crossover cranes, we distinguish between \(c=1\) and \(c=2\).
-
If \(c=2\), then crane \(3-c=1\) is located in bay \(b_{\sigma _c(k_c)}\), and its trolley has a position in \([r_{\sigma _{3-c}(k_{3-c}+1)}-1,r_{\sigma _{3-c}(k_{3-c}+1)}+1]\).
-
If \(c=1\), then crane \(3-c=2\) is located in bay \(b_{\sigma _c(k_c)}-1\) or \(b_{\sigma _c(k_c)}+1\) if \(b_{\sigma _{3-c}(k_{3-c})}<b_{\sigma _c(k_c)}\) or \(b_{\sigma _{3-c}(k_{3-c})}>b_{\sigma _c(k_c)}\), respectively. The trolley of crane \(3-c\) has a position in \([r_{\sigma _{3-c}(k_{3-c}+1)}-|b-b_{\sigma _{3-c}(k_{3-c}+1)}|,r_{\sigma _{3-c}(k_{3-c}+1)}+|b-b_{\sigma _{3-c}(k_{3-c}+1)}|]\).
-
-
\(k'_{c'}> k_{c'}\) and \(k'_{3-c'}\ge k_{3-c'}\) and
-
there is an interference-compatible pair of partial routings starting from \((k_1,k_2,c,\theta )\) where
-
crane \(c'\) processes its task sequence up to completing \(\sigma _{c'}(k'_{c'})\) without any delay caused by interference with crane \(3-c'\) and completes \(\sigma _{c'}(k'_{c'})\) at \(\theta '\),
-
crane \(3-c'\) processes its task sequence up to completing \(\sigma _{3-c'}(k'_{3-c'})\) without any delay caused by interference with crane \(c'\), and
-
crane \(3-c'\) gets into the position implied by \((k'_1,k'_2,c',\theta ')\) prior to \(\theta '\).
-
-
\(P(k_1,k_2,c,\theta )\) is the set of states that have a transition leading to \((k_1,k_2,c,\theta )\),
-
\(c^{sum}((k'_1,k'_2,c',\theta '),(k_1,k_2,c,\theta ))\) is the total cost of tasks \(\sigma _1(k'_1+1)\) to \(\sigma _1(k_1)\) and \(\sigma _2(k'_2+1)\) to \(\sigma _2(k_2)\), and
-
\(c^{\mathrm{max}}((k'_1,k'_2,c',\theta '),(k_1,k_2,c,\theta ))\) is the maximum cost among tasks \(\sigma _1(k'_1+1)\) to \(\sigma _1(k_1)\) and \(\sigma _2(k'_2+1)\) to \(\sigma _2(k_2)\).
4 Special cases of Crossover-Sum and Twin-Sum
4.1 Number of tardy tasks
4.2 Total weighted completion time without release dates and deadlines
-
\(k'_{c'}> k_{c'}\) and \(k'_{3-c'}\ge k_{3-c'}\), and
-
there is an interference-compatible pair of partial routings starting from \((k_1,k_2,c)\) where
-
crane \(c'\) processes its task sequence up to completing \(\sigma _{c'}(k'_{c'})\) without any delay,
-
crane \(3-c'\) processes its task sequence up to completing \(\sigma _{3-c'}(k'_{3-c'})\) without any delay, and
-
crane \(3-c'\) gets into the position implied by \((k'_1,k'_2,c',\theta ')\) prior to the completion of \(k'_{c'}\).
-