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].