An adaptive large neighborhood search heuristic for the multi-port continuous berth allocation problem
Abstract
In this paper, we study a problem that integrates the vessel scheduling problem with the berth allocation into a collaborative problem denoted as the multi-port continuous berth allocation problem (MCBAP). This problem optimizes the berth allocation of a set of ships simultaneously in multiple ports while also considering the sailing speed of ships between ports. Due to the highly combinatorial character of the problem, exact methods struggle to scale to large-size instances, which points to exploring heuristic methods. We present a mixed-integer problem formulation for the MCBAP and introduce an adaptive large neighborhood search (ALNS) algorithm enhanced with a local search procedure to solve it. The computational results highlight the method’s suitability for larger instances by providing high-quality solutions in short computational times. Practical insights indicate that the carriers’ and terminal operators’ operational costs are impacted in different ways by fuel prices, external ships at port, and the modeling of a continuous quay.
keywords:
OR in maritime industry , Container terminal , Berth allocation problem , Speed Optimization , Heuristics1 Introduction
The liner shipping industry is one of the major forms of international freight transportation. According to the report by [41], seaborne trade and container throughput continued growing steadily until 2019. Despite the Covid disruption during 2020, maritime trade is projected to recover and expand by 4.3 % in 2021. The report also highlights that the world fleet is increasing, not only in the number of ships (more than 3 % in 2021) but also in size. The share of the total capacity carried by mega-vessels increased from 6 % to 40 % in the last ten years.
This increase in demand, together with IMO’s goal of reducing shipping emissions by 50 % by 2050 [22], requires container terminals to increase capacity and improve the efficiency and sustainability of their operations. The current growth of the vessel fleet and size directly impacts one of the most critical container terminal operations, namely the berth allocation [39]. Mathematically, this problem is denoted as the Berth Allocation Problem (BAP), which aims to assign incoming ships to berthing positions. The BAP can assume the quay to be discrete or continuous. In the discrete version, the quay is divided into positions where each can be occupied by one ship at a time. In the continuous BAP, ships can berth at any point in the quay while respecting a safe distance from other ships. Furthermore, the BAP can be dynamic or static. The static BAP assumes all the ships to be already at the port when the planning is done, whereas, in the dynamic version, ships can arrive at the port at different times during the planning period. It should be noted that the dynamic BAP is still a deterministic problem. The term dynamic refers to the different arrival times of each ship and not to the nature of the problem [8] like in, for example, vehicle routing problems.

Figure 1 shows an example solution of the continuous and dynamic BAP.
Terminals optimize their berth allocation to minimize their operational costs and the time ships need to spend at the port, including waiting time, handling time, and any delays. Due to the fierce competition between container terminals, they do not tend to share more information than is strictly required and do the planning independently from other terminals. One potential problem is that if congestion arises in a port, the affected ships can easily propagate delays to the following ports in their routes. One way to reduce the delay is for vessels to speed up when sailing between ports. However, sailing faster results in higher fuel consumption. This type of decision-making can be addressed by shipping line companies (i.e., carriers) in the Vessel Scheduling Problem (VSP). The goal of the VSP is to optimize the sailing speeds between consecutive ports in the vessel’s route (i.e., voyage legs). Most VSP studies aim to minimize the vessels’ fuel consumption, turnaround time at the port, and the number of vessels needed to ensure a given route frequency. However, the VSP has its limitations. One of them is the simplistic way of modeling the berthing times of ships at port. Whereas some studies model a simplified version of berth allocation, most do not include it. Not integrating the BAP into the VSP can lead to an unrealistic or even infeasible berth allocation and, as a result, delays that ships can propagate.
A problem that integrates the berth allocation with the vessels’ speed optimization was first introduced by [42] as the Multi-port Berth Allocation Problem (MBAP). This problem selects a set of ships and a set of ports that are part of their routes and simultaneously optimizes the berth allocation at all the ports, together with the sailing time between ports. [42] studied the version of the problem with a discrete set of berthing positions. The problem involves the joint optimization of carrier and terminal operations and relies on the a priori agreement of the vessels and ports involved. [32] showed that this type of collaboration could generate cost savings for the players involved (i.e., shipping carriers and terminal operators) but also benefit the environment as fuel emissions can be reduced significantly.
As mentioned earlier in this section, the main difference between the continuous and the discrete BAP is the flexibility in the berthing positions. The set of berthing positions in the discrete BAP corresponds to a subset of those from the continuous BAP. Therefore, one can argue that modeling the quay as continuous can lead to a more resource-efficient plan, as the optimal solution of the continuous BAP is equal to or better than that of the discrete BAP. However, this potential increase in solution quality comes at the expense of higher complexity, as the solution space becomes considerably larger.
[31] studied the MBAP with a continuous quay (MCBAP) and highlighted the additional complexity, as the method proposed cannot scale to large instances. This scalability issue is addressed in our study, where we employ heuristic methods that can tackle large real-world instances.
This paper makes the following four contributions:
-
1.
We define a new mixed-integer problem (MIP) formulation for the MCBAP.
-
2.
We present an instance generator for the MCBAP based on real-world port data, and define a set of benchmark instances that are made publically available.
-
3.
We implement an adaptive large neighborhood search (ALNS) method tailored to the MCBAP and enhance it with a Local Search (LS) procedure based on ejection chains.
-
4.
We show the viability of the ALNS method on real-size instances where it is able to find high-quality solutions faster than baseline commercial solvers.
The remainder of this paper is structured as follows. Section 2 comprises an extensive literature review of the MBAP together with other collaborative problems that include berth allocation or vessel scheduling. Section 3 describes the MCBAP in detail and presents the MIP formulation. The solution method is described in Section 4. Section 5 includes the instance generator’s details and the computational study. The conclusions and further research is summarized in Section 6.
2 Literature review
One of the most important problems in a container terminal is the BAP, which has been studied extensively for over two decades. A survey of most of these studies is compiled in surveys by [6] and [4]. [28] presented one of the first formulations of the problem and showed that it is NP-hard. Due to the additional hardness involving the BAP variant with a continuous quay, the use of heuristic methods has been predominant in the literature. The first studies of the continuous BAP were by [25] and [21], where they presented MIP formulations to the problem and solved it using heuristic and meta-heuristic algorithms such as simulated annealing. [8] covered both the discrete and continuous BAP and solved them using a taboo search. [18] presented both a composite heuristic and a tree search exact method and showed that both outperformed commercial solvers. A hybrid variant between the continuous and discrete BAP was studied in [26], where ships can only berth in a subset of positions. Heuristic methods have been widely used when integrating the BAP with other terminal operations. One of the main problems studied is the berth allocation and quay crane assignment problem [23]. [24] present a mixed integer problem formulation with additional enhancements and implement an ALNS heuristic to solve it, whereas [7] uses a variable neighborhood search heuristic.
The VSP has also attracted significant attention in the literature. [13] present a comprehensive survey about the problem and highlight the potential of collaboration and information sharing as one of the future research directions. To the best of our knowledge, [15] presented the first formulation of the VSP. Negotiating the port calls with the terminal operator [10] indicates that carriers and terminal operators can achieve significant savings. A collaborative version of the VSP is presented by [11], where terminal operators offer different port call durations and handling rates, leading to win-win situations. [16] aim at minimizing fuel consumption by optimizing the speed in a shipping route and modeling it as a shortest path problem. The authors discretize the possible arrival times at each port to approximate the non-linear relation between fuel consumption and sailing speed. [9] and [40] integrate vessel speed optimization and berth allocation by considering ships within a certain sailing distance from the port.
In the last decade, together with the increased access to data, the study of problems that require collaboration between different stakeholders (e.g., carriers and terminal operators) has become more relevant. [43] present two collaborative mechanisms that encourage sharing accurate information between carriers and terminal operators. [27] study the discrete BAP and present a cooperative search based on a grouping strategy where group members can only share information within the group. The collaborative berth allocation problem (CBAP) was introduced by [12] where a terminal planning its berth allocation can divert excessive demand to other terminals. [20] present an ALNS heuristic for the port scheduling problem (PSP), where the aim is to schedule feeder vessels in multi-terminal ports. Collaboration has also been studied in disruption management. [29] present a formulation for re-planning the berth allocation and quay crane assignment and propose a heuristic method to solve it. [19] study the berth assignment and allocation problem, which integrates the BAP with the berth assignment and line clustering problem. The first formulation of the MBAP was first introduced by [42]. It solved a dynamic and discrete BAP in multiple ports while optimizing ships’ sailing speed between ports. [32] presented a branch-and-price method for the same problem and conducted a study of the collaboration mechanism using cooperative game theory. [31] extended the branch-and-price method to the MBAP with a continuous quay, the same problem of this study, and showed that exact methods are competitive for small and medium size instances but struggle to scale for larger instances. Recently, [44] presented a genetic algorithm to solve a problem that integrates the BAP with speed optimization and vessel service differentiation to address both vertical and horizontal collaborations.
3 Problem description
The MCBAP integrates operational aspects concerning terminal operators and shipping carriers. We consider a set of ships and a set of terminals, each of them in a different port, to optimize their operations. Each ship visits all or a subset of the ports as a part of its route. The ships may visit the ports in different orders. The aim of the problem is to determine the berthing position and time of the ships at each of the terminals visited. Each terminal has a limited berthing space, given by the length of the quay. The service time required to load and unload the vessel is denoted as handling time and depends on the berthing position. We assume that it increases linearly with the deviation from an ideal position. Similar to most BAP studies, the berthing time and positions of ships are subject to a set of restrictions. Ships have a time window to be serviced also known as a port call, this is planned in advance and helps the operator to allocate berthing capacity and avoid excessive congestion. To allow for delays, the end of the time window is not strict but delays are penalized as they require the use of unexpected resources such as more worker hours.
It is well known that the relation between sailing speed and fuel consumption is non-linear. In fact, this relation is often approximated with a cubic function as in Equation (1) [42, 32]
(1) |
where is the sailing speed, is the design speed of the ship, and is the fuel consumption at the design speed. For our formulation, we discretize the set of possible sailing speeds and assume ships will sail the distance between ports at one of those speeds. Given the set of feasible sailing speeds, we can compute the corresponding set of fuel consumption rates. This assumption ensures a linear formulation of the problem.

Figure 2 shows an example graphical representation of the problem, highlighting the main operational aspects of a ship (i.e., ship 1). The ship berths strictly after its earliest start time but, due to the long handling time associated with the berthing position, the service time concludes after the expected finish time. The service time after the expected finish time is computed as a delay. After the ship is serviced, it can depart towards the next port. At the time of arrival, the quay is occupied, and the ship needs to wait until ship number 3 finishes its berthing period. The time window this time is long enough to account for the waiting time, and the ship is able to finish without a delay.
3.1 MIP formulation
We present a new MIP formulation for the MCBAP. This formulation is based on the one for the continuous BAP from [25] and the one for the discrete MBAP from [42]:
Sets and parameters:
Set of all ships berthing at any of the ports. | |
Set of ships that we are optimizing. | |
Set of external ships which are considered fixed. | |
Set of ports. | |
Set of speeds. | |
Length of quay in port . | |
Set of ports planned to be visited by ship sorted in visiting order. | |
Set of port calls for ship , one for each port visit. is the last port visit, and the value is equal to the number of port calls. | |
The port corresponding to port visit for ship . | |
Set of ships that visit port . | |
Port call positions of ship visiting port . | |
The ideal berthing position for ship at port visit measured at the leftmost position of the ship. | |
The earliest start time of berthing for ship at port visit . | |
The expected finish time of berthing for ship at port visit . | |
The latest finish time of berthing for ship at port visit . | |
The relative increase in handling time per unit of distance from the ideal berthing position. | |
Distance between ports . | |
Travel time per unit of distance at speed . | |
Fuel consumption per unit of distance at speed for ship . | |
Length of ship . | |
Fuel cost in USD per tonne. | |
Cost handling time in USD per hour. | |
Cost of delay time in USD per hour. | |
Cost of waiting time in USD per hour. | |
Cost penalty of exceeding the latest finish time in USD. |
Decision variables:
the leftmost position of ship at the quay for port visit . | |
the start time of berthing of ship at port visit . | |
1 if speed is chosen by ship to sail between port visits and ; . | |
delay over for ship at port visit . | |
delay over for ship at port visit . |
Auxiliary variables:
1 if ship is positioned left of vessel in the quay space at port visit and port visit at port , 0 otherwise; . | |
1 if ship finishes berthing before vessel starts berthing at port visit and port visit at port , 0 otherwise; . | |
distance between ideal and actual berthing position of ship at port visit . |
Dependent variables:
arrival time of ship at port visit . | |
handling time of ship at port visit . |
(2) |
(3) | ||||
(4) | ||||
(5) | ||||
(6) | ||||
(7) | ||||
(8) | ||||
(9) | ||||
(10) | ||||
(11) | ||||
(12) | ||||
(13) | ||||
(14) | ||||
(15) | ||||
(16) | ||||
(17) | ||||
(18) | ||||
(19) |
The set of external ships is considered fixed. Therefore, the corresponding set of decision variables for ships are constant and given as input to the problem.
The objective function (2) minimizes the operational costs of the carriers and terminal operators. This is measured as a weighted sum of the waiting time cost, handling time cost, delay cost, and fuel consumption cost. Constraints (3) ensure that each ship berths within the available space. Constraints (4) and (5) define the relative position of each pair of ships in each dimension by enabling the auxiliary variables and . The M value can be limited to the latest finish time of the pair of ships. Constraints (6) ensure that berthing periods do not overlap in time and space. Constraints (7) compute the arrival time to a port based on the sailing speed chosen to travel from the previous port. Constraints (8) and (9) enforce that the berthing starts strictly after arrival at port and after the time window starts, respectively. Constraints (10) compute the delay if the expected finish time is exceeded and constraints (11) define if the last finish time is respected. Constraints (12) compute the handling time for each ship and port visit while constraints (13) and (14) compute the deviation from the preferred berthing position. Finally. constraints (15) ensure that only one speed is chosen to sail between ports, and constraints (16) - (19) define the domain of the decision variables.
4 Solution method
To solve (2)-(19) we present an Adaptive Large Neighborhood Search (ALNS) algorithm. The ALNS algorithm, introduced by [36], extends the large neighborhood search method by [37]. At each iteration, the method partially destroys and reconstructs a solution to generate a new solution. In our case, to destroy part of a solution, we remove the berthing time and locations of a subset of ships at a subset of ports. The combination of a scheduled berthing time and position for a ship at one of the ports in its route is denoted as a port visit, and we will refer to this term frequently in the remainder of the paper. Additionally, in some cases, we will refer to the scheduled port visit as a rectangle, in reference to how we can depict berthing position and time in a time-space diagram (e.g., see Figure 2).
4.1 Construction heuristic
The ALNS requires an initial solution to start with. We present a construction heuristic process for this step that aims at finding a good initial solution. Note that the BAP can be seen as a two-dimensional packing problem. However, in the continuous berth setting, the BAP has the increased complexity that the length of the rectangles (i.e., port visits) vary depending on the berthing location in the quay. In the case of the MCBAP, we are solving multiple continuous BAP problems with the additional constraint that some of those berthing times depend on a sailing time. Moreover, the fact that ships follow different routes complicates the problem as greedy approaches become harder to apply. Our construction method prioritizes reducing the delay of ships at ports. We approach this by (i) trying to place port visits early in time and close to their ideal space, therefore reducing the handling time, and (ii) by reducing ”useless” space, or, in other words, placing port visits efficiently not to create empty spots in the decision space that cannot be filled by remaining port visit. Notice that any possible solution is mathematically feasible since we allow it to exceed the latest finish time, and the time horizon is not limited. However, we aim to construct solutions where none of the ships exceed the as those can be perceived as infeasible by the port operators and are also heavily penalized. The method acts as a greedy heuristic, where we schedule one port visit at a time. The port visit to schedule is selected as the most constrained one. To find it, we compute the set of feasible berthing positions and times for each ship and port visit. We consider a finite set of positions and times by dividing the quay into segments of a given length (e.g., 10 meters) and the planning horizon into intervals of 1 hour. For each time instant and segment, we compute if the ship can berth starting at that time and with its left-most side starting at the segment. We do not count berthing times exceeding the latest finish time to measure how constrained a ship’s port visit is. From all unscheduled port visits, we define the one with the fewest possible positions as the most constrained one. We then schedule the port visit in one of the feasible positions. In fact, we do not consider the entire set but only the subset of feasible positions, where the port visit rectangle is directly adjacent to another scheduled port visit or to the limits of the decision space (i.e., the limit of the quay or planning horizon). From this subset of positions, we select the one resulting in the minimal change to the objective function. Besides the handling and delay cost directly computed when scheduling the port visit, we need to compute fuel consumption and waiting time costs. We consider these only if the previous port visit of the ship is scheduled.
Once a port visit is scheduled, we repeat the computation and selection of the most constrained unscheduled port visit and schedule it at the least costly efficient position. The procedure is described in Algorithm 1.
4.2 Removal and insertion operators
The goal of a removal operator is to select a set of scheduled port visits to be removed from the current solution. All the operators presented in this paper select number of assignments to be removed, computed as a percentage of the total number of port visits to be scheduled. It should be noted that removing port visits that are totally unrelated does not provide any potential gain. Therefore, a removal operator should aim at removing assignments that are related.
After applying a removal operator, the partial solution has missing port visits that need to be scheduled. They need to be assigned efficiently while respecting the other assignments and ensuring that the solution remains feasible. This is the goal of the insertion operators.
4.2.1 Shaw removal
This operator, first introduced by [37], selects the most related pairs of assignments. To select them, we define a measure of relatedness between assignments and in equation 20, similar to the one presented in [24].
(20) |
where and are the berthing positions, berthing start time, and berthing end time of assignment , respectively. , and are custom parameters that define the importance of each of the aspects. Observe that a lower value of translates into a higher level of relatedness. To select a total of assignments, we select them following a greedy randomized criterion. To introduce randomness in the selection of the assignments, we define a parameter . We sort all the port visit pairs in increasing order of and store them in the list . We then select the -th element of the list applying Equation (21):
(21) |
where is a random number . Note that if , the selection is completely random, but as the value of increases, the resulting value has a more deterministic behavior. The element selected will consist of two port visits to be removed. The selection process continues until port visits are removed. Note that this method differs from the original method from [37] in that the subsequent pairs do not necessarily need to be related with the first pair selected.
4.2.2 Time and space-relatedness removal
This removal uses a different relatedness measure. We first sort all port visits by cost. The cost of port visit for ship is defined in Equation (22). It is measured by the ship’s waiting, handling, and delay time at the port visit, plus half of the fueling costs from sailing from the previous port (if any) and to the next port (if any).
(22) |
is the fuel costs associated with the previous and next port visits if any. For example, if the ship sails from a previous port visit to port visit , and then continues to the next port visit , then the fuel costs are computed as in Equation (23).
(23) |
In the case that port visit is the first or last port visit in the route for the ship, the corresponding missing sailing leg is removed from the fuel cost computation.
We then select the th most expensive assignment applying Equation (21) and remove all neighbor assignments. We define as neighbors all the assignments that are within a distance of the assignment. We consider the distance in both time and space. If an assignment is depicted as a rectangle in a time-space diagram of the port, the neighbor area represents the one that overlaps in time or space with it. All other assignments that overlap partially or completely with the neighbor area are considered neighbors and removed. We then select the most expensive assignment and remove all neighbor assignments. We repeat the process until assignments are removed.


Figure 3 shows an example of neighbor port visits in time and space. Depending on the dimension considered we define the two removal operators as cost-time removal and cost-space removal.
4.2.3 Random removal
We also consider a fully randomized destroy operator. It randomly selects assignments to be removed. The goal of this operator is not to select relevant port visits to remove but rather to help diversify the search.
4.2.4 Randomized greedy insertion
This method follows the same procedure as the construction heuristic with the addition of a randomized component when selecting the port visit to schedule at each step.
All unplanned port visits are sorted based on the number of available insertion positions. An available insertion position is one that maintains a feasible solution. For instance, the port visit needs to ensure that the previous, or following port visits, are connected through a feasible sailing speed if any of these are already scheduled. We select the port visit using a randomization parameter in the same way that is used in Equation 21. This prioritizes the port visits with fewer available insertion positions. The selected port visit is scheduled in the position that increases the objective function the least (i.e., lowest cost). The process iterates by recalculating the new number of insertion positions for the remaining port visits.
4.2.5 -regret insertion
This insertion method is based on the regret-k heuristic presented in [34]. This method has an additional look-ahead component compared to a basic greedy heuristic. For each of the port visits, we compute the best scheduling positions, and we then measure the regret cost for each of them as the difference between the best and -best positions. The one with the highest regret cost becomes the next port visit to plan. The process is described in Algorithm 2.
4.2.6 Packing greedy insertion
This insertion method is similar to the randomized greedy insertion described in Section 4.2.4. The main difference is the position where the port visits are planned. Scheduling the port visits in a position with lower objective value can lead to the creation of empty spaces and, therefore, to inefficient use of the decision space. This method restricts the set of possible insertion positions to the ones strictly adjacent to other scheduled ships, or to the limits of the quay or planning horizon.

By strictly adjacent, we mean that the port visit to schedule needs to berth strictly next to another ship during at least one interval of time (e.g., one hour) or berth strictly before (or after) another ship with at least one quay segment in common. Also, we consider berthing positions where one of the sides is at one end of the quay, or if the berthing period starts or ends at the earliest and latest possible berthing time, respectively. Figure 4 shows some example positions considered.
4.2.7 Arrival greedy insertion
This method is identical to the one presented in Section 4.2.4 with the only difference that instead of sorting the unplanned port visits by increasing the number of feasible insertion positions, we sort the unplanned port visits by the earliest possible arrival time. One of the main goals of this method is to schedule port visits earlier, at the expense of a potentially higher cost, in order to increase the number of possible insertion positions for the remaining unplanned port visits.
4.3 Acceptance criterion
Once a new solution is reconstructed, we either accept it as the new current solution or reject it and reuse the previous one. We use a simulated annealing (SA) based criterion to take this decision. Such an acceptance criterion has been widely used for ALNS studies (see e.g.[36] and [24]). We accept the new solution over the current one if it is better (), or if it is worse with a probability , where is the current temperature at a particular iteration, and is the objective function. We define an starting an ending temperature, and respectively, and the cooling time that defines the duration of going from to . Based on these parameters, we can define the cooling factor (), by isolating it from the formula . This cooling factor allows us to compute the temperature at any given instant. Given temperature at iteration , we find the temperature to be used at iteration by computing , where is the duration of the iteration . Following the strategy used in [24], we compute and based on the cost of the initial solution described in Section 4.1, where and define the percentage of the cost used to compute and .
4.4 Adaptive weight adjustment
One of the main differences between the ALNS method and the standard Large Neighborhood Search (LNS) is the adaptive component of the former. The performance of the employed removal and insertion operators is measured at each iteration. These measures are then used to update the weight and, therefore, the probability of choosing the respective methods. The most common way of measuring the performance of a method is to give it a different score depending on the quality of the solution. In our case, we define four reward categories as shown in Table 1.
Category | Parameter |
---|---|
Current best solution | |
Better than current solution | |
Not better but accepted solution | |
Rejected solution |
Let and denote the set of insertion and removal operators. Each removal and insertion method has a probability respectively of being selected at each iteration. Throughout the algorithm run, the probability of selecting these methods gets updated depending on their performance. In our study, we update the probabilities after a time interval. During these iterations we accumulate the sum of rewards for each method, and update the weight of each method as indicated in Equation 24
(24) |
where is a parameter between 0 and 1 that denotes the degree of adaptability of the method. If , the weight remains equal to the previous one. This means that each method would have the same probability throughout the entire algorithm run, behaving like an LNS with multiple neighborhoods. If , the new operator’s probability solely depends on the score achieved during the last and not on previous scores. It is common to use an intermediate value for strictly between 0 and 1. Once the weights are updated, the probability of each repair method and destroy method can be computed as indicated in Equation (25).
(25) |
4.5 Local search
An extension of the method is implemented where we perform a local search procedure after reconstructing a new solution. This step aims to incrementally improve the solution by testing small adjustments to the port visits.




The procedure is based on the ejection chains strategy used in many routing and network-based problems (see [17, 35, 5]). The idea, in our case, is to perturbate the solution by re-planning a port visit to a better position (i.e., lower operational cost) and iteratively re-plan any port visits that conflict with the change. The chain of perturbations is limited to a maximum number of port visits to re-plan , and it terminates if this limit is reached or if a conflict-free solution is achieved. Figure 5 shows an example of this move. Note that the handling time (i.e., the vertical dimension of the port visitsships) is reduced or increased for the ships as their position changes with respect to their ideal position. A pseudo-code of the procedure is described in Algorithm 3.
The function performs the perturbation for a given port visit (i.e., ship at port ). It should be noted that the direction is given by the first perturbation made. To find the direction of the first perturbation, we compute the cost variation of moving the port visit in three directions: (i) one segment length towards the ideal position along the spatial axis, and (ii) one time instant earlier and (iii) one time instant later along the temporal axis. The direction in the spatial axis is checked if the port visit is not scheduled already at its ideal position. Once the perturbation is performed in the chosen direction, the following port visits in conflict are perturbed in the same direction.
A high value of increases the probability of finding a better solution and the number of operations to compute. The parameter should leverage both solution quality and low computational complexity. Therefore, we define the value of to depend on the number of instances ships and equal to . The reason for is that for some movements, a conflicting port visit may require multiple perturbations to achieve a feasible new position, and selecting a lower value may be too restrictive.
4.6 Algorithm overview
The overview of the solution method is summarized in Algorithm 4. Due to the additional computational effort of the local search procedure, we do not execute it at each iteration. Instead, we only perform it if the reconstructed solution is better than the current one. This reduces the number of times that the local search is performed, allowing the algorithm to perform more iterations while at the same time filtering the times the local search is performed to those where we already have promising solutions.
5 Computational results
In this section, we first describe the generation process for the set of benchmark instances, and we then perform a computational study where we cover both the performance of the method and practical insights of the problem.
5.1 Instance generation
To the best of our knowledge, [31] is the only study on the MCBAP. The instances presented in the study are rather small and limited. Therefore, we develop a more comprehensive set of benchmark instances. In the absence of real-life data, one could extend current benchmarks instances of the continuous BAP to multiple ports. Instead, we decided to use the public access to port data [30], and we validated it with additional data from an industrial research partner to create an instance generator for the MBAP with a continuous quay.
We consider three different ship types: (i) feeders or small vessels with a length of up to 200 meters, (ii) medium-size vessels with a length between 200 and 300 meters, and (iii) large vessels longer than 300 meters. Each ship type has a different speed-fuel consumption relation. Moreover, we consider three terminals at the three main ports in the north sea: (i) Rotterdam APMT with a quay length of 1600 meters [3], (ii) Bremerhaven NTB, with a quay length of 1800 meters [2], and Hamburg EGH, with a quay measuring 2100 meters [14]. These three ports are relatively close to each other, and large, medium, and small vessels visit them in different sequences as part of their routes.
The duration of the vessel time window is based on the planned port call duration. The planned duration of a vessel’s port call can often be updated the days previous to the arrival time. Therefore, we establish a fixed point in time for each ship two weeks before the actual arrival time and retrieve the planned port call duration as the time difference between the estimated time of arrival (ETA) and the estimated time of departure (ETD). We compute this by averaging the planned port call duration for each port and ship type berthing in a period of three months (January-March 2021). This value is also used to define the minimum handling time (see Table 2). Port service times that exceed 48, 72, and 96 hours for small, medium, and large ship types, respectively, are categorized as outliers and removed from the dataset. The reason for this is that such long service times usually involve maintenance or fueling operations that are not usually performed on a regular basis. Thus, they are not part of the problem.
Ship type \Terminal | DEHAM | DEBRV | NLRTM |
---|---|---|---|
Feeder | 10.1 | 12.1 | 10.4 |
Medium | 18.0 | 21.8 | 18.4 |
Large | 41.0 | 33.7 | 26.7 |
We define six different ship patterns, each with a given route, type of ship, and length. All ships visit two or three ports in different orders. The ships for a given instance are sampled from the six patterns.
For each ship, we randomize the (i) desired berthing position at each port visited and (ii) the earliest start time , following parameters ensuring that feasible sailing times between ports exist. The estimated finish time is computed by adding the corresponding value from Table 2 to (). In addition, we compute the latest finish time by adding half of the difference between the minimum and maximum handling time that the ship can take at the port to ().
As input to the instance generator, we define the number of external ships at each port that are considered fixed. For each external ship, we randomly define: (i) the berthing position and time, (ii) the length (comprised between 180 and 330 meters), and (iii) the handling time, adapted to be proportional to the length of the vessel.
We assume the entire quay is available for berthing unless an external ship is occupying it. We also consider 10 different speed levels, ranging uniformly between 17-21.5 knots. The ALNS heuristic we present can handle any continuous value of the speed but not the MIP formulation we present. To ensure a fair comparison of the methods we employ a discretized set of speed levels in both the formulation and the solution method. Furthermore, the distance between ports is computed based on the actual sea distance of the routes.
5.1.1 Handling time
It is a general practice, especially on the discrete version of the BAP, to define a different handling time depending on the berthing position. For the continuous version implemented in this paper, we follow the handling time definition presented in [33] where deviations from a preferred berthing position are penalized using a deviation factor (relative increase in handling time per unit of distance, i.e., meters). Given the minimum handling time at the preferred berthing position and the actual deviation from the chosen position (measured in meters), the handling time is computed as follows:
(26) |
As a reference, the handling time ranges between 20 and 60 hours for medium vessels and between 30 and 110 hours for large ones. This is given by berthing at the best and worst places, respectively.
5.1.2 Time windows
In the MCBAP, there are two types of time windows:
-
1.
The time window for each ship at each visited port. This is given by the port call duration. The time window start must be respected, but the end can be exceeded. The berthing period can, therefore, exceed the end of the time window counting the additional time as a delay.
We also consider a time window end that defines the latest finish time (LFT). Ideally, this time window must be respected. However, we allow violating this time window by adding a very high penalty cost.
-
2.
The time window of the berthing positions. This time window can be seen as the operational hours of a given berthing position or segment of the quay. We assume that all berthing positions are available at any time. It should be noted that potential maintenance windows or partial closures of the quay can be modeled in the same way as an external ship occupying the given positions and time period.
5.1.3 Benchmark instances
Using the instance generator described in this section, we create a set of benchmark instances. The entire set comprises 240 instances. Each instance is a combination of the parameter values listed in Table 3: (i) a randomized seed, (ii) the number of ships to optimize, (iii) and the number of external fixed port visits per port, and (iv) the length of the quay segment used to define possible berthing positions.
Parameter | Seed |
|
|
|
||||||
---|---|---|---|---|---|---|---|---|---|---|
Values | 1-10 | 30, 50, 70 | 5, 10 | 10, 20, 40, 80 |
5.2 Parameter tuning
The ALNS algorithm has a total of 18 algorithm parameters. These include parameters used to calibrate the operators, the selection and acceptance criteria, and the weight of the scores for new solutions (see Table 4). To select the best value setting for the algorithm parameters we conducted a parameter tuning. We selected a subset of 12 instances that are representative of the entire set. For the tuning, we run the automatic algorithm configurator Pydgga [1] for the 30 generations with a time limit of 5 minutes for each ALNS run. The configurator allows to parallelize the process, and the entire parameter tuning lasted 8 hours. In Table 4, we define the domain of each algorithm parameter used for tuning and the found setting. The models and solution methods are written in Julia and run in a 2.90 GHz Intel Xeon Gold 6226R using one thread and 16 GB of RAM.
Symbol | Description | Min val | Max val | Tuned setting | ||
value used to compute the cooling ratio | 0.005 | 0.2 | 0.157 | |||
|
0.01 | 0.05 | 0.0246 | |||
|
0.00005 | 0.001 | 0.000269 | |||
|
0.3 | 0.6 | 0.326 | |||
weight for position deviation in shaw removal | 0.5 | 2 | 0.55 | |||
|
0.5 | 2 | 1.36 | |||
|
0.5 | 2 | 0.89 | |||
|
1 | 3 | 2.66 | |||
|
1 | 3 | 2.85 | |||
|
1 | 3 | 2.6 | |||
k-regret parameter | 2 | 4 | 2 | |||
|
0.01 | 0.05 | 0.017 | |||
|
0.3 | 0.7 | 0.456 | |||
score when finding a current best solution | 10 | 20 | 11 | |||
|
4 | 8 | 4 | |||
score when the solution is accepted | 1 | 3 | 2 | |||
score when the solution is rejected | - | - | 0 | |||
|
2 | 5 | 4.02 |
5.3 Method performance
To measure the quality of the method, we compare the presented method with its variants and with a baseline commercial solvers; CPLEX v12.10.
Table 5 compares the results between CPLEX and the ALNS method. We compute the objective gap for each instance run as where is the objective value of the best solution of the run, and is the best-known solution across all experiments. We have grouped all instances per number of ships, external ships, and distance between berthing positions. Each group contains 10 instances and is named X-Y-Z according to their common characteristics. X is the number of ships, Y is the number of external ships per port, and Z is the distance between consecutive positions considered in meters (i.e., segment length). Therefore, each row in the table corresponds to the average value across instances with different seed values. The ALNS is tested by running each instance 10 times and computing the average, best and worst run.
5 minutes | 1 hour | |||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
30_5_10 | 10.1 | 11.9 | 7.3 | 17.4 | 1.5 | 4.8 | 1.8 | 8.4 | ||||||||||||||||||
30_5_20 | 7.4 | 9.4 | 4.6 | 14.9 | 1.7 | 3.3 | 0.9 | 6.0 | ||||||||||||||||||
30_5_40 | 10.2 | 6.9 | 3.6 | 10.2 | 1.2 | 3.4 | 1.2 | 5.5 | ||||||||||||||||||
30_5_80 | 15.3 | 7.5 | 4.3 | 10.5 | 2.1 | 3.4 | 0.9 | 5.5 | ||||||||||||||||||
30_10_10 | 15.1 | 10.0 | 6.1 | 14.5 | 2.7 | 3.6 | 0.8 | 6.8 | ||||||||||||||||||
30_10_20 | 16.5 | 8.1 | 4.7 | 11.9 | 5.8 | 2.9 | 0.5 | 5.2 | ||||||||||||||||||
30_10_40 | 13.3 | 5.9 | 3.3 | 8.4 | 3.5 | 2.3 | 0.2 | 4.3 | ||||||||||||||||||
30_10_80 | 16.9 | 5.2 | 3.3 | 7.6 | 5.7 | 2.3 | 0.5 | 4.5 | ||||||||||||||||||
50_5_10 | 22.5 | 14.4 | 8.6 | 19.3 | 2.2 | 4.3 | 0.7 | 9.6 | ||||||||||||||||||
50_5_20 | 45.7 | 11.4 | 6.1 | 18.2 | 6.4 | 3.6 | 0.8 | 6.9 | ||||||||||||||||||
50_5_40 | 59.1 | 8.8 | 4.3 | 13.1 | 11.1 | 2.9 | 0.0 | 6.2 | ||||||||||||||||||
50_5_80 | 82.7 | 7.2 | 4.3 | 10.6 | 14.3 | 2.9 | 0.5 | 5.3 | ||||||||||||||||||
50_10_10 | 66.5 | 10.3 | 5.2 | 14.6 | 8.1 | 2.9 | 0.6 | 5.9 | ||||||||||||||||||
50_10_20 | 61.4 | 8.3 | 4.4 | 13.0 | 9.2 | 2.2 | 0.0 | 4.6 | ||||||||||||||||||
50_10_40 | 74.6 | 7.0 | 3.9 | 11.3 | 13.4 | 2.7 | 0.0 | 5.5 | ||||||||||||||||||
50_10_80 | 92.3 | 6.2 | 3.5 | 9.3 | 16.7 | 2.2 | 0.0 | 4.3 | ||||||||||||||||||
70_5_10 | 139.5 | 13.8 | 7.2 | 18.9 | 8.7 | 3.9 | 0.8 | 8.2 | ||||||||||||||||||
70_5_20 | 103.4 | 10.9 | 5.6 | 16.3 | 9.3 | 2.4 | 0.0 | 5.9 | ||||||||||||||||||
70_5_40 | 141.3 | 7.8 | 4.2 | 13.4 | 14.7 | 2.4 | 0.0 | 4.8 | ||||||||||||||||||
70_5_80 | 136.5 | 5.8 | 2.9 | 9.0 | 17.9 | 2.3 | 0.0 | 4.5 | ||||||||||||||||||
70_10_10 | 95.2 | 11.7 | 7.6 | 16.0 | 15.5 | 2.7 | 0.0 | 5.5 | ||||||||||||||||||
70_10_20 | 90.8 | 8.8 | 4.2 | 13.0 | 16.8 | 2.3 | 0.0 | 5.1 | ||||||||||||||||||
70_10_40 | 122.0 | 7.3 | 3.9 | 11.1 | 29.5 | 2.3 | 0.0 | 4.7 | ||||||||||||||||||
70_10_80 | 141.0 | 5.5 | 3.3 | 8.4 | 28.2 | 2.1 | 0.0 | 3.9 | ||||||||||||||||||
Average | 65.8 | 8.7 | 4.8 | 13.0 | 10.3 | 2.9 | 0.4 | 5.7 |
We observe that CPLEX scales poorly, especially in instances with more than 30 ships. The gap is better for the smallest instances but quickly worsens. On average, the ALNS method outperforms the commercial solver by achieving tighter gaps in most instances. The gap is an indicator of the method performance relative to each other but does not provide an optimality guarantee. The lower bounds obtained with CPLEX indicate a high optimality gap. This could be due to a low-quality solution or a poor lower bound. [32] indicated that the relaxation of the MIP formulation for the MBAP with a discrete quay could be poor and showed that a network-flow reformulation could tighten the relaxation significantly. As indicated in [31], network-flow formulations for the MCBAP can suffer from scalability but show that the relaxation is stronger. We compare the results from the branch-and-price method presented in [31] with the ALNS method. The formulation presented in [31] is slightly different from the one addressed in this paper. The formulation from [31] defines the latest finish time for each ship berthing at a port that must be satisfied. We have adapted the method from [31] to the formulation of this study. The branch-and-price method is based on a graph representation, and therefore, we need to establish the latest possible berthing time. This is set to 50 % more than the latest finish time. This allows the method to exceed the latest finish time while maintaining the graph at a reasonable size. This is a generous bound, and our empirical studies show that this bound does not affect the optimal solution. For that, we have also generated a new set of instances of similar size to the ones presented in [31] using the instance generator defined in Section 5.1.
Parameter | Seed |
|
|
|
||||||
---|---|---|---|---|---|---|---|---|---|---|
Values | 1-5 | 4-15 | 3-5 | 10, 20, 40, 80 |
The input parameters for the instance set are defined in Table 6. The entire set comprises 720 instances, one for each combination of input parameters. The results are shown in Table 7, where we have grouped the instances in batches of 60 according to the number of ships. We compare the branch-and-price method with the ALNS and MIP formulation presented in this study. For both the branch-and-price and CPLEX we compute their optimality gap, where we observe that the branch-and-price method achieves a better gap due to the tighter lower bound in most cases. We also compute the gap to the best-known solution for all three methods. In this case, we observe that CPLEX provides the best performance, showing that despite its poorer relaxation, the upper bounds found are near-optimal. The branch-and-price method still shows a robust performance but for short computational times and larger instances, the ALNS method is able to provide better solutions.
Number of ships |
|
|
|
|
|
|||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
5 min. | 1 hour | 5 min. | 1 hour | 5 min. | 1 hour | 5 min. | 1 hour | 5 min. | 1 hour | |||||||||||
4 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 | 0.0 | ||||||||||
5 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | ||||||||||
6 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.2 | 0.1 | ||||||||||
7 | 0.0 | 0.0 | 0.2 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.3 | 0.2 | ||||||||||
8 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.3 | 0.2 | ||||||||||
9 | 0.0 | 0.0 | 0.3 | 0.1 | 0.0 | 0.0 | 0.2 | 0.0 | 0.3 | 0.2 | ||||||||||
10 | 0.0 | 0.0 | 0.1 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.5 | 0.3 | ||||||||||
11 | 1.0 | 0.2 | 0.3 | 0.1 | 0.1 | 0.0 | 0.1 | 0.0 | 0.3 | 0.2 | ||||||||||
12 | 1.1 | 0.6 | 0.8 | 0.2 | 0.1 | 0.0 | 0.4 | 0.0 | 0.2 | 0.1 | ||||||||||
13 | 4.0 | 2.7 | 1.1 | 0.6 | 0.1 | 0.1 | 0.4 | 0.2 | 0.4 | 0.2 | ||||||||||
14 | 3.5 | 2.0 | 1.2 | 0.4 | 0.1 | 0.1 | 0.6 | 0.1 | 0.7 | 0.4 | ||||||||||
15 | 7.3 | 4.8 | 1.7 | 1.0 | 0.3 | 0.1 | 0.7 | 0.2 | 0.5 | 0.3 | ||||||||||
Average | 1.41 | 0.86 | 0.49 | 0.20 | 0.06 | 0.02 | 0.20 | 0.05 | 0.30 | 0.19 |
5 minutes | 1 hour | |||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
||||||||||||||||||
30_5_10 | 11.9 | 11.8 | 12.0 | 13.6 | 4.8 | 4.9 | 5.5 | 5.9 | ||||||||||||||||||
30_5_20 | 9.4 | 9.6 | 8.8 | 10.6 | 3.3 | 3.6 | 3.4 | 4.0 | ||||||||||||||||||
30_5_40 | 6.9 | 7.3 | 7.3 | 7.8 | 3.4 | 3.3 | 2.1 | 2.5 | ||||||||||||||||||
30_5_80 | 7.5 | 7.5 | 6.4 | 7.0 | 3.4 | 3.7 | 2.1 | 2.3 | ||||||||||||||||||
30_10_10 | 10.0 | 10.9 | 10.6 | 11.8 | 3.6 | 3.7 | 4.2 | 4.7 | ||||||||||||||||||
30_10_20 | 8.1 | 8.2 | 8.6 | 9.6 | 2.9 | 2.8 | 3.1 | 3.3 | ||||||||||||||||||
30_10_40 | 5.9 | 6.3 | 5.6 | 6.3 | 2.3 | 2.4 | 1.4 | 1.7 | ||||||||||||||||||
30_10_80 | 5.2 | 5.4 | 4.5 | 5.3 | 2.3 | 2.3 | 0.8 | 1.0 | ||||||||||||||||||
50_5_10 | 14.4 | 15.5 | 15.1 | 18.2 | 4.3 | 5.1 | 7.1 | 9.4 | ||||||||||||||||||
50_5_20 | 11.4 | 12.2 | 12.8 | 16.3 | 3.6 | 4.4 | 5.1 | 7.7 | ||||||||||||||||||
50_5_40 | 8.8 | 10.2 | 11.0 | 13.2 | 2.9 | 3.9 | 3.8 | 6.2 | ||||||||||||||||||
50_5_80 | 7.2 | 8.3 | 8.2 | 10.6 | 2.9 | 3.0 | 3.4 | 4.6 | ||||||||||||||||||
50_10_10 | 10.3 | 11.4 | 12.0 | 14.4 | 2.9 | 3.9 | 5.1 | 7.1 | ||||||||||||||||||
50_10_20 | 8.3 | 9.2 | 9.9 | 12.5 | 2.2 | 3.3 | 3.6 | 5.7 | ||||||||||||||||||
50_10_40 | 7.0 | 8.1 | 8.1 | 10.9 | 2.7 | 3.5 | 3.1 | 4.9 | ||||||||||||||||||
50_10_80 | 6.2 | 6.6 | 6.6 | 8.7 | 2.2 | 2.6 | 2.6 | 3.1 | ||||||||||||||||||
70_5_10 | 13.8 | 14.7 | 14.6 | 17.4 | 3.9 | 5.4 | 6.7 | 10.9 | ||||||||||||||||||
70_5_20 | 10.9 | 11.4 | 11.4 | 14.4 | 2.4 | 4.6 | 5.1 | 8.5 | ||||||||||||||||||
70_5_40 | 7.8 | 10.1 | 9.4 | 13.1 | 2.4 | 3.9 | 3.9 | 7.1 | ||||||||||||||||||
70_5_80 | 5.8 | 7.8 | 7.6 | 11.0 | 2.3 | 3.5 | 3.2 | 5.5 | ||||||||||||||||||
70_10_10 | 11.7 | 12.6 | 11.8 | 14.8 | 2.7 | 4.3 | 5.2 | 8.3 | ||||||||||||||||||
70_10_20 | 8.8 | 10.3 | 9.6 | 13.3 | 2.3 | 4.2 | 4.6 | 7.6 | ||||||||||||||||||
70_10_40 | 7.3 | 9.2 | 8.4 | 11.9 | 2.3 | 3.8 | 3.9 | 6.2 | ||||||||||||||||||
70_10_80 | 5.5 | 6.8 | 6.6 | 9.4 | 2.1 | 3.0 | 3.0 | 4.5 | ||||||||||||||||||
Average | 8.7 | 9.7 | 9.4 | 11.8 | 2.9 | 3.7 | 3.8 | 5.5 |
The ALNS method has two main components that differentiate it from other heuristics: (i) the adaptive procedure that guides the operator selection and (ii) the local search procedure that is performed when promising solutions are found. To quantify the impact of these two procedures, we compare the proposed method to its variants with and without each of the components. One variant is the method without its adaptive component (i.e., large neighborhood search (LNS)), meaning that each removal and insertion operator has an equal probability of being selected throughout the algorithm run. Another variant is the ALNS method without the local search (LS). The objective gap across the methods is compared in Table 8, with a time limit of 5 minutes, and 1 hour. For the short time limit, we see that the ALNS without the local search performs the best in most instances. Once the time limit is increased, the value of the local search is more apparent, and it provides the best results in most instances.
|
|
|
|
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
30_5_10 | 5.3 | 5.2 | 5.3 | 7.3 | 5.3 | 7.8 | 4.8 | 12.7 | 1.3 | ||||||||||||||||||||
30_5_20 | 4.2 | 8.0 | 4.1 | 11.1 | 4.2 | 12.8 | 3.3 | 18.6 | 1.5 | ||||||||||||||||||||
30_5_40 | 3.8 | 11.0 | 3.4 | 16.5 | 3.6 | 21.1 | 3.4 | 27.4 | 2.5 | ||||||||||||||||||||
30_5_80 | 4.3 | 15.7 | 3.9 | 25.7 | 3.8 | 36.0 | 3.4 | 60.4 | 2.7 | ||||||||||||||||||||
30_10_10 | 3.9 | 5.6 | 4.0 | 7.1 | 4.0 | 7.8 | 3.6 | 10.9 | 1.6 | ||||||||||||||||||||
30_10_20 | 3.1 | 8.8 | 3.1 | 12.3 | 3.5 | 13.3 | 2.9 | 20.0 | 1.7 | ||||||||||||||||||||
30_10_40 | 2.5 | 12.4 | 2.3 | 18.2 | 2.2 | 23.9 | 2.3 | 30.4 | 2.9 | ||||||||||||||||||||
30_10_80 | 2.7 | 17.6 | 2.5 | 28.9 | 2.5 | 39.4 | 2.3 | 63.4 | 3.0 | ||||||||||||||||||||
50_5_10 | 3.9 | 2.0 | 4.4 | 3.2 | 4.9 | 3.8 | 4.3 | 8.5 | 0.4 | ||||||||||||||||||||
50_5_20 | 4.2 | 2.6 | 4.5 | 4.3 | 4.6 | 6.2 | 3.6 | 16.2 | 0.4 | ||||||||||||||||||||
50_5_40 | 3.4 | 3.4 | 2.9 | 5.3 | 3.4 | 7.8 | 2.9 | 13.8 | 0.8 | ||||||||||||||||||||
50_5_80 | 4.1 | 4.5 | 3.9 | 7.6 | 3.7 | 11.6 | 2.9 | 24.8 | 1.1 | ||||||||||||||||||||
50_10_10 | 2.9 | 2.3 | 2.9 | 3.5 | 3.7 | 4.6 | 2.9 | 8.8 | 0.7 | ||||||||||||||||||||
50_10_20 | 2.6 | 3.1 | 2.8 | 5.1 | 2.9 | 6.3 | 2.2 | 15.4 | 0.6 | ||||||||||||||||||||
50_10_40 | 3.1 | 4.2 | 3.1 | 6.4 | 3.1 | 9.1 | 2.7 | 14.3 | 1.2 | ||||||||||||||||||||
50_10_80 | 2.9 | 5.5 | 2.8 | 9.2 | 3.0 | 13.4 | 2.2 | 26.8 | 1.6 | ||||||||||||||||||||
70_5_10 | 3.4 | 1.2 | 3.7 | 1.9 | 4.6 | 2.5 | 3.9 | 5.0 | 0.5 | ||||||||||||||||||||
70_5_20 | 2.9 | 1.5 | 3.4 | 2.5 | 4.0 | 3.3 | 2.4 | 10.0 | 0.5 | ||||||||||||||||||||
70_5_40 | 3.4 | 1.7 | 3.5 | 2.9 | 3.6 | 4.6 | 2.4 | 11.4 | 0.5 | ||||||||||||||||||||
70_5_80 | 3.7 | 2.0 | 3.5 | 3.7 | 3.5 | 6.0 | 2.3 | 17.7 | 0.7 | ||||||||||||||||||||
70_10_10 | 2.8 | 1.3 | 3.1 | 2.1 | 3.6 | 2.6 | 2.7 | 5.0 | 0.8 | ||||||||||||||||||||
70_10_20 | 2.5 | 1.8 | 2.7 | 2.8 | 3.1 | 4.0 | 2.3 | 9.2 | 0.7 | ||||||||||||||||||||
70_10_40 | 3.3 | 2.1 | 3.2 | 3.5 | 3.5 | 5.2 | 2.3 | 10.0 | 0.8 | ||||||||||||||||||||
70_10_80 | 3.5 | 2.3 | 3.5 | 4.1 | 3.1 | 6.9 | 2.1 | 18.9 | 0.9 | ||||||||||||||||||||
Average | 3.4 | 5.2 | 3.4 | 8.1 | 3.6 | 10.8 | 2.9 | 19.1 | 1.2 |
To measure the impact of the local search procedure, we compare different strategies that differ in the frequency of execution of the local search procedure. We test three other variants of the algorithm in which the local search is called every 1, 2, and 4 iterations. The results are summarized in Table 9 where we can observe the increased computational complexity that the local search can add to each iteration. Performing the local search procedure very frequently can lead to good solutions in fewer iterations, but it also results in longer computational times. The proposed strategy performs the local search at iterations where the reconstructed solution is better than the incumbent one, and we show that this strategy performs the best. This method allows us to perform the local search in a fewer number of iterations, but at the same time, has the potential to result in promising and better solutions.
Number of ships | Cost-berth removal | Cost-time removal | Shaw removal | Random removal | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
% its |
|
|
% its |
|
|
% its |
|
|
% its |
|
|
||||||||||||||||
30 | 6 | 4 | 2 | 17 | 21 | 13 | 28 | 20 | 24 | 50 | 55 | 62 | |||||||||||||||
50 | 6 | 4 | 1 | 47 | 50 | 38 | 12 | 8 | 8 | 35 | 38 | 52 | |||||||||||||||
70 | 6 | 4 | 2 | 69 | 81 | 84 | 6 | 2 | 1 | 19 | 12 | 13 |
Number of ships | Efficient packing insertion | Random greedy insertion | Arrival greedy insertion | -regret insertion | |||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
% its |
|
|
|
% its |
|
|
|
% its |
|
|
|
% its |
|
|
|
||||||||||||||||||||||||
30 | 5 | 2 | 4 | 1 | 17 | 10 | 24 | 7 | 10 | 5 | 13 | 3 | 68 | 83 | 60 | 89 | |||||||||||||||||||||||
50 | 5 | 3 | 3 | 1 | 37 | 33 | 34 | 22 | 8 | 6 | 6 | 2 | 49 | 58 | 57 | 75 | |||||||||||||||||||||||
70 | 6 | 3 | 3 | 1 | 47 | 39 | 51 | 46 | 9 | 6 | 6 | 3 | 38 | 52 | 39 | 50 |
Tables 10 and 11 summarized the performance of the different removal and insertion operators used within the ALNS method. For each removal operator, we compute three metrics: (i) the percentage of iterations in which the operator was selected % its, (ii) the percentage of current best solutions found using the operator % new best, and (iii) the percentage of times that the resulting solution was better than the current one using the operator % better than current. For the insertion methods, we also display a fourth column % of time, which indicates the percentage of time each operator has consumed from the total time spent repairing solutions. The time spent in removal methods is significantly lower than in insertion operators; therefore, we do not compute this metric for the removal operators. We observe that the random removal is the better-performing removal method when the number of ships is 30. However, for larger instances, the cost-time removal performs better. This suggests that when the number of port visits increases, the probability of removing port visits that are not related at all also increases, making pure random methods less efficient. Furthermore, removing port visits that overlap in time is more effective than removing the ones that overlap in berthing space. While ships can berth at multiple positions along the quay without major delays and disruptions in their schedule, berthing earlier or later can negatively impact the sailing in the rest of the voyage legs. Therefore, their flexibility comes at a larger cost. We also notice that the Shaw removal becomes less useful in larger instances. This operator removes pairs of port visits at a time. These pairs can be highly unrelated between them, worsening the effects of the overall operator. Similarly to the random removal, this inter-relatedness issue increases with the number of port visits.
Regarding the repair methods, the -regret insertion method shows the best and more robust performance. Even if, in some cases, it is not the most frequently used operator, it is clearly computationally intensive, and more than half of the time is spent computing the insertions related to this method. The randomized greedy insertion is also relevant and becomes more effective in larger instances. The remaining two insertion operators, packing and arrival greedy, show a modest performance. Still, they also proved to help achieve some of the best-found solutions during the algorithm run.


To better understand the algorithm’s behavior and when the operators are used, we tracked the use of each operator during the algorithm run. Figures 6 and 7 show an example run of one hour for an instance with 30 ships, 10 external ships per port, and a quay segment length of 10 meters. We observe that the cost-berth removal is only used at the beginning of the run when each operator has a more balanced probability of being chosen. The packing greedy heuristic shows a similar behavior and correlates with the low usage of these two operators as shown in Table 10 and 11. Nonetheless, the rest of the operators are used for most algorithm runs. Some operators show an oscillating behavior, such as the cost-time removal operator. This behavior correlates with the temperature of the acceptance criterion, which is reheated periodically and suggests that the operator has a higher probability of being selected when the temperature is higher.
Additionally, for both removal and insertion operators, we tested the algorithm removing the worst performing operators, one at a time, but the performance of the method worsened in all cases, indicating that all operators are to some extent useful and combine well together.
5.4 Practical impact
This problem involves two main stakeholders, namely, the terminal operators and the shipping carriers. The objective function covers the operational costs of both of them. This section disaggregates and analyzes the different operational costs by performing various sensitivity analyses.
Segment length | Waiting | Handling | Delay | Fuel | Total | Penalty | Iterations x1000 |
---|---|---|---|---|---|---|---|
10 | 390 | 537 | 3210 | 1274 | 5411 | 0.04 | 8 |
20 | 368 | 537 | 3246 | 1275 | 5426 | 0.05 | 15 |
40 | 242 | 541 | 3449 | 1276 | 5509 | 0.09 | 18 |
80 | 241 | 542 | 3910 | 1275 | 5968 | 0.14 | 35 |
In Table 12, we group the instances per quay segment length. We observe a natural trade-off here. A shorter segment length allows a more granular set of berthing positions and, therefore, a potentially better solution quality. However, this increases the complexity of the problem, and in the case of our method, it results in fewer iterations per hour. Despite performing less than a quarter of the iterations of the instances with 80 meters segments, the method finds better solutions for the shorter-segment instances. The improvement in objective value mainly translates into shorter delays and increased waiting time. The handling and fuel costs remain similar. The vessel time windows or port calls are already pre-planned, considering a low sailing speed. This, together with the fact that fuel costs account for a large part of the total costs, results in that ships already sailing at the slowest speed in most of the solutions (see Table 14).
|
Waiting | Handling | Delay | Fuel | Total | Penalty | ||
---|---|---|---|---|---|---|---|---|
0 | 451 | 538 | 2365 | 1278 | 4632 | 0.06 | ||
5 | 287 | 538 | 3022 | 1275 | 5122 | 0.04 | ||
10 | 301 | 538 | 3227 | 1275 | 5341 | 0.05 | ||
20 | 461 | 538 | 2718 | 1278 | 8300 | 0.11 |
Another operational aspect we inspect is the impact of the external ships in the planning process. We solve the problem for instances with a different number of external ships per port, from none to twenty ships per port. The results are summarized in Table 13. The results support the rationale that an increased number of external ships per port results in a more congested berth allocation and, as a result, higher operational costs. In this case, the port congestion is reflected in the Penalty column, which indicates the average number of port visits per instance exceeding the latest finish time. Since this type of delay is heavily penalized, improvements in this aspect significantly impact the objective value. These results also indicate that the level of impact of this type of collaborative problem can increase significantly when more ships are involved. When more ships collaborate, their potential joint savings increase and the terminal has more planning flexibility.
As mentioned previously, fuel consumption is the main cost driver for carriers. Fuel prices have fluctuated significantly in the last two years due to the global socio-economical and political situation. We consider that ships use a very low sulfur fuel oil (VLSFO) with an estimated price of 500 USD per metric ton. However, the prices of this fuel have ranged between 200 and 1100 USD per metric ton in the last two years. Therefore, we have also tested our method using a fuel price of 200 and 1100 USD per metric ton [38]
Number of ships | Fuel price (USD/metric tonne) | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
200 | 500 | 1100 | |||||||||||||||
|
|
|
|
|
|
||||||||||||
30 | 51.04 | 17.12 | 50.53 | 17.04 | 50.37 | 17.01 | |||||||||||
50 | 51.50 | 17.10 | 51.11 | 17.04 | 50.99 | 17.02 | |||||||||||
70 | 52.14 | 17.19 | 51.35 | 17.08 | 51.07 | 17.03 | |||||||||||
Average | 51.56 | 17.14 | 51.00 | 17.05 | 50.81 | 17.02 |
Table 14 shows the average fuel consumption per ship and sailing speed, grouped by instances with the same number of ships. We observe that the average consumption can increase by more than half a metric tonne when the fuel price decreases from 500 USD per tonne to 200 USD per tonne. This difference is more prominent in instances with a large number of ships, where more ships sail marginally faster to arrive earlier at the next port to get a better service. However, when the fuel price increases above 500 USD per metric tonne, the reductions in fuel consumption are relatively small. The main explanation for this is due to the low sailing speeds in general. The fuel costs already account for a large part of the operational costs, and the solutions indicate that ships sail close to the slowest speed of 17 knots in most cases. We observe a slight increase in average sailing speed when the fuel price is low, but the size of the instance does not have an impact on the speed. A similar sensitivity analysis performed by [42] indicated a similar behavior.
6 Conclusions
In this work, we address an emerging problem in maritime collaborative logistics that integrates the operations of both shipping carriers and terminal operators. We present both a new MIP formulation for the multi-port continuous berth allocation problem with speed optimization, and an ALNS algorithm to solve it. The ALNS algorithm takes advantage of a diverse set of tailored insertion and removal methods. It guides the algorithm by prioritizing the better-performing methods. The modular characteristic of the algorithm could be exploited to develop a decision support tool for terminal operators, where the operators’ experience can lead to new tailored operators. Furthermore, in terms of computational performance, the heuristic method is able to find high-quality solutions to larger instances than the ones studied in the literature and outperforms commercial solvers such as CPLEX. We also study the practical impact of the problem in terms of operational costs for the carriers and terminal operators and analyze the resulting quality of the berth plans and sailing speeds. We conclude that engaging in this type of collaboration can result in overall cost reductions for the stakeholders and also benefits to the environment due to the potential lower fuel consumption.
Some aspects of this study remain as future work or research direction. Regarding the solution method, the insertion operators are the main bottleneck in terms of computational complexity. One could explore simpler insertion operators or other heuristic variants. Studying the scalability of the method in more detail could be relevant. There is no doubt that the heuristic method scales better than CPLEX, and results in small instances indicate that the ALNS achieves near-optimal solutions. For larger instances, the optimality gap of CPLEX increases significantly, and the lower bound becomes impractical. Finally, incorporating practical aspects such as transhipments or disruptions management is an attractive research direction. We envision the use of frameworks such as stochastic programming to tackle this type of problem. All in all, this type of study highlights the potential impact of collaborative logistics and the value of integration in the transportation sector. Acknowledgements: The authors thank the Danish Maritime Fund for supporting this work.
References
-
Ansótegui et al. [2021]
Ansótegui, C., Pon, J., Sellmann, M., 2021. Boosting evolutionary algorithm
configuration. Annals of Mathematics and Artificial Intelligence.
URL https://doi.org/10.1007/s10472-020-09726-y - APM Terminals [2022a] APM Terminals, 2022a. APM Terminals Bremerhaven NTB. https://www.apmterminals.com/en/bremerhaven/practical-information/practical-information, accessed: 2022-11-4.
- APM Terminals [2022b] APM Terminals, 2022b. APM Terminals Maasvlakte II. https://www.apmterminals.com/en/maasvlakte/about/our-terminal, accessed: 2022-09-15.
- Bierwirth and Meisel [2015] Bierwirth, C., Meisel, F., 2015. A follow-up survey of berth allocation and quay crane scheduling problems in container terminals. European Journal of Operational Research 244 (3), 12689, 675–689.
- Bräysy [2003] Bräysy, O., 2003. A reactive variable neighborhood search for the vehicle-routing problem with time windows. Informs Journal on Computing 15 (4), 347–368.
- Carlo et al. [2014] Carlo, H. J., Vis, I. F., Roodbergen, K. J., 2014. Transport operations in container terminals: Literature overview, trends, research directions and classification scheme. European Journal of Operational Research 236 (1), 1–13.
- Cheimanoff et al. [2022] Cheimanoff, N., Fontane, F., Kitri, M. N., Tchernev, N., 2022. Exact and heuristic methods for the integrated berth allocation and specific time-invariant quay crane assignment problems. Computers and Operations Research 141, 105695.
- Cordeau et al. [2005] Cordeau, J. F., Laporte, G., Legato, P., Moccia, L., 2005. Models and tabu search heuristics for the berth-allocation problem. Transportation Science 39 (4), 526–538.
- Du et al. [2011] Du, Y., Chen, Q., Quan, X., Long, L., Fung, R. Y., 2011. Berth allocation considering fuel consumption and vessel emissions. Transportation Research Part E: Logistics and Transportation Review 47 (6), 1021–1037.
- Dulebenets [2018] Dulebenets, M. A., 2018. A comprehensive multi-objective optimization model for the vessel scheduling problem in liner shipping. International Journal of Production Economics 196, 293–318.
- Dulebenets [2019] Dulebenets, M. A., 2019. Minimizing the total liner shipping route service costs via application of an efficient collaborative agreement. Ieee Transactions on Intelligent Transportation Systems 20 (1), 8315131.
- Dulebenets et al. [2018] Dulebenets, M. A., Golias, M. M., Mishra, S., 2018. A collaborative agreement for berth allocation under excessive demand. Engineering Applications of Artificial Intelligence 69, 76–92.
- Dulebenets et al. [2019] Dulebenets, M. A., Pasha, J., Abioye, O. F., Kavoosi, M., 2019. Vessel scheduling in liner shipping: a critical literature review and future research needs. Flexible Services and Manufacturing Journal 33 (1), 43–106.
- Eurogate [2022] Eurogate, 2022. Eurogate Hamburg. http://www1.eurogate.de/en/EUROGATE/Terminals/Hamburg, accessed: 2022-11-4.
- Fagerholt [2001] Fagerholt, K., 2001. Ship scheduling with soft time windows: An optimisation based approach. European Journal of Operational Research 131 (3), 559–571.
- Fagerholt et al. [2010] Fagerholt, K., Laporte, G., Norstad, I., 2010. Reducing fuel emissions by optimizing speed on shipping routes. Journal of the Operational Research Society 61 (3), 523–529.
- Glover [1992] Glover, F., 1992. New ejection chain and alternating path methods for traveling salesman problems. Computer Science and Operations Research. New Developments in Their Interfaces, 491–508.
- Guan and Cheung [2005] Guan, Y., Cheung, R. K., 2005. The berth allocation problem: Models and solution methods. Container Terminals and Automated Transport Systems: Logistics Control Issues and Quantitative Decision Support, 141–158.
- Guo et al. [2022] Guo, L., Zheng, J., Du, H., Du, J., Zhu, Z., 2022. The berth assignment and allocation problem considering cooperative liner carriers. Transportation Research Part E: Logistics and Transportation Review 164, 102793.
- Hellsten et al. [2020] Hellsten, E. O., Sacramento Lechado, D., Pisinger, D., 2020. An adaptive large neighbourhood search heuristic for routing and scheduling feeder vessels in multi-terminal ports. European Journal of Operational Research 287 (2), 682–698.
- Imai et al. [2005] Imai, A., Sun, X., Nishimura, E., Papadimitriou, S., 2005. Berth allocation in a container port: using a continuous location space approach. Transportation Research Part B-methodological 39 (3), 199–221.
-
IMO [2018]
IMO, April 2018. Initial IMO strategy on reduction of GHG emissions from
ships. Tech. Rep. MEPC.304(72), International Maritime Organization,
(Accessed on 04.05.2020).
URL http://www.imo.org/en/OurWork/Environment/PollutionPrevention/AirPollution/Pages/GHG-Emissions.aspx - Iris and Lam [2018] Iris, C., Lam, J. S. L., 2018. Models for continuous berth allocation and quay crane assignment: Computational comparison. Ieee International Conference on Industrial Engineering and Engineering Management 2017-, 374–378.
- Iris et al. [2017] Iris, C., Pacino, D., Røpke, S., 2017. Improved formulations and an adaptive large neighborhood search heuristic for the integrated berth allocation and quay crane assignment problem. Transportation Research. Part E: Logistics and Transportation Review 105, 123–147.
- Kim and Moon [2003] Kim, K. H., Moon, K. C., 2003. Berth scheduling by simulated annealing. Transportation Research Part B: Methodological 37 (6), 541–560.
- Kordić et al. [2016] Kordić, S., Davidović, T., Kovač, N., Dragović, B., 2016. Combinatorial approach to exactly solving discrete and hybrid berth allocation problem. Applied Mathematical Modelling 40 (21-22), 8952–8973.
- Lalla-Ruiz et al. [2016] Lalla-Ruiz, E., Melián-Batista, B., Moreno-Vega, J. M., 2016. A cooperative search for berth scheduling. Knowledge Engineering Review 31 (05), 498–507.
- Lim [1998] Lim, A., 1998. The berth planning problem. Operations Research Letters 22 (2-3), 105–110.
- Lyu et al. [2022] Lyu, X., Negenborn, R. R., Shi, X., Schulte, F., 2022. A collaborative berth planning approach for disruption recovery. Ieee Open Journal of Intelligent Transportation Systems 3, 153–164.
- Marine Traffic [2023] Marine Traffic, 2023. Port Calls Data. https://www.marinetraffic.com/en/data/, accessed: 2023-01-14.
- Martin-Iradi et al. [2022a] Martin-Iradi, B., Pacino, D., Ropke, S., 2022a. The multi-port continuous berth allocation problem with speed optimization. In: de Armas, J., Ramalhinho, H., Voß, S. (Eds.), Computational Logistics. Springer International Publishing, Cham, pp. 31–43.
- Martin-Iradi et al. [2022b] Martin-Iradi, B., Pacino, D., Ropke, S., 2022b. The multiport berth allocation problem with speed optimization: Exact methods and a cooperative game analysis. Transportation Science 56 (4), 972–999.
- Meisel and Bierwirth [2009] Meisel, F., Bierwirth, C., 2009. Heuristics for the integration of crane productivity in the berth allocation problem. Transportation Research Part E: Logistics and Transportation Review 45 (1), 196–209.
- Potvin and Rousseau [1993] Potvin, J., Rousseau, J., 1993. A parallel route building algorithm for the vehicle-routing and scheduling problem with time windows. European Journal of Operational Research 66 (3), 331–340.
- Rego [1998] Rego, C., 1998. A subpath ejection method for the vehicle routing problem. Management Science 44 (10), 1447–1459.
- Ropke and Pisinger [2006] Ropke, S., Pisinger, D., 2006. An adaptive large neighborhood search heuristic for the pickup and delivery problem with time windows. Transportation Science 40 (4), 455–472.
- Shaw [1998] Shaw, P., 1998. Using constraint programming and local search methods to solve vehicle routing problems. Lecture Notes in Computer Science 1520, 417–431.
- Ship & Bunker [2022] Ship & Bunker, 2022. Global Average Bunker Price - VLSFO. https://shipandbunker.com/prices/av/global/av-g20-global-20-ports-average, accessed: 2022-12-18.
- Steenken et al. [2004] Steenken, D., Voß, S., Stahlbock, R., 2004. Container terminal operation and operations research - a classification and literature review. Or Spectrum 26 (1), 3–49.
- Sun et al. [2018] Sun, B., Niu, B., Xu, H., Ying, W., 2018. Cooperative optimization for port and shipping line with unpredictable disturbance consideration. Icnc-fskd 2018 - 14th International Conference on Natural Computation, Fuzzy Systems and Knowledge Discovery, 8686901, 113–118.
- UNCTAD [2020] UNCTAD, 2020. Review of maritime transport 2020. Tech. rep., UNCTAD.
- Venturini et al. [2017] Venturini, G., Iris, C., Kontovas, C. A., Larsen, A., 2017. The multi-port berth allocation problem with speed optimization and emission considerations. Transportation Research. Part D: Transport and Environment 54, 142–159.
- Wang et al. [2015] Wang, S., Liu, Z., Qu, X., 2015. Collaborative mechanisms for berth allocation. Advanced Engineering Informatics 29 (3), 572, 332–338.
- Yu et al. [2022] Yu, J., Tang, G., Song, X., 2022. Collaboration of vessel speed optimization with berth allocation and quay crane assignment considering vessel service differentiation. Transportation Research Part E: Logistics and Transportation Review 160, 102651.