Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle...

119
Validation for a Dial-A-Ride software and a sensitivity analysis Facoltà di Ingegneria Civile ed Industriale Dipartimento di Ingegneria Civile Corso di laurea in Transport Systems Engineering Candidato: Matteo Giaconi Matricola 1482891 Relatore Correlatori Guido Gentile Alessandro Attanasi Marco Pezzulla A/A 2017/2018

Transcript of Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle...

Page 1: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

Validation for a Dial-A-Ride software and

a sensitivity analysis

Facoltà di Ingegneria Civile ed Industriale

Dipartimento di Ingegneria Civile

Corso di laurea in Transport Systems Engineering

Candidato: Matteo Giaconi

Matricola 1482891

Relatore Correlatori

Guido Gentile Alessandro Attanasi

Marco Pezzulla

A/A 2017/2018

Page 2: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

2

Summary

1 Introduction ............................................................................................................................................. 4

1.1 Research field, motivations and aims .......................................................................................... 4

2 Vehicle Routing and Dial-a-ride problems .......................................................................................... 7

2.1 History .............................................................................................................................................. 7

2.2 Vehicle Routing ............................................................................................................................... 8

2.2.1 General characteristics ............................................................................................................ 8

2.2.2 A famous Example: The travelling salesman problem ...................................................... 9

2.2.3 Vehicle Routing categories .................................................................................................. 11

2.3 Dial-A-Ride .................................................................................................................................... 20

2.3.1 Demand Responsive Transports ......................................................................................... 20

2.3.2 Dial-a-ride Problems ............................................................................................................. 21

3 An Algorithm for DARP ...................................................................................................................... 26

3.1 Introduction ................................................................................................................................... 26

3.2 Jaw Algorithm (1984-86) .............................................................................................................. 28

3.2.1 Logic Notes ............................................................................................................................ 28

3.2.2 Problem Formalization and Operating Scenario .............................................................. 29

3.2.3 Algorithm Overview ............................................................................................................ 33

3.2.4 Processing of a generic customer ........................................................................................ 34

3.3 DARP (2004) ................................................................................................................................... 46

3.3.1 Software Implementation Structure ................................................................................... 46

3.3.2 New Implementations .......................................................................................................... 47

3.4 DARS .............................................................................................................................................. 51

3.4.1 Main Characteristics, Input loading and simulation outcomes ..................................... 52

3.4.2 Street Graph and Dynamicity .............................................................................................. 55

3.4.3 Insertions ................................................................................................................................ 57

Page 3: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

3

3.4.4 Requests .................................................................................................................................. 63

3.4.5 Vehicle Fleet ........................................................................................................................... 64

3.4.6 Vehicle Search Function ....................................................................................................... 65

3.4.7 Cost functions ........................................................................................................................ 68

4 Test Phase ............................................................................................................................................... 72

4.1 Testing Environment .................................................................................................................... 72

4.2 Specific and operational simulations ......................................................................................... 73

4.3 Specific Tests .................................................................................................................................. 75

4.3.1 Test 1 ....................................................................................................................................... 76

4.3.2 Test 2 ....................................................................................................................................... 83

4.3.3 Test 3 ....................................................................................................................................... 87

4.4 Aggregated test and operational conditions ............................................................................. 92

4.4.1 First Scenario .......................................................................................................................... 94

4.4.2 Second Scenario ..................................................................................................................... 96

4.4.3 Third Scenario ........................................................................................................................ 99

4.4.4 Fourth scenario .................................................................................................................... 102

4.4.5 Fifth Scenario ....................................................................................................................... 105

5 Conclusions and discussion............................................................................................................... 109

6 Appendix .............................................................................................................................................. 110

7 Acknowledgments .............................................................................................................................. 115

8 Literature Index ................................................................................................................................... 117

Page 4: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

4

1 Introduction

1.1 Research field, motivations and aims

This work was conceived as a deep analysis of a Dial-A-Ride optimization software colloquially

known as DARS, with a focus on its sensitivity, meaning a step by step analysis of the software

response given a certain dataset which changes only on particular and pre-set conditions.

This process has been realized in order to better understand the software limitations, its strengths

and the magnitude of problems it may handle.

While it doesn’t aspire to be a full and overall coverage of software possibilities and limits, this

dissertation serves as a closer look for research purpose about the software state-of-art and gives a

quick overview of the industry innovation about the real-time transportation field.

We are living in an era in which it is expected from a transport system to be efficient, fast,

sustainable and with the lowest possible cost for a user.

Numerous examples are nowadays present anywhere around us.

Every App Store contains an high number of products designed exclusively to upgrade any travel

inside or outside the urban space at its best and, sometimes, these apps are just a few “slides”

away to getting downloaded and used for free.

The modern trends are suggesting an increasing interest about real-time and transport related

solutions which sometimes lead to the possibility of not even owning a car for personal purposes.

In its small scale, this thesis also aims to exploit the difficulties and issues arising when trying to

build a tool capable of offering this type of services.

In fact, while the researches on these topics have been wide and numerous, it is not always

obvious that a theoretical work could be later shaped on a real-world scenario.

The Dial-A-Ride services often rely on very complex theory and surely need the right technological

tool to deliver their services.

The Dial-A-Ride problems (DARP’s) are named after the service and are part of a larger group of

problems known as Vehicle Routing problems.

While this dissertation widely mentions Vehicle Routing problems, for the sake of clarity and

focusing, these are not treated as deeply as Dial-A-Ride problems.

Page 5: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

5

Anyway, a good range of examples and formulation are mentioned to have a better view of the

parts treating DARP’s.

This dissertation focus on a particular formulation from which the software has been firstly

originated and then rebuilt.

This particular formulation, whom origins are treated in a high level of detail, would be enough to

correctly frame and confront the problem without the needing of adding more.

On the other hand, it seemed a good step to add a more general introduction and theoretical

structure regarding other types of Dial-A-Ride problems that have been investigated throughout

the years.

Of course, this decision has been taken thinking about the fact that comparing different

formulations, theory and intuitions could lead to a better shaped result, maybe taken into

consideration a wider group of hypotheses and assumptions.

While this might seem a surplus it is indeed the best way to have a clear view of the different

developments and betterments it had during the years, highlighting such a great attention to

details.

The theory and software evolutions underline the different needing that characterized different

periods.

In fact, while the kind of scenarios tackled in the early 80’s are now outdated, the core

characteristics of the treatment proved to be still applicable to the modern times issues and

requests, when appropriately modified and elaborated.

A good part of the thesis has been dedicated to sort out the last version of the software functions

and main characteristics.

This step has been done to make any reader understand the type of tool that has been used for the

operations.

It is also worth mentioning the fact that, before even start testing the software, an high amount of

work has been done on understanding its principal structures and insight connections, for instance

studying directly the software source code.

This “reverse engineering” phase of extrapolating the functional theory directly from the software

has been crucial, since it could be considered a proper “debug” phase the program has underwent

into.

Page 6: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

6

Some parts of the software have been modified “on-the-go to calibrate the different reactions the

software may have showed during the analysis.

After this first passage, the natural following has been to make the software pass through a more

detailed kind of tests (Specific tests), before examining the results on an operational scale, which is

more massive and, because of its definition, harder to interpretation.

The tailored tests prepared a-priori are in fact a second “debug” layer, because tackled the

different single functionalities.

The explanation of these tests were made to make the reader understand the type of mental path

used to search and verify that the software main components were all fine.

Eventually, after all these preparation passages, a real-time aggregated analysis has been

performed under different Scenarios.

More specifically, the aim was to measure the type of software performance when pushed to

increasingly “harder” constraints while keeping the lowest possible amount of operational and

overall costs.

The analysis must have to be taken as a good representation of the software capacity to handle

extreme situations on an actual real-time scenario.

The data extracted from the numerous runs have been selected and presented to underline the

differences between one and the other.

Eventually, the dissertation not only shows the software working in its internal mechanism but

explores and calibrates the extreme conditions the software is capable of tackle so far at this stage

of development.

Page 7: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

7

2 Vehicle Routing and Dial-a-ride problems

2.1 History

Researches have been numerous and wide in terms of tackling the different levels of Vehicle

Routing and Dial-A-Ride problems.

The taxonomy of these problems (Psaraftis et al.) dates back a high number of researches about the

dynamic vehicle routing problems to the late 70s of the last century. After the year 2000 this field

had witnessed a real explosion (.sic)

Several researchers focused their studies on different aspects of the problem which, as it easy to

understand, has a very complex theoretical construction. Even in its smaller versions, to find the

“optimal” solution it is usually very hard.

These kinds of problem are often NP hard, which means resolution goes through heuristic

algorithms in which, by definition, the global optimum is not a-priori guaranteed.

So, apart from a real good understating of the math instruments, it likely requires coding and a

good amount of calculation power.

Dial-A-Ride problems are a natural consequence of the VRP problems. Dial a ride services existed

in the late 70s already onto different aims: to give a help to people who didn’t own a personal

vehicle and had problems about using the public transport, as a schedule service for school buses

(Bodin).

The first reference to a computer controlled Dial-a-Ride model dates back in 1977 (Wilson and

Colvin, MIT Technical report), more than 40 years ago. Although the interest about DAR grew up

very soon we had the biggest steps ahead during the last 20 years (as mentioned right above). It

took a little to shift from what was a little more than a mathematical challenge to a real project and

design of an operational problem, in which a good amount of user can call a preferred door to

door service which very often needs to be updated in a few seconds span. This basically means

that technology didn’t seem developed enough to stick this kind of construction to a real-world

situation.

Even though the mobile technology had started to be getting more and more weight on the

average, still a lot was missing.

It would have been strange (if not impossible) to find a GPS on a casual city car or a taxi and

Page 8: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

8

absolutely unimaginable on a mobile device designed to making calls (AKA not-that-smart

cellphone).

Their incredible development during the new millennium forced the evolution of the DAR service,

which needed to transform itself from a “24 hour prior call” to an immediate, reliable public

transport alternative.

The results are clear and this type of service now aim to a be more and more intergrated inside any

city texture, wnlarging their aim to the entire population.

The most famous examples of this wide integration are given of course by apps, such as Uber and

Lyft. Even if these companies are not just to praise, they surely contribute to make excitement

grow around the VRP and DAR issues, since it is proven once and for all that these question are an

absolute priority.

The following paragraphs have the role of presenting the general mathematical construction of

these problem, their complexity classification and the papers that have been fundamental to

achieve the kind of consideration we have today.

2.2 Vehicle Routing

2.2.1 General characteristics

The Vehicle Routing problem (VRP) “calls for the determination of the optimal set of routes to be

performed by a fleet of vehicles to serve a given set of customers” (Toth et al.).

It is one of the most important and yet studied combinatorial optimization problem.

The problem has been introduced by Dantzig and Ramser in 1959, by describing a real-world

application concerning the delivery of gasoline to service stations. The two proposed the first

mathematical programming formulation and algorithmic approach.

Anther seminal paper has been delivered by Clarke and Wright, and it is particularly important

because they proposed an effective greedy heuristic.

By definition, a greedy heuristic is an algorithmic paradigm that follows the problem solving

heuristic of making the locally optimal choice at each stage, hoping to find a general optimum (or

global optimum).

Page 9: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

9

Following these first two publications, dozen followed whit hundreds of algorithms and

mathematical structure.

It is easy to imagine why, since this kind of problems are surely complex but also absolutely

interesting for the kind of application that are possible in a real-world environment.

To determine the optimal solution to VRP is NP-hard (non-deterministic polynomial time

hardness), so the size of the problems solvable by using programming or combinatorial

optimization is (or may be) limited.

2.2.2 A famous Example: The travelling salesman problem

One of the most representative and most cited examples of VRP it’s surely the Travelling Salesman

Problem (TSP). The problem asks the following question: “given a list of cities and the distances

between each pair of cities, what is the shortest possible route that visits each city and returns to the origin

city?”.

Even if the origin dates back to the 19th century, the problem firstly appeared on a 1930 salesman

book (without any mathematical formulation), and it has been since then one of the most

intensively studied problems in optimization, so much that is used as a benchmark for many

optimization methods (Wiki).

The easiest version might be an undirected, symmetric and weighted graph in which the cities

coincides with the geometrical vertexes and every arc has its cost in terms of travelling.

Page 10: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

10

Figure 2-1 - A loop connecting all the destinations just once (Source: Wikipedia)

The TSP has the merit of having stimulated the studies around the issue of finding an optimal

solution with a reasonable amount of computations.

There are several methods to solve this type of problems.

The “easiest” in terms of comprehension would be to force all the possible permutation and see

which one of these results to be the cheapest.

Even thou this solution it’s always possible theoretically, it’s polynomial running time is set on

𝑂(𝑛!), where n is the number of the cities in the scheme.

So, having more than 15 cities makes this kind of approach absolutely inadvisable.

As a natural consequence, a large number of algorithms have been developed based on this

problem, which has a lot of different variations.

Instead of a long list of those, it is more useful to do a distinction between exact algorithms and

heuristic algorithms. The fist category is, as the name itself may suggests, a class per se which aims

to solve the problem without leaving any room for mistakes, while the latter category tries to

achieve the best possible compromise between speed, precision and accuracy.

Page 11: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

11

In terms of computational weight, it still has to be demonstrated that an exact algorithm for TSP is

capable of running to a higher speed of 𝑂(1.999𝑛) (Woeginger).

2.2.3 Vehicle Routing categories

As mentioned before, throughout the years this problem has been treated by many researchers

with many starting hypotheses around it which enlarged the TSP initial concept.

It is important to keep in mind that many of these categories are important in order to mirror some

real-world problems. In fact, the operational problems that some services like logistics or private

transport may face have to be modelled following a strong mathematical formulation that permits

to obtain good reliable results without resulting too tough to compute in a reasonable time.

The following subparagraphs aim to present the most relevant models and some examples to

better understand their field of application, as presented in numerous papers (R. Larsen, A Larsen,

etc.)

2.2.3.1 Static VRP

The Static Vehicle Routing problems are the simpler sub-category of the whole branch.

As the name suggests, the whole problem is treated as static, in the sense of having given

conditions at the beginning of our analysis, conditions that are not supposed to change during the

whole operational time.

These are for example the travel times between nodes, demand, number of customers and

vehicles.

It is fine to confirm that time is not taken explicitly into consideration in these specific extensions

of the problem.

Page 12: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

12

Figure 2-2: Standard VRP

So, briefly, all the data necessaries to solve a problem are known a-priori and do not requires a

continuous update of data.

A good application of this problem may be goods delivery between depots whose position is fixed

and in certain time of the day (ex. Late night) in which considering fixed travel times cost is

possible. In this particular case, the calculation could be done a good amount of hour before

actually starting the operations, since the variance from the average values we use to obtain the

optimal solution is basically null.

The logic construction described so far is also known as deterministic. The reason for that is its

absolutely absence of any randomness.

To add the stochastic element information’s must change according to some known (or unknown)

distribution. A good example to understand this difference might be the waste collection for

private households: it is possible to model everything in advance of the operation time, but with a

randomness in its elements, so for example the oscillation from the average value of the amount of

waste to be collected. This oscillation could be done with the usage of historical series or any other

statistical instrument which allows to forecast the chosen period.

In case of having a bigger amount than the previous day, the problem would change its structure,

involving for example more vehicles and/or different route to optimize the scenario.

Page 13: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

13

2.2.3.2 Dynamic Vehicle Routing and Time Windows

Some very important logical additions to the standard VRP problem are the Dynamic (DVRP)

aspect and the Time Windows constraints (DVRPTW).

The dynamic problem is defined as: “in DVRP the input on the problem is received and updated

concurrently with the determination of the route” (Psaraftis et al.).

The Dynamic characteristic is fundamental for almost every modern study or, at least, anything

that has been studied after 2000. The reason why, as mentioned before, is the stunning explosion of

the mobile technologies which created the brand-new market segment of the actual real time

transportation.

It may seem reductive to address technology as the major reason why the researches about DVRP

have been carried on with such a great enthusiasm, but this thesis is shared by many scholars

(Psaraftis, Larsen, etc.).

The main aspects for this progression have been in particular:

➢ Advances in computing power and its household diffusion.

It is anyway important to notice that the empowered calculation doesn’t immediately

correspond to a possibility of enlarging by the same order of magnitude the problem

dimension. To explain in better terms, Psaraftis takes as an example the memory expansion of a

calculator. Assuming a TSP could have been solved in the 70s with a maximum of 20 nodes,

with a 106 increase of storage capacity and the same algorithm now could be solved enlarged

to 28 nodes.

Anyway, this is not true for heuristic approaches, whose memory requirements grows

polynomially with problem size.

➢ Global Positioning Systems (GPS), Geographical Information Systems (GIS) and Intelligent

Transportation Systems (ITS).

These field are deeply interconnected with each other and their development reflected on

transportation field. A continuous control over any type of vehicle fleet exploited numerous

and useful applications: commercial ones such as logistics and delivery services, as well as

private such as traffic control and forecasting.

Page 14: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

14

➢ Big Data and Predictive Analysis.

Big Data refers to the manipulation of very large datasets that, in the past, could not be

handled. The field have drawn an enormous amount of attention from a lot of different field of

application, especially operational researchers.

Predictive analysis is instead a related concept that uses a variety of statistical techniques from

modelling to machine learning; the aim is of course to analyse real-time and historical facts in

order to make predictions about future or any kind of unknown event.

➢ The outstanding growth of portable devices and the diffusion of position signalling devices to

a household level.

Reprising the first two points of the computer advances, it is also very important to underline

the game-changing role of portable devices which unite a great amount of computing power

and quick connectivity with the possibility to track the position of the device itself in a matter

of seconds.

Apart from technology, it is not to be neglected in the equation the budget which has been used by

EU to fund ICT and transports, which settles at around 2.5 billions euros combined (data reported

by DTU university).

The deeply useful work by Psaraftis et al. aims to build a taxonomy for the DVRP, in order to

catalogue the work that has been done and to determine the significant path to follow in the

immediate future.

While the base is Dynamic Vehicle Routing, the author divides researches by eleven different

criteria, giving a more distinct frame.

Page 15: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

15

Page 16: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

16

Taking a closer look to the prior page, it is immediately noticeable that, as for the static VRP, also

in DVRP there is a first division between Deterministic and Stochastic problems.

To understand better what kind of information’s are part of one or the other group it could be

useful to tackle a real life situation.

Let’s consider any city-based service which involves any sort of pickup and/or delivery of

customers; the number of those is likely to change during different times of the same day in a

reasonable way.

A Deterministic Dynamic problem is not a problem in which any future input is known in

advance, instead this implies having no stochastic information (probability or probability

distribution) about any future, dynamically evolving input.

For instance, nothing may be known about the location of a customer until that same customer

request service; or nothing may be known about the quantity to be demanded until when that

information is revealed.

A Dynamic problem is labelled as Stochastic if, on the contrary, some probabilistic information is

known about the inputs that dynamically evolve, and for instance routes are updated as these

inputs evolve in time.

To bring another example, it is possible to assume that demand at a customer location could follow

a certain probability distribution; the actual value of the demand is later revealed when the vehicle

physically visit the location.

Some publication too k into consideration this typology, modelling services such as real-time

delivery of urgent goods (2013, Ferrucci et al.) or a more generical analysis of minimum expected

total cost from O to D that anticipates and responds to service requests (2004, Thomas and White).

VRP CLASSIFICATION STATIC DYNAMIC

DETERMINISTIC

All data known in advance and

time is not taken into account

explicitly.

Planning is done when the day

operation begins.

All data is deterministic, but

not known in advance.

STOCHASTIC

Routes are designed at the

beginning of the planning

horizon before uncertain data

become known

Uncertain data (for instance

user requests) are represented

by stochastic processes.

Data are gradually revealed.

Table 1 - VRP classification

Page 17: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

17

An interesting measure for a DVRP has been formulated by Lund et al. by the name of Degree of

Dynamism ( 𝛿 ). In this case measure can be seen some way as the number of dynamic operation to

achieve in determined Planning horizon [0 , T].

Figure 2-3 - Degree of dynamism representation

The occurrence time (request time) 𝑡𝑖 ∈ [0 , 𝑇] and the number of static 𝑛𝑠 and dynamic 𝑛𝑑 request

complete the data set to determine 𝛿.

In the example above we have 7 static requests at the 0 instant (since are known a-priori) and 3

dynamic requests within the planning horizon.

The formula for the degree of dynamism has been defined as:

𝛿 = 𝑛𝑑

𝑛𝑑 + 𝑛𝑠

It is pretty easy to calculate the result which is 3.

A fundamental addition to the logical construction of the problem is the consideration of Time

Windows, so that a problem can be called Dynamic Vehicle Routing Problem with Time Windows

(DVRPTW).

A Time Window is an additional constraint to the problem and it perfectly represent the problem

of assuring “deliveries on time”.

To explain the concept a little better (even though it is easy imaginable), Time Windows are added

to any operation, so there will be a an open time for the operation to be satisfied. In case of a

people transport service you’ll have a pick up time which is non shiftable to an earlier instant.

With the same mindset it is easy to understand that there will be a closing time of the window, so

that a delivery may not be completed after a certain date/time. A good example of this boundary

might be the closing time of a shop which needs to receive the goods of the day.

Page 18: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

18

This restriction is pretty important when it comes to operational quality of service, since it

represent the boundaries inside which the service must take place in order to satisfy the minimum

requirements of whomever is using it.

Because of it ‘s central part and its implications, Time Windows make this kind of problems way

more complex from a mathematical point of view.

2.2.3.3 A mathematical model for VRPTW

A rigorous formalization of the VRPTW has been given by many researchers with different

degrees of complexity because of their different aims. A work that is particularly interesting has

been delivered by El-Sherbeny (2009, Al-Azhar University). Even though this paper went into

deeper levels of the problem which aren’t really related to the aim of this course, the standard

formulation is clear and explains the most important sides of the problem.

VRPTW is given by: V as a fleet of homogeneous vehicles, C as a set of customer and G = (V, C) as a

directed graph. The graph consists of |C| + 2 vertices, having 0 (in this case the driving out depot)

and n + 1 (the returning depot) as the vertexes.

The aim of VRPTW is to minimize the not only the number of vehicles required, but also the total

travel time, waiting time and total travel distance incurred by the fleet of vehicles.

The set of Arcs A represents the connections between the depot and customers and the customers

themselves. No arc terminates in vertex 0 and no arc originates from vertex n + 1.

Each arc (i , j) has i≠j and is associated with a cost 𝑐𝑖𝑗 and a time 𝑡𝑖𝑗 (which includes a service time

at customer i).

Each vehicle has a capacity q and each customer i a demand 𝑑𝑖.

Each customer has a time window [𝑎𝑖 𝑏𝑖]. As a general rule: a vehicle must arrive before b and if it

arrives before a it will need to wait. The depot also has a time window [𝑎0 𝑏0], so vehicles may not

leave the depot before 𝑎0 and must be back before or at time 𝑏𝑛+1.

It is assumed that 𝑞, 𝑎𝑖, 𝑏𝑖, 𝑑𝑖 , 𝑐𝑖𝑗 are non-negative integers, while the 𝑡𝑖𝑗 are assumed to be positive

integers.

Page 19: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

19

It is assumed that the triangular inequality is satisfied for both the 𝑐𝑖𝑗 and 𝑡𝑖𝑗. The model contains

two sets of decision variables 𝑥𝑖𝑗𝑘 and 𝑠𝑖𝑗𝑘.

For each arc (i , j), where 𝑖 ≠ 𝑗 , 𝑖 ≠ 𝑛 + 1, 𝑗 ≠ 0, and for each vehicle k we define 𝑥𝑖𝑗𝑘 = 1 if and

only if is the optimal solution; arc (i , j) is traversed by vehicle k and equal 0 otherwise.

The decision variable 𝑠𝑖𝑗𝑘 is defined for each vertex i and each vehicle k and denotes the time

vehicle k starts to service customer i. In case a vehicle k does not service customer i, 𝑠𝑖𝑗𝑘 doesn’t

mean anything.

We assume 𝑎0 = 0 and therefore 𝑠0𝑘 = 0 for any k.

The aim is to design a set of minimal cost routes (one for each vehicle) such that each customer is

visited exactly once; plus, every route should originate at vertex 0 and end at vertex n+1, and the

time windows with the capacity constraints should be observed.

We can state the mathematical DVRPTW as follows:

𝑚𝑖𝑛 ∑ ∑ ∑ 𝑐𝑖𝑗𝑥𝑖𝑗𝑘

𝑗∈𝑁𝑖∈𝑁𝑘∈𝑉

(2.2.1)

And the consequent constraints

∑ ∑ 𝑥𝑖𝑗𝑘𝑗∈𝑁𝑘∈𝑉 = 1 ∀𝑖 ∈ 𝐶 (2.2.2) ∑ 𝑑𝑖 ∑ 𝑥𝑖𝑗𝑘𝑗∈𝑁𝑖∈𝐶 ≤ 𝑞 ∀𝑘 ∈ 𝑉 (2.2.3)

∑ 𝑥0𝑗𝑘𝑗∈𝑁 = 1 ∀𝑘 ∈ 𝑉 (2.2.4) ∑ 𝑥𝑖ℎ𝑘𝑖∈𝑁 - ∑ 𝑥ℎ𝑗𝑘𝑗∈𝑁 = 0 ∀ℎ ∈ 𝐶 ∀𝑘 ∈ 𝑉 (2.2.5)

∑ 𝑥𝑖,𝑛+1,𝑘𝑖∈𝑁 = 1 ∀𝑘 ∈ 𝑉 (2.2.6) 𝑠𝑖𝑘 + 𝑡𝑖𝑗 − 𝐾(1 − 𝑥𝑖𝑗𝑘) ≤ 𝑠𝑖𝑗𝑘 (2.2.7)

𝑎𝑖 ≤ 𝑠𝑗𝑘 ≤ 𝑏𝑖 (2.2.8) 𝑥𝑖𝑗𝑘 ∈ {0 , 1}, ∀𝑖, 𝑗 ∈ 𝑁 , ∀𝑘 ∈ 𝑉 (2.2.9)

The constraints (2.2.2) states that each customer is visited just once, while (2.2.3) means that no

vehicle is loaded with more capacity than it is allowed to.

The (2.2.4) ensure that each vehicle leaves the depot 0, (2.2.5) states that after arriving to a

customer the vehicles leaves again, while (2.2.6) eventually put a constraints on vehicle final

arrival, which is of course the depot n+1.

The inequality (2.2.7) state that a vehicle k travelling from i to j cannot arrive before 𝑠𝑖𝑘 + 𝑡𝑖𝑗, when

in this case K is a large scalar.

Eventually, constraints (2.2.8) ensure that time windows are respected and (2.2.9) are integrity

constraints.

Page 20: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

20

In this model, an unused vehicle is modelled as it drives the empty route between (0, n + 1).

Of course, it is possible to generalize the problem to more specific cases, such as non-identical

vehicles, multiple depots or the extremely applicable case of multiple Time Windows.

2.3 Dial-A-Ride

2.3.1 Demand Responsive Transports

For Demand-Responsive transport is an advanced, user-oriented form of public transport

characterised by flexible routing and scheduling of small/medium vehicles operating in shared-

ride mode between pick-up and drop-off locations according to passenger’s needs (European

commission directorate for energy and transport).

The applications of DRT are, for instance, public transport service for areas of low passenger

demand (such as rural areas) where regular bus service would not be available, transport patients

(or elderly people) to home after visiting hospital (or any important need), paratransit services (in

the form of minibuses, shared taxis, etc…) and general Dial-A-Ride buses.

A famous and efficient example is the London Dial-A-Ride which is focused on transport for

disabled people.

Generally speaking, the DRT services work with a user who books his journey to a dispatcher

whom function is to redirect the request to a vehicle (or a group of those) which will later satisfy it.

The next paragraph will focus on the formalization of the Dial-A-Ride problems which, as

explained, are taken into the wider category of Demand Responsive Transports.

Page 21: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

21

Figure 2-4 - DRT Examples and expected response time

2.3.2 Dial-a-ride Problems

Dial-a-Ride problems (DARP from now on) are in fact a generalization of VRP’s. In particular the

categories such as the Pickup and Delivery vehicle routing problem (PDVRP) and of course the

Vehicle and Routing problems with Time Windows (VRPTW).

The prodigious work by Cordeau and Laporte helps to check the state of the research (even though

the paper is from 2007 so not properly updated to the actual situation) and gives an historical

perspective of this services.

DARP consists of designing vehicle routes and schedules for n users who specify delivery and

request between origins and destinations.

The aim is to set a of m minimum cost vehicles routes capable of accommodating as many users as

possible under a reasonable set of constraints.

Page 22: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

22

Common examples of this model are door-to-door services for disabled and elderly people, for

which it’s possible to find examples from the early 70s of the last century. Because of this

characteristic it is often considered an outbound and a return trip for any operational day.

Western countries are activating this service more frequently (or empowering the already existing

ones). The paper suppose that this growth is to attribute to the aging of the population and the

trending towards the development of ambulatory health care systems.

Its high applicability to real operational situations make this type of model studied from a lot of

perspectives. In fact, there is an urgent needing to build adequate systems and to update those that

have been proved to be now outdated.

According to Cordeau et al., the aspect that differentiate DARP from the average VR problem is

the “human perspective”. While transporting passengers, reducing the perceived cost (so the

inconveniences and all the related problems) is essential as much as keeping the operating cost to

the minimum possible.

In addition, while in some VRP’s the problem of the vehicle capacity is redundant or negligible, in

any DARP is an absolute central part of the model. The same reflection can be applied to Time

Windows, which have to be taken into consideration for computing the quality of service from a

righteous angle.

As for any VRP, DARP can be both Static or Dynamic.

In the first case, all transportation requests are known beforehand; this condition actually means a

certain anticipation time for any request. The example might be a service in which is possible to

ask for a Pickup or a Delivery at least a day prior to the date needed for the service.

On the other hand, a Dynamic service reveals the requests throughout the day. In practice it is

really hard to find a purely Dynamic DARP, since some conditions are necessarily known in

advance (Cordeau et al.).

Models are different between them in deciding how to treat the depot and the fleet. A vehicles fleet

might be homogeneous or differ in it vehicles typology distribution (for instance, the model

considered in this work does takes into consideration thing) and the depots might as well be

single, numerous and with different functions.

Page 23: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

23

According to Cordeau et al., it makes sense to consider two types of problems:

➢ minimize costs subject to full demand satisfaction and side constraints

➢ maximize satisfied demand subject to vehicle availability and side constraints

Some quality of service criteria include time spent on board for any passenger, delays form the

desired time, customer waiting time and route length. It is immediate to see that some of these

criteria might be considered as purely constraints for the problem.

That is the reason why Time Windows must be considered in the resolution.

It might be very hard to correctly solve a problem in which Time Windows are set by users

themselves both for the pickup and for the delivery, because they may not be aware of the actual

reasonable TW.

In some situation problem (like the one later treated and simulated) it is acceptable to consider the

customer as the one choosing the correct Time Window for the pickup (if they are requesting one)

and then calculate the appropriate time span for the delivery. While the delay from the desired

time is translated to a negative weight for the overall final cost, the non-respect of the Time

Window is a boundary that, for its definition, it is not acceptable in terms of a good resolution.

The same logic flow applies of course to deliveries.

2.3.2.1 Mathematical Formulation

As is often the case in Dial-A-Ride contexts, users specify an outbound request from their home to

a destination and an inbound request for the return trip. The word often it is not casual, because

even though the request is fair, and it actually sticks to the truth (an user which leaves his home

tend to organize his journey back and forth), it is often considered as two separate trips in many

mathematical structures and, of course, in software that implement those. PTV Dars is part of this

group, as will be defined deeper on this work.

Cordeau (2006) formulates the DARP on a directed graph G = (V , A).

The vertex set is partitioned into: {{0, 2n + 1}, P, D} where 0 and 2n + 1 are two copies of the depot,

P = {1, . . . , n} is the set of pickup vertices and D = {n + 1, . . . , 2n} is the set of delivery vertices.

A request is a couple (i, n + i), where i ∈ P and n + i ∈ D.

To each vertex 𝑣𝑖∈ V are associated a load 𝑞𝑖, with 𝑞0 = 𝑞𝑛+1 = 0, 𝑞𝑖 ≥ 0 for i = [1, . . . , n] and 𝑞𝑖 =

Page 24: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

24

−𝑞𝑖−𝑛 for i = [n + 1, . . . , 2n] , and a service duration 𝑑𝑖 ≥ 0 with 𝑑0 = 𝑑2𝑛+1 = 0.

The arc set is defined as A = {(i, j ): i = 0, j ∈ P, or i, j ∈ P ∪ D, i ≠ j and i ≠ n + j, or i ∈ D, j = 2n + 1}.

The capacity of vehicle k is 𝑄𝑘 and the maximal duration of route k ∈ K is denoted by 𝑇𝑘 .

The cost of traversing arc ( i, j ) with vehicle k is equal to 𝑐𝑖𝑗𝑘 , and the travel time of arc (i, j ) is

denoted by 𝑡𝑖𝑗.

The maximal ride time is denoted by L and the time window of vertex i is [𝑒𝑖, 𝑙𝑖 ].

The model uses binary three-index variables 𝑥𝑖𝑗𝑘 equal to 1 if and only if arc (i, j ) is traversed by

vehicle k ∈ K. In addition, let 𝑢𝑖𝑘 be the time at which vehicle k starts servicing vertex i, 𝑤𝑖

𝑘 the load

of vehicle k upon leaving vertex i, and 𝑟𝑖𝑘 the ride time of user i (corresponding to request (i, n+ i)

on vehicle k).

The model is then as follows:

Minimize ∑ ∑ ∑ 𝑐𝑖𝑗𝑘 𝑥𝑖𝑗

𝑘𝑗∈𝑉𝑖∈𝑉𝑘∈𝐾 (1)

Subject to

∑ ∑ 𝑥𝑖𝑗𝑘

𝑗∈𝑉𝑘∈𝐾 = 1 (i∈P) (2.3.1) ∑ 𝑒0𝑖𝑘

𝑖∈𝑉 = ∑ 𝑥𝑖,2𝑛+𝑖𝑘

𝑖∈𝑉 = 1 (𝑘 ∈ 𝐾) (2.3.2)

∑ 𝑥𝑖𝑗𝑘

𝑗∈𝑉 −∑ 𝑥𝑛+𝑖,𝑗𝑘

𝑗∈𝑉 = 0 (i ∈ P, k ∈ K) (2.3.3) ∑ 𝑥𝑗𝑖𝑘

𝑗∈𝑉 −∑ 𝑥𝑖𝑗𝑘

𝑗∈𝑉 = 0 (i ∈ P ∪ D, k ∈ K) (2.3.4)

ukj≥ (uki+ di +tij) xkij (i, j ∈ V, k ∈ K) (2.3.5) wkj≥ (wki+ qj ) xkij (i, j ∈ V, k ∈ K) (2.3.6)

rki≥ ukn+i−(uki+ di) (i ∈ P,k ∈ K) (2.3.7) uk2n+1−uk0 ≤ Tk (k ∈ K) (2.3.8)

ei ≤ uki≤ li (i ∈ V, k ∈ K) (2.3.9) ti,n+i ≤ rk i≤ L (i ∈ P,k ∈ K) (2.3.10)

max {0, qi} ≤ wki≤ min {Qk,Qk + qi } (i ∈ V,k ∈ K) (2.3.11) xkij= 0 or 1 (i, j ∈ V,k ∈ K) (2.3.12)

In this formulation, constraints (2.3.2) and (2.3.4) ensure that each request is served once by the

same vehicle, while constraints (2.3.3) and (2.3.5) guarantee that each vehicle starts and ends its

route at the depot. Constraints (2.3.6) to (2.3.8) define starts of service times, vehicle loads and user

ride times, respectively, while constraints (2.3.9) to (2.3.12) ensure that these will be feasible.

While this is not the only formulation available (and the publications are surely numerous), it may

be one of the most precise, because of the deep knowledge of the author about DARS publications

throughout the years.

Page 25: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

25

2.3.2.2 Static and Dynamic DARPs

The dynamic DARPs have been without a doubt the most investigated branch of the problem.

Even though as said before it is hard to consider a DARP as purely dynamic, it might be

interesting to mention some publications to have a good overview of the different angles.

In particular, the decision has been taken to focus on multi-vehicle cases only because of the nature

of this thesis work.

As already did in the previous paragraph, it is important to distinguish static and dynamic

problems.

The first example of multi-vehicle static DARP was provided by the pioneer’s work of Jaw et al.

(1986), even though a big part of his studies on the topic were presented a couple of years before in

the author PhD thesis work (1984), a (rare) ground-breaking document because of its later

influence on other researchers works.

The model considered by these authors imposes windows on the pickup times of inbound requests

and on the delivery times of outbound requests. A maximum ride time, expressed as a linear

function of the direct ride time, is also imposed for each user.

The important studies by Jaw weren’t of course the first of its field; many scholars had intuitions

about the problem that were later re-used or exploited by their colleagues, making the researches

on this topic active and flowing. The author itself indicates some authors that have been

fundamental for his research path.

One of the most quoted studies has been delivered by Wilson et al. (1971, 1976, 1977) in connection

with the development of real-time algorithms for the Dial-A-Ride systems of Haddonfield, NJ, and

Rochester, NY.

The ADARTW “slice” derives some of its fundamental concepts (like building tours through

sequential insertion of customers and the general form of the objective function) from that work.

In parallel, a paper by Roy et al. (1983) appeared as Jaw paper was being completed and it also

uses similar concepts and solves essentially the same version of DARP. While the work are similar,

has been chosen to put under the microscope only the work by Jaw.

Also Hung et al. (1982) have been tackling the same problem but have adopted an entirely

different approach involving processing (in particular “scheduling” and “routing”) on one vehicle

at a time rather than all vehicles simultaneously, which is one of the main characteristics of this

Page 26: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

26

ADARTW application.

Psaraftis (1983a) on the other hand has developed a dynamic programming algorithm for solving

the single-vehicle DARP optimally for a small number of customers in the presence of time

windows, followed by Solomon (1983), who later published an excellent review of the vehicle

routing problem (so not a pure DARP) with time-window constraints.

Numerous descriptions of DARP without time-window constraints can be found in Bodin et al.

(1983).

Other scholars who distinguished themselves in this field before (or during) Jaw’s studies are for

instance Hendrickson (1978) and Daganzo (1978) who have developed approximate models to

evaluate the performance of Dial-A-Ride systems. Also, Stein (1978a, 1978b) has presented a

probabilistic analysis of the problem, followed by Bodin and Sexton (1982); again, Psaraftis has

described an exact approach based on dynamic programming (1980) as well as several polynomial-

time heuristics (1983b, 1983~) for solving the single vehicle problem. After that, Jaw et al (1982),

proceeded on studying an approach to solving the multi-vehicle, advance-request DARP in the

absence of “hard” time-window constraints, using a three-step (grouping, clustering and routing)

algorithm.

Another good example of multi-vehicle Dynamic DARP has been provide by Madsen et al., in is

real case scenario of an elderly and disabled people focused transporter based in Copenhagen.

Users can specify a departure or arrival TW, but not both.

Not all the vehicles have the same capacity and are available at the same time and it is also taken

into consideration of a possible breakdown which would let them unusable. Request are not fixed

and arrive dynamically during the day; an important feature is about speeds, also considered to be

variable and not fixed.

3 An Algorithm for DARP

3.1 Introduction

The core of this thesis work will be the examination and the dissection of the main function of a

specific algorithm tailored to solve Dial-A-Ride problem with specific characteristics.

The history and development of the algorithm will be exposed, starting from the earlier studies

through the most recent software’s implementations.

Page 27: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

27

The plural regarding the software is not a typo, since the researches surrounding this algorithm

have been translated into directs on-field applications during the years, in which the latter of those

has been the DARS, developed from the PTV Sistema.

DARS software has been developed by the Italian company Sistema, part of the German leading

group for transport software’s and traffic solutions PTV.

The entire numerical part of this thesis work has been treated by using it.

The roots of DARS must be searched through the pioneering work of Wilson et al and Jaw.

The latter especially has been an “early bird” researcher of the DAR problems and the following

solving algorithms. Starting from his 1984 PhD Thesis, Jaw presented an “heuristic algorithm for

DARP with soft time constraints”, to be more precise, a heuristic algorithm to solve Advanced

Dial-A-Ride problems with Time Windows (from now on we will refer to this algorithm also as

ADARTW).

The work has been carried on with a paper published a couple of years after that, which assumed a

wider importance and inspired many in the following years.

His work will be the first stop of a deeper analysis.

Based on Jaw et al. work, a research paper and the following software implementation has been

developed by professor Gentile and his fellow collaborator and student Claudio Catta.

This paper led to an algorithm which changed some of the previous hypothesis coming from Jaw,

in order to improve the solution output.

It could be applied to numerous situations without big abstractions or simplifications, which made

a good fit to interpret real world situations, as it will be later shown.

For ease, we will be referring to this implementation as DARP.

The latest incarnation of this studies has been the already mentioned DARS, which stretched some

characteristics and changed (or corrected) some previous hypothesis, making the new

implementation a faster, more modern tool to examine situations which may require a high

demand of computational power.

It is important to notice that so far the software is not available on the market and it is still in a

stage that could be defined as pre-beta, since it’s still missing a proper GUI and some key features

that cannot be ignored in aim of commercial purposes.

Page 28: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

28

Each one of the mentioned part will be now presented on a deeper scale in order to be aware of the

research situation and its growth through the years, exposing strengths, weakness and general

principles of working.

A big part will be dedicated to the presentation of the insertion functions which, as will be clearer

going on, is the core of the algorithm way of solving.

3.2 Jaw Algorithm (1984-86)

3.2.1 Logic Notes

In his 1984 PhD Thesis and the later 1986 publication Jaw managed to build a precisely constructed

structure to a heuristic algorithm for a time-constrained version of the advance-request, multi-

vehicle, many-to-many Dial-A-Ride problem.

As already mentioned we will refer to this problem as ADARTW.

“Many-to-many” refers to the fact that each customer can have a distinct origin and destination,

while “advance” request means that all the requests are received well before the time of vehicle

dispatching.

The Time constraints (also mentioned as “Quality constraints”) consists of upper bounds on:

➢ The Amount of time by which pick-up or delivery of a customer can deviate from the

desired pick-up or delivery time

➢ The time that a customer can spend riding a vehicle

The “advance” is one of the characteristic that will be later changed in the development that will

be tackled later.

The algorithm uses a sequential insertion procedure to assign customers to vehicles and determine

a possible time schedule for pickup and deliveries for each of these.

The entire functioning is regulated by a “flexible” objective function which balances the cost of

providing service with the customers’ preferences for pick-up and delivery times as close as

possible to those requests.

Page 29: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

29

As said, the algorithm has been originated from an 80s research which may seem overall outdated,

even thou it is still interesting for many reasons.

ADARTW addresses what is probably the most applicable and realistic version of the real-world

problem in a way that avoids excessive abstraction and simplifications, while emphasizing on

flexibility and convenience. This might seem obvious, but many modern algorithms and

applications tend to focus on different aspects, ignoring the operational aspects.

Considering resolutions of wider, more reality-attached problems in which speed counts as much

as precision, this algorithm seems to fit in nowadays applications.

Even in 1986 it was noted that the computation required to get high quality solution was low

compared to other system already working at that time.

It is easy to understand that with today’s improvement of computation power (and for the

immediate future) this tendency to use low computational resources would translate into the

chance of solving complex problems which were impossible to tackle years ago.

3.2.2 Problem Formalization and Operating Scenario

Time Windows have been nominated already and in this case their functions is obviously not

different from the average situations.

The Dial-A-Ride system for which the algorithm has been thought is defined by some important,

strong assumptions, which have been maintained for a large part in the new software

implementation we will later examine.

The assumptions are the following:

➢ The customers have the possibility to specify a desired pick up time (DPT) from an origin

or a desired delivery time (DDT) to their destination.

It is extremely important to notice that is impossible to specify both.

➢ Any customer who specified a DPT cannot be collected before that specific time.

➢ Any customer who specified a DDT cannot be delivered after that specific time.

Page 30: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

30

➢ Given an average riding time (ART) for any client, it must not exceed a maximum riding

time (MRT). The MRT is computed based on the direct riding time (DRT) from an origin to

a destination, which represent the exact minimum riding time without stops in between of

O and D.

➢ The difference between the desired time (DT) of pickup or delivery and the actual time of

pickup or delivery, named deviation time (DV) must not be more than a set maximum.

The possibility for customers to choose their own PU o D time is certainly a big advantage,

although it is reasonable to expect a certain regularity in this choice, especially in specific part of

the day. For instance, it might be easier to find a greater amount of DDT in the morning because of

a mandatory time to start work; while at evening (Or night) this tendency could be reversed.

In a Dial-A-Ride service of this type a central part of the attention is reserved to the quality of

service.

To give a practical example: if a customer lives 15 minutes by car from a shopping centre and

requests a delivery at 10 AM, it is out of discussion that he shouldn’t be delivered at 8 AM, since

that would be a severe violation of his request. Also, his ride should be confined into a reasonable

time interval, so for example a 90 minutes trip would not be reasonable and is seen as terribly low

service.

The value of the MRT and the maximum deviation from the DT could be negotiated from time to

time between the service operator with any customer, basing this decision on the actual part of the

day the request is fitted in. Instead, an operator should decide to introduce a one-way maximum

deviation without taking any suggestion or request from the user about it (this method will be

later used during the tests).

The version of DARP solved by ADARTW can be then summarized as follows.

Given a list of N customers who specified a desired pickup (DPTi) or a delivery time (DDTi) and a

fleet of n vehicles, find an effective client allocation of customers among vehicles and an associated

time schedule of pickups and deliveries so that it results:

➢ For any customer:

ADTi – APTi ≤ MRTi

Page 31: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

31

Where ADTi is the Actual delivery time for the request i and APTi is the Actual Pickup time

for the same request.

➢ For DPT customers only:

DPTi ≤ APTi ≤ DPTi + WSi

Where WSi is the time window extension for the pickup. In this case it is obviously possible to

get the Pickup after the desired time, while it may lead to a “malus” in terms of cost and it

mustn’t overcome the amount of the Time windows for any reasons.

➢ For DDT customers only:

DDTi - WSi ≤ ADTi ≤ DDTi

On the other hand, for deliveries the time window is set before the desired delivery time. As

for the pickup, the actual delivery happening before the DT would lead to a “malus” in terms

of costs.

Note that it will be later specified a measure of effectiveness.

It is also important to notice that it may prove infeasible to serve some of the N customers with the

given vehicle resources and this kind of service-quality constraints.

➢ It will be then assumed:

WSi = WS.

It might seem pointless, but it makes that particular quantity a constant so that the calculation

will be smoother.

➢ MRT is a function of the direct riding time DRT; Jaw used the current formula:

MRTi = A + 𝐵 × DRTi

With 𝐴 and B as user-specified constants (For example A = 5 mins and B = 1.5) as a given input

of the problem.

Other functional forms can be used to specify MRTi,, such as the one we will later see applied

and that takes the form of:

MRTi = 𝛼 × DRTi

Page 32: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

32

The Table below shows the summary of the principal variables.

N Number of customers

m Number of available vehicles

DPTi (DDTi) Desired Pickip Time (Desired Delivery Time).

EPTi (EDTi) Earliest Pickup Time (Earliest Delivery time).

LPTi (LDTi) Latest Pickup Time (Latest Delivery Time).

APTi (ADTi) Actual Pickup Time.

DRTi Direct Riding Time (Interval needed by vehicle to go directly from O to D)

ARTi Actual Riding Time

D(x,y) Time to get from x to y

[+i | -i] Pickup (+) and Delivery (-) events

DVi Deviation time between desired time and actual time

WSi Maximum acceptable deviation between desired and actual time.

d Number of stops within a block

SLACKj Waiting time interval before the next stops block j

The last two variables, d and SLACK will need a deeper review, since are important concepts for

the DARP software and the new DARS as well (the structure has been maintained almost without

any differences in this case).

Some additional assumptions are needed and should be noted before diving into the algorithm

structure.

➢ Vehicle Capacities are assumed as finite and may not necessarily be the same for the entire

fleet.

➢ The Losing time for charging and unloading the customers (also known as Dwell time)

may be different from customer to customer and more than 0.

While it is sometimes easier to consider this time as null (or just neglectable), it might be often the

case to set a value higher than 0.

Jaw proposed to handle non-zero dwell times by adding them to a distance matrix in a way

consistent to the definition of APT and ADT. Of course, this changed on the latest implementation.

Page 33: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

33

➢ The Vehicle is not allowed to idle when having customers on board.

This is a fundamental assumption for the logical construction of the problem. It is felt that such

idle periods would not be tolerated by Dial-A-Ride users.

In fact, this immediately translates into a real-service scenario: if a customer is scheduled to be

picked-up at 19.00 by a vehicle n, it should not stop and wait until it is about that time if the

vehicle already has other customers on board waiting to be delivered.

In general Jaw distinguish the vehicle activities in different periods:

➢ Available: the vehicle is on-service and available to take charge of requests for a certain

period, which may be the 8-hour work day. If not available (Non-Active), the vehicle

should not be considered for the service.

If the vehicle is available, it is useful to distinguish between Active and Idle intervals.

➢ Active: the vehicle is moving, so it has customers on board or at least some requests are

going to take charge of.

➢ Idle: the vehicle has no requests nor passenger on board, so it doesn’t move until a new

request is communicated to it. The stop may be done in a recharge station (introduced in

DARP implementation).

3.2.3 Algorithm Overview

As by definition by Jaw himself, ADARTW is a heuristic algorithm that processes ride requests

sequentially, inserting one customer at a time into the work-schedule of some vehicle until all ride

requests have been processed.

Two vital steps of the algorithm which must be overview for the sake of clarity are:

1. The algorithm searches for feasible insertions of customers into work-schedules

2. An optimization function it is used to find the best feasible solution for the insertion.

These two parts will be later described separately, as they are equally important and for the

algorithm construction and cannot be by-passed in their description to understand its philosophy.

Page 34: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

34

Of course, the insertion of a customer into the work-schedule is considered feasible only if it does

not lead to violation of any service quality constraint for the newly assigned customer and, almost

more important, for any other customer already assigned.

The optimization step deals with minimizing the additional cost due to inserting the customer into

a vehicle’s work-schedule; the cost function used for this aim is a weighted sum of disutilities to

the system’s customers (like the excess of riding times and the deviations from the most desirable

pick-up and delivery times) as well as the cost known as “system’s costs”.

3.2.4 Processing of a generic customer

This version of the algorithm considers the problem already exploited above, which is N

customers for service and n available Dial-A-Ride vehicles.

ADARTW begins by indexing customers in the order of their EPT.

The algorithm then processes each customer in the list in sequence and assign each customer to a

vehicle until the list of customers is exhausted.

As said above, the generic version can be modified with other options for a more defined result.

➢ Customers can be indexed and processed according to criteria other than EPT.

For example, one can also process customers “backward” by ordering them according to their

LDT, with the customer having the largest LDT being processed first. Such alternative processing

orderings can be used to generate several alternative solutions.

➢ Instead of processing one customer at a time, the user can specify how many (yet

unassigned) customers should be considered in the first step.

For example, if the number 5 is specified, the top five (in terms of their EPT index) unassigned

customers will be considered on each occasion as candidates to be assigned next to a vehicle. It

should be emphasized that each of the candidates is considered separately in Step 1, so that in Step

2 the candidate (among the five, in our example) with the smallest COSTi would be assigned to

vehicle j*, while the remaining customers stay unassigned.

This hypothesis is provided for the purpose of improving the performance of the algorithm by

Page 35: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

35

making it less “myopic”, to use Jaw’s very effective words. The reason is simple, since if the

opportunity is given to select among more than one customer for the assignment it might turn

better for the average cost, instead of the local-step cost. Of course, the downturn would be to

increase the number of computation and directly decrease the algorithm efficiency.

➢ If the user desires so, ADARTW will not reject any customers.

This condition would translate into assigning the customer to a vehicle that was not considered

available at the beginning, so it will join the already existing fleet.

This could be a vehicle/driver which is forced to do overtime for lack of other choices, so it might

be seen as an increased cost situation.

3.2.4.1 Feasible Insertions: search methods

This section will be dedicated to identifying feasible insertions of customers into vehicle work-

schedules.

A notion which plays an important role in this respect is the “Schedule Block”.

A schedule block is a continuous interval when the vehicle is active, between two successive

periods of vehicle slack time, so the moments in which the vehicle is Idle and waiting to start new

operations.

A schedule block always begins with a vehicle starting (possibly from a depot) on its way to pick

up a customer and ends either after the vehicle discharges its last customer on board or after the

vehicle returns to a depot. Associated with a schedule block is a “schedule sequence” indicating

the sequence of stops in the block, and a “time schedule” indicating the time when each stop is

scheduled to take place.

As obvious, the schedule block should necessarily start with a Pickup and finish with a Delivery.

Let’s suppose the next phase would be to examine whether an unassigned customer I can be

inserted into the work schedule of vehicle j. The objectives of the search for feasible insertions are:

I. To identify feasible sequences

This passage underlines the fact that it might not always be possible to insert request in any

Page 36: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

36

possible combination, due to the different constraints the problem is subject to.

II. For each feasible sequence to find upper and lower bounds for APTi and ADTi, meaning

the bounds for the times when it is feasible to schedule pickup and delivery of customer i.

As already explained, the Pickup and Delivery bounds are drivers for the entire scheduling

problem, since their task is to ensure that the problem is going to respect any constraint while

searching for the best possible solution.

Figure 3-1 - Standard Schedule Block representation

The algorithm examines all possible schedule sequences associated with each schedule block for

vehicle j.

It is noticed quickly that if there are d stops in the schedule block already, the number of possible

schedule sequences that involve the insertion of a new customer are:

(𝑑 + 2)(𝑑 + 1)

2

Of course, the obvious constraint of “pickups before deliveries” must be maintained.

It is important to notice that in addition to inserting customer i into one of the already existing

schedule blocks of any vehicle j, ADARTW will consider creating an entirely new schedule block

Slack

time

Planned Pu/D

Block first

instant

Instant in which vehicle

starts to move

Block last instant

(vehicle will return to

idle situation after this)

Page 37: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

37

for vehicle j to accommodate customer i. For example, the first customer ever assigned to a vehicle

will obviously always create a new schedule block. Such new schedule blocks are added to the list

of existing schedule blocks to which ADARTW attempts to add new customers through the

insertion procedure.

The purpose of this insertion in the schedule block is to facilitate ADARTW on its research and to

make it more efficient, which is fundamental while dealing with large-scale problems.

The procedure involves the creation of two different time windows as follows below.

Figure 3-2 - Delivery Time window

Figure 3-3 - Pickup Time Window

TWIN DRT ( – 1) DRT

+

TWIN

DELIVERY

TIME ZONE

P D

time

EPT LPT EDT LDT

MRT = · DRT

TWIN

DRT ( – 1) DRT

+

TWIN

PICKUP

TIME ZONE

P D

time

EPT LPT EDT LDT

MRT = · DRT

Page 38: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

38

For DPT kind of customers, we define:

EPTi = DPTi (3.2.5)

LPTi = EPTi + WSi (3.2.6)

EDTi = EPTi + DRTi (3.2.7)

LDTi = LPTi + MRTi (3.2.8)

Similarly, for each DDT kind of customer we define:

LDTi = DDTi (3.2.9)

EDTi = DDTi - WSi (3.2.10)

LPTi = LDTi - DRTi (3.2.11)

EPTi = EDTi - MRTi (3.2.12)

For any customer i, whether DPT or DDT kind, a set of necessary but not sufficient conditions for

feasibility is then provided by the followings:

EPTi ≤ APTi ≤ LPTi (3.2.13)

EDTi ≤ ADTi ≤ LDTi (3.2.14)

It is easy to see that (3.2.13) and (3.2.14) are not sufficient because it is possible that APTi and ADTi

satisfy them, but the time is greater than MRTi.

Of course, it is also mandatory (if not trivial) that LDTi must be higher than EDTi.

The quantities EPTi, LPTi, EDTi, and LDTi, are computed from the equations above and define

“fixes” on the time axis within which the customer must be picked up and delivered. To

understand the value of these fixes it might help to return at the problem of checking the feasibility

of inserting customer i into a schedule block (p) for vehicle j.

Indexing the successive stops on the schedule sequence with the subscript 𝛼 = 1, 2, … , 𝑑.

The (3.2.13) and (3.2.14) give us an upper and lower bound for each element in the time schedule

associated with our schedule block.

Page 39: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

39

It is convenient to drop the indication of whether a particular stop on the schedule block is a pick-

up or a delivery and use ETα , ATα and LTα to denote earliest, actual (so the scheduled one) and

latest time, respectively, for stop α. This will make it possible to avoid the specification of the stop

typology (Pick-up or Delivery).

ADARTW is programmed to compute and store four statistics for each stop α on each schedule

block, defined as follows:

BUPα = min[ 𝑚𝑖𝑛1≤𝑙≤𝛼 (𝐴𝑇𝑙 − 𝐸𝑇𝑙) , 𝑆𝐾𝑇𝛼]

BDOWNα = [ 𝑚𝑖𝑛1≤𝑙≤𝛼 (𝐿𝑇𝑙 − 𝐴𝑇𝑙)]

AUPα = [ 𝑚𝑖𝑛𝛼≤𝑙≤𝑑 (𝐴𝑇𝑙 − 𝐸𝑇𝑙)]

ADOWNα = min [ 𝑚𝑖𝑛𝛼≤𝑙≤𝑑 (𝐿𝑇𝑙 − 𝐴𝑇𝑙) , 𝑆𝐾𝑇𝑞]

SKTp and SKTq denote, respectively, the duration of the slack period immediately preceding and

immediately following the schedule block in question.

There is a real intuitive meaning associated with the four quantities defined by these last equations

above.

Specifically, BUPα (BDOWNα) represents the maximum amount of time by which every stop

preceding but not including stop α + 1 can be advanced (delayed) without violating the time-

window constraints.

Similarly, AUPα (ADOWNα) represents the maximum amount of time by which every stop

following but not including stop α - 1 can be advanced (delayed).

Essentially, the quantities BUP, BDOWN, AUP and ADOWN indicate by how much, at most, each

segment of a schedule block can be displaced to accommodate (pick up, deliver, or both) an

additional customer.

As an example, in a situation where an attempt is made to insert the pick-up of customer i between

the second and third stop of a schedule-block containing four stops, the extra time required to visit

the additional stop is called Detour.

If Detour ≤ BUP2 + ADOWN3, then it is feasible to insert a pickup in the schedule-block at the point

indicated without violating any time-windows for the customers already in the schedule-block.

Should this be the case, it is then necessary to check whether it is also feasible to insert the delivery,

Page 40: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

40

taking into consideration the fact that an extra amount of time equal to Detour has already been

spent to pick up customer i. This second check can also be performed using the quantities, BUP,

BDOWN, AUP and ADOWN. Finally, once it is determined that it is feasible, as far as the time-

window constraints are concerned, to insert customer i in a way within a schedule-block, a check

must be performed to be sure that no maximum-ride-time constraints are violated for the newly

inserted customer and for the customers already in the schedule block. This operation is done by

scanning through the list of these customers and comparing the respective actual ride-times and

maximum ride-times.

Figure 3-4 - Allowed left and right shifts

Planned

New Pu/D after

Needed left and right

shift to absorb the Detour

caused by the new

insertion

When more than one stop have to be shifted to

absorb the detour, the shifting limit is the

minimum between all the possible bounds!

Page 41: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

41

ADARTW handles four different possibilities which account for the total combination mentioned

earlier. The “feasibilities” are numbered as follows:

I. Both the Pick-Up and the delivery of customer i are inserted at the end of the last schedule

block, so that the result would be those two stops would turn into the last two of the block.

II. Both the pick-up and the delivery of customer i are inserted between two consecutive stops

on the schedule-block

III. The pick-up of customer i takes place somewhere within the schedule block, while his

delivery is inserted at the end of the work-schedule

IV. The pick-up and delivery of customer i are separated by at least one other stop and the

delivery of i is not the last stop on the expanded work schedule

Figure 3-5 shows the graphical representations of these insertions.

The (commented) schemes representing the logical workflow of each feasibility will be presented

later, on the paragraph talking about DARS and on the appendix at the end. The reason for this

choice is that the logical of the insertions has been kept almost the same by later applications.

Page 42: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

42

I. Feasibility I

Number of possible insertions = 1 (at the end of the block only).

II. Feasibility II

Number of possible insertions = N (where N is the number of stops within the block)

III. Feasibility III

Number of possible insertions = N

IV. Feasibility IV

Number of possible insertions = N (N-1)/2

Figure 3-5 -Possible Feasibility Insertions

Page 43: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

43

3.2.4.2 Optimization Procedure

To select among all feasible insertions of customer i into the work-schedules of the available

vehicles, ADARTW uses an objective function designed to evaluate the incremental cost of each

insertion.

This is taken to be a weighted sum of disutility to the system’s customers and of operator costs;

this last element is measured in terms of consumption of available resources (just like vehicles).

Assuming that it is feasible to insert customer i into the work-schedule of vehicle j, then the

incremental disutility of that insertion to the system’s customers consists of the sum of two parts:

the disutility to customer i (the customer being assigned to a vehicle) and the additional disutility

suffered by all other customers already assigned to that vehicle because of the insertion of

customer i.

The disutility to customer i is given by:

𝐷𝑈𝑖 = 𝐷𝑈𝑖𝑑 + 𝐷𝑈𝑖

Where 𝐷𝑈𝑖𝑑 = Disutility due to deviation from the most desired time

𝐷𝑈𝑖𝑑 = 𝐶1𝑥𝑖 + 𝐶2𝑥𝑖

2 0 ≤ 𝑥𝑖 ≤ 𝑊𝑆

And 𝐷𝑈𝑖′ = Disutility due to excess riding time

𝐷𝑈𝑖′ = 𝐶3𝑦𝑖 + 𝐶4𝑦𝑖

2 0 ≤ 𝑦𝑖 ≤ 𝑀𝑅𝑇𝑖

C1 , C2 , C3 and C4 are user specified constraints.

Because of the particular meaning and structure of the function, the terms can be translated into

calibrated Value of Time coefficients, so that the function would better describe the disutility

originated by the time loss. By varying those, a lot of different behaviour can be represented,

including assigning value of zero.

On the other hand:

𝑥𝑖 = {𝐴𝑃𝑇𝑖 − 𝐷𝑃𝑇𝑖 𝑓𝑜𝑟 𝐷𝑃𝑇 𝑐𝑢𝑠𝑡𝑜𝑚𝑒𝑟𝑠𝐷𝐷𝑇𝑖 − 𝐴𝐷𝑇𝑖 𝑓𝑜𝑟 𝐷𝐷𝑇 𝑐𝑢𝑠𝑡𝑜𝑚𝑒𝑟𝑠

}

Page 44: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

44

And:

𝑦𝑖 = 𝐴𝑅𝑇𝑖 − 𝐷𝑅𝑇𝑖

The disutility to other customers, which is the second part of the disutility, is given by:

𝐷𝑈𝑖0 = ∑ (𝐷𝑈𝑘

𝑁𝐸𝑊 − 𝐷𝑈𝑘𝑂𝐿𝐷)

𝑘 𝑜𝑛 𝑗

Where 𝐷𝑈𝑘𝑁𝐸𝑊 and 𝐷𝑈𝑘

𝑂𝐿𝐷 are, respectively, the disutilities to customer k after and before insertion

of customer i into the schedule of vehicle j.

The summation is computed over all customers k who were already assigned to vehicle j prior to

the assignment of customer i.

The incremental cost 𝑉𝐶𝑖 referred to the system operator due to inserting customer i into the work-

schedule of some vehicle is quantified by an objective function (which Jaw defines “unusual”).

𝑉𝐶𝑖 = 𝐶5𝑧𝑖 + 𝐶6𝑤𝑖 + 𝑈𝑖(𝐶7𝑧𝑖 + 𝐶8𝑤𝑖)

Where 𝐶5 , 𝐶6 , 𝐶7 and 𝐶8 are externally set constants, 𝑧𝑖 is the additional active vehicle time

required to serve the customer i, 𝑤𝑖 is the change in vehicle slack time due to the insertion and 𝑈𝑖 is

an indicator of system workload defined as:

𝑈𝑖 = (𝑁𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 𝑠𝑦𝑠𝑡𝑒𝑚 𝑐𝑢𝑠𝑡𝑜𝑚𝑒𝑟𝑠 𝑖𝑛 [𝐸𝑃𝑇𝑖 − 𝑇𝑎 , 𝐸𝑃𝑇𝑖 + 𝑇𝑏])

(𝑁𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 𝑣𝑒ℎ𝑖𝑐𝑙𝑒𝑠 𝑎𝑣𝑎𝑖𝑙𝑎𝑏𝑙𝑒 𝑖𝑛 [𝐸𝑃𝑇𝑖 − 𝑇𝑎 , 𝐸𝑃𝑇𝑖 + 𝑇𝑏])

The equation below introduces the terms 𝑇𝑎 and 𝑇𝑏, which are externally specified constants.

Jaw gives the following example to better understand the meaning of these.

For instance, if 𝑇𝑎 = 𝑇𝑏 = 60 𝑚𝑖𝑛𝑢𝑡𝑒𝑠 , 𝑈𝑖 is equal to the ratio of the number of customers

demanding service to the available number of vehicles during the two-hour time period that has

the earliest pick-up time of customer i as its midpoint.

Obviously 𝑈𝑖 is a measure of the system’s load, and will be larger during periods of heavy

demand.

During heavy-demand periods, the objective function gives an higher importance to system’s

operator costs, more than in low-demand periods. The reason is quite simple to understand, since

during periods of high utilization the “vehicle resources” are scarcer and it is fundamental to use it

properly and efficiently.

Page 45: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

45

Some considerations may help to clarify the problem.

a) The change in vehicle slack time may be positive or negative.

The latter takes place when the original slack is partly reduced because of a new insertion, since

part of the time earned by the slack is given to compensate the detour.

On contrary, it will be positive if, to serve a new customer i, an additional vehicle slack time must

be created. This situation happens when if a whole new schedule block is created to serve

customer i.

b) By looking at practice, the cost per unit of time of a vehicle in the “active” state is greater

than in “slack” state ( because, for instance, there is no fuel consumption).

That said, it should result 𝐶5 ≥ 𝐶6 and 𝐶7 ≥ 𝐶8.

3.2.4.3 Optimization procedure summary

Consider customer i who is to be inserted into the work-schedule of one of m available vehicles.

Assume that for each vehicle j (j = 1, 2, … , m) all feasible sequences for inserting customer i into

the work schedule of j have been identified in the manner outlined before.

To select the optimum insertion a sequence of three steps is used:

I. For every feasible sequence pertaining to vehicle j, find a time schedule (including pickup and

delivery times) that minimizes incremental cost 𝐷𝑈𝑖 + 𝑉𝐶𝑖 .

This requires shifting the feasible time schedule associated with each feasible sequence within

its bounds.

II. Choose the one sequence among those examined above which results in the smallest

incremental cost. This smallest incremental cost id 𝐶𝑂𝑆𝑇𝑗, the additional cost associated with

inserting customer i into the work-shcedule of vehicle j.

III. Eventually assign a customer i to a vehicle 𝑗∗ such that 𝐶𝑂𝑆𝑇𝑗∗ ≤ 𝐶𝑂𝑆𝑇𝑗 for all j (j = 1,2,…m)

Page 46: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

46

3.3 DARP (2004)

DARP algorithm has been developed by professor Guido Gentile and the graduating student

Claudio Catta at Sapienza University. The publication presenting the algorithm and the later

software implementation is from year 2004.

As already explained, the functions and structure of DARP is a bridge between the previous work

by Jaw and the later DARS implementation.

To deconstruct the meaning of the phrase above, the software itself has been the foundation on

which the more recent, modern DARS has been developed.

In fact, DARP already presented a good part of the logical workflow that has been later transferred

to the new version. The central optimization heuristic algorithm is actually a refreshed version of

the ADARTW developed by Jaw. The re-adaptation has been made by the developers in order to

maintain the spirit of the previous algorithm and to adapt on new structures.

The “spirit” is in fact the extremely adaptable algorithm structure, which allows to treat complex

problems faster than many (more modern) formulations; also, it is more focused about obtaining

an overall optimal result.

As for the Jaw formulation, every Vehicle is scheduled to do a certain sequence of stops. A good

difference from that version is that sequences are updated while the time goes on with new

requests which are given to the system throughout time.

These new requests are elaborated by the algorithm and processed with a criterion which is

decided a-priori while setting up the software simulation.

Another difference is the possibility to set the software on elaborating only requests that arrived

before a certain time (advanced requests, as for Jaw) or in order of complexity; this two-way

possibility is given by the offline= 0/1 input in the options tab.

3.3.1 Software Implementation Structure

DARP inputs and outputs are delivered through tables.

As specified in the manual, any data must be specified, even if it is not used in a case.

Related tables are present for any “object” in the software and are redacted in .dat format.

Page 47: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

47

For instance, there are different tabs to describe vehicles, nodes, arcs and charges.

This last type is referred to the possibility of recharging the vehicles, since as we’ll see later, the

energetic problem is taken into consideration in the results.

To give a hint of the tables format it might help to report the one which describes the nodes in the

network.

Field Data Type Description unit

ID 1 integer K Node ID ID

long Real Longitude °

lat real Latitude °

Table 2 - DARP Data Table Nodes.dat

An interesting aspect of the DARP is its possibility to choose both the online version and the

offline version, which basically translates to the chance of examining a problem with an advanced

set of requests or a set which is created during a certain interval on real-time conditions.

The table in charge of designing the constraints and moreover the general characteristics of a

chosen test run is the options.dat.

After the run, the results are visualized on tables as well.

Because of its functioning structure, the problem can only give certain data. To better distinguish

the outputs, those are divided into aggregated, routes related and services.

3.3.2 New Implementations

Besides all the constraints presented in the paragraphs above, the algorithm allows to tackle some

other questions.

It is important to notice that all the specifications exposed are optional and can be selected and

neglected as well at the beginning of the session.

Briefly, the first problem is about the work shifts of vehicles.

The needing of constraining work times into shifts is given by the fact that some operational

needing exists, whom most of the transport systems need to respect.

Page 48: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

48

For example:

➢ Trips should stay under a pre-set maximum

➢ Any trip should begin and return to a deposit

➢ Multiple trips should be performed in the same day

The second problem is the energetic one. To better explain, it might be useful to think that the

algorithm itself has been projected and presented as using an electric fleet.

Of course, beside of the advantages, the system would present some typical characteristics, such

as:

➢ Vehicles with a limited energetic capacity

➢ Linear electrical consumption with the number of served customers

➢ Extreme needing of setting up recharge stations

The third specification takes into consideration the possibility for vehicle to have multiple capacity.

This means for instance to be capable of taking on board at least two different types of customers

(and/or freights).

Regarding the insertions there is an addition as well. Catta illustrates the procedure which is done

prior to the actual insertion tries and the used sequence to take into consideration both vehicles

and requests.

The last (but not least) specification it is actually the most important one, since it is one of the pillar

around which DARS it is later been developed on.

This spec is taking into consideration the possibility for the algorithm to work on immediate

requests. Intuitively, this feature gives the possibility to the algorithm to be used with an on-line

function, which permits to update the vehicles paths while receiving new requests.

The different aspects will be now exposed a bit more deeply.

Page 49: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

49

3.3.2.1 Work-Shifts

As already said, it is useful to distinguish between availability, active periods and inactive periods.

An available vehicle might be active (carrying customers, moving to a pick-up or drop point,

getting back to the deposit) or idle.

To determine the in-active periods of any vehicle, the algorithm build work-shifts with the

duration time as an input; like that, work-shifts are an additional constraint, adding to the

maximum deviation from desired time and maximum riding time.

Any time a new vehicle gets activated (or a new client is inserted), it is defined at the same time the

starting instant of that work shift, coincident to the instant from which the vehicle leaves the

deposit and the last work instant by the duration of the shift itself. The vehicle will be later

available again after a certain period after the end of the last shift (as before, this is still an input

data).

The successive insertions are infeasible if determine an hour to deposit return which is higher than

the last work-shift instant.

The insertion which does not violate the work-shift may belong to two main different types:

➢ Insertion which does not modify the departure time from the deposit

➢ Insertions which provoke a shifting from the starting time

First type insertion does not create any problem, while the second type insertions are infeasible if,

given PS as the quantity the starting time should be shifted, it results that last stop time of the

current work-schedule plus time necessary to return at the deposit is higher than the last work-

shift time minus PS.

3.3.2.2 Energy Problem 3

A new client insertion is made between two recharge stations (A and B). Initially the two stops

coincide with the starting and return deposit, and the related times are the starting and ending

time of availability for each vehicle.

Anytime a new customer is inserted in a new vehicle, the energy status of the recharge stations is

Page 50: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

50

checked. If in one of these stops (for instance B) the energy consumption is higher than a certain

threshold, a procedure is re-called to insert a recharge stations between the stops A and B in which

the violation happened.

This procedure works as follows: the first try is to insert the new recharge stop right before the

station in which the threshold is being violated (B); if that would not be possible, slack-periods

between A and B are checked. Starting from B to A, is a Slack whom duration is enough so that is

possible to insert a Detour at the closest recharge station plus the necessary time to recharge and if

the insertion of the new internal recharge of that slack-period is efficient (meaning that B energetic

state is under the threshold), a new recharge is inserted; otherwise the following slack-period is

checked.

If none of the trials has been possible, the following insertions between A and B are infeasible.

3.3.2.3 Multiple Capacity

The requests may be composed by several customers, not necessarily equal to 1.

The algorithm allows to handle two types of passengers, such as disabled and non-disabled. The

consequence is two types of capacity inside vehicles.

From that, it follows that the procedure which is assigned to determine whether the possible

insertions of the generic customer i to vehicle j is feasible or not, on every trial is started a check

whom objective is to control that every capacity is not violated.

3.3.2.4 On-Line Function

This version of the algorithm is characterized by the fact that requests are processed one after

another, ordering them basing on their call-time.

The big difference from the offline version lays in the definition of quantities of which the single

stops may be shifted forward or back, to allow the insertions of new customers.

Anytime a call is taken (so a customer is processed) these quantities are updated and computed

again, taking into consideration that no modifications can be done on the events happened before

the actual time or still happening.

Page 51: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

51

For instance, the pick-up of a customer i (+i) may not happen between two stops +k and +m not

only if the pick-up time of k is minor than actual time (which is now), but also if, even though the

k pick-up is still not happened, by the actual time the vehicle already left the stop before +k and it

is already on its path to k.

This rule it is also valid for any other type of event, not only insertions. So, for example recharges

or an entire stops block.

As already mentioned, this last problem has a strong importance also on today’s version of DARS.

The same hypothesis is present on the software today.

3.4 DARS

The latest stage of the software has become what is currently known as DARS, created inside the

Italian branch of PTV Group SISTeMa, based in Rome. For ease, we will also refer sometimes to the

software as PTVD, even though it is not an official PTV product.

So far, this has been the last stage of development for the software made to solve Dial-A-Ride

problems. Although the amount of work done on this last implementation have been a lot, the

product has to be considered on a beta stage of its development.

The software path is far from being completed. It is still under consideration for future

betterments, whom aim would be to implement other features that would help to describe better

real-world solutions and provide some better shaped results.

The software already pushed some boundaries from its predecessors and helped update the whole

structure to modern situation, in which the connection to real-time world and obvious seconds-by-

seconds changes cannot be ignored.

Besides the internal changes in terms of coding structure, which led for example to a modular

code, the software shows some logical detachments and betterments.

The later paragraphs will be dedicated to highlight the differences (and improvements) of this

latest version, helping the explanation with schemes, figures and programming hints.

Page 52: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

52

3.4.1 Main Characteristics, Input loading and simulation outcomes

Many of the characteristics such as blocks, slack times, shifts and in general the whole

overstructured logic presented in the precedent implementations are still valid on their

“philosophy”, so there won’t be any need to define any of these elements again if not strictly

necessary.

As imaginable, the way inputs are loaded onto the software and given to the algorithm has pretty

much changed to the respect of the previous applications, remembering that the first one is from

the eighties and the latter is 15 years old still.

The software has been programmed using VB.NET language.

After launching the software, a command line console is recalled, in which it is possible to set the

right input for the simulation.

Figure 3-6 - Command Line (Data Source Tab)

The first row indicates the source for the map modelling on which the simulation will be based.

In this case, the example shows the Turin city model (which will be later used for simulations as

well). It is important to notice that the software has been built taking into consideration a full

compatibility with PTV softwares, such as Visum and Optima.

Also in this case, Turin City model has been prepared by SISTeMA modellers using PTV Visum.

On the upper left, the tabs indicate the different types of data the user can setup.

It might be a good idea to focus on the Input tab to have a better understanding of the problem

construction path.

Page 53: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

53

Figure 3-7 Command Line (Input Tab)

A lot of fundamental parameters can be set by this tab.

➢ Vehicles_Path : follows the path to the folder containing the file in which are stored the

vehicles fleet information.

This file is generated by a Python script, in which it is possible to set number of vehicles and the

distribution of the fleet itself through the bounding box. This will be later treated during the

simulations.

➢ Vehicle_search_distance : this function sets the radius for vehicle searching (see the Vehicle

search paragraph below)

➢ Idle_cost, Activation_Cost, C1,..4 : allows to set parameters that will be taken into

consideration while calculating the Cost function

➢ Use_Graph_Info : activate the street graph so that the distance would not be calculated only

by geometrical methods but through the use of an A*.

➢ Export_to_DB : allows to dump data about vehicle fleet, requests distribution and paths

onto a database.

Page 54: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

54

This last option it is very helpful because of its interaction with softwares like qGIS.

qGis gives an important graphical conscience of the distribution inside the problem area and it is

quicker, more efficient way to understand if certain hypothesis is correct.

The layer originated by this interaction are visible later while presenting simulations.

Even though a row for requests exists (just like for vehicles), the latest method to send those inside

the software is by running a Python script which, during the whole time of the simulation, sends

real-time requests.

This script (colloquially known as “shooter”) permits to shape the requests distribution and timing

to better simulate a precise situation.

In fact, it doesn’t only allows to distribute requests following a given probability function, but also

the interval between a requests and its following, the Time Windows, the time span between the

request reception and its Call Time and other features.

The main characteristics would be later exploited, as for many other elements, during the test

chapter.

Every run of the software creates a LOG file (.txt extension), in which every step of the simulation

is registered and written. The information of the log is printed so that it is possible to collect the

needed data and to obtain a successful analysis.

A more complex simulation brings to a bigger LOG file, which means it would be impossible to

examine only by scrolling and reading.

The outputs of the simulation are mined through the LOG file by using, again, a Python Script.

This helps considering only the important part of any string and plot part of the data into tables

which allows a better reading of the outputs.

Page 55: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

55

Figure 3-8 - Simulation run outcome

Figure 3-9 - Log Analyser with a printed plot

3.4.2 Street Graph and Dynamicity

On the previous versions of the software the distances were computed geometrically without

taking into considerations the actual paths that are present on a normal urban (or any real-world)

scenario (ADARTW by Jaw). Alternatively, there was the possibility to use travel time matrices for

Page 56: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

56

any possible path (DARP). These computations were stuck, by definition, to a static situation of the

system overall.

The last implementation of PTVD on the other hand gives the possibility to consider a street graph;

not just simpler versions made of nodes and arcs, but more heavy and complex ones.

To be more specific, PTVD does communicate with software like PTV Visum.

This addition allows our simulation to fit better in a real-world scenario, since Visum (and similar

software) allows the modeler to re-create entire cities transport systems. So, the street graph on

which the simulation will be based can use all the possible data about lanes and street to deliver a

better output.

Implementing a graph into the simulation means that computing the best path from an origin to a

destination is not something that can be done with a simple geometric operation anymore.

In fact, it is necessary to implement a path finding algorithm capable of exploit the most

advantageous solution in terms of costs.

PTVD uses an A* algorithm to provide this solution.

Beside the graph improvement, the software accounts the traffic states at different times of the day.

That means the software is in fact dynamic, meaning that the travel times between different

locations won’t be the same throughout the day.

The fact that travel times are not steady highlights that costs for a certain path varies following the

congestions fluctuations.

There is no need of any travel-time matrix: the pathfinding algorithm provides the shortest path

after updating the traffic state, and this calculation allows the system to be consequently dynamic.

Page 57: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

57

Scheme 1 - Traffic states dynamic workflow

3.4.3 Insertions

3.4.3.1 Reduction Check

As comprehensible, insertions are indeed one of the main pillar of the algorithm.

The way these are handled assure that the software can find a good solution without spending too

much time on calculations and without wasting computational power.

As seen on Jaw, the insertion procedure relies on a sequential examination of blocks, stops upper

and lower bounds and rigid shifts of scheduled stops (and blocks), with the aim to find the “right”

couple in which insert the new requests.

The DARP implementation used to follow a sequential procedure starting from the vehicles (which

will be all selected) and their internal block schedule.

Next Request (PU o D)

Travel time to compute for insertion

Update Traffic Situation

A* Path Finding alorithm computes the best solution based on current

situation

Insertions tries and final cost cumputation

Page 58: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

58

The first step would be to get a control over the possibility to actual try the insertion given the

current time.

To give a better explanation, the software performs a check over the Pickup (or Delivery) desired

time and confronts this value with the first instant of the first block for that particular schedule.

If Desired time > First block instant , the block is not taken into consideration (because it is too late

to insert in a block which already begun its operations) and the software start from the next block.

After doing the whole insertion procedure to find the best spot to insert (if one exists) in that

particular block, the software goes to the next block.

This sub procedure ends once the block are all examined and the insertion taken is the one with

the minimum cost between all the insertions performed.

If a feasible insertion is not found, that vehicle won’t be used for the requests, and the software

would then examine the following vehicle starting the procedure once again.

On the other hand, PTVD works following another logical workflow.

As explained on the Vehicle fleet paragraph, first reduction is made to the vehicle taken into

consideration before even starting the insertion tries.

After this first cut, the vehicles left are inspected in their schedules by the functions which have the

scope to sequentially consider the stops (by couple and not singularly, since the aim is to insert

between those) and find the ones candidate to actually “host” a pickup or a delivery.

This is made by checking whether the upper and lower bounds of every couple is fine with the

current request or not, so if they can be shifted and have enough room for another stop between

them.

After these passages, the survivor stops are “chewed” into the insertion procedure which leads to

the feasibility tries right after the routine checks such as capacity.

3.4.3.2 Feasibility Tries

The 4 ways through which a new request is inserted in the schedule are invariant from the

ADARTW and DARP implementations.

In fact, the logic schemes presented by Jaw for his ADARTW are respected pretty much in PTVD.

Page 59: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

59

Figure 3-10 - Feasibility II Logical workflow

Page 60: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

60

A commented scheme is presented for the logical workflow of the second type of feasibility for

insertions (Feasibility_II), in which the algorithm tries to insert Pick-Up and Delivery consecutively

between two stops of the block.

The main passages are enumerated and explained as follows.

(1) The first function to be recalled inside the feasibility itself is “DsTime”, which is defined as:

𝐷𝑠𝑇𝑖𝑚𝑒 = 𝑇𝑟𝑖𝑎𝑙 𝑏𝑙𝑜𝑐𝑘 𝑓𝑖𝑟𝑠𝑡 𝑖𝑛𝑠𝑡𝑎𝑛𝑡 − 𝑅𝑒𝑞𝑢𝑒𝑠𝑡 𝐶𝑎𝑙𝑙 𝑡𝑖𝑚𝑒

if the insertion is tried is before the first stop of the block, or:

𝐷𝑠𝑇𝑖𝑚𝑒 = 𝑆𝑡𝑜𝑝 𝑏𝑒𝑓𝑜𝑟𝑒 𝑃𝑖𝑐𝑘𝑢𝑝 𝑖𝑛𝑠𝑡𝑎𝑛𝑡 − 𝑅𝑒𝑞𝑢𝑒𝑠𝑡 𝐶𝑎𝑙𝑙 𝑡𝑖𝑚𝑒

if not (so if it is tried on any successive stop within the block).

This case would cover the “regular” insertion in the middle of the block.

One of the reasons for this choice is the fact that so far the software has been programmed to

skip the insertion at the beginning of the block, although the code itself still holds the

possibility to do so.

The trial block is of course the block in which the software is trying the insertion.

Given the first case and that quantity, the software checks if:

𝑑𝑠𝑡𝑖𝑚𝑒 < 0

If so, the block is immediately excluded, because the insertion would not be feasible anyway on

that particular block, meaning that the vehicle begun Pickup and Deliveries operations

already.

Figure 3-11 – Call Time representation

Slack time

Call time

Page 61: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

61

In this case DsTime would be negative and impossible to dissipate with slack time.

On the other hand, if the quantity results to be more than 0, the call time happens to be in the

middle of the slack time (or before the block first instant), which allows the software to at least

try an insertion.

(2) This type of feasibility tries to insert between a certain couple of stops, because of that there is

the needing to calculate the possible Detour.

Figure 3-12 - Detour for an insertion between K and K+1

The image clearly shows the two possible stops which create the needed space to fit in the (K, K+ 1)

stops couple. Of course, the travel time between the stops is now higher than the previous

situation; the detour must be amortized shifting the other schedule stops of the block.

(3) As follows from the previous step, this check controls if the Detour is higher than the possible

shift of the previous and/or following stops.

In fact, the function controls if the both on the left and on the right it is possible to move the

stops enough to “accommodate” the generated Detour.

Of course, when found impossible, the software ends the procedure and goes on to another

stop couple or block.

As already noticed, the check on stops upper and lower bounds is performed even before

applying the insertion procedure.

Note that the software is programmed to try an insertion before the first stop of the block as

well. In this case the software won’t take the BUP but the slack time before the block instead.

(4) After controlling if the possible right shift is bigger than the expected detour or not, a decision

is made.

If bigger, the Detour must be absorbed shifting both the right stops (the stops after the

K P D K+1

Page 62: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

62

requested one) and left stops (the stops before the requested one).

If smaller, only the right stops are shifted, leaving the stops before fixed.

(5) The actual time for Pick Up (or delivery on the right side) has respect the Earliest and Latest

Pickup times. The example will prosecute taking into consideration the Pickup.

In case of an actual pickup time which is minor (so earlier) than the Earliest time, another shift

is needed to fill this time delta.

In this example, the needed shift would be two minutes.

(6) These steps check if the needed shift for the stops can be absorbed by shifting of quantity

which has to take into the account the shift already done for amortizing the Detour.

If this other shift it is not possible because it’s too big, then the whole insertion would result

unfeasible and the procedure terminates.

Else, the quantities are shifted and, since we are still talking of a Pickup, delayed of the

necessary amount.

(7) The last passages have to value the Optimal Shift and the additional costs.

The Optimal shift is a function recalled finding the best possible solution to harmonize the

right shift to make everything feasible and at the same time keep the costs as low as possible.

It can be actually seen (as it is indeed) a procedure to find the minimum value of the cost

function. This is examined more in depth, along with the additional cost in the “Cost Function”

paragraph.

These last phases conclude the insertion process for a Feasibility.

This process is made for any possible feasibility. While doing this, a function of the software

keeps track of the minimum found after each try.

Actual Time for Pickup

Es: (19.03)

Earliest Time for Pickup

Es: (10.05)

Page 63: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

63

At the end of the tries, the overall minimum is then computed and inserted as the best solution

for the request.

The opposite and unlucky case of finding no possible insertions at any cost would give a

“failed” insertion result on the Log file.

A scheme for any Feasibility is presented in the Appendix section with a brief legend to

recognize the parameters inside the scheme.

3.4.4 Requests

As underlined many times, one of the greatest limit for the Jaw Algorithm was to work with

Advance requests only, originating the name ADARTW.

The problem has been already tackled by the Online Function of DARP, which was a “switch” that

could be turned on as a plug in for the working algorithm.

The PTVD has been built specifically to take into consideration real-time or quasi real-time

requests only. Note that requests are processed one after another and there is no option to consider

small groups of it at any passage as thought by Jaw.

These requests are pushed inside the algorithm for evaluation by a python script (also known as

Shooter), which generates requests once given some base parameters.

Some of the requests characteristics the Shooter can control are:

1) Request Distribution along the study area

The script regulates the distribution of the function by using a multivariate Gaussian function,

whom means are given by:

Mean 1: [ (1− 𝛼)∗(𝑀𝑎𝑥 𝑋+min 𝑋)

2+ 𝛼 ∗ 𝑀𝑎𝑥 𝑋 ;

(1− 𝛼)∗(𝑀𝑎𝑥 𝑌+min 𝑌)

2+ 𝛼 ∗ min Y]

Mean 2: [ (1− 𝛼)∗(𝑀𝑎𝑥 𝑋+min 𝑋)

2+ 𝛼 ∗ 𝑚𝑖𝑛 𝑋 ;

(1− 𝛼)∗(𝑀𝑎𝑥 𝑌+min 𝑌)

2+ 𝛼 ∗ Max Y]

Where α is a constant introduced to give different shapes to the distribution, while X and Y

represents the coordinates of the study area.

Page 64: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

64

2) The passengers number

These are generated following a proportion, so for example it is possible to decide for 2,3 or 4

passengers requests a proportion of (0.1 , 0.8, 0.1), meaning an 80 % of the requests should satisfy 3

passengers.

3) Maximum distance between Pick-up and Delivery

4) Time span between Call Time and Desired Time

This last point is what determines the “degree of real-time” on very request. In fact, this last option

is translated to the possibility to decide whether a request might be processed immediately or if a

certain interval of time should be given to the system in order to process it.

In a real-world scenario is just like a service which requires at least an a-priori time interval to take

into consideration the request (ex. a taxi company which does not takes passengers who call less

than 15 minutes before their desired pick-up time).

The measure is interesting, and the test will also be based on its analysis.

3.4.5 Vehicle Fleet

The ADARTW by Jaw presented the number of vehicles in a fleet at the beginning of the problem,

while defining the number of requests and the time span of the simulation.

Another feature it implemented was, as mentioned, the possibility to force the simulation and the

specific run to find a feasible insertion even if it did not seem possible.

The method is to add one more vehicle to the fleet any time the algorithm does not find a possible

insertion for a request. This obviously led to a widening of the fleet when advancing with time.

So for example, a fleet with 10 vehicles which could satisfy all the requests but three could

potentially end to 13 vehicles.

In a real-world situation this might be hard to justify, maybe only thinking to the surplus of

vehicles as some overtime work performed by workers who weren’t on service until that specific

time or already completed their shift before.

This would struggle to the idea of a real-time software, since it would mean that there would be a

Page 65: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

65

certain amount of time before the new vehicles start the service; this situation appears to be

credible only by cherry picking a small amount of cases.

PTVD doesn’t implement this logic.

The vehicle fleet is fixed in its number at the beginning of the simulation, so that if an insertion is

not feasible it is simply reported as failed on the LOG file.

A file generated by a Python script is loaded into the software before the simulation begins.

What can be decided is the distribution of vehicles along the graph or the bounding box in general,

using a probability distribution. For instance, the easiest possibility would be to set the distribution

on uniform through the entire area or maybe only in a small part of it. The second possibility

might simulate the higher concentration of vehicles on a more significative zone (ex. the city

centre).

The capacity of vehicles can be set, since it is possible to divide the percentage of each capacity on

the whole fleet. So, for instance, on a hundred vehicles fleet I could set the division of 50% each

regarding vehicles with capacity limited to 4 and 6 spaces.

The Vehicles constant speed can be decided as well on the Input tab before executing the

simulation.

3.4.6 Vehicle Search Function

To increase the efficiency and avoid useless calculations, the algorithm implements a function

whom duty is to preliminary selects the vehicles in which will be later tried the insertions.

This is an upgrade from the previous versions, since they did normally select all the vehicles and

try the insertion algorithm no matter the situation of the vehicle itself.

The search function is made by sequential steps, introducing stricter criteria as much as the steps

advances. These methods are known as filters.

Page 66: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

66

Breaking down the filters main feature, there will be:

1) Capacity Filter

As it might seem obvious, the first criteria to select if a vehicle would be feasible for an insertion is

to check its internal “crowd”.

In fact, it is a non-sense to waste computations on certain vehicles if they won’t be able to

accommodate any other passenger (or at least not the right number) in the first place.

A base assumption is, sequentially, that a request of multiple passengers cannot be split into two

or more vehicles, which it seems reasonable to any real-service scenario.

The filter checks every vehicle seat availability to cut from the choices the unfeasible ones, leaving

the remaining to the next step.

2) Bird-Distance Filter

This filter checks the current instant and the first instant in which the vehicle should reach the goal

position. If traveling a standard 150 km/h the vehicle won’t reach the goal on time, it will be then

cut from the feasibility list. The measure is taken without the graph, so it is a direct geometrical

distance.

This second filter is made to avoid taking into consideration vehicles that would later be found to

be too far from the pickup or delivery goal.

3) Whole Path Intersection

Given the request position, this filter is used to see whether the requests itself is “near” to any

vehicle path.

To clarify the method: from the given request a certain radius is taken (none less than km in a

standard situation). Now a circle around the request is created; the filter analyses if any vehicle,

during any instant of its schedule, will ever cross the border of this circle.

If so, a vehicle will be taken into consideration and later examined by the next filter, otherwise it

will be excluded from the candidate vehicles to host the request.

4) Time Slice Path Intersection

This filter tightens a little more the previous condition, giving it a temporal coordinate.

In fact, at the latest stage the path of the vehicle could have crossed the circle at a certain time.

Page 67: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

67

Even though this is a better indicator for the proximity of the vehicle to the request, it does not

actually tells anything about “when” this happens in time.

Time Slice is made to exclude from the vehicle pool the one which would cross the path too soon

or too late from the actual Pick-Up or Delivery time. This leaves for choice only vehicle that will be

near to the request at the right time.

Figure 3-13 - Whole/Time Slice Path Inters. Filters

5) Max Vehicle Number

If all those filters would not leave the algorithm choice to just a little bunch, it is possible to limit

the maximum number of examined vehicle to a value of modeler choice.

This function actually takes into consideration the vehicle identification number, so for instance,

selecting 50 vehicles as the limit, the software would only take the first 50 vehicles in an ordinal list

from the smallest to the highest.

Page 68: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

68

3.4.7 Cost functions

3.4.7.1 Cost functions formulations

The cost function is a fundamental piece of the software, since it is with its use that every compute

regarding the “goodness” of a solution is made.

As for many other features, PTVD cost function formulation maintains a big part of ADARTW

philosophy and meaning but changing a large part of its structure.

To notice the first difference, cost parameters C5, C6, C7 and C8 are not present in this last

implementation.

A vital function of the software is to compute the Overall and the Delta (additional) cost brought

by any possible insertion.

The software implements a specific function to compute the “differential cost” for the insertion.

The setup starts with a “New Overall Cost” set to 0 for a specific insertion.

After the recall (which is made for any selected vehicle in which an insertion may be possible), the

function primarily investigates if that vehicle has been activated already.

If not, an Activation cost has to be considered in the final overall cost. This term weights the choice

of new, non-active vehicle, preventing the software from considering these the same as already

active vehicles without paying an additional “obstacle” cost.

Based on the amount chosen by the modeler (activation cost is a parameter), this is a good way to

push the software to not use “useless” vehicles which would be an additional operational cost for

any fleet manager.

The function then investigates all the stops in the block and finds the Deviations, both from the

stop desired time and from the direct riding time. As seen before, these deviations represent the

interval of time which for which a certain stop is delayed (or anticipated if a delivery) and the

increment of the travel time given by the addition of new stops with the respect of the travel time

without those.

Page 69: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

69

After this calculation, the “New Overall Cost” term calculated for any stop is given by:

𝑁𝑒𝑤 𝑂𝑣𝑒𝑟𝑎𝑙𝑙 𝐶𝑜𝑠𝑡 += 1𝐶1 ∗ 𝐷𝑒𝑣𝐷𝑒𝑇𝑠 + 𝐶3 ∗ 𝐷𝑒𝑣𝐷𝑖𝑇𝑠

𝑁𝑒𝑤 𝑂𝑣𝑒𝑟𝑎𝑙𝑙 𝐶𝑜𝑠𝑡 += 𝐶2 ∗ 𝐷𝑒𝑣𝐷𝑒𝑇𝑠2 + 𝐶4𝐷𝑒𝑣𝐷𝑖𝑇𝑠

2

Where:

𝐷𝑒𝑣𝐷𝑒𝑇𝑠 = 𝐷𝑒𝑣𝑖𝑎𝑡𝑖𝑜𝑛 𝑓𝑟𝑜𝑚 𝑑𝑒𝑠𝑖𝑟𝑒𝑑 𝑡𝑖𝑚𝑒 𝑓𝑜𝑟 𝑠𝑡𝑜𝑝 (𝑠) 𝑜𝑓 𝑡ℎ𝑒 𝑏𝑙𝑜𝑐𝑘

𝐷𝑒𝑣𝐷𝑖𝑇𝑠 = 𝐷𝑒𝑣𝑖𝑎𝑡𝑖𝑜𝑛 𝑓𝑟𝑜𝑚 𝑑𝑖𝑟𝑒𝑐𝑡 𝑟𝑖𝑑𝑖𝑛𝑔 𝑡𝑖𝑚𝑒 𝑓𝑜𝑟 𝑠𝑡𝑜𝑝 (𝑠) 𝑜𝑓 𝑡ℎ𝑒 𝑏𝑙𝑜𝑐𝑘

The function has been divided to consider the linear and quadratic terms separated.

After this passage the software calculates (for any stop as well) the amount of cost due to the

travelling time, also adding in this the time needed for the Loading and unloading phase.

𝑁𝑒𝑤 𝑂𝑣𝑒𝑟𝑎𝑙𝑙 𝐶𝑜𝑠𝑡 +=1

3600∗ [𝑇𝑟𝑎𝑣𝑒𝑙𝐶𝑜𝑠𝑡𝑝𝑒𝑟𝐻𝑜𝑢𝑟 ∗ (𝑇𝑜𝑡𝑎𝑙 𝑡𝑟𝑎𝑣𝑒𝑙 𝑡𝑖𝑚𝑒 + 𝑇𝑖𝑚𝑒𝑡𝑜𝑆𝑒𝑟𝑣𝑒𝐶𝑙𝑖𝑒𝑛𝑡)]

At this point if the insertion is the first for the vehicle:

𝐷𝑒𝑙𝑡𝑎 𝐶𝑜𝑠𝑡 = 𝑁𝑒𝑤 𝑂𝑣𝑒𝑟𝑎𝑙𝑙 𝐶𝑜𝑠𝑡

Otherwise, if the insertion has been made on a block which is not the first or a whole new block is

added, the slack time tied to that have to be considered with the costs.

The other term would be:

𝑁𝑒𝑤 𝑂𝑣𝑒𝑟𝑎𝑙𝑙 𝐶𝑜𝑠𝑡 += 1

3600∗ 𝐼𝑑𝑙𝑒𝐶𝑜𝑠𝑡𝑝𝑒𝑟𝐻𝑜𝑢𝑟 ∗ 𝐵𝑙𝑜𝑐𝑘𝑆𝑙𝑎𝑐𝑘𝑇𝑖𝑚𝑒

If that’s the condition it is easy to understand that the blocks and the stops were already present

before this last insertion, so an “older” overall cost is present.

The software then computes the Delta cost (so the new chunks of cost that have to be paid for the

insertion) as:

𝐷𝑒𝑙𝑡𝑎 𝐶𝑜𝑠𝑡 = 𝑁𝑒𝑤 𝑂𝑣𝑒𝑟𝑎𝑙𝑙 𝐶𝑜𝑠𝑡 − 𝑂𝑙𝑑𝑒𝑟 𝑂𝑣𝑒𝑟𝑎𝑙𝑙 𝐶𝑜𝑠𝑡

By doing this it easy to calculate which insertion gives the smaller differential amount of cost to the

vehicle, making the choice unilateral.

1 The “+=” symbol is a coding symbol which stand for: “add this value to the previous value of that

function”. It has been kept to better portrait the function philosophy.

Page 70: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

70

At the end of this operation “New Overall Cost” becomes the ordinary “older” cost for the block

and it will be used for the next insertion try.

Note that this procedure is made for every feasibility insertion try, so eventually only the one with

minimum resulting cost is selected to be inserted.

If any of the parameters is not respected the result cost is set to (positive) infinity, so that the

software won’t never choose it.

Obviously, if every cost returns infinity, the insertion is failed.

3.4.7.2 Optimal Shifts

A very important part of the cost section is the Optimal Shift, which is actually performed in the

last part of the feasibility insertion and might be still considered part of the insertion process.

The responsibility of the Optimal Shift is to find, inside the allowed bounds of the stops, the shift

which reduces at maximum the final cost for the insertion. To better explain this term, a stop (or a

block) may be still shifted of a certain quantity after being already shifted to obtain the constraints

respect only. The Optimal Shift module/function adds the cost minimization objective as well.

The formulation is explained as follows.

The Cost will be composed by three terms after applying the Optimal Shift:

(1) 𝐼𝑑𝑙𝑒 𝐶𝑜𝑠𝑡 = 𝑖𝑑𝑙𝑒 𝑐𝑜𝑠𝑡 𝑝𝑒𝑟 ℎ𝑜𝑢𝑟 ∗ 𝑖𝑑𝑙𝑒 𝑠ℎ𝑖𝑓𝑡 𝑠𝑖𝑔𝑛 ∗ 𝑜𝑝𝑡𝑖𝑚𝑎𝑙 𝑠ℎ𝑖𝑓𝑡

Idle cost represent the cost due to the vehicle standing not doing any operation.

Idle Shift Sign is the sign of vehicle idle time increment; in fact, the shift can be both right or left,

meaning an increase or a decrease of the slack time for the block (which by definition is the

amount of time the vehicle just stands and performs no operations).

Note that this check is performed only on the “limit” block, which are the first and last, because

the shift of the slack time in any central block just produces no increment after all (if a move a

certain quantity from a block it goes to one of the two next to it).

(2) 𝑃𝑈𝑠𝑡𝑜𝑝𝑠𝐶𝑜𝑠𝑡 = 𝐶1 ∗ 𝑛𝑢𝑚𝑏𝑒𝑟𝑂𝑓𝑃𝑖𝑐𝑘𝑈𝑝𝐶𝑙𝑖𝑒𝑛𝑡𝑠 ∗ ((𝑝𝑖𝑐𝑘𝑈𝑝𝐶𝑙𝑖𝑒𝑛𝑡𝑠𝐷𝑒𝑣𝑖𝑎𝑡𝑖𝑜𝑛𝑇𝑖𝑚𝑒 +

+𝑜𝑝𝑡𝑆ℎ𝑖𝑓𝑡) + 𝐶2(𝑝𝑖𝑐𝑘𝑈𝑝𝐶𝑙𝑖𝑒𝑛𝑡𝑠𝐷𝑒𝑣𝑖𝑎𝑡𝑖𝑜𝑛𝑇𝑖𝑚𝑒 + 𝑜𝑝𝑡𝑆ℎ𝑖𝑓𝑡)2)

Page 71: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

71

In this term 𝐶1 and 𝐶2 both appear as coefficients.

Of course this term calculates the cost related to the deviation from the desired time wanted from a

customer for his Pick Up. If 𝐶2 = 0 , the equation becomes linear.

(3) 𝐷𝑠𝑡𝑜𝑝𝑠𝐶𝑜𝑠𝑡 = 𝐶1 ∗ 𝑛𝑢𝑚𝑏𝑒𝑟𝑂𝑓𝐷𝑒𝑙𝑖𝑣𝑒𝑟𝑦𝐶𝑙𝑖𝑒𝑛𝑡𝑠 ∗ ((𝐷𝑒𝑙𝑖𝑣𝑒𝑟𝑦𝐶𝑙𝑖𝑒𝑛𝑡𝑠𝐷𝑒𝑣𝑖𝑎𝑡𝑖𝑜𝑛𝑇𝑖𝑚𝑒 −

− 𝑜𝑝𝑡𝑆ℎ𝑖𝑓𝑡) + 𝐶2(𝐷𝑒𝑙𝑖𝑣𝑒𝑟𝑦𝐶𝑙𝑖𝑒𝑛𝑡𝑠𝐷𝑒𝑣𝑖𝑎𝑡𝑖𝑜𝑛𝑇𝑖𝑚𝑒 − 𝑜𝑝𝑡𝑆ℎ𝑖𝑓𝑡)2)

As for the Pick-Up term, this calculate the cost related to the deviation from the desired time

wanted from a customer for his Delivery.

A single function is given by the sum of these three components. The aim for this is to calculate the

best possible Optimal Shift.

To get the minimum for this function, it is just necessary to impose Optimal Shift as the variable of

the equation. The derivate with the respect to OptShift equal to zero easily find the minimum

point, which corresponds to the searched quantity.

At the end of the function the software procedure updates the PU and D instants as well as the

final shifts.

Note that the procedure shown before has been executed only to get the value for the Optimal

Shift.

Page 72: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

72

4 Test Phase

This next phase goal is to understand how the software reacts while under defined conditions.

In particular, some input parameters will be used to push the software into different, “extreme”

situations to better understand the reactions and the output.

The following paragraphs are made to explain the condition in which the simulations are run, the

expected results, the anomalies and the possible explanations for the software behaviour.

4.1 Testing Environment

The simulations are completed on the current PTVD version, which is, as already mentioned, not a

commercial version. It is a “strong” beta, instead: it is not completely untested, but it is still not

deeply investigated in terms of expected results and possible anomalies which is, again, one of the

main aims of the work. This condition obviously requires a lot of work to be done especially on its

simulation side.

The way the inputs are loaded into the system has already been explained in the prior paragraphs.

The results have been extracted using a “Log Analyser” Python script and, when required, by

directly investigating the Log file after each run through Microsoft Excel and Notepad ++.

Any run need to happen on a given environment, which in this case is represented by a bounding

box.

The bounding box is a “blank” rectangle delimited by specific coordinates, in which vehicles and

requests are loaded. It is important to notice that the distances covered by vehicles are

geometrically computed since a graph hasn’t been used.

This choice might sound less real and not particularly good to a real-world situation but is in fact

the best way to understand the software reaction at first.

As imaginable, to generate requests in a graph may lead to misinterpretation of results, because

sometimes a PU (or D) could be in a sort of cul de sac, from which the pathfinding algorithm cannot

find a good solution.

For instance, the request might be generated in a point where the streets have a particular structure

which impedes the pathfinding algorithm to find a good solution consequently failing the

insertion. This would lead to hard results to understand, and eventually the problem would result

Page 73: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

73

to be too hard and demanding, especially when the systems need to accommodate a lot of requests

and this type of investigation can’t be done with just an accurate visual check.

Plus, this choice allows to better adapt the study area to the different needing of the modeler.

In fact, a smaller study area has been built for the specific simulations involving a small number of

requests and vehicles, while for urban scale simulations the study area had the dimension of a

major city.

In general, the bounding box has been preferred because these analyses aimed to investigate the

software performances per se, erasing any possible source of misinterpretation or distortion from

the simulation runs.

To avoid any kind of confusion, the basic dataset is declared before any test or run explained

below; some standard inputs set it is kept the same in some given cases except where explicitly

declared.

The simulations presented on this dissertation have been run on a personal computer (Laptop)

mounting an i7 Intel Cpu and 8 Gb RAM.

4.2 Specific and operational simulations

The test sequence needs a further explanation of the difference between study phases to better

understand the aim of this next one.

The first phase of the thesis work has been of course the literature review about the algorithm to

better understand the research work done prior to this last version, to put in its right place any

element and have an overall clear mind about the Dial-A-Ride issues and modelling dilemmas.

Then, the new version of the software has been deconstructed to understand what was different

and what was not, compared to the older version. Basically, by looking at the software source code

most relevant pieces it was possible to start validating the different modules.

In other words: reading how the cost function was built made it possible to start questioning if the

theoretical construction was right and if maybe there was some space to improve it.

This step has been fundamental: in fact, even before running any test it has been possible to detect

some bugs or misinterpretations written through the code lines.

Page 74: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

74

Also, it was possible to better recognize the mindset in which this software was created and the

following expected outcome.

After this theoretical-driven part, which was mainly focused on theory, the work shifts to the

second more “practical” part, which required several simulations runs to accomplish a satisfying

result.

Even though it might seem that the two parts are just sequential, of course it is not the case.

For the sake of comprehension, the two parts are presented on plain sequence, while the reality of

the procedure has not been so linear as imaginable.

In fact, the test sometimes highlighted one or more issues that required to go back to the previous

steps, trying to discover where the problem would possibly hide between the lines.

After making the hypothesis, the bug would have been fixed and then the tests would have been

run again.

This “back and forth” procedure is surely inevitable when talking about a new software, whom

structures still need to be deeply understood.

The tests can be divided in two major categories: specific tests and massive, urban scale tests.

Specific tests have been introduced to study the software behaviour in a more precise,

understandable way, by looking at its results while running simulations that did not comprehend

more than a dozen requests and vehicles.

By using this strategy, one could possibly build a specific situation to understand all the

mechanism the software uses to work.

The procedure has been to tailor a test “on paper”, so calculating by hand the expected outcome,

and then testing if the software would deliver the same result.

It can be seen as a proper “debug” phase, since it is a big part of any new software development to

study a certain piece of its working feature in any detail before focusing on larger scale issues and

malfunctions.

Massive operational tests have on the other hand served as an indicator of the test behaviour for

operative conditions. This means a high number of vehicles and sometimes several requests per

second.

Page 75: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

75

The aim should be clear, since the software eventual primary function would be a “field” use for

transport situations in which a high response speed is required, coupled with great precision.

The next paragraphs will present the tests (or just the highlights) and the purpose for each chunk.

4.3 Specific Tests

As already mentioned, these tests are made to surgically analyse the software algorithm and

procedures in any details, understanding if any sort of bug or unexpected result must be fixed.

The scenarios presented in the following paragraphs have been prepared a-priori, manually doing

all the calculations and the consequent hypotheses on the software behaviour.

This served as a fundamental verification proof.

In fact, when a situation did not reflect the expected result, which were calculated by looking

directly into the PTVD source code and couldn’t be misled, has to be considered a signal that lead

to a new Debug phase.

Even though the scenarios are not very complex, these have been accurately tailored to investigate

certain parts of the software algorithm that were too hard to investigate when a massive analysis

was started.

Of course the ease of any scenario analysis was since, as already mentioned, any calculation had to

be made “by hands”, meaning that a more complex situation could lead to a mistake on any

passage.

To translate the scenarios from paper to the software, a different kind of script has been used.

In fact, instead of just “shooting” random requests following certain characteristics, a Deterministic

Shooter has been written for this specific purpose.

The task of this shooter is to decide any small detail for every request, from the Call Time and

Desired time, to the number of passengers and the amount of time needed for loading and

unloading.

Page 76: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

76

4.3.1 Test 1

The test aim is to describe a situation in which only one vehicle has the task of 3 different requests,

any of these with a different Call Time and Desired Time.

The focus would be primarily directed towards the insertions tries and the software way of

deciding which feasibility vehicle would best fit the request (i.e. will eventually have the minimum

Overall cost).

Only one vehicle is loaded into the system to solve the requests.

Since the requests have been found on the bounding box with coordinates following WGS 84

system, any of these has a certain longitude and latitude, while the comment will only focus on

their relative distances.

The tables below describe the characteristics for the vehicles, the parameters and the requests.

Number of total vehicles 1

Constant Speed 30 km/h

Capacity 2 Passengers

Table 3 - Vehicle characteristics

Activation cost 106 €

Idle cost per hour 1 €/hour

Travel Cost per hour 10 €/hour

C1 1 €/hour

C2 0

C3 1 €/hour

C4 0

Table 4 – Parameters

Request n° Type CT DT

1 Pickup 19:00:00 19:08:00

2 Delivery 19:10:30 19:37:00

3 Pickup 19:11:05 19:12:00

Table 5 – Requests

Page 77: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

77

Figure 4-1 – Initial Scenario

The first request is a pickup.

By construction, the distance between PU and D is 8 km, so with a speed of 30 km/h it can be

travelled in exactly 8 minutes.

The direct consequence is the creation of a new block without any additional slack time since the

vehicle has to depart as soon as possible to satisfy the request.

The expected result is to have the Actual pickup Time equal to Desired time, also paying the

Activation cost, since it is the first operation performed by the vehicle.

The only possible insertion is made by trying an insertion with feasibility I (the block is of course

still empty at the beginning).

Request 1

Request 2

1 K

m Request 3

4 K

m

1 Km

Multiple Requests in the same point

Page 78: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

78

The second request is a delivery and arrives at 19:10:30, so while the vehicle is still traveling to the

first request delivery.

DT is very wide this time at 19:37:00, meaning that more than one feasibility is tried for the

insertion.

In particular:

➢ One possibility would be to stop travelling to reach the delivery for the first request, take a

detour to get to the second request Pickup point, get to the second request delivery point

and then finish the first request by eventually delivering the customer.

This possibility is a Feasibility II.

Although it could be possible to try the insertion, it would lead to an excessive time loss

because of the maximum allowed riding time, which is only 2 times the Direct riding time.

The customer for the first request would be forced to wait on board a time that would then

result too long.

This possibility is then excluded.

Page 79: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

79

➢ It might be possible to insert the request by using feasibility 3.

That would mean, just like before, to skip the delivery for the first request, go for the

second request pickup, then finish the delivery for the first request and eventually

complete the second request.

The insertion results to be impossible because of the incompatibility of EDT and actual

delivery Time.

➢ Another option the software would try is the insertion at the beginning of the block (which

is still Feasibility II); it is immediate to notice that the insertion is impossible due to the fact

that the insertion would have to modify events and schedules already belonging to the

past.

It might be theoretically possible for this type of insertion to try its operation (as already

properly explained on the chapter explaining in details the Feasibility II functioning).

Although the theory allows it, so far, a code constraint is to avoid insertions at the

beginning of blocks, both current or directly next to the one the software is trying the

insertion on.

So this type of insertion is in fact immediately discarded.

Page 80: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

80

➢ The other possible option would be to try feasibility I, so an insertion after the last stop of

the block.

Because of the large slack time given to the second request, the insertion at the end of the

first block would be useless, since it would lead to a greater anticipation of the delivery

time, leading to a higher insertion cost.

It is important to remember that, for a delivery, the cheapest (so actually the best) option is

to make the DT coincide with the Latest delivery time. It is absolutely forbidden to deliver

after the LDT.

The consequence would be the creation of a second block with its slack time (13 minutes)

that makes the vehicles stop right after the end of the first request, wait until it’s time to

depart again and then complete the operations.

The third request, which is a Pickup, arrives while the vehicle has already started the unloading

phase for the first request. The request has been designed so that the pickup is exactly 4,5 minutes

to travel away from the second request pickup.

As clear by the scenario picture above, the request is not on the same “line” as the other two, but

Page 81: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

81

its longitude is slightly on the right side.

The DT for this request is very strict (19:12:00, 30 seconds after the call time), meaning that the

vehicle have to depart immediately to satisfy the request with the lowest possible amount of time.

To insert this request a detour is needed, but of course it will have to respect any boundary

regarding shifts, Latest an Earliest delivery times.

The software tried 6 different insertions but only two of these respected these constraints.

The two possible insertions are explained below

➢ The Feasibility II tries to insert the Pickup and the Delivery consecutively in the middle of

the block.

As said for the precedent request, even thou it might be possible to insert at the beginning

of the block, at the moment the software discard any type of insertions which operates this

way.

This thing leads to the only possibility for F II to insert after the first stop of the second

block.

The sequence would be: PU2, PU3, D3, D2.

To do so, the vehicle have to reduce its slack time, which is already planned.

The two stops “eat” the slack time by shifting the PU for the amount needed to complete

their operations (detour + load + unload). Note that while it would be theoretically possible

to shift the second request delivery, it is not a possibility, because it would lead to an actual

delivery time higher than the latest delivery time (strictly forbidden condition).

Plus, as already explained, the first operation the software performs is to shift the “left”

side of the block (the prior stops) before even trying to shift the “right” side (the following

stops with the respect of the new insertions).

Page 82: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

82

➢ The Feasibility III tries to insert the Pickup between the second request Pickup/Delivery

couple, then it consider the Delivery at the end of the second block.

Using the same logic as seen before, the stops have to be shifted on the left side to place the

new stops.

Both the solutions are possible when it comes down to insertion.

By the way, costs are then taken into consideration, resulting in a slightly better result with

Feasibility II solution.

It is important to notice that in these situations the parameters regulate the final result, since they

can give more or less weight to a certain disutility.

For instance, C1>C3 would lead to an increased importance for the deviation from desired time at

the expenses of the deviation from the riding time.

The test has been conducted several times to investigate whether the software would follow the

expected procedure or not.

The simplicity of the situation allowed to reconstruct any passage with ease, calculating the costs

perfectly, making sure that any possible bug would be found and fixed.

This test has been fundamental to validate the software insertion procedure and operate the right

corrections to code structure and software theory.

Page 83: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

83

4.3.2 Test 2

This second test aims to verify the correct functioning of the Activation cost.

The Activation cost must be considered a measure to prevent too many vehicles from doing

operations that could be done by a lower number of those.

In fact, while use a larger number of vehicles than needed might result in a lower cost for users, on

the operational side it is indeed convenient to slice the costs as much as possible.

It is then vital for this measure to work properly.

Number of total vehicles 3

Constant Speed 30 km/h

Capacity 2 Passengers

Table 6 - Vehicles characteristics

Activation cost 106 €

Idle cost per hour 1 €/hour

Travel Cost per hour 10 €/hour

C1 1 €/hour

C2 0

C3 1 €/hour

C4 0

Table 7 - Parameters

Page 84: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

84

Figure 4-2 - Initial Scenario

Request n° Type CT DT

1 Pickup 19:00:00 19:02:00

2 Delivery 19:07:00 19:16:00

3 Pickup 19:15:30 19:16:00

Table 8 - Requests characteristics

In this test we do not worry about the feasibility used for the insertion, since it will always be the

Feasibility I because of the distances and the Call Time/Desired Time for any requests.

As already explained, the focus will be on whether the Activation Cost works fine for any request

and favours the vehicle that already planned and performed some operations instead of

considering a new vehicle anytime.

Request 1

Request 2

V2

Request 3

2 Km

2 K

m

1 K

m

V3

V1

Page 85: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

85

The first request simply can only be taken by vehicle V1, because of the strict desired time for the

Pickup, which allows V1 to be the vehicle to get the request without any deviation from DT.

Of course, at the beginning any vehicle is subject to the “payment” of the Activation cost, so it is

just a matter of which one fits best in this case.

The delivery of the requests (and the actual position for V1) lands just 2 km away from V2.

The second request is a Delivery, whom origin is set to be exactly in the midpoint between V1 and

V2.

The Call Time is such that the first vehicle already performed the first request and is now in idle

state, waiting for a new one.

This means that both vehicles should have an overall similar travel cost (also because the Idle Cost

per hour is very low on our parameters).

The situation “balancer” should be the Activation cost.

Only V1 has been activated so far, meaning that the final insertion cost for V2 should increase of

106, resulting in a clear choice towards V1 for the insertion.

The third request basically stretches the same logic while adding other stricter conditions.

In fact, the CT for this last request is such that coincides with the unloading phase of the second

request. Plus, DT is imposed for 19:16:00, which is basically the CT and an additional 30 seconds.

V2

2 Km

1 Km

1 K

m

V1

Page 86: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

86

The direct consequence is that V1 should gain a good amount of deviation from desired time,

while V3 would take the requests with a smaller amount of delays.

As for the prior situation, V3 hasn’t been activated yet, meaning that the overall cost for the

request would still make the software choose V1 because of the extremely high Activation cost we

chose.

Of course, when the Activation cost is not this high the software behaviour is to consider any

inactive or active vehicle the same, so that its main priority becomes to satisfy all the requests

while keeping the deviation from Desired Time at the lowest possible level.

The activation cost is a vital part of the software functioning, which is the reason why it has been

widely investigated in this test.

It is always to be fixed in mind that costs reflects the customers satisfaction for the service.

The main function of PTVD is of course to get the maximum amount of successful inserted

requests over the total amount received.

Cost function parameters are made to bend the software behaviour to the modeler’s choice.

When putting these high values for activation cost the functions are advantaging service operator

needs over users.

In fact the cost is such that PTVD prefers to give a discomfort to a user (in the form of waiting time,

V2

1 Km

2 Km

V3

Page 87: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

87

time spent on board, delays and anticipation) to insert a certain request in an already active

vehicle.

While this might be seen as a total discomfort and an uneven situation, on a real-case scenario the

factor allows to solve a high number of request with less vehicles.

In real-world the obvious consequence for a service operator would be to have fleets with a lower

number of vehicle, probably needing less maintenance and personnel cost.

This would then reflect on customers, which would be indirectly advantaged by things such as

lower fares or more convenient prices.

On the other hand, to keep a lower (or non-existent) Activation cost would certainly advantage

user comfort.

Looking at the formulation the terms with the highest “weight” would be the C’s and the

deviations (which are also quadratic).

As for the other case, the immediate result would be a gain in terms of respected schedules and

comfort, but a higher number of vehicles involved and “forced” to activate in order to avoid a

scarce service quality that would leave customers with a bad opinion or unsatisfied.

4.3.3 Test 3

The aim for this third test is to have a little more focus regarding the Vehicle search functions and

the slack time related costs.

Vehicle search function is a great improvement over the latest implementations, because it allows

the software to “slice” through the vehicles around a certain requests to only select the ones that

could actually perform the request.

Obviously, this allows to avoid calculations for any vehicles loaded into the simulation, highly

downsizing the cost calculations.

The search function is based on two main parameters, which are the search radius and the

maximum number of selected vehicles.

Page 88: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

88

Number of total vehicles 2

Constant Speed 30 km/h

Capacity 2 Passengers

Table 9 - Vehicles characteristics

Activation cost 106 €

Idle cost per hour 1 €/hour

Travel Cost per hour 10 €/hour

C1 1 €/hour

C2 0

C3 1 €/hour

C4 0

Vehicle Search Radius 3,5 Km

Table 10 – Parameters

Figure 4-3 - Initial Scenario

Request 1

Request 2

V2

Request 3

2 Km

1 K

m

V1

1 K

m

Vehicle search radius

Request Position

Page 89: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

89

Request n° Type CT DT

1 Pickup 19:00:00 19:06:00

2 Delivery 19:01:00 19:02:00

3 Pickup 19:15:00 19:16:00

Table 11 - Requests characteristics

As seen on the table, the search radius has been kept to 3.5 km.

The reason for this very precise measure has to be seen in the requests position and call time, as it

will be clearer while explaining the requests partitions.

The first request CT is set to 19:00:00 with a DT for 19:06:00.

The radius is such that when getting to the whole path filter, the software would only recognize V2

because of its position near the request.

Since it is a Pickup, the requests won’t be executed at the earliest possible time because the origin

can be just reached with a 2 minutes ride.

A slack time is generated at the beginning of the first block, while the vehicle won’t start its ride

immediately.

Figure 4-4 - Search radius functioning scheme

3,5 km Search Radius

The already scheduled

path is intersected by the

radius so the vehicle is

taken into consideration.

Page 90: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

90

The second request arrives at 19:01:00, with a very strict DT at 19:02:00 and a very near position to

V1.

In this case, the radius from the request would only intercepts V1 with its area, but a fundamental

difference is that it should also intercepts V2 path to satisfy the first request, which have already

been traced and fixed. As said, the test was made to check whether the vehicle search function

would work while considering another vehicles path.

Even thou the position might be better to force V1 to execute the request, the fact that Activation

cost is still high, and the first request was very large with its DT would lead to V2 to take the

request.

To avoid this, the second request has been generated with a smaller Time Window than the

average (2 minutes), which only allows V1 to execute the request.

This would also exclude V2 to be considered as a possible vehicle for the request, because of the

Time slice path intersection filter, which checks whether the path is intersected in the right interval

of time.

The situation is now that both vehicle performed their requests and are distant two kilometres

from each other.

A new request is generated right in the midpoint of the segment which unites the two.

The CT for this request is such that both of the vehicles have abundantly completed their previous

tasks and are now waiting on Idle condition.

Figure 4-5 - Request slack time

Page 91: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

91

The software elaborates which one of the vehicles has a lower overall cost.

The Activation has been taken out by the decision process because both of the vehicles performed

a request and the deviation time would be the same (because of their symmetric position with the

respect of the new request).

So the decision would be take considering the vehicles that has the least amount of slack time, in

this case orienting the decision towards the vehicle to stop for first, because of the cost functions

structure which takes into consideration the amount of slack time for any block.

The radius for the vehicle search function has revealed itself to be an efficient instrument to have a

first “cutting” from the whole vehicle fleet.

It has been tested with several increasing measures to comprehend if the actual results were

attached to the expected results.

As expected, when the radius was set under 3 km of length, the software couldn’t really consider

both vehicles after applying the whole path intersection filter.

When it overcame the 3 km barrier, the vehicle search function could intersect the scheduled path,

while, as it was forecasted, the time slice path intersection filter wiped the useless vehicle from the

choice.

After this validation the radius has been set to 3,5 kilometres for the test above.

The vehicle search function reveals itself to be a powerful instrument, but it is indeed something

that must be properly calibrated thinking about the result the modeler wants to obtain.

In fact, a lower radius might only select vehicles nearer to a certain request ignoring farter ones. Of

course this logic it is not wrong per se, because the probabilities to find vehicles to satisfy a certain

request are surely higher if located not far from it.

This might actually be an issue only for big study areas and specific cases in which Call time is

much lower than desired time, so that a vehicle might arrive on time to take a request but it is

excluded from the candidates on the vehicle search phase.

However, the software has been thought and wrote for more urban scale, real-time cases, in which

these kind of issues surely have a smaller impact.

The second part returned to check the efficiency of the cost functions, with a focus on the part

regarding the cost applied for slack time (i.e the Idle state of vehicles).

Page 92: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

92

4.4 Aggregated test and operational conditions

This second part is dedicated to exploring the operational dimension of the software.

Operational means that the magnitude of the problem is as big as an average (or way more) real-

world situation.

In this case the measures of the Bounding box have been tailored around the city of Turin.

Turin has an official surface of 130 square kilometres, while our bounding box is a square whom

area is 225 square kilometres.

Figure 4-6 – Urban Test Study area/bounding box

The vehicles are assumed to move at a constant speed of 30 km/h, and because of the definition of

bounding box, the distances are computed and covered geometrically without using a graph

(Euclidean).

All the requests are for a single passenger only and the time for loading and unloading have been

considered as 1 minute.

The pickup have been considered as real-time, meaning that the difference between the request

Call time and the Desired time is randomly a minute or less.

The deliveries have a Desired time which takes into consideration the time to get from origin to

destination, the time of loading and unloading plus a random quantity between 5 to 10 minutes,

15 K

m

15 Km

Page 93: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

93

which is also strict but enough to allow the actual performing of the delivery.

It is important to remember that a delivery cannot be done after the DT, so in case of a unreal

condition (like Call-time plus one minute), the delivery would be immediately failed.

While the requests are uniformly distributed on the whole bounding box, the maximum distance

between Pickup and Delivery has been set to 6 km, so the application are actually made for a short

trip type of service.

The time windows for any request is always 15 minutes, both for pickup and for deliveries.

The multiplicative factor for the calculation of the maximum riding time is 2.

The vehicles have been always distributed over the entire bounding box following a uniform

distribution, as well as the requests. The total number of vehicles distributed for any simulation

run is equal to 3500.

Instead of considering a mixed fleet, the choice was made to take a homogeneous one anytime, to

better analyse and comprehend the software behaviours and, if so, the limits.

Regarding the cost functions it is important to know that the activation cost has been set to 106,

while the quadratic components of the deviations are not considered and have been set to zero.

The Travel cost per hour is 10 and the Idle cost per hour is 1.

The simulations are real-time, so a two-hour simulation takes that amount of time, to better

reproduce the real-world scenario.

Any value in the graphs has been obtained with a minimum of two 120 mins run averaging any

result.

5 different scenarios have been built to explore different software cases and have a wider

perception of the results.

Scenario Vehicles capacity Vehicle search radius (meters) C1/C3

1 1 2000 1

2 2 2000 1

3 4 2000 1

4 4 2000 2

5 4 1000 1

Table 12 - Scenarios summary

Page 94: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

94

Any of these will be analysed through some KPI’s and later commented.

The KPI’s used for this purpose are the number of used vehicles to accomplish a certain request

rate, the average deviation from the Time window calculated from any satisfied request and the

average deviation from direct riding time calculated as the precedent.

Another fundamental indicator would be the ratio between the number of inserted requests and

the number of total request for a certain run.

4.4.1 First Scenario

The entire fleet has a homogenous capacity equal to 1, which is of course the minimum to allow

any kind of service for the software.

The request rate per hour started from 1000 and has been raised up to 30000, which has been

recognized as the limit for a good quality service.

The results are exposed in the table below.

Rate 1000 5000 9500 14000 21000 24000 27000 29000 30000

N° Vehicles 328 1144 1984 2862 3500 3500 3500 3500 3500

Avg.

Deviation TW 305.9 287.5 276.3 270.3 284 317 373.9 412.7 412.8

Avg.

Deviation RD 0 0 0 0 0 0 0 0 0

Inserted (%) 97 97 97 97 95 90 84 80 79

Table 13 – First Scenario tests results

It is important to notice that the zero values for the average deviation from Direct riding time are

perfectly normal: since a vehicle can only accomplish one request at a time, the block can be only

formed by two stops, meaning that any other insertion that might shift the two already planned it

is impossible by definition (new requests can only be inserted through feasibility I).

The graphical representation of the results are as follows.

Page 95: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

95

Figure 4-7 - Test results

The used vehicles curve reaches its limit at a range which floats around 21000 requests per hour.

While the percentage of satisfied requests it’s steady until 15000 req/hour, it starts decreasing for

higher rates, as it is expectable.

In particular, from 20000 to 30000 the decrease it’s very steep, meaning that the fleet has overcome

its capacity and cannot handle higher ratings without heavy degrading the service quality.

Figure 4-8 - Inserted/processed requests

0

50

100

150

200

250

300

350

400

450

0

500

1000

1500

2000

2500

3000

3500

4000

1000 5000 9500 14000 21000 24000 27000 29000 30000

Dev

iati

on

s (s

)

Use

d V

ehic

les

Rate per hour

Capacity =1, Radius = 2000, C1/C2 = 1

Used Vehicles

Avg Dev TW

0,7

0,75

0,8

0,85

0,9

0,95

1

1000 5000 9500 14000 21000 24000 27000 29000 30000

Satisfied Requests

Page 96: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

96

The decreasing in service quality is witnessed by the Average deviation from Time windows.

The first thing to notice is that it starts at a higher value, then it decreases when rates are

comprised between 5 to 15 thousand requests per hour, then it starts growing overcoming the

initial value.

The interpretation of the results suggests that, because of the high activation cost, the software

prefer to insert the requests inside already Active vehicles.

As already mentioned, this vehicles cannot really accomplish two requests in the same block, so

the vehicle basically does not complete any detour.

So any “newer” request needs to hold until the vehicle with the lower cost has finished its

operation and it is able to take on the next.

This explains a high starting value for this parameter which immediately start to decrease after a

higher amount of requests need the activation of several more vehicles.

Of course, raising the amount of requests leads to a situation in which the number of vehicles that

can be activated is reached. After this peak, the steep of the deviation trend gets a decisive gain,

meaning that to satisfy all the requests, vehicles have a queue of requests that can only be satisfied

one at a time, leading the customer on the bottom of the line to have an increment in their waiting

time.

After a certain rate, the deviation seems to return steady, while the inserted requests have wider,

faster worsening, suggesting that the limit for this configuration has been reached.

4.4.2 Second Scenario

The entire fleet has a homogenous capacity equal to 2, the difference from prior scenario regards

the capacity of vehicles.

Because of this additional capacity for any vehicle, the rate per hour has been investigate up to

40000 requests per hour.

Page 97: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

97

Rate 1000 5000 10400 15000 20000 24260 30000 35000 40000

N° Vehicles 313 1061 1898 2690 3197 3484 3500 3500 3500

Avg. Deviation

TW 303.5 299 306.6 316.7 326.6 341.6 372.4 425.3 464

Avg. Deviation

RD 50.3 49.8 50 49.9 49.7 50.3 50.6 51.8 54.5

Inserted (%) 97 97 97 97 97 95 89.4 84.1 76.6

Table 14 – Second Scenario Test results

Of course, for any capacity higher than 1 it is important to consider the average deviation from

riding time as a parameter for the service quality on the customer side.

Figure 4-9 - Test results

0

50

100

150

200

250

300

350

400

450

500

0

500

1000

1500

2000

2500

3000

3500

4000

1000 5000 10400 15000 20000 24260 30000 35000 40000

Dev

iati

on

s (s

)

Act

ivat

ed V

ehic

les

Rate (requests/hour)

Capacity 2, Radius 2 km, C1/C3 = 1

Used Vehicles

Dev TW

Dev DRT

Page 98: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

98

Figure 4-10 - Inserted/processed requests

The number of used vehicles growth is still high, but the steep is sensibly lower than the previous

case with capacity = 1, so that the curve reaches its peak a little bit later.

The percentage of satisfied requests is steadily over 95% for a rate up to 25000 requests per hour,

already overcoming the previous scenario as forecasted.

Although, after this rate the performances really start to decrease heavily, since it is not possible to

activate the right amount of vehicles to complete all the requests.

For a rate of 40000 requests per hour only 3 quarters of the requests have been satisfied, with a

peak of average deviation from Time window.

Speaking of which: the TW deviation steadily grow throughout the graph, having a decisive

acceleration for rates higher than 30000 requests per hour.

While at the beginning the number of seconds is basically coincident with the previous scenario, it

is sensibly lower for any higher rate.

The deviation from direct riding time surely has a little addition for very high rates, but it basically

oscillates around the same values through the whole scenario, suggesting a low variation on the

amount of detour the vehicles need to perform for any request.

This phenomenon is explained by the fact that capacity is only able to accommodate 2 requests at

the same time, meaning that it is very hard to have a lot of detour for the same requests block.

0,7

0,75

0,8

0,85

0,9

0,95

1

1000 5000 10400 15000 20000 24260 30000 35000 40000

Satisfied requests

Page 99: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

99

4.4.3 Third Scenario

Just like the difference between the first and the second scenario, in this case the capacity of any

vehicle in the fleet has been raised to 4 units.

The simulation results are summarized in the table below.

Rate 1000 5000 10000 15000 20000 23800 30000 35000 40000

N° Vehicles 324 999 1778 2531 3094 3364 3497 3500 3500

Avg. Deviation

TW 271.2 288.7 294.8 304.86 310.45 320.08 341.05 379.8 413.31

Avg. Deviation

RD 60.74 74.4 75.75 78.03 78.66 77.45 78.29 80.9 84.73

Inserted (%) 97 97 97 97 97 95 91 86 80

Table 15 - Third scenario test results

It is expected from the used vehicle curve to have a lower pendency, as a sign that the software can

find an already active vehicle with enough space to accommodate another request.

Figure 4-11 - Test results

0

50

100

150

200

250

300

350

400

450

0

500

1000

1500

2000

2500

3000

3500

4000

1000 5000 10000 15000 20000 23800 30000 35000 40000

Dev

iati

on

s (s

)

Act

ivat

ed V

ehic

les

Rate (Requests/hour)

Capacity 4, Radius 2 km, C1/C2 = 1

Used Vehicles

Dev TW

Dev DRT

Page 100: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

100

Figure 4-12 - Inserted/processed requests

The graph shows the tendency regarding the number of active vehicles, which is of course quite

smoother up to 30000 requests, where the curve reaches its peak and it is slightly later than the

previous scenarios.

Figure 4-13 - Used Vehicles comparison, Scenarios 1, 2 and 3

0,7

0,75

0,8

0,85

0,9

0,95

1

1000 5000 10000 15000 20000 23800 30000 35000 40000

Inserted/processed requests

0

500

1000

1500

2000

2500

3000

3500

4000

1000 5000 9500 14000 21000 24000 27000 29000 30000

Use

d v

ehic

les

Rate per hour

Used vehicles Comparison

Capacity= 1

Capacity= 2

Capacity= 4

Page 101: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

101

The TW deviations are significantly lower for any rate with the respect of the second scenario,

while the behaviour in terms of steep growth for higher rates it’s pretty much the same, showing a

constant increase for the whole scenario with a decisive increment on the final part.

Figure 4-14 - Average Time windows deviations comparison, Scenarios 1,2 and 3

As expectable, the satisfied requests percentage is considerably higher than the previous scenarios.

In fact, for 40000 requests we have the lower bottom at 80 %, while for the previous cases was

already way under this quantity.

It is interesting to notice a different behaviour for the DRT deviation curve.

In this occasion in fact there is a constant increase with the rate.

Even thou it is limited in terms of seconds since the difference between the value at 1000 and at

40000 requests per hour is just 24 seconds, it is indeed an outcome to discuss.

In fact, while in the previous case this quantity remained constant because of the limited capacity

of the vehicle, the augmented capacity allows any vehicle to easily perform more insertions in the

same block, since it is now possible to take charge of those.

The rate growing underline this behaviour even more.

It is easy to imagine that when the requests are this high and the fleet is limited, the software need

to search the possible insertion in any already active vehicle, forcing it to take a detour to

250

270

290

310

330

350

370

390

410

430

0 5000 10000 15000 20000 25000 30000 35000

Dev

iati

on

(s)

Rate per hour

Avg. TW deviations Comparison

Capacity1

Capacity2

Capacity4

Page 102: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

102

accommodate as much requests as possible.

On lower rates the needing of this it’s surely less impacting.

4.4.4 Fourth scenario

This scenario aims to investigate different parameters.

So far, the cost functions have assigned the same weight to both the Time Windows and Direct

riding time deviations, meaning that the software read those as equally inconvenient for a general

customer.

As already specified in the introduction, the quadratic terms are not considered in the different

cases.

On the other hand, in this investigation the ratio between the two linear components has been

changed so that the ratio results: C1/C2 = 2.

This condition should give a stronger importance to the time windows deviations, meaning that an

average customer would fine more disappointing a late arrival of the vehicle to pick him up (or to

deliver him) rather than a longer trip to the destination.

The table shows the results for the scenario.

Rate 1000 5000 10000 15000 20000 24090 30000 35000 40000

N° Vehicles 307 951 1753 2416 3042 3354 3492 3500 3500

Avg.

Deviation TW 248.4 266 269 271.8 283 291 315.6 353.6 387.5

Avg.

Deviation RD 59.7 74 77.8 79.1 80 80.5 80.7 82.8 86.17

Inserted (%) 97 97 97 97 97 96 91 87 81

Table 16 - Fourth scenario results

Page 103: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

103

Figure 4-15 - Test results

Figure 4-16 - Inserted/processed requests

0

50

100

150

200

250

300

350

400

450

0

500

1000

1500

2000

2500

3000

3500

4000

1000 5000 10000 15000 20000 24090 30000 35000 40000

Dev

iati

on

(s)

Use

d V

ehic

les

Rate per hour

Capacity = 4, Radius = 2 Km, C1/C2 = 2

UsedVehiclesTW Dev

Avg Dev RD

0,7

0,75

0,8

0,85

0,9

0,95

1

1000 5000 10000 15000 20000 24090 30000 35000 40000

Satisfied Vehicles

Page 104: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

104

While the number of used vehicles is pretty much the same as well as the percentage of satisfied

requests (as expected since the capacity of the fleet is the same), the deviation had a significant

change.

The most evident and obvious reaction to this change of parameters is that the average deviation

for the time windows is surely lower because of the higher weight of these time losses in terms of

costs.

Figure 4-17 - Third and fourth scenario TW Deviation comparison

While maintaining the same behaviour of a stronger addition on the last part of the graph where

the higher rates lie, this steeper segment is surely smoother and less edgy than the previous

scenarios.

Regarding the deviation from the riding time, it is mildly lower for the first part of the graph, to

get higher than the previous scenario on the latter part of it.

This probably suggests that while this re-arranged ratio may have some sort of effects on the RD

deviations too, probably the most important parameters is still the capacity of the fleet.

200

250

300

350

400

450

1000 5000 10000 15000 20000 24090 30000 35000 40000

Deviation from TW

C1/C2 = 2

C1/C2 = 1

Page 105: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

105

4.4.5 Fifth Scenario

As for the previous scenario, this following case wants to cover another important parameter

needed for the software.

In this setting, while the cost parameters ratio has returned to 1 and the fleet capacity has been

kept to 4, the radius for the vehicle search has been diminished, arriving to a smaller value of 1000

meters.

Because of its functioning already explained on the third specific simulations, it is interesting to

investigate whether this may be an important characteristic to define the software outcomes.

The following table sums up the results:

Rate 1000 5000 10000 15000 20000 24090 30000 35000 40000

N° Vehicles 490 1556 2486 3269 3487 3500 3500 3500 3500

Avg. Deviation

TW 243.9 267.7 274.2 281.7 295.2 308.1 339.3 375.8 432

Avg. Deviation

RD 49.4 65.7 67.8 70.4 71.6 73.1 76.9 80.7 86.6

Inserted (%) 97 97 97 97 95 92 87.6 81 74.2

Table 17 - Fifth scenario test results

Clearly, the overall results had a decisive overall worsening.

The graphs may show this behaviour clearer.

Page 106: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

106

Figure 4-18 – Test results

Figure 4-19 – Inserted/processed requests

The used vehicle curve reaches its peak “sooner” than the same scenario with a wider radius.

This outcome has an easy interpretation: since the radius is responsible of the vehicle selection for

any request, to diminish its length means to limit the number of vehicles that are taken into

0

50

100

150

200

250

300

350

400

450

500

0

500

1000

1500

2000

2500

3000

3500

4000

1000 5000 10000 15000 20000 24090 30000 35000 40000

Dev

iati

on

s (s

)

Use

d V

ehic

les

Rate (Requests/hour)

Capacity = 4, Radius = 1 km, C1/C2 = 1

Used Vehicles

Dev TW

Dev DRT

0,7

0,75

0,8

0,85

0,9

0,95

1

1000 5000 10000 15000 20000 24090 30000 35000 40000

Satisfied Requests

Page 107: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

107

consideration.

Because of this consequential effect, the probability of finding an already active vehicle which can

satisfy a requests decreases.

Figure 4-20 - Third and Fifth scenario Used vehicles comparison

This translates into the needing of a higher number of vehicles to satisfy the same rate of requests.

Of course, both the situations end with the total number of the fleet activated because of the

massive number of requests.

This outcome might suggest that in order to have the best result in terms of used vehicles the only

thing to do is just augment the radius. While this solution is true and feasible for situations in

which the requests rate are lower than 20000 requests per hour, on the higher side this leads to an

amount of computing time that in the end causes a delay and a queue on the requests resolution

side.

In fact, the radius equal to 2000 meters is the right amount to allow the software to keep an

insertion time (time needed for computation) low enough to create no queue; it is important to

keep in mind that the software works on the insertions on a consecutive-single basis on a FIFO

philosophy.

The radius also affects the percentage of satisfied requests.

0

500

1000

1500

2000

2500

3000

3500

4000

1000 5000 10000 15000 20000 24090 30000 35000 40000

Use

d V

ehic

les

Requests per hour

Used Vehicles

Radius = 1

Radius = 2

Page 108: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

108

Figure 4-21 - Third and Fifth scenario Inserted/processed comparison

As for the number of used vehicles, a smaller radius sensibly worsens the number of requests

satisfied by the same number of vehicles.

Regarding the deviation from DRT, while both scenarios have an ending value which is pretty

much the same, for lower rates a lower radius have less deviations.

Figure 4-22 - Third and Fifth scenario deviations from DR comparison

This behaviour is explained by the fact that the software can only detect feasible vehicles near to a

certain request, resulting in detours that are lower because of the limited number of meters that

have to be performed to satisfy a request.

0,7

0,75

0,8

0,85

0,9

0,95

1

1000 5000 10000 15000 20000 24090 30000 35000 40000

Insertion percentages

Radius =1

Radius = 2

40

45

50

55

60

65

70

75

80

85

90

1000 5000 10000 15000 20000 24090 30000 35000 40000

Deviations from DR

Radius = 1

Radius = 2

Page 109: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

109

5 Conclusions and discussion

This work presented a software to solve real time Dial-A-Ride problems, focusing on its internal

theoretical construction, its functionalities, operative strengths and limits.

Its usage demonstrated the possibility to optimize solving problem that are attested on a massive

scale, even through situations in which the software had to manage a very large number of

requests in critical conditions.

The aggregated results aimed to show the reaction of this software when tested under many

different situations which are mostly based on possible real-world simulations, at least in terms of

magnitude and computational speed.

While the software development is far from over and ready to implement more functionalities, it

proved to be a reliable efficient tool capable of handling large scale real-time problems.

The possibility of using a graph, a city model in general and to upload the different traffic states

during the simulation is already possible, while still needs to be tested for validation.

These functions will be capable of shaping and modelling precise and truthful scenarios, which

could lead to a deeper level of analysis.

The real-time functioning of the software might evolve so that it could calculate the travel time

based on the actual traffic state, plus all the other stops that are already scheduled may be

“uploaded” in terms of actual travel time to get to destination.

This last occasion would lead to greater amount of theoretical computations, since to miss a time

window for an already planned stop, which is later proved infeasible because of the actual traffic

state, would require different assumptions.

As an addition, the type of code required for this new function would be surely more complex and

demanding in terms of computing power.

Another step of the development may consider the possibility to further improve the vehicle

selection part to make it more efficient and solid.

Since the market is now very demanding in terms of usage speed and precision, to meet the

competitiveness requirements is a hard challenge.

While it might still require further development, the absolutely encouraging results achieved by

Page 110: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

110

PTVD in this early stage are a good firm point which surely confirm the possibility to implement

its usage for commercial and research purposes in the immediate future.

6 Appendix

The appendix contains all the scheme representing the different feasibilities logic paths.

Thanks to Claudio Catta for his work on building the schemes.

Legend:

p, q, r, s: these indexes are used to mark the sequence of stops the vehicle is trying the insertion

through. Given the Pickup stop (+ i) and the Delivery stop (- i) for the customer, the 4 feasibility

cases can be seen as:

F_I 1……p (=d) + i - i

F_II 1……p + i - i q……d

F_III 1……p + i q……d - i

F_IV 1……p + i q……r -i s……d

Ti (T-i): The pickup (delivery) time for the new customer.

STj: scheduled time for the stop before the new insertion

wi: Slack time changing due to the new insertion

SHIFT: the amount of time the block or the stop have to be trailed

∆Pi (∆Di): detour time needed to Pick up (deliver) the new customer

PS (DS): the amount of time for which the stops which precedes (succeeds) the insertion of the new

customer i have to be trailed

MS: the amount of time stops between +i e -i are trailed after the insertion of the new customer i.

GT, ET,LT: Variables indicating the Actual, earliest and latest time for pickup or delivery

Page 111: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

111

Figure 6-6-1 - Feasibility I Logical Workflow

Page 112: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

112

Figure 6-2 - Feasibility III Logical Workflow

Page 113: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

113

Figure 6-3 - Feasibility IV Logical Workflow (first part)

Page 114: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

114

Figure 6-4 - Feasibility IV Logical Workflow (second part)

Page 115: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

115

7 Acknowledgments

Even though the work is completely written and elaborated in English language, I do believe it

would be better for me to write this last part in Italian, otherwise I wouldn't be able to express my

feelings the way I want to.

Sebbene i ringraziamenti siano solitamente un breve paragrafetto sul fondo della tesi, appena

prima dell'ultima pagina, ci tengo a voler essere abbastanza esauriente (e verboso) anche perché

l'occasione di questo sudato traguardo si presta particolarmente bene.

Ringrazio il professor Guido Gentile per la sua immediata disponibilità nel farmi portare a

compimento questo lavoro e per la preziosa direzione nel suo svolgimento.

Ringrazio anche Alessandro e Marco che mi hanno sempre mostrato una grandissima

disponibilità, gentilezza e (sopra ogni cosa) Pazienza, anche in situazioni per loro particolarmente

stressanti. Ringrazio Domingo per avermi subito accolto con grande cordialità ed Agostino per

avermi introdotto nell’ambiente di PTV.

Ringrazio i miei genitori Agostina e Dino che grazie al loro duro lavoro di ogni giorno mi hanno

permesso di potermi concentrare sul mio studio senza dovermi preoccupare di altro, motivandomi

senza mai mettermi pressione ed al contrario affievolendo quella che spesso mi imponevo da solo.

Sono ciò che sono grazie a voi, la mia gioia più grande è potervi dedicare la conquista di questa

tappa.

Ringrazio Chiara per essere sempre stata al mio fianco, avermi retto nei momenti peggiori ed

avermi regalato tutti questi anni magnifici che non scambierei per nulla al mondo. Ti Amo.

Ringrazio mia nonna Assunta che mi ha fatto capire a suo modo e dall’alto della sua novantennale

saggezza i rischi di una vita senza sacrifici.

Ringrazio tutti i miei compagni di viaggio, sia della triennale che della magistrale. Siete il vero

motivo che mi ha spinto a rimettere piede in un’aula o in una biblioteca quando non ne avevo

alcuna voglia.

Ringrazio il mio gruppo di amici storici (sapete chi siete) con cui sono cresciuto, per avermi

regalato così tanti sabati sera, vacanze e momenti irripetibili. Ringrazio gli amici lontani per

avermi trasmesso tante belle vibrazioni nonostante i numerosi chilometri che ci separano.

Ringrazio anche gli amici che per la mia solita distrazione non riesco a sentire o vedere tanto

spesso quanto sarebbe giusto per la loro importanza nella mia esistenza. Sopportatemi.

Page 116: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

116

Ringrazio tutto il gruppo meraviglioso di compagni di Colle per avermi fatto appassionare ad una

disciplina meravigliosa che mi aiuta ogni giorno a tirarmi su (letteralmente).

Ringrazio mio cugino Lorenzo per il prezioso aiuto dato durante lo svolgimento delle parti più

strettamente informatiche e Francesco per l’aiuto con la parte grafica. Ringrazio anche Olivia e la

sua famiglia per avermi sempre fatto sentire a casa.

Ringrazio Pete, Phil, Tony, David, Roger, RDJ, Thom, Johnny, Syd e quelli che ora non posso

ricordare.

Grazie soprattutto a chi ho dimenticato di nominare, per dimenticanza o timidezza.

Page 117: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

117

8 Literature Index

Berbeglia et al. – Dynamic Pickup and Delivery Problems, European Journal of operational

research (April 2010)

Bodin – Routing and scheduling of school buses by computer, University of Maryland (1979)

Bodin et al. – An algorithm for Vehicle Routing with Time Windows constraints, University of

Miami, 1981

Bodin et al. – The multi-vehicle subscriber Dial-A-Ride problem, University of Maryland, 1982

Catta – Darp Manual, Sapienza University (2004)

Catta – Problemi di Dial-A-Ride, Sapienza university (2004 dissertation)

Charikar et al. – The finite Capacity Dial-A-Ride problem, Foundations of computer science (1998)

Cordeau, Laporte – Dial-a-Ride problem: models and algorithms, Springer science & Media

(2007)

Colorni, Righini – Modeling and Optimizing dynamic Dial-A-Ride problems, International

transaction in operational research (2001)

Daganzo – An approximate analytic model of many-to-many demand responsive

transportation systems, University of Berkley California (1984)

Fu – Scheduling Dial-A-Ride paratransit under time-varying, stochastic congestion, University

of Waterloo (2002)

Gendreau et al. – A tabu search heuristic for the vehicle routing problem, Management science

(1994)

Gendreau et al. – Stochastic vehicle routing, European journal of operational research (1996)

Gentile, Catta – DARP software Manual, Sapienza University (2004)

Grotschel et al. – Simulation studies for the Dial-A-Ride problem, (1999)

Hall et al. – A modelling system for simulation of Dial-A-Ride services, Linkoping university

(2012)

Hung et al. – Vehicle routing problem with time windows for perishable food delivering,

Journal of food engineering (2007)

Hvattum et al. - Solving a Dynamic and Stochastic Vehicle Routing Problem with a Sample

Scenario Hedging Heuristic, INFORMS (2006)

Page 118: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

118

Jaw – Solving large scale Dial-A-Ride vehicle routing and scheduling problems, Massachusetts

Institute of Technology (PhD Thesis, 1984)

Jaw et al. - A heuristic algorithm for the multi-vehicle advance-request dial-a-ride problem

with time windows, Massachusetts Institute of Technology (1986)

Madsen et al. - A heuristic algorithm for a dial-a-ride problem with time windows, multiple

capacities, and multiple objectives, Annals of operational research (1995)

N. El-Sherbeny – Vehicle Routing with time windows: An overview of exact, heuristic and

metaheuristic methods, Journal of King Saud (2010)

Parragh,Cordeau – Models and algorithms for Heterogenous Dial-A-Ride problem with driver-

related constraints, University of Montreal (March 2010)

Pranzo – Appunti sul Vehicle Routing (2008)

Psaraftis et al. – Dynamic vehicle routing problems: Three decades and Counting, DTU (2018)

Psaraftis – A dynamic programming approach to single vehicle, many to many immediate

requests dial-a-ride problem, DTU (1980)

Psaraftis – An exact algorithm for the single-vehicle many-to-many dial-a-ride problem with

time windows, DTU (1983)

R.Larsen – Partially Dynamic vehicle routing: models and algorithms, Journal of the operational

research society (June 2002)

Russell – Hybrid heuristics for the vehicle routing problem with Time Windows, University of

Tulsa (1994)

European commission directorate for energy and transport - Synopsis of DRT

Toth, Vigo – The vehicle routing problem, Philadelphia (2002)

Toth, Vigo – Heuristic algorithms for the handicapped persons transportation problem, Boston

(1996)

Toth, Vigo – Fast local search methods for the handicapped persons transportation problem,

Boston (1996)

Wilson et al. – Advance Dial-A-Ride algorithms research project: final report, MIT (1975)

Wilson et al. – Scheduling algorithms for dial-a-ride systems. Technical report, MIT (1971)

Wilson et al. – Computer control of the Rochester Dial-a-Ride system. Technical report, MIT

(1976)

Page 119: Validation for a Dial-A-Ride software and a sensitivity analysis · 2018-11-29 · 2.2 Vehicle Routing 2.2.1 General characteristics The Vehicle Routing problem (VRP) “calls for

119

Sexton, Bodin. – The multi vehicle subscriber Dial-A-Ride problem, Elsevier science publisher

(1986)

Stein – Scheduling a Dial-A-Ride transportation system, Journal of transportation science (1978)

Woeginger – Exact algorithms for NP-hard Problems: A survey, University of Twente (2003)