Computers & Operations Research 52 (2014) 84–93
Contents lists available at ScienceDirect
Computers & Operations Research journal homepage: www.elsevier.com/locate/caor
Location assignment for outbound containers with adjusted weight proportion Canrong Zhang a,b, Tao Wu c,n, Ming Zhong a,b, Li Zheng b, Lixin Miao a a
Logistics Engineering and Simulation Laboratory, Graduate School at Shenzhen, Tsinghua University, Shenzhen 518055, China Department of Industrial Engineering, Tsinghua University, Beijing 100084, China c Business Analytics and Optimization, University of Phoenix, Apollo Group, Inc., Phoenix, AZ 85040, USA b
art ic l e i nf o
a b s t r a c t
Available online 1 July 2014
This paper studies the location assignment for arriving outbound containers during container-receiving stage. For the problem, the literature assumed that the proportion of the remaining containers on a weight group keeps unchanged throughout the container-receiving process. This assumption is inconsistent with the practice that it should be constantly adjusted according to the containers that have already been received. We therefore propose two other handling ways in this paper, leading to two new dynamic programming models. These two models are compared with the existent model on smallscale instances. For large-scale instances, a two-stage heuristic is proposed. In the first stage, a neighborhood searching heuristic is developed to generate the priority sequence of stacking patterns for each weight group of containers; in the second stage, a rollout-based heuristic is proposed to improve the incumbent solution by simulating more stack alternatives for each arriving container. The numerical experiments show that the model with adjusted weight proportion can significantly reduce state size and improve stacking quality, and that the proposed two-stage heuristic is effective and efficient for large-scale instances. & 2014 Published by Elsevier Ltd.
Keywords: Outbound container Location assignment Dynamic programming Heuristics Container rehandling
1. Introduction With the rapid development of container transportation, container terminals have become an important hub for loading and unloading containers. Containers are normally piled up in the yard to thoroughly utilize the scarce space, but only those located at the top are directly accessible to yard cranes. Extra movements (i.e., the rehandling) occur when a target container is buried beneath others. Therefore, how to determine the yard location for an arriving container during container-receiving stage has become a key issue for container terminals. To place a newly arrival container onto a stack in the yard, the following three decisions at different levels need to be made: (1) allocating yard blocks or sub-blocks to the outbound containers destined for each arriving vessel; (2) allocating yard bays to the containers of the same group (i.e., the containers of the same length, destined for the same destination port and the same vessel); (3) assigning a yard location, within the range of a single yard bay, to each newly arrival container. This paper is concerned about the
n
Corresponding author. E-mail addresses:
[email protected] (C. Zhang),
[email protected] (T. Wu),
[email protected] (M. Zhong),
[email protected] (L. Zheng),
[email protected] (L. Miao). http://dx.doi.org/10.1016/j.cor.2014.06.012 0305-0548/& 2014 Published by Elsevier Ltd.
lowest-level decision. For the higher-level decisions, refer to [6,13,10,3,16,15] and the papers therein. In practice, container weights are generally classified into three groups: heavy (H), medium (M) and light (L). It is preferred that the heavier containers are loaded at the bottom of the vessel and the lighter ones are loaded on the top so that the vessel's center of gravity stays low, helping maintain the stability of the vessel during sailing. Therefore, during container-receiving process, the heavier containers should be stacked on the top of the yard and the lighter ones should be stacked at the bottom. However, it is always difficult to achieve this desired result, as the arrival sequence of outbound containers is usually uncertain and the lighter containers may not always arrive earlier than heavier ones, resulting in that some heavier containers must be stacked into the bottom. Researchers and practitioners have been extensively working on this problem for finding better solutions. Kozan and Preston [9] integrated container transfer model with container location model. In that paper, the models were evaluated by the transfer time between the storage location and the destined vessel. The related research can be found in [11,8]. Dekker et al. [2] used a simulation method to compare random stacking with category stacking by the number of relocation movements. Kang et al. [5] attempted to accommodate all realizations of container arrivals by a stacking strategy, which was also evaluated by the number of relocation movements via simulation. Chen and Lu [1] proposed a hybrid sequence stacking algorithm
C. Zhang et al. / Computers & Operations Research 52 (2014) 84–93
and compared it with a random stacking algorithm and a vertical stacking algorithm. Jang et al. [4] suggested a genetic algorithm to determine the storage location for each arriving container in order to minimize the expected number of relocation movements. In contrast to using the heuristic rules, Kim et al. [7] and Zhang et al. [12] proposed a dynamic programming model to minimize the expected number of relocation movements. Zhang et al. [14] is an extension to the previous two papers by discriminating the punishment for different stacks in terms of the number of heavier containers stacked beneath. Kim et al. [7] and Zhang et al. [12] assumed that the proportion of the remaining un-arrived containers on each weight group remains the same during the whole container-receiving stage. The assumption reduces state size and makes the problem easier to solve. However, such a handling way is apparently inconsistent with the practice in which the proportion of containers on each weight group does not remain constant and is significantly determined by the weight information gathered by line carriers or brokers from their customers. The recorded information for the proportions may not be exactly correct but generally fits the real data. The availability of such information motivates the research of this paper that suggests the proportion of the remaining un-arrived containers on each weight group be adjusted whenever the yard bay configuration is changed, in contrast to the assumption made by [7,12]. Numerical experiments show that, by adjusting the proportions for fitting the reality, stacking quality can be significantly improved. The remainder of this paper is organized as follows: three dynamic programming models are presented in Section 2, followed by their comparison in Section 3; a two-stage heuristic is presented in Section 4, followed by extensive numerical experiments in Section 5; and the conclusions are drawn in the last section. 2. Mathematical models The definitions related to the model are presented as follows: Stage: The total number of empty slots in a yard bay. The example as shown in Fig. 1, which has a bay pattern with 6 stacks, 4 tiers and 3 weight groups (heavy (H), medium (M) and light (L)), is in stage 7, as its total number of empty slots is equal to 7. State: The state of a yard bay consists of the combination of the number of empty slots in each stack and the combination of the representation of each stack. A commonly used way to represent a stack is the heaviest weight group of its loaded containers. An example is shown in Fig. 1, which is represented as “221110 LLHHMH”. According to [7,12], the stack representation of this kind can significantly reduce state size but omit too much information about the stack at the same time, especially the information about the number of containers on each weight group. Since this paper focuses on the adjustment of weight group proportion and certainly needs such information, we prefer to not use the heaviest weight group representation for the stack as employed in Fig. 1. As a replacement, the three weight groups (H, M, L) are respectively represented as (100, 10, 1), and a stack is represented as the sum of the weight groups included in the stack. For example, (M, H, L) in stack 4 in Fig. 2 is represented as 10þ100þ1¼111. The new state representation is sorted by the number of empty slots in a decreasing order. If a tie exists, the stack with a greater sum of its loaded containers is placed in front of the other.
Fig. 1. An illustration of bay representation.
85
Fig. 2. An illustration of the new bay representation.
The parameters related to the model are presented as follows: s t
N n G rg
Xn Xgn kn pn ðkn Þ
the number of stacks in a yard bay. the number of tiers in a stack. In practice, t is normally less than 6. That is why we can represent the three weight groups (H, M, L) respectively as (100, 10, 1). Otherwise, ten “L” containers may be seen as an “M” container if t is allowed to be larger than or equal to 10. the total number of stages (containers in the yard bay) which is equal to s t. the stage number, that is, the number of empty slots in the yard bay. the set of weight groups which are indexed by g in a decreasing order of their weight groups. the proportion of the number of containers with weight group g. Therefore, the number of containers with weight group g is equal to N r g . As mentioned previously, these numbers, that are gathered by line carriers and brokers from shippers, almost fit the real data. In this paper, we assume that the container number for each weight group is distributed exactly according to rg. The uncertainty is existed only in their arrival sequence. the input state of the nth stage (see Fig. 2). the number of containers with weight group g already stacked in the yard bay when the input state is Xn. the weight group of an arriving container at stage n. the probability that a newly arrival container is with weight group kn.
The decision variables related to the model are presented as follows: Dn the stack assigned to an arriving container at stage n. Rn ðX n ; Dn ; kn Þ the punishment coefficient for placing a newly arrival container with weight group kn onto stack Dn when the input state is Xn. As applied in [7,12], this punishment coefficient is equal to 1 when at least one of containers in stack Dn is heavier than kn and 0 otherwise. It is obviously a simple treatment way, and discriminating Rn ðX n ; Dn ; kn Þ in terms of the number of heavier containers stacked beneath will be studied in the future study. T n ðX n ; Dn ; kn Þ the state transfer function that maps Xn to X n 1 when a newly arrival container with weight group kn is assigned to stack Dn. f n ðX n Þ the minimization of the total expected punishment of Rn ðX n ; Dn ; kn Þ from the starting input state Xn to fully filling the yard bay. The decision process is shown in Fig. 3, from which we see that a decision (Dn) is made at each input state (Xn) after knowing the weight group (kn) of the newly arrival container, with consideration of the impact of the output state ðX n 1 Þ on the subsequent stacking for the remaining empty slots. The objective function is to minimize the total expected punishment of Rn ðX n ; Dn ; kn Þ after fully filling a yard bay. One of the problems we are facing is how to identify the probability pn ðkn Þ that a newly arrival container is with weight group kn when the current state is Xn. The literature typically assumed that
86
C. Zhang et al. / Computers & Operations Research 52 (2014) 84–93
2.3. Stochastic inconstant proportion model: pn ðkn Þ is adjusted according to the current input state Xn but has some perturbation on weight groups for the next arrival container (SIP)
Fig. 3. The decision process.
pn ðkn Þ remains constant during the whole container-receiving stage (e.g., [7,12]), which leads to a model given in Section 2.1. However, in reality, the proportion of remaining containers on each weight group cannot be constant and must be adjusted according to the containers that have already been received. Considering the limitations of the existent model, we propose a model given in Section 2.2. In addition, as motivated by [5] who noted that the estimated weight group may turn out to be other weight group when it arrives at the terminal, we also propose a model given in Section 2.3.
As described in [5], the estimated weight group may turn out to be other weight group when it arrives at the terminal. For this situation, the probability for the next arrival container has some degree of perturbation. Let pðg 0 jgÞ ð∑g0 A G pðg 0 jgÞ ¼ 1Þ denote the probability that a container with the estimated weight group g turns out to be the one with weight group g 0 when it arrives at the terminal. This paper refers to Table 3 from [5] to show an example of pðg 0 jgÞ. Then, the recursive equation considering perturbation is formulated as follows: f n ðX n Þ ¼ ∑pn ðkn Þmin½Rn ðX n ; Dn ; kn Þ þ f n 1 ðX n 1 Þ; kn
Dn
n ¼ 1; 2; …; N and f 0 ðX 0 Þ ¼ 0 (
2.1. Constant proportion model: pn ðkn Þ remains constant and is predetermined by parameter r kn (CP)
s:t: : p~ n ðkn Þ ¼ max
As employed in [7,12], a simple way to deal with pn ðkn Þ is to keep it unchanged during the whole receiving operation and set it to r kn . By doing so, we obtain the following recursive equation.
p n ðkn Þ ¼
f n ðX n Þ ¼ ∑pn ðkn Þmin½Rn ðX n ; Dn ; kn Þ þ f n 1 ðX n 1 Þ; n ¼ 1; 2; …; N and f 0 ðX 0 Þ ¼ 0 kn
Dn
ð1Þ
p~ n ðkn Þ ; ∑g A G p~ n ðgÞ
8 kn A G
pn ðkn Þ ¼ ∑ p n ðgÞpðkn jgÞ; gAG
s:t: : pn ðkn Þ ¼ r kn ;
8 kn A G
X n 1 ¼ T n ðX n ; Dn ; kn Þ;
ð2Þ
8 kn A G
ð3Þ
Eq. (1) is to minimize the total expected punishment of Rn ðX n ; Dn ; kn Þ from the starting input state Xn to fully filling the yard bay. Eq. (2) restricts pn ðkn Þ equal to r kn during the whole receiving stage. Note that this simple treatment way essentially makes pn ðkn Þ independent of Xn. That is to say, the weight group of the future arriving containers is independent of the past accumulation. Therefore, notation Xgn is not needed in this situation. Eq. (3) defines the relationship between X n 1 and Xn. A representative partial solution for CP for a bay pattern with s¼ 4, t¼ 3, G ¼ fH; M; Lg and r g ¼ 1=3 ð 8 g A GÞ is shown in Table 1. 2.2. Deterministic inconstant proportion model: pn ðkn Þ is adjusted according to the current input state Xn (DIP) The second way is that pn ðkn Þ can be adjusted according to the accumulated number of containers for each weight group that have already been stacked in the yard bay. Therefore, Xgn is needed under this particular situation. Then, the recursive equation is formulated as follows: f n ðX n Þ ¼ ∑pn ðkn Þmin½Rn ðX n ; Dn ; kn Þþ f n 1 ðX n 1 Þ; n ¼ 1; 2; …; N and f 0 ðX 0 Þ ¼ 0 kn
) N r kn X knn ;0 ; n
Dn
N r kn X knn ; s:t: : pn ðkn Þ ¼ n N r kn X knn Z 0;
8 kn A G
8 kn A G
X n 1 ¼ T n ðX n ; Dn ; kn Þ;
8 kn A G
ð4Þ
ð5Þ
X n 1 ¼ T n ðX n ; Dn ; kn Þ;
8 kn A G
8 kn A G
ð8Þ
8 kn A G
ð9Þ
ð10Þ ð11Þ ð12Þ
Eq. (9) is to adjust the remaining containers for each weight group. Unlike in DIP, the number of containers for each weight group in SIP may be greater than N r g . A maximum sign is needed to ensure the probability is non-negative. Eq. (10) is to normalize the results calculated in Eq. (9). Eq. (11) is to calculate the probability of the next arrival container for each weight group by aggregating pðg 0 jgÞ. Here we implicitly assume that pðg 0 jgÞ as shown in Table 3 is applied to all stages no matter how many remaining containers have not yet arrived at the terminal. If pðg 0 jgÞ is restricted to be 1 for g 0 ¼ g and 0 otherwise, then SIP is simplified to DIP. Therefore, SIP is a generalization of DIP. An illustrative example of a yard bay (Fig. 4) is used to show how pn ðkn Þ is calculated. For the yard bay, s¼ 4, t ¼3, G ¼ fH; M; Lg and r g ¼ 1=3 ð 8 g A GÞ, and the number of empty slots is n¼ 2. According to the pðg 0 jgÞ as shown in Table 3, the calculation results of p2 ðkn Þ are shown in Table 4. A partial solution of SIP for this example is shown in Table 5.
3. Models comparison The three models presented in the previous section will be compared from the following two perspectives: state size and stacking quality. All programs are coded in JAVA and run on a computer with a 3.16-GHz Intel Xeon processor and a 16 GB RAM.
ð6Þ ð7Þ
Eq. (5) ensures that the probability of the weight group for the next arrival container is adjusted according to the containers that have already been stacked. Eq. (6) follows from the common logic. A representative partial solution for DIP for a bay pattern with s¼ 4, t¼3, G ¼ fH; M; Lg and r g ¼ 1=3 ð 8 g A GÞ is shown in Table 2. There are lots of “null” in the table, which means that the entries are not available under this particular situation.
3.1. State size comparison State size is the total number of state Xn where n ranges from 0 to N ¼ s t. The comparison results are shown in Table 6, from which we see that CP and SIP have the same state size and DIP has only 42% of the state size of CP on average when each weight group has an equal proportion, which means that DIP can significantly reduce state size. We also see that the computational time increases dramatically with s t. It can be easily proved that
C. Zhang et al. / Computers & Operations Research 52 (2014) 84–93
87
Table 1 The partial solution of CP. Xn
H
M
Xn 1 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 a
200,300,300,300 200,300,300,210 200,300,300,201 200,300,300,120 200,300,300,111 200,300,300,102 200,300,300,30 200,300,300,21 200,300,300,12 200,300,300,3 200,300,210,210 200,300,210,201 200,300,210,120 200,300,210,111 200,300,210,102
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
300,300,300,300 300,300,300,210 300,300,300,201 300,300,300,120 300,300,300,111 300,300,300,102 300,300,300,30 300,300,300,21 300,300,300,12 300,300,300,3 300,300,210,210 300,300,210,201 300,300,210,120 300,300,210,111 300,300,210,102
Dn
pn ðkn Þ
Xn 1
1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200
1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
f n ðX n Þ ¼ ∑kn pn ðkn ÞminDn ½Rn ðX n ; Dn ; kn Þ þ f n 1 ðX n 1 Þ ¼
f n ðX n Þ
L
300,300,300,210 300,300,210,210 300,300,210,201 300,300,210,120 300,300,210,111 300,300,210,102 300,300,210,30 300,300,210,21 300,300,210,12 300,300,210,3 300,210,210,210 300,210,210,201 300,210,210,120 300,210,210,111 300,210,210,102
Dn
pn ðkn Þ
Xn 1
1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200
1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
300,300,300,201 300,300,210,201 300,300,201,201 300,300,201,120 300,300,201,111 300,300,201,102 300,300,201,30 300,300,201,21 300,300,201,12 300,300,201,3 300,210,210,201 300,210,201,201 300,210,201,120 300,210,201,111 300,210,201,102
Dn
pn ðkn Þ
1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200
1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3
2/3a 2/3 2/3 2/3 2/3 2/3 2/3 2/3 2/3 2/3 2/3 2/3 2/3 2/3 2/3
1 1 1 2 ð0 þ 0Þ þ ð1 þ 0Þ þ ð1þ 0Þ ¼ . 3 3 3 3
Table 2 The partial solution of DIP. Xn
H
1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 a
200,210,30,3 200,210,21,12 200,210,21,3 200,210,12,12 200,201,30,12 200,201,30,3 200,201,21,21 200,201,21,12 200,120,120,3 200,120,111,12 200,120,111,3 200,120,102,21 200,120,102,12 200,120,21,3 200,120,12,12
M
Xn 1
Dn
pn ðkn Þ
Xn 1
Dn
pn ðkn Þ
Xn 1
Null Null Null Null Null Null Null Null Null Null Null Null Null 0000 300,120,21,3 0000 300,120,12,12
Null Null Null Null Null Null Null Null Null Null Null Null Null 1200 1200
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
Null Null 0000 0000 Null 0000 Null 0000 Null Null 0000 Null 0000 Null Null
Null Null 1200 1200 Null 1200 Null 1200 Null Null 1200 Null 1200 Null Null
0 0 1 1 0 1 0 1 0 0 1 0 1 0 0
0000 0000 Null Null 0000 Null 0000 Null 0000 0000 Null 0000 Null Null Null
210,210,21,3 210,210,12,12 210,201,30,3 210,201,21,12
210,120,111,3 210,120,102,12
210,201,30,3 210,201,21,12
201,201,30,12 201,201,21,21 201,120,120,3 201,120,111,12 201,120,102,21
Dn
pn ðkn Þ
1200 1200 Null Null 1200 Null 1200 Null 1200 1200 Null 1200 Null Null Null
1 1 0 0 1 0 1 0 1 1 0 1 0 0 0
1a 1 1 1 1 1 1 1 1 1 1 1 1 0 0
f n ðX n Þ ¼ ∑kn pn ðkn ÞminDn ½Rn ðX n ; Dn ; kn Þ þ f n 1 ðX n 1 Þ ¼ null þ null þ 1ð1 þ 0Þ ¼ 1.
Table 3 The perturbation on weight groups Kang et al. [5]. Estimated weight group
H M L
f n ðX n Þ
L
Table 4 The calculation of p2 ðkn Þ. p2 ðkn Þ
True weight group H (%)
M (%)
L (%)
87.9 38.3 6.6
8.2 43.8 13.4
3.9 17.9a 80
a The bold item in the table tells us that 17.9% of all the containers that are estimated to be the weight group “M” but turn out to be the weight group “L”.
p2 ðHÞ p2 ðMÞ p2 ðLÞ a
CP
1/3 1/3 1/3
DIP
0.5 0.5 0
SIP After Eq. (9)
After Eq. (10)
After Eq. (11)
0.5 0.5 0
0.5 0.5 0
0.631 0.260a 0.109
0.260 ¼ 8.2% 0.5 þ 43.8% 0.5 þ 13.4% 0.
proportion. Table 7 summarizes the state size ratio between DIP and CP for some typical patterns of weight group proportion.
3.2. Stacking quality comparison
Fig. 4. An example to calculate the adjusted probability.
In order to compare stacking quality associated with the models, we will follow the procedure as shown in Fig. 5. Specifically,
CP and SIP have the same state size for any pattern of weight group proportion, provided r g 4 0 ð 8 g A GÞ, while the state size of DIP depends heavily on the specific pattern of weight group
Step 1: Calculate the dynamic programming results. Go to Step 2. Step 2: Generate a container-arriving sequence according to rg. Go to Step 3.
88
C. Zhang et al. / Computers & Operations Research 52 (2014) 84–93
Table 5 The partial solution of SIP. Xn
H
M
Xn 1 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 a
200,300,300,300 200,300,300,210 200,300,300,201 200,300,300,120 200,300,300,111 200,300,300,102 200,300,300,30 200,300,300,21 200,300,300,12 200,300,300,3 200,300,210,210 200,300,210,201 200,300,210,120 200,300,210,111 200,300,210,102
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
300,300,300,300 300,300,300,210 300,300,300,201 300,300,300,120 300,300,300,111 300,300,300,102 300,300,300,30 300,300,300,21 300,300,300,12 300,300,300,3 300,300,210,210 300,300,210,201 300,300,210,120 300,300,210,111 300,300,210,102
Dn
pn ðkn Þ
Xn 1
1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200
0.225 0.202 0.247 0.172 0.225 0.277 0.129 0.193 0.256 0.320 0.172 0.225 0.129 0.193 0.256
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
f n ðX n Þ
L
300,300,300,210 300,300,210,210 300,300,210,201 300,300,210,120 300,300,210,111 300,300,210,102 300,300,210,30 300,300,210,21 300,300,210,12 300,300,210,3 300,210,210,210 300,210,210,201 300,210,210,120 300,210,210,111 300,210,210,102
Dn
pn ðkn Þ
Xn 1
1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200
0.286 0.264 0.308 0.235 0.286 0.337 0.195 0.256 0.316 0.377 0.235 0.286 0.195 0.256 0.316
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
300,300,300,201 300,300,210,201 300,300,201,201 300,300,201,120 300,300,201,111 300,300,201,102 300,300,201,30 300,300,201,21 300,300,201,12 300,300,201,3 300,210,210,201 300,210,201,201 300,210,201,120 300,210,201,111 300,210,201,102
Dn
pn ðkn Þ
1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200
0.490 0.534 0.445 0.593 0.490 0.386 0.676 0.552 0.427 0.303 0.593 0.490 0.676 0.552 0.427
0.776a 0.798 0.753 0.828 0.776 0.723 0.871 0.807 0.744 0.680 0.828 0.776 0.871 0.807 0.744
f n ðX n Þ ¼ ∑kn pn ðkn ÞminDn ½Rn ðX n ; Dn ; kn Þ þ f n 1 ðX n 1 Þ ¼ 0:225ð0 þ 0Þþ 0:286ð1þ 0Þþ 0:490ð1þ 0Þ ¼ 0:776.
Table 6 State size comparisona. {s; t; jGj}
CP
{4,3,3} {4,4,3} {4,5,3} {5,3,3} {5,4,3} {6,3,3} {6,4,3} {7,3,3} a
rH ¼
DIP
SIP
State size
f N ðX N Þ
Time(s)
State size
f N ðX N Þ
Time(s)
State size
f N ðX N Þ
Time(s)
8855 73,815 455,126 42,504 575,757 177,100 3,838,380 657,800
0.366 0.538 0.692 0.265 0.387 0.194 0.286 0.144
1 14 453 6 850 92 43,028 1326
3707 30,457 181,573 18,192 238,713 78,154 1,791,921 255,994
0.052 0.052 0.044 0.010 0.005 0.000 0.000 0.000
1 4 93 2 176 23 10422 221
8855 73,815 455,126 42,504 575,757 177,100 3,838,380 657,800
0.239 0.357 0.463 0.153 0.228 0.092 0.148 0.049
1 14 450 6 847 92 42391 1349
1 M 1 L 1 ;r ¼ ;r ¼ . 3 3 3
Table 7 State size ratio between DIP and CP (%). {s; t; jGj}
Pattern 1
Pattern 2
Pattern 3
Pattern 4
{4,3,3} {4,4,3} {4,5,3} {5,3,3} {5,4,3} {6,3,3} {6,4,3} {7,3,3}
41.863 41.261 39.895 42.801 41.461 44.130 46.684 38.917
13.495 12.503 9.918 10.493 9.487 9.233 6.758 11.105
13.495 12.503 9.918 10.493 9.487 9.233 6.758 11.105
13.495 4.819 6.266 6.075 5.825 9.233 6.758 4.617
1 M ;r 3 2 Pattern 2: r H ¼ ; r M 3 1 Pattern 3: r H ¼ ; r M 6 1 Pattern 4: r H ¼ ; r M 6
Pattern 1: r H ¼
1 L 1 ;r ¼ . 3 3 1 1 ¼ ; rL ¼ . 6 6 2 1 ¼ ; rL ¼ . 3 6 1 2 ¼ ; rL ¼ . 6 3 ¼
Since Q is very large for some bay patterns, we are concerned about only a part of container-arriving sequences randomly generated according to rg that will be put into comparison to generate the performance indicator. It is obvious that the more the containerarriving sequences put into comparison, the higher the accuracy of the result and the longer the runtime. As a compromise, we will set this number to 10,000. That is, Tsize in Fig. 5 is set to 10,000. Similar to [5], we also used “the total number of lighter containers stacked above heavier ones in the same stack” divided by Tsize as the performance indicator. As an example, the performance indicator for the yard bay as shown in Fig. 1 is 0þ 0þ0þ2þ 1þ0¼3 where 2 and 1 are occurred on stacks 4 and 5, respectively. The comparison results are shown in Table 8. From the “PI” column in the table, we see that the stacking quality of DIP is the best among the three and SIP is better than CP.
4. A two-stage heuristic
Step 3: Construct a full bay according to the dynamic programming results. Go to Step 4. Step 4: Evaluate the full bay just constructed according to some performance indictor. Go to Step 5. Step 5: If the number of simulation is larger than the predetermined Tsize, terminate the evaluation and return the result, otherwise go back to Step 2.
As shown in Table 6, the dynamic programming method can quickly and optimally solve problem instances with a small size of bay pattern. However, the method is apparently limited on solving large-size instances in a reasonable amount of computational time. Herein, in this section, we propose a two-stage heuristic for solving problems with large bay patterns. Before describing the heuristic, we would like to list some definitions at first as follows:
For a bay pattern with s stacks, t tiers, and jGj weight groups with the proportion equal to rg for each weight group, there are a number of Q ð ¼ ðs tÞ!=∏g A G ðs t r g Þ!Þ container-arriving sequences.
Definition 1. Stacking patterns: The pattern of a stack onto which an arriving container can be loaded. For example, a three-tier stack has 13 stacking patterns as shown in Fig. 6.
C. Zhang et al. / Computers & Operations Research 52 (2014) 84–93
Definition 2. Priority sequence of stacking patterns: When a new container arrives, the stack with a stacking pattern at the front position of the sequence has a higher priority of being selected than those in the back positions of the sequence. Each weight group has its own priority sequence of stacking patterns. As an example, for a bay pattern with 4 stacks and 3 tiers, the priority sequences for weight groups “H”, “M”, and “L” are given on the left side of Fig. 7, respectively. That is, if we have a yard bay with the current configuration shown on the right side of Fig. 7, a container with weight group “H” should be loaded onto stack 2; a container
89
with weight group “M” should be loaded onto stack 1; and a container with weight group “L” should be loaded onto either stack 3 or stack 4, determined by their highest priority in the sequence. Definition 3. Operators for neighborhood searching: Two neighborhood searching operators, i.e., exchanging and reinserting, are employed in this paper as shown in Fig. 8. Exchanging operator means exchanges of two randomly selected stacking patterns; and reinserting operator means removing a randomly selected stacking pattern and then reinserting it into a randomly selected position (but not its original position). The first stage of the heuristic applies a neighborhood searching algorithm for generating the priority sequence of stacking patterns for each weight group; and the second stage applies a rollout-based algorithm for improving stacking quality. 4.1. Stage 1: neighborhood searching The framework of the neighborhood searching algorithm is briefed in Fig. 9. The detailed steps are described as follows: Step 1: Generate an initial priority sequence of stacking patterns by the following greedy rules, and go to Step 2. (R1):
(R2):
Each stacking pattern of a stack is treated as the heaviest weight group of the container loaded in the stack, and each arriving container is placed onto the stack with a stacking pattern of the same weight group. For those stacking patterns with the same heaviest weight group, they are sequenced in an increasing order of their attached numbers as shown in Fig. 6.
Step 2: Calculate fitness by simulation. Go to Step 3. The part on the right-hand side of Fig. 9 shows how to calculate the fitness for each priority sequence by simulation. This process is very similar to that as shown in
Fig. 5. The flow chart for comparisons.
Fig. 6. The stacking patterns for a three-tier stack.
Table 8 Stacking quality comparison for one proportion pattern.a {s; t; jGj}
{4,3,3} {4,4,3} {4,5,3} {5,3,3} {5,4,3} {5,5,3} {6,3,3} {6,4,3} {6,5,3} {7,3,3} {7,4,3} {7,5,3}
CP
DIP
SIP
SS
GS
Stage 1
Stage 2
PI
Time(s)
PI
Time(s)
PI
Time(s)
PI
PI
PI
PI
Time(s)
0.289 0.472 0.628 0.195 0.267 – 0.135 0.206 – 0.091 – –
1 16 200 4 275 – 70 1976 – 514 – –
0.052 0.052 0.044 0.010 0.005 – 0.000 0.000 – 0.000 – –
1 4 44 2 87 – 9 1021 – 120 – –
0.106 0.131 0.144 0.034 0.079 – 0.012 0.024 – 0.002 – –
1 17 189 4 267 – 81 1979 – 449 – –
3.539 5.874 8.401 4.350 7.296 10.277 5.162 8.540 12.136 6.002 9.981 14.302
1.204 1.650 2.097 1.269 1.923 2.807 0.000 0.000 0.000 0.000 1.623 2.019
0.464 0.357 0.438 0.817 0.359 0.514 0.000 0.344 0.000 0.000 0.269 0.221
0.166 0.132 0.178 0.495 0.153 0.098 0.000 0.089 0.000 0.000 0.036 0.030
126 942 2694 252 2239 6470 497 4536 11887 864 8463 21972
PI: performance indicator. 1 1 1 a H r ¼ ; rM ¼ ; rL ¼ . 3 3 3
90
C. Zhang et al. / Computers & Operations Research 52 (2014) 84–93
Fig. 5, with only one exception that the former one uses the priority sequence of stacking patterns to stack the arriving containers while the latter one uses the dynamic programming results. The smaller “the average number of lighter containers stacked above heavier ones in the same stack”, the better the fitness of the solution. Step 3: If the number of iterations exceeds a predetermined number, then terminate the procedure. Otherwise, go to Step 4. Step 4: Generate a new priority sequence of stacking patterns through neighborhood searching, and go back to Step 2.
4.2. Stage 2: rollout-based algorithm The priority sequence of stacking patterns generated by the neighborhood searching algorithm has a limitation on that only one candidate stack is considered for an arriving container. However, there could be many other alternatives of stacks that may produce better results. Herein, the second stage of the heuristic applies a rollout-
based algorithm that considers each candidate Dn. The candidate stack Dn with the best simulation performance indicator is chosen as the stack for the arriving container. The whole process is repeated until the yard bay is fully stacked. The procedure of the algorithm is shown in Fig. 10 with its brief procedure presented below: Step 1: If n 40 (the initial value of n is set to s t), go to Step 2; otherwise, terminate the procedure. Step 2: Place the arriving container kn onto one candidate stack Dn, and update the yard bay state from Xn to X n 1 . Go to Step 3. Step 3: Evaluate the performance indicator for choosing candidate stack Dn by simulation. Go to Step 4. In this step, X n 1 is fixed and only the remaining n 1 unarrival containers need to be simulated. In each simulation, the priority sequence of stacking patterns generated by the neighborhood searching algorithm is adopted, and after the simulation the performance indicator of the full yard bay is calculated. The process is repeated until the number of simulation is met. Step 4: If each candidate stack Dn has been tested, choose the stack Dn with the best simulation performance indicator as the stack for the arriving container kn and go to Step 5, otherwise go back to Step 2. Step 5: Set n ¼ n 1 and go back to Step 1.
Fig. 7. The priority sequence of the stacking patterns for each weight group.
4.3. Two heuristic rules for comparison In order to test the performance of the proposed two-stage heuristic, in addition to the dynamic programming method, we also compare it with two other heuristic rules:
Fig. 8. Two neighborhood searching operators.
Sequence Stacking (SS) :Stacking containers, stack by stack, in an order of their arriving sequence.
Fig. 9. The framework of the neighborhood searching algorithm.
C. Zhang et al. / Computers & Operations Research 52 (2014) 84–93
91
Fig. 10. The framework of the rollout-based algorithm.
Group Stacking (GS) :Stacking containers onto the stack with the same weight group as much as possible. The specific procedure is shown below: Step 1: Stack the arriving container onto the stack with containers whose weight groups are all the same with that of the arriving
container. If there is no such a candidate stack but there is an empty stack available, place the arriving container onto the empty stack. Step 2: If Step 1 is not satisfied, place the arriving container onto the stack with the heaviest
92
C. Zhang et al. / Computers & Operations Research 52 (2014) 84–93
Fig. 11. An illustration for other heuristic rules.
Table 9 Stacking quality comparison for another proportion patterna. {s; t; jGj}
{4,3,3} {4,4,3} {4,5,3} {5,3,3} {5,4,3} {5,5,3} {6,3,3} {6,4,3} {6,5,3} {7,3,3} {7,4,3} {7,5,3}
CP
DIP
SIP
SS
GS
Stage 1
Stage 2
PI
Time(s)
PI
Time(s)
PI
Time(s)
PI
PI
PI
PI
Time(s)
0.293 0.333 0.487 0.160 0.228 – 0.106 0.159 – 0.112 – –
1 8 220 4 266 – 94 2067 – 336 – –
0.235 0.258 0.424 0.108 0.147 – 0.000 0.000 – 0.002 – –
0 1 4 1 6 – 2 107 – 9 – –
0.234 0.259 0.468 0.126 0.178 – 0.026 0.075 – 0.012 – –
1 9 204 4 252 – 77 1873 – 267 – –
2.402 4.049 5.199 2.941 4.737 6.643 3.494 5.456 7.395 4.476 6.686 8.844
0.491 0.622 1.080 0.380 0.421 0.450 0.000 0.000 0.000 0.366 0.607 0.961
0.333 0.374 0.518 0.148 0.200 0.230 0.000 0.005 0.000 0.028 0.120 0.195
0.268 0.294 0.471 0.117 0.181 0.216 0.000 0.000 0.000 0.006 0.019 0.114
130 913 2521 254 2029 5851 508 4069 11771 854 8047 25211
PI: performance indicator. 2 1 1 a H r ¼ ; rM ¼ ; rL ¼ . 3 6 6
weight group that is the lightest among all. If a tie exists, place it onto the stack with the smallest number of containers. Step 3: Repeat Step 1 and Step 2 for the next arriving container until the bay is fully stacked. The second heuristic rule is commonly applied in the practice. A simple example is given in Fig. 11 to illustrate the execution of SS and GS.
5. Algorithms comparison The preliminary experiments suggest that in the first stage of the proposed two-stage heuristic, the number of simulation for the calculation of fitness is set to 1000, and the number of iterations for the termination of procedure is set to 1000; in the second stage, the number of simulation for the calculation of the performance indicator for placing onto candidate stack Dn is set to 100. Four patterns of weight group proportion as shown in Table 7 have been put into experiments, and only the results for two of them are respectively shown in Tables 8 and 9 due to their similarity in conclusion. Both tables show that the stacking quality of these models or algorithms is approximately sequenced in a deceasing order of DIP, SIP, stage 2, CP, stage 1, GS and SS. The runtime for stacking a full yard bay for large-scale instances is within seconds for DIP, SIP, stage 2 and CP, and the runtime for stage 1 (whose first-stage runtime is within half an hour for the largest-scale instance), GS and SS is within milliseconds. Therefore, we can make the following conclusion that when the instance size is small, it is preferred to adopt DIP which can generate highquality solutions within a reasonable amount of time; when the instance size is large, it is preferred to adopt the proposed twostage heuristic that can save the runtime and at the same time does not seriously compromise the solution quality.
6. Conclusion This paper studies the location assignment for arriving outbound containers and focuses on how to identify the probability distribution for the next arrival container. Three handling ways are proposed in this paper, leading to three dynamic programming models. The small-scale instances can be solved to optimality by directly using the dynamic programming models. For large-scale instances, a two-stage heuristic is proposed. The numerical experiments show that the model with the adjustment of weight group proportion for the remaining containers can significantly reduce state size and improve stacking quality. The experimental results also show that when the instance size is small, it is preferred to adopt the exact dynamic programming method which can generate high-quality solutions within a reasonable amount of time; when the instance size is large, it is preferred to adopt the proposed two-stage heuristic which can save the runtime and at the same time does not seriously compromise the solution quality. In this paper, the yard bay allocation for containers of the same group, and the location assignment for each newly arrival container are treated sequentially. Due to their tight connection, solving them together is an important topic for future study.
Acknowledgments The authors would like to thank the area editor and the two anonymous referees for their valuable comments and suggestions which improve the quality of this paper. This research was supported by NSFC under grant no. 71102011.
References [1] Chen L, Lu Z. The storage location assignment problem for outbound containers in a maritime terminal. Int J Prod Econ 2012;135(1):73–80.
C. Zhang et al. / Computers & Operations Research 52 (2014) 84–93
[2] Dekker R, Voogd P, Asperen E. Advanced methods for container stacking. OR Spectr 2006;28(4):563–86. [3] Han Y, Lee L, Chew E, Tan K. A yard storage strategy for minimizing traffic congestion in a marine container transshipment hub. OR Spectr 2008;30 (4):697–720. [4] Jang D-W, Kim SW, Kim KH. The optimization of mixed block stacking requiring relocations. Int J Prod Econ 2013;143(2):256–62. [5] Kang J, Ryu KR, Kim KH. Deriving stacking strategies for export containers with uncertain weight information. J Intell Manuf 2006;17(4):399–410. [6] Kim KH, Park KT. A note on a dynamic space-allocation method for outbound containers. Eur J Oper Res 2003;148(1):92–101. [7] Kim KH, Park YM, Ryu K-R. Deriving decision rules to locate export containers in container yards. Eur J Oper Res 2000;124(1):89–101. [8] Kozan E, Preston P. Genetic algorithms to schedule container transfers at multimodal terminals. Int Trans Oper Res 1999;6(3):311–29. [9] Kozan E, Preston P. Mathematical modelling of container transfers and storage locations at seaport terminals. OR Spectr 2006;28(4):519–37.
93
[10] Lee L, Chew E, Tan K, Han Y. An optimization model for storage yard management in transshipment hubs. OR Spectr 2006;28(4):539–61. [11] Preston P, Kozan E. An approach to determine storage locations of containers at seaport terminals. Comput Oper Res 2001;28(10):983–95. [12] Zhang C, Chen W, Shi L, Zheng L. A note on deriving decision rules to locate export containers in container yards. Eur J Oper Res 2010;205(2):483–5. [13] Zhang C, Liu J, Wan Y, Murty KG, Linn RJ. Storage space allocation in container terminals. Transp Res B 2003;37(10):883–903. [14] Zhang C, Wu T, Kim KH, Miao L. Conservative allocation models for outbound containers in container terminals. Eur J Oper Res, 2014;238(1):155–65. [15] Zhang C, Wu T, Zheng L, Miao L. A Lagrangian relaxation-based algorithm for the allocation of yard cranes for yard activities with different priorities. J Syst Sci Syst Eng 2013;22(2):227–52. [16] Zhang C, Zhang Z, Zheng L, Miao L. A decision support system for the allocation of yard cranes and blocks in container terminals. Asia-Pacific J Oper Res 2011;28(6):803–29.