4.2 Problem Types and Models
4.2.2 Dedicated Quay Crane Scheduling
In dedicated quay crane scheduling, the terminal operator first decides on the number of cranes to be allocated to each vessel. Then, he assigns those cranes to jobs (holds) within each vessel. Since the cranes assigned to each vessel can only operate on that specific vessel while it remains berthed, crane blocking may occur. However, the terminal operator can also decide whether or not to allow crane shifting within each vessel. Hence, two problems can be defined; one with crane blocking and no intra-ship crane shifting, and another with crane shifting within each vessel.
Both of these problems can be decomposed into subproblems, and can be solved to optimality in two stages. In the first stage, we define a vessel level problem for each vessel considered in the planning horizon. The vessel level problem is to minimize the processing time for a vessel for a given number of assigned quay cranes. By solving the vessel level problem for all possible numbers of cranes that can be assigned to each ship, we generate data elements pk(q), the total processing time required for a ship k given that q cranes are assigned. In the second stage (master problem), we determine the most appropriate number of quay cranes and specifically which cranes to assign to each vessel to minimize the objective value.
While we need to solve many vessel level problems, the vessel level problems are each of small sizes and easy to solve in both crane blocking and crane shifting (within vessel) case. Because of the decomposition, the master problem also is relatively small.
4.2.2.1 Vessel Level Problem Formulation with Crane Blocking
The vessel level model with crane blocking and no intra-vessel crane shifting finds the minimum processing time of a vessel for a given number of assigned quay cranes.
As a reminder, we assume that jobs cannot be interrupted, and therefore a crane assigned to a hold of the vessel must process that hold until all container operations are completed. Note that this problem allows a crane to move from one hold of a ship to another, but only after all work at the initially assigned hold is completed. In the problem formulation, we keep track of the locations of individual cranes. Hence, we define:
Ltm: location of crane m at time period t.
A vessel level model is defined for a particular vessel. For conciseness of exposi-tion, we drop the subscript of the vessel in the presentation and hence define:
H: number of holds,
pi: processing time of hold i,
Furthermore, we use the following binary variable set:
zmit =
1 if crane m starts working on hold i at time t, 0 otherwise;
Then, the problem can be formulated as a mixed integer program as follows where T represents the number of time periods in the planning horizon which should be set large enough to model the problem feasibly but no larger than P
pi.
Minimize p(Q) (52)
subject to
XQ m=1
XT t=1
zmit = 1 ∀i (53)
p(Q) ≥ tzmit + pi− 1 ∀m, i, t (54)
Ltm ≤ Ltm+1− 1 ∀m, t (55)
Lt+¯mt ≥ (ztmi− 1)H + i ∀m, i, t, ¯t ∈ {0, .., pi − 1} (56) Lt+¯mt ≤ (1 − zmit )H + i ∀m, i, t, ¯t ∈ {0, .., pi − 1} (57)
1 ≤ Ltm ≤ H ∀m, t (58)
zmit ∈ {0, 1} ∀m, i, t (59)
Constraint (53) ensures that a crane is assigned to each hold. p(Q) defines the total stay of the vessel given Q quay cranes. Hence, it should be no smaller than the completion times of all holds, which is guaranteed by Constraint (54). Constraint (55) ensures that cranes cannot cross over each other. Constraints (56) and (57) together ensures that if a crane is assigned to a hold, it should stay at that hold until hold is completely processed. Constraint (58) says that cranes cannot leave vessel until completion.
4.2.2.2 Vessel Level Problem Formulation with Crane Shifting
In the vessel level model with crane shifting, we need not keep track of individual crane locations. It is sufficient instead to find processing start times for each hold while respecting the work continuity constraint, without exceeding a limit on the total number of cranes working during each time period. Hence, we can use the following set of binary variables:
zit=
1 if work on hold i starts at time t, 0 otherwise;
Then, the problem can be formulated as a mixed integer program follows:
Minimize p(Q) (60)
subject to
XT t=1
zit = 1 ∀j (61)
XH i=1
¯t
X
t=¯t−pi+1
zit ≤ Q ∀i, ¯t ∈ {pi, .., T } (62)
p(Q) ≥ tzit+ pi− 1 ∀i, t (63)
zit∈ {0, 1} ∀i, t (64)
Constraint (61) ensures that work is initiated for each hold. Constraint (62) limits the total number of cranes that we can use at each time period to Q, the number of cranes considered for this problem. p(Q) is the total processing time of the vessel, which must be no less than the completion times of all holds, which is guaranteed by Constraint (63).
4.2.2.3 Master Problem Formulation
The vessel level models determine the minimum total vessel processing times required by each vessel for different number of quay cranes assigned. Recall that we let pk(q) represent this minimum processing time when using q dedicated cranes to work ship k.
Using these results, we now formulate the master problem to determine the number of quay cranes (and which cranes) to be assigned to each vessel to minimize the objective
that can be assigned. The lower limit of the range can be set to 1, while the upper limit can be set to hk, since only one crane can work on a hold at a time.
The following binary variables are used in the model:
uqk=
1 if q cranes are assigned to vessel k, 0 otherwise;
vkm =
1 if crane m is assigned to vessel k, 0 otherwise.
αtk =
1 if work on vessel k starts after time t, 0 otherwise.
βkt =
1 if work on vessel k stops before time t, 0 otherwise.
Then, the problem can be formulated as a mixed integer program:
Minimize
subject to Constraint (66) sets the range for the number of quay cranes that can be assigned to each vessel where Constraint (67) calculates the number of cranes assigned to each vessel. Overlapping of vessel rectangles is prevented by Constraint (68). The expression Phk
q=1pk(q)uqk gives the total berth time of vessel k. Hence, Constraint (69) sets a lower bound on the earliest time that each vessel can leave. Constraints
values where the z variables are equal to one while a crane is working at a vessel;
these z variables are then used in constraints (78) - (79) to track the locations of the Q individual cranes. Constraints (72) - (75) are valid inequalities on binary variables α and β. Note that as a result of Constraint (76) and (77), z variables will always have a value either 0 of 1 and we can define them as continuous variables. Constraints (78) and (79) together keep cranes grouped together on the vessel to which they are assigned; note that the details of what cranes do while assigned to a vessel k cannot be determined by this formulation, but are already known from the vessel-level problem given the assignment of q cranes. Constraint (80) is the non-crossing constraint for cranes, and Constraint (81) keeps each crane on the berth.