Parallel Computation and Algorithms by Raymond Greenlaw Armstrong Atlantic State University Joint work with: Pilar de la Torre Jim Hoover Department of Computer Science University of New Hampshire Computer Science Department University of Alberta Magnus Halldorsson Rossella Petreschi Decode Genetics Department of Computer Science University of Rome La Sapienza Alex Schaffer National Institute of Health Larry Ruzzo Department of Computer Science University of Washington Teresa Przytycka Department of Biophysics John Hopkins University Medical School Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 1 Parallel Computation and Algorithms by Raymond Greenlaw Armstrong Atlantic State University Part I (a): An Introduction to Parallel Computation Part I (b): P-Complete Problems Part II (a): Rankings Part II (b): Prüfer Codes Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 2 Part I (a): An Introduction to Parallel Computation Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 3 Part I: Outline • • • • • • • Introduction Parallel Models of Computation Basic Complexity Evidence that NC Ρ Ρ-Complete Problems Comparator Circuit Class Open Problems Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 4 Part I: Outline • • • • • • • Introduction Parallel Models of Computation Basic Complexity Evidence that NC Ρ Ρ-Complete Problems Comparator Circuit Class Open Problems Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 5 Introduction • Sequential computation: Feasible ~ n O(1) time (polynomial time). • Parallel computation: Feasible ~ n O(1) time and ~ n O(1) processors. Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 6 Introduction • Goal of parallel computation: Develop extremely fast ((log n)O(1) ) time algorithms using a reasonable number of processors. • Speedup equation: (best sequential time) (parallel time). (number of processors) Allow a polynomial number of processors. Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 7 Introduction Roughly, • A problem is feasible if it can be solved by a parallel algorithm with worst case time and processor complexity n O(1). • A problem is feasible highly parallel if it can be solved by an algorithm with worst case time complexity (log n) O(1) and processor complexity n O(1). • A problem is inherently sequential if it is feasible but has no feasible highly parallel algorithm for its solution. Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 8 Part I: Outline • • • • • • • Introduction Parallel Models of Computation Basic Complexity Evidence that NC Ρ Ρ-Complete Problems Comparator Circuit Class Open Problems Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 9 Parallel Models of Computation • Parallel Random Access Machine Model • Boolean Circuit Model • Circuits and PRAMs Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 10 Parallel Random Access Machine RAM Processors P0 P1 P2 C0 C1 C2 Global Memory Cells Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 11 Boolean Circuit Model 1 0 1 1 AND OR OR AND 0 AND OR NOT Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 12 Circuits and PRAMS Theorem: A function f from {0,1}* to {0,1}* can be computed by a logarithmic space uniform Boolean circuit family {n } with depth (n) є (logn)O(1) and size (n ) є n O(1) if and only if f can be computed by a CREW-PRAM M on inputs of length n in time t(n) є (logn)O(1) using p(n) є n O(1). Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 13 Part I: Outline • • • • • • • Introduction Parallel Models of Computation Basic Complexity Evidence that NC Ρ Ρ-Complete Problems Comparator Circuit Class Open Problems Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 14 Basic Complexity • • • • Decision, Function, and Search Problems Complexity Classes Reducibility Completeness Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 15 Decision, Function, and Search Problems 4 3 Spanning Tree-D 4 6 3 4 6 3 4 Given: An undirected graph G = (V,E) with weights from N labeling edges in E and a natural number k. Problem: Is there a spanning tree of G with cost less than or equal to k ? Spanning Tree-F Given: Same (no k ). Problem: Compute the weight of a minimum cost spanning tree. Spanning Tree-S Given: Same. Problem: Find a minimum cost spanning tree. Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 16 Complexity Classes Definitions: P is the set of all languages L that are decidable in sequential time n O(1). NC is the set of all languages L that are decidable in parallel time (logn)O(1) and processors n O(1). FP is the set of all functions from {0,1}* to {0,1}* that are computable in sequential time n O(1). FNC is the set of all functions from {0,1}* to {0,1}* that are computable in parallel time (logn)O(1) and processors n O(1). NC k, k 1, is the set of all languages L such that L is recognized by a uniform Boolean circuit family {n } with size(n ) = n O(1) and depth (n ) = O((logn)k ). Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 17 Many-One Reducibility Definitions: A language L is many-one reducible to a language L’, written L mP L’ , if there is a function f such that x є L if and only if f(x) є L’. L is P many-one reducible to L’, written L mP L’ , if the function f is in FP. k For k 1, L is NC k many-one reducible to L’, written L mNC L’, if the function f is in FNC k. L is NC many-one reducible to L’, written L mNC L’, if the function f is in FNC. Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 18 Many-One Reducibility Lemma: The reducibilities m, mP, k NC m (k 1), and mNC are transitive. k NC L’ then L є P. – If L’ є P and L mP L’, L mNC L’ (k > 1), or L m k NC L’ – If L’ є NC (k > 1), and L m k then L є NC k. – If L’ є NC and L mNC L’ then L є NC . Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 19 Turing Reducibility Definition: L is NC Turing reducible to L’, written L TNC L’, if and only if the L’-oracle PRAM on inputs of length n uses time (logn)O(1) and processors n O(1). Lemma: The reducibility TNC is transitive. – If L mNC L’ then L TNC L’. – If L TNC L’ and L’ є NC then L є NC. – If L TNC L’ and L’ є P then L є P. Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 20 Completeness Definitions: A language L is P-hard under NC reducibility if L’ TNC L for every L’ є P. A language L is P-complete under NC reducibility if L є P and L is P-hard. Theorem: If any P-complete problem is in NC then NC equals P. Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 21 Part I: Outline • • • • • • • Introduction Parallel Models of Computation Basic Complexity Evidence that NC Ρ Ρ-Complete Problems Comparator Circuit Class Open Problems Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 22 Evidence That NC P • General Simulations Are Not Fast • Fast Simulations Are Not General • Natural Approaches Provably Fail Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 23 Evidence That NC P Gaps in Simulations Model DTM DTM ATM PDA UC PRAM Resource 1 Resource 2 Time = n O(1) Time = n O(1) 2Space = n O(1) 2Space = n O(1) Size = n O(1) Procs = n O(1) Space Reversals log(Treesize) log(Time) Depth Time Max R2 C NC log n (log n)O(1) (log n)O(1) (log n)O(1) (log n)O(1) (log n)O(1) Min R2 CP n O(1) n O(1) n O(1) n O(1) n O(1) n O(1) Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 24 Part I (b): Ρ-Complete Problem Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 25 Part I: Outline • • • • • • • Introduction Parallel Models of Computation Basic Complexity Evidence that NC Ρ Ρ-Complete Problems Comparator Circuit Class Open Problems Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 26 P-Complete Problems There are approximately 175 P-complete problems (500 with variations). Categories: – – – – Circuit complexity Graph theory Searching graphs Combinatorial optimization and flow – Local optimality – Logic – – – – – – Formal languages Algebra Geometry Real analysis Games Miscellaneous Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 27 Circuit Value Problem Given: An encoding of a Boolean circuit , inputs x1,…,xn, and a designated output y. Problem: Is output y of TRUE on input x1,…,xn? Theorem: [Ladner 75] The Circuit Value Problem is P-complete under reductions. Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 1 NC m 28 P-Complete Variations of CVP – Topologically Ordered [Folklore] – Monotone [Goldschlager 77] – Alternating Monotone Fanin 2, Fanout 2 [Folklore] – NAND [Folklore] – Topologically Ordered NOR [Folklore] – Synchronous Alternating Monotone Fanout 2 CVP [Greenlaw, Hoover, and Ruzzo 87] – Planar [Goldschlager 77] Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 29 NAND Circuit Value Problem Given: An encoding of a Boolean circuit that consists solely of NAND gates, inputs x1,…,xn, and a designated output y. Problem: Is output y of TRUE on input x1,…,xn? Theorem: The NAND Circuit Value Problem is P-complete. Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 30 NAND Circuit Value Problem Proof: Reduce AM2CVP to NAND CVP. Complement all inputs. Relabel all gates as NAND. 1 0 0 OR 1 OR 1 1 0 0 1 1 NAND 1 NAND 1 AND 0 1 NAND 1 0 OR 1 NAND 1 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 31 Graph Theory – Lexicographically First Maximal Independent Set [Cook 85] – Lexicographically First ( + 1)-Vertex Coloring [Luby 84] – High Degree Subgraph [Anderson and Mayr 84] – Nearest Neighbor Traveling Salesman Heuristic [Kindervater, Lenstra, and Shmoys 89] Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 32 Lexicographically First Maximal Independent Set Theorem: [Cook 85] LFMIS is P-complete. Proof: Reduce TopNOR CVP to LFMIS. Add new vertex 0. Connect to all false inputs. 1 1 1 2 0 0 3 0 4 NOR 5 NOR 6 X X X 1 2 0 3 4 5 7 0 6 1 NOR 8 X 7 8 0 NOR 9 0 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 9 33 Searching Graphs – Lexicographically First Depth-First Search Ordering [Reif 85] – Stack Breadth-First Search [Greenlaw 92] – Breadth-Depth Search [Greenlaw 93] Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 34 Context-Free Grammar Empty Given: A context-free grammar G = (N,T,P,S). Problem: Is L(G) empty? Theorem: [Jones and Laaser 76], [Goldschlager 81], [Tompa 91] CFGempty is P-complete. Proof: Reduce Monotone CVP to CFGempty. Given construct G = (N,T,P,S) with N, T, S, and P as follows: Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 35 Context-Free Grammar Empty N = {i | vi is a vertex in } T = {a } S = n, where vn is the output of . P as follows: 1. For input vi, i a if value of vi is 1, 2. i jk if vi vj Λ vk, and 3. i j | k if vi vj V vk . * , where є {a }+. Then the value of vi is 1 if and only if i Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 36 CFGempty Example x1 = 0, x2 = 0, x3 = 1, and x4 = 1. 1 x1 x3 3 2 x2 5 OR x4 4 AND 6 7 AND G = (N, T, S, P ), where N = {1, 2, 3, 4, 5, 6, 7 } T = {a } S=7 P = {3 a, 4 a, 5 1 | 2, 6 34, 7 56} Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 37 Part I: Outline • • • • • • • Introduction Parallel Models of Computation Basic Complexity Evidence that NC Ρ Ρ-Complete Problems Comparator Circuit Class Open Problems Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 38 Comparator Circuit Class Definition: [Cook 82] Comparator Circuit Value Problem (CCVP) Given: An encoding of a circuit composed of comparator gates, plus inputs x1,…,xn, and a designated output y. Problem: Is output y of TRUE on input x1,…,xn? Definition: CC is the class of languages NC reducible to CCVP. Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 39 CC-Complete Problems – Lexicographically First Maximal Matching [Cook 82] – Telephone Connection [Ramachandran and Wang 91] – Stable Marriage [Mayr and Subramanian 92] Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 40 Part I: Outline • • • • • • • Introduction Parallel Models of Computation Basic Complexity Evidence that NC Ρ Ρ-Complete Problems Comparator Circuit Class Open Problems Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 41 Open Problems Find an NC algorithm or classify as P-complete. – Edge Ranking – Edge-Weighted Matching – Restricted Lexicographically First Maximal Independent Set – Integer Greatest Common Divisor – Modular Powering Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 42 Part II (a): Rankings Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 43 Part II: Outline • • • • • • Introduction Parallel Preliminaries Node Ranking Edge Ranking Prüfer Codes Open Problems Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 44 Part II: Outline • • • • • • Introduction Parallel Preliminaries Node Ranking Edge Ranking Prüfer Codes Open Problems Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 45 Trees Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 46 Part II: Outline • • • • • • Introduction Parallel Preliminaries Node Ranking Edge Ranking Prüfer Codes Open Problems Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 47 Parallel Random Access Machine RAM Processors P0 P1 P2 C0 C1 C2 Global Memory Cells Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 48 Preliminary Parallel Algorithms • • • • • Brent’s Scheduling Principle Parallel Prefix Computation Euler Tour List Ranking Parallel Tree Contraction Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 49 Brent’s Scheduling Principle (Brent 1974) If processor allocation is not a problem then a t(n) time parallel algorithm that requires w(n) computational operations can be simulated using w(n)/p(n) + t(n) time and p(n) processors. Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 50 Example of Brent’s Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 51 Parallel Prefix Computation (Ladner & Fisher 1980) The Parallel Prefix Problem can be solved in O(log n) time using n/log n processors on an EREW-PRAM. Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 52 Example of Parallel Prefix Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 53 Euler Tour (Tarjan & Vishkin 1985) An Euler tour of an n-node tree can be computed in O(log n) time using n/log n processors on an EREW-PRAM. Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 54 Example of Euler Tour Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 55 List Ranking (Anderson & Miller 1988) Given a list with n nodes, the List Ranking Problem can be solved in O(log n) time using n/log n processors on an EREW-PRAM. Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 56 Example of List Ranking Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 57 Parallel Tree Contraction (He 1986; Miller & Teng 1987; Abrahamson, Dadoun, Kirkpatrick & Przytycka 1989) Let T be an n-leaf regular binary expression tree. Then all of the algebraic expressions associated with the internal nodes (one per node) of T can be evaluated in O(log n) time using n/log n processors on an EREW-PRAM. Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 58 Example of Tree Contraction Scrunched tree Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 59 Part II: Outline • • • • • • Introduction Parallel Preliminaries Node Ranking Edge Ranking Prüfer Codes Open Problems Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 60 Node Ranking • A node ranking is a labeling of the nodes of a tree with natural numbers such that if nodes u and v have the same label then there exists another node with a greater label on the path between them. • An optimal node ranking is a node ranking in which the largest label assigned to any node is as small as possible among all node rankings. • The node ranking problem is to compute an optimal node ranking. Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 61 Node Ranking Example Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 62 Node Ranking: Sequential Results • Node Ranking Problem • O(n log n) time (Iyer, Ratliff & Vijayan 1988) • O(n) time (Schaffer 1989) Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 63 Example of Sequential Node Ranking Algorithm • Critical list at * is {3,4} • Label 3 at ** covers values 1 and 2 Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 64 Example of Sequential Node Ranking Algorithm • Critical list at * is {3,4} • Label 3 at ** covers values 1 and 2 Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 65 Node Ranking: Parallel Results • Approximate Optimal Tree Ranking • O(log2 n) time, n processors EREW-PRAM (Liang, Dhall & Lakshmivarahan 1990) • Optimal Tree Ranking • O(log n) time, n2/log n procs CREW-PRAM (de la Torre & Greenlaw 1991) (Przytycka 1991) • Super Critical Tree Numbering O(log n) time, n2/log n procs CREW-PRAM (de la Torre, Greenlaw & Przytycka 1992) Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 66 Part II: Outline • • • • • • Introduction Parallel Preliminaries Node Ranking Edge Ranking Prüfer Codes Open Problems Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 67 Edge Ranking • An edge ranking is a labeling of the edges of a tree with natural numbers such that if edges u and v have the same label then there exists another edge with a greater label on the path between them. • An optimal edge ranking is an edge ranking in which the largest label assigned to any edge is as small as possible among all edge rankings. • The edge ranking problem is to compute an optimal edge ranking. Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 68 Edge Ranking Example Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 69 Edge Ranking: Sequential Results • Approximate Edge Ranking • O(n log n) time (Iyer, Ratliff & Vijayan 1991) • Optimal Edge Ranking • O(n3 log n) time (de la Torre, Greenlaw & Schaffer 1995) • O(n2 log n) time (Zhou, Kashem & Nishizeki 1996) • O(n log n) time, O(n) time (Lam & Ling 1996, 1997) Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 70 From Local to Global Optimality Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 71 Greedy Cover Labeling • Lc > Lc-1 > … > L1 is a greedy cover labeling if and only if cover(Li, crit(vj)) lex cover(Li, crit(vi)) for all i and for all j < i. Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 72 Example of Edge Ranking Algorithm Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 73 Example of Edge Ranking Algorithm Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 74 Example of Edge Ranking Algorithm Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 75 Edge Ranking: Parallel Results • Approximate Edge Ranking • O(log2 n) time, n2/log n processors CREW-PRAM (de la Torre, Greenlaw & Schaffer 1995) • Optimal Edge Ranking of Constant Degree Trees NC (de la Torre, Greenlaw & Schaffer 1995) Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 76 Motivation for Studying Rankings Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 77 Motivation for Studying Rankings Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 78 Part II (b): Prüfer Codes Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 79 Part II: Outline • • • • • • Introduction Parallel Preliminaries Node Ranking Edge Ranking Prüfer Codes Open Problems Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 80 Definition of Prüfer Code A Prüfer code of a labeled free tree with n nodes is a sequence of length n – 2 constructed by the following sequential process: for i ranging from 1 to n – 2 do insert the label of the neighbor of the smallest remaining leaf into the i-th position of the sequence; delete the leaf; Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 81 Example of a Prüfer Code (9,6,5,6,1,6,1,1) Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 82 Related Work • Prüfer code to tree EREW-PRAM O(log n) time, n processors proposed as an open problem the reverse direction (Wang, Chen & Liu 1997) • Tree to Prüfer code EREW-PRAM O(log n) time, n processors (Chen & Wang 1998, Greenlaw & Petreschi 1998) Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 83 Related Work Continued • Chain to Prüfer code EREW-PRAM O(log n) time, n/log n (Greenlaw & Petreschi 1998) • Used Prüfer codes for random tree generation (Kumar, Deo & Kumar 1998) Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 84 Can Sequential Algorithm Prüfer Code Be Parallelized? • Initial intuition suggests no. • What type of running time do we want? • How do we proceed? Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 85 Parallel Algorithm Prüfer Chain The Prüfer code of this chain is (2,8,3,7,5,6) Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 86 Parallel Algorithm Prüfer Chain Step 1: /* Compute the position of each node in the chain. */ 1. Use parallel list ranking to construct the array Position such that Position[i] = v, 1 i n, where node v has a ranking of i in T 4 1 3 2 7 3 5 4 6 5 8 6 2 7 Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 1 8 87 Parallel Algorithm Prüfer Chain Step 2: /* Compute the maximum nodes encountered thus far in left-to-right and right-to-left traversals over the chain. */ 2. Use parallel prefix computation to construct the arrays LRMax and RLMax LRMax[i] = max{Position[j] | 1 j i} RLMax[i] = max{Position[j] | n – i + 1 j n} 0 0 4 1 4 2 7 8 7 8 7 8 8 8 8 8 8 8 Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 9 9 88 Parallel Algorithm Prüfer Chain Step 3: /* Compute when a node becomes a maximum (if it does) for both leftto-right and right-to-left traversals. */ 3. For 1 i n in parallel do if LRMax[i-1] LRMax[i] then LRStart[LRMax[i]] = i; if RLMax[i-1] RLMax[i] then RLStart[RLMax[i]] = i; 0 1 0 2 0 0 1 0 0 0 0 0 3 0 6 3 Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 89 Parallel Algorithm Prüfer Chain Step 4: /* Compute when a node is no longer a maximum (if it was) for both left-to-right and right-to-left traversals. */ 4. For 1 i n in parallel do if LRMax[i] LRMax[i+1] then LREnd[LRMax[i]] = i; if RLMax[i] RLMax[i+1] then RLEnd[RLMax[i]] = i; 0 1 0 2 0 0 2 0 0 0 0 0 5 0 8 8 Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 90 Parallel Algorithm Prüfer Chain Step 5: /* Compute how many positions a node was maximum for. */ 5. For 1 i n in parallel do if LRStart[i] 0 then LRSpan[i] = LREnd[i] - LRStart[i] + 1; if RLStart[i] 0 then RLSpan[i] = RLEnd[i] - RLStart[i] + 1; 0 0 0 1 0 1 0 0 2 0 0 0 0 0 3 0 3 6 Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 91 Parallel Algorithm Prüfer Chain Step 6: /* Compute how many nodes a given node is greater than from the left. Similiarly for the right. */ 6. Use parallel prefix to construct the array LeftClear and RightClear, where 1 i n LeftClear[i] = LRSpan[0] + … + LRSpan[i-1]; RightClear[i] = RLSpan[0] + … + RLSpan[i-1]; 0 0 0 0 2 2 2 5 0 1 2 2 2 2 2 2 Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 92 Parallel Algorithm Prüfer Chain Step 7: /* Removal[i] denotes when the node in Position[i] is removed. */ 7. For 1 i n in parallel do if RLMax[n-i] > LRMax[i-1] then k = LRMax[i]; Removal[i] = i + RightClear[k]; else k = RLMax[n-i+1]; Removal[i] = (n – i) + 1 + LeftClear[k]; 3 4 5 6 7 8 2 1 Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 93 Theorem on Chains (Greenlaw & Petreschi 1998) The Prüfer code of an n-node labeled chain can be computed in O(log n) time using n/log n processors on an EREW-PRAM. Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 94 Parallel Algorithm Prüfer Tree Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 95 Parallel Algorithm Prüfer Tree Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 96 Theorem on Trees (Greenlaw, Halldorsson & Petreschi 1999) The Prüfer code of an n-node labeled free tree can be computed in O(log n) time using n/log n processors on an EREW-PRAM. In the other direction we show Given the Prüfer code of an n-node labeled chain we can output the corresponding chain in O(log n) time using n/log n processors on an EREW-PRAM. Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 97 Prüfer Code Summary Tree to P-code P-code to Tree sequential O(n) folklore O(n) (K 78) parallel O(log n) time, n processors EREW-PRAM (CW 98, GP 98) O(log n) time, n processors EREW-PRAM (WCL 97) For a chain O(log n) time, n/log n processors EREW-PRAM (GHP 99) For a chain O(log n) time, n/log n processors EREW-PRAM (GHP 99) For a tree O(log n) time, n/log n processors EREW-PRAM (GHP 99) Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 98 Part II: Outline • • • • • • Introduction Parallel Preliminaries Node Ranking Edge Ranking Prüfer Codes Open Problems Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 99 Open Problems • Can an optimal parallel algorithm be developed for building a tree given its Prüfer code? • Can the Element Distinctness Problem be solved on a CREW-PRAM in O(log n) time using n/log n processors? • Is the edge ranking problem on trees P-complete? • Can all n-node trees be labeled with the values 1 through n such that neighors receive pairwise relatively prime labels? Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 100 References See www.cs.armstrong.edu/greenlaw Parallel Computation and Algorithms, Part II: I: An Sequential Introduction and Parallel to Parallel Algorithms Computation for Tree and Ρ-Completeness Problems Theory Raymond Greenlaw 101