TY - JOUR AU - Zhang,, Xiaotian AB - Abstract A container terminal is a complex system in which the makespan of a ship service depends not only on the operations of quay cranes (QCs) but also on the operations of yard cranes (YCs) and the horizontal transportation by trucks. This paper addresses the joint QC schedule and block allocation of YCs in container terminals. We determine the QC scheduling by considering the handling capacity and storage capacity of yard blocks as well as the travel time of trucks. A mixed-integer linear programming model is formulated to minimize the makespan of a ship service and the travel time of trucks. A hybrid Particle Swarm Optimization (PSO) algorithm that incorporates a neighbourhood search with a taboo list and heuristic preprocessing is proposed to improve the solution and CPU runtime. Numerical experiments are performed to validate the correctness of the proposed models and the efficiency of the proposed algorithm. 1. Introduction As a connector of transportation by sea and land, container terminals play an essential role in global supply chains. Their service level represents a significant part of the cost and efficiency of global supply chains. With the rapid growth in containerized cargo over the past two decades that followed from economic globalization, competition between container terminals has intensified (Meng et al., 2014). Container terminal operators have to enhance their service to attract more customers. Owing to the increasing size of container vessels, container terminals encounter challenges, such as quick loading and unloading of containers on large container vessels. Therefore, container terminals need to shorten the turnaround time of vessels to improve their service level. In container terminals, containers are transshipped from one mode of transportation to another (Vis & Koster, 2003). Figure 1 introduces some important concepts and presents the handling processes of inbound and outbound containers. Container ships carry inbound containers towards the terminal and carry outbound containers away from the terminal. Quay cranes (QCs) unload inbound containers from vessels to trucks. Through horizontal transport, which refers to road transport by trucks in container terminals, inbound containers are delivered to yard cranes (YCs). Then YCs place them in a specific block location. Meanwhile, handling of outbound containers follows the reverse process. Fig. 1. View largeDownload slide Handling processes of inbound and outbound containers. Fig. 1. View largeDownload slide Handling processes of inbound and outbound containers. Working time and operating time are the most important performance indices of container terminals, given that these indices are directly related to whether the vessel can leave the port as early as possible (Steenken et al., 2004). The makespan of ship operations depends not only on the operations of QCs but of YCs as well. Two methods to increase the container terminal operation efficiency are identified: (i) increasing operating equipment without causing congestion and (ii) determining a reasonable scheduling of operating procedures. However, in real-life settings, operating equipment cannot be increased infinitely because of high costs and other limitations, such as the length of the coast line and the investment scale of container terminals. Thus, optimization of joint scheduling strongly influences efficiency and cost reduction. The contributions of this paper include the following: (1) This paper develops an integrated optimization model, which considers both the handling capacity and storage capacity of yard blocks. (2) Taking advantage of the structure of the proposed model, this study develops a hybrid heuristic algorithm based on Particle Swarm Optimization (PSO) and Neighbourhood Search (NS). Moreover, an efficient preprocessing technique (see Section 4.2) is proposed to improve the quality of initial solutions. The results of numerical experiments validate the correctness of the proposed model and the efficiency of the proposed heuristic algorithm. The remainder of this paper is organized as follows: Section 2 reviews related research. Section 3 introduces the definition of a task, describes the problem in detail and presents the formulation of a mixed-integer linear programming model. In Section 4, a metaheuristic algorithm is proposed to solve the model. Section 5 presents experimental results, which indicate that the proposed algorithm is effective and efficient in solving the joint QC scheduling and block allocation problem (JQCS–BAP). Section 6 concludes this paper. 2. Literature review A large number of studies on container terminals have been conducted. (Carlo Héctor et al. 2014a, 2014b & 2015) presented three overviews from the perspectives of the shore side, yard and container transportation. Most studies focus on QC scheduling or storage space allocation separately. The QC scheduling problem described thus far corresponds to a minimum makespan scheduling problem with parallel identical machines and precedence constraints (Bierwirth & Meisel, 2010). This problem (QC scheduling) is non-deterministic polynomial (NP)-hard, given more than two machines (cranes), non-pre-emption or non-uniform processing times (Pinedo, 2002). Bierwirth & Meisel (2010, 2015) published two surveys of berth allocation and QC scheduling problems and developed a new classification scheme for berth allocation and QC scheduling problems. To obtain the shortest makespan, QC scheduling aims at reasonably allocating the loading and unloading tasks in a vessel to QCs and determining the handling sequence of the tasks assigned to each QC. Lim et al. (2010) studied QC and YC scheduling with spatial and separation constraints. Kim & Park (2004) divided the containers in the same bay into several container groups and considered every container group as a task; they then proposed a branch and bound (B & B) method to obtain an optimal solution and a heuristic search algorithm. Referred to as the greedy randomized adaptive search procedure, this approach aims at overcoming the computational difficulty of the B & B method. Bierwirth & Meisel (2009) addressed the problem arising from the constraint of interference tasks and established an integer programming model. Meisel (2011) considered the differences between high-priority vessels and low-priority vessels, with the availability of cranes at a vessel restricted to certain time windows. The author provided a mathematical formulation of the problem and a tree-search-based heuristic solution method. Tavakkoli et al. (2009) proposed a genetic algorithm (GA) to solve the QC scheduling and assignment problem for real-world situations. On the basis of a QC double-cycling problem (QCDCP) with hatch covers, Liu (2015) investigated the computational complexity of the problem and described a global solution procedure for the general QCDCP which can solve the QCDCP optimally in |$O\left(n\log n\right)$| time. Moccia et al. (2006) formulated the QC scheduling problem as a vehicle-routing problem with side constraints, including precedence relationships between vertices. They developed a branch-and-cut algorithm incorporating several families of valid inequalities, which exploit the precedence constraints between vertices. Zhang & Kim (2009) proposed a mixed-integer programming model to maximize the number of dual-cycle operations of QC in container terminals. The block allocation problem in the storage yard is a subcategory of the storage space allocation problem (Sharif & Huynh, 2013). Kim & Kim (2002) presented a method for determining an optimal amount of storage space and an optimal number of transfer cranes for handling import containers. A deterministic model and a stochastic model for two different cases were developed. Simple solutions for the models were provided. Kim & Kang (2003) established a mixed-integer linear program for allocating storage space for outbound containers arriving at a storage yard. Two heuristic algorithms were suggested based on the duration of stay of containers and subgradient optimization, respectively. Moccia et al. (2009) studied the dynamic generalized assignment problem by considering a discretized time horizon and associating a starting time and a finishing time with each task. A column generation algorithm was used to compute lower bounds by solving the linear programme relaxation of the problem. Jiang et al. (2013) studied a storage yard planning problem for a transshipment port with limited space and a high-throughput level. Current research focus is directed towards integrated solutions, which have drawn increasing interest in container terminal management. Meisel & Bierwirth (2013) combined berth allocation, QC allocation and scheduling and proposed a three-stage-optimization strategy. Tang et al. (2014) addressed the joint QC and truck scheduling problem in a container terminal; coordination of the two types of equipment was considered to reduce their idle time between performing two successive tasks. Lee et al. (2012) developed an integer programming model for the terminal and yard allocation problem, and a two-level heuristic algorithm was proposed to obtain high-quality solutions in an efficient way. Jin et al. (2014) integrated the space allocation and YC deployment decisions together with the consideration of container traffic congestion in the storage yard. Zhen et al. (2011) studied two tactical-level decision problems: berth template planning and yard template planning. A mixed-integer programming model was proposed to integrate berth and yard template planning. Jin et al. (2015) also proposed an integrated model for berth and yard template planning, which considered quay-side congestion. Jiang et al. (2017) proposed column generation under Dantzig–Wolfe decomposition to get lower bounds for integrated yard crane deployment and container allocation. A novel branch-and-price method was proposed to find near-optimal solutions. Liang et al. (2009) addressed the problem of berth allocation and QC scheduling with the objective of minimizing the sum of the handling time, waiting time and delay time for every ship. Yang et al. (2012) developed an effective evolutionary algorithm with nested loops to solve the issue of berth allocation and QC assignment. Zhen (2015, 2016) and Zhen et al. (2016) studied some integrated optimization problem on yard management and developed a PSO-based solution. Han et al. (2010) proposed a mixed-integer programming model of berth and QC scheduling problems, along with uncertain vessel arrival time and container handling time. A simulation-based GA search procedure was applied to generate robust berth and QC schedules. Sun et al. (2013) proposed an integrated simulation framework to facilitate the design and evaluation of mega container terminal configurations with integrated multiple berths and yards. A large number of studies combined berth allocation and QC scheduling, truck dispatching problem or yard allocation. In contrast to previous studies, this paper obtains a QC scheduling solution with consideration of the travel time of trucks, the available storage capacity and the handling capacity of yard blocks. 3. JQCS–BAP 3.1. Problem description This paper studies the JQCS–BAP optimization problem in container terminals. For the QC scheduling problem, the assignment of QCs to container groups is determined, and the handling sequence of the container groups assigned to each QC is identified (Tang et al., 2014). For QC scheduling, the number of containers to handle determines whether tasks are defined based on bay areas or single bays and whether they are based on container stacks or container groups. Consider for instance the port of Yangshan (Shanghai, China), the container terminal with the largest throughput worldwide has, on average, more than 3000 twentyfoot equivalent units (TEUs) loading and unloading containers for each ship. In this paper, the bay is divided into several container groups with a common destination and similar properties, indicating that a bay may contain a number of container groups. As shown in Fig. 1, the bay number indicates the abscissa of the containers positioned in the vessel from the prow to the stern. A bay contains the containers with the same abscissa. In container transportation, the bay, tier and row together determine a three-dimensional coordinate to describe the specific position of a container in a ship. Figure 2 illustrates a cross-sectional view of a bay. In this example, nine unloading container groups are stacked above the deck or are under the deck (hold). The stacking-dependent accessibility of container groups results in the stevedoring (loading or unloading) order and calls for precedence constraints. For instance, tasks 1 and 2 must be completed first before task 3 is started; tasks 6 and 7 must start after task 5 is completed. Fig. 2. View largeDownload slide An example of container groups of a bay in ship stowage. Fig. 2. View largeDownload slide An example of container groups of a bay in ship stowage. Each unloading container group needs to select one or several appropriate blocks from its candidate blocks. These candidate blocks are usually determined in advance according to the negotiation between the port operator and the shipping liner because of capacity imbalance between QCs and YCs. As shown in Fig. 3, blocks K1, K8 and K13 are identified as the candidate blocks of container group 1. The block allocation problem aims to find the appropriate blocks from the corresponding candidate blocks for each container group. This study emphasizes the necessity and effect of incorporating the handling capacity per unit time and the available storage capacity of corresponding blocks in storage yards. Section 3.3 provides a detailed example. Fig. 3. View largeDownload slide Candidate blocks of container groups in storage yard. Fig. 3. View largeDownload slide Candidate blocks of container groups in storage yard. In storage yard, a YC may be required to supply inbound or outbound containers to more than one vessel, or a YC may be interrupted by another YC during the transfer operation. Thus, the handling capacity indicates the maximum number of container a block can operate within a period as the result of limited YCs. The storage capacity indicates the maximum number of containers that can be stored in a block. This is treated as input in our model. Furthermore, for a single ship, the travel time of trucks resulting from variations in the distance between the ship and each block is also considered as an optimization objective. 3.2. Mathematical formulation To model the QC scheduling and block allocation problem, we first discretize time. A similar approach has been followed (Wang & Kim, 2011). In the JQCS–BAP, we consider the situation where all QCs are on the same track. Therefore, one QC cannot pass another QC and a security distance equal to or more than two bays should be maintained. Before the mathematical model is formulated, we pose first the following assumptions: (1) The unloading operations must precede the loading operations in the same bay. The dual-cycle strategy is not considered in this paper. Compared with the single-cycle strategy studied in this paper, the double-cycle strategy enables the crane to load and discharge containers simultaneously. By converting empty moves into productive ones, the number of containers handled in one cycle doubles (Zhang & Kim, 2009). (2) A bay can be processed by different QCs in different time periods. A container group considered as a whole task only can be performed by one QC in a bay. (3) The loading and unloading sequence that results from the stacking-dependent accessibility of container groups in a bay should be satisfied. (4) The YC handling ability per unit time and the available storage capacity of a block are limited. Notation |$Q_\phantom{1}$|   The set of QCs. |${G}_1$|   The set of loading container groups. |${G}_2$|   The set of unloading container groups. |$G_\phantom{1}$|   The set of all container groups, |$G={G}_1\cup{G}_2$|⁠. |${G}^0$|   |${G}^0=G\cup \left\{0\right\}$|⁠, where 0 represents the initial state of any QC. |${G}^F$|   |${G}^F=G\cup \left\{F\right\}$|⁠, where F represents the final state of any QC. |$N_\phantom{1}$|   The set of blocks, |$N=\left\{1,2,\dots |N|\right\}$|⁠. |${B}_i$|   The set of candidate blocks of container group |$i$|⁠. |$T_\phantom{1}$|   The set of periods of time. |$T=\left\{1,2,\dots, \left|T\right|\right\}$|⁠. |$M$|   A sufficiently large positive number. |$\varPsi_\phantom{1}$|   The set of ordered pairs of container groups which has a precedence relationship; when container group |$i$| must precede container group |$j$|⁠, then |$\left(i,j\right)\in \varPsi$|⁠. |$\varPhi_\phantom{1}$|   The set of pairs of container groups that cannot be performed simultaneously. When container groups |$i$| and |$j$| cannot be performed simultaneously, then|$\left(i,j\right)\in \varPhi$|⁠. |${L}_i$|   The bay in which container group |$i$| is located. |${t}_0$|   The operation time for one container. |${t}_{ij}$|   The travel time of QC from bay |${L}_i$| of container group |$i$|   to bay |${L}_j$| of container group |$j$|⁠. |$\tau_\phantom{1}$|   The length of a single period. |${p}_0$|   The handling capacity of QC within a period of time. |${a}_i$|   The operation time of container group |$i$|⁠. |${V}_{in}$|   The number of containers that belong to loading container group |$i$| in block |$n$|⁠. |${c}_{nt}$|   The handling capacity of block |$n$| at period |$t$|⁠. |${Z}_n$|   The available storage capacity of block |$n$|⁠. |${D}_n$|   The travel time of truck from the ship to block |$n$|⁠. |${\lambda}_1,{\lambda}_2$|   The weight of each objective. Decision variables |${x}_{ijq}$|   A binary variable. It equals 1 if task |$i$| is operated immediately before task |$j$| by QC |$q$|⁠, 0 otherwise. |${s}_i$|   The start time of container group |$i$| operated by QC. |${e}_i$|   The complete time of container group |$i$| operated by QC. |${y}_{iq}$|   A binary variable. It equals 1 if task |$i$| is allocated to QC |$q$|⁠, 0 otherwise. |${\mu}_{\mathrm{int}}$|   The workload of block |$n$| to operate task |$i$| within period |$t$|⁠. |${\gamma}_{iqt}$|   A binary variable. It equals 1 if task |$i$| is allocated to QC |$q$| within period |$t$|⁠, 0 otherwise. |${\xi}_{ij}$|   A binary variable. It equals 1 if task |$i$| is completed before the start time of task |$j$|⁠, 0 otherwise. |${\omega}_{iqt}$|   The workload of QC |$q$| to operate task |$i$| within period |$t$|⁠. |${C}_{\mathrm{max}}$|   Time when all tasks are completed. Objective \begin{equation} \min{\lambda}_1{C}_{\mathrm{max}}+{\lambda}_2\sum \limits_{i\in G}\sum \limits_{t\in T}\sum \limits_{n\in N}{D}_n{\mu}_{\mathrm{int}} \end{equation} (1) subject to \begin{equation} {C}_{\mathrm{max}}\ge{e}_i\qquad i\in G \end{equation} (2) \begin{equation} \sum \limits_{j\in{G}^F}{x}_{ojq}=1\qquad q\in Q \end{equation} (3) \begin{equation} \sum \limits_{i\in{G}^0}{x}_{iFq}=1\qquad q\in Q \end{equation} (4) \begin{equation} \sum \limits_{j\in{G}^F\atop j\ne i}{x}_{ijq}-\sum \limits_{j\in{G}^0\atop j\ne i}{x}_{jiq}=0\qquad i\in G,q\in Q \end{equation} (5) \begin{equation} \sum \limits_{q\in Q}{y}_{iq}=1\qquad i\in G \end{equation} (6) \begin{equation} {y}_{iq}=\sum \limits_{j\in{G}^F\atop j\ne i}{x}_{ijq}\qquad i\in G,q\in Q \end{equation} (7) \begin{equation} {s}_i+{a}_i={e}_i\qquad i\in G \end{equation} (8) \begin{equation} {e}_i-{s}_j+{t}_{ij}\le M\big(1-{x}_{ij q}\big)\qquad i,j\in G,q\in Q \end{equation} (9) \begin{equation} {e}_i-{s}_j+{t}_{ij}\le 0\qquad \left(i,j\right)\in \varPsi, i,j\in G \end{equation} (10) \begin{equation} {e}_i-{s}_j-M\big(1-{\xi}_{ij}\big)\le 0\qquad i,j\in G \end{equation} (11) \begin{equation} {e}_i-{s}_j+M{\xi}_{ij}\ge 0\qquad i,j\in G \end{equation} (12) \begin{equation} M\big({\xi}_{ij}+{\xi}_{ji}\big)\ge \sum \limits_{q\in Q}{qy}_{iq}-\sum \limits_{k\in Q}{ky}_{jk}+1\qquad i,j\in G,{L}_i<{L}_j \end{equation} (13) \begin{equation} M\big({\xi}_{ij}+{\xi}_{ji}\big)\ge{L}_i-{L}_j+2\qquad{L}_i<{L}_j,i,j\in G \end{equation} (14) \begin{equation} {\xi}_{ij}+{\xi}_{ji}=1\qquad \left(i,j\right)\in \varPhi \end{equation} (15) \begin{equation} \sum \limits_{i\in G}{\mu}_{\mathrm{int}}\le{c}_{nt}\qquad n\in N,t\in T \end{equation} (16) \begin{equation} \sum \limits_{{t}_1\in T\ \mathrm{and}\atop 0\le{t}_1\le t}\left(\sum \limits_{i\in{G}_1}\left(-{\mu}_{\mathrm{int}}\right)+\sum \limits_{i\in{G}_2}{\mu}_{\mathrm{int}}\right)\le{Z}_n\qquad n\in N \end{equation} (17) \begin{equation} \tau t{\gamma}_{iqt}-{e}_i\le 0\qquad i\in G,t\in T,q\in Q \end{equation} (18) \begin{equation} \tau \left(t+1\right){\gamma}_{iqt}\ge{s}_i-\mathrm{M}\ \big(1-{\gamma}_{iqt}\big)\qquad i\in G,t\in T,q\in Q \end{equation} (19) \begin{equation} \sum \limits_{n\in{B}_i}{\mu}_{\mathrm{int}}=\sum \limits_{q\in Q}{\omega}_{iqt}\qquad i\in G,t\in T \end{equation} (20) \begin{equation} \sum \limits_{t\in T}\sum \limits_{q\in Q}{t}_0{\omega}_{iqt}={a}_i\qquad i\in G \end{equation} (21) \begin{equation} \sum \limits_{i\in G}{\omega}_{iqt}\le{p}_0\qquad t\in T,q\in Q \end{equation} (22) \begin{equation} \sum \limits_{t\in T}{\mu}_{\mathrm{int}}={V}_{in}\qquad i\in{G}_1,n\in{B}_i \end{equation} (23) \begin{equation} {t}_0{\omega}_{iqt}\le{e}_i-\tau t{\gamma}_{iqt}\qquad i\in G,t\in T,q\in Q \end{equation} (24) \begin{equation} {t}_0{\omega}_{iqt}\le \tau \left(t+1\right){\gamma}_{iqt}-{s}_i+M\big(1-{\gamma}_{iqt}\big)\qquad i\in G,t\in T,q\in Q \end{equation} (25) \begin{equation} \sum \limits_{t\in T}{\gamma}_{iq t}\le \left|T\right|{y}_{iq}\qquad i\in G,q\in Q \end{equation} (26) \begin{equation} {\omega}_{iqt}\le{a}_i{\gamma}_{iqt}\qquad i\in G,t\in T,q\in Q \end{equation} (27) \begin{equation} \sum \limits_{q\in Q}{\gamma}_{iqt}\le 1\qquad i\in G,t\in T \end{equation} (28) \begin{equation} 1\le \sum \limits_{q\in Q}\sum \limits_{t\in T}{\gamma}_{iqt}\le 2\qquad i\in G \end{equation} (29) \begin{equation} {x}_{ij q},{y}_{iq},{\gamma}_{iq t},{\xi}_{ij}\in \left\{0,1\right\}\qquad i,j\in G,t\in T,q\in Q \end{equation} (30) \begin{equation} {C}_{\mathrm{max}},{s}_i,{e}_i,{\mu}_{\mathrm{int}},{\omega}_{iqt}\ge 0\qquad i\in G,n\in N,t\in T,q\in Q \end{equation} (31) Objective (1) consists of two terms. The first optimization goal is to minimize the QC makespan. The second goal is to minimize the travel time of the horizontal transport of trucks. Constraints (2) define |${C}_{\mathrm{max}}$|⁠. Constraints (3) and (4) define the start and the end of each crane operation. Constraints (5) indicate that tasks are performed on each QC sequentially. Constraints (6) state that each task can only be performed by one crane. Constraints (7) mean that if QC |$q$| unloads/loads task |$i$|⁠, it must be in the final state or will unload/load another container immediately after that. Constraints (8) ensure that there must be a required operation time |${a}_i$| between the start and completion time of operating a task |$i$|⁠. Constraints (9) and (10) ensure that there must be a required transport time |${t}_{ij}$| between container groups |$i$| and |$j$|⁠, considering multi-factor effects, such as moving time and waiting time of QC between these two groups. Constraints (11) and (12) represent the relationship with respect to operating time between container groups |$i$| and |$j$|⁠. If container group |$i$| carries out the operation before group |$j$|⁠, the end time of group |$i$| cannot be later than the start time of group |$j$|⁠. Constraints (13) and (14) show that QCs are on the same track so that one QC cannot pass another QC, and security distance of more than or equal to two bays should be maintained. Constraints (15) indicate that container groups in the same bay cannot be handled simultaneously. However, the sum of |${\xi}_{ij},{\xi}_{ji}$| can take the value 0, when it is ok for the two tasks to be performed simultaneously. Constraints (16) and (17) impose that within a certain period the handling capacity of block |$n$| is more than or equal to the workload of container group |$i$| and that the number of container groups in block |$n$| cannot surpass the available storage capacity of block |$n$|⁠. Constraints (18) and (19) ensure consistency between the continuous time of operations and the discretized time used in the model. Constraints (20) ensure that the workload of the QCs is equal to that of the blocks. Constraints (21) ensure that |${\omega}_{iqt}$|⁠, the total workload of QC for task |$i$|⁠, is equal to the operation time of container group |$i$|⁠. Constraints (22) ensure that the workload of QC |$q$| within the period |$n$| cannot surpass the handling capacity of QC within a period of time. Constraints (23) ensure that the workload of block |$n$| for task |$i$| in |${G}_1$| during the whole period is equal to the initial distribution of loading container group |$i$| in block |$n$|⁠. The relationships among |${\omega}_{iqt}$|⁠, |${s}_i$| and |${e}_i$| are represented by constraints (24) and (25). Constraints (26) and (27) define the ranges of |${\gamma}_{iqt}$| and state the condition that |${\gamma}_{iqt}$| is not equal to 0. Constraints (28) ensure that a task is performed by no more than one QC in any period |$t$|⁠. Constraints (29) state that the period of one task |$i$| performed by QC |$q$| should be equal or greater than one and less than or equal to two. Constraints (30) and (31) specify the ranges of variable values. 3.3. Example Table 1 shows the data for a JQCS–BAP instance to illustrate the necessity of considering the aforementioned two capacities of yard blocks and to present the effect of these factors on the solution. This instance contains six inbound container groups and six outbound container groups placed in four bays (i.e. bay2, bay3, bay5 and bay6). Three QCs are assigned to this vessel. Table 1 shows the operation information of each container group. The destinations of the inbound container groups indicate several candidate blocks; however, the block or several blocks that will be selected from the candidate blocks and the detailed distribution to the corresponding blocks have not been determined yet. In addition to the data presented in Table 1, the handling capacity of QC within a period of time |${p}_0$| is 25, and the length of each period is 60 min. From ship stowage, we can obtain the set of ordered pairs of container groups |$\varPsi$| and the set of pairs of container groups that cannot be performed simultaneously |$\varPhi$|⁠, as presented in Table 2. Table 1. A JQCS–BAP instance Task index |$i$| |${a}_i$| Origin Destination Outbound container groups 1 20 Block 13, 16, 17 Bay 2 2 10 Block 3, 23 Bay 6 3 14 Block 6, 8, 9 Bay 6 4 16 Block 5, 21 Bay 6 5 16 Block 16 Bay 5 6 14 Block 13, 15 Bay 6 Inbound container groups 7 12 Bay 3 Block 1, 4, 14 8 16 Bay 2 Block 8, 10, 17 9 14 Bay 6 Block 4, 6, 7 10 16 Bay 2 Block 2, 18, 20 11 18 Bay 5 Block 1, 5, 24 12 18 Bay 5 Block 8, 11, 21 Task index |$i$| |${a}_i$| Origin Destination Outbound container groups 1 20 Block 13, 16, 17 Bay 2 2 10 Block 3, 23 Bay 6 3 14 Block 6, 8, 9 Bay 6 4 16 Block 5, 21 Bay 6 5 16 Block 16 Bay 5 6 14 Block 13, 15 Bay 6 Inbound container groups 7 12 Bay 3 Block 1, 4, 14 8 16 Bay 2 Block 8, 10, 17 9 14 Bay 6 Block 4, 6, 7 10 16 Bay 2 Block 2, 18, 20 11 18 Bay 5 Block 1, 5, 24 12 18 Bay 5 Block 8, 11, 21 View Large Table 1. A JQCS–BAP instance Task index |$i$| |${a}_i$| Origin Destination Outbound container groups 1 20 Block 13, 16, 17 Bay 2 2 10 Block 3, 23 Bay 6 3 14 Block 6, 8, 9 Bay 6 4 16 Block 5, 21 Bay 6 5 16 Block 16 Bay 5 6 14 Block 13, 15 Bay 6 Inbound container groups 7 12 Bay 3 Block 1, 4, 14 8 16 Bay 2 Block 8, 10, 17 9 14 Bay 6 Block 4, 6, 7 10 16 Bay 2 Block 2, 18, 20 11 18 Bay 5 Block 1, 5, 24 12 18 Bay 5 Block 8, 11, 21 Task index |$i$| |${a}_i$| Origin Destination Outbound container groups 1 20 Block 13, 16, 17 Bay 2 2 10 Block 3, 23 Bay 6 3 14 Block 6, 8, 9 Bay 6 4 16 Block 5, 21 Bay 6 5 16 Block 16 Bay 5 6 14 Block 13, 15 Bay 6 Inbound container groups 7 12 Bay 3 Block 1, 4, 14 8 16 Bay 2 Block 8, 10, 17 9 14 Bay 6 Block 4, 6, 7 10 16 Bay 2 Block 2, 18, 20 11 18 Bay 5 Block 1, 5, 24 12 18 Bay 5 Block 8, 11, 21 View Large Table 2. The sets |$\varPhi$| and |$\varPsi$| in the JQCS–BAP instance |$\varPhi$| |$\varPsi$| (10,8), (10,1), (8,1), (12,11), (9,2), (9,3), (9,4), (9,6), (2,3), (8,1), (9,2), (9,3), (3,4), (4,6) (2,4), (2,6), (3,4), (3,6), (4,6) |$\varPhi$| |$\varPsi$| (10,8), (10,1), (8,1), (12,11), (9,2), (9,3), (9,4), (9,6), (2,3), (8,1), (9,2), (9,3), (3,4), (4,6) (2,4), (2,6), (3,4), (3,6), (4,6) View Large Table 2. The sets |$\varPhi$| and |$\varPsi$| in the JQCS–BAP instance |$\varPhi$| |$\varPsi$| (10,8), (10,1), (8,1), (12,11), (9,2), (9,3), (9,4), (9,6), (2,3), (8,1), (9,2), (9,3), (3,4), (4,6) (2,4), (2,6), (3,4), (3,6), (4,6) |$\varPhi$| |$\varPsi$| (10,8), (10,1), (8,1), (12,11), (9,2), (9,3), (9,4), (9,6), (2,3), (8,1), (9,2), (9,3), (3,4), (4,6) (2,4), (2,6), (3,4), (3,6), (4,6) View Large If the handling capacity and storage capacity of yard blocks and the travel time of trucks are not considered, then the parameters |${c}_{nt}$| and |${Z}_n$| are regarded as positively infinite, and the travel time of trucks from the ship to block |$n$| is regarded as identical. The optimal QC scheduling for the instance is given by the following task sequences: 0 → 8 → 1 → 10 → 7 → 13 for QC 1, 0 → 11 → 12 → 5 → 2 → 13 for QC 2 and 0 → 9 → 3 → 4 → 6 → 13 for QC 3. In this schedule, the completion time of all tasks is 84 min. As for the storage yard, the block allocations for tasks 7, 8, 9, 10, 11 and 12 are K1, K8, K4, K2, K1 and K8, respectively. The detailed schedule is presented in Fig. 4. As shown in Figs. 4 and 5, each rectangle represents the processing start time and complete times for a corresponding task and is labelled with the task index, blocks and operation time in sequence. The line segments between two rectangles represent the QC travel time. Fig. 4. View largeDownload slide An optimal solution to a JQCS instance. Fig. 4. View largeDownload slide An optimal solution to a JQCS instance. Fig. 5. View largeDownload slide An optimal solution to a JQCS–BAP instance. Fig. 5. View largeDownload slide An optimal solution to a JQCS–BAP instance. We now reconsider the question of incorporating the travel time of trucks as well as the handling capacity and storage capacity of yard blocks. According to the storage yard plan determined in advance by the port operator, given that one block is possibly required to store containers for more than one vessel, block K16 with its handling capacity of three is expected to be busy during the first period. With a handling capacity of two for each, blocks K2, K18 and K20 are expected to be busy during the second period. If yard plan storage is considered, the aforementioned optimal QC scheduling for the instance becomes infeasible because task 5 should not be conducted to accommodate more than the capacity of K16 during the first period, and task 10 should not be conducted to accommodate more than the capacity of K2, K18 or K20 during the second period. The corresponding optimal schedule is presented in Fig. 5. Meanwhile, with consideration of the different travel times of trucks from the vessel to every block and the available storage capacity of the yard blocks, the optimal block allocations change to K14, K10, K7, K18 and K5 for tasks 7, 8, 9, 10 and 11, respectively, as well as K11 and K21 for task 12. QC 3 starts at 10 min because the workload of each QC during one period cannot surpass the parameter |${p}_0$|⁠. 4. Heuristic approach For small-scale problems, an exact solution can be obtained within an acceptable time by using the software CPLEX. In real-world applications, the number of container groups to be loaded from a storage yard and unloaded from a ship is often large. QC scheduling is an NP-hard problem in the strong sense, provided that more than two QCs, non-preemption or non-uniform processing times are given (Pinedo, 2002). CPLEX can hardly solve the model with large-scale instances. Thus, a hybrid heuristic algorithm is proposed to solve the model for large-scale applications. PSO, which was proposed by Kennedy & Eberhart (1995), is one of the recent and potential heuristic approaches inspired by the flocking behaviour of birds. The technique is used to solve continuous non-linear optimization problems because of its simple concept, easy implementation and quick convergence. Tang et al. (2014), Zhen (2016) and Zhen et al. (2016) successfully applied a PSO algorithm to solve a mixed-integer programming model in a container terminal. PSO is initialized with a population of particles, with each particle representing a solution. Each particle |$i$| has a |$D$|-dimensional position and velocity at iteration |$t$|⁠, represented by |${X}_i^t=\left\{{x}_{i1}^{\,t},{x}_{i2}^{\,t},\dots, {x}_{id}^{\,t}\right\}$| and |${V}_i^t=\left\{{v}_{i1}^{\,t},{v}_{i2}^{\,t},\dots, {v}_{id}^{\,t}\right\}$|⁠, respectively. Each particle has its personal best position |${x}_{pbest_{id}}^{\,t}$| on dimension |$d$| up to iteration |$t$|⁠. The global best particle |${x}_{gbest_d}^{\,t}$| represents the best position of the whole swarm on dimension |$d$| found until iteration |$t$| in the whole swarm. The swarm flies through the hyperspace according to its own experience and that of its companions. The ordinary updating formulas of velocity and position are as follows: \begin{equation} {v}_{id}^{\,t+1}={w}^{\,t}{v}_{id}^{\,t}+{c}_1{r}_1\left({x}_{pbest_{id}}^{\,t}-{x}_{id}^{\,t}\right)+{c}_2{r}_2\left({x}_{gbest_d}^{\,t}-{x}_{id}^{\,t}\right) \end{equation} (32) \begin{equation} {x}_{id}^{\,t+1}={x}_{id}^{\,t}+{v}_{id}^{\,t+1}, \end{equation} (33) where |${w}_{\mathrm{max}}$| and |${w}_{\mathrm{min}}$| represent the maximum and minimum inertia weights |${w}_t$|⁠, respectively; |${c}_1$| and |${c}_2$| are the cognitive and social learning parameters, respectively; and |${r}_1$| and |${r}_2$| are random numbers between 0 and 1. Although PSO is often used for continuous problems, we believe it is more appropriate for our problem than GAs since crossover and mutation operations would have too much influence on the change of solutions. In our problem, QC allocation and scheduling should not vary wildly. By setting the appropriate PSO parameters, the degree of solution change in each iteration can be controlled to achieve a satisfactory search efficiency. The difference from traditional PSO (TPSO) is that we abandon the method of randomly generating the initial solution. By preprocessing this problem, we can obtain a series of improved initial solutions and then mix the NS algorithm with a taboo list to improve the efficiency of the proposed algorithm. NS is a heuristic approach used to solve combinatorial and global optimization problems. It is a simple and effective search procedure that considers systematic changes of neighbourhood. Through a series of operators, neighbour solutions of a given initial solution are generated. These neighbour solutions are then evaluated to determine the best neighbour solution of the current iteration. The process is repeated until termination conditions are reached. An overview of PSO and NS can be found in Xie et al. (2003), Poli et al. (2007), Chiarandini et al. (2008), Zhen and Wang (2015). In this paper, we propose a hybrid algorithm referred to as PSO with preprocessing and NS (P_NS_PSO), which integrates the advantages of PSO and NS. The flowchart for this hybrid algorithm procedure is shown in Fig. 6. Fig. 6. View largeDownload slide Flowchart of P_NS_PSO. Fig. 6. View largeDownload slide Flowchart of P_NS_PSO. 4.1. Solution representation A significant part of the computational complexity of this problem can be attributed to QC scheduling. Thus, once the QC scheduling is obtained, the dimensionality and the variables of JQCS–BAP will be reduced. The QC scheduling problem in this paper contains QC allocations, denoted by the decision variable |${y}_{iq}$|⁠, and the handling sequence of the container groups assigned to each QC, denoted by the decision variable |${x}_{ijq}$|⁠. Therefore, we propose to only encode the particles with respect to the QC scheduling part and then decode them to obtain the important part of solutions. When the QC scheduling information is determined by each PSO particle, the decision variables |${y}_{iq}$| and |${x}_{ijq}$| are treated as input parameters for the simpler model. By using the CPLEX solver as a `tactical’ tool for exploring suitable solution subspaces, which are defined and controlled at a `strategic’ level by P_NS_PSO, the rest of the solution is determined. Let |$D=\left|G\right|$|⁠. We set a |$D$|-dimensional array to represent a solution, and each |$d$| dimension |${x}_{id}^{\,t}$| is a number that contains an integer part and a decimal part. The integer part of |${x}_{id}^{\,t}$| indicates the QC allocation and is an integer between 0 and |$\left|Q\right|$|⁠. The decimal part of |${x}_{id}^{\,t}$| indicates the operation sequence for each QC. The decimal part is a decimal between 0 and 1. The operation sequence for a QC is indicated by the ascending order of the value in the dimensions with the same integer part. Figure 7 shows the encoding of an optimal solution to a JQCS–BAP instance mentioned in Section 3.3. The value in dimension |$d$|⁠, |${x}_{id}^{\,t}$|⁠, shows that the container group is allocated to crane|$\left\lceil{x}_{id}^{\,t}\right\rceil$|⁠. Fig. 7. View largeDownload slide The encoding of the solution. Fig. 7. View largeDownload slide The encoding of the solution. Our problem requires that the precedence relationships be satisfied; however, the random decimal part of a solution may violate the precedence relationships. Thus, we need to check the solution after obtaining one initial solution and every iteration by PSO to ensure the feasibility of this solution. If the decimal values in those dimensions with the same integer part violate the precedence relationships, we can exchange the two values shown in Fig. 7. 4.2. Initial solution generation The approach to generating initial particles randomly ensures particle diversity. However, the random initial solution may not be an appropriate schedule. Further, inferior initial solutions lead to prolonged CPU computational time and a greater number of iterations. Therefore, in this paper, we use two different approaches to generating the initial particles. Half of the initial particles are generated randomly, whereas the other half are generated by preprocessing the problem, as shown in Fig. 6. Using this strategy, we not only ensure particle diversity but also enhance the quality of the initial particles. The preprocessing procedure is described below. Step 1: Calculate the total handling time |${T}_{total}$| for all tasks by Formula (34). \begin{equation} {T}_{total}=\sum \limits_{i\in G}{a}_i \end{equation} (34) In Section 3.3, the 12 handling times add up to 184 min. Step 2: Set an appropriate scope |${r}_{scope}$| to calculate a credible operation time |${T}_{QC}$| for each QC by Formula (35). This credible operation time is typically part of practical QC operation time. \begin{equation} {T}_{QC}=\frac{\sum \limits_{i\in G}{a}_i}{\left|Q\right|}\cdot \left(1-{r}_{scope}\right). \end{equation} (35) Ideally, the optimal schedule has a total handling time of 184 min, equally distributed to all QCs; i.e. the operation time of each QC is |$184/3\approx 61$| min. However, under practical circumstances, we must consider the results of uneven distribution from the integrality of one container group and the synergy of QCs. Thus, we set |${r}_{scope}$| as 20%; i.e. a more credible QC operation time |${T}_{QC}$| is 48.8 min. Step 3: Determine the allocation of bays on the basis of |${T}_{QC}$|⁠. Step 3.1 Determine which bays are operated by only one QC. Step 3.2 Determine which bays are operated by more than one QC. In Step 3, we can obtain the bays operated by only one QC and those operated by more than one QC by executing the subprocedures shown in Fig. 8. Fig. 8. View largeDownload slide The pseudocode for preprocessing. Fig. 8. View largeDownload slide The pseudocode for preprocessing. Step 4: Obtain an improved initial solution. By the aforementioned subprocedure in Step 3, the container groups 10, 8 and 1 are allocated to QC 1. Container groups 7, 12 and 11 are allocated to QC 2, and container groups 5, 2, 6, 4 and 3 are allocated to QC 3. Therefore, we obtain the initial QC allocations, i.e. the values of the integer part in every dimension. By contrast with the optimal solution, we can find the differences between the initial QC allocations generated by preprocessing and the optimal QC allocations are considerably small. The small differences can prove the effectiveness of preprocessing. On the basis of these initial QC allocations, the decimal part in each dimension that indicates the handling sequence is generated randomly. Together, the initial QC allocation from preprocessing and the handling sequences, which are generated randomly, form a complete improved initial solution. 4.3. NS We want to achieve a stepped improvement in each iteration. When an unimproved iteration occurs during the PSO process, NS is taken to identify a potentially better solution, along some promising search direction. Considering that NS might have to perform actions that deteriorate the current solution with the hope of eventually identifying a better one, a taboo list is established and updated to prevent the search from revisiting previously visited solutions and thus return to the same local optimum. The taboo list keeps in memory the worst recent moves, declaring those as forbidden (Sammarra et al., 2007). The NS procedure for each particle in the swarm and the structure of the taboo list are listed below. Step 1: Judge whether the solution has been improved or not in the current iteration. If an unimproved iteration occurs, perform the next step. Step 2: Reallocate the tasks randomly allocated to a QC to the adjacent QC, as indicated in Step 3 in Section 4.2, without changing the value of the decimal part and other encoding. Step 3: Judge whether the new reallocation is in the taboo list; otherwise, include this neighbourhood solution in the set of the candidate solution. Step 4: Perform Steps 2 and 3 until the number of candidate solutions reaches our preset value. Step 5: Evaluate the set of candidate solutions in Step 4; if a solution better than the current solution obtained by PSO is found, update the current solution and include the move that reverses the direction of finding this better solution in the taboo list. Figure 9 illustrates the generation of a new row in the taboo list. The |$2\left|G\right|$|-dimensional taboo move in Fig. 9 shows that transforming the integer part from 1 to 2 in the fifth dimension is forbidden. Step 6: Update the personal best solution and the global best solution. Fig. 9. View largeDownload slide An example of a taboo a move. Fig. 9. View largeDownload slide An example of a taboo a move. 5. Computational experiments Computational experiments are conducted to examine the performance of different versions of the PSO algorithm, i.e, TPSO, PSO with preprocessing (P_PSO) and P_NS_PSO. The algorithms are coded in C#, and the models are solved using CPLEX. All experiments are performed on a computer with 2.40 GHz Intel Core i5 CPU and 8 GB RAM. In the experiments, the maximum number of iterations |$\mathit{\operatorname{Max}}\_ iter$| is 200, and the maximum number of iterations for the global best solutions to remain unchanged is 10. The population size |$\mathit{\operatorname{Max}}\_i$| is 20. We set |${c}_1$|=1, |${c}_2$|=1, similar to the original PSO algorithm. Eberhart & Shi (2002) compared inertia weights and constriction factors in PSO. According to their paper, the inertia weight boundaries |${w}_{\mathrm{max}}$| and |${w}_{\mathrm{min}}$| in this paper are set to 0.9 and 0.4, respectively, whereas the inertia weight |${w}_t$| in each iteration |$t$| is expressed as Formula (36). \begin{equation} {w}_t=\frac{\mathit{\operatorname{Max}}\_ iter-n}{\mathit{\operatorname{Max}}\_ iter}\left({w}_{\mathrm{max}}-{w}_{\mathrm{min}}\right)+{w}_{\mathrm{min}} \end{equation} (36) In the NS part, we set the capacity of the set of candidate solutions from 5 to 10, depending on the problem. The taboo list consists of 10 rows. 5.1. Generation of test instances For experiments on the JQCS–BAP, we randomly generate problems of three sizes, i.e. small-sized problem, medium-sized problem and large-sized problem. For each problem size, we generate five different instances; each instance includes five different cases because of the different numbers of inbound and outbound container groups. We consider instances with 6, 8, 10, 12 and 14 container groups for the small-sized problem; 16, 18, 20, 22 and 25 for the medium-sized problem; and 30, 35, 40, 45 and 50 container groups for the large-sized problem. The problem data are randomly generated as follows: (1) The handling time of a container group is determined by the number of containers. The number of containers in a container group follows a uniform distribution, ranging from 2 to 15. (2) The travel time of the trucks follows a uniform distribution, ranging from 1 to 8 min. (3) The stowage plan for the ship is generated randomly given the information on the container groups. According to the stowage plan for the ship, we can obtain the precedence relationships and the set of pairs of container groups that cannot be performed simultaneously. (4) The initial distribution of each outbound container group in the corresponding blocks is given randomly. Table 3 presents all artificial instances used to test the model and the proposed algorithm. Table 3. The test instances of this paper Case Size Bays Container groups Inbound container groups Outbound container groups 1–5 Small 6 6 6, 5, 4, 3, 2 0, 1, 2, 3, 4 6–10 8 8, 6, 4, 2, 0 0, 2, 4, 6, 8 11–15 10 8, 6, 4, 2, 0 0, 2, 4, 6, 8 16–20 12 12, 9, 6, 3, 0 0, 3, 6, 9, 12 21–25 14 12, 9, 6, 3, 0 0, 3, 6, 9, 12 26–30 Medium 6 16 16, 12, 8, 4, 0 0, 4, 8, 12, 16 31–35 18 16, 12, 8, 4, 0 0, 4, 8, 12, 16 36–40 20 20, 15, 10, 5, 0 0, 5, 10, 15, 20 41–45 22 20, 15, 10, 5, 0 0, 5, 10, 15, 20 46–50 25 25, 19, 13, 7, 1 0, 6, 12, 18, 24 51–55 Large 10 30 30, 23, 16, 9, 2 0, 7, 14, 21, 28 56–60 35 35, 27, 19, 11, 3 0, 8, 16, 24, 32 61–65 40 40, 30, 20, 10, 0 0, 10, 20, 30, 40 66–70 45 45, 34, 23, 12, 1 0, 11, 22, 33, 44 71–75 50 50, 38, 26, 14, 2 0, 12, 24, 36, 48 Case Size Bays Container groups Inbound container groups Outbound container groups 1–5 Small 6 6 6, 5, 4, 3, 2 0, 1, 2, 3, 4 6–10 8 8, 6, 4, 2, 0 0, 2, 4, 6, 8 11–15 10 8, 6, 4, 2, 0 0, 2, 4, 6, 8 16–20 12 12, 9, 6, 3, 0 0, 3, 6, 9, 12 21–25 14 12, 9, 6, 3, 0 0, 3, 6, 9, 12 26–30 Medium 6 16 16, 12, 8, 4, 0 0, 4, 8, 12, 16 31–35 18 16, 12, 8, 4, 0 0, 4, 8, 12, 16 36–40 20 20, 15, 10, 5, 0 0, 5, 10, 15, 20 41–45 22 20, 15, 10, 5, 0 0, 5, 10, 15, 20 46–50 25 25, 19, 13, 7, 1 0, 6, 12, 18, 24 51–55 Large 10 30 30, 23, 16, 9, 2 0, 7, 14, 21, 28 56–60 35 35, 27, 19, 11, 3 0, 8, 16, 24, 32 61–65 40 40, 30, 20, 10, 0 0, 10, 20, 30, 40 66–70 45 45, 34, 23, 12, 1 0, 11, 22, 33, 44 71–75 50 50, 38, 26, 14, 2 0, 12, 24, 36, 48 View Large Table 3. The test instances of this paper Case Size Bays Container groups Inbound container groups Outbound container groups 1–5 Small 6 6 6, 5, 4, 3, 2 0, 1, 2, 3, 4 6–10 8 8, 6, 4, 2, 0 0, 2, 4, 6, 8 11–15 10 8, 6, 4, 2, 0 0, 2, 4, 6, 8 16–20 12 12, 9, 6, 3, 0 0, 3, 6, 9, 12 21–25 14 12, 9, 6, 3, 0 0, 3, 6, 9, 12 26–30 Medium 6 16 16, 12, 8, 4, 0 0, 4, 8, 12, 16 31–35 18 16, 12, 8, 4, 0 0, 4, 8, 12, 16 36–40 20 20, 15, 10, 5, 0 0, 5, 10, 15, 20 41–45 22 20, 15, 10, 5, 0 0, 5, 10, 15, 20 46–50 25 25, 19, 13, 7, 1 0, 6, 12, 18, 24 51–55 Large 10 30 30, 23, 16, 9, 2 0, 7, 14, 21, 28 56–60 35 35, 27, 19, 11, 3 0, 8, 16, 24, 32 61–65 40 40, 30, 20, 10, 0 0, 10, 20, 30, 40 66–70 45 45, 34, 23, 12, 1 0, 11, 22, 33, 44 71–75 50 50, 38, 26, 14, 2 0, 12, 24, 36, 48 Case Size Bays Container groups Inbound container groups Outbound container groups 1–5 Small 6 6 6, 5, 4, 3, 2 0, 1, 2, 3, 4 6–10 8 8, 6, 4, 2, 0 0, 2, 4, 6, 8 11–15 10 8, 6, 4, 2, 0 0, 2, 4, 6, 8 16–20 12 12, 9, 6, 3, 0 0, 3, 6, 9, 12 21–25 14 12, 9, 6, 3, 0 0, 3, 6, 9, 12 26–30 Medium 6 16 16, 12, 8, 4, 0 0, 4, 8, 12, 16 31–35 18 16, 12, 8, 4, 0 0, 4, 8, 12, 16 36–40 20 20, 15, 10, 5, 0 0, 5, 10, 15, 20 41–45 22 20, 15, 10, 5, 0 0, 5, 10, 15, 20 46–50 25 25, 19, 13, 7, 1 0, 6, 12, 18, 24 51–55 Large 10 30 30, 23, 16, 9, 2 0, 7, 14, 21, 28 56–60 35 35, 27, 19, 11, 3 0, 8, 16, 24, 32 61–65 40 40, 30, 20, 10, 0 0, 10, 20, 30, 40 66–70 45 45, 34, 23, 12, 1 0, 11, 22, 33, 44 71–75 50 50, 38, 26, 14, 2 0, 12, 24, 36, 48 View Large Table 4. Comparison of different versions of PSO algorithms for small-sized problems Ins. CTs CPLEX TPSO P_PSO P_NS_PSO OBJ1 TIME OBJ2 TIME GAP1 OBJ3 TIME GAP2 OBJ4 TIME GAP3 6 33 51.5 0.3 51.5 10.2 0.0% 51.5 9 0.0% 51.5 25 0.0% 36 62.9 0.5 62.9 13.4 0.0% 62.9 13.3 0.0% 62.9 16.8 0.0% 25 47 0.3 47 13.2 0.0% 47 10.1 0.0% 47 16.0 0.0% 23 40.7 0.2 40.7 15.5 0.0% 40.7 9.7 0.0% 40.7 14.5 0.0% 41 70.6 0.5 70.6 28.1 0.0% 70.6 20.4 0.0% 70.6 22.5 0.0% 8 31 40.4 2.0 46.4 16.7 14.9% 40.4 21.8 0.0% 40.4 27.7 0.0% 44 52.6 4.5 60.6 26.1 15.2% 52.6 21.9 0.0% 52.6 31.8 0.0% 32 71.2 1.6 75.2 21.9 5.6% 71.2 16 0.0% 71.2 56.4 0.0% 29 42.5 0.5 42.5 23.1 0.0% 42.5 13.4 0.0% 42.5 30.5 0.0% 40 47.8 0.3 65.8 15.2 37.7% 47.8 12.2 0.0% 47.8 33.2 0.0% 10 45 65.7 26.4 65.7 27.8 0.0% 65.7 35.9 0.0% 65.7 86.1 0.0% 50 77.7 17.3 85.7 36.7 10.3% 77.7 25.3 0.0% 77.7 94.3 0.0% 61 113.8 11.8 119.8 31.9 5.3% 121.8 34.9 7.0% 117.8 108.1 3.5% 45 63.9 7.2 69.9 19.2 9.4% 63.9 20.2 0.0% 63.9 39.7 0.0% 59 98.5 3.2 108.5 21.2 10.2% 98.5 24.7 0.0% 98.5 39.2 0.0% 12 39 65.4 7.5 69.4 31.6 6.1% 65.4 38.6 0.0% 65.4 66.9 0.0% 70 83.2 7.3 111.2 99.6 33.7% 87.2 38.2 4.8% 87.2 69.6 4.8% 45 59.8 9.7 63.8 50.1 6.7% 59.8 88.2 0.0% 59.8 61 0.0% 47 65.3 46.3 73.3 62.2 12.3% 71.3 61 9.2% 65.3 88.7 0.0% 67 93.2 25.1 103.2 45.3 10.7% 99.2 22.5 6.4% 97.2 80.49 4.3% 14 76 96.7 110.9 118.7 169.2 22.8% 98.7 38.3 2.1% 98.7 115.1 2.1% 69 87.5 474.2 103.5 48.8 18.3% 93.5 35.4 6.9% 93.5 94.3 6.9% 86 128.4 536.5 147.2 95.1 14.6% 128.4 54.2 0.0% 128.4 123.2 0.0% 95 126.1 1230.4 156 68.2 23.7% 162.1 52.2 28.5% 126.1 163.4 0.0% 75 88.7 764.6 108.7 63.1 22.5% 94.7 55.3 6.8% 94.7 83.2 6.8% Average GAP 11.1% 2.8% 1.1% Ins. CTs CPLEX TPSO P_PSO P_NS_PSO OBJ1 TIME OBJ2 TIME GAP1 OBJ3 TIME GAP2 OBJ4 TIME GAP3 6 33 51.5 0.3 51.5 10.2 0.0% 51.5 9 0.0% 51.5 25 0.0% 36 62.9 0.5 62.9 13.4 0.0% 62.9 13.3 0.0% 62.9 16.8 0.0% 25 47 0.3 47 13.2 0.0% 47 10.1 0.0% 47 16.0 0.0% 23 40.7 0.2 40.7 15.5 0.0% 40.7 9.7 0.0% 40.7 14.5 0.0% 41 70.6 0.5 70.6 28.1 0.0% 70.6 20.4 0.0% 70.6 22.5 0.0% 8 31 40.4 2.0 46.4 16.7 14.9% 40.4 21.8 0.0% 40.4 27.7 0.0% 44 52.6 4.5 60.6 26.1 15.2% 52.6 21.9 0.0% 52.6 31.8 0.0% 32 71.2 1.6 75.2 21.9 5.6% 71.2 16 0.0% 71.2 56.4 0.0% 29 42.5 0.5 42.5 23.1 0.0% 42.5 13.4 0.0% 42.5 30.5 0.0% 40 47.8 0.3 65.8 15.2 37.7% 47.8 12.2 0.0% 47.8 33.2 0.0% 10 45 65.7 26.4 65.7 27.8 0.0% 65.7 35.9 0.0% 65.7 86.1 0.0% 50 77.7 17.3 85.7 36.7 10.3% 77.7 25.3 0.0% 77.7 94.3 0.0% 61 113.8 11.8 119.8 31.9 5.3% 121.8 34.9 7.0% 117.8 108.1 3.5% 45 63.9 7.2 69.9 19.2 9.4% 63.9 20.2 0.0% 63.9 39.7 0.0% 59 98.5 3.2 108.5 21.2 10.2% 98.5 24.7 0.0% 98.5 39.2 0.0% 12 39 65.4 7.5 69.4 31.6 6.1% 65.4 38.6 0.0% 65.4 66.9 0.0% 70 83.2 7.3 111.2 99.6 33.7% 87.2 38.2 4.8% 87.2 69.6 4.8% 45 59.8 9.7 63.8 50.1 6.7% 59.8 88.2 0.0% 59.8 61 0.0% 47 65.3 46.3 73.3 62.2 12.3% 71.3 61 9.2% 65.3 88.7 0.0% 67 93.2 25.1 103.2 45.3 10.7% 99.2 22.5 6.4% 97.2 80.49 4.3% 14 76 96.7 110.9 118.7 169.2 22.8% 98.7 38.3 2.1% 98.7 115.1 2.1% 69 87.5 474.2 103.5 48.8 18.3% 93.5 35.4 6.9% 93.5 94.3 6.9% 86 128.4 536.5 147.2 95.1 14.6% 128.4 54.2 0.0% 128.4 123.2 0.0% 95 126.1 1230.4 156 68.2 23.7% 162.1 52.2 28.5% 126.1 163.4 0.0% 75 88.7 764.6 108.7 63.1 22.5% 94.7 55.3 6.8% 94.7 83.2 6.8% Average GAP 11.1% 2.8% 1.1% *Ins. represents instances and denotes the number of container groups; CTs denote the number of containers; the unit of measure for OBJ is minute; the unit of measure for time is second; GAP1 = (OBJ2-OBJ1)/OBJ1; GAP2 = (OBJ3-OBJ1)/OBJ1; GAP3 = (OBJ4-OBJ1)/OBJ1. View Large Table 4. Comparison of different versions of PSO algorithms for small-sized problems Ins. CTs CPLEX TPSO P_PSO P_NS_PSO OBJ1 TIME OBJ2 TIME GAP1 OBJ3 TIME GAP2 OBJ4 TIME GAP3 6 33 51.5 0.3 51.5 10.2 0.0% 51.5 9 0.0% 51.5 25 0.0% 36 62.9 0.5 62.9 13.4 0.0% 62.9 13.3 0.0% 62.9 16.8 0.0% 25 47 0.3 47 13.2 0.0% 47 10.1 0.0% 47 16.0 0.0% 23 40.7 0.2 40.7 15.5 0.0% 40.7 9.7 0.0% 40.7 14.5 0.0% 41 70.6 0.5 70.6 28.1 0.0% 70.6 20.4 0.0% 70.6 22.5 0.0% 8 31 40.4 2.0 46.4 16.7 14.9% 40.4 21.8 0.0% 40.4 27.7 0.0% 44 52.6 4.5 60.6 26.1 15.2% 52.6 21.9 0.0% 52.6 31.8 0.0% 32 71.2 1.6 75.2 21.9 5.6% 71.2 16 0.0% 71.2 56.4 0.0% 29 42.5 0.5 42.5 23.1 0.0% 42.5 13.4 0.0% 42.5 30.5 0.0% 40 47.8 0.3 65.8 15.2 37.7% 47.8 12.2 0.0% 47.8 33.2 0.0% 10 45 65.7 26.4 65.7 27.8 0.0% 65.7 35.9 0.0% 65.7 86.1 0.0% 50 77.7 17.3 85.7 36.7 10.3% 77.7 25.3 0.0% 77.7 94.3 0.0% 61 113.8 11.8 119.8 31.9 5.3% 121.8 34.9 7.0% 117.8 108.1 3.5% 45 63.9 7.2 69.9 19.2 9.4% 63.9 20.2 0.0% 63.9 39.7 0.0% 59 98.5 3.2 108.5 21.2 10.2% 98.5 24.7 0.0% 98.5 39.2 0.0% 12 39 65.4 7.5 69.4 31.6 6.1% 65.4 38.6 0.0% 65.4 66.9 0.0% 70 83.2 7.3 111.2 99.6 33.7% 87.2 38.2 4.8% 87.2 69.6 4.8% 45 59.8 9.7 63.8 50.1 6.7% 59.8 88.2 0.0% 59.8 61 0.0% 47 65.3 46.3 73.3 62.2 12.3% 71.3 61 9.2% 65.3 88.7 0.0% 67 93.2 25.1 103.2 45.3 10.7% 99.2 22.5 6.4% 97.2 80.49 4.3% 14 76 96.7 110.9 118.7 169.2 22.8% 98.7 38.3 2.1% 98.7 115.1 2.1% 69 87.5 474.2 103.5 48.8 18.3% 93.5 35.4 6.9% 93.5 94.3 6.9% 86 128.4 536.5 147.2 95.1 14.6% 128.4 54.2 0.0% 128.4 123.2 0.0% 95 126.1 1230.4 156 68.2 23.7% 162.1 52.2 28.5% 126.1 163.4 0.0% 75 88.7 764.6 108.7 63.1 22.5% 94.7 55.3 6.8% 94.7 83.2 6.8% Average GAP 11.1% 2.8% 1.1% Ins. CTs CPLEX TPSO P_PSO P_NS_PSO OBJ1 TIME OBJ2 TIME GAP1 OBJ3 TIME GAP2 OBJ4 TIME GAP3 6 33 51.5 0.3 51.5 10.2 0.0% 51.5 9 0.0% 51.5 25 0.0% 36 62.9 0.5 62.9 13.4 0.0% 62.9 13.3 0.0% 62.9 16.8 0.0% 25 47 0.3 47 13.2 0.0% 47 10.1 0.0% 47 16.0 0.0% 23 40.7 0.2 40.7 15.5 0.0% 40.7 9.7 0.0% 40.7 14.5 0.0% 41 70.6 0.5 70.6 28.1 0.0% 70.6 20.4 0.0% 70.6 22.5 0.0% 8 31 40.4 2.0 46.4 16.7 14.9% 40.4 21.8 0.0% 40.4 27.7 0.0% 44 52.6 4.5 60.6 26.1 15.2% 52.6 21.9 0.0% 52.6 31.8 0.0% 32 71.2 1.6 75.2 21.9 5.6% 71.2 16 0.0% 71.2 56.4 0.0% 29 42.5 0.5 42.5 23.1 0.0% 42.5 13.4 0.0% 42.5 30.5 0.0% 40 47.8 0.3 65.8 15.2 37.7% 47.8 12.2 0.0% 47.8 33.2 0.0% 10 45 65.7 26.4 65.7 27.8 0.0% 65.7 35.9 0.0% 65.7 86.1 0.0% 50 77.7 17.3 85.7 36.7 10.3% 77.7 25.3 0.0% 77.7 94.3 0.0% 61 113.8 11.8 119.8 31.9 5.3% 121.8 34.9 7.0% 117.8 108.1 3.5% 45 63.9 7.2 69.9 19.2 9.4% 63.9 20.2 0.0% 63.9 39.7 0.0% 59 98.5 3.2 108.5 21.2 10.2% 98.5 24.7 0.0% 98.5 39.2 0.0% 12 39 65.4 7.5 69.4 31.6 6.1% 65.4 38.6 0.0% 65.4 66.9 0.0% 70 83.2 7.3 111.2 99.6 33.7% 87.2 38.2 4.8% 87.2 69.6 4.8% 45 59.8 9.7 63.8 50.1 6.7% 59.8 88.2 0.0% 59.8 61 0.0% 47 65.3 46.3 73.3 62.2 12.3% 71.3 61 9.2% 65.3 88.7 0.0% 67 93.2 25.1 103.2 45.3 10.7% 99.2 22.5 6.4% 97.2 80.49 4.3% 14 76 96.7 110.9 118.7 169.2 22.8% 98.7 38.3 2.1% 98.7 115.1 2.1% 69 87.5 474.2 103.5 48.8 18.3% 93.5 35.4 6.9% 93.5 94.3 6.9% 86 128.4 536.5 147.2 95.1 14.6% 128.4 54.2 0.0% 128.4 123.2 0.0% 95 126.1 1230.4 156 68.2 23.7% 162.1 52.2 28.5% 126.1 163.4 0.0% 75 88.7 764.6 108.7 63.1 22.5% 94.7 55.3 6.8% 94.7 83.2 6.8% Average GAP 11.1% 2.8% 1.1% *Ins. represents instances and denotes the number of container groups; CTs denote the number of containers; the unit of measure for OBJ is minute; the unit of measure for time is second; GAP1 = (OBJ2-OBJ1)/OBJ1; GAP2 = (OBJ3-OBJ1)/OBJ1; GAP3 = (OBJ4-OBJ1)/OBJ1. View Large 5.2. Experimental results In the small-sized cases (1–25), we can find an exact solution using CPLEX under all cases within a short time, as shown in Table 4. From the results in Table 4, we can observe that the gap between the exact solution and the solution obtained by TPSO increases as the size increases. In addition, the performance of TPSO is not stable. Compared with the average gap 11.1% between the exact solution and that obtained by TPSO, the average gap between exact solution and the solution obtained by P_PSO is reduced to 2.8%. This indicates that preprocessing plays a significant role in improving the effectiveness of TPSO. Meanwhile, CPU time also markedly decreases. Compared with P_PSO, P_NS_PSO conducts a more full-scale search; thus, the quality of the solution obtained by P_NS_PSO is better than that obtained by P_PSO. The gap between the exact solution and the solution obtained by P_NS_PSO is only 1.1%. The CPU time also falls within an acceptable range. Table 5. Comparison of different versions of PSO algorithms for medium-sized problems Ins. CTs CPLEX P_PSO P_NS_PSO OBJ1 TIME OBJ2 TIME GAP1 OBJ3 TIME GAP2 16 88 127.4 1976 127.4 88.7 0.0% 127.4 108.8 0.0% 110 131.4 1168 141 96.2 −7.3% 139.8 116.4 −6.3% 92 121.4 1250 133.4 65.9 −9.8% 129.4 86.0 −6.5% 101 133.4 2949 151.4 123.8 −13.4% 143.7 144.0 −7.7% 89 151.2 556 151.2 48.6 0.0% 151.2 68.7 0.0% 18 90 114 1385 120 83.4 −5.2% 114 103.5 0.0% 99 153.3 2996 153.3 80.3 0.0% 153.3 100.4 0.0% 91 108.5 >7200 118.5 85.4 −9.2% 118.5 105.5 −9.2% 92 119.9 605 131.9 75.4 −10.1% 125.9 95.5 −5.0% 115 151.9 1756 159.9 109.3 −5.2% 151.9 129.4 0.0% 20 86 116 861 150 185.4 −29.3% 120 205.5 −3.4% 92 132 2500 136.5 142.9 −3.4% 135.6 163.0 −2.7% 108 141 2500 164.6 179.7 −16.7% 153.2 199.8 −8.51% 85 111.2 >7200 138.2 135.7 −24.2% 124.1 155.8 −11.5% 101 170 >7200 166.8 169.2 1.8% 166.8 189.3 1.8% 22 113 233 >7200 187 150.4 19.7% 157 170.6 32.6% 115 186 >7200 155.4 120.9 16.4% 148.2 141.1 20.3% 80 168 >7200 123.6 176.7 26.4% 123.6 196.8 26.4% 104 179 >7200 164.4 153.4 8.1% 164.4 173.6 8.1% 103 191.2 >7200 166.4 183.2 12.9% 166.4 203.3 12.9% 25 116 170.3 >7200 162.2 254.5 4.7% 160.2 274.6 5.9% 116 201.4 >7200 175.8 261.0 12.7% 167.8 281.1 16.6% 91 174.5 >7200 139.6 226.0 20.00% 139.6 246.1 20.00% 132 232.8 >7200 200.4 279.0 13.92% 200.2 299.1 14.00% 129 243.6 >7200 224.4 228.2 7.88% 217.6 248.3 10.67% Ins. CTs CPLEX P_PSO P_NS_PSO OBJ1 TIME OBJ2 TIME GAP1 OBJ3 TIME GAP2 16 88 127.4 1976 127.4 88.7 0.0% 127.4 108.8 0.0% 110 131.4 1168 141 96.2 −7.3% 139.8 116.4 −6.3% 92 121.4 1250 133.4 65.9 −9.8% 129.4 86.0 −6.5% 101 133.4 2949 151.4 123.8 −13.4% 143.7 144.0 −7.7% 89 151.2 556 151.2 48.6 0.0% 151.2 68.7 0.0% 18 90 114 1385 120 83.4 −5.2% 114 103.5 0.0% 99 153.3 2996 153.3 80.3 0.0% 153.3 100.4 0.0% 91 108.5 >7200 118.5 85.4 −9.2% 118.5 105.5 −9.2% 92 119.9 605 131.9 75.4 −10.1% 125.9 95.5 −5.0% 115 151.9 1756 159.9 109.3 −5.2% 151.9 129.4 0.0% 20 86 116 861 150 185.4 −29.3% 120 205.5 −3.4% 92 132 2500 136.5 142.9 −3.4% 135.6 163.0 −2.7% 108 141 2500 164.6 179.7 −16.7% 153.2 199.8 −8.51% 85 111.2 >7200 138.2 135.7 −24.2% 124.1 155.8 −11.5% 101 170 >7200 166.8 169.2 1.8% 166.8 189.3 1.8% 22 113 233 >7200 187 150.4 19.7% 157 170.6 32.6% 115 186 >7200 155.4 120.9 16.4% 148.2 141.1 20.3% 80 168 >7200 123.6 176.7 26.4% 123.6 196.8 26.4% 104 179 >7200 164.4 153.4 8.1% 164.4 173.6 8.1% 103 191.2 >7200 166.4 183.2 12.9% 166.4 203.3 12.9% 25 116 170.3 >7200 162.2 254.5 4.7% 160.2 274.6 5.9% 116 201.4 >7200 175.8 261.0 12.7% 167.8 281.1 16.6% 91 174.5 >7200 139.6 226.0 20.00% 139.6 246.1 20.00% 132 232.8 >7200 200.4 279.0 13.92% 200.2 299.1 14.00% 129 243.6 >7200 224.4 228.2 7.88% 217.6 248.3 10.67% *Ins. represents instances and denotes the number of container groups; CTs denote the number of containers; the unit of measure for OBJ is minute; the unit of measure for time is second; GAP1 = (OBJ1-OBJ2)/OBJ1; GAP2 = (OBJ1-OBJ3)/OBJ1; GAP3 = (OBJ1-OBJ4)/OBJ1. View Large Table 5. Comparison of different versions of PSO algorithms for medium-sized problems Ins. CTs CPLEX P_PSO P_NS_PSO OBJ1 TIME OBJ2 TIME GAP1 OBJ3 TIME GAP2 16 88 127.4 1976 127.4 88.7 0.0% 127.4 108.8 0.0% 110 131.4 1168 141 96.2 −7.3% 139.8 116.4 −6.3% 92 121.4 1250 133.4 65.9 −9.8% 129.4 86.0 −6.5% 101 133.4 2949 151.4 123.8 −13.4% 143.7 144.0 −7.7% 89 151.2 556 151.2 48.6 0.0% 151.2 68.7 0.0% 18 90 114 1385 120 83.4 −5.2% 114 103.5 0.0% 99 153.3 2996 153.3 80.3 0.0% 153.3 100.4 0.0% 91 108.5 >7200 118.5 85.4 −9.2% 118.5 105.5 −9.2% 92 119.9 605 131.9 75.4 −10.1% 125.9 95.5 −5.0% 115 151.9 1756 159.9 109.3 −5.2% 151.9 129.4 0.0% 20 86 116 861 150 185.4 −29.3% 120 205.5 −3.4% 92 132 2500 136.5 142.9 −3.4% 135.6 163.0 −2.7% 108 141 2500 164.6 179.7 −16.7% 153.2 199.8 −8.51% 85 111.2 >7200 138.2 135.7 −24.2% 124.1 155.8 −11.5% 101 170 >7200 166.8 169.2 1.8% 166.8 189.3 1.8% 22 113 233 >7200 187 150.4 19.7% 157 170.6 32.6% 115 186 >7200 155.4 120.9 16.4% 148.2 141.1 20.3% 80 168 >7200 123.6 176.7 26.4% 123.6 196.8 26.4% 104 179 >7200 164.4 153.4 8.1% 164.4 173.6 8.1% 103 191.2 >7200 166.4 183.2 12.9% 166.4 203.3 12.9% 25 116 170.3 >7200 162.2 254.5 4.7% 160.2 274.6 5.9% 116 201.4 >7200 175.8 261.0 12.7% 167.8 281.1 16.6% 91 174.5 >7200 139.6 226.0 20.00% 139.6 246.1 20.00% 132 232.8 >7200 200.4 279.0 13.92% 200.2 299.1 14.00% 129 243.6 >7200 224.4 228.2 7.88% 217.6 248.3 10.67% Ins. CTs CPLEX P_PSO P_NS_PSO OBJ1 TIME OBJ2 TIME GAP1 OBJ3 TIME GAP2 16 88 127.4 1976 127.4 88.7 0.0% 127.4 108.8 0.0% 110 131.4 1168 141 96.2 −7.3% 139.8 116.4 −6.3% 92 121.4 1250 133.4 65.9 −9.8% 129.4 86.0 −6.5% 101 133.4 2949 151.4 123.8 −13.4% 143.7 144.0 −7.7% 89 151.2 556 151.2 48.6 0.0% 151.2 68.7 0.0% 18 90 114 1385 120 83.4 −5.2% 114 103.5 0.0% 99 153.3 2996 153.3 80.3 0.0% 153.3 100.4 0.0% 91 108.5 >7200 118.5 85.4 −9.2% 118.5 105.5 −9.2% 92 119.9 605 131.9 75.4 −10.1% 125.9 95.5 −5.0% 115 151.9 1756 159.9 109.3 −5.2% 151.9 129.4 0.0% 20 86 116 861 150 185.4 −29.3% 120 205.5 −3.4% 92 132 2500 136.5 142.9 −3.4% 135.6 163.0 −2.7% 108 141 2500 164.6 179.7 −16.7% 153.2 199.8 −8.51% 85 111.2 >7200 138.2 135.7 −24.2% 124.1 155.8 −11.5% 101 170 >7200 166.8 169.2 1.8% 166.8 189.3 1.8% 22 113 233 >7200 187 150.4 19.7% 157 170.6 32.6% 115 186 >7200 155.4 120.9 16.4% 148.2 141.1 20.3% 80 168 >7200 123.6 176.7 26.4% 123.6 196.8 26.4% 104 179 >7200 164.4 153.4 8.1% 164.4 173.6 8.1% 103 191.2 >7200 166.4 183.2 12.9% 166.4 203.3 12.9% 25 116 170.3 >7200 162.2 254.5 4.7% 160.2 274.6 5.9% 116 201.4 >7200 175.8 261.0 12.7% 167.8 281.1 16.6% 91 174.5 >7200 139.6 226.0 20.00% 139.6 246.1 20.00% 132 232.8 >7200 200.4 279.0 13.92% 200.2 299.1 14.00% 129 243.6 >7200 224.4 228.2 7.88% 217.6 248.3 10.67% *Ins. represents instances and denotes the number of container groups; CTs denote the number of containers; the unit of measure for OBJ is minute; the unit of measure for time is second; GAP1 = (OBJ1-OBJ2)/OBJ1; GAP2 = (OBJ1-OBJ3)/OBJ1; GAP3 = (OBJ1-OBJ4)/OBJ1. View Large As the problem size increases, the CPU time for finding the exact solution exhibits an exponential growth. For cases in which the exact solution cannot be found within 2 h, we record the best objective that CPLEX can find when the CPU time reaches 7200 s. Comparing with the solutions obtained by CPLEX, GAP1 and GAP2 in Table 5 indicate that definite improvements are obtained when applying P_PSO and P_NS_PSO, respectively. The negative gaps indicate that the corresponding heuristic algorithm cannot find a solution better than CPLEX, and the positive gaps indicate that the heuristic algorithm performs better than CPLEX within 2 h. According to the definitions of the gaps in Table 5 the larger the gap, the higher the improvement achieved using the corresponding heuristic algorithm. In Table 5, from the results in which the exact solutions are found, we can see that the gaps between exact and P_PSO, P_NS_PSO are acceptable, and the performance of P_NS_PSO is superior to the former. Although the gap between CPLEX and P_NS_PSO still exists, P_NS_PSO is highly efficient because its computational time is considerably shorter. Table 6. Comparison of different versions of PSO algorithms for large-sized problems Ins. CTs PMTB TPSO P_PSO P_NS_PSO OBJ1 GAP1 OBJ2 GAP2 OBJ3 GAP3 30 152 249.6 253.6 −1.6% 213.6 14.4% 213.6 14.4% 135 203 242 −19.2% 209 −3.0% 195 3.9% 139 249 298.8 −20.0% 205.6 17.4% 203.6 18.2% 123 207 268 −29.5% 194 6.3% 190 8.2% 116 198.4 220.7 −11.2% 196.4 1.0% 192.4 3.0% 35 150 227.6 274.8 −20.7% 181.6 20.2% 181.6 20.2% 154 257.6 295 −14.5% 215.4 16.4% 205 20.4% 132 242.8 246.8 −1.6% 205.6 15.3% 188.8 22.2% 160 289.2 289.2 0.0% 231.2 20.1% 231.2 20.1% 130 259 277 −6.9% 211 18.5% 203 21.6% 40 156 263.8 265.8 −0.8% 205.8 22.0% 205.8 22.0% 170 325.6 298 8.5% 219.6 32.6% 214.8 34.0% 188 335 363 −8.4% 297.1 11.3% 267 20.3% 180 361.4 321.4 11.1% 277.4 23.2% 220.9 38.9% 145 407.6 351.6 13.7% 273.6 32.9% 267.6 34.3% 45 215 353.4 333.4 5.7% 289.4 18.1% 289.4 18.1% 231 364.4 366.4 −0.5% 328.6 9.8% 310.8 14.7% 214 481.6 404.4 16.0% 335.6 30.3% 323.6 32.8% 218 488.6 452.6 7.4% 374.6 23.3% 356.6 27.0% 186 312.2 346.6 −11.0% 315 −0.9% 312.2 0.0% 50 231 443.2 377 14.9% 335.6 24.3% 290 34.6% 224 382 382 0.0% 322 15.7% 304 20.4% 237 464.8 408.8 12.0% 356.4 23.3% 342.8 26.2% 217 403.8 457.8 −13.4% 345.8 14.4% 343.8 14.9% 214 376.2 429 −14.0% 361.2 4.0% 338.2 10.1% Average GAP −3.3% 16.4% 20.1% Ins. CTs PMTB TPSO P_PSO P_NS_PSO OBJ1 GAP1 OBJ2 GAP2 OBJ3 GAP3 30 152 249.6 253.6 −1.6% 213.6 14.4% 213.6 14.4% 135 203 242 −19.2% 209 −3.0% 195 3.9% 139 249 298.8 −20.0% 205.6 17.4% 203.6 18.2% 123 207 268 −29.5% 194 6.3% 190 8.2% 116 198.4 220.7 −11.2% 196.4 1.0% 192.4 3.0% 35 150 227.6 274.8 −20.7% 181.6 20.2% 181.6 20.2% 154 257.6 295 −14.5% 215.4 16.4% 205 20.4% 132 242.8 246.8 −1.6% 205.6 15.3% 188.8 22.2% 160 289.2 289.2 0.0% 231.2 20.1% 231.2 20.1% 130 259 277 −6.9% 211 18.5% 203 21.6% 40 156 263.8 265.8 −0.8% 205.8 22.0% 205.8 22.0% 170 325.6 298 8.5% 219.6 32.6% 214.8 34.0% 188 335 363 −8.4% 297.1 11.3% 267 20.3% 180 361.4 321.4 11.1% 277.4 23.2% 220.9 38.9% 145 407.6 351.6 13.7% 273.6 32.9% 267.6 34.3% 45 215 353.4 333.4 5.7% 289.4 18.1% 289.4 18.1% 231 364.4 366.4 −0.5% 328.6 9.8% 310.8 14.7% 214 481.6 404.4 16.0% 335.6 30.3% 323.6 32.8% 218 488.6 452.6 7.4% 374.6 23.3% 356.6 27.0% 186 312.2 346.6 −11.0% 315 −0.9% 312.2 0.0% 50 231 443.2 377 14.9% 335.6 24.3% 290 34.6% 224 382 382 0.0% 322 15.7% 304 20.4% 237 464.8 408.8 12.0% 356.4 23.3% 342.8 26.2% 217 403.8 457.8 −13.4% 345.8 14.4% 343.8 14.9% 214 376.2 429 −14.0% 361.2 4.0% 338.2 10.1% Average GAP −3.3% 16.4% 20.1% *Ins. represents instances and denotes the number of container groups; CTs denote the number of containers; the units of measure for OBJ and PMTB are minute; the unit of measure for time is second; GAP1 = (PMTB-OBJ1)/PMTB; GAP2 = (PMTB-OBJ2)/PMTB; GAP3 = (PMTB-OBJ3)/PMTB. Table 6. Comparison of different versions of PSO algorithms for large-sized problems Ins. CTs PMTB TPSO P_PSO P_NS_PSO OBJ1 GAP1 OBJ2 GAP2 OBJ3 GAP3 30 152 249.6 253.6 −1.6% 213.6 14.4% 213.6 14.4% 135 203 242 −19.2% 209 −3.0% 195 3.9% 139 249 298.8 −20.0% 205.6 17.4% 203.6 18.2% 123 207 268 −29.5% 194 6.3% 190 8.2% 116 198.4 220.7 −11.2% 196.4 1.0% 192.4 3.0% 35 150 227.6 274.8 −20.7% 181.6 20.2% 181.6 20.2% 154 257.6 295 −14.5% 215.4 16.4% 205 20.4% 132 242.8 246.8 −1.6% 205.6 15.3% 188.8 22.2% 160 289.2 289.2 0.0% 231.2 20.1% 231.2 20.1% 130 259 277 −6.9% 211 18.5% 203 21.6% 40 156 263.8 265.8 −0.8% 205.8 22.0% 205.8 22.0% 170 325.6 298 8.5% 219.6 32.6% 214.8 34.0% 188 335 363 −8.4% 297.1 11.3% 267 20.3% 180 361.4 321.4 11.1% 277.4 23.2% 220.9 38.9% 145 407.6 351.6 13.7% 273.6 32.9% 267.6 34.3% 45 215 353.4 333.4 5.7% 289.4 18.1% 289.4 18.1% 231 364.4 366.4 −0.5% 328.6 9.8% 310.8 14.7% 214 481.6 404.4 16.0% 335.6 30.3% 323.6 32.8% 218 488.6 452.6 7.4% 374.6 23.3% 356.6 27.0% 186 312.2 346.6 −11.0% 315 −0.9% 312.2 0.0% 50 231 443.2 377 14.9% 335.6 24.3% 290 34.6% 224 382 382 0.0% 322 15.7% 304 20.4% 237 464.8 408.8 12.0% 356.4 23.3% 342.8 26.2% 217 403.8 457.8 −13.4% 345.8 14.4% 343.8 14.9% 214 376.2 429 −14.0% 361.2 4.0% 338.2 10.1% Average GAP −3.3% 16.4% 20.1% Ins. CTs PMTB TPSO P_PSO P_NS_PSO OBJ1 GAP1 OBJ2 GAP2 OBJ3 GAP3 30 152 249.6 253.6 −1.6% 213.6 14.4% 213.6 14.4% 135 203 242 −19.2% 209 −3.0% 195 3.9% 139 249 298.8 −20.0% 205.6 17.4% 203.6 18.2% 123 207 268 −29.5% 194 6.3% 190 8.2% 116 198.4 220.7 −11.2% 196.4 1.0% 192.4 3.0% 35 150 227.6 274.8 −20.7% 181.6 20.2% 181.6 20.2% 154 257.6 295 −14.5% 215.4 16.4% 205 20.4% 132 242.8 246.8 −1.6% 205.6 15.3% 188.8 22.2% 160 289.2 289.2 0.0% 231.2 20.1% 231.2 20.1% 130 259 277 −6.9% 211 18.5% 203 21.6% 40 156 263.8 265.8 −0.8% 205.8 22.0% 205.8 22.0% 170 325.6 298 8.5% 219.6 32.6% 214.8 34.0% 188 335 363 −8.4% 297.1 11.3% 267 20.3% 180 361.4 321.4 11.1% 277.4 23.2% 220.9 38.9% 145 407.6 351.6 13.7% 273.6 32.9% 267.6 34.3% 45 215 353.4 333.4 5.7% 289.4 18.1% 289.4 18.1% 231 364.4 366.4 −0.5% 328.6 9.8% 310.8 14.7% 214 481.6 404.4 16.0% 335.6 30.3% 323.6 32.8% 218 488.6 452.6 7.4% 374.6 23.3% 356.6 27.0% 186 312.2 346.6 −11.0% 315 −0.9% 312.2 0.0% 50 231 443.2 377 14.9% 335.6 24.3% 290 34.6% 224 382 382 0.0% 322 15.7% 304 20.4% 237 464.8 408.8 12.0% 356.4 23.3% 342.8 26.2% 217 403.8 457.8 −13.4% 345.8 14.4% 343.8 14.9% 214 376.2 429 −14.0% 361.2 4.0% 338.2 10.1% Average GAP −3.3% 16.4% 20.1% *Ins. represents instances and denotes the number of container groups; CTs denote the number of containers; the units of measure for OBJ and PMTB are minute; the unit of measure for time is second; GAP1 = (PMTB-OBJ1)/PMTB; GAP2 = (PMTB-OBJ2)/PMTB; GAP3 = (PMTB-OBJ3)/PMTB. For larger-size cases (36–70), the CPLEX solution is no longer appropriate for measuring the performance of TPSO, P_PSO and P_NS_PSO because solving with CPLEX requires a considerable amount of time. Therefore, the approximate solutions obtained using the three heuristic methods, i.e. TPSO, P_PSO and P_NS_PSO, are compared with the scheduling obtained from the actual operation experience by the terminal operator, which prioritizes the most time-consuming bay (PMTB). The experimental results are listed in Table 6. The PMTB column shows the scheduling determined from actual operating experience. The detailed PMTB procedure is shown in Appendix. The gaps in Table 6 show that significant improvements are achieved by using TPSO, P_PSO and P_NS_PSO. The table also shows that the average gap between the solution obtained by TPSO and that obtained using the PMTB method is −3.3%. This figure indicates that for large-sized cases, solutions based on actual operating experience is better than those obtained by TPSO; however, the solutions obtained using P_PSO and P_NS_PSO are improved by 16.4% and 20.1%, respectively. These results validate the efficiency of the proposed algorithm. Table 7. Comparison between the JQCS–BAP jointly and independently in sequence Sizes Ins. SIIS CPLEX P_NS_PSO OBJ1 TIME OBJ2 TIME GAP1 OBJ3 TIME GAP2 Small 6 58.2 0.1 51.5 0.3 11.5% 51.5 25 11.5% 8 47.5 1.4 40.4 2.0 14.9% 40.4 27.7 14.9% 10 74.4 17.9 65.7 26.4 11.7% 65.7 86.1 11.7% 12 77.1 7.1 65.4 7.5 15.2% 65.4 66.9 15.2% 14 105 82.1 96.7 110.9 7.9% 98.7 115.1 6.0% Medium 16 148 1198.7 127.4 1976 13.9% 127.4 108.8 13.9% 18 129.6 907.5 114 1385 12.0% 114 103.5 12.0% 20 137.7 716.8 116 861 15.7% 120 205.5 12.8% 22 187 4729.5 233* 7200 −24.6% 157 170.6 15.7% 25 189.9 5486.9 170.3* 7200 10.3% 160.2 274.6 15.6% Large 30 254.1 6041.5 - - 213.6 304.5 15.9% 35 231 6879.3 - - 181.6 317.8 21.4% 40 242.9# 548.2# - - 205.8 350.1 15.3% 45 344.6# 658.9# - - 289.4 379.7 16.0% 50 362# 723.6# - - 290 402.3 19.9% Average GAP 14.5% Sizes Ins. SIIS CPLEX P_NS_PSO OBJ1 TIME OBJ2 TIME GAP1 OBJ3 TIME GAP2 Small 6 58.2 0.1 51.5 0.3 11.5% 51.5 25 11.5% 8 47.5 1.4 40.4 2.0 14.9% 40.4 27.7 14.9% 10 74.4 17.9 65.7 26.4 11.7% 65.7 86.1 11.7% 12 77.1 7.1 65.4 7.5 15.2% 65.4 66.9 15.2% 14 105 82.1 96.7 110.9 7.9% 98.7 115.1 6.0% Medium 16 148 1198.7 127.4 1976 13.9% 127.4 108.8 13.9% 18 129.6 907.5 114 1385 12.0% 114 103.5 12.0% 20 137.7 716.8 116 861 15.7% 120 205.5 12.8% 22 187 4729.5 233* 7200 −24.6% 157 170.6 15.7% 25 189.9 5486.9 170.3* 7200 10.3% 160.2 274.6 15.6% Large 30 254.1 6041.5 - - 213.6 304.5 15.9% 35 231 6879.3 - - 181.6 317.8 21.4% 40 242.9# 548.2# - - 205.8 350.1 15.3% 45 344.6# 658.9# - - 289.4 379.7 16.0% 50 362# 723.6# - - 290 402.3 19.9% Average GAP 14.5% *Ins. represents instances and denotes the number of container groups; SIIS denotes the solutions solved independently in sequence; the unit of measure for OBJ is minute; the unit of measure for time is second; GAP1 = (SIIS-OBJ2)/SIIS; GAP2 = (SIIS-OBJ3)/SIIS. View Large Table 7. Comparison between the JQCS–BAP jointly and independently in sequence Sizes Ins. SIIS CPLEX P_NS_PSO OBJ1 TIME OBJ2 TIME GAP1 OBJ3 TIME GAP2 Small 6 58.2 0.1 51.5 0.3 11.5% 51.5 25 11.5% 8 47.5 1.4 40.4 2.0 14.9% 40.4 27.7 14.9% 10 74.4 17.9 65.7 26.4 11.7% 65.7 86.1 11.7% 12 77.1 7.1 65.4 7.5 15.2% 65.4 66.9 15.2% 14 105 82.1 96.7 110.9 7.9% 98.7 115.1 6.0% Medium 16 148 1198.7 127.4 1976 13.9% 127.4 108.8 13.9% 18 129.6 907.5 114 1385 12.0% 114 103.5 12.0% 20 137.7 716.8 116 861 15.7% 120 205.5 12.8% 22 187 4729.5 233* 7200 −24.6% 157 170.6 15.7% 25 189.9 5486.9 170.3* 7200 10.3% 160.2 274.6 15.6% Large 30 254.1 6041.5 - - 213.6 304.5 15.9% 35 231 6879.3 - - 181.6 317.8 21.4% 40 242.9# 548.2# - - 205.8 350.1 15.3% 45 344.6# 658.9# - - 289.4 379.7 16.0% 50 362# 723.6# - - 290 402.3 19.9% Average GAP 14.5% Sizes Ins. SIIS CPLEX P_NS_PSO OBJ1 TIME OBJ2 TIME GAP1 OBJ3 TIME GAP2 Small 6 58.2 0.1 51.5 0.3 11.5% 51.5 25 11.5% 8 47.5 1.4 40.4 2.0 14.9% 40.4 27.7 14.9% 10 74.4 17.9 65.7 26.4 11.7% 65.7 86.1 11.7% 12 77.1 7.1 65.4 7.5 15.2% 65.4 66.9 15.2% 14 105 82.1 96.7 110.9 7.9% 98.7 115.1 6.0% Medium 16 148 1198.7 127.4 1976 13.9% 127.4 108.8 13.9% 18 129.6 907.5 114 1385 12.0% 114 103.5 12.0% 20 137.7 716.8 116 861 15.7% 120 205.5 12.8% 22 187 4729.5 233* 7200 −24.6% 157 170.6 15.7% 25 189.9 5486.9 170.3* 7200 10.3% 160.2 274.6 15.6% Large 30 254.1 6041.5 - - 213.6 304.5 15.9% 35 231 6879.3 - - 181.6 317.8 21.4% 40 242.9# 548.2# - - 205.8 350.1 15.3% 45 344.6# 658.9# - - 289.4 379.7 16.0% 50 362# 723.6# - - 290 402.3 19.9% Average GAP 14.5% *Ins. represents instances and denotes the number of container groups; SIIS denotes the solutions solved independently in sequence; the unit of measure for OBJ is minute; the unit of measure for time is second; GAP1 = (SIIS-OBJ2)/SIIS; GAP2 = (SIIS-OBJ3)/SIIS. View Large Table 7 shows the comparison of solving the QCSP and BAP in a combined fashion and independently in sequence. To solve these two independent problems in sequence, we first obtain a QC schedule by solving a classical QCSP which is then treated as input for BAP. With the limited handling and storage capacities of block considered, operations in blocks under some QC schedules will be put off until the next period that has sufficient capacity. In Table 7, numbers with `#’ in the upper right indicate the objectives and CPU time obtained by using P_NS_PSO, considering CPLEX cannot find an optimal solution within 7200 s. Numbers with asterisks in the upper right indicate the best objective found by CPLEX when the CPU time reaches 7200 s. Meanwhile, the short horizontal lines indicate that CPLEX cannot find a feasible solution within an acceptable period. From the GAP1 in Table 7, we can see, in our instances, the optimal objectives by solving the QCSP and BAP independently in sequence are higher than that by JQCS–BAP. This obvious drawback of SIIS proves the necessity for solving these two problems in an integrated way. Table 7 shows that, whether solving the QCSP and BAP independently in sequence or in an integrated way, it is unpractical to obtain exact solutions by CPLEX for large-size problems. However, P_NS_PSO can keep a good performance for a large variety of problem sizes with a 14.5% average gap superior to SIIS. Additionally, it is worth mentioning that the CPU time of P_NS_PSO is much shorter than that of SIIS and CPLEX. 6. Conclusions This paper addresses the integrated QC scheduling problem and block allocation problem in container terminals. A mixed-integer linear programming model that considers the handling capacity and the storage capacity of yard blocks simultaneously with the travel time of trucks has been formulated. The model is highly complex to be solved optimally as the size increases; thus, we present an efficient preprocessing technique to reduce the difficulty of solving this problem. A hybrid heuristic algorithm based on PSO and NS with a taboo list is proposed to solve the problem. Computational results indicate that the proposed algorithm can obtain a near-optimal solution within reasonable time. The significance of the proposed model is proved, and the efficiency of the proposed heuristic algorithm is validated. However, the current study has certain limitations. In real-world settings, the operation time |${a}_i$| of each container group has a number of uncertainties and is expected to add complexity to the problem because the optimal solution in indeterminate circumstances may change; the robustness of the solution in various environments has to be considered as well. In addition, QC assignment, truck schedule and dual-cycle operation are not considered in this paper. These issues will be considered in future studies. Finally, some specialized and detailed simulation models need to be developed in the future to provide a more convincing validation for this proposed mathematical model and a more realistic representation of container terminal operations. Funding National Natural Science Foundation of China (71771143, 71831008, 71671107, 71422007); Innovation Program of Shanghai Municipal Education Commission (14YZ111); Shanghai Young Eastern Scholar Programme (QD2015041); Shanghai Pu Jiang Program (13PJC066) and ‘Graduate Innovation Fund’ of Shanghai Maritime University (YXR 201709). References Bierwirth , C. & Meisel , F. ( 2009 ) A fast heuristic for quay crane scheduling with interference constraints . J. Scheduling , 12 , 345 – 360 . Bierwirth , C. & Meisel , F. ( 2010 ) A survey of berth allocation and quay crane scheduling problems in container terminals . Eur. J. Oper. Res. , 202 , 615 – 627 . Google Scholar Crossref Search ADS Bierwirth , C. & Meisel , F. ( 2015 ) A follow-up survey of berth allocation and quay crane scheduling problems in container terminals . Eur. J. Oper. Res. , 244 , 675 – 689 . Google Scholar Crossref Search ADS Carlo Héctor , J. , Vis Iris , F. A. & Roodbergen , K. J. ( 2014a ) Storage yard operations in container terminals: literature overview, trends, and research directions . Eur. J. Oper. Res. , 235 , 412 – 430 . Google Scholar Crossref Search ADS Carlo Héctor , J. , Vis Iris , F. A. & Roodbergen , K. J . ( 2014b ) Transport operations in container terminals: literature overview, trends, research directions and classification scheme . Eur. J. Oper. Res. , 236 , 1 – 13 . Google Scholar Crossref Search ADS Carlo Héctor , J. , Vis Iris , F. A. & Roodbergen , K. J. ( 2015 ) Seaside operations in container terminals: literature overview, trends, and research directions . Flex. Serv. Manuf. J. , 27 , 224 – 262 . Google Scholar Crossref Search ADS Chiarandini , M. , Dumitrescu , I. & Stützle , T. ( 2008 ) Very large-scale neighborhood search: overview and case studies on coloring problems . Hybrid Metaheuristics . Berlin Heidelberg : Springer , pp. 117 – 150 . Eberhart , R. C. & Shi , Y. ( 2002 ) Comparing inertia weights and constriction factors in particle swarm optimization . Proceedings of the 2000 Congress on Evolutionary Computation (La Jolla, CA, USA, USA), vol. 1. Washington, DC, USA : IEEE Press , pp. 84 – 88 . Han , X. L. , Lu , Z. Q. & Xi , L. F. ( 2010 ) A proactive approach for simultaneous berth and quay crane scheduling problem with stochastic arrival and handling time . Eur. J. Oper. Res. , 207 , 1327 – 1340 . Google Scholar Crossref Search ADS Jiang , X. J. , Chew , E. P. & Lee , L. H. ( 2013 ) Flexible space-sharing strategy for storage yard management in a transshipment hub port . OR Spectrum , 35 , 417 – 439 . Google Scholar Crossref Search ADS Jiang , X. J. & Jin , J. G. ( 2017 ) A branch-and-price method for integrated yard crane deployment and container allocation in transshipment yards . Transport. Res. B Meth. , 98 , 62 – 75 . Google Scholar Crossref Search ADS Jin , J. G. , Derhorng , L. & Cao , J. X. ( 2014 ) Storage yard management in maritime container terminals . Transport. Sci. , 4 , 1300 – 1313 . Jin , J. G. , Lee , D. H. & Hu , H. ( 2015 ) Tactical berth and yard template design at container transshipment terminals: a column generation based approach . Transport. Res. E , 73 , 168 – 184 . Google Scholar Crossref Search ADS Kennedy , J & Eberhart , R. ( 1995 ) Particle swarm optimization . IEEE International Conference on Neural Networks (Perth, WA, Australia, Australia) . Washington, DC, USA : IEEE Press , Vol. 4 , pp. 1942 – 1948 . Kim , K. H. & Kang , T. P. ( 2003 ) A note on a dynamic space-allocation method for outbound containers . Eur. J. Oper. Res. , 148 , 92 – 101 . Google Scholar Crossref Search ADS Kim , K. H. & Kim , H. B. ( 2002 ) The optimal sizing of the storage space and handling facilities for import containers . Transport. Res. B Meth. , 36 , 821 – 835 . Google Scholar Crossref Search ADS Kim , K. H. & Park , Y. M. ( 2004 ) A crane scheduling method for port container terminals . Eur. J. Oper. Res. , 156 , 752 – 768 . Google Scholar Crossref Search ADS Lee , D. H. , Jin , J. G. & Chen , J. H. ( 2012 ) Terminal and yard allocation problem for a container transshipment hub with multiple terminals . Transport. Res. E , 48 , 516 – 528 . Google Scholar Crossref Search ADS Liang , C. , Huang , Y. & Yang , Y. ( 2009 ) A quay crane dynamic scheduling problem by hybrid evolutionary algorithm for berth allocation planning . Comput. Ind. Eng. , 56 , 1021 – 1028 . Google Scholar Crossref Search ADS Lim , A. , Rodrigues , B. & Xiao , F. ( 2010 ) Crane scheduling with spatial constraints: mathematical model and solving approaches . Naval Res. Logist. , 51 , 386 – 406 . Google Scholar Crossref Search ADS Liu , M ( 2015 ) Optimal algorithm for the general quay crane double-cycling problem . Transport. Sci. , 49 , 957 – 967 . Google Scholar Crossref Search ADS Meisel , F. ( 2011 ) The quay crane scheduling problem with time windows . Naval Res. Logist. , 58 , 619 – 636 . Google Scholar Crossref Search ADS Meisel , F. & Bierwirth , C. ( 2013 ) A framework for integrated berth allocation and crane operations planning in sea port container terminals . Transport. Sci. , 47 , 131 – 147 . Google Scholar Crossref Search ADS Meng , Q. , Wang , S. , Andersson , H. & Thun , K. ( 2014 ) Containership routing and scheduling in liner shipping: overview and future research directions . Transport. Sci. 48 , 265 – 280 . Google Scholar Crossref Search ADS Moccia , L. , Cordeau , J. F. , Gaudioso , M. & Laporte , G. ( 2006 ) A branch-and-cut algorithm for the quay crane scheduling problem in a container terminal . Naval Res. Logist. , 53 , 45 – 59 . Google Scholar Crossref Search ADS Moccia , L. , Cordeau , J. F. , Monaco , M. F. & Sammarra , M. ( 2009 ) A column generation heuristic for a dynamic generalized assignment problem . Comput. Oper. Res. , 36 , 2670 – 2681 . Google Scholar Crossref Search ADS Pinedo , M. ( 2002 ) Scheduling–Theory Algorithms and Systems , 2nd edn . Englewood Cliffs, NJ : Prentice-Hall . Poli , R. , Kennedy , J. & Blackwell , T. ( 2007 ) Particle swarm optimization: an overview . Swarm Intell. , 1 , 33 – 57 . Google Scholar Crossref Search ADS Sammarra , M. , Cordeau , J. F. , Laporte , G. & Monaco , M. F. ( 2007 ) A tabu search heuristic for the quay crane scheduling problem . J. Sched. , 10 , 327 – 336 . Google Scholar Crossref Search ADS Sharif , O. & Huynh , N. ( 2013 ) Storage space allocation at marine container terminals using ant-based control . Expert Syst. Appl. , 40 , 2323 – 2330 . Google Scholar Crossref Search ADS Steenken , D. , Voß , S. & Stahlbock , R. ( 2004 ) Container terminal operation and operations research—a classification and literature review . OR Spectrum , 26 , 3 – 49 . Google Scholar Crossref Search ADS Sun , Z. , Tan , K. C. & Lee , L. H. ( 2013 ) Design and evaluation of mega container terminal configurations: an integrated simulation framework . Simulation , 89 , 684 – 692 . Google Scholar Crossref Search ADS Tang , L. X. , Zhao , J. & Liu , J. ( 2014 ) Modeling and solution of the joint quay crane and truck scheduling problem . Eur. J. Oper. Res. , 236 , 978 – 990 . Google Scholar Crossref Search ADS Tavakkoli-Moghaddam , R. , Makui , A. & Taheri , F. ( 2009 ) An efficient algorithm for solving a new mathematical model for a quay crane scheduling problem in container ports . Comput. Ind. Eng. , 56 , 241 –248. Google Scholar Crossref Search ADS Vis , I. F. A. & Koster , R. D. ( 2003 ) Transshipment of containers at a container terminal: an overview . Eur. J. Oper. Res. , 147 , 1 – 16 . Google Scholar Crossref Search ADS Wang , Y. & Kim , K. H. ( 2011 ) A quay crane scheduling algorithm considering the workload of yard cranes in a container yard . J. Intell. Manuf. , 22 , 459 – 470 . Google Scholar Crossref Search ADS Xie , X. F. , Zhang , W. J. & Yang Z. L. ( 2003 ). Overview of particle swarm optimization. Control Decis. , 18 , 129 – 134 . Yang C. , Wang X. & Li Z. ( 2012 ) An optimization approach for coupling problem of berth allocation and quay crane assignment in container terminal . Comput. Ind. Eng. , 63 , 243 – 253 . Google Scholar Crossref Search ADS Zhang , H. & Kim , K. H. ( 2009 ) Maximizing the number of dual-cycle operations of quay cranes in container terminals . Comput. Ind. Eng. , 56 , 979 – 992 . Google Scholar Crossref Search ADS Zhen , L. ( 2015 ) Tactical berth allocation under uncertainty . Eur. J. Oper. Res. , 247 , 928 – 944 . Google Scholar Crossref Search ADS Zhen , L. ( 2016 ) Modeling of yard congestion and optimization of yard template in container ports . Transport. Res. B , 90 , 83 – 104 . Google Scholar Crossref Search ADS Zhen , L. , Chew , E. P. & Lee , L. H. ( 2011 ) An integrated model for berth template and yard template planning in transshipment hubs . Transport. Sci. , 45 , 483 – 504 . Google Scholar Crossref Search ADS Zhen , L. & Wang , K. ( 2015 ) A stochastic programming model for multi-product oriented multi-channel component replenishment . Comput. Oper. Res. , 60 , 79 – 90 . Google Scholar Crossref Search ADS Zhen , L. , Xu , Z. , Wang , K. & Ding , Y. ( 2016 ) Multi-period yard template planning in container terminals . Transport. Res. B , 93 , 700 – 719 . Google Scholar Crossref Search ADS Appendix The PMTB procedure Step 1: Find the most time-consuming bay. According to the index of the most time-consuming bay, we assign the corresponding QC to operate this bay preferentially. For example, in the case of 6 bays, if the index of the most time-consuming bay is 1 or 2, 3 or 4 or 5 or 6, then the QC 1, 2 or 3 should be assigned to operate this bay. Step 2: Determine the allocations of other QCs. According to the allocation of the most time-consuming bay, other QCs are allocated to the bays that are at a safe distance from the most time-consuming bay. Step 3: Determine the operation sequence for each QC. If we determine the allocation of all QCs, we operate the corresponding bays from top to bottom and we need to ensure that after unloading all containers, a QC can start the loading operation in the same bay. Step 4: Determine the block allocation for each container group. Disregarding the travel time of trucks from the ship to this block, we choose the blocks from the candidate blocks of each container group as long as the maximum available storage capacity and the maximum handling capacity of this block are sufficient. © The Author(s) 2018. Published by Oxford University Press on behalf of the Institute of Mathematics and its Applications. All rights reserved. This article is published and distributed under the terms of the Oxford University Press, Standard Journals Publication Model (https://academic.oup.com/journals/pages/open_access/funder_policies/chorus/standard_publication_model) TI - The Joint quay crane scheduling and block allocation problem in container terminals JO - IMA Journal of Management Mathematics DO - 10.1093/imaman/dpy013 DA - 2019-01-01 UR - https://www.deepdyve.com/lp/oxford-university-press/the-joint-quay-crane-scheduling-and-block-allocation-problem-in-AgMSme2Vks SP - 51 VL - 30 IS - 1 DP - DeepDyve ER -