You are on page 1of 16

Asia-Pacic Journal of Operational Research Vol. 27, No. 6 (2010) 677691 c World Scientic Publishing Co.

& Operational Research Society of Singapore DOI: 10.1142/S0217595910002946

SHORTEST PATH SIMPLEX ALGORITHM WITH A MULTIPLE PIVOT RULE: A COMPARATIVE STUDY

A. SEDENO-NODA and C. GONZALEZ-MART IN Departamento de Estad stica Investigacin Operativa y Computacin (DEIOC) o o Universidad de La Laguna 38205- La Laguna, Tenerife (Espaa) n Received 16 May 2008 Accepted 13 June 2009 This paper introduces a new multiple pivot shortest path simplex method by choosing a subset of non-basic arcs to simultaneously enter into the basis. It is shown that the proposed shortest path simplex method requires O(n) multiple pivots and its running time is O(nm). Results from a computational study comparing the proposed method from previously known methods are reported. The experimental show that the proposed rule is more ecient than the considered shortest path simplex pivot rules. Keywords: Shortest path problem; simplex shortest path algorithms; multiple pivot rule; experimental analysis.

1. Introduction The shortest path (SP) problem consists of nding shortest length paths from a source node to all other nodes or to detect a cycle of negative length in a directed network with arbitrary lengths. There are many important real cases where this problem appears, including: applications in route generation for delivery operations, and even in map and route algorithms within applications such as Google. There are numerous algorithms to solve it (see, for example, Ahuja et al., 1993). The Bellman-Ford-Moore (Bellman, 1958; Ford, 1956; and Moore, 1957) labelcorrecting algorithm achieves the best strongly polynomial running time of O(nm) for solving the SP problem on a network of n nodes and m arcs. There are also several variants of the shortest path simplex (SPS) algorithm (Dantzig, 1957; Minty, 1958; Cunningham, 1979; Orlin, 1985; Akgl, 1986; Goldfarb et al., 1990a, 1990b; u Goldfarb and Jin, 1999; Sedeo-Noda and Gonzlez-Mart 2007). In particun a n, lar, Goldfarb and Jin, 1999; introduce the rst SPS algorithm running in O(nm) time. Recently, in Sede o-Noda and Gonzlez-Mart (2010) obtain an O(nm) time n a n algorithm using the idea of pseudo permanent labels.
677

678

A. Sedeo-Noda & C. Gonzlez-Mart n a n

Given the simplicity of the bases for the SP problem in the SPS algorithm, it is possible to simultaneously enter several non-basic arcs into the basis. This operation is termed a multiple pivot. This idea is essential to develop new algorithms for the K best shortest path and multiobjective shortest path problems and this notion is formalized for the SPS algorithm in this paper. Moreover, this concept can be adapted with major or minor eorts to others combinatorial optimization problems like are the Assignment problem, Minimum Spanning Tree problem, etc. Section 2 describes the linear programming formulation of the SP problem and the property related with the concept of the multiple pivot is introduced. This property is used to design a generic SPS algorithm with multiple pivots. In Sec. 3, a new multiple pivot simplex rule to devise an SPS algorithm that makes O(n) multiple pivots and runs in O(nm) time is given. In Sec. 4, a comparison of the computer results of our method with the methods of Goldfarb and Jin (1999) and Sedeo-Noda n and Gonzlez-Mart (2010) are presented, along with some comments. Finally, in a n Sec. 5, a discussion of the signicance of the results is given. 2. Linear Programming Formulation and a Generic SPS Algorithm with Multiple Pivots Given a directed network G = (V, A), let V = {1, . . . , n} be the set of n nodes and let A be the set of m arcs. The node adjacency set of any node i V is dened as = {j V |(j, i) A}. For each arc (i, j) A, let cij R be its length. The i length of a directed path is the sum of the arc lengths in the path. The network has a distinguished node s (the source node). The SP problem consists of nding a shortest length path from node s to every non-source node i V \{s} or in determining a negative cycle, that is, a directed cycle of negative length. If a ow xij is associated with each arc (i, j), and a supply bs = (n 1) with node s, and demands bi = 1 for all other nodes i = s, then the following linear programming problem represents the SP problem (see Ahuja et al., 1993): Minimize c(x) =
(i,j)A

cij xij

(1)

subject to xij
{j:(i,j)A} {j:(j,i)A}

xji = bi ,

i V

(2) (3)

xij 0,

(i, j) A

Let X be the convex polyhedron dened by constraints (2)(3). The above problem is a special case of the minimum cost network ow (MCNF) problem. Any basic solution of the MCNF problem is a spanning tree T A of G satisfying xij > 0, (i, j) T . Therefore, any simplex algorithm will never perform degenerate pivots for the SP problem. In addition, all feasible spanning trees are trees rooted at node ssuch that the unique path in the tree from root node s to every other node is a directed path. We refer to these spanning trees as directed out-spanning trees.

Shortest Path Simplex Algorithm with a Multiple Pivot Rule

679

It is well-known that any feasible solution of the SP problem is associated with only one directed out-spanning tree (see, for example, Ahuja et al., 1993; Goldfarb et al., 1990a). In the rest of paper, a directed out-spanning tree is referred to simply as a tree (or basis tree). In this kind of tree, any node i V \{s} has only one node predecessor in the tree (predi (T )), that is, the in-degree of any non-root node in a directed out-spanning tree is one. Also, we dene Ti+ = {j V |(i, j) T }. Let Di (T ) be the set of descendants of node i in the tree T , that is, the set of nodes in the subtree rooted at i, including node i. Note that |Di (T )| 1. Let C(T ) = (i,j)T cij xij be the value of the objective function associated with the tree T . The distance labels corresponding to a tree T are obtained from the system of equations cij + di (T ) dj (T ) = 0 (i, j) T by setting ds (T ) = 0. The distance label of node i, di (T ), represents the tree path length from node s to node i. Thus, given a tree T , we dene the reduced cost cij (T ) = cij + di (T ) dj (T ) (i, j) A. In a simplex pivot, an arc (i, j) A\T satisfying i Dj (T ) with reduced / cost cij (T ) < 0 is added to T and (predj (T ), j) is deleted from T yielding a new basis tree T . Note that if i Dj (T ) then T {(i, j)} contains a negative directed cycle of length cij (T ) and the SPS algorithm stops. Thus, the simplex algorithm for the SP problem need not maintain arc ows x(xij = |Dj (T )| (i, j) T and C(T ) = (i,j)T cij |Dj (T )|). The distance labels in T are updated in the following c way: dk (T ) = dk (T )+ij (T ) k Dj (T ). Furthermore, the objective function value is C(T ) = C(T ) + cij (T )|Dj (T )|. The operations of updating the set of descendents of all nodes as well as the detection of a negative cycle can be performed using several tree indices (see for example Ahuja et al., 1993; Dial et al., 1979). Assumption 1. The network contains a directed path from source node s to any non-source node i V . When this condition is not true, we add articial arcs (s, i) with innite length, for any non-source node i V . Note that these arcs appear in the optimal solution if and only if the SP problem instance does not have a solution. We now present denition 1 and property 1 from Goldfarb et al. (1990a). These results are stated without proof: Denition 1. Given a tree T , a node i V is said to be permanently labeled in T if di (T ) = di (T ). Property 1. If i is permanently labeled in T but j is not, and (i, j) T , then: (1) cij (T ) < 0 and (2) Moreover, if G has no negative cycles then cij (T ) ckj (T ) for all k j . Property 1 means that if a node j V is not permanently labeled in T and if the arc (i, j) T and if G has not negative cycles, then cij (T ) = min{k,j (T )|k } < 0. Consider the following denitions and results dealing c j with the concept of adjacency between trees: Denition 2. Two trees T and T are adjacent if and only if both have n 2 arcs in common, that is, both trees dier in only one arc.

680

A. Sedeo-Noda & C. Gonzlez-Mart n a n

The previous denition implies that the tree T can be reached from the tree T by a simplex pivot where the entering arc is just the arc (i, j) T \T and (p, q) T \T is the leaving arc. Moreover, let T and T be two trees that dier in p < n arcs. Then the following property holds: Proposition 1. If T and T dier in p < n arcs, where (i1 , j1 ), . . . , (ip , jp ) are the arcs in T that are not in T, then: (1) E = {(i1 , j1 ), . . . , (ip , jp )} does not contain a directed cycle; (2) ju = jv holds for all u, v {1, . . . , p} with u = v; (3) These arcs dene the smallest simplex pivot sequence to obtain T from T, and the order in which these simplex pivots are performed is irrelevant. Proof. (1) Since T is a directed spanning tree containing the arcs (i1 , j1 ), . . . , (ip , jp ), these arcs can not contain a directed cycle. (2) Since in all directed spanning trees, every node i V has only one node predecessor, in the set of arcs (i1 , j1 ), . . . , (ip , jp ) belonging to T two arcs does not exist such that ju = jv for all u, v {1, . . . , p} with u = v, otherwise T is not a tree. (3) Note that, to obtain T from T , the p arcs (i1 , j1 ), . . . , (ip , jp ) must be entered in the tree T . Furthermore, in each one of these non-degenerate simplex pivots, when the arc (ir , jr ) enters into the tree, the leaving arc is the arc (predjr (T ), jr ). We know from property (2) of this proposition that simplex pivots with two or more of the above entering arcs do not imply that the leaving arc will be the same. For this reason, the set of the minimum number of arcs to obtain T from T is exactly the set of arcs {(i1 , j1 ), . . . , (ip , jp )}, because additional exchanges to build up T from T are not necessary. In addition, T is always obtained independently of the order in which the simplex pivots are performed. Proposition 1 indicates that to obtain an optimal tree T from any tree T , we must choose a set of p < n arcs, (i1 , j1 ), . . . , (ip , jp ), satisfying ju = jv for all u, v {1, . . . , p} with u = v. But, what are the p < n arcs to enter into any tree T in order to obtain the optimal tree T ? The answer to this question requires the solution to the SP problem itself. Thus, any multiple pivot rule for the SPS algorithm must select a subset of non-tree arcs E A/T satisfying Proposition 1 and improving the objective function value C(T ). Since the set of trees is nite and the objective function of the SP problem is bounded when there are no negative length cycles in G, the next generic SPS algorithm for the SP problem with a simplex multiple pivot rule ends with an optimal tree T or identies a negative length cycle. Generic SPS with Multiple Pivot Algorithm; Let T be an initial feasible tree; Compute distance labels di (T ), i V ; While ((T is not optimal) and (there is no negative length cycle in G)) do Select a subset of non-tree arcs E A\T satisfying Property 1 improving C(T ); For all (i, j) E do T = T {(i, j)}\{(predj , j)}; Compute distance labels di (T ), i V ;

Shortest Path Simplex Algorithm with a Multiple Pivot Rule

681

In the above algorithm, the distance labels are updated once all of the non-tree arcs in E are entered in T . In the next section, a multiple pivot rule satisfying Proposition 1 is given. 3. A SPS Algorithm with O(n) Multiple Pivots The generic scheme of the last section emphasizes the importance of the selection of the set of non-tree arcs E. An alternative consist in using local information from the tree T , to investigate which p < n arcs satisfying Proposition 1 lead to the greatest decrease in the objective function value of the SP problem. An analysis of the value of objective function induced by a multiple pivot on tree T is required to identify this set of arcs. Let j1 , j2 , . . . , jn be an arbitrary order of the set of nodes. Dene (ik , jk ) = arg min{ijk (T )|i }, k {1, . . . , n}. For simplicity consider a multiple pivot c jk with the arcs {(i1 , j1 ), (i2 , j2 )} with j1 = j2 in tree T is made obtaining tree T . The question now is: when is it preferred to simultaneously perform both simplex pivots instead of exchanging only one arc of the last set? The answer is wherever the obtained tree making only one simplex pivot with the arc (i1 , j1 ) or with the arc (i2 , j2 ) has an objective function value greater than C(T ). To make the analysis, without a loss of generality, assume that j1 Dj2 (T ) (note that if j1 Dj2 (T ) / / then j2 Dj1 (T ) and we can interchange j1 by j2 and vice versa in the following arguments). Now, the objective function value of the tree T as a function of C(T ) must be considered. Take into account the following cases: / / Case (A) If j1 Dj2 (T ) and j1 Dj2 (T ) then the next subcases must be considered: / / (A1). j2 Dj1 (T ) and j2 Dj1 (T ) C(T ) = C(T ) + ci1 j1 (T )|Dj1 (T )| + ci2 j2 (T )|Dj2 (T )|

s j1 i1 i2 j2

Both simplex pivots are made when ci1 j1 (T ) < 0 and ci2 j2 (T ) < 0. (A2). j2 Dj1 (T ) and j2 Dj1 (T ) C(T ) = C(T ) + ci1 j1 (T )|Dj1 (T )| / + (i2 j2 (T ) ci1 j1 (T ))|Dj2 (T )| c

s j1 j2 i1 i2

682

A. Sedeo-Noda & C. Gonzlez-Mart n a n

Since Dj2 (T ) Dj1 (T ), both simplex pivots are made when ci1 j1 (T ) < 0 and ci2 j2 (T ) < ci1 j1 (T ) (A3). j2 Dj1 (T ) and j2 Dj1 (T ) / C(T ) = C(T ) + ci1 j1 (T )|Dj1 (T )| + (i2 j2 (T ) + ci1 j1 (T ))|Dj2 (T )| c

s j1 i2
Both simplex pivots are made when ci1 j1 (T ) < 0 and ci1 j1 (T ) + ci2 j2 (T ) < 0

i1

j2

(A4). j2 Dj1 (T ) and j2 Dj1 (T ) C(T ) = C(T ) + ci1 j1 (T )|Dj1 (T )| + ci2 j2 (T )|Dj2 (T )|

s j1 j2 i1 i2

Both simplex pivots are made when ci1 j1 (T ) < 0 and ci2 j2 (T ) < 0 Case (B). If j1 Dj2 (T ) and j1 Dj2 (T )(j2 Dj1 (T )) then, the following sub/ / cases must be considered: (B1). j2 Dj1 (T ) and j2 Dj1 (T ) / / C(T ) = C(T ) + ci2 j2 (T )|Dj2 (T )| + (i1 j1 (T ) c + ci2 j2 (T ))|Dj1 (T )|

s j1 i2 j2 i1
Both simplex pivots are made when ci2 j2 (T ) < 0 and ci1 j1 (T ) + ci1 j2 (T ) < 0

Shortest Path Simplex Algorithm with a Multiple Pivot Rule

683

(B2). j2 Dj1 (T ) and j2 Dj1 (T ) /

C(T ) = C(T ) ci1 j1 (T )|Dj2 (T )| +(i1 j1 (T ) + ci2 j2 (T ))|Dj1 (T )| c

s j1 j2 i2 i1

Since T {(i1 , j1 )} contains a cycle with length equal to ci1 j1 (T ) for exis tence of an optimal paths tree ci1 j1 (T ) 0. Both simplex pivots are made when ci1 j1 (T ) 0 and ci1 j1 (T ) + ci1 j2 (T ) < 0. In the above arguments, ci1 j1 (T ) and ci2 j2 (T ) are the lowest reduced costs of the incoming arcs of nodes j1 and j2 , respectively. That is, we do not consider the incoming arcs of nodes j1 and j2 with reduced costs are greater than ci1 j1 (T ) and ci2 j2 (T ), respectively. The reason for this selection is stated in property 2. Now, we need to determine the greatest decrease on the value of the objective function C(T ) that can be obtained considering the set of non-basic arcs {(i1 , j1 ), (i2 , j2 )} / with j1 Dj2 (T ) using the local information given by T (that is, we do not know the relationship between nodes j1 and j2 in T ). If ci1 j1 (T ) < 0 and ci2 j2 (T ) < 0 then, in all preceding subcases, with the exception of subcases (A2) and (B2), it is preferred to make a simplex pivots with these two arcs. Note that case B2 implies that a negative cycle exists in G. Thus, this situation is not considered in our rule, because the proposed algorithm must incorporate tools to detect the existence of this negative length cycle. In subcase (A2), it is necessary to compare ci1 j1 (T ) with ci2 j2 (T ) to make a decision. Note that in the subcase (A2), if ci2 j2 (T ) < ci1 j1 (T ) < 0 then, the greatest improvement in the objective function value is obtained by piv oting with both arcs. However, if ci1 j1 (T ) ci2 j2 (T ) < 0 then, the current solution only improves by making a pivot with the arc (i1 , j1 ). Note that information about of tree T is required to check all of the above cases. For example, case (A3) (B1)) requires to check if j2 Dj1 (T ) (j1 Dj2 (T )) to make the decision of pivot c with both arcs when ci1 j1 (T ) < 0 and ci1 j1 (T ) + ci2 j2 (T ) < 0 (i2 j2 (T ) < 0 and ci1 j1 (T ) + ci1 j2 (T ) < 0). However, we need a multiple pivot rule that only uses local information from tree T . Thus, given the set of non-basic arcs {(i1 , j1 ), (i2 , j2 )} with j1 Dj2 (T ) and with ci1 j1 (T ) < 0 and ci2 j2 (T ) < 0, the pivot rule is: / (1) If (j2 Dj1 (T ) and ci1 j1 (T ) < 0 and ci2 j2 (T ) < 0) or (j2 Dj1 (T ) and / ci2 j2 (T ) < ci1 j1 (T ) < 0) then, make a pivot with both arcs; (2) If j2 Dj1 (T ) and ci1 j1 (T ) ci2 j2 (T ) and ci1 j1 (T ) < 0 then, make a pivot with arc (i1 , j1 ); (3) If j2 Dj1 (T ) and ci2 j2 (T ) < 0 and ci1 j1 (T ) 0 then, make a pivot with arc (i2 , j2 );

684

A. Sedeo-Noda & C. Gonzlez-Mart n a n

Note that the previous rule fails in subcase A4, that is, when j2 Dj1 (T ), j2 Dj1 (T ) and ci1 j1 (T ) ci2 j2 (T ) < 0 both arcs must enter into the tree. However, the above rule implies that the pivot only be made with the arc (i1 , j1 ). But, since j2 Dj1 (T ) and j2 Dj1 (T ), we have i2 Dj1 (T ) and j2 Dj1 (T ) and therefore, when the above rule is applied, di2 (T ) = di2 (T ) + ci1 j1 (T ) obtaining ci2 j2 (T ) = ci2 j2 (T ) < 0. Thus, node j2 will not be permanently labeled until node j1 becomes permanently labeled. Similarly, the rule also fails in subcase B2, that is, when j2 Dj1 (T ), j1 Dj2 (T ), ci1 j1 (T ) + ci1 j2 (T ) < 0 and ci1 j1 (T ) 0 then, both arcs must enter into the basis tree. However, the above rule implies that the pivot only be made with the arc (i2 , j2 ). But, since j2 Dj1 (T ) and j1 Dj2 (T ), we have c i1 Dj2 (T ) and therefore, when the above rule is applied, di1 (T ) = di1 (T )+i2 j2 (T ) obtaining ci1 j1 (T ) = ci1 j1 (T ) + ci1 j2 (T ) < 0. Thus, node j1 will not be permanently labeled until node j2 becomes permanently labeled. Now, we must extend the rule for each node jk with k = 1, . . . , n. For all jk V , let Bjk (T ) be the set of nodes in the directed path tree from node s to jk in T , excluding node jk . We propose the next rule when choosing the arc (ik , jk ) for a node jk . If cik jk (T ) <
jk Bjk (T )

min

{0, cik

jk

(T )} then the arc (ik , jk ) is selected ()

that is, the arc (ik , jk ) is chosen to enter in the basis tree T , if and only if, its reduced cost is negative and less than the reduced cost of any chosen incoming arc of node jk with jk Bjk (T ). Note that this rule extends the previous ideas since node jk Djk (T ) for all jk Bjk (T ). For example, suppose that j2 Dj1 (T ) and j3 Dj2 (T ) (and also j3 Dj1 (T )) with ci1 j1 (T ) < 0. Arc (i1 , j1 ) is always chosen. If ci2 j2 (T ) < ci1 j1 (T ) then, the arc (i2 , j2 ) is chosen. Now, if arc (i2 , j2 ) has been selected then, ci3 j3 (T ) is compared with ci2 j2 (T ) to make a decision on arc (i3 , j3 ). If (i2 , j2 ) has not been selected then, a comparison between ci3 j3 (T ) and ci1 j1 (T ) is made to decide on arc (i3 , j3 ). In this sense, this rule generalizes the last rule considering only two arcs. One way to easily implement this new rule consists of choosing the incoming arcs of the nodes j1 , j2 , . . . , jn in the preorder ordering of the nodes in the basis tree T , that is, applying the following recursive procedure: Procedure Searching Entering Arcs (SEA)(i, C, var visited ); visited = visited + 1; Besti = N ull; M ini = C; For all j do i If cji (T ) < M ini then M ini = cji (T ); Besti = j; For all j Ti+ do Searching Entering Arcs (j, M ini , visited )

Shortest Path Simplex Algorithm with a Multiple Pivot Rule

685

The procedure SEA (i, C) is called in each iteration of the simplex algorithm with parameters i = s, C = 0 and the variable visited = 0. This procedure returns the array of pointers Best, where Besti point to the incoming arc of node i, (Besti , i), to enter into the tree. If Besti equals Null then, there is no arc associated with node i to enter into the tree. Note that this recursive procedure reproduces the rule (*). If T is a tree then, each node j V is reached exactly one time when this procedure is called from node s. The arc (Besti , i) is selected to enter into the tree if and only c if cBesti i (T ) < C, where C equals minjBi (T ) {0, Bestj j (T )}. The previous rule becomes as a modied version of the inward most negative (IMN) pivot rule analyzed by Cunningham (1979) and Goldfarb et al. (1990a). Moreover, in Goldfarb and Jin (1990b), a modied version of IMN pivot rule is also introduced that scans the nodes in a reverse preorder. However, note that in reverse preorder, the label distance of a node j hanging from a node i in a tree T is modied rst. Thus, when the distance label of node i changes, the distance label of node j could be improved. That is, if G has no negative cycle then, node j cannot be permanently labeled until node i is permanently labeled. This situation is avoided by using the rule introduced in this paper. Sede o-Noda and Gonzlez-Mart (2010) introduce a simplex pivot rule based n a n on the concept of pseudo permanent labels. This pivot rule reduces the number of simplex pivots performed by a SPS algorithm. However, an additional computational cost is added to the algorithm because it needs to identify the nodes having pseudo permanent labels. A SPS algorithm using the proposed rule in this paper does not incur this additional computational cost. Instead, in each application of the proposed rule all nodes of V are scanned. Multiple Pivots Shortest Path Simplex (MPSPS) Algorithm; Let T be an initial feasible tree; Compute label distances di (T ) for all i V ; Optimal = false; k = 2; While (k < n) and not (Optimal ) do visited = 0; Searching Entering Arcs(s, 0, visited ); If (visited < n) then Stop, G contains a negative cycle Else Pivots = 0; For all i V do If Besti = N ull then T = T + {(Besti , i)} {predi , i}; Pivots = Pivots + 1; If (i == s) or (Pivots > n k) then Stop, G contains a negative cycle If (Pivots == 0) then Optimal = true; Compute label distances di (T ) for all i V ; k = k + 1;

686

A. Sedeo-Noda & C. Gonzlez-Mart n a n

Given a tree T, we use the term stage to describe the operation making the multiple pivots with the arcs (Besti , i), i V such that Besti = N ull. As in Goldfarb and Jin (1990b), when G has no negative cycles, it is easily proved by induction that at the end of the kth stage one additional node becomes permanently labeled (see also Ahuja et al. (1993, p. 142)). Now, we present the SPS algorithm with multiple pivots. Let T0 be an initial basis tree consisting of the arcs (s, i), i V {s}. Note that the number of nodes permanently labeled in T0 is at least k = 2. Therefore, the proposed rule implies at most n 2 stages. In addition, during stage k, the rule selects at most n k arcs to enter into the basis. Thus, if in the kth stage of the procedure SEA more than n k arcs are selected (counted by pivots), then G contains a negative cycle. The algorithm allows that T becomes cyclic after a multiple pivot is made, because when an arc (i, j) enters into the basis, the algorithm does not check if i Dj (T ) (with the trivial exception of j = s). Our procedure SEA counts the number of nodes visited (ag visited ). Thus, if visited < n then, we have detected a negative cycle in G. Theorem 1. Starting from an initial basis feasible tree T0 , the SPS algorithm solves the SP problem in at most n 2 multiple pivots and O(nm) time. Proof. The initial basis tree T0 can be obtained in O(n) time. In each stage k, the procedure SEA requires O( iV | |+n+ iV |Ti+ |) = (n + m) time. Performing i the multiple pivots requires O(n k) time (each simplex pivot can be done in O(1) using an appropriate data structure) and computing the distance labels needs O(n) time. Therefore, each stage k is performed using O(n + m) time. If G has no negative cycles then, a simplex algorithm using the multiple pivot rule makes permanent the distance label of at least one node in each stage. Since the number of permanent labeled nodes in T0 is at least 2, our rule implies at most n 2 multiple pivots. Therefore, since in the worse case there are n 2 stages, the above algorithm runs in O(nm) time. 4. Computational Results This section oers comments on a computational experiment that we carried out. The Multiple Pivots Shortest Path Simplex (MPSPS) algorithm, the Goldfarb and Jin (G&J) algorithm (1999) and the Sedeo-Noda and Gonzlez-Mart (NPPLN) n a n algorithm (2010) were implemented using C++ and were tested on a Centrino Pentium with 2 GHz processor running Red Hat Linux. The test problems were generated by using the SPRAND and the SPGRID generators due to Cherkassky et al. (1996). For the experiment using the SPRAND generator, the parameters were the followings: n {1000, 2000, . . . , 10000}, m {5n, 15n, 25n, 35n, 45n, 50n, 150n, 250n, 350n, 450n} and the length of the arcs uniformly at random from the interval [0, l] with l {10, 100, 10000, 100000000}. For each combination of the previously

Shortest Path Simplex Algorithm with a Multiple Pivot Rule Table 1. The CPU time and the number of pivots for 5 m/n 25. n CPU 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 0.03 0.05 0.10 0.16 0.23 0.32 0.41 0.50 0.60 0.71 MPSPS Pivots 2246.6 4615.0 7079.9 9492.1 12117.2 14668.0 17516.8 20158.3 22295.4 25256.6 CPU 0.03 0.08 0.19 0.32 0.51 0.74 1.02 1.30 1.59 2.02 G&J Pivots 2413.8 5193.9 8212.8 11249.5 14472.5 17681.0 21841.4 24499.6 27199.3 31886.5 CPU 0.03 0.08 0.15 0.25 0.39 0.54 0.73 0.93 1.11 1.38 NPPLN Pivots 2591.6 5394.7 8260.5 11118.8 14222.5 17269.8 20777.7 24031.6 26399.2 30230.1

687

networks parameters (400), we generated ten replications by using the followings seeds: 12345678, 36581249, 23456183, 46545174, 35826749, 43657679, 378484689, 23434767, 56563897 and 78656756. Therefore, there were 4000 instances for the problem in the experiment. In Tables 1, 2 and 3, the number of nodes (n), the
Table 2. The CPU time and the number of pivots for 35 m/n 50. n CPU 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 0.05 0.15 0.29 0.44 0.62 0.82 1.03 1.24 1.44 1.66 MPSPS Pivots 2726.7 5591.1 8524.6 11383.3 14570.0 17616.7 20939.5 24531.1 27250.5 30973.5 CPU 0.05 0.16 0.32 0.52 0.77 1.05 1.42 1.79 2.10 2.59 G&J Pivots 2320.3 5047.1 7969.3 10693.2 13879.3 16768.8 20822.5 24210.0 26535.4 31267.4 CPU 0.06 0.20 0.40 0.64 0.92 1.22 1.60 1.97 2.33 2.79 NPPLN Pivots 3219.1 6750.1 10384.2 13952.7 17973.0 21715.2 26156.6 30831.7 33995.0 39003.3

Table 3. The CPU time and the number of pivots for 150 m/n 450. n CPU 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 0.53 1.23 1.98 2.78 3.63 4.57 5.43 6.43 7.32 8.32 MPSPS Pivots 2535.0 5522.2 8659.5 11955.3 15337.8 18936.9 22318.8 26111.4 29363.5 33042.5 CPU 0.43 1.02 1.67 2.37 3.09 3.89 4.69 5.63 6.41 7.48 G&J Pivots 2078.0 4474.8 6909.9 9531.0 12142.2 15228.0 17788.7 20820.8 23362.8 26085.4 CPU 0.64 1.55 2.46 3.46 4.54 5.72 6.88 8.18 9.29 10.65 NPPLN Pivots 3074.7 6791.5 10666.7 14725.6 18871.9 23475.5 27654.4 32425.7 36327.6 40954.4

688

A. Sedeo-Noda & C. Gonzlez-Mart n a n

(average) CPU time in seconds and the (average) number of pivots for both algorithms grouped by m/n are shown. Note that the CPU time and the number of simplex pivots made by MPSPS algorithm for sparse networks with m 25n (Table 1) is less than the CPU time and the number of pivots made by G&J and NPPLN algorithms. In particular, the number of pivots made by NPPLN algorithm is 1.09 times the number of simplex pivots made by MPSPS algorithm. For networks with 35n m 50n (Table 2), MPSPS algorithm makes more pivots than the G&J algorithm, but the MPSPS algorithm employs less CPU time than G&J algorithm. In this case, NPPLN algorithm makes more number of pivots and it requires more CPU time than MPSPS and G&J algorithms. For example, the number of pivots made by NPPLN algorithm is 1.25 times the number of simplex pivots made by MPSPS algorithm. For networks with m 150n (Table 3), the best algorithm taking into account the number of pivots and the CPU time is G&J, next MPSPS algorithm and, nally, NPPLN algorithm. The number of pivots made by NPPLN algorithm is 1.24 times the number of simplex pivots made by MPSPS algorithm. Therefore, the explanation of the observed dierence between the CPU times of the NPPLN and MPSPS algorithms lies on the observed number of simplex pivots and on the additional computational eort performed by NPPLN algorithm to determine the pseudo permanent labeled nodes. However, the problems obtained with SPRAND generator were easily solved for all the codes as in Cherkassky et al. (1996). This fact is observed when the above CPU times are compared with the CPU times needed by the algorithms to solve the instances from the SPGRID generator. In the SPGRID generator, the instance is specied by the parameters X, Y , maximum length of the arcs, l, and a seed. As in Cherkassky et al. (1996), we considered square grids with X = Y {32, 64, 128, 256, 512}, wide grids with X = 32 xed and Y {64, 128, 256, 512} and long grids with Y = 32 xed and X {64, 128, 256, 512}. In all cases, the length of the arcs uniformly at random from the interval [0, l] with l {10, 100, 10000, 100000000}. For each combination of the previously networks (20, 16 and 16), we generated ten replications by using the later seeds. Therefore, the number of instances of the problem in the experiment was 200 square grids and 160 wide and long grids. That is, this experiment reproduces the experiment developed by Cherkassky et al. (1996) with the SPGRID generator. The average CPU times in seconds and the number of simplex pivots made for both algorithms are shown in the next three tables. This last experiment conrms that MPSPS algorithm has high-quality behaviour in practice when is compared with the G&J algorithm. In these tables, the average of the number of simplex pivots made by the MPSPS algorithm is always at least 1.12 times less than the number of simplex pivots made by G&L algorithm. Moreover, with the exception of the case of small networks (X = 64 in Table 6), the average of the CPU time used by MPSPS algorithm is always less than the G&J algorithm. The dierence between the practical behaviour of both algorithms is specially noted in Tables 4 and 5. That is, generally, for grid

Shortest Path Simplex Algorithm with a Multiple Pivot Rule Table 4. Average CPU times and number of pivots for square grids. X Y CPU 32 64 128 256 512 32 64 128 256 512 0.02 0.17 1.36 11.28 83.93 MPSPS Pivots 1434.35 5873.85 23781.80 95622.50 349712.59 CPU 0.02 0.34 6.68 134.04 745.22 G&J Pivots 1667.28 7554.15 33638.48 149408.38 589390.38 NPPLN CPU 0.04 0.25 2.08 17.73 130.89

689

Pivots 1368.30 5636.08 23003.45 92926.08 340980.82

Table 5. Average CPU times and number of pivots for wide grids. Y CPU 64 128 256 512 0.04 0.09 0.19 0.40 MPSPS Pivots 2889.88 5783.60 11536.15 23114.53 CPU 0.06 0.29 1.15 4.92 G&J Pivots 3290.98 6527.48 12899.60 25772.98 CPU 0.06 0.13 0.28 0.63 NPPLN Pivots 2754.20 5534.10 11065.73 22055.58

Table 6. Average CPU times and number of for long grids. X CPU 64 128 256 512 0.08 0.32 1.27 4.80 MPSPS Pivots 2938.75 5934.63 11898.58 21500.10 CPU 0.07 0.38 1.88 8.23 G&J Pivots 3949.05 9606.95 23923.45 50878.38 CPU 0.12 0.46 1.87 7.18 NPPLN Pivots 2826.68 5706.40 11500.13 20797.20

networks the MPSPS algorithm requires a fewer number of simplex pivots and, therefore, uses less CPU time than the G&J algorithm. In the worst case the G&J algorithm is 12 times slower than MPSPS algorithm. When MPSPS algorithm is compared with NPPLN algorithm, we observe that the number of pivot made by NPPLN algorithm is at least 1.02 times and at most 1.05 times less than the number of simplex pivots made by MPSPS algorithm. However, the average of the CPU time used by MPSPS algorithm is always less than the NPPLN algorithm. In the worst case the NPPLN algorithm is 1.5 times slower than MPSPS algorithm. Clearly, NPPLN algorithm makes a fewer number of simplex pivots than MPSPS algorithm, but the computational eort to determine the nodes having pseudo permanent labels is not compensated with the saved time in the simplex pivots. 5. Conclusions This paper introduces a multi-pivot shortest path simplex method and studies the properties a multiple pivot must satisfy. The paper also contains a study of the eect on the value of the objective function for the shortest path problem when

690

A. Sedeo-Noda & C. Gonzlez-Mart n a n

a multiple pivot with two arcs is performed. Moreover, it is proved that a SPS algorithm using this rule runs in O(nm) time. The algorithm is competitive in practice when is compared with other SPS algorithms. In other words, the SPS algorithm incorporating the new rule performs fewer simplex pivots and requires less CPU time than the previously most ecient SPS algorithm due to Goldfarb and Jin (1999) and it is slightly better than Sedeo-Noda and Gonzlez-Mart (2010) n a n algorithm taking into account only the CPU time. Finally, the proposed simplex multiple pivot rule can be used to derive a new label correcting algorithm running in O(nm) time without major eort. Acknowledgments This work has been partially supported by Spanish Government Research Project MTM2009-08830, and also received contributions from European Funds of Regional Development. References
Ahuja, R, T Magnanti and JB Orlin (1993). Network Flows. NY: Prentice-Hall. Akgul, M (1986). Shortest Paths and the Simplex Method. Technichal Report, Department of Computer Sciences and Operations Research Program, North Carolina State University, Raleigh, N.C. Bellman, R (1958). On a route problem. Quart. of Appl. Math., 16, 8790. Cherkassky, BV, AV Goldberg and T Radzik (1996). Shortest paths algorithms: theory and experimental evaluation. Mathematical Programming, 73, 129174. Cunningham, WH (1979). Theoretical properties of the network simplex method. Mathematical Programming, 4, 196208. Dantzig, GB (1957). Discrete-variable extremum principles. Operations Research, 5, 266277. Dial, R, F Glover, D Karney and D Klingman (1979). A computational analysis of alternative algorithms and labeling techniques for nding shortest path trees. Networks, 9, 215248. Ford, LR (1956). Network Flow Theory. The Rand Corporation Report P-923, Santa Monica, Calif. Goldfarb, D, J Hao and SR Kai (1990a). Ecient shortest path simplex algorithms. Operations Research, 38(4), 624628. Goldfarb, D, J Hao and SR Kai (1990b). Anti-stalling pivot rules for the network simplex algorithm. Networks, 20, 7991. Goldfarb, D and Z Jin (1999). An O(nm)-time network simplex algorithm for the shortest path problem. Operations Research, 47(3), 445448. Minty, GJ (1958). A variant on the shortest route problem. Operations Research, 6, 882. Moore, ZF (1957). The shortest path through a maze. In Proceedings of the International Symposium on Theory of Switching, Part II, 285292. Orlin, B (1985). On the simplex algorithm for networks and generalized networks. Mathematical Programming Study, 25, 166178. Sedeo-Noda, A and C Gonzlez-Mart (2010). New ecient shortest path simplex n a n algorithm: Pseudo permanent labels instead of permanent labels. Computational Optimization and Applications, 47(2), 289305.

Shortest Path Simplex Algorithm with a Multiple Pivot Rule

691

Antonio Sede o-Noda received the B.Sc. Degree in Physics with electronic spen cialization from the Santiago de Compostela University (Spain) in 1992 and the Ph.D. degree in Mathematics from La Laguna University (Spain) in 2001. He is currently an Associate Professor of the Department of Statistics, Operations Research and Computation (La Laguna University). He is interested in research areas related to design of algorithms, Combinatorial Programming, Multiobjective Optimization and Logistic problems. He is author or coauthor of articles published in Spanish journals and international journals (Naval Research Logistics, European Journal of Operational Research, Computers & Operations Research, Networks, Asia Pacic Journal of Operations Research and Computational Optimization and Applications). Carlos Gonzlez-Mart received the B.Sc. Degree in Mathematics (with Statisa n tic and Operations Research specialization) from the La Laguna University (Spain) in 1978 and the Ph.D. degree in Mathematics from La Laguna University (Spain) in 1984. He is currently a Full Professor of the Department of Statistics, Operations Research and Computation (La Laguna University). He is interested in research areas related to Linear, Combinatorial or Multiobjective Programming and Logistic problems. He is author or coauthor of articles published in Spanish journals and international journals (Naval Research Logistics, European Journal of Operational Research, Computers & Operations Research, Networks, Asia Pacic Journal of Operations Research and Computational Optimization and Applications).

Copyright of Asia-Pacific Journal of Operational Research is the property of World Scientific Publishing Company and its content may not be copied or emailed to multiple sites or posted to a listserv without the copyright holder's express written permission. However, users may print, download, or email articles for individual use.