1 s2.0 0377221794E0349G Main
1 s2.0 0377221794E0349G Main
JOURNAL
OF OPERATIONAL
RESEARCH
ELSEVIER European Journal of Operational Research 83 (1995) 154-166
Abstract
In this paper the shortest path problem in a time depending transit network is discussed. A usual approach in
public transport is to compute the shortest path for every possible starting time separately by the use of a modified
Dijkstra procedure. Here a label correcting method is used to calculate the desired transit function for all starting
times with one path search procedure. The methods discussed in the general theory of algebraic path problems are
not efficient for the case that we only want to have the transit function between two specific vertices. We generalize
AI search techniques to get a more efficient one-to-one method.
1. Introduction
In the last few years public traffic companies have paid a lot of attention to automatize the passenger
information, especially for the problem to find the time shortest route between two specific stations s
and t. This is a shortest path problem where the arc length (or costs) are time depending functions, i.e.
e
for every arc u >v linking the stations u and v the transfer time is depending on that point of time
the passenger enters vertex u. Now, the solution is a transfer function which gives for any starting time
the earliest arrival at t. For a fixed starting time at the origin vertex s this problem can be solved by an
adoption of the well known Dijkstra algorithm (see, e.g. [10,6]). In this way, the complete transit function
can be calculated by applying this method for all possible starting times, separately.
Let us now discuss how this problem, specifically addressed to public transport is treated in practice.
The passenger information system used by the German railway companies is based on a method
developed by Miiller. The resulting algorithm called ' A R I A D N E ' (for a brief overview of the complete
method compare [1]) calculates the solution in two stages: In the first part a set of convenient routes
from the original station to the destination station are calculated. This computation is independent from
the actual timetable; it depends on whether the stations are directly served by a railway line or on the
minimal number of necessary transfers between different lines to reach the goal vertex. Miiller (see [9])
models this problem with hierarchical graphs and applies a bidirectional search. By the use of the actual
timetable the second part of A R I A D N E selects from all generated routes the best one with respect to a
given starting time.
Tulp and Sikl6ssy [12] presented an algorithm for a passenger information system which is used by the
Dutch railway company. Their method joins the route search and the time search in one proceeding.
They use a network model, called discrete dynamic network,ewhere t h e time depending arc costs are
coded by a function CON. Depending on two adjacent arcs ~v ~, this function gives the arising
waiting time when entering v with arc e 1 and leaving v along e 2. Note, that every individual train is
represented by one arc. By the use of a modified Dijkstra procedure for every desired starting time the
time shortest route is calculated.
In order to speed up the computation time Tulp and Sikl6ssy as well as Miiller improved their
algorithms by incorporating heuristic information into the path search method. An underestimate for the
costs from vertex v to the goal vertex t is used to guide the path search. For ordinary shortest paths
problems with real-valued arc lengths this idea has already been applied by Hart, Nilsson and Raphael
[7].
At [12] the travel time is underestimated by dividing the geometric distance from v to t by the highest
possible speed of all trains. For the route construction Mihller uses a heuristic function derived from the
hierarchical graph structure to estimate the number of line transfers.
To calculate the earliest arrival time for every departure time separately could be inefficient, if the
number of possible starting times is large. This approach will definitely fail, if we are concerned with
continuous transit functions Tu~ (see, e.g. [10]), which of course do not arise in public transport. For this
case it will be more efficient to compute the transit function with one more complex path search. The
main difficulty for algorithms dealing with such problems arises from the fact that the arc weights are
now functions in time. As pointed out in [6] the treatment of such problems can be done within the
framework of the general theory of algebraic path problems. There one-to-all algorithms are discussed,
which perform iteration steps until the connection from s to all other vertices can not be improved any
more. If we only want to have the transfer function from one origin s to a specific destination vertex t
this procedure will not be efficient, since a lot of useless computations has to be performed.
We present a new one-to-one algorithm, which combines the ideas of the H a r t - N i l s s o n - R a p h a e l
approach (see [7]) to use underestimates and the functional approach discussed in general algebraic path
theory.
The paper is organized as follows: In the first section we start with a formal framework for the
mathematical treatment of transit functions and apply well known ideas from algebraic path theory to
solve the one-to-all problem. By the use of underestimates Section 3 presents a new algorithm to solve
one-to-one problems more efficiently. Section 4 contains a representation of discrete transit functions
and algorithms to perform the needed operations. In Section 5 we discuss ideas to represent the practical
problem by a transit network and illustrate the introduced one-to-one algorithm by a numerical example.
Finally, Section 6 reports empirical results for the saved computation effort of the one-to-one label
method in competition with the classical one-to-all label correcting algorithm.
The reader who is interested in the general theory of algebraic path problems is referred to [2,3,6,13].
A train service between adjacent stations can be described by a transit function f , where f(~') is the
earliest possible arrival assuming that the passenger can depart at time ~-.
Fig. 1 models a transit function where 3 trains with departure/arrival times (dk, a k) ( k = 1 , . . . , 3) are
running. Since we are only interested in connections with minimal travel time, we may assume such
mappings to be increasing. Obviously every transit function fulfills f(~') > -r.
156 142Nachtigall/ European Journal of Operational Research 83 (1995) 154-166
arrival
id
a3-
-- (- •
a2
aI-
/ dl d2 d3
F i g . 1. T r a n s i t f u n c t i o n .
To describe this transit function in m o r e detail consider the u p p e r extended set ~ := N to {m} with
largest element ~. Let 3 - : = {f:R--+ ~ l f increasing and f ( ~ ' ) > r} be equipped with the following
operations:
min(f,g):=~r~min(f(~.),g(r)); Y'g:ir~g(f(r)).
min denotes the point-by-point minimum of functions and • is the usual composition of functions. The
structure (9-, m i n , . , % 1) is an ordered semi-ring in the sense of U. Zirnmermann [13, p. 85], where the
'zero element' ~ (i.e. min(% f ) = f ) is given by the mapping ~ ( r ) := ~. This represents the situation that
no vehicles are running. The multiplicative identity 1 corresponds with the identical mapping. In the
following we assume 9 - to be ordered by f < _ g ~ , f ( ~ ) < g ( r ) for all r ~ ~. Note, that f < g always
implies f . h ___g . h.
Let us now consider a directed graph W = (V, A, (Y,o)¢,,~)~A) with vertex set V and arc set A where
every arc (u, v) ~ A is weighted by a transit function Yu~ ~ 9-. For the following we assume W to have N
vertices.
For a path described by a sequence of adjacent vertices p = (Vo, v~ .... , Vn), the transit function for
the earliest arrival in un depending on the starting time r in v 0 is given by the composition ~ ( p ) ( . r ) =
(Y~o,~l . . . . . y v , _ ~ ) ( r ) of all transit functions associated with the arcs of p. The earliest arrival at the
terminal vertex t with departure time r in the origin vertex s is given by
:g
"/=,( r ) := min 9(p)(r)
p path from s to t
The one-to-all problem is the task to calculate the shortest path weight from a fixed origin vertex s ~ V
to all other vertices v ~ V of the network.
By p~[l we denote the set of all paths from i to j with at most k arcs and Pi* is the set of all paths
from i to j. For every vertex v ~ V the trivial p a t h ( v ) ~ p~Ol is always associated with the weight
~ ( ( v >) = 1.
Note, that the weight Y*v can not be associated with one particular shortest path. In general, for
different points of time r, r' there will be different paths p, p ' e P * with y * v ( r ) = ~/(pXr) and
y*v(r') = ~(p'Xr'). Assume that the one-to-all solution is given by the vertex labels ~ = y*~, where y*v
denotes the earliest arrival in v when starting in s at time r. T h e n an optimal path from s to t for the
K. Nachtigall / European Journal of Operational Research 83 (1995) 154-166 157
departure t i m e ~- with earliest arrival time ~t(~') can be constructed backwards: Start with v o := t and
i = 0. While v i 4= s find u ~ {x ](x, Ui) E E } with (~,y~oi)(~') = y~oi(~u('r)) = ~(~'). Let i *- i + 1 and put
v i := u. For v i = s the desired p a t h is given by p = ( s = v i . . . . , v o = t ), i.e. it holds ~ ( p ) ( r ) = ~ t ( r ) = y*(.r).
By definition of 9-- we have Yu~ > 1. Thus, every cycle c fulfills ~ ( c ) > 1 or ~(c)(~-)_> ~" for all ~-.
Hence, for the search of the shortest path weight it is sufficient to investigate only elementary paths
which contain at most N - 1 arcs. This well known result is a special case of the general concept of
stability investigated in algebraic p a t h theory. The minimal n u m b e r k such that m i n , ~ e!~W(p) = y*~ for
all v ~ V holds is said to be the stability index K of the transit network ~' with respect to the origin
vertex s.
Label correcting algorithms solve the one-to-all problem iteratively: With every vertex v we associate
a label Ao. At the beginning these labels are initialized in such a way that Ao is a n u p p e r bound o f ~*~,
i.e. V~- : A~(~-) > y*~(r). The labels are improved by the triple operation A~ ~ min(Ao, A,- ~,o) for some
intermediate vertex u. In order to explore all paths, the iteration is p e r f o r m e d until all Ao are stable.
'Scanning a vertex u' means to improve the vertex weight Ao of all neighbors v ~ {v I(u, v) ~ A } by
applying the triple operation. It is well known that the computational effort can be reduced, if at every
iteration step only those vertices with improved labels are scanned. For this purpose the following
formulation contains a list c~ where all vertices with improved labels are collected, The following
algorithm can be regarded as a G a u s s - S e i d e l method which is discussed in algebraic p a t h theory.
T h e proof of correctness is straightforward and can essentially be derived from the well known fact,
that all paths in Ps[~] have b e e n explored after performing iteration step k, i.e. we have Au < min{~(p) [ p
P~[~]}. D u e to the above discussion we only have to investigate elementary paths with at most K arcs,
i.e. all paths with m o r e than K arcs will no m o r e i m p r o v e any vertex label, Thus, this algorithm stops
after at most K steps with an empty list .~. The performance of this algorithm needs the following
operations on functions:
• function assignment f * - g;
• minimum of two functions m i n ( f , g);
• composition of functions f g ;
• comparison of functions f < g.
If N is the n u m b e r of vertices in the transit net if, then the one-to-all label correcting method has a
functional complexity of order O ( N 2 K ) , i.e. there is a constant a such that the n u m b e r of performed
operations on functions is b o u n d e d by a " N 2 K .
For the following we assume a fixed origin vertex s and a fixed destination vertex t and the problem
to find the one-to-one solution 3'*.
158 I~ Nachtigall / European Journal of Operational Research 83 (1995) 154-166
Consider a heuristic lower bound 7r, for the path weight Y,*t, i.e. ~-, _< Y*r If we have v ~ Z with
A:tr, _> At, then it will not be reasonable to scan this vertex, since for any path p ~ P ~ holds h,~(p)_>
Av'tr v > A t. Thus, scanning vertex v will not improve the present weight A t. This motivates the idea to
scan only vertices fulfilling A,~'~ ~ At, because only then we can expect an improvement. Moreover, we
do not have to keep v in mind, since v can only give a part to the solution 3'* if the shortest path weight
from s to v can be improved later on, i.e. v is taken into the list ~ again at some later step k'>_ k.
It should be mentioned that label correcting methods with scanning only promising candidates has
been treated in the literature (see e.g. [4,5,8]). As pointed out by Shier and Witzgall [11] such a
procedure can have an exponential number of iterations steps.
In the following algorithm we denote by K the stability index of the transit net ff with respect to the
source vertex s. If the exact value K is not available, take K = N - 1 ( N = number of vertices). For every
vertex v we assume ~-, to be a lower bound on the path weight 3',*t- The list ~ collects all vertices whose
labels have been improved and which are not scanned themselves during the same iteration step. By
S a _ ~ we denote the list of all vertices which are actually scanned.
3.2. Proof of correctness. Note that the numbering of the iteration steps starts with k = 0. For every
iteration step k let h(/k) be the present label of vertex i at the beginning of Step II. S :(k), ~,(k) be the lists
defined in Step II.A. This means that ~(k+l) is the collection of all vertices whose vertex labels are
improved during step k and which will not be scanned themselves after the label improvement during
step k (see Step II.C.2.a.(ii)).
Let us assume that the above algorithms stops after n iteration steps, i.e. we have either n = K or for
the case n < K we have an empty list ~'(").
By definition of the stability index the desired path weight is given by y* = min{,-/(p) I p ~ Ps[ff]}. Thus,
it is sufficient to prove for any path p = ( s = v o. . . . . Vr= t ) with r < K arcs that h(tn)< ~(p). Now,
consider such a path p. The following statement will be useful:
If p contains a vertex v: with the property A(~)_<~ ( ( v 0. . . . . v:)) and v: ~ ~ k - S : k at some iteration
step k, then
A(tn)<A(k)<A(k)~
-- t --
- <~((v0,
tJj "Vj .
. . ,.v : ) .) ~ / .( ( v j , '
vr})=~(p) (3.1)
Fig. 2. Scan-list A.
vj is the last vertex of p such that the partial p a t h f r o m s to vj has b e e n explored by the algorithm
after p e r f o r m i n g iteration step j. This index j is well defined, since A(°)= 1 = ~ ( ( v 0 ) ) . F o r j = r we
are d o n e with A(tn) _< A(f) _< ~ ( p ) . L e t j < r. Consider m .'= min{0 _< k _<j I~h(k.) = A(~!}. V e r t e x vy will not
be s c a n n e d during step m, since otherwise holds h ( ~ ] ) _< A ~ + ( ) _ h(~'~)y~j~J1 _< ~(~ v 0 , . . . , v j+ 1>)which
contradicts the definition of j.
F o r m _> 1 vertex vj gets an i m p r o v e d label during step m - 1, i.e. vj ~ ~m" m = 0 is only possible for
vj = v 0 ~ ~o- A l t o g e t h e r we conclude vj ~ ~m --'Y~m" According to p r o p e r t y (3.1) we are done.
2. T h e algorithm stops with an e m p t y list ~ and n < K. Now, consider
j:=max(O<i<r[A(~i)<T(Vo,...,vi>))
F o r j = r we are d o n e again. F o r j < r assume that vj. is e q u i p p e d with this label during an iteration
step k. This m e a n s either vj = v 0 ~ ~0 or for k _> 1 holds A(~-1) > h (k)~ and t h e r e f o r e vj ~ ~k. T o g e t h e r
with k _< n < K we see, that the algorithm has to p e r f o r m one m o r e iteration step. Similar a r g u m e n t s
as above show, that the maximal choice of j yields vj ~ ~k --~C~k" H e n c e , p r o p e r t y (3.1) holds and we
are done. []
N o t e that the worst case b e h a v i o r of this m e t h o d equals that of the one-to-all m e t h o d , i.e. O ( N 2 K ) .
L e t us n o w discuss the f u n d a m e n t a l working of the o n e - t o - o n e procedure:
A s long as A t = ~ holds, the p r o c e d u r e is a usual breadth-first m e t h o d , w h e r e at iteration step k the
list S p = ~ is a frontier consisting of the terminal vertices of paths with at most k arcs with initial vertex
s (see Fig. 2).
If this frontier reaches the t e r m i n a l (i.e. A t ~ ~), t h e n the lower b o u n d has the effect, that only a
certain n e i g h b o r h o o d of t ( d e p e n d i n g on the quality of "Jr) has to be scanned in the future (see Fig. 3).
T h e s e considerations m a k e clear that the saving effect of the b o u n d ~- d e p e n d s on the arc-distance
A(s, t) ( = m i n i m a l n u m b e r of arcs of all paths f r o m s to t)
A n y collection 7r = (~rv) v ~ v of functions ~rv ~ 9 - fulfilling the consistency hypothesis
Fig. 3. Scan-list B.
160 K. Nachtigall/European Journal of Operational Research 83 (1995) 154-166
arrival
a3
az
al
/ depaaure
/
Fig. 4. Underestimate.
leads to a suitable lower b o u n d for Y't: F o r every p a t h p -- (v, u1, ...,Urn, t ) ~ P * we have
In public transport transit functions are discrete. Since the trains are usually r u n n i n g daily we m a y
assume that the transit functions are periodic with f ( x + d a y ) = f ( x ) + d a y , F o r all calculations we use
the time unit ' m i n u t e ' such that d a y = 1440 holds. H e n c e , any transit function f can be described by an
increasing list L f = [(dl, a l ) , . . . , ( d n, a,)] of all d e p a r t u r e / a r r i v a l points o f one day, i.e. 0 < d I < • • • <
d n < d a y and the c o r r e s p o n d i n g arrivals a 1 < • • • < a n. Since we are only interested in time shortest
connections, we m a y assume that the last train of one day will never arrive later than the first train of the
next day, i.e. it holds 0 _< a n - a 1 < d a y .
T h e earliest arrival f ( r ) for an arbitrary time point ~" can be calculated as follows. Z d e n o t e s the set of
all integers.
If some trains are cancelled on specific days, we have to use different transit functions for these days.
Note, that this will cause a more difficult procedure to evaluate f ( r ) . Moreover this requires a more
sophisticated approach to perform the composition (see 4.2).
The underestimates discussed in the previous section are of the type ~-(z) = ~- + ~-' which is formally a
1-minute periodic function. Of course, such transit functions have n o t been implemented by a list of time
points (i, 7r' + i)(i = 0 , . . . , 1439). The composition,of L f = [(d 1, a l ) , . . . , ( d n, an)] with such a transit
function 7r is obviously given by Lf.~ = [ ( d l , a I + ~- ) , . . ' , ( d n , a n + zr')].
For the following [ ] denotes the empty list and for two lists L1, L 2 we denote by L I & L z the usual
concatenation of lists. Furthermore let f and g be transit functions which are represented by the lists
L f = [(dl, a 1). . . . . (dn, an)] and L g = [(d~, a]) . . . . ,(d~, a~,)]. The minimum of f and g can be calculated
by:
4.1. Minimum
S t e p 1 . M : = [ ]; i, j ~ l
Step 2. While (i < n and j < k) do
a. If di < d ~ and ai < a ' j then M ~ M & [ ( d i , ai)] and i ~ i + 1.
b. If d i e d ~ and a i > a ' j then M~M&[(d~, a~.)] and j ~ j + 1.
c. I f d i < d~. a n d a i > a~ t h e n i ~ i + l.
d. I f d i > d ) and a i < a ~ then j~j+l.
Step 3. M represents r a i n ( f , g).
Note that we only have to run once through the list L g , if we keep the last index j in mind. Thus, the
complexity of the composition is also of order O(n + k).
162 K. Nachtigall/ European Journal of Operational Research 83 (1995) 154-166
In this section we will model the task to find the time shortest connections from an origin station S O
to a destination station S D in a railway system.
By a railway line we will understand a class of train services where all trains serve the same sequence
of stations. A passenger arriving at a station S (-~ S o, S o ) can either continue the journey with the same
train or can take a train of another line. In order to describe this internal transfer at every station we use
the following g r a p h model:
Consider at first a station S 4: So, S D. For any line L passing S we define an arrival vertex and a
departure-vertex. Arrival (departure) vertices will not be produced if L starts (terminates) at S,
respectively. All vertices of the line are l i n k e d by run-arcs and stop-arcs which are weighted with the
resulting transit function describing the connections between adjacent stations or the stopping times of
all trains of this line.
Every arrival vertex of a line L is linked with all departure vertices of the lines L' 4: L. Those
change-arcs are weighted by the transit function f ( t ) .'= t + 6, where 6 is that amount of time a passenger
needs to change platforms etc.
Thus, each station S is replaced by a complete bipartite graph, where the n u m b e r of vertices on each
part equals the n u m b e r of lines passing S (see Fig. 5).
For the origin station we only define departure vertices of all lines serving S o and an entrance vertex
s which is linked with all those departure vertices. The destination station contains only arrival vertices
and an exit vertex t connected with all arrival vertices. All in this way generated arcs are weighted with
the neutral transfer function 1. F u r t h e r m o r e we may cancel all arcs which are entering departure
vertices iri S O or which are leaving arrival vertices in S o.
The resulting transit network ~W= (V, E, (Yuv)) with origin vertex s and destination vertex t obviously
models the task to find the time shortest connection from S o to S D. Note, that the timetable is given by
the arc weights Yuv of all run-arcs and stop-arcs.
W e will illustrate this concept and the working for the one-to-one algorithm of Section 3 by the
following example.
5.1. Example. Consider five stations A, B, C, D, E and four railway lines L 1 , . . . , L4 as given in Fig. 6.
For the following small schedule shown in Table 1 we consider the problem to find the time shortest
connection from station A to E. The resulting transit network is given by Fig. 7. The numbers associated
with the arcs are lower bounds on the running times (or stopping times) of all trains on this arc. For
change arcs we used always a minimal transfer time of 6 = 5 min.
Formally, during iteration S t e p 0 the one-to-one method produced neutral transit functions at all
departure vertices at A. At iteration Step 4 the exit vertex at E is reached for the first time. The
line 1 .,.
chang~/~
line 2 /
station
Ll-.q.- ~ D C . . . . B . . . . A"'-
\
\
\
\
\
E
L3 IA
Fig. 6. Line configuration.
D C B A
Llarr.~Lldep~5 Llarr ~ Lldep~Llarr ~ [ 27 L! dep
L2 dep~ e n ~ a n c e
exit
E
Fig. 7. Transit network.
Table 1
Timetable
Table 2
Node labeling of the one-to-one algorithm
k node actual node label *
0 A (dep L2) 1 +
A (dep L1) 1 +
1 B (art L1) [(6: 05, 6 : 35); (8: 08, 8 : 35)] +
B (arr L2) [(7:13, 7: 43), (9 : 13, 9: 43)] +
2 B (dep L1) [(6 : 05, 6 : 38); (7:13, 7: 48); (8: 08, 8: 38); (9 : 13, 9: 48)] +
B (dep L2) [(6: 05, 6: 40); (7: 13, 7 : 45); (8: 08, 8 : 40); (9:13, 9: 45)] +
3 C (arr L1) [(6: 05, 7: 40); (8 : 08, 9 : 44)] +
E (arr L2) [(7:13, 8 : 18)]; (9: 13, 10:18)] +
4 C (dep L1) [(6: 05, 7: 46); (8 : 08, 9 : 46)] +
C (dep L3) [(6: 05, 7: 45); (8: 08, 9: 49)] +
E (exit) [(7:13, 8 : 18)]; (9:13, 10:18)]
5 D (arr L1) [(6: 05, 8 : 20); (8: 08, 10: 20)]
E (arr L3) [(6:05, 8:10); (8:08, 11 : 10)] +
6 E (Exit) [(6:05, 8:10); (7:13, 8:18); (8: 08, 11 : 10); (9:13, 10:18)]
c o r r e s p o n d i n g label At is given by the list [(7 : 13, 8 : 18)]; (9 : 13, 10 : 18)] which is the direct service o f line
L2. A t Step 5 the arrival vertex o f line L1 at D has b e e n e q u i p p e d with the transit function h , given by
the list L~, := [(6 : 05, 8 : 20); (8 : 08, 10 : 20)]( = direct service of line L1). This vertex will not be explored
further on, b e c a u s e the lower b o u n d ~-', = 65 f yields L~,~.o = [(6 : 05, 9 : 25); (8 : 08, 11 : 25)] and therefore
A t <_ AvTrv.
T h e complete behavior of the algorithm is p r e s e n t e d by Table 2. F o r every iteration step, all vertices
with i m p r o v e d labels are given. C o l u m n (*) indicates by ( + ) or ( - ) , w h e t h e r this vertex is explored (i.e.
c o n t a i n e d in S : ) or it is c o n t a i n e d in ~ - S : .
6. Computational results
Iq ia . u a b u r g
.... brue~k ~ I ~ ~
-.oo // i
Fig. 8. IC/IR-Net.
t h a t t h e n e t w o r k c o n t a i n s s t o p - a r c s a n d c h a n g e - a r c s , such t h a t ½(A + 1) is t h e n u m b e r o f s t a t i o n s in t h e
path.
Table 3 reports the most interesting performance parameters. #Iter denotes the number of iteration
steps. # O p is t h e n u m b e r all p e r f o r m e d o p e r a t i o n s o n t r a n s f e r functions. T h e n u m b e r o f a d d i t i o n a l
c o m p a r i s o n s to c h e c k AuTru > A t is given in b r a c k e t s . T h e C P U t i m e s (in ms) a r e split into t h e t i m e for
i n i t i a l i z a t i o n (see c o l u m n init) to c o m p u t e ~r a n d t h e e s s e n t i a l t i m e for t h e o n e - t o - o n e i t e r a t i o n (see
c o l u m n iterat).
A l l given d a t a a r e a v e r a g e s o v e r t h e n u m b e r o f instances, given in c o l u m n #Inst.
T h e r e s u l t s s u p p o r t t h e t h e o r e t i c a l c o n s i d e r a t i o n t h a t t h e c o m p u t a t i o n a l effort o f ~r - L C is i n c r e a s i n g
w i t h t h e n u m b e r A.
Table 3
CPU times
A #Inst. #Iter. #Op. CPU time (ms)
init iferat sum
1 100 5 60(+35) 223 66 289
3 164 9 196 (+ 84) 216 214 430
5 194 12 378 (+ 117) 221 413 634
7 192 14 595 (+ 140) 211 640 851
9 176 16 781 (+150) 216 846 1062
11 156 18 923 (+152) 222 985 1207
13 142 19 1035 (+155) 216 1089 1305
15 100 20 1126 (+156) 223 1168 1391
17 54 21 1214 (+162) 228 1216 1444
19 32 23 1283 (+137) 227 1265 1492
21 16 25 1375 (+88) 250 1247 1497
23 6 26 1502 (+91) 187 1408 1595
/
T h e n we used the LC algorithm to solve for every city the one-to-all problem. This methods needs on
the average 1623 operations on functions with small variations for different sources (minimum 1550 and
maximum 1649). The C P U times are on average 1729 ms (minimum 1566 ms and maximum 1809 ms).
Acknowledgements
The author would like to thank the referees for their helpful comments.
References
[1] Baumann, N., and Schmidt, R., "Buxtehude-Garmisch in 6 Sekunden", Die Bundesbahn, 1988, 929-931.
[2] Carre, B., Graphs and Networks, Oxford, 1979.
[3] Cuninghame-Green, R., Minimax-algebra, No. 166 in Lecture Notes in Economics and Mathematical Systems, Springer-Verlag,
Berlin, New York, 1979,
[4] Glover, F., Klingman, D., and Phillips, N., "A new polynomially bounded shortest path algorithm", Operations Research 33
(1985) 65-73.
[5] Goldfarb, D., Hao, J., and Kai, S., "Shortest path algorithms using dynamic breadth-first search", Networks 21 (1991) 29-50.
[6] Gondran, M., and Minoux, M., Graphs and Algorithms, Wiley, New York, 1984.
[7] Hart, P., Nilsson, H., and Raphael, B., "A formal basis for the heuristic determination of minimum cost paths", IEEE
Transactions on Systems and Cybernetics (1968) 100-107.
[8] Martins, E., "On a multicriteria shortest path problem", European Journal of Operation Research (1984) 23-245.
[9] Miiller, D., "Symmetric connection problems and their solution by bidirectional search", International Journal of Computer
Mathematics 37 (1990) 137-152.
[10] Orda, A., and Rom, R., "Shortest-path and minimum-delay algorithms in networks with time-dependent edge-length", Journal
of the ACM 37 (1990) 607-625.
[11] Shier, D., and Witzgall, C., "Properties of labeling methods for determining shortest path trees", Journal of Research of the
National Bureau of Standards (1981) 317-330.
[12] Tulp, E., and Sild6ssy, L., "Searching time-table networks", AI EDAM 5 (1991) 189-198.
[13] Zimmermann, U., Linear and Combinatorical Optimization in Ordered Algebraic Structures, No. 10 in Annals of Discrete
Mathematics, North-Holland, Amsterdam, 1981.