BIBLIOGRAPHICAL REMARKS
10.8 BIBLIOGRAPHICAL REMARKS
Descriptions of many sequential graph algorithms can be found in [Christofides], [Deo [Even], and [Papadimitriou]. Graph-theoretic algorithms for parallel computers are surveyed in [Quinn
Textbook treatment of parallel graph algorithms is provided in [Quinn
and [Ullman]. Parallel algorithms for computing the connectivity matrix are given in [Chin], [Guibas], [Hirschberg
[Hirschberg [Levitt], and [Van Scoy]. In particular, it is shown in [Hirschberg
how an n 3 -processor CRCW SM SIMD computer can be used to compute the reflexive and transitive closure of an n-vertex graph in
n) time. Various approaches to solving the connected-components problem in parallel are proposed in [Chin],
[Hochschild [Hochschild [Lakhani],
[Hirschberg
[Hirschberg
[Reghbati], and [Shiloach Notably, it is shown in [Chin] how a CREW SM SIMD computer with O(n 2 /log 2 n) processors can be used to find the connected components of an n-vertex graph in O(log 2 n) time. Parallel algorithms for solving the all-pairs shortest path problem on a number of different models of computation are described in [Dekel
[Nath
and [Hirschberg The algorithm in [Hirschberg
[Deo
uses an n 4 -processor CRCW SM SIMD computer and runs in
n) time. The idea of procedure CUBE SHORTEST PATHS originated in [Dekel
Several approaches for computing the minimum spanning tree in parallel are described in [Atallah], [Bentley], [Chin],
[Doshi], [Gallager], [Hirschberg [Hirschberg [Hochschild
[Nath [Santoro], [Savage
[Kwan], [Nath
and [Savage In particular, it is shown in [Doshi] how the approach in problem 10.18 can be used to compute the MST of an n-vertex weighted graph on a linear array of N processors, where 1
N n. The algorithm runs in O(n 2 /N) time for an optimal cost of O(n 2 ). This algorithm is superior to procedure EREW MST in two respects:
1. It achieves the same performance on a much weaker model of computation. 2. It has a wider range of optimality.
Procedure EREW MST is from where a number of references to parallel MST algorithms are provided.
Other graph-theoretic problems that were solved in parallel include finding
and [Savage connected components
components ([Hirschberg
[Hochschild
[Hochschild
strongly connected components ([Hochschild and [Levitt]), and weakly connected components ([Chin]); single-source shortest paths ([Chandy], [Crane], [Deo
and [Mateti]); all-pairs longest paths ([Hirschberg topolog- ical sorting ([Er], [Hirschberg
constructing spanning trees and forests ([Bhatt], [Chin], [Dekell], and [Levitt]); contracting trees ([Leiserson]); determining the radius, diameter, center, median, articulation points, and bridges ([Atallah], [Dekel
and
[Doshi], and [Savage
searching and traversing graphs ([Chang],
computing maximum gains ([Dekel
testing planarity ([Hochschild
[Reghbati], and
and
computing matchings
and [Hembold]); finding the
272 Graph Theory Chap. 10 cyclic index ([Atallah]), fundamental cycles ([Levitt] and Savage
cycles of shortest length ([Atallah]), and maximal sets of disjoint paths ([Anderson]); computing flows in networks ([Chen
[Chen [Goldberg], and [Shiloach and testing whether a graph is bipartite ([Atallah]). The cellular array model of parallel computation was first proposed in [Kautz] and then used in [Levitt] for solving graph-theoretic problems. It consists of a large number of simple processors interconnected t o form a two-dimensional array. The concept of a cellular array was later rediscovered and renamed systolic array in [Foster].
The dead-end path problem and the maximal set of disjoint paths problem belong to the class of P-complete problems. These problems are believed not to have fast parallel solutions. Furthermore, if a fast parallel algorithm is found for one of these problems, then all the problems in the class are amenable t o fast parallel solution ([Anderson] and [Cook]). Note that, according t o this theory, a parallel algorithm is
if it uses O(n C ) processors for some c and runs in O(log k n) time for some constant k
The class of problems solved by such fast algorithms is nicknamed in the literature as N C ([Cook]). Let be a problem of size n, where may be the number of vertices in a graph, rows in a matrix, or elements of a sequence. An algorithm for solving
is said to be polynomial if its running time is of O(n k ) for some constant k
An algorithm is exponential if it runs in for some constant c
2. The Hamilton cycle and traveling salesman problems belong to the
class of NP-complete problems. A problem in this class has the following characteristics:
(i) n o sequential algorithm with polynomial running time is known for solving n and, furthermore, it is not known whether such an algorithm exists; (ii) all known sequential algorithms for solving n have exponential running time and it is not known whether this is optimal; (iii) if a solution t o a is given, it can be verified in polynomial time; and
(iv) if a sequential polynomial time algorithm is found for solving it can be used to solve all NP-complete problems in polynomial time.
A good reference t o NP-complete problems is [Garey]. Parallel algorithms for NP-complete problems help only a little in mitigating the exponential growth in the running time. T o have a truly fast parallel algorithm that is based on our current state of knowledge, one needs an exponential number of processors. This is prohibitive, to say the least, and we must await a
better understanding of the nature of NP-complete problems before embarking in the design of parallel algorithms for large-problem instances. Parallel algorithms for NP-complete graph problems are described in [Mead] and [Mohan].