You are on page 1of 14

Modelling and optimizing dynamic dial-a-ride

problems
Alberto Colorni
Dipartimento di Elettronica e Informazione, Politecnico di Milano
colorni@elet.polimi.it
Giovanni Righini
Polo Didattico e di Ricerca di Crema, Universita degli Studi di Milano
righini@crema.unimi.it
May 1999
Abstract
Dial-a-ride is an emerging alternative to traditional public transportation
systems. The aim of this paper is to reduce the gap between the models studied
in optimization literature and the requirements of practical applications. We
also describe the algorithms implemented in DARIA, a PC program for the
optimization of static and dynamic dial-a-ride problems. We brie y illustrate
two case studies and the future developments of DARIA project.

Keywords: Transportation, Dial-a-ride, Branch-and-bound, Local search

1 Introduction
In modern cities transportation systems are intensively exploited by a number of people. Their eciency and comfort become more and more important, together with
the need of making public transportation means competitive and appealing, in order
to reduce trac, noise, pollution and delays [14]. For these reasons transportation
systems planners and managers and public administrators show and increasing interest
in the dial-a-ride option [2]. It o ers the comfort and exibility of private cars and
1

taxies at lower cost through a better exploitation of vehicles capacity. Public masstransport systems based on trains, underground, buses and tramways are cheaper than
dial-a-ride but far less comfortable because the vehicles follow xed routes and obey
xed time schedules. Dial-a-ride systems can also be integrated with traditional ones,
yielding multi-modal transportation systems [5]. The name "dial-a-ride" comes from
the phone call by which a customer is supposed to ask for service. A central planning
unit receives all customer calls and decides the allocations of the customers to the
vehicles and the route of each vehicle. The combinatorial problem of deciding how to
allocate customers to vehicles and how to route each vehicle is hard from the viewpoint
of computational complexity theory, since it is a generalization and a combination of
the Set Partitioning Problem and the Minimum Hamiltonian Path Problem. In order
to be competitive dial-a-ride systems must be very well optimized and therefore fast
and robust algorithms are necessary. On the basic schema of dial-a-ride systems many
variations are possible.
Group taxi systems do not require previous calls, the requests for service are made
directly on the road. Unlike usual taxies the driver can pickup other people on board
before reaching the destination of the rst customer. The diculty in such systems
comes from the need of negotiating the service on the basis of partial information, that
is the destination of the customer and the route planned by the driver; moreover these
systems are not suitable for customers with reduced mobility, like handicapped or old
persons. The advantage is that no appointments with customers are missed and no
central planning unit is required since decisions are taken directly by the drivers.
A second variation, called static dial-a-ride [1], requires customers to ask for service in
advance (for instance, the day before) and the plan is made before the system starts.
In this case the computation of optimal allocation and optimal routes is allowed to
take some hours. Static dial-a-ride systems are more comfortable than group taxies for
customers with reduced mobility. The drawback is that missed appointments, trac
jams, vehicle breaks and other unpredicted events can strongly a ect the quality of the
solution computed a priori, with no possibility of re-optimization.
A third variation, called dynamic dial-a-ride, allows customers to call during the service
time. Every time a new customer call is received, the current plan is (partially) reoptimized. Dynamic dial-a-ride systems are more exible and can react to unpredicted
events, but they have tight real-time constraints on the re-optimization algorithm.
Moreover they require a monitoring system able to sample the position of vehicles, their
load and the state of the transportation network with a certain frequency. Dynamic
dial-a-ride systems are more competitive with traditional transportation systems, but
they need very good optimization and careful pricing policies.
In this paper we illustrate the state of a project [3] aimed to modelling and optimizing
static and dynamic dial-a-ride systems. We do not discuss the aspect of tari s; we
concentrate on the formulation of the optimization problem and on the algorithms we
have developed to solve it.
A classical approach to the solution of dial-a-ride problems starts from an Integer Linear Programming formulation and applies ILP methods such as Column Generation or
2

Cutting Planes algorithms [12]. Unfortunately, such ILP models are too simplistic: in
real applications a number of details must be considered that are skipped in the scienti c literature. For instance the classical minimization of the total distance travelled
is de nitely not the most important objective to be optimized.
In this paper we rst discuss a model, we point out some candidate objective functions,
we de ne a measure of the level of service perceived by the customers, we distinguish
between "soft" and "hard" constraints and we illustrate how the time-dependencies of
the transportation network can be modelled. Then we brie y illustrate the design of
the algorithms used in DARIA, a PC software code we have developed. Finally we
report on some preliminary experimental results related to two case studies.

2 The model
As usual when real applications of OR are concerned, the de nition of the model is
the biggest part of the work. In the remainder of this section we discuss the choices
we have done to de ne our model.

Data .

Transportation network and shortest paths. We represent the transportation network


by a directed weighted graph; the weights of the arcs are an estimate of the travel
time between the endpoints. In real transportation networks travel time can vary from
day to day (for instance between working days and week-ends) and also during the
same day (for instance travel times are higher in rush hours than in the night or in
the central hours of the day). This variability can be taken into account in at least
two di erent ways: by associating to each arc a continuous function of time or a nite set of values corresponding to characteristic time periods (typically ve or six in
a day). In both cases the complexity of computing shortest paths is not worsened;
nevertheless there is an important drawback, since shortest paths cannot be computed
a priori and stored in a big origin-destination matrix once for ever. When this can be
done, a remarkable improvement in computation time is obtained at the cost of storing
the origin-destination matrix. In time-dependent graphs the repeated computation of
shortest paths can be a bottleneck on the computational eciency of the optimization
algorithm. In large time-dependent networks hierarchical graphs can be useful to speed
up the computation of shortest paths: the graph is partitioned into subgraphs (corresponding, for instance, to di erent towns of a region) and for each pair of subgraphs
A and B two subsets of nodes AB 2 A and BA 2 B are determined oine. Subset AB
contains all the nodes of A through which a shortest path from a node in A to a node
in B can pass and BA is its symmetric counterpart. The computation of a shortest
path from i 2 A to j 2 B is then decomposed into the computation of shortest paths
from i to the nodes in AB , from these to the nodes in BA, and nally from these to

j . In this case many small origin-destination matrices must be stored, one for each

subgraph and one for the distances between subgraphs.


Another useful method to reduce the time spent in computing shortest paths is bidirectional Dijkstra's algorithm [11], in which node labels are computed both from the origin
and from the destination. In this way the number of iterations can be dramatically
reduced.
Vehicles. Some problem data obviously concern the number and position of the depots,
the maximum time a vehicle can travel before going back to a depot and the capacity
of each vehicle. The number of vehicles is a datum if the problem is dynamic, since it
is not possible to change the number of vehicles on the y.
Customers. Data about each customer i include the origin o(i) and the destination d(i)
of his travel, the request time treq (i) (only in dynamic problems) and a time window.
The time-window is de ned by two time values b(i) and e(i) such that the travel of
customer i must not begin before b(i) and must not end after e(i). In our algorithm
origins and destinations can be placed on the arcs of the transportation network. This
is an important generalization with respect to previous approaches requiring pickup
and delivery points to coincide with the nodes of the graph. Moreover we distinguish
the directions from which the same point along an arc can be reached. This is quite
important in urban context, where traversing a road can be impossible or at least
unpleasant or dangerous; it is also important for customers with reduced mobility, who
must not be compelled to traverse the street when they get on or o the vehicle.

Variables. There are two kinds of decisions to be taken: those concerning the allocation of customers to vehicles and those concerning the routing of each vehicle. Both
subproblems can be modelled by integer variables. Our previous experience with multisource location problems [6] [8] suggests that allocation is more critical than routing:
a suboptimal choice of allocation variables can a ect the quality of the solution more
than a suboptimal routing of vehicles.
Constraints. The model includes many constraints of di erent kind. Precedence

constraints are typical of pickup and delivery problems: they state that in the sequence of actions each vehicle must perform every customer must be picked up before
being delivered. Capacity constraints also a ect the sequence of actions each vehicle
can perform: when a vehicle is full, no pickups are allowed. Time windows constraints
require that the route of each vehicle respects all time windows of the customers allocated to it. If a vehicle reaches the origin of customer i before time b(i), it is supposed
to wait there until the customer comes at time b(i). Each vehicle is also supposed to
deliver each customer i allocated to it before time e(i). Demand covering constraints
require all customer calls to be satis ed. Finally, in otder to make the dial-a-ride system more attractive, it would be nice to guarantee to the customers that it will always
4

provide a minimum level of service, known a priori; this would become an additional
constraint.
If all these constraints were considered as such, the set of feasible solutions could easily
become empty, for instance in case of too many customers calls at the same time or in
case of trac jams. In the optimization of static dial-a-ride problems this is not an issue
because unpredictable events are not taken into account and however the answer "no
feasible solution exists" is acceptable, though undesirable. On the other hand in dynamic dial-a-ride systems a solution must always be found, in any situation predictable
or not, even when time windows constraints cannot be satis ed or delays prevent the
system to meet the requirements on the minimum guaranteed level of service. Therefore we imposed to our algorithm only a subset of the constraints listed above, namely
precedence constraints, capacity constraints and time window constraints on pickup
times. The others are imposed in a "soft" way through the objective function and
the negotiation of customer requests. The asymmetry in managing time window constraints on pickup times ("hard") and on delivery times ("soft") is another charactristic
distinguishing our approach from previous ones [13].

Objective function. In the design of a transportation system many actors are in-

volved and each of them has a di erent objective, usually con icting with the others.
We considered di erent points of view yielding three candidate objective functions:
maximize the number of customers served, optimize the level of service perceived by
the customers and minimize the total distance travelled by the vehicles. The minimization of the number of vehicles is performed by previous simulation and is not an
objective for the dynamic dial-a-ride.
We de ned the quality of the service perceived by the customers (level of service, los)
as the ratio between the service time o ered by the dial-a-ride system and the time the
customer would need to travel by his own car:

los(i) = l(ot(di()i;)d;(i)b;(bi()i))
where td(i) is the arrival time of customer i to its destination d(i) and l(o(i); d(i); b(i))
is the duration of the shortest path from the origin o(i) to the destination d(i), starting
at b(i). This objective must be minimized to optimize the service quality. The overall
objective function in our model is to minimize the worst level of service among all the
customers:
min Los = max
flos(i)g
i
This choice has two desirable side e ects: its optimization tends to produce solutions
that satisfy the soft time windows constraints on the delivery times and the soft con5

straint on the minimum guaranteed level of service. This is not the case in traditional
models where min-sum objective functions are optimized.
The minimization of the distance travelled, the most used objective function in literature, appears to be the least important one among those listed above and it is
implicitely optimized, at least approximately, by the optimization of the level of service, since unreasonable tours correspond to bad solutions from both viewpoints of
los minimization and total distance minimization. However the shortest tour for the
vehicle can be di erent from the best tour for the customers and in these cases the
viewpoint of the customers prevales.
Finally the maximization of the number of customers served is accomplished in the following way: all customer calls are subject to a negotiation and only if certain conditions
are satis ed a call is accepted.

Negotiation. The aim of the negotiation is to forbid customers to put too tight

requests (narrow time windows for long travels, starting just after the request time),
that would worsen the solution. If a customer request is not acceptable, the customer
can modify it and the negotiation goes on until either his request is acceptable or the
customer gives up. Two conditions are veri ed on the customer request: (i) the time
window must be large enough, according to the length of the travel, and (ii) there must
be a sucient time interval between the request time treq (i) and the beginning of the
time window b(i):

e(i) ; b(i) 
l(o(i); d(i); b(i))
b(i) ; treq (i)  K
Parameters and K are tuned o -line by simulation, as shown in section 4. Because
of the min-max objective function, if the solution has a Los value not greater than ,
all customers perceive a level of service not worse than , and the requirement about
the minimum guaranteed level of service is met.
At the end of the negotiation no information is given to the customer about which vehicle will serve him. Otherwise the algorithm would be prevented from re-optimization
of customer allocations, that can be very useful in case of unpredicted delays. Moreover
no information is given about the moment in which a vehicle will come: the customer
is supposed to be ready to leave his origin at any moment inside his time window.
In the de nition of the level of service no distinction is made between the time spent
waiting for the vehicle and the time spent on board.

3 The algorithm
In addition to the NP-hardness of the problem, the optimization of a dynamic dial-aride system is time-critical because it must be performed on-line and repeated every
time signi cant variations of some data occur: for instance when a new request comes
from a customer, when an appointment with a customer at a pickup point is missed,
or when a vehicle is late for some inconvenience. Therefore we seek for approximation,
not for optimization.
In order not to recompute the solution from scratch, we use an iterative algorithm,
based on local search, rather than a constructive one.
The approximation algorithm is interfaced with a simulator, to tune all necessary
parameters o -line (number of vehicles, , K , and some others).
We decompose the dial-a-ride problem into the two subproblems of partitioning the
customers in a number of subsets equal to the number of vehicles and of routing each
vehicle through the pickup and delivery points of the customers in its subset. The
two subproblems are solved alternately as in many well-known two-phases algorithm,
like the cluster-and-locate heuristics for the P-median or other multi-source location
problems [4] [7].
The overall structure of our system is illustrated in gure 1. A partitioning procedure
receives in input the current positions of the vehicles, the state of the network and the
list of pending customers requests and computes the allocation of customers to vehicles;
a routing procedure receives in input the allocations and the state of the network and
solves a routing problem for each vehicle.

Simulator. The simulator updates the vehicles positions and the state of the net-

work, varying the weights of the arcs acccording to the trac conditions of the roads,
and it appends new customer calls to the list. It also allows to simulate some details
like the time required by customers to get on and o , that can be signi cant in case of
persons with reduced mobility. The simulation of incoming customer calls includes the
negotiations, that can be managed interactively, with the intervention of the human
operator, or automatically. The simulator represents a monitoring system that samples
the network, the vehicles and the customer calls at a given frequency. The higher the
sampling frequency is, the most accurate the solution is, but on the other hand the
real-time constraints tend to become more critical; with lower sampling frequency the
algorithm is allowed to spend more time in computing an updated solution but it is
less reactive to the events.

Routing procedure. An important feature of our system is that we leave the drivers

free to decide their own routes through the city. What the algorithm computes is just
an ordered sequence of pickup and delivery points to be visited, not the detailed route
7

Partitioning algorithm
6

Allocations
Routes

Vehicles
positions

State of the
network

Customers
requests

Simulator
Final
routes

State of the
network

Customers
requests
?

Routing algorithm

Figure 1: Architecture of DARIA


to follow from one another. This choice has two main consequences: rst, it increases
the responsibility of the drivers, who are expected to make choices and do not feel
themselves used as mere executors; second, it allows faster and more e ective reactions
to particular situations on the network, that the monitoring system would not reveal
in time. Moreover this choice simpli es the computation of the optimal routes.
Optimal routes of di erent vehicles are computed independently and this allows parallel execution.
In DARIA the routing problems are solved to optimality by a branch-and-bound algorithm. Since the time complexity can be exponential, we limit the problem size by
a planning horizon including only the most urgent customer requests. The computed
route must include all the destinations of the customers already on board and both origins and destinations of the rst C customers allocated to the vehicle who are not yet
on board. Since the ordering of the pending requests is done according to the request
time, it is desirable that the same ordering is valid for the starting time of the time
windows. In other words it is undesirable that the request of customer i, made after
the one of customer j , specify a time window starting earlier than that of customer
j : in such case the request of customer j could be masked by the one of customer i
for too a long time, becoming visible to the routing procedure when it is too late to
include it in a good solution. This is the reason for the second condition veri ed in the
8

negotiation, to reduce the probability that later requests ask for earlier service.
For the same reason, the routing procedure does not consider the requests that specify
time windows very far in the future, even if they are among the rst C in the list
of pending requests. Through these assumptions, that limit the size of the routing
subproblem, it is possible to solve it at optimality. The computing time is heavily dependent on the value of C : lower values of C yield faster computation but less accurate
solutions. Not surprisingly the most critical instances are those in which many time
windows overlap.
In the remainder we describe the branch-and-bound algorithm.
Branching. A partial solution is a path from the current position of the vehicle to one
of the pickup or delivery points to visit. A partial solution can be extended by adding
another pickup or delivery point after the last one in the path. This is done in all
possible ways according to precedence and capacity constraints.
Upper bound. When the set of the customers allocated to the vehicle is di erent from
that of the previous iteration, a greedy algorithm computes a feasible solution, which
provides an initial upper bound. If the set of customers is the same, the initial upper
bound is given by a new evaluation of the optimal solution computed in the previous
iteration. In both cases the upper bound is updated as long as better solutions are
found by the branch-and-bound algorithm.
Lower bound. The lower bound associated to each partial solution is computed as
follows: for each customer i allocated to the vehicle an estimate of his level of service,
los(i), is computed: it is the optimal value that los(i) would have if customer i were
the only one to be served by the vehicle. This can be computed in polynomial time
by the shortest paths from the current position of the vehicle to o(i) and from o(i) to
d(i), if the customer is not yet on board, or by the the shortest path from the current
position of the vehicle to d(i), if the customer is already on board. The lower bound is
the maximum estimate for the customers allocated to the vehicle.
Searching. The search tree is explored by depth- rst-search strategy.

Shortest paths without U-turns. The computation of the optimal route implies
the repeated computation of shortest paths from each pickup or delivery point in
the sequence to the next one. Unfortunately the concatenation of shortest paths can
produce routes with U-turns, that can be infeasible, expecially in urban context. A
route contains a U-turn when a shortest path ends with arc (i; j ) and the next one
starts with arc (j; i). Figure 2 shows an example.
This problem has never been considered in routing literature. We modi ed Dijkstra's
shortest path algorithm to solve it with the same time complexity. For each node of
the graph two pairs of labels (minimum cost, best predecessor) are computed: one is
9

'$
&%
'$ '$ '$
&% &% &%
2 










A
K
A

A
A
A
A
A
A
U
A
-

Figure 2: A vehicle in node 2 must visit nodes 3 and 1. Route (2,3)+(3,2,1), made
of the two shortest paths from 2 to 3 and from 3 to 1, contains a U-turn in node 3
and is infeasible. Feasible solutions are (2,3)+(3,4,2,1) or (2,4,3)+(3,2,1), that contain
sub-optimal paths.
the same as in Dijkstra's algorithm and the other represents the best path reaching
the node from a predecessor di erent from the best one. For the detailed description
we refer the reader to [10].

Partitioning procedure. The partitioning subproblem is solved approximately by

local search. It is not constrained, since all "hard" constraints are satis ed by the
routing procedure. The local search algorithm keeps iterating from one solution to a
better one in its neighborhood until no improvement is found. The neighborhood of a
solution is de ned as the set of all solutions that can be obtained from the current one by
removing one customer, already scheduled but not yet on board, from the customers
subset allocated to a vehicle and inserting him into another. Since the number of
possible exchanges is quadratic in the number of customers already scheduled (O(C 2))
and since the evaluation of the new solution require the re-optimization of the two
routes of the vehicles involved in the exchange, the exact evaluation of the complete
neighborhood is very time-consuming. Therefore we limit the search in two ways. First,
for each vehicle only the customer with the worst level of service is exchangeable: this
makes the number of possible exchanges equal to the square of the number of vehicles.
Second, the routes of the vehicles involved are not re-optimized but their new values
are estimated in polynomial time by two heuristic deletion and insertion procedures.
Deletion. The origin and destination of the exchanged customer are deleted from the
route of its vehicle and all the other points in the route are left in the same order. The
route is then evaluated again. This procedure takes O(C ) time.

10

Insertion. The origin and the destination of the exchanged customer are inserted into
the route of a vehicle in all possible ways, respecting the precedence constraint and the
capacity constraint, keeping all the other points in the route in same order. The number
of possible new routes is quadratic in the number of customers already allocated to
that vehicle.

4 Two case studies


We performed some experiments with DARIA [9] in two case studies, concerning two
cities in northern Italy, Crema and Verbania. In Crema we applied DARIA to the
feasibility study of a transportation system that should operate three days a week between the villages around the city and the market in the city center. When the market
takes place in Crema a large part of the city is overcrowded of cars with only one or
two persons on board. The transportation network represents both urban streets in
Crema and in the villages and extra-urban roads between the city and the villages and
from village to village. The Crema problem is particular for two reasons: rst, every
customer must be served twice, from home to the market and back; second, all travels
share a common origin or destination, the market.
In Verbania we used DARIA for a feasibility study of a mixed static-dynamic dial-aride transportation system, in which some calls are known in advance and others arrive
at run-time. The network represents both urban streets and extra-urban roads. The
extra-urban parto of the graph is very sparse and includes several trees corresponding
to roads traversing valleys.
In both these case studies the simulations gave consistent results and allowed the tuning of all the parameters. We do not report numerical results here because the level
of service obtained depends on many independent variables and on the characteristics
of the problem instances considered and therefore are not meaningful in themselves.
What is meaningful and gives insight into the problem is the dependency of the level of
service on the main parameters of the system: the number of customers, the planning
horizon C , the value of K , the number of vehicles and their capacity.
Number of customers. The level of service does not depend on the number of customers
but on the number of overlapping time-windows. Such number is a very good measure
of the computational diculty of a dial-a-ride problem instance. In all our simulations
the spatial distribution of customers was uniform on the network, but the situation in
Crema where the market is a common origin or destination for all customers was far
more tractable than that in Verbania where origins and destinations can be everywhere
in the network. In Crema we could simulate reasonable scenari yielding very good levels of service (between 2 and 3).
Planning horizon. We observed that the level of service is strongly dependent on the
number of customers considered, C : higher values of C yield much better solutions.
Unfortunately the computing time is also dependent on C . Experiments with high val11

ues of C will be possible only after including in DARIA new ideae on the computation
of shortest paths, cited in section 2.
Number of vehicles P . Obviously the Los value decreases when the number of vehicles
P increases and the marginal improvement tends to zero when P is high. Both in
Crema and in Verbania we observed a critical value P , such that increasing it by one
the improvement is negligible compared to the loss in decreasing it by one. Such critical value increases very slowly with the number of contemporary users, but this e ect
may be caused by the necessity of performing the simulations with a limited horizon
C . However we could study the dependency of the level of service on P in Crema: for
instance we could estimate that 5 vehicles with capacity 8 would be a good choice for
a number of overlapping requests up to 30.
Capacity. The advantage in using vehicles with larger capacity was clear in problem
instances with many overlapping time windows and a few vehicles. When the number
of vehicles increases larger capacities give lower advantage. Through our simulations
it was also possible to study the equivalence relationship between fewer vehicles with
greater capacity and more vehicles with smaller capacity, an information quite important for an ecient design of the transportation system.
In the case of Crema we could argue from our simulations that a dynamic dial-a-ride
system could reduce the number of cars per unit time travelling from and to the market
by a factor of 6, and the number of parked cars by approximately 250 cars per time
unit.

5 Developments
Future releases of DARIA will include some additional features. Besides including
time-dependent graphs and hierarchical graphs, the program will give the possibility
to manage requests made by groups of customers who want to travel together, and to
use vehicles with di erent capacities and speeds.
Possible improvements to the algorithms will be given by best- rst-search instead of
depth- rst-search in the routing algorithm and by more sophisticated neighborhoods
in the partitioning algorithm.
The simulator will also be enriched with the representation of trac lights and queues.
Finally a graphical interface will be added.

Acknowledgements
The authors are grateful to Matteo Venturelli, who performed the computational tests.

12

References
[1] Colorni A., Laniado E., Vittadini M.R.
Il progetto ProntoBus in Val Nure
Terra, 1990 [in Italian].
[2] Assessment of innovative urban transport option: the AIUTO project
Colorni A. editor, MIP - Politecnico di Milano
Final Report CEC, DG VII, 1999.
[3] Colorni A., Righini G.
Optimization techniques for a dial-a-ride transportation system in urban environment
Report 93.051, Dipartimento di Elettronica e Informazione, Politecnico di Milano, presented at the VIth Workshop on Public Transport, Lisbon 1993.
[4] Cooper L.
Heuristic methods for location-allocation problems
SIAM Review 6 [37-53], 1964
[5] Liaw C.F., White C.C., Bander J.
A decision support system for the bimodal dial-a-ride problem
IEEE Transactions on Systems, Man and Cybernetics Part A: Systems and
Humans 26(5) [552-565], 1996
[6] Maoli F., Righini G.
An annealing approach to multiresource allocation problems in Euclidean
spaces
Location Science 2 [205-222], 1994
[7] Maranzana F.E.
On the location of supply points to minimize transport costs
Operations Research Quarterly 15 [261-270], 1964
[8] Righini G.
Annealing algorithms for multisource absolute location problems on graph
Computational Optimization and Applications 7 [325-337], 1997
[9] Righini G.
Documentazione del programma DARIA - versione 1.0
Note del Polo - Rapporti Interni, 1999, Polo Didattico e di Ricerca di Crema,
Universita degli Studi di Milano. [in Italian]
[10] Righini G.
Shortest paths without U-turns
Note del Polo - Ricerca 9, 1998, Polo Didattico e di Ricerca di Crema, Universita degli Studi di Milano.
13

[11] Righini G.
Bidirectional Dijkstra's algorithm
Note del Polo - Ricerca 14, 1999, Polo Didattico e di Ricerca di Crema, Universita degli Studi di Milano.
[12] Ruland K.S., Rodin E.Y.
The pickup and delivery problem - Faces and Branch-and-Cut algorithm
Computers and Mathematics with Applications 33(12) [1-13], 1997
[13] Solomon M.M., Desrosiers J.
Time window constrained routing and scheduling problems
Transportation Science 22(1) [1-13], 1988
[14] Uchimura K., Saitoh T., Takahashi H.
The dial-a-ride problem in a public transit system
Electronics and Communications in Japan, Part III: Fundamental Electronic
Science 82(7) [30-38], 1999

14

You might also like