Generated by GPT-5-mini| Tarjan–Shiloach algorithm | |
|---|---|
| Name | Tarjan–Shiloach algorithm |
| Type | Parallel algorithms |
| Designers | Robert Tarjan; Yossi Shiloach |
| First published | 1985 |
| Area | Graph algorithms; Parallel computation |
| Complexity | O(log n) time on O(n) processors (PRAM model) |
Tarjan–Shiloach algorithm is a parallel algorithm for computing rooted trees' connected components and minimum spanning forest primitives, notable for its use in parallel pointer jumping and tree contraction. It was developed in the 1980s by Robert Tarjan and Yossi Shiloach and influenced subsequent work in parallel algorithms, distributed systems, and computer architecture. The algorithm is often taught alongside work on PRAM models, parallel prefix computation, and work by researchers who advanced randomized and deterministic parallel graph algorithms.
The algorithm arose during a period of intense activity in parallel computing linked to institutions and projects such as Bell Labs, IBM, Stanford University, and MIT. Influences include early PRAM research from groups at Carnegie Mellon University, University of California, Berkeley, and Harvard University, and the algorithm responded to challenges highlighted in conferences like ACM Symposium on Theory of Computing and IEEE Symposium on Foundations of Computer Science. Developers drew on earlier sequential work by John von Neumann era architectures, and contemporaneous efforts by researchers such as Leslie Valiant, Richard Karp, Michael Rabin, and Stephen Cook. The Tarjan–Shiloach algorithm specifically addressed needs articulated in studies by Edsger Dijkstra and Donald Knuth on graph traversal and data structure manipulation for parallel environments.
The core problem addresses tree rooting and component labeling in an undirected forest drawn from inputs in contexts like Prim's algorithm or Kruskal's algorithm preprocessing. Given a forest represented by parent or pointer arrays, the algorithm computes for every node the identifier of its tree root or representative, as formalized in parallel settings discussed by Leslie Lamport and Michael Rabinovich. The objective is achieving low parallel time (polylogarithmic) using a bounded number of processors under the Concurrent Read Concurrent Write PRAM model considered by researchers at Cornell University and Princeton University.
Tarjan–Shiloach combines pointer jumping, tree contraction, and list ranking techniques related to work by Robert Tarjan and contemporaries including Daniel Sleator and Robert Endre Tarjan's broader research lineage. The method alternates phases that perform short shortcutting steps and hook-and-contract operations akin to those in union-find approaches studied by John Hopcroft and Jeffrey Ullman. Each phase uses concurrent pointer updates inspired by Richard Cole and Uzi Vishkin's parallel list ranking and employs deterministic rules comparable to those in algorithms from Shimon Even and Alfred Aho. Implementation notes often reference processor coordination techniques promoted at Intel research labs and in textbooks by Thomas H. Cormen and Charles Leiserson. The procedure ensures that in each iteration node pointers are replaced by higher-level ancestors or by newly chosen leaders using rules that mirror operations from union-by-rank heuristics associated with Robert Tarjan's union-find analyses.
Analysis leverages PRAM complexity frameworks used in seminal papers by Richard Karp and David S. Johnson; the algorithm achieves O(log n) time with O(n) processors in idealized CRCW PRAM variants, with correctness proved by induction on contraction phases and use of monotonicity arguments similar to those in proofs by Edsger Dijkstra and Tony Hoare. Lower-level proofs reference combinatorial properties investigated by Paul Erdős and Alfréd Rényi in random graph theory when considering average-case bounds. Seminal complexity classes such as NC and P provide the theoretical context for the algorithm's placement in parallel complexity hierarchies developed by researchers including Jack Edmonds and Stephen Cook.
Researchers extended the method to randomized and deterministic versions connected to work by Michael Luby, Noga Alon, and Avi Wigderson on randomized parallel algorithms and graph connectivity. Extensions incorporate techniques from work on dynamic trees by Sleator and Robert E. Tarjan and on distributed MST by G. N. Frederickson and David Karger. Practical adaptations appear in settings influenced by Leslie Valiant's bulk-synchronous parallel model and by hardware-aware optimizations discussed at venues like SC Conference and by organizations such as Intel and NVIDIA.
The algorithm informs implementations of parallel connected-components routines in large-scale graph processing systems influenced by projects such as Google's internal graph systems, Apache Hadoop, and Apache Spark. It has been integrated into libraries and frameworks developed at Microsoft Research, Facebook AI Research, and academic repositories from Universität Stanford and University of California, Berkeley groups. Practical uses include preprocessing for Dijkstra-style shortest path systems, parallel MST routines used in computational geometry packages maintained by groups associated with ACM SIGGRAPH and in networking stacks conceived by engineers at Cisco Systems. Implementations appear in parallel libraries influenced by works of Donald Knuth, Thomas H. Cormen, and Charles Leiserson and are benchmarked in competitions and workshops co-sponsored by ACM and IEEE.
Category:Parallel algorithms