An Efficient Parallel Biconnectivity Algorithm

Robert E. Tarjan, Uzi Vishkin

SIAM Journal on Computing · 1985 · 526 citations · 16 references

Concepts

TL;DR

A serial implementation of block detection runs in O(n+m) time and space on a graph with n vertices and m edges. The paper proposes a new algorithm for finding the blocks (biconnected components) of an undirected graph and introduces a general technique that simplifies computation of various functions on trees. The authors present a parallel implementation that runs in O(log n) time and O(n+m) space using O(n+m) processors on a concurrent‑read, concurrent‑write PRAM, an alternative O(n²/p) time, O(n²) space algorithm for up to n²/ log² n processors on a concurrent‑read, exclusive‑write PRAM, and a general technique requiring O(log n) time and O(n) space on an exclusive‑read, exclusive‑write PRAM. The last algorithm achieves optimal speedup when the input is represented as an adjacency matrix.

Abstract

In this paper we propose a new algorithm for finding the blocks (biconnected components) of an undirected graph. A serial implementation runs in $O(n + m)$ time and space on a graph of n vertices and m edges. A parallel implementation runs in $O(\log n)$ time and $O(n + m)$ space using $O(n + m)$ processors on a concurrent-read, concurrent-write parallel RAM. An alternative implementation runs in $O(n^2 /p)$ time and $O(n^2 )$ space using any number $p \leqq n^2 /\log ^2 n$ of processors, on a concurrent-read, exclusive-write parallel RAM. The last algorithm has optimal speedup, assuming an adjacency matrix representation of the input. A general algorithmic technique that simplifies and improves computation of various functions on trees is introduced. This technique typically requires $O(\log n)$ time using processors and $O(n)$ space on an exclusive-read exclusive-write parallel RAM.

References

16