Keywords

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

1 Introduction

Liner shipping mainly involves the transportation of containerized cargo (containers) such as manufactured products, food, and garment. Liner shipping services have fixed sequences of ports of call and fixed schedules, i.e., arrival and departure times at each port of call, similar to public transport operations. Liner services are announced in advance to attract potential customers. For example, Fig. 10.1 shows a liner service named North & Central China East Coast Express (NCE) provided by Orient Overseas Container Line (OOCL 2013). The ports of call and schedule are published in the website of OOCL. Customers can arrange the delivery of their cargo based on the available date of the cargo at the origin port and the expected arrival date at the destination port. For instance, a customer that has 20 containers to be transported from Pusan to New York may contact OOCL to transport the containers. As ships visit Pusan on Sunday, the customer has to make sure that the containers are stacked in the container yard of Pusan before Saturday, so that containers can be loaded to a ship when the ship arrives. The ship will not directly transport the containers from Pusan to New York. By contrast, the ship will transport the container via Qingdao, Ningbo, Shanghai, and finally to New York. At the port of New York, the containers will be unloaded from the ship.

Fig. 10.1
figure 1

NCE service provided by OOCL (2013)

In the process of container transportation, the main role of container port is to load and unload containers. First, a containership informs a port operator the estimated arrival time, and then the port operator makes a plan for servicing the ship. When the ship arrives, tug boats will tow the ship to the berth. Then the ship will be moored, and quay cranes will start to load and unload containers for the ship. At the same time, yard trucks will transport containers from and to the quay side. The container handling operation may take up to two days. After that, the ship is unmoored, and tug boats tow the ship out of the port.

1.1 Interactions Between Shipping Lines and Port Operators

Shipping lines and port operators interact with each other to fulfill container transport services. Their interactions occur in several aspects. Shipping lines need to choose which ports to visit on the shipping services and determine which ports serve as the hub ports. Port operators need to prioritize shipping lines when the ports have limited capacity. Ports provide services to ships such as bunkering, pilotage and towage, berthing, container handling and temporarily storing containers (including empty containers) in container yards. In the sequel, we take a closer look at two interactions: ship storage planning and berth allocation.

1.1.1 Ship Storage Planning

Ship storage plan determines how to stow a set of containers of different types into a set of available locations within a ship at a particular port, subject to some structural, stability and operational constraints related to both the containers and the ship, while minimizing the total container re-handling cost or time caused by unloading a container below other containers. A good ship storage plan is helpful for port operators to efficiently load and unload containers, and thus shortens the unproductive port time of ships.

As proved by Aslidis (1989), the ship storage planning (SSP) problem is NP-hard and several heuristic methods or computer simulation approaches have been proposed in the past two decades.

Aslidis (1989), Imai and Miki (1989) and Aslidis (1990) have contributed three pioneering works on the SSP problem. Aslidis (1989, 1990) have examined the SSP problem with the objective of minimizing the total container overstorage cost and proposed heuristic solution methods. Imai and Miki (1989) considered the minimization of container loading-related rearrangements. Avriel and Penn (1993) formulated the SSP problem as a binary integer linear programming model and argued that exact algorithms solving the integer programming model were too slow even after some preprocessing. Ambrosino and Sciomachen (1998) derived some rules for determining a better ship stowage configuration using a constraint satisfaction approach. Avriel et al. (1998) dealt with the SSP problem without taking into account ship stability and several other constraints. They presented a binary integer linear programming formulation and found that the optimal solution was difficult to obtain because of the large number of binary variables and constraints involved in the model. Consequently, they developed a heuristic procedure called the suspensory heuristic procedure. However, they assumed that the ship only had a large cargo bay without considering the hatch covers and stability. Wilson and Roach (1999, 2000) have proposed a methodology for generating computerised container stowage plans, which embodied a two-stage process: In the first stage, a branch-and-bound algorithm was utilized for solving the problem of assigning containers to a bay’s block in a ship, and in the second stage a tabu search algorithm was employed to assign specific locations for specific containers. Wilson et al. (2001) applied a genetic algorithm approach for solving a ship stowage pre-planning problem. Dubrovsky et al. (2002) used a genetic algorithm for minimizing the number of container movements in the stowage planning. Ambrosino et al. (2004) presented an integer linear programming model for the SSP. Also, they proposed a tangible approach comprising heuristic preprocessing and pre-stowing procedures that allowed relaxation of some constraints of the exact model. Ambrosino et al. (2006) developed a three-phase algorithm for solving the SSP problem based on a partitioning procedure that split the ship into different portions and assigned containers on the basis of their destination.

Moreover, there are also a few software packages used by shipping lines for ship stowage planning, for example, the PowerStow Container Stowage System (www.navis.com), LOADMASTER X5 (http://www.kockumsonics.com) and CargoMax (www.herbertsoftware.com).

1.1.2 Berth Allocation

Another interaction between shipping lines and port operators is berth allocation. In fact, the berth allocation problem (BAP), which is the assignment of quay space and service time to vessels for container loading and unloading, is one of the essential quay-side decision problems faced by port operators. A good BAP can shorten the unproductive port time of ships, enabling liner shipping companies to make a higher profit.

The BAP can be classified according to different criteria. First, there are discrete BAP (DBAP) where each berth can serve one ship at a time, and continuous BAP (CBAP) with a long straight quay and how many ships can be accommodated at the same time depends on the sizes of the ships. Second, BAP can be classified as being either static (SBAP) or dynamic (DynBAP). In SBAP, all ships are already in the port when the berth allocation is planned, whereas in DynBAP some ships are still on the voyage to the port when the port operator allocates berths. The SBAP is applicable when the port is highly congested. Third, BAP can occur at the operational level (OBAP), or tactical level (TBAP). The OBAP covers a planning horizon of usually at most one week and the TBAP aims to support port operators to negotiate with shipping lines. If TBAP accounts for the periodicity of vessel schedules, e.g., weekly arrival patterns of containerships, then if a vessel is serviced at a berth on day 7 and day 8, other vessels cannot use the berth on day 1, because day 8 and day 1 correspond to the same day in a week. The time horizon of this type of TBAP is a cylinder whose circumference equals 1 week. Hence, the resulting models (Moorthy and Teo 2006, Zhen et al. 2011b) are significantly different from OBAP models. If in the TBAP vessels do not arrive periodically, the time horizon is simply a rectangle with an open end and the models are very similar to OBAP models.

Besides determining the berthing time and location, some studies on DynBAP (either DBAP or CBAP and either TBAP or OBAP) also integrate other decision issues such as quay crane assignment, quay crane scheduling, container storage planning at yard, and yard truck scheduling. The models on DynBAP all aim at providing berthing and other related services at minimum cost (cost associated with quay cranes and yard trucks). However, different models have different definitions for service. Most studies assume that each ship has a preferred arrival time. Giallombardo et al. (2010) is an exception in that it examined a TBAP and assumed that there was no difference for shipping lines when their ships were scheduled to arrive. The objective was to minimize the container handling time of ships by choosing quay crane assignment profiles.

The studies considering the preference of ship arrival times can be classified into four different lines, which are briefly summarized as follows. The first line aims to minimize the total service time (turnaround time) of all ships, including waiting time for berths and container handling time, or total weighted service time where different ships have different weights, for example, Imai et al. (2001, 2003, 2005, 2008a), Cordeau et al. (2005), Moorthy and Teo (2006), Golias et al. (2009b, 2010a), Lee et al. (2010). Note that if the handling time is constant, minimizing the service time is equivalent to minimizing the waiting time. Similarly, Imai et al. (2008b) required that if a ship’s waiting time exceeded a certain limit, the ship must be served at an external terminal, and the target is to minimize the total service time of ships at the external terminal. Golias et al. (2009a) considered two objectives: minimizing the total service time of preferential customers, and minimizing the total service time of all vessels. The second line minimizes the total tardiness cost, which is the finish operation time (real departure time) minus the expected departure time if the former is larger, and 0 otherwise, for instance, Kim and Moon (2003), Chang et al. (2010), Zhen et al. (2011b). In addition, Han et al. (2010) proposed a proactive approach for a BAP with quay crane scheduling and stochastic arrival and handling time. They took into account the expected value and standard deviation of the total service time and weighted tardiness of all ships. Chen et al. (2012) minimized the maximum relative tardiness of all ships. The third line formulates the penalty for earliness and tardiness in greater details. Meisel and Bierwirth (2009) investigated a CBAP with quay crane allocation. They assumed that each ship has an expected arrival time, an earliest start operation time, expected finish operation time, and latest allowed finish operation time. All of these time components were included in the objective function. Zhen et al. (2011a) developed an integrated model for the TBAP with yard operations planning. The model minimized the weighted sum of deviation from vessels’ expected turnaround time intervals and the operations cost associated with transshipment containers. The fourth line incorporates the bunker cost of the vessels in the models. Golias et al. (2010b) considered the following elements in the objective function: (i) the total service time, (ii) the tardiness, and (iii) the emissions and fuel cost for all vessels while in transit to their next port of call. By contrast, Du et al. (2011) incorporated the tardiness and the fuel cost for all vessels while in transit from their current positions to the focal port of the BAP. These berth allocation studies are all from the points of view of port operators.

1.2 Liner Ship Route Schedule Design with Port Time Windows

This book chapter examines the interaction between shipping lines and port operators on schedule design from the viewpoint of shipping lines. Schedule design for a liner service (ship route) is a tactical-level planning decision that is made every 3–6 months. To design the schedule of a ship route, the first factor to be considered is the availability of the ports. Since a port needs to provide services for many shipping lines and many ships, it cannot guarantee the availability of services whenever a ship arrives. For instance, a port may be able to provide services on Monday, Tuesday, and Friday, and is fully occupied on Wednesday, Thursday, Saturday, and Sunday. We use the term “port time window” to refer to the time in a week that a port can provide services to ships. Hence, schedule design is subject to the constraint of port time windows. Moreover, because of the fast growth of container trade and the long time required for the construction/expansion of port capacity, ports tend to be more congested. As a result, it is important to consider the availability of ports in schedule design. Otherwise the designed schedule may be infeasible in reality.

It should be noted that “port time window” here is different from the “time window” in other problems, e.g., the vehicle routing problems (VPRs), as shown in Fig. 10.2. In fact, in most other problems, time window is an interval that defines a convex set. However, in liner ship route schedule design, port time window defines a set of available times in a week that the port can provide berthing services, and more often than not, the set is disconnected and non-convex. Moreover, because of the weekly frequency of liner shipping services, the port time window should be considered from the viewpoint of a loop rather than a line or line segment. Take Fig. 10.3 as an example. The port time window in Fig. 10.3a is equivalent to that in Fig. 10.3b.

Fig. 10.2
figure 2

Difference of time windows

Fig. 10.3
figure 3

Weekly property of port time window

Besides the availability of port time windows, the design of schedule is also influenced by the ship costs, bunker costs, and inventory costs. Liner services are usually weekly, which means that the round-trip journey time (weeks) of a ship route is equal to the number of ships deployed on it. As a result, sailing at a higher speed will reduce the round-trip journey time, thereby the number of ships required and the ship cost. However, a higher speed implies a higher bunker cost: the daily fuel consumption of ships increases approximately proportional to the sailing speed cubed (Ronen 2011). At the same time, a higher speed leads to a shorter transit time of containers from origin to destination, and therefore a lower inventory cost (OOCL 2006). Consequently, in schedule design a liner shipping company must balance the trade-off between ship cost, bunker cost, and inventory cost, while considering port time windows.

1.3 Objectives

The objective of this chapter is to address the liner ship route schedule design problem with port time windows (SDPTW). We assume that each port on the ship route is visited only once in a round-trip journey. We design the arrival time at each port of call on the ship route that satisfies the port time window constraint while minimizing the sum of ship cost, bunker cost, and inventory cost. The designed schedule is feasible in that it takes into account port time windows. The designed schedule is also optimal because the total cost of ships, bunker, and inventory is minimized. Therefore, this problem is of significant value for liner shipping companies.

The rest of the chapter is organized as follows. Section 10.2 reviews relevant studies on schedule design. Section 10.3 describes the problem. Section 10.4 formulates a mathematical model for the problem. Section 10.5 proposes a dynamic programming based holistic solution approach to address the problem. Section 10.6 reports a case study based on the NCE service of OOCL. Section 10.7 concludes and points out future research directions.

2 Literature Review

According to reviews of Christiansen et al. (2004), Christiansen et al. (2013) and Meng et al. (2014), most studies on liner shipping operations focus on network design, ship deployment, and container routing with fixed schedules. For example, Shintani et al. (2007), Agarwal and Ergun (2008), Alvarez (2009), Meng and Wang (2011a), Meng et al. (2012a), Reinhardt and Pisinger (2012), Wang and Meng (2013), Brouer et al. (2013a), and Wang and Meng (2014) have examined ship route design/network design/network alteration problems; Fagerholt (1999), Gelareh and Meng (2010), Meng and Wang (2011b), Wang et al. (2011), Meng and Wang (2012), Meng et al. (2012b), Wang and Meng (2012a), and Wang (2013) have investigated fleet deployment problems; Bell et al. (2011), Dong and Song (2012), and Wang et al. (2013) have studied container routing problems.

Liner shipping schedule design occurs both at the tactical level and the operational level. At the tactical level, the designed schedule will be announced in the website of the shipping line, so that customers can book ship slots for transporting containers. Nevertheless, in reality the announced schedule may not be strictly adhered to, due to adverse weather conditions, port congestion, mechanical breakdown, etc. Therefore, at the operational level, the shipping line may adjust the arrival times at each port of call based on real-time information. This is the operational-level schedule design problem.

2.1 Tactical-Level Schedule Design

There are only a few studies on ship route schedule design. Mourão et al. (2001) analyzed a small hub-and-spoke network at the tactical level. The network consisted of two routes—a feed route and a main route—and one pair of ports. It assumed that all containers must be transshipped at the hub port in the feeder route. The main route had two possible schedules: Monday roster and Thursday roster. Two integer programming models were developed. The decision variables in the first model include: number of mainline ships in each type assigned to the Monday roster, number of mainline ships in each type assigned to the Thursday roster, and number of feeder ships assigned to the feeder route. In the second model, the decision variables were: number of voyages per year of the mainline ships in each type assigned to the Monday roster, number of voyages per year of the mainline ships in each type assigned to the Thursday roster, and number of voyages per year of feeder ships. The inventory costs of the containers to be shipped were considered in the objective function. These two models were solved by Excel.

Wang and Meng (2011) investigated the schedule design and container routing problem in liner shipping. They considered a general liner shipping network with many ports, many ship routes, and many origin-destination (OD) pairs. Containers in each OD pair had more than one path to be transported from origin to destination, and these paths were assumed to be given a priori. Containers in each OD pair had a market-level transit time to ensure that the container delivery service was competitive. In particular, if the real transit time was longer than the market-level transit time, a penalty was incurred; if the real transit time was shorter than the market-level transit time, a bonus was given. It was assumed that the sailing speed of ships and the time spent at each port of call were all fixed. Hence, the main decision variables were when to arrive at the first port of call on each ship route. At the same time, container routing with transshipment were incorporated. In fact, how containers were transported affected the schedule design. Hence, schedule design and container routing were studied in a holistic manner. The formulation for the schedule design and container routing problem was nonlinear, non-continuous and non-convex. An efficient genetic local search heuristic was developed. Computational results showed that the genetic local search heuristic could efficiently find good quality solutions. Moreover, the model for the container routing sub-problem could be separately used to optimize the day-to-day container routing decisions for the realized container shipment demand after the schedules have been designed.

Qi and Song (2012) designed an optimal containership schedule for a liner ship route to minimize the total expected fuel consumption. They considered uncertain port time and weekly frequency. They defined the level of service as the probability that the containership would arrive at a port no later than the published arrival time. They analytically studied the special case of 100 % service levels. By proving the convexity and differentiability of the objective function, it was shown that the optimal schedule could be obtained by solving a nonlinear programming problem. With further assumption of identical distribution of the uncertain parts of port times, they analytically derived some properties of an optimal schedule, which led to useful managerial insights. For example, the shortest leg was the most problematic leg when designing the optimal schedule to achieve 100 % service level and to minimize the emissions within the speed constraints, and therefore a liner shipping company should plan relatively longer time for a short leg. A general optimal ship scheduling problem was formulated, and the formulation was solved by simulation-based stochastic approximation methods. They validated the model and the properties by numerical studies. Based on a real liner case study with various scenarios analysis, they found significant fuel savings could be achieved from their model compared to the company’s original schedule or to the schedule based on deterministic data, especially for the cases with larger degree of uncertainties. They also found that the total fuel consumption could be reduced by sacrificing the service levels starting from the shortest legs; whereas as the vessel lateness penalty increased, higher service levels tended to be maintained and they became evener among all port-of-calls. This would help liner companies better understand the tradeoff between the fuel consumption and the service level.

Wang and Meng (2012c) examined the design of liner ship route schedules that could hedge against the uncertainties in port operations, which included the uncertain wait time due to port congestion and uncertain container handling time. They assumed that if a ship arrived at a port later than planned, then the penalty cost first increased linearly with the delay, and when the delay exceeded a particular threshold, the penalty cost did not change any more because the customers already resorted to other approaches to handle the delay. They further assumed that if a ship was delayed, it would try to catch up with the planned schedule as early as possible by sailing at the fastest speed. The designed schedule was robust in that uncertainties in port operations and schedule recovery by fast steaming were captured endogenously. The number of ships required to maintain a weekly frequency was considered as a decision variable. The objective function minimized the ship operating cost, expected bunker cost, and the penalty cost for delay. This problem was formulated as a mixed-integer nonlinear stochastic programming model. A solution algorithm which incorporated a sample average approximation method, linearization techniques, and a decomposition scheme, was proposed. Numerical experiments based on a long-haul ship route of Maersk Line were carried out. The ship route covered two trade lanes: trans-Pacific and trans-Atlantic, and three regions: Asia, America, and Europe, and had the sequence of ports of call as follows: Tokyo (1) → Kobe (2) → Chiwan (3) → Hong Kong (4) → Kaohsiung (5) → Busan (6) → Kobe (7) → Tokyo (8) → Balboa (9) → Manzanillo (10) → Miami (11) → Jacksonville (12) → Savannah (13) → Charleston (14) → New York (15) → Antwerp (16) → Felixstowe (17) → Bremerhaven (18) → Rotterdam (19) → Le Havre (20) → New York (21) → Norfolk (22) → Charleston (23) → Manzanillo (24) → Balboa (25) → San Pedro (26) → Oakland (27) → Tokyo (1). The numerical experiments demonstrated that the algorithm obtained near-optimal solutions with the stochastic optimality gap less than 1.5 % within reasonable time.

Wang and Meng (2012b) extended the work of Wang and Meng (2011). Both works have studied a liner shipping network, which contrasted Qi and Song (2012) and Wang and Meng (2012c), and both works have required a certain level of service in terms of OD transit time. Wang and Meng (2012b) was the first attempt to examine the optimal sailing speed function in view of sea contingency to minimize bunker consumption. The optimality condition for the sailing speed and the optimal sailing speed function with time were derived. They also contributed to the line of literature on optimization of sailing speed to control bunker consumption by providing an efficient and exact cutting-plane based solution algorithm. Moreover, they addressed the practical schedule design problem arising in liner shipping industry while considering port-to-port transit time with transshipment and sea contingency and uncertain port time. The port-to-port transit time with transshipment issue was solved with a mixed-integer programming model; sea contingency was investigated in the optimality condition of sailing speed; and the uncertain port time was addressed by proving the convexity of the expected bunker cost on each voyage leg with regard to the inter-arrival time between the two consecutive portcalls of the leg. The novel holistic solution algorithm exploited the special structure of the decision problem and integrated several techniques in a nice manner. The proposed model and algorithm were applied to an Asia-Europe-Oceania shipping network provided by a global liner shipping company. The network had a total of 46 ports in Asia, Europe, and Oceania. These 46 ports were served by 11 ship routes with three types of ships. There were a total of 100 container routes in the shipping network. The computational results demonstrated that the proposed model provided a useful planning tool for liner shipping companies.

2.2 Operational-Level Schedule Design

At the operational level, Yan et al. (2009) developed a container routing model from the perspective of a liner shipping company with the objective of maximizing operating profit while considering the arrival time of ships at ports. They performed a case study utilizing operating data from a major Taiwanese marine shipping company. Brouer et al. (2013b) proposed a vessel schedule recovery problem to evaluate a given disruption scenario and to select a recovery action balancing the tradeoff between increased bunker consumption and the impact on cargo in the remaining network and the customer service level. The model was applied to four real-life cases from Maersk Line and cost savings of up to 58 % were achieved by the suggested solutions compared to realized recoveries of the real life cases.

2.3 Gaps of Existing Studies

None of the above studies have taken into consideration the port time windows. In other words, they have all assumed that a port is always ready for service whenever a ship comes. This may not be consistent with the practice. Hence, the above literature review clearly shows that liner ship route schedule design with port time windows is a new research topic. It incorporates both shipping operations and port operations in the planning decision and hence has practical significance for liner shipping companies. This study thus focuses on the tactical-level schedule design problem.

3 Problem Description

Consider a ship route such as the NCE service in Fig. 10.1. The ship route has a weekly service frequency which means each port of call is visited on the same day every week. The port rotation of the ship route has a total of N ports. Define\(I:=\{ 1,2,\cdots,N \}\), which is a set representing all the ports of call for simplifying the notation. Since the ports of call on a ship route form a loop, we can arbitrarily choose one port as the first port of call. For instance, if we let New York be the first port of call, the NCE service can be coded as follows: 1 (New York) → 2 (Norfolk) → 3 (Savannah) → 4 (Pusan) → 5 (Qingdao) → 6 (Ningbo) → 7 (Shanghai) → 1 (New York). If we let Norfolk be the first port of call, the NCE service can be coded as follows: 1 (Norfolk) → 2 (Savannah) → 3 (Pusan) → 4 (Qingdao) → 5 (Ningbo) → 6 (Shanghai) → 7 (New York) → 1 (Norfolk). We let\(p_{i}\) represent the physical port of the ith port of call,\(i \in I\). We further define the voyage from the ith port to the\((i+1)\)th as leg i; leg N is the voyage from the Nth port of call to the first one. For instance, if we define New York to be the first port of call, then the first leg is the journey from New York to Norfolk, the second leg is the journey from Norfolk to Savannah, the third leg is the journey from Savannah to Pusan, the fourth leg is the journey from Pusan to Qingdao, the fifth leg is the journey from Qingdao to Ningbo, the sixth leg is the journey from Ningbo to Shanghai, the seventh leg is the journey from Shanghai to New York.

We assume that\(p_{i}\ne p_{j}, i\ne j\). In other words, we assume that each physical port is visited only once during a round-trip journey. It should be noted that in reality there are many ship routes that visit a port twice in a round-trip journey, and in extreme cases, three times. The methods proposed in the chapter could be used for designing schedules for these ship routes, too, but need considerable modification, as to be discussed in Sect. 10.7. For better readability, we only consider the case that each physical port is visited only once during a round-trip journey.

3.1 Ship Cost, Bunker Cost and Inventory Cost

We assume that a string of m homogeneous containerships are deployed on the ship route to maintain a weekly service frequency. Ships are homogeneous means that they have the same capacity, age, designed speed, and other ship specific characteristics. In reality, two ships cannot be the same because even if they were the same when constructed, different past operating conditions would make them different (e.g., fuel efficiency). However, in mathematical modeling, it is convenient to model ships with similar characteristics as identical without losing much precision. That is why we also adopt such an approach. The highest possible sailing speed of the ships is denoted by\(V^{\max}\) (knot). Represent by\(t^{\text{port}}_{i}\) the time (h) a ship spends at port i, and\(L_{i}\) (n mile) the distance of leg i. The maximum speed of containerships is usually higher than that of bulk cargo ships and tankers. This is mainly because containerships transport containerized cargos with higher unit value, and hence faster delivery is more desirable. The time a ship spends at a port consists of the time for towage, mooring and unmooring, possible wait time, and container handling. The most significant time component is container handling. For instance, if the average container handling efficiency is 100 containers/h, and a total of 2000 containers are loaded or unloaded, then the container handling time is 20 h. We assume that the container handling time is fixed. In reality, this time cannot be exactly predicted, and hence here we can consider\(t^{\text{port}}_{i}\) as already including some buffer time.

3.1.1 Ship Cost

Let\(v_{i}\) be the sailing speed (knot) of ships on leg i. To maintain a weekly service frequency, we have the relation:

$$\displaystyle\sum_{j\in I} L_{j}/v_{j} + \sum_{j\in I} t^{\text{port}}_{j} =168m$$
(10.1)

In Eq. (10.1), the left-hand side is the round-trip journey time (h), and the right-hand side is the number of ships times 168 h/week. Equation (10.1) is the fundamental equation defining the number of ships required to maintain a weekly frequency. For instance, if the round-trip journey time is 336  h (2 weeks), two ships are needed to maintain a weekly frequency. If the round-trip journey time is 8 weeks, eight ships must be deployed to maintain a weekly frequency. If we can reduce the round-trip journey time from 8 to 7 weeks by sailing faster, skipping ports, or shortening port time, we can save one ship. Denote by\(C^{\text{ship}}\) (USD/week) the fixed operating cost of a ship, which is the ship chartering cost but does not include bunker fuel cost. Hence, the weekly operating cost of the ships deployed on the ship route is\(C^{\text{ship}}m\).

3.1.2 Bunker Cost

As aforementioned, Eq. (10.1) implies that when the speed is higher, fewer ships need to be deployed to maintain the same weekly service frequency. However, a higher speed implies a larger amount of bunker consumed. To take into consideration the bunker cost, we let\(g_i(v_{i})\) (t/n mile) be the bunker consumption function at the speed\(v_{i}\) on leg i. Based on the results in existing studies (Psaraftis and Kontovas 2010; Kontovas and Psaraftis 2011; Ronen 2011; Wang and Meng 2012d; Psaraftis and Kontovas 2013), we assume that\(g_i(v_{i})\) is a power function of the form:

$$g_i(v_{i}) = a_i(v_{i})^{b_i}, i\in I$$
(10.2)

where a i and\({b_i}\) are two coefficients calibrated from historical operating data and satisfy\(a_i>0\) and\({b_i}>1\). Denote by α (USD/t) the bunker fuel price. The weekly bunker cost is\(\alpha \sum_{i\in I} L_{i}g_{i}(v_{i})=\alpha \sum_{i\in I} L_{i}a_i(v_{i})^{b_i}\). It should be noted that although we assume that the bunker consumption function has the form of Eq. (10.2), the solution method that will be elaborated later is applicable to other forms of bunker consumption functions, too.

3.1.3 Inventory Cost

Besides the ship cost and bunker cost, the inventory cost of containers should also be incorporated. In fact, a lower speed (slow-steaming) would increase the transit time of containers, and thereby the inventory cost. We let\(\bar V_i\) be the number of containers (twenty-foot equivalent units, or TEUs) on leg i, and β be the unit inventory cost (USD per TEU per h). Since the time spent at each port is constant, we only consider the inventory cost associated with sailing time at sea (sea time). Therefore, the total inventory cost is\(\sum_{i \in I}\beta\bar V_i L_i/{v_i}\). It should be noted that\(\bar V_i\) is actually a predicted value based on historical data. The inventory cost is included to reflect the quality of the liner shipping company’s transport servicesFootnote 1. Note further that β is also predicted and our model allows β to vary with different voyage legs.

3.2 Liner Ship Route Schedule

We define the time 00:00 of a certain Sunday as time 0 (h), and hence 10:00 on Monday is time 24 + 10 = 34, and 10:00 next Tuesday is time 168 + 24 * 2 + 10 = 226. Since we assume that the port time (\(t^{\text{port}}_{i}\)) is fixed, the time of departure (\(t^{\text{dep}}_{i}\)) at port i is determined by the time of arrival (\(t^{\text{arr}}_{i}\)) and the port time (\(t^{\text{port}}_{i}\)), that is:

$$t^{\text{dep}}_{i} = t^{\text{arr}}_{i} + t^{\text{port}}_{i}, i \in I$$
(10.3)

Because of the weekly service frequency, without loss of generality, we let

$$0 \le t^{\text{arr}}_1<168$$
(10.4)

Note that the above equation is important to eliminate symmetric solutions. Because of the weekly frequency, there is no difference whether the first port of call is visited at time 20 (i.e.,\(t^{\text{arr}}_1 = 20\)) or 20 + 168 (i.e.,\(t^{\text{arr}}_1 = 188\)). Hence, we only need to consider the case where the arrival at the first port of call is between time 0 and 168.

We define the time when the ship returns to the first port of call as\(t^{\text{arr}}_{N+1}\), that is:

$$t^{\text{arr}}_{N+1}:= t^{\text{arr}}_1 + 168m$$
(10.5)

This equation implies that a ship needs\(t^{\text{arr}}_{N+1}-t^{\text{arr}}_1 = 168m\) hours to complete a round-trip journey. This is consistent with the weekly frequency.

The schedule of a liner ship route is the vector defined below:

$$(t^{\text{arr}}_i, i \in I; m)$$
(10.6)

We stress that the schedule of a liner ship route cannot be represented by\((t^{\text{arr}}_i, i \in I)\). This is because, given\((t^{\text{arr}}_i, i \in I)\), we do not know the inter-arrival time from the last port of call to the first. The number of ships m together with\((t^{\text{arr}}_i, i \in I)\) can define the inter-arrival time from the last port of call to the first. Of course, the schedule can also be uniquely determined by\((t^{\text{arr}}_i, i \in I; t^{\text{arr}}_{N+1})\).

3.3 Port Time Window

A ship cannot arrive at a port at any time because the port may be busy during some periods of a week. Hence, we let\(\Omega_i\subseteq[0,168)\) be the time in a week during which port i is available for serving ships on the ship route, i.e., port time window. For example,\(\Omega_i= [10, 20]\cup[96, 120]\) means that port i is available from 10:00 Sunday to 20:00 Sunday, and 00:00 Thursday to 00:00 Friday.\(\Omega_j = [0, 24]\cup[144, 168)\) means that port j is available from 00:00 Sunday to 00:00 Monday, and 00:00 Saturday to 00:00 Sunday. In other words, the port is available from 00:00 Saturday to 00:00 Monday next week.

We assume that the port time window at each port (which corresponds to each port of call because we assume that each port is visited once in a round-trip journey) is known. In reality, a liner shipping company can obtain this port time window from port operators, because port operators have to tell it whether it is possible to arrive at a particular time.

A ship needs to stay at port i for\(t^{\text{port}}_{i}\) hours. Therefore, we could easily compute the feasible arrival times at port i based on\(\Omega_i\). For instance,\(\Omega_i = [10, 20] \cup [96, 120]\) and\(t^{\text{port}}_{i}=5\) imply that\(t^{\text{arr}}_i\) could be any value in\([10, 15] \cup [96, 115]\). We let\(\hat \Omega_i \subseteq [0, 168)\) be the set of feasible arrival times at port i in a week. It should be mentioned that because of the weekly service frequency, when\(\hat \Omega_i=[10, 15] \cup [96, 115]\), the arrival time\(t^{\text{arr}}_i = 180\) (which corresponds to time 12 of the next week) is also feasible. In fact, an arrival time is feasible if and only if\(\left(t^{\text{arr}}_i mod 168\right) \in \hat \Omega_i\), where the “mod” operator obtains the modulus of two integer numbers.

Therefore, the ship route schedule design problem with port time window aims to determine the optimal arrival time at each port of call on a ship route that satisfies the port time window to minimize the total cost including ship cost, bunker cost, and inventory cost.

4 Mathematical Model

4.1 Notation

Before presenting the model, we list the notation below.

Variables

m :

Number of ships deployed on the ship route

\(t^{\text{arr}}_{i}\) :

Arrival time (h) at the ith port of call

\(t^{\text{arr}}_{N+1}\) :

The time (h) when the ship returns to the 1st port of call

\(t^{\text{dep}}_{i}\) :

Departure time (h) from the i th port of call

\(v_{i}\) :

Sailing speed (knot) on leg i

Parameters

4.2 Model

The SDPTW can be formulated as:

[SDPTW]

$$\min C^{\text{ship}}m + \alpha \sum_{i\in I} L_{i}{g}_{i}(v_{i})+ \sum_{i\in I}\beta\bar V_i \frac{L_i}{v_i}$$
(10.7)
α:

The bunker fuel price (USD/t)

β:

The unit inventory cost (USD per TEU per h)

\(\hat \Omega_i\) :

The set of feasible arrival times at the ith port of call

\(C^{\text{ship}}\) :

The weekly operating cost of a ship (USD/week)

\(g_i(v_{i})\) :

Bunker consumption per nautical mile at the speed\(v_{i}\) on leg i (t/n mile)

I :

Set of legs,\(I=\{1,2,\cdots,N\}\)

\(L_{i}\) :

Oceanic distance (n mile) of the leg i

N :

Number of ports on the ship route

\(p_{i}\) :

The port i on the ship route

\(t^{\text{port}}_{i}\) :

Time (h) a ship spends at port i

\(\bar{V}_i\) :

Number of containers (TEUs) on leg i

\(V^{\max}\) :

Maximum speed of the ships (knot)

subject to:

$$\sum_{j\in I} L_{j}/v_{j} + \sum_{j \in I} t^{\text{port}}_{j} =168m$$
(10.8)
$$t^{\text{dep}}_{i} = t^{\text{arr}}_{i} + t^{\text{port}}_{i}, i \in I$$
(10.9)
$$0 \le t^{\text{arr}}_1<168$$
(10.10)
$$t^{\text{arr}}_{N+1}= t^{\text{arr}}_1 + 168m$$
(10.11)
$$v_{i} =\frac{L_{i}}{t^{\text{arr}}_{i+1}-t^{\text{dep}}_{i}}, i \in I$$
(10.12)
$$\left(t^{\text{arr}}_{i} \mathrm{mod} 168\right) \in \hat \Omega_i, i \in I$$
(10.13)
$$0\leq v_{i} \leq V^{\max}, i \in I$$
(10.14)
$$m \in \{1,2,3,\cdots\}$$
(10.15)

The objective function (10.7) minimizes the sum of ship cost, bunker cost, and inventory cost. The first term is the ship cost, which is proportional to the number of ships deployed. The second term is the bunker cost, which varies nonlinearly with speed. The third term is inventory cost, which is summed over all legs. Constraint (10.8) requires that the service on this ship route is weekly. Constraint (10.9) defines the departure time from each port of call. Constraint (10.10) eliminates symmetric solutions. Constraint (10.11) defines the time when the ship returns to the first port of call after one round trip. Constraint (10.12) calculates the sailing speed on each leg. Constraint (10.13) imposes the port time window restrictions. Constraint (10.14) enforces the lower and upper limits on the sailing speed. Constraint (10.15) indicates that the number of ships is a positive integer.

5 Solution Method

The model [SDPTW] is a mixed-integer nonlinear non-convex optimization problem. It is difficult to solve because (i) it has both continuous (sailing speed) and discrete variables (number of ships); (ii) it has nonlinear objective function (10.7) and nonlinear constraints (10.8) and (10.12); (iii) the set\(\hat \Omega_i\) in Eq. (10.13) may consist of disjoint intervals, as shown in Fig. 10.2. This will lead to a non-convex domain even without considering the discrete decision variables; moreover, even if\(\hat \Omega_i\) is convex, the “mod” operator still leads to a non-convex domain. These difficulties make the model challenging and hard to be solved by existing commercial solvers. To address the model, we have to develop our own solution algorithm.

We notice that the optimal arrival time at a port of call almost only depends on the arrival time at its previous port of call, and has little to do with the arrival times at even further previous ports of call. Such a property enlightens us to develop a dynamic programming based solution method that solves the problem to optimality.

5.1 Space-Time Network for a Given Number of Ships

Given the number of ships m, say,\(\bar m\), the ship cost\(C^{\text{ship}}\bar m\) is fixed. Moreover, the round-trip journey time is also fixed, that is,\(168\bar m\) hours. The model can be reformulated as

[SDPTW-\(\bar m\)]

$$\min \, \alpha \sum_{i\in I} L_{i}{g}_{i}(v_{i})+ \sum_{i\in I}\beta\bar V_i \frac{L_i}{v_i}$$
(10.16)

subject to:

$$\sum_{j\in I} L_{j}/v_{j} + \sum_{j \in I} t^{\text{port}}_{j} =168\bar m$$
(10.17)
$$t^{\text{dep}}_{i} = t^{\text{arr}}_{i} + t^{\text{port}}_{i}, i \in I$$
(10.18)
$$0 \le t^{\text{arr}}_1<168$$
(10.19)
$$t^{\text{arr}}_{N+1}= t^{\text{arr}}_1 + 168\bar m$$
(10.20)
$$v_{i} =\frac{L_{i}}{t^{\text{arr}}_{i+1}-t^{\text{dep}}_{i}}, i \in I$$
(10.21)
$$\left(t^{\text{arr}}_{i} \text{mod} 168\right) \in \hat \Omega_i, i \in I$$
(10.22)
$$0\leq v_{i} \leq V^{\max}, i \in I$$
(10.23)

Note that model [SDPTW-\(\bar m\)] no longer has discrete variables.

5.1.1 Property of the Problem

As\(t^{\text{arr}}_1\) is between 0 and 168, we can discretize it and enumerate all possible discretized values. Given m and\(t^{\text{arr}}_1\) (say,\(\bar m\) and\(\bar t^{\text{arr}}_1\)), if the arrival time at a particular port of call is known, then the bunker cost and inventory cost associated with the voyage legs after the port of call depend only on its arrival time and are independent of the arrival times at ports of call prior to it. For instance, if we know that the arrival time at the\(\bar i\)th port of call is\(\bar t^{\text{arr}}_{\bar i}\), the problem can be split into two subproblem: subproblem 1 determines the arrival time at each port of call 2, 3, ⋯,\(\bar i-1\); subproblem two determines the arrival time at each port of call\(\bar i+1\),\(\bar i+2\), ⋯, N. To be clear, we formulate the two subproblems below:

[SDPTW-\(\bar m\)-subproblem 1]

$$\min\, \alpha \sum_{i=1}^{\bar i-1} L_{i}{g}_{i}(v_{i})+\sum_{i=1}^{\bar i-1}\beta\bar V_i \frac{L_i}{v_i}$$
(10.24)

subject to:

$$t^{\text{dep}}_{i} = t^{\text{arr}}_{i} + t^{\text{port}}_{i}, i = 1, 2, 3, \cdots, \bar i-1$$
(10.25)
$$v_{i} =\frac{L_{i}}{t^{\text{arr}}_{i+1}-t^{\text{dep}}_{i}}, i = 1, 2, 3, \cdots, \bar i-1$$
(10.26)
$$\left(t^{\text{arr}}_{i} \text{mod} 168\right) \in \hat \Omega_i, i = 2, 3, \cdots, \bar i-1$$
(10.27)
$$0\leq v_{i} \leq V^{\max}, i = 1, 2, 3, \cdots, \bar i-1$$
(10.28)
$$t^{\text{arr}}_{1} = \bar t^{\text{arr}}_{1}$$
(10.29)
$$t^{\text{arr}}_{\bar i} = \bar t^{\text{arr}}_{\bar i}$$
(10.30)

[SDPTW-\(\bar m\)-subproblem 2]

$$\min \, \alpha \sum_{i= \bar i}^{N} L_{i}{g}_{i}(v_{i})+ \sum_{i= \bar i}^{N}\beta\bar V_i \frac{L_i}{v_i}$$
(10.31)

subject to:

$$t^{\text{dep}}_{i} = t^{\text{arr}}_{i} + t^{\text{port}}_{i}, i =\bar i, \bar i +1, \cdots, N$$
(10.32)
$$v_{i} =\frac{L_{i}}{t^{\text{arr}}_{i+1}-t^{\text{dep}}_{i}}, i =\bar i, \bar i +1, \cdots, N$$
(10.33)
$$\left(t^{\text{arr}}_{i} \text{mod} 168\right) \in \hat \Omega_i, i =\bar i+1, \bar i+2, \cdots, N$$
(10.34)
$$0\leq v_{i} \leq V^{\max}, i =\bar i, \bar i +1, \cdots, N$$
(10.35)
$$t^{\text{arr}}_{\bar i} = \bar t^{\text{arr}}_{\bar i}$$
(10.36)
$$t^{\text{arr}}_{N+1}= \bar t^{\text{arr}}_1 + 168\bar m$$
(10.37)

Hence, the decisions about the arrival time at each port of call could be made in a sequential manner, that is, the optimal arrival time at the next port only depends on the arrival time at the current port (and of course\(\bar m\) and\(\bar t^{\text{arr}}_1\)). Exploiting this property, we construct a space-time network and thereby develop a dynamic programming based solution approach.

5.1.2 Space-Time Network Construction Method

To construct a space-time network, in view of Eq. (10.10), we only need to consider a time horizon of\(168(m+1)\) hoursFootnote 2. In other words, the time horizon is\(m+1\) weeks. We discretize the time horizon into intervals, the length of each interval being 1 hFootnote 3. To take into account the voyage from the Nth port of call to the first one, we consider\(N+1\) ports in the space-axis, where the\((N+1)\)th port corresponds to the returning to the first one. Each of the\(N+1\) ports is copied\(168(m+1)\) times. Hence, each node\((t,i)\) in the space-time network corresponds to a port i at a particular time t. We define the time t as the arrival time at the port i. Therefore, node\((t,i)\) in the space-time network means that port i is visited at time t. For each port i, if\((t \text{mod} 168) \not \in \hat \Omega_i\), then the port is busy at the time t. Hence, it is impossible to visit port i at time t. Consequently, for each port i, if\((t\; \text{mod} 168) \not \in \hat \Omega_i\), then we remove the node (or mark it as inactive as it will not be visited).

Moreover, from each active node\((t,i)\), the ship may visit any active node\((t^{\prime},i+1)\) satisfying

$$t^{\prime} \ge t + t_i^{\text{port}} + \frac{L_i}{V^{\max}}$$
(10.38)

In words, from port i, a ship can only visit port\(i+1\) and the sailing speed cannot exceed\(V^{\max}\). Of course, the port time window at port\(i+1\) is already implicitly considered by removing the nodes that cannot be visited.

We formally state the method for constructing the space-time network below:

Algorithm 1: Construction of space-time network \(\boldsymbol{G(m)}\) Footnote 4 for a given ship number \(\boldsymbol{m}\)

  1. Step1.

    (Construct nodes): Construct a space-time network with the horizontal axis being the time (hours, starting from 0 which represents 00:00 of a particular Sunday), and the vertical axis being the space (ports). The length of the time axis is\(168(m+1)\) with the discrete time points being 0, 1, 2,⋯,\(168(m+1)-1\). The vertical axis has\(N+1\) ports, that is, the 1st port of call, the 2nd port of call,⋯, the Nth port of call, and the\((N+1)\)th port of call. Note that the\((N+1)\)th port of call actually represents that the ship returns to the first port of call after a round-trip journey of 168 m hours. Each of the\(N+1\) ports is copied\(168(m+1)\) times. Now, in the space time network, there are\(168(m+1)(N+1)\) nodes. A node can be represented by an ordered pair (time unit, port ID), or\((t, i)\), which means that port i is visited at time t.

  2. Step 2.

    (Deactivate nodes):

    1. Step 2.1

      (Deactivate nodes that violate port time windows) For each node\((t, i)\) in the space-time network, if\(\left(t\, \text{mod} 168\right) \not \in \hat \Omega_i\), the ship cannot visit the node and hence we mark it as inactive;

    2. Step 2.2

      (Deactivate nodes that violate Eq. (10.10)) For each node\((t, 1)\) that corresponds to the first port of call in the space-time network, if\(t \ge 168\), the ship cannot visit the node and hence we mark it as inactive;

    3. Step 2.3

      (Deactivate nodes that violate Eq. (10.11)) For each node\((t, N+1)\) that corresponds to the return to the first port of call in the space-time network, if\(t \le 168m-1\), the ship cannot visit the node and hence we mark it as inactive (note that here the number of ships m is given).

  3. Step 3.

    (Construct arcs):

    1. Step 3.0

      Set\({i=0}\);

    2. Step 3.1

      Set\(i:=i+1\). For each active node\((t,i)\),\(t\in\{0,1,2,\cdots,168(m+1)-1\}\), construct an arc from it to any of the active nodes\((t^{\prime},i+1)\) satisfying\({t^{\prime}} \ge t + t_{i}^{\text{port}} + \frac{L_i}{V^{\max}}\). Hence, the sailing time of the arc is\(t^{\prime}-t-t^{\text{port}}_{i}\). Moreover, the sailing speed is also determined, which is\(v_{i} ={L_{i}}/{(t^{\prime}-t-t^{\text{port}}_{i})}\). Therefore, the corresponding bunker cost is\(\alpha L_{i}\text{g}_{i}(v_{i})\) and the inventory cost of the containers is\((t^{\prime}-t-t^{\text{port}}_{i})\beta\bar V_i\) (as aforementioned, the inventory cost associated with port time is constant, and hence is not modeled). The cost (sum of bunker and inventory cost) of the arc is\(\alpha L_{i}\text{g}_{i}({L_{i}}/{(t^{\prime}-t-t^{\text{port}}_{i})})+(t^{\prime}-t-t^{\text{port}}_{i})\beta\bar V_i\).

    3. Step 3.2

      If\(i=N\), Stop. Otherwise, go to Step 3.1.

5.1.3 An Example of Space-Time Network Construction

We use an example to demonstrate the space-time network construction method. For the ease of presentation, we use “day” rather than “hour” in the discretization. That is, 0 represents Sunday, 1 represents Monday, etc. If we do not use days but use hours, there would be too many nodes in the space-time network and it would be difficult to understand it. Suppose that there are three ports of call on the ship route. The feasible arrival days are\(\hat \Omega_1=\{2, 3, 6\}\),\(\hat \Omega_2=\{0, 1, 5, 6\}\), and\(\hat \Omega_3=\{4, 5\}\). In addition, suppose that\(t_1^{\text{port}} + \frac{L_1}{V^{\max}} = 4\) days,\(t_2^{\text{port}} + \frac{L_2}{V^{\max}} = 5\) days, and\(t_3^{\text{port}} + \frac{L_3}{V^{\max}} = 1\) day. The number of ships\(m=2\). The three steps in Algorithm 1 are shown in Fig. 10.4, 10.5 and 10.6, respectively.

Fig. 10.4
figure 4

Construct nodes

Fig. 10.5
figure 5

Deactivate nodes

Fig. 10.6
figure 6

Construct arcs

Let us look at Fig. 10.4 first. As\(m = 2\) and we use “day” to discretize the time, there are a total of 14 days in the time axis. Hence, each port should be copied 14 times. Since there are three ports of call on the ship route, considering the loop property of the ship route, we need to consider 4 ports, where the fourth port is actually the return to the first port. As a result, there are a total of\(4\times 14 = 56\) nodes in the space-time network.

In Fig. 10.5, we deactivate nodes. In step 2.1, since\(\hat \Omega_2=\{0, 1, 5, 6\}\), nodes corresponding to port 2 are active only if\(t = 0, 1, 5, 6, 7, 8, 12, 13\). In other words, only 8 nodes corresponding to port 2 are active. Since\(\hat \Omega_3=\{4, 5\}\), nodes corresponding to port 3 are active only if\(t = 4, 5, 11, 12\). In other words, only 4 nodes corresponding to port 3 are active. Since\(\hat \Omega_1=\{2, 3, 6\}\) and port 1 must be visited in the first week, nodes corresponding to port 3 are active only if\(t = 2, 3, 6\). In other words, only 3 nodes corresponding to port 1 are active. Since\(\hat \Omega_1=\{2, 3, 6\}\) and port of call 4 (which is the same port as port of call 1) must be visited in the second week (as\(m=2\)), nodes corresponding to port 4 are active only if\(t = 9, 10, 13\). In other words, only 3 nodes corresponding to port 4 are active.

In Fig. 10.6, we add arcs connecting the nodes. Note that the arcs connect only active nodes, and must respect the maximum speed of ships. For instance, both nodes\((2, 1)\) and\((5, 2)\) are active. However, their time difference\(5-2=3\) is smaller than\(t_1^{\text{port}} + \frac{L_1}{V^{\max}} = 4\). Hence, ships cannot visit node\((5, 2)\) from node\((2, 1)\).

5.1.4 Loop Property of Ship Route in the Space-Time Network

It should be noted that in the space-time network, if a ship visits port 1 at time\(t_1^{\text{arr}}\), it must return to port 1 at time\(t_1^{\text{arr}}+168m\). This constraint poses difficulties for finding the schedule with the minimum cost. Nevertheless, we identify that the total number of possible\(t_1^{\text{arr}}\) is at most 168. Therefore, we could enumerate all possible\(t_1^{\text{arr}}\). For each fixed\(t_1^{\text{arr}}\), we can apply the dynamic programming approach to find the shortest path (minimum-cost path) from node\((t_1^{\text{arr}}, 1)\) to node\((t_1^{\text{arr}}+168m, N+1)\), denoted by\(c(m, t_1^{\text{arr}})\) Footnote 5. Hence, the minimum total cost with given m is\(C^{\text{ship}}m+\min_{t_1^{\text{arr}} \in \{0, 1, 2, \cdots, 167\}}c(m, t_1^{\text{arr}})\).

5.2 Lower Bound of the Number of Ships

The previous sub-section provides an approach for finding the optimal schedule with a given m. However, as m is a positive integer, we cannot enumerate all possible values of m. To overcome this difficult, we investigate how to confine the range of possible values of m.

According to Eq. (10.1), the minimum number of ships can be computed by:

$$m^{\min} = \left\lceil \left(\sum_{j\in I} L_{j}/V^{\max} + \sum_{j \in I} t^{\text{port}}_{j}\right)/168 \right\rceil$$
(10.39)

where\(\lceil x \rceil\) is the smallest integer greater than or equal to x.

5.3 Lower Bound of the Total Cost With Given Number of Ships

When the number of ships is m, a lower bound on the total cost, denoted by LB(m), can be computed as follows. As the ship cost in Eq. (10.7) is fixed, we minimize the sum of bunker cost and inventory cost by optimizing the speed. To facilitate the computation of the lower bound, we relax relevant constraints and only require that the speed is nonnegative. Using the bunker consumption function (10.2), we have:

$$\min_{v_i} \sum_{i\in I}\alpha L_{i}{a}_{i}(v_{i})^{b_i}+ \sum_{i\in I}\beta\bar V_i \frac{L_i}{v_i}$$
(10.40)

subject to:

$$-v_{i} \le 0, i \in I$$
(10.41)

It is easy to see that the speed on different legs can be optimized independently. Let\(\lambda_i \ge 0\) be the Lagrangian multiplier associated with constraint\(-v_{i} \le 0\). The Karush-Kuhn-Tucker (KKT) condition of the above optimization problem is:

$$\begin{aligned} \alpha L_{i}{a_i}b_i(v_{i})^{b_i-1}- \beta\bar V_i L_i \frac{1}{(v_i)^2} - \lambda_i = 0\end{aligned}$$
(10.42)
$$\begin{aligned} \lambda_i(-v_{i})=0 \end{aligned}$$
(10.43)
$$\begin{aligned} -v_{i} \le 0\end{aligned}$$
(10.44)
$$\begin{aligned} \lambda_i \ge 0\end{aligned}$$
(10.45)

Apparently\(-v_{i}< 0\), and therefore\(\lambda_i=0\). Hence, we can compute the optimal speed in the model, denoted by\(\tilde v_i\):

$$\tilde v_i = \left(\frac{\beta\bar V_i}{\alpha{a_i}{b_i}}\right)^{\frac{1}{b_i+1}}$$
(10.46)

Consequently, a lower bound of the total cost with m ships is:

$$LB(m)= C^{\text{ship}}m + \alpha \sum_{i\in I} L_{i}{g}_{i}(\tilde v_{i})+ \sum_{i\in I}\beta\bar V_i \frac{L_i}{\tilde v_i}$$
(10.47)

5.4 Overall Algorithm

Sub-section 10.5.1 develops a space-time network model that can find the optimal schedule for a given number of ships using dynamic programming approach. Sub-section 10.5.2 obtains a lower bound on the number of ships that are needed. Sub-section 10.5.3 proposes a lower bound on the total cost for a given number of ships, and this lower bound increases with m as shown in Eq. (10.47). Based on these results, we now present the overall solution algorithm:

Algorithm 2: Solution method for the SDPTW

  1. Step 0.

    Set\(m=m^{\min}-1\). Denoted by\(C^{*}:= \infty\) the minimum total cost obtained (upper bound).

  2. Step 1.

    Set\(m:=m+1\). If\(LB(m)\ge C^{*}\), we have obtained the optimal solution and hence stop. Otherwise, construct the space-time network G(m).

  3. Step 2.

    For each\(t_1^{\text{arr}} \in \{0, 1, 2, \cdots, 167\}\), find the shortest path from node\((t_1^{\text{arr}}, 1)\) to node\((t_1^{\text{arr}}+168m, N+1)\) and its cost\(c(m, t_1^{\text{arr}})\). If\(C^{\text{ship}}m+c(m, t_1^{\text{arr}})< C^{*}\), set\(C^{*}:=C^{\text{ship}}m+c(m, t_1^{\text{arr}})\) and record the current solution. When all the\(t_1^{\text{arr}}\) have been examined, go to Step 1.

Algorithm 2 terminates in a finite number of iterations. This is because once a finite upper bound\(C^{*}\) is found, the algorithm will stop before or when\(m=\left\lceil C^{*}/C^{\text{ship}}\right\rceil\).

6 Case Study

We choose a case study of the NCE ship route in Fig. 10.1 to evaluate the proposed model and solution method. We assume that 5000-TEU ships are deployed on it. We choose 5000-TEU ships because larger ships cannot transit the Panama Canal. The operating cost\(C^{\text{ship}}\) =500,000 USD/week, the maximum speed\(V^{\max}\)=30 knots, the bunker price\(\alpha=400\) USD/t and the unit inventory cost\(\beta=1\) USD per TEU per hour. The port time (h), distance (n mile), bunker consumption function\(g_i(v_{i})\), and volume of containers on each leg (TEUs) are shown in Table 10.1. In Table 10.1 we assume that the port time is either 1 day or 1.5 days, the bunker consumption functions may be different for different legs, and the number of containers on each leg implies that the ship load factor is between\(\frac{2200}{5000}=44\%\) and\(\frac{4500}{5000}=90\%\). The port time window at each port, i.e.,\(\Omega_i\), is shown in Table 10.2, which indicates that no port is available seven days a week.

Table 10.1 Parameters in the case study
Table 10.2 Port time windows

6.1 Impact of Port Time Windows

Firstly, we examine the effect of port time windows on the total cost and the optimal schedule. We assume that currently the port of Norfolk is only available on Tuesday, as shown in Table 10.2. Both Norfolk and the liner shipping company are interested in looking at the result if more available time is provided at Norfolk. We hence examine the cases of 1 day available for service each week (Tuesday), 2 days (plus Friday), 3 days (plus Monday), 4 days (plus Saturday), 5 days (plus Thursday), 6 days (plus Sunday), and 7 days (which means that Norfolk is ready to serve ships at any time). The results of the total cost and the optimal number of ships deployed are shown in Fig. 10.7.

It can be seen that more available days at Norfolk leads to a lower total cost: when the number of available days is increased from 2 to 6, the total cost is reduced by 214,639 USD per week. Figure 10.7 also demonstrates that the number of available days at a port may affect the optimal number of ships deployed. The optimal ship schedule, i.e., arrival time at each port of call, is shown in Table 10.3, where e.g. “Cases 1, 2” means that Norfolk is available only 1 or 2 days in a week. We observe that when the availability of Norfolk is changed, the optimal arrival times at it and its neighboring ports may also change. However, there is no impact on the optimal arrival times at ports that are a few voyage legs away from Norfolk.

Fig. 10.7
figure 7

Impact of port time windows on the total cost and the number of ships

Table 10.3 Impact of port time windows on the optimal schedule

6.2 Consequence of Port Efficiency

The port time\(t^{\text{port}}_{i}\) to a large extent depends on the container handling efficiency. Therefore, port operators seek to improve efficiency by optimizing quay-side and yard-side operations. To investigate the effect of port handling efficiency, we change the port time at Shanghai from 12 h, 18 h, 24 h, 30 h, to 36 h, and compute the optimal solution. We find that the optimal number of ships is always 10. The total cost increases with the time spent at Shanghai, as shown in Fig. 10.8. In fact, a ship creates value when it is moving cargo, whereas standing still at ports does not create value. Moreover, when the number of ships is given, a longer port time means a shorter sailing time, which leads to higher bunker consumption. Therefore, improving port efficiency will reduce the total cost for liner shipping companies.

We then fix the port time at Shanghai at 36 h, and change the port time at New York from 12 h, 18 h, 24 h, 30 h, to 36 h, and compute the optimal solution. The result is shown in Fig. 10.9. It clearly shows that when the port time is increased, not only the total cost increases, but also the optimal number of ships to deploy may increase.

Fig. 10.8
figure 8

Impact of port time at Shanghai on the total cost

Fig. 10.9
figure 9

Impact of port time at New York on the total cost and the number of ships

6.3 Result of Bunker Prices

The bunker price is volatile and hence we examine the sensitivity of the solution with different bunker prices from 300, 400, 500, 600, 700, to 800 USD/t. The result is shown in Fig. 10.10. We observe that the total cost increases almost linearly (not strictly linearly) with the bunker price. Consequently, a higher bunker price always leads to a higher cost for liner shipping companies. In addition, Fig. 10.10 clearly shows that there is a rise in the number of vessels used when the bunker price becomes higher. This is because when more ships are deployed, the sailing speed can be reduced, resulting in a lower bunker consumption. A reduction in bunker consumption is more significant when the bunker price is higher.

Fig. 10.10
figure 10

Result of bunker prices on the total cost and the number of ships

6.4 Effect of Inventory Cost

Finally, we investigate the effect of the unit inventory cost β on the total cost and the optimal number of ships to deploy by changing β from 1, 1.25 through to 2. The result is shown in Fig. 10.11, which indicates that the rise of unit inventory cost leads to a decreasing in the number of ships and an increasing of the total cost. This is because when the unit inventory cost is higher, containerships have to sail at a higher speed to shorten the transit time. Therefore, the number of ships is reduced. At the same time, the total cost inevitably becomes higher.

Fig. 10.11
figure 11

Effect of unit inventory cost on the total cost and the number of ships

7 Conclusions and Future Research

7.1 Summary of the Works

This research has studied the practical liner ship route schedule design problem with port time windows. This is a significant tactical planning decision problem because it considers the availability of ports when planning liner shipping services. As a result, the designed schedule can be applied in practice without or with only minimum revisions. This problem is formulated as a nonlinear non-convex optimization model. In view of the problem structure, we have developed an efficient dynamic-programming based holistic solution approach, which includes a space-time network model and a bounding technique for the total cost with give number of ships.

The proposed solution method is applied to the NCE service provided by OOCL. The results demonstrate that the port time windows, port handling efficiency, bunker price and unit inventory cost all affect the total cost, the optimal number of ships to deploy, and also the optimal schedule. A higher availability at ports, shorter port time, lower bunker price and larger unit inventory cost result in a lower total cost. Moreover, shorter port time, lower bunker price and smaller unit inventory cost lead to a smaller number of ships to deploy. Therefore, port operators can apply the proposed method to quantify the benefits to their customers, i.e., liner shipping companies, gained by expanding the ports’ capacity and improving the ports’ efficiency. Liner shipping companies may need to charter in more ships if they predict that the future bunker price will increase, or if they predict that a particular season is coming during which the value of the cargo is generally low.

7.2 Future Research Directions

7.2.1 Ship Route with Ports Visited More than Once

In this study we have assumed that each port of call is visited only once in a round-trip journey time. If some ports are visited twice in a round-trip journey, i.e., some ports of call correspond to the same physical port, then the port time window should be dealt with more carefully. First, in the dynamic programming approach, when we analyze the second arrival time at a port, we have to take into account the first arrival time at the port. As a result, in each step of the dynamic programming method, i.e., at port of call\(\bar i\), we have to record information on the arrival time at all the ports that have been visited and are to be visited again. This, in theory, may lead to the “curse-of-dimensionality”, because if there are n ports that are visited twice, in the worst-case we have to record the arrival times at n ports of call, and if the possible arrival times is e.g. 168, then the state space is\(168^n\) (without even considering the possible arrival times at\(\bar i\)), which increases exponentially with n.

In reality, this problem may not be that serious. This is because on one side, the number of ports of call in a round-trip journey is not very large. On the other side, the number of ports that are visited twice in a round-trip journey is even smaller. In addition, some ports may be always available, especially those major transshipment hubs such as Singapore and Hong Kong that attract transshipment containers based on their quality of service.

Another minor issue that is worth mentioning is that when a ship route has ports that are visited twice in a round-trip journey, the definition of port time window at these ports should be changed. For instance, if a port is visited only once, we only need to record the possible arrival times in a week at the port, i.e.,\(\hat \Omega_i\), with regard to all berths at the port. We consider a port with two berths, assuming that both berths are available on Sunday and Monday, and the port time is 24 h, then\(\hat \Omega_i=[0, 24)\). However, if the port is visited twice, we have to record the the time window of each berth at the port, because different arrivals may use different berths. Of course, this is only a minor issue in the dynamic programming algorithm, because we actually do not need to record which berth the first arrival has used.

7.2.2 Schedule Design for a Liner Shipping Network

Another issue that we will investigate is the schedule design problem with port time windows for a liner shipping network. In a liner shipping network, quite often than not, a port may be visited more than once in a week. Some major transshipment hubs, such as Singapore and Hong Kong, may be visited more than 20 times. Therefore, the berth time windows at each port have to be dealt with with special efforts. Apparently, dynamic programming is no longer applicable due to the “curse-of-dimensionality”.

When designing schedules for a liner shipping network, there is further the problem of container transshipment. In particular, we hope that containers could stay at transshipment ports for as short time as possible, by matching the arrival times of different ships. As a result, the schedules of different ship routes interact with each other, because the arrival time at a port of call on a ship route affects the arrival time at the port by ships on other ship routes. Hence, the resulting problem is more challenging and interesting.

7.2.3 Schedule Design with Container Routing

The transportation of containers in a liner shipping network is mainly determined by the transshipment cost, i.e., the liner shipping company aims to transport containers at minimum transshipment cost. However, the transit time or inventory cost of containers should also be incorporated, because it affects the competitiveness of the liner shipping company. The transit time is determined by the schedules of ship routes in the liner shipping network. Therefore, the schedule design problem for a liner shipping network and container routing should be examined in a holistic approach.

The challenge with such a problem lies in that the joint planning of schedule design and container routing is a highly nonlinear problem. In fact, Wang and Meng (2011) examined such a problem with some simplifications of schedule design. Due to the highly nonlinear property, they developed a hybrid genetic local search heuristic. The framework of the heuristic, i.e., iteratively optimizing schedule and container routing, may be further explored.

7.2.4 Schedule Design Under Uncertainty

In our study the port time and sea time are assumed to be deterministic, and possible uncertainty is incorporated by adding some “buffer” time. Such an engineering-based approach may not lead to optimal decisions. A worthwhile avenue is to capture port time and sea time uncertainty endogenously. This problem is complex because a natural problem that cannot be circumvented is: what should a ship do if it is delayed? In reality, the ship may speed up (Qi and Song 2012; Wang and Meng 2012b; Wang and Meng 2012c), may skip ports of call (Chang et al.2013b), may swap ports of call (Chang et al.2013b) and may leave a port early without loading all containers. The handling of delay itself is a challenging topic, even when the planned schedule is given. There is a long way to go to address this problem satisfactorily.