• No results found

A capacitated vehicle routing problem with simultaneous pickup and delivery and time windows: a transportation planning with a Tabu Search heuristic

N/A
N/A
Protected

Academic year: 2021

Share "A capacitated vehicle routing problem with simultaneous pickup and delivery and time windows: a transportation planning with a Tabu Search heuristic"

Copied!
36
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

A capacitated vehicle routing problem with simultaneous

pickup and delivery and time windows: a transportation

planning with a Tabu Search heuristic

Master thesis

Technology and Operations Management Faculteit Economie en Bedrijfskunde

Rijksuniversiteit Groningen June 2017 Maarten Bontes Student number: S3029999 m.bontes@student.rug.nl

Supervisor and first assessor: Dr. Ir. Stefano Fazi Second assessor: Dr. Ir. Durk-Jouke van der Zee

Abstract

In this thesis we study a typical vehicle routing problem (VRP) for inland container transport. We consider an inland terminal from where vehicles depart to deliver and pickup containers at quays in the Port of Rotterdam. Each container has a pre-defined time window. The problem can be modelled as an adaptation of the capacitated vehicle routing problem with pickup and delivery and time windows (CVRPPD-TW). The aim of this thesis is to develop a Tabu Search algorithm to solve the problem and to create a transport planning for containers with the objective of cost and delay minimization. To assess the goodness of the Tabu Search algorithm we compare instances solved by Gurobi. For most instances, we found the same solution in less processing time. Then, the algorithm is used to asses several settings for the container system under study. Results provide managerial implications in terms of system configurations and future scenarios.

(2)

2

Preface

This thesis is the final project to finish my master Technology and Operations Management. Also, it is the final stage of my entire study career which has been a long, but very interesting and fun road, where I experienced more ups than downs. I took this thesis with the chance and eager to learn programming in which I had no experience at all. Overall it was challenging and also fun, it is an experience for life and hope to improve my programming skills in my future working career. I thank Stefano Fazi for his advices throughout this entire thesis and the final assessment, it was pleasant to me that you were always available for questions. Also I want to thank Durk-Jouke van der Zee for assessing this thesis. I want to thank my brother Allard for you willingness to help me through the first stages of programming and the critical feedback. I thank Detmer for our discussions during this thesis.

(3)

3

Table of content

1. Introduction ... 4

2. Literature and Background ... 6

2.1 Inland container transport system ... 6

2.2 Vehicle routing problem ... 7

2.3 Heuristics ... 8

3. Problem description and formulation ... 10

3.1 Problem description ... 10

3.2 Model input ... 10

3.3 Mathematical model ... 12

4. Tabu Search algorithm ... 14

4.1 Initial solution ... 15

4.2 Local search ... 16

4.3 Functions ... 18

4.4 Stopping condition ... 19

5. Numerical analysis ... 20

5.1 Transport system parameters ... 20

5.2 Validation ... 21

5.3 Tabu Search parameters ... 22

5.4 Sensitivity analysis ... 25

6. Discussion ... 29

7. Conclusion ... 31

Reference ... 32

Appendix 1: Solutions Gurobi and Tabu Search ... 35

(4)

4

1. Introduction

In recent years, as worldwide traffic of containers has increased considerably, seaport terminals have become important links in global container logistics. Seaports sharing the same hinterland are subject to rising competition (Notteboom, 2006). In order to be competitive, not the geographical position is most important, it is the is the quality of the inland transport system beyond the seaport. Therefore, an effective and efficient container inland transport system is needed to attract container volumes (Konings, 2007; Pielage et al., 2007; Stahlbock & Voss, 2008).

Inland terminals are important components of inland container transport. Inland terminals favour the inbound and outbound flow of containers to a seaport. They are transhipment nodes for multimodality and are typically close to business centres. The presence of such terminals in the hinterland is vital, as they favour the use of high capacity modes of transport, such as trains and barges (Konings et al., 2013). The transportation of containers between an inland terminal and seaport entails a complex scheduling problem.

Transport planners of the inland terminal must allocate outbound and inbound container to the available fleet, typically existing of trucks, trains and barges. Export containers become available at the inland terminal and must be moved to the seaport before a certain due date. Likewise, import containers become available at the seaport and have a due date to be delivered at the inland terminal. The seaport consists of several quays, hence, different containers must be picked or delivered at different locations. The locations of the quays in the seaport are near each other, therefore it is beneficial to deliver export containers and pickup import containers in the same run. Additionally, once a container is delivered beyond its due date, a penalty is charged. Penalties increase the transport cost and is likewise of negative influence of the service towards clients. The objective for the transport planning is to minimize transport costs, while meeting capacity restrictions, due dates, and pickup and delivery constraints (Fazi, 2014).

The planning problem is known in literature as the capacitated vehicle routing problem with pickup and delivery and time windows (CVRPPD-TW). In our problem the time window is attached to the moving entity (container), this extends current literature where the time window is attached to the node (Montané & Galvão, 2006). The problem is np-hard, therefore a commercial software cannot solve this type of problems since they need too much processing time. In order to solve the problem, heuristics are the recommended approach (Bianchessi & Righini, 2007).

(5)

5

scenarios. Specifically, we will test in the first scenario a configuration where containers are consolidated at a depot for each seaport terminal. In the second scenario we assigns vehicles to one seaport terminal in order to reduce traffic between the seaport terminals. In the last scenario we will test a cost reduction for trucks in order to test the effect of barge usage. For this study, we will generate instances from data concerning traffic flow from the Port of Rotterdam and an inland terminal located Veghel, the Netherlands.

(6)

6

2. Literature and Background

In this chapter, we will first give an overview of the inland container transport system with an emphasis on inland transport and related literature. Second, we describe the vehicle routing problem with adaptations of the problem under study. Third, we give an overview of possible heuristics that are used to solve such problems and we motivate the usage of a Tabu Search heuristic.

2.1 Inland container transport system

Freight transport has been growing significantly in the last decades, mainly caused by global economic growth and the Chinese economic boom (Shintani et al., 2007; Yap et al., 2006). The standardization of containers encourage multimodal transport which is an important factor for the increasing integration of global trade. Seaports accommodate import and export container flows and are connected to other worldwide seaports through vessels (Notteboom, 2006). In order to create economic growth, seaports are each year aiming to attract a growing amount of container volumes (Port of Rotterdam, 2014). In order to reach more clients, seaport have a transport strategy to extend services in the hinterland trough inland terminals. These terminals are depots where clients can deliver export containers and pickup import containers (Rodrigue & Notteboom, 2009). Figure 2.1 illustrate an example of the inland container transport system for a seaport with the use of inland terminals.

Figure 2.1 - Inland container transport system

Hinterland Seaport Inland terminal Inland terminal Inland terminal Import Export Railways Waterways Clients Clients Clients Sea vessels Inland terminal Clients

(7)

7

capacity varies between 10 and 200 TEU1. For trains the amount of wagons is adjustable so

capacity is flexible up to 120 TEU and trucks have a capacity of 1 or 2 TEU. The advantage of barges and trains is that economies of scale can be obtained. However, time constraints impede a high barge or train utilization since containers have varying time windows. Therefore, trucks are preferred since they are more flexible and faster than barges or trains.

To schedule containers on vehicles, each inland terminal is responsible for its own inbound and outbound flow. Freight transport as in the described setting usually generates lots of empty vehicle movements. This can be caused by the fact that there is an unbalanced directional flow, for example more export than import (Shintani et al., 2007). This problem is not a big issue for barges and trains, as long as the cost per container it carries is less than truck costs, they still reach economies of scale. However, for trucks it can be costly if they have one empty trip. Therefore, it is important to create merged trips as much as possible in order to gain low costs per container. Hence, the focus of the planning is to simultaneously deliver export containers and pickup import containers so vehicles are loaded in both runs of a roundtrip (Imai te al., 2007).

2.2 Vehicle routing problem

The vehicle routing problem (VRP) is an extension of the well-known traveling salesman problem. It determines the optimal routes for a fleet of vehicles based at a depot to serve a set of nodes (Gilbert Laporte, 1992). In literature there are many compositions of the VRP (Bianchessi & Righini, 2007). In order to construct a planning for the transport between an inland container and seaport we consider a capacitated VRP with a heterogeneous fleet, simultaneous pickup and delivery at quays and time windows for containers (CVRPPD-TW).

The first composition that we defined is the capacitated VRP. Here, vehicles are based at one depot and are imposed by capacity restrictions (Toth & Vigo, 2002). The capacity constraint cannot be violated in our problem. Also, there are differences in capacities between vehicles as the fleet is heterogeneous (i.e. barges, trains and trucks).

The second composition in the VRP we consider is with pickup and delivery. Here, vehicles are required to first deliver an entity (i.e. containers) at a node (i.e. quays) before pickup another entity. In most literature it is assumed that entities from one node cannot be directly transported to another node (Montané & Galvão, 2006; Nagy & Salhi, 2005). Hence, the entity originates from, or end up at the depot. This is also the case in our problem where a container originate in case of export, or end up in case of import at the depot (i.e. inland terminal). Related to our problem is the pickup and delivery problem with time windows (PDPTW) form Nanry & Barnes (2000). They defined paired nodes for pickup and delivery, this is also useful in our problem for vehicles to first deliver a container and then pick up another one before returning. The difference however is that in the PDPTW a vehicle is

1 Twenty-foot Equivalent Unit (TEU): the measure of a standard container (6.1x2.44x2.59 meter) used to

(8)

8

only filled between nodes. In our problem vehicles need to be filled between inland terminal and the seaport since these are the most time consuming arcs to travel. This difference is illustrated in figure 2.2. Figure 2.2 - Runs Depot Node Node Depot Node Node Filled run Empty run PDPTW CVRPPD-TW

The last composition we address is the VRP with time windows where each node is visited only once by one vehicle within a given time interval (Bräysy & Gendreau, 2005). The closest related to our problem in literature is the VRP with simultaneous pickup and delivery (VRP_SPD) of Montané & Galvão (2006). In our problem we have a different definition for the time window, this is illustrated in figure 2.3. In the VRP_SPD each node (client) has a time window where a vehicle need to be arrived within. In our problem, each container has a time window for transport between the release date and due date to be delivered at destination. So, the difference is that the focus of the time window is on the entity to be transported while in the VRP_SPD the focus is on the node.

Figure 2.3- Time windows

0 1 2 3 4 R(1) D(1) R(2) D(2) 0 1 2 3 4 R(C) D(A) D(B) R(A) R(B) D(C) 0 R(0) D(0) Node Route Depot R: Release D: Due date (A): Container 1.1 VRP_SPD 1.2 CVRPPD-TW

2.3 Heuristics

Due to the complexity of the CVRPPD-TW, classical approaches that guarantee optimal solutions are feasible for only small size instances (Bianchi et al., 2009). Hence, the CVRPPD-TW is an np-hard problem and therefore to solve this, heuristics are widely used (Bianchessi & Righini, 2007).

(9)

9

This heuristic has proved to generate very good results on a VRP with time windows (Solomon, 1987). Another heuristic successfully applied to a VRP is the genetic algorithm which has a process that repeatedly modifies a population of individual solutions. At each step it selects a random individual from the current population which it uses to produce the next generation of solutions. Over the process, the population changes towards an optimal solution. The genetic algorithm improved the simulated annealing heuristic bud it had a lower quality than the Tabu Search heuristic (Baker & Ayechew, 2003).

The Tabu Search and Simulated annealing are two local search heuristics that are often used to solve VRPs (Osman, 1993; Vanbreedam, 1995). The advantage of local search heuristics is that they use little memory structures and find reasonable solutions in a large search space. Simulated annealing is a technique that aims to find an approximate global optimum for a discrete search space (e.g. a set of nodes) (Kirkpatrick et al., 1983). The advantage is that it is able to escape a local maximum by also accepting bad moves. However, it can be limited by the calculation speed for a large set of nodes. A Tabu Search heuristic starts with an initial solution which forms a basis to seek for improvements by a local search in different neighbourhoods. A limitation of the Tabu Search is that it can get trapped into suboptimal regions where other neighbourhoods are worse or equally fit. However, additional procedures can be integrated to overcome this trap as much as possible (Glover, 1989).

(10)

10

3. Problem description and formulation

In this chapter we will start with a problem description. Second, we will explain the input for the model. Third, we will model problem as a mixed-integer linear programming framework. The formulations are inspired by chapter 4 of Fazi (2014).

3.1 Problem description

For the CVRPPD-TW we focus on the container transport planning between one inland terminal and a seaport. In order to minimize total transport costs, several factors need to be aligned. At the seaport there are two terminals to consider, each have different quays where a container can be located or destined. Vehicles depart from the inland terminal and are able to deliver export containers and pick up import container at any quay in the seaport before returning. At all routes a vehicle travels, its capacity cannot be violated. Each container has its own time when it is released for transport and a due date to be delivered at destination. Figure 3.1 illustrates the transporting routes for the vehicles.

Figure 3.1 – Vehicle routes inland container transport system

Depot Terminal 1 Terminal 2 Inland terminal Seaport Barges Trains Trucks Import Export

3.2 Model input

To translate the problem into a model, we consider a graph G(N,E), a set of containers (I =

{1,…,I}) and a set of vehicles (K= {1,…,K}). Each vehicle has a capacity of Qk > 0 and a cost

per hour traveling Ck > 0 (€/h) where k ∈ K. Set E defines export (delivery) containers and is

a subset of I with the size of di> 0 (ci= 0). Import (pickup) containers have a size of ci > 0 (di

(11)

11 Table 3.1 - Sets

I Set of containers, 1 to I

E Set of export containers, 1 to E

N Set of nodes, 0 to I

K Set of vehicles, 1 to K

The distance between locations in N is defined by a distance matrix Vi,j. In the matrix,

distances are given in the travel time of a barge in hours. Ok is a normalization constant used

to convert Vi,j into truck timings (Ok = 1 for barges). If containers are located at the same

quay, the distance is 0. Each container has its own release time Ai when available for

transport and due date Di. to be delivered at destination, this is the quay at the seaport for

export containers and inland terminal for import containers. The time window for each containers is between Ai and Di.. Once the container is passed its due date, a penalty pi need

to be paid. Dli calculates the delay of container i. The variable 𝑇𝑖𝑘 determines the time when

vehicle k is arrived at the location of container i. Since the inland terminal serves as depot, the route for each vehicle starts and ends at the inland terminal and goes only to selected nodes. A tour for vehicle k is defined with 𝑒𝑖,𝑗𝑘 which is a binary decision variable that is 1 if

vehicle k covers the path from i to j (i,j ∈ N) and 0 otherwise. The parameters and variables

are summarized in table 3.2 and 3.3.

Table 3.2 - Parameters

pi Penalty for delay of container i

ci Pickup quantity of container i

di Delivery quantity of container i

Di Due date of container i

Ai Release date for container i

Vi , j Distance matrix considering barge timings from container i to j

Ok Normalization constant to convert Vi , j to truck timings

Ck Transportation costs for vehicle k (€/hour)

Qk Capacity of vehicle k

M A large value (big M)

Table 3.3 – Variables

𝑒𝑖,𝑗𝑘 Set 1 if vehicle k covers the arc i to j, with i, j ∈ N, Set 0 otherwise 𝑇𝑖𝑘 Arrival time of vehicle k at container i at the port

𝐷𝑙𝑖 Delay of container i

𝐻𝑖,𝑗 Total pickup flow at arc i to j

(12)

12

3.3 Mathematical model

The CVRPPD-TW can be modelled as a mixed integer linear programming model with the objective to minimize total transportation cost. The mathematical formulation is as follow: 𝑀𝑖𝑛 ∑ 𝐶𝑘 𝑂𝑘∑ ∑ 𝑉𝑖,𝑗𝑒𝑖,𝑗𝑘 + ∑ 𝑝𝑖𝐷𝑙𝑖 𝑖 ∈ 𝐼 𝑗 ∈𝑁;𝑗 ≠𝑖 𝑖 ∈𝑁 𝑘 ∈𝐾 (4.1) Subject to: ∑ ∑ 𝑒𝑖,𝑗𝑘 = 1 𝑘 ∈𝐾 𝑖∈𝑁;𝑖≠𝑗 ∀ 𝑗 ∈ 𝐼; (4.2) ∑ 𝑒𝑖,𝑗𝑘 − ∑ 𝑒𝑗,𝑖𝑘 𝑗∈𝑁;𝑗≠𝑖 𝑖∈𝑁;𝑗≠𝑖 = 0 ∀ 𝑖 ∈ 𝑁; ∀𝑘 ∈ 𝐾 (4.3) ∑ 𝑒0,𝑗𝑘 ≤ 1 𝑗∈𝐼 ∀ 𝑘 ∈ 𝐾; (4.4) ∑ 𝐻𝑗,𝑖− ∑ 𝐻𝑖,𝑗 = 𝑐𝑗 𝑖∈𝑁;𝑖≠𝑗 𝑖∈𝑁;𝑖≠𝑗 ∀ 𝑗 ∈ 𝐼; (4.5) ∑ 𝑍𝑖,𝑗− ∑ 𝑍𝑗,𝑖= 𝑑𝑗 𝑖∈𝑁;𝑖≠𝑗 𝑖∈𝑁;𝑖≠𝑗 ∀ 𝑗 ∈ 𝐼; (4.6) 𝐻𝑖,𝑗+ 𝑍𝑖,𝑗 ≤ ∑ 𝑄𝑘 𝑘∈𝐾 𝑒𝑖,𝑗𝑘 ∀ 𝑖, 𝑗 ∈ 𝐼; (4.7) 𝑇0𝑘 ≥ 𝐴𝑖− (1 − ∑ 𝑒𝑖,𝑗𝑘 𝑗∈𝑁 )𝑀 ∀𝑖 ∈ 𝐼; ∀𝑘 ∈ 𝐾 (4.8) 𝑇𝑖𝑘+ 𝑂𝑘𝑉𝑖,𝑗− 𝑀(1 − 𝑒𝑖,𝑗𝑘) ≤ 𝑇𝑗𝑘 ∀ 𝑖, 𝑗 ∈ 𝐼; ∀𝑘 ∈ 𝐾 (4.9) 𝑇0𝑘+ 𝑂𝑘∑ ∑ 𝑉𝑖,𝑗𝑒𝑖,𝑗𝑘 ≤ 𝐷𝑖+ 𝐷𝑙𝑖+ (1 − ∑ 𝑒𝑖,𝑗𝑘 𝑗∈𝑁 𝑗∈𝑁;𝑖≠𝑗 𝑖∈𝑁 )𝑀 ∀ 𝑗 ∉ 𝐸; ∀𝑘 ∈ 𝐾 (4.10) 𝑇𝑖𝑘 ≤ 𝐷𝑖+ 𝐷𝑙𝑖+ (1 − ∑ 𝑒𝑖,𝑗𝑘)𝑀 𝑗∈𝑁 ∀ 𝑖 ∈ 𝐸; ∀𝑘 ∈ 𝐾 (4.11) 𝑇𝑖𝑘 ≥ 0 ∀ 𝑖 ∈ 𝐼; ∀𝑘 ∈ 𝐾 (4.12) 𝑒𝑖,𝑗𝑘 ∈ {0,1} ∀ i, 𝑗 ∈ 𝑁; ∀𝑘 ∈ 𝐾 (4.13) 𝐷𝑙𝑖 ≥ 0 ∀ 𝑖 ∈ 𝐼; (4.14)

(13)

13

(14)

14

4. Tabu Search algorithm

In this chapter we will develop a methodology to solve the model. We will create an algorithm based the Tabu Search heuristic. Figure 4.1 illustrates the mechanism of the Tabu Search which is inspired by Glover (1990). It starts with an initial solution that respects capacity constraints of vehicles. Next, a local search will define neighbourhoods of the current solution. Two solutions are neighbours if one can be obtained through a small modifications of the other. Once the solution of a neighbour is not in the Tabu-list and better (i.e. less total costs while respecting capacity constraints), its solution will replace the current solution and the local search starts again.

Figure 4.1 - Tabu Search mechanism

Start Initialize tabu-list, initial solution = s´ and

stopping criterion = C Generate neighbourhood solution S of current solution s´

If S is in tabu-list If S is better than s´ N Y S = s´ Y N Push S in tabu-list Stop Y If number of iterations has elapsed since last

s´ was found = C

N

The core of the Tabu Search is embedded in a Tabu-list. This is a memory structure that collect moves for the local search to certain neighbourhoods that are rejected. A move is rejected if the solution is higher than current solution or it violate capacity constraints. When the move is in the Tabu-list, the local search is forbidden to take the move (i.e. the move is Tabu). This will save computational time since the algorithm does not have to calculate the cost and capacity levels of the move. The Tabu-list will delete the oldest move when a maximum amount of moves is collected. Hence, the oldest move will become available again for the local search. At that moment, the local search is possibly in a new neighbourhood than the move was found (Glover, 1990).

(15)

15 Pseudocode

Input and Initializations:

Sets, table 1 Parameters, table 2 Variables, table 3

Output: A planning with a minimized cost that satisfy capacity restrictions.

1. Tabu_Search(InitialSol) 2. BestSol = InitialSol 3. Set Tabu_list 4. Set Fit 5. Count_no_improvements = 0 6. Set stopping_number

7. while (Count_no_improvements < stopping_number) 8. Candidate = local search with BestSol

9. if Candidate not in Tabu_list:

10. Route(Candidate) 11. CurrentSol(Candidate) 12. Capacity(Candidate) 13. Fit (Candidate)

14. if (CurrentSol < BestSol and Capacity = True): 15. BestSol = CurrentSol

16. Count_no_improvements = 0 17. else:

18. Push Candidate in Tabu_list 19. Count_no_improvements += 1 20. end if

21. if (Tabu_list size > max_size) 22. Remove oldest Candidate

23. end if 24. else:

25. Generate new Candidate (return to 8.) 26. end if

27. end while 28. Return BestSol

4.1 Initial solution

(16)

16

For the initial solution we have to assign containers to vehicles in order to be transported. By doing this, we will fill barges first. The local search will move one container at the time so if a barge is not used in the first solution, it will never be used since the difference in the cost one container on a truck or barge is too big. Hence, a barge is only economically interesting when serving multiple containers. Therefore, we start with sorting vehicles K with non-increasing values of capacity. The containers I are sorted by delivery containers di with non-increasing values, this is done to be sure that delivery containers are

on vehicles that depart from the inland terminal. Next, all the sorted containers will be added to the first vehicle in the sorted line. When a capacity limit is reached for a vehicle, the next vehicle in line will be filled.

The initial solution (InitialSol) is set by the following algorithm: 1. Sort set K by non-increasing values of Qk

2. Sort set I by V0,i, quay and put first delivery containers 3. i = 1, k = 1

4. while i ≠i +1

5. insert container i in k 6. if all arcs respects Qk 7. i = i +1 8. else 9. k + 1 10. end if 11. end while

4.2 Local search

The local search defines a Candidate of change in the current solution. With this candidate, a new planning will be created from where the total cost can be calculated and capacity restrictions can be checked, thus a neighbour is created. To define a Candidate, we will used the following two operators:

O1: Switching the allocation of a single container to a different vehicle.

O2: Swapping two containers belonging to a different vehicle.

Every iteration one of the two will be chosen by a uniform distribution. Also by the operator, containers and vehicles will be chosen by a uniform distribution. After an operator is addressed, a new planning will be determined. To keep the panning as minimized as possible and stick to the pickup and delivery rules, vehicles must respect the following criteria:

1. Each vehicle can visit a terminal at most one time. 2. Each vehicle can visit a quay at most one time.

(17)

17

Once a container is transferred on a truck, the algorithm checks if the truck is moving only one container at each run. If a container is moved to a barge, the routing need to be adjusted in such a way the conditions above are respected. This is done by giving the terminal and quay of the container that will be added priority. Therefore, the route of a barge will be determined with the procedure in table 4.1.

Table 4.1 - Routing procedure Barges

Add pickup container i Add delivery container i

1. Equal quays of container i 1. Container i

2. Container i 2. Equal quays of container i 3. Equal terminal of container i 3. Equal terminal of container i 4. All other containers 4. All other containers

All containers of a barge are assigned with a label belonging to one of the four steps in table 4.1. All containers that got the same label, we will maintain the original sequence. In table 4.2 we give two examples where we first create a new route when a delivery container (C13) is added and second we create a new route when a pickup container (C9) is added. Note that C10 and C16 have the same label, therefore we first pick C10 and second C16 since this was the original sequence.

Table 4.2 – Examples of routing a Barge IT = Inland Terminal

C1 = Container 1

Original sequence Barge1

Current route  IT C1 C5 C10 C11 C14 C16 IT Terminal 1 1 2 2 2 2 Quay 1 2 10 11 11 14 c (pick) 0 1 1 0 1 1 d (delivery) 1 0 0 1 0 0

Operator (O1): Add C13 (Terminal 2, quay 11, delivery)

New sequence Barge1

Delivery procedure table 4: 1 2 3 4

Current route  IT C13 C11 C14 C10 C16 C1 C5 IT Terminal 2 2 2 2 2 1 1 Quay 11 11 11 10 14 1 2 c (pick) 0 0 1 1 1 0 1 d (delivery) 1 1 0 0 0 1 0

Operator (O1): Add C9 (Terminal 2, quay 11, pickup)

New sequence Barge1

Pickup procedure table 4: 1 2 3 4

Current route  IT C11 C14 C9 C10 C16 C1 C5 IT Terminal 2 2 2 2 2 1 1

(18)

18

4.3 Functions

InitialSol, Route, CurrentSol, Capacity and Fit are functions in Python. A function is a

callable object that is programmed to accept parameters and return a result. For example, when the InitialSol is called, the function will return a planning by the rules of the initial solution with the vehicles and containers of the instance that is given.

Route: This function returns for each vehicle a route that starts and ends at the inland terminal. At the moment the Candidate is inserted it will adjust the current route in such a way that the moved container(s) are deleted from current vehicle(s) and inserted at the new vehicle(s). The Route function represent the main decision variable 𝑒𝑖,𝑗𝑘 which is important for

the CurrentSol and Capacity functions.

CurrentSol: This is the objective function of the mathematical model. To determine the current solution we will first define the total distance each vehicle have travelled. Since we know 𝑒𝑖,𝑗𝑘 from Route, we collect the distance from the matrix 𝑉

𝑖,𝑗 and sum the total distance

which we multiply by the cost per hour for vehicle k. Second we determine the arrival time 𝑇𝑖𝑘 for each container to track down delays and charge penalties if needed.

Capacity: This function performs a capacity check for each arc a vehicle moves. If the load at an arc is smaller or equal than the capacity of the vehicle, it will return true. If the load is higher at one arc, it will return false and the current solution will be infeasible.

Fit: A trap of local optimality is that economies of scale is not obtained with a barge. Therefore, Fit is addressed at the moment a new solution is accepted. With Fit a barge will push all containers into trucks at the moment it is serving such a low number of containers that it is more affordable to serve each container by a truck.

In table 4.3 we present an example of CurrentSol and Capacity for one barge. The total cost of the current solution is the sum of all vehicles that will be used. The specification of the containers and route are from table 4.2.

Table 4.3 - Example CurrentSol and Capacity

k = Barge1

Current route i,j: IT C13 C11 C14 C10 C16 C1 C5 IT Release time Ai: 750 800 650 900 850 700 700 Due date Di: 1550 1100 950 1000 1150 1400 1400 Distance Vi,j: 11 0 0 1 1 4 0 11 Load i,j: 3 2 1 2 3 4 3 4 Ti (start = max Ai): 900 911 911 911 912 913 917 917 928 Delay Dli (max(0,Ti-Di)): 0 0 0 0 0 0 0 0 0

Cost/h ck: €80 Capacity check

Penalty cost pi: €350 Max Capacity: 14

Normalization constant Ok: 1 Load i,j ≤ 14: True

Total distance ∑Vi,j: 28

(19)

19

4.4 Stopping condition

(20)

20

5. Numerical analysis

In this section we will use the Tabu Search algorithm to test settings for the container transport system between the Port of Rotterdam and an inland terminal in Veghel, the Netherlands. Our aim is to give planners insight in the effect of a certain scenario on the total transport cost, with this management implication they can prepare for a scenario in advance. We will address the following scenarios:

1. A terminal depot:

Currently a container will be delivered or picked up at a quay in one of the two terminals in the Port of Rotterdam. At each terminal, a central depot can be created where containers are consolidated. Vehicles then only have to travel between the inland terminal and these depots. In this scenario a reduction of total transport cost is expected for the container transport system (Konings et al., 2013).

2. Assign vehicles to terminals:

Due to congestion within the Port of Rotterdam, delays can appear for containers if a vehicle is jammed in traffic. Therefore, vehicles can be assigned to only one terminal so movement is minimized between terminals. We expect that this scenario will increase the total transportation cost (Rodrigue & Notteboom, 2009).

3. Reduction of truck prices:

In this scenario we will test lower prices for trucks. This can be caused by new infrastructure where lanes are only dedicated to trucks. We expect in this situation that trucks will be more used as the advantage for economies of scale on barges will be neglected (Konings et al., 2013).

In order to analyse each scenario we will describe in the first section the model parameters we will use. Second, we will validate the algorithm with Gurobi. Third, we will perform several experiments in order to define the Tabu Search parameters. Finally we generate all scenarios in the algorithm and perform a sensitivity analysis of the total cost of the transport planning. All experiments are performed on a Lenovo G50-70 running windows 10 with a 64-bits processor, Intel(R) Core(TM) i7-4510U CPU 2,6 GHz and 4GB RAM.

5.1 Transport system parameters

(21)

21

The instances that will be used are drawn from real world data. We have 10 instance where each represent a day. We have split the instances in a group of smaller and larger instances in table 5.2. For the scenarios it is interesting to see if there is difference result and in computational time between the groups. When we test scenarios we will also sum all the cost of all days, by doing this we have a broad view on the total costs over the course of 10 days. For each day there is a fixed amount of barges available and unlimited amount trucks. Therefore, the amount of trucks is set equal to the amount of containers. We only pay for a vehicle if it will be used for transportation, else there are no cost attached.

Figure 5.1 - Distances between Veghel and Port of Rotterdam

Depot Terminal 1 Terminal 2 4 hours 1 hour 11 hours 11 hours Inland terminal Veghel Port of Rotterdam Barges Trucks

Table 5.1 – Parameters between Veghel and Port of Rotterdam

pi €350

ci 1 for 2 TEU, 0.5 for 1 TEU, 0 if i is an import container di 1 for 2 TEU, 0.5 for 1 TEU, 0 if i is an export container Di From dataset instance

Ai From dataset instance

Vi,j 0 if i and j have the same quay, 1 hour between quays of the same terminal,

4 hours between terminal 1 and terminal 2, 11 hours between inland terminal and seaport terminals.

Ck €80/hour for Barges and €75/hour for Trucks

Qk 1 for Trucks (no combination of 0.5 containers is allowed), 14 for Barges Ok 0.2 for Trucks, 1 for Barges

Fit Drop a Barge when total load < 6 containers Table 5.2 - Instances

Smaller instances Larger instances

Instance Containers Barges Trucks Instance Containers Barges Trucks

Day1 14 2 14 Day6 41 3 41 Day2 17 2 17 Day7 61 2 61 Day3 16 2 16 Day8 35 2 35 Day4 15 3 15 Day9 62 3 62 Day5 14 1 14 Day10 45 3 45

5.2 Validation

(22)

22

benchmark to check the results of the Tabu Search algorithm. However, for large instances this method is time consuming or may not give solutions due to the NP-hardness of the problem. If Gurobi is not able to find an optimal solution, the upper and lower bound will be used for comparison. Once the solutions are found with Gurobi we will perform experimentations with the Tabu Search algorithm in order to find the same solutions.

Table 5.3 – Validation smaller instances

Smaller Gurobi Tabu Search

Instances n Best solution CPU time ( sec) Best solution CPU time (sec)

Day1 14 2560 38,84 2560 1,56 Day2 17 3705 465,44 3715 20,35 Day3 16 2745 1574,31 2745 9,32 Day4 15 2715 38,58 2715 14,08 Day5 14 4305 617,75 4305 16,19

Table 5.3 shows the results for the smaller instances, the algorithm reaches the optimal solution for four instances in less time than Gurobi for which the central processing unit (CPU) was used for processing the instance. Only for day 2 the optimum is never reached, this is due to the fact the algorithm never reaches the minimum of 6 containers to drop the barge and the optimal planning from Gurobi is only with trucks. However, the difference is very small so we accept the outcome.

The larger instances turned out to be too complex for Gurobi to solve. This is a confirmation of the complexity of the CVRPPD-TW. Therefore, we will look at the upper and lower bound given by Gurobi. The upper bound is a feasible (current best) solution, the lower bound is the least minimum bound. The optimal solution is within the gap between the upper and lower bound. In table 5.4 is the validation for the larger instances given. Only for day 6 and 8 Gurobi found an upper bound, the difference in gaps from Gurobi and the Tabu Search is not big.

Table 5.4 – Validation larger instances

Tabu Search Gurobi

Larger

Instance Containers Best solution Upper bound Lower bound

Gap Gurobi Gap Tabu Search Day6 41 4400 4145 3747 10% 17% Day7 61 7020 NA 3843 - 45% Day8 35 4410 4240 2573 39% 42% Day9 62 10295 NA 3949 - 62% Day10 45 8450 NA 3184 - 62%

(23)

23

5.3 Tabu Search parameters

Now the Tabu Search algorithm is confirmed to be valid, we will determine the Tabu Search parameters for all instances. First, we will determine the Tabu-list size and second the stopping condition for the algorithm.

Tabu-list size

In general the Tabu-list size is between 5 and 12 which depends on the size of the set of nodes (containers in our problem) (Glover, 1990). Studying literature does not give a clear answer which number is best in a particular situation. Therefore we will run various sizes and check where the best solution is found. With experiments for all smaller instances we found that the size 7 gave the optimal solution in a short amount of processing time as given in table 5.3.

For larger instances we needed lots of processing time for each experiment. Therefore we select day 6 and 7 to test all sizes. We can use the same outcome for the others since day 6 is close to similar in size than day 8 and 10 and day 7 is close to similar than day 9. The results are illustrated in figure 5.2 from where we select the Tabu-list size for day 6 to be 9 and for day 7 to be 11. The exact results are given in appendix 2.

Figure 5.2 – Experiment Tabu-list size day 6 and 7

Stopping condition

For the stopping condition we use the counter Count no improvements (CNI) that counts the amount of iterations there is no better solution found in a row. We have to determine a fixed number of iterations this counter has to reach in order to stop the experiment. For the smaller instances we have used 250 iterations for day 1 and 500 iterations for the other days which gave the optimal solutions (table 5.3).

For the larger instances we have no benchmark for optimal solutions and it is therefore difficult to rule when to stop an experiment. We have performed various experiments with different stopping conditions. There we noticed that for all instances the cost improvements

(24)

24

made over processing time follows the same behaviour as visualized in figure 5.3 for day 6. We can notice that the line is decreasing in such a way that 86% of the cost improvements is made in only 40% for the time. This is an interesting fact because now we know once the line is levelled, there is no big decrease expected of the current solution. Therefore, we stop the experiment when we know that the line is levelled. For day 6 and 7 we have determined a maximum amount the Count no improvements (max CNI) has to reach in order to have a levelled line. For all instances we have summarized the Tabu Search parameters and results for the original setting in table 5.5, these solutions will be used as a benchmark for of comparison of the scenarios.

Figure 5.3 – Behaviour of cost improvements over time day 6

Table 5.5 - Original setting

Smaller instances

Instance Containers Barges Trucks Tabu-list size Max CNI Best solution CPU Time (sec)

Day1 14 2 14 7 250 2560 1,56 Day2 17 2 17 7 500 3715 20,35 Day3 16 2 16 7 500 2745 9,32 Day4 15 3 15 7 500 2715 14,08 Day5 14 1 14 7 500 4305 16,19 Larger instances

Instance Containers Barges Trucks Tabu-list size Max CNI Best solution CPU Time (sec)

Day6 41 3 41 9 2000 4400 850,4 Day7 61 2 61 11 500 6630 4881,5 Day8 35 2 35 9 2000 4410 269,9 Day9 62 3 62 11 500 10295 2174,0 Day10 45 3 45 9 2000 8450 768,0

Smaller Larger Total

Total costs: 16040 34185 50225 6000 8000 10000 12000 14000 16000 18000 0 1000 2000 3000 4000 5000 6000 7000 Co st

(25)

25

5.4 Sensitivity analysis

In this paragraph we will perform a sensitivity analysis for the scenarios. For each scenario we will perform 5 tests per instance and take the best result which will be compared to the original setting in table 5.5. The instances are for each scenario modified in such a way that the containers are transported by the rules of the scenario. For each instance, we will keep the same amount of containers, barges, time windows and Tabu Search parameters as in the original setting.

Scenario 1: A terminal depot

In the first scenario containers are consolidated in a depot in front of each terminal. Vehicles are only used for pickup and delivery at these depots. We assume the time windows are the same in such a way that import containers are released at the depot and export containers have their deadline at the depot. The situation is illustrated in figure 5.4.

Figure 5.4 – A terminal depot

Depot Terminal 1 Terminal 2 4 hours 11 hours 11 hours Inland terminal Veghel Port of Rotterdam Barges Trucks Depot Depot

(26)

26

Table 5.6 - Results scenario 1

Smaller instances Larger instances

Day 1 Best solution Day 6 Best solution

Original: 2560 Original: 4400 Scenario 1: 2080 Scenario 1: 4160 Difference: -23% Difference: -6%

Day 2 Best solution Day 7 Best solution

Original: 3715 Original: 6630 Scenario 1: 3400 Scenario 1: 6150 Difference: -9% Difference: -8%

Day 3 Best solution Day 8 Best solution

Original: 2745 Original: 4410 Scenario 1: 2410 Scenario 1: 4170 Difference: -14% Difference: -6%

Day 4 Best solution Day 9 Best solution

Original: 2715 Original: 10295 Scenario 1: 2640 Scenario 1: 9580

Difference: -3% Difference: -7%

Day 5 Best solution Day 10 Best solution

Original: 4305 Original: 8450 Scenario 1: 4070 Scenario 1: 7910 Difference: -6% Difference: -7%

Sum Smaller Larger Total

Original: 16040 34185 50225 Scenario 1: 14600 31970 46570 Difference: -9,86% -6,93% -7,85%

Scenario 2: Assigning vehicles to terminals

In the second scenario vehicles are attached to one terminal. This will reduce movement inside the seaport since there is no passage possible between the terminals. This scenario is illustrated in figure 5.5.

Figure 5.5 – Assigning vehicles to terminals

Depot Terminal 1 Terminal 2 1 hour 11 hours 11 hours Inland terminal Veghel Port of Rotterdam Barge1..2 Truck1..5 Barge3..4 Truck6..10 1 hour

(27)

27

terminal. The Tabu-list size and stopping condition for CNI are divided in proportion of containers, with a minimum of 5 for the Tabu-list size. We performed tests for both terminals and summed the outcomes to have a result for the scenario.

With the results in table 5.7 we can confirm the expectation that the overall transportation cost will increase. Over 10 days the total cost is increased with almost 11%. The lager instances are more sensitive to a higher cost than smaller instances. This is caused by the fact that barges are less filled and there are more trucks needed. Also, there are more empty runs because there are less container combinations possible for pickup and delivery.

Table 5.7 - Results scenario 2

Smaller instances Larger instances

Day 1 Best solution Day 6 Best solution

Original: 2560 Original: 4400 Scenario 2: 2835 Scenario 2: 5840 Difference: +9,7% Difference: +24,7%

Day 2 Best solution Day 7 Best solution

Original: 3715 Original: 6630 Scenario 2: 3995 Scenario 2: 9160 Difference: +7,0% Difference: +27,6%

Day 3 Best solution Day 8 Best solution

Original: 2745 Original: 4410 Scenario 2: 3270 Scenario 2: 4420 Difference: +16,1% Difference: +0,2%

Day 4 Best solution Day 9 Best solution

Original: 2715 Original: 10295 Scenario 2: 3030 Scenario 2: 11125 Difference: +10,4% Difference: +7,5%

Day 5 Best solution Day 10 Best solution

Original: 4305 Original: 8450 Scenario 2: 4305 Scenario 2: 8400 Difference: 0% Difference: -0,6%

Sum Small Larger Total

Original: 16040 34185 50225 Scenario 2: 17435 38945 56380 Difference: +8,0% +12,2% +10,9%

Scenario 3: Reduction of truck costs

(28)

28

Table 5.8 – Determine Fit

% Cost truck per hour Average Cost barge Cost truck

Drop barge when load (cost barge/cost truck)

Original 100 75 * 0.2 = 15 2080 330 < 6 containers 30% less 70 10,5 2080 231 < 9 containers 40% less 60 9 2080 198 < 11 containers 50% less 50 7,5 2080 165 < 13 containers

In the results in table 5.9 we can see that for both smaller and larger instances the amount of trucks increased as they got cheaper, this effect is visualized in figure 5.6. However, there is a large difference in the sensitivity of the total cost. This caused by the fact that for smaller instances barges are on average carrying less containers so they will be dropped faster by Fit. All in all, the total cost decreased for all experiments. However, a reduction of 50% in truck prices has an effect of a reduction of 30% in total costs due to the fact that barges are still used.

Table 5.9 – Results scenario 3

Total smaller instances Total larger instances Total

30% Barges Trucks Cost Barges Trucks Cost Cost

Original: 5 26 16040 12 25 34185 50225 Scenario 3_1: 2 34 13932 11 42 33790 47722 Difference: -60,0% +30,8% -13,1% -8,3% +68,0% -1,2% -5,0%

40% Barges Trucks Cost Barges Trucks Cost Cost

Original: 5 26 16040 12 25 34185 50225 Scenario 3_2: 1 41 10894 9 51 29995 40889 Difference: -80,0% +57,7% -32,0% -25,0% +104,0% -12,3% -18,6%

50% Barges Trucks Cost Barges Trucks Cost Cost

Original: 5 26 16040 12 25 34185 50225 Scenario 3_3: 0 50 8460 5 87 26590 35050 Difference: -100,0% +92,3% -47,2% -58,3% +248,0% -22,2% -30,2%

Figure 5.6 - Vehicles used

0 20 40 60 80

Original Experiment 3_1 Experiment 3_2 Experiment 3_3

(29)

29

6. Discussion

Based on literature, we expected that scenario 1 and 3 would have a decreasing effect and scenario 2 an increasing effect on the total transport cost. With the Tabu Search algorithm we were able to confirm all expectations and we have given an indication of the sensitivity the total cost is in a scenario. Our results provide managerial implications for planners, so they can act in advance when a scenario is about to happen. For example, in scenario 1 they can convince the port authorities to make the scenario happen in order to realize the cost savings. In scenario 2 they have to make preparations to extend the fleet in order to serve all containers. For scenario 3 they can inform barge operators that the price per container has to decrease for a barge in order to deal with the competition from trucks.

Our aim was to advice planners for container transport between one inland terminal and a seaport. Therefore, our results cannot be used for decision making for a particular scenario by the seaport. Therefore, one inland terminal is not a good representation for all transport in the inland container transport system. Overall, the algorithm is able to calculate different types of datasets, so it can be applied for other inland terminals. However, an extension of the algorithm has to be made in order to add train transport to the dataset.

Limitations

The most important limitation of the Tabu Search heuristic is the trap of local optimality (Glover, 1990). We also experienced this trap in this thesis, since we did not found for every test the same solutions for the larger instances. To prevent local optimality as much as possible we constructed a procedure (Fit) which dropped a barge once it was not profitable compared to trucks. Without this procedure, the transport cost was remarkably higher. In order to reduce the risk of local optimality more we could have increased the stopping condition. However, based on the behaviour of the cost improvements over time (figure 5.3) we do not believe that a higher stopping condition would have resulted in a significant difference on the sensitivity analysis of the scenarios. To overcome local optimality as much as possible, we have performed 5 test for each experiment and took the best solution that had been found.

(30)

30 Future research

The Tabu Search heuristic has proved in literature to generate excellent results on problems similar to the CVRPPD-TW. With our algorithm we can confirm that the Tabu Search have generated better results in terms of processing times than Gurobi for most smaller instances. However, for larger instances we were unable to find a good benchmark for comparison. Therefore, in order to prove the quality of the Tabu Search, we suggest for further research to compare the quality of the transportation cost and processing times with other heuristics for the CVRPPD-TW.

(31)

31

7. Conclusion

The aim of this thesis was to solve the capacitated vehicle routing problem with pickup and delivery and time windows (CVRPPD-TW) with a Tabu Search heuristic. The CVRPPD-TW was modelled for a container transport system between an inland terminal and seaport. The objective for this system is to create a transport planning that minimize transport costs, while meeting capacity restrictions, due dates, and pickup and delivery constraints. We created a Tabu Search algorithm in order to solve the CVRPPD-TW that we validated using Gurobi, a software that generate optimal solutions. For small instances our algorithm generated optimal solutions in much lower processing times than Gurobi. Also, our algorithm was able to solve larger instances where Gurobi was unable to find a solution.

(32)

32

Reference

Baker, B. M., & Ayechew, M. A. (2003). A genetic algorithm for the vehicle routing problem.

Computers & Operations Research, 30(5), 787–800.

Bianchessi, N., & Righini, G. (2007). Heuristic algorithms for the vehicle routing problem with simultaneous pick-up and delivery. Computers and Operations Research, 34(2), 578– 594.

Bianchi, L., Dorigo, M., Gambardella, L. M., & Gutjahr, W. J. (2009). A survey on metaheuristics for stochastic combinatorial optimization. Natural Computing, 8(2), 239– 287.

Bräysy, O., & Gendreau, M. (2005). Vehicle Routing Problem with Time Windows, Part II: Metaheuristics. Transportation Science, 39(1), 119–139.

Fazi, S. (2014). Mode selection, routing and scheduling for inland container transport.

Eindhoven: Technische Universiteit Eindhoven, DOI: 10.6100/IR777919

Glover, F. (1989). Tabu Search - Part I. ORSA Journal on Computing, 2 1(3), 4–32. Glover, F. (1990). Tabu Search: A tutorial. Interfaces.

Gurobi (2017). Mixed-Integer Programming (MIP) - A Primer on the Basics. Retrieved from http://www.gurobi.com/resources/getting-started/mip-basics

Imai, A., Nishimura, E., & Current, J. (2007). A Lagrangian relaxation-based heuristic for the vehicle routing with full container load. European Journal of Operational Research,

176(1), 87–105.

Inlandlinks (2017). Inland conntainer depots Port of Rotterdam. Retrieved from https://www.inlandlinks.eu/nl/empty-depots

Kirkpatrick, S., Gelatt, C. D., & Vecchi, M. P. (1983). Optimization by Simulated Annealing.

Science, 220(4598), 671–680.

Konings, R. (2007). Opportunities to improve container barge handling in the port of Rotterdam from a transport network perspective. Journal of Transport Geography, 15(6), 443–454.

Konings, R., Kreutzberger, E., & MaraŠ, V. (2013). Major considerations in developing a hub-and-spoke network to improve the cost performance of container barge transport in the hinterland: The case of the port of rotterdam. Journal of Transport Geography, 29, 63–73.

(33)

33

Laporte, G., Gendreau, M., Potvin, J.-Y., & Semet, F. (2000). Classical and modern heuristics for the vehicle routing problem. International Transactions in Operational Research, 7(4– 5), 285–300.

Montané, F. A. T., & Galvão, R. D. (2006). A tabu search algorithm for the vehicle routing problem with simultaneous pick-up and delivery service. Computers and Operations

Research, 33(3), 595–619.

Nagy, G., & Salhi, S. (2005). Heuristic algorithms for single and multiple depot vehicle routing problems with pickups and deliveries. European Journal of Operational Research,

162(1), 126–141.

Nanry, W. P., & Barnes, J. W. (2000). Solving the pickup and delivery problem with time windows using reactive tabu search. Transportation Research Part B, 34.

Notteboom, T. (2006). Chapter 2 Strategic Challenges to Container Ports in a Changing Market Environment. Research in Transportation Economics, 17(6), 29–52.

Osman, I. H. (1993). Metastrategy simulated annealing and tabu search algorithms for the vehicle routing problem. Annals of Operations Research, 41(4), 421–451.

Pielage, B., Konings, R., Rijsenbrij, J., & Van Schuylenburg, M. (2007). Barge Hub Terminals: a Perspective for More Efficient Hinterland Container Transport for the Port of Rotterdam. Transportation Research Forum, 1–19.

Port of Rotterdam (2014). Progress Report 2014 Port Vision 2030. Port Vision. Retrieved from https://www.portofrotterdam.com/en/the-port/port-vision-2030

Rodrigue, J.-P., & Notteboom, T. (2009). The terminalization of supply chains: reassessing the role of terminals in port/hinterland logistical relationships. Maritime Policy &

Management, 36(2), 165–183.

Shintani, K., Imai, A., Nishimura, E., & Papadimitriou, S. (2007). The container shipping network design problem with empty container repositioning. Transportation Research

Part E: Logistics and Transportation Review, 43(1), 39–59.

Solomon, M. M. (1987). Algorithms for the Vehicle Routing and Scheduling Problems with Time Window Constraints. Operations Research, 35(2), 254–265.

Stahlbock, R., & Voss, S. (2008). Operations research at container terminals: A literature update. OR Spectrum, 30(1), 1–52.

Toth, P., & Vigo, D. (2002). Models, relaxations and exact approaches for the capacitated vehicle routing problem. Discrete Applied Mathematics, 123(1–3), 487–512.

(34)

34

Yap, W. Y., LAM, J. S. L., & Notteboom, T. (2006). Developments in Container Port Competition in East Asia. Transport Reviews, 26(2), 167–188.

Zhang, M., Wiegmans, B., & Tavasszy, L. A. (2009). A comparative study on port hinterland intermodal container transport: Shanghai and Rotterdam. 5th Advanced Forum on

(35)

35

Appendix 1: Solutions Gurobi and Tabu Search

Table A1 – Instance Day 3

Day 3 Containers Solution Gurobi

Time Quantity Location Vehicle Route Distance Cost Container Arrival Deadline Delivery Pickup Quay Terminal Truck 4 IT C9 C1 IT 23 345

C1 3532 7100 0 1 1 1 Barge1 IT C10 C11 C12 80 2400 C2 3258 8300 0 1 2 1 C5 C7 C4 C8 C3 3258 8300 0 1 2 1 C3 C6 C2 C15 C4 3258 8300 0 1 2 1 C13 C14 C16 IT C5 3258 8300 0 1 2 1 Objective: 2745 C6 3258 8300 0 1 2 1

C7 7100 15500 0 1 2 1 Solution Tabu Search

C8 7100 15500 0 1 2 1 Vehicle Route Distance Cost

C9 1683 6500 1 0 5 1 Truck 6 IT C9 C1 IT 23 345 C10 3162 10600 1 0 5 1 Barge1 IT C12 C4 C6 80 2400 C11 1652 8200 1 0 5 1 C3 C5 C2 C7 C12 3277 13600 1 0 9 1 C8 C11 C10 C14 C13 3387 13600 1 0 10 2 C13 C16 C15 IT C14 3465 13600 1 0 10 2 Objective: 2745 C15 3618 13600 1 0 15 2 C16 6400 14200 0 1 20 2 Vehicles

Type: Barge Truck Number available 2 9 Transport cost (hour) 80*1 = 80 75*0.2 = 15

Capacity 14,3 1

Transport time 11 2 Norm. Constant 1 0,2

Table A2 – Instance Day 4

Day 4 Containers Solution Gurobi

Time Quantity Location Vehicle Route Distance Cost Container Arrival Deadline Delivery Pickup Quay Terminal Truck 5 IT C2 C1 IT 23 345 C1 13000 21400 0 1 1 1 Truck 7 IT C4 C13 IT 23 345 C2 10492 17800 1 0 2 1 Truck 6 IT C8 C10 IT 22 330 C3 10800 12700 1 0 2 1 Truck 1 IT C3 C12 IT 23 345 C4 5512 13000 1 0 2 1 Truck 3 IT C6 C7 IT 22 330 C5 3937 14300 1 0 2 1 Truck 2 IT C5 C11 IT 23 345 C6 11193 14300 1 0 4 1 Truck 10 IT C14 C15 IT 23 345 C7 10600 14200 0 1 4 1 Truck 13 IT C9 IT 22 330 C8 1118 13200 1 0 5 1 Objective: 2715 C9 16700 22700 0 0,51 5 1

C10 10200 15500 0 1 5 1 Solution Tabu Search

C11 13200 17900 0 1 5 1 Vehicle Route Distance Cost

C12 12100 16600 0 1 5 1 Truck5 IT C6 C7 IT 22 330 C13 10600 14200 0 1 9 1 Truck4 IT C14 C15 IT 23 345 C14 3812 15500 1 0 16 2 Truck1 IT C5 C11 IT 23 345 C15 15400 19000 0 0,51 18 2 Truck3 IT C2 C1 IT 23 345 Truck9 IT C3 C13 IT 23 345 Vehicles Truck11 IT C4 C12 IT 23 345

Type Barge Truck Truck13 IT C9 IT 22 330 Number available 3 13 Truck12 IT C8 C10 IT 22 330 Transport cost (hour) 80*1 = 80 75*0.2 = 15 Objective: 2715

Capacity 14,3 1

(36)

36

Appendix 2: Tabu Search parameters

Table A3 - Experiment Tabu-list size larger instance (day 6 represents day 8 and 10, day 7 represents day 9)

Day 6 Day 7 Tabu-list size CNI Lowest cost Average 5 tests Tabu-list size CNI Lowest cost Average 5 tests 5 500 6290 6410 5 50 12195 12272,5 6 500 5810 5982 6 50 10090 11807,5 7 500 5895 6115 7 50 11330 11945 8 500 5725 6107 8 50 11880 12667,5 9 500 5630 5952 9 50 10960 11550 10 500 5640 5973 10 50 11110 11355 11 500 5935 6347 11 50 9220 11315 12 500 6805 6738 12 50 11085 11452,5 Table A41 – Tests Count no improvements (day 6 represents day 8 and 10, day 7 represents day 9)

Instance n

Tabu list

size CNI Iterations

Referenties

GERELATEERDE DOCUMENTEN

Arrival time function breakpoints result from travel time functions breakpoints, breakpoints calculated as depar- ture time at the start node to hit a breakpoint on the arrival

Een half-cirkelvormige greppel (fig. 3: H) kan gezien zijn ligging binnen het wooneiland eveneens bij deze faze gerekend worden (fig. 10); in elk geval oversnijdt hij

En effet, Ie péri- mètre est ceinturé par une courtine construite à l'aide de bloes de schiste gréseux liés à un mortier jaunätre très mal conservé (fig. Leur

The questions we seek to answer include; if the model is fitted to the data available, can we estimate the number of drug users in a given community based on the fit (which will be

Uit andere grachten komt schervenmateriaal dat met zekerheid in de Romeinse periode kan geplaatst worden. Deze grachten onderscheiden zich ook door hun kleur en vertonen een

De hedge ratio is het aantal opties dat geschreven of gekocht moet worden om één lang aandeel van zekere onderne- ming in een portefeuille te beschermen tegen

Wanneer een cliënt er bijvoorbeeld voor kiest om zelf ergens naar toe te lopen, zonder hulp of ondersteuning en met instemming (indien nodig) van zijn netwerk dan is het risico