Presentation is loading. Please wait.

Presentation is loading. Please wait.

Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 1 Parallel Computation.

Similar presentations


Presentation on theme: "Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 1 Parallel Computation."— Presentation transcript:

1 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 Parallel Computation and Algorithms by Raymond Greenlaw Armstrong Atlantic State University Joint work with: Larry Ruzzo Department of Computer Science University of Washington Pilar de la Torre Department of Computer Science University of New Hampshire Magnus Halldorsson Decode Genetics Teresa Przytycka Department of Biophysics John Hopkins University Medical School Alex Schaffer National Institute of Health Jim Hoover Computer Science Department University of Alberta Rossella Petreschi Department of Computer Science University of Rome La Sapienza

2 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 2 Parallel Computation and Algorithms by Raymond Greenlaw Armstrong Atlantic State University 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

3 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 3 Part I (a): An Introduction to Parallel Computation

4 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

5 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 5 Part I: Outline Introduction Parallel Models of Computation Basic Complexity Evidence that NC  Ρ Ρ-Complete Problems Comparator Circuit Class Open Problems

6 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 6 Introduction Sequential computation: Feasible ~ n O(1) time (polynomial time). Parallel computation: Feasible ~ n O(1) time and ~ n O(1) processors.

7 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 7 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) (number of processors) Allow a polynomial number of processors.  (parallel time).

8 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 8 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.

9 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 9 Part I: Outline Introduction Parallel Models of Computation Basic Complexity Evidence that NC  Ρ Ρ-Complete Problems Comparator Circuit Class Open Problems

10 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 10 Parallel Models of Computation Parallel Random Access Machine Model Boolean Circuit Model Circuits and PRAMs

11 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 11 Parallel Random Access Machine RAM Processors Global Memory Cells P0P0 P1P1 P2P2 C0C0 C1C1 C2C2

12 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 12 Boolean Circuit Model 1 01 1 0 ANDOR AND OR NOT

13 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 13 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).

14 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 14 Part I: Outline Introduction Parallel Models of Computation Basic Complexity Evidence that NC  Ρ Ρ-Complete Problems Comparator Circuit Class Open Problems

15 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 15 Basic Complexity Decision, Function, and Search Problems Complexity Classes Reducibility Completeness

16 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 16 Decision, Function, and Search Problems 44 44 33366 Spanning Tree-D 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.

17 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 17 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 ).

18 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 18 Definitions: A language L is many-one reducible to a language L’, written L  P 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  P L’, if the function f is in FP. For k  1, L is NC k many-one reducible to L’, written L  NC k L’, if the function f is in FNC k. L is NC many-one reducible to L’, written L  NC L’, if the function f is in FNC. Many-One Reducibility mm mm mm mm

19 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 19 Many-One Reducibility mm Lemma: The reducibilities  m,  P,  NC k (k  1), and  NC are transitive. –If L’ є P and L  P L’, L  NC k L’ (k > 1), or L  NC L’ then L є P. –If L’ є NC k (k > 1), and L  NC k L’ then L є NC k. –If L’ є NC and L  NC L’ then L є NC. mm mm mm mm mm mm mm

20 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 20 Turing Reducibility Definition: L is NC Turing reducible to L’, written L  NC 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  NC is transitive. –If L  NC L’ then L  NC L’. –If L  NC L’ and L’ є NC then L є NC. –If L  NC L’ and L’ є P then L є P. TT TT mm TT TT TT

21 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 21 Completeness Definitions: A language L is P-hard under NC reducibility if L’  NC 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. TT

22 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 22 Part I: Outline Introduction Parallel Models of Computation Basic Complexity Evidence that NC  Ρ Ρ-Complete Problems Comparator Circuit Class Open Problems

23 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 23 Evidence That NC  P General Simulations Are Not Fast Fast Simulations Are Not General Natural Approaches Provably Fail

24 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 24 Evidence That NC  P Gaps in Simulations Model Resource 1 Resource 2 Max R2 C  NC Min R2 C  P DTM DTM ATM PDA UC PRAM Time = n O(1) 2 Space = n O(1) 2 Space = n O(1) Size = n O(1) Procs = n O(1) Space Reversals log(Treesize) log(Time) Depth Time log n (log n) O(1) (log n) O(1) (log n) O(1) (log n) O(1) (log n) O(1) n O(1) n O(1) n O(1)

25 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 25 Part I (b): Ρ-Complete Problem

26 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 26 Part I: Outline Introduction Parallel Models of Computation Basic Complexity Evidence that NC  Ρ Ρ-Complete Problems Comparator Circuit Class Open Problems

27 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 27 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

28 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 28 Circuit Value Problem Given: An encoding  of a Boolean circuit , inputs x 1,…,x n, and a designated output y. Problem: Is output y of  TRUE on input x 1,…,x n ? Theorem: [Ladner 75] The Circuit Value Problem is P-complete under  NC 1 reductions. mm

29 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 29 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]

30 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 30 NAND Circuit Value Problem Given: An encoding  of a Boolean circuit  that consists solely of NAND gates, inputs x 1,…,x n, and a designated output y. Problem : Is output y of  TRUE on input x 1,…,x n ? Theorem: The NAND Circuit Value Problem is P-complete.

31 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 31 NAND Circuit Value Problem Proof: Reduce AM2CVP to NAND CVP. Complement all inputs. Relabel all gates as NAND. 01001 1 1 OR AND OR 1 1 10110 1 1 NAND 1 0

32 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 32 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]

33 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 33 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. 12345 NOR 9 8 7 6 11000 0 1 12345 67 0 8 9 0 0 X X X X

34 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 34 Searching Graphs –Lexicographically First Depth-First Search Ordering [Reif 85] –Stack Breadth-First Search [Greenlaw 92] –Breadth-Depth Search [Greenlaw 93]

35 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 35 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:

36 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 36 Context-Free Grammar Empty N = {i | v i is a vertex in  } T = {a } S = n, where v n is the output of . P as follows: 1. For input v i, i  a i f value of v i is 1, 2. i  jk i f v i  v j Λ v k, and 3. i  j | k if v i  v j V v k. Then the value of v i is 1 if and only if i  , where  є {a } +. *

37 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 37 CFGempty Example x 1 = 0, x 2 = 0, x 3 = 1, and x 4 = 1. 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} 1234 56 7 x3x3 x4x4 x1x1 x2x2 OR AND

38 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 38 Part I: Outline Introduction Parallel Models of Computation Basic Complexity Evidence that NC  Ρ Ρ-Complete Problems Comparator Circuit Class Open Problems

39 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 39 Comparator Circuit Class Definition: [Cook 82] Comparator Circuit Value Problem (CCVP) Given: An encoding  of a circuit  composed of comparator gates, plus inputs x 1,…,x n, and a designated output y. Problem: Is output y of  TRUE on input x 1,…,x n ? Definition: CC is the class of languages NC reducible to CCVP.

40 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 40 CC-Complete Problems –Lexicographically First Maximal Matching [Cook 82] –Telephone Connection [Ramachandran and Wang 91] –Stable Marriage [Mayr and Subramanian 92]

41 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 41 Part I: Outline Introduction Parallel Models of Computation Basic Complexity Evidence that NC  Ρ Ρ-Complete Problems Comparator Circuit Class Open Problems

42 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 42 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

43 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 43 Part II (a): Rankings

44 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness 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: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

45 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 45 Part II: Outline Introduction Parallel Preliminaries Node Ranking Edge Ranking Prüfer Codes Open Problems Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

46 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 46 Trees Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

47 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 47 Part II: Outline Introduction Parallel Preliminaries Node Ranking Edge Ranking Prüfer Codes Open Problems Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

48 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 48 Parallel Random Access Machine Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw RAM Processors Global Memory Cells P0P0 P1P1 P2P2 C0C0 C1C1 C2C2

49 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 49 Preliminary Parallel Algorithms Brent’s Scheduling Principle Parallel Prefix Computation Euler Tour List Ranking Parallel Tree Contraction Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

50 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 50 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: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

51 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 51 Example of Brent’s Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

52 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 52 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: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

53 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 53 Example of Parallel Prefix Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

54 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 54 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: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

55 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 55 Example of Euler Tour Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

56 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 56 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: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

57 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 57 Example of List Ranking Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

58 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 58 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: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

59 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 59 Example of Tree Contraction Scrunched tree Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

60 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 60 Part II: Outline Introduction Parallel Preliminaries Node Ranking Edge Ranking Prüfer Codes Open Problems Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

61 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 61 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: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

62 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 62 Node Ranking Example Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

63 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 63 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: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

64 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness 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: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

65 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 65 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: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

66 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 66 Node Ranking: Parallel Results Approximate Optimal Tree Ranking O(log 2 n) time, n processors EREW-PRAM (Liang, Dhall & Lakshmivarahan 1990) Optimal Tree Ranking O(log n) time, n 2 /log n procs CREW-PRAM (de la Torre & Greenlaw 1991) (Przytycka 1991) Super Critical Tree Numbering O(log n) time, n 2 /log n procs CREW-PRAM (de la Torre, Greenlaw & Przytycka 1992) Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

67 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 67 Part II: Outline Introduction Parallel Preliminaries Node Ranking Edge Ranking Prüfer Codes Open Problems Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

68 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 68 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: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

69 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 69 Edge Ranking Example Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

70 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 70 Edge Ranking: Sequential Results Approximate Edge Ranking O(n log n) time (Iyer, Ratliff & Vijayan 1991) Optimal Edge Ranking O(n 3 log n) time (de la Torre, Greenlaw & Schaffer 1995) O(n 2 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: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

71 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 71 From Local to Global Optimality Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

72 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 72 Greedy Cover Labeling L c > L c-1 > … > L 1 is a greedy cover labeling if and only if cover(L i, crit(v j ))  lex cover(L i, crit(v i )) for all i and for all j < i. Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

73 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 73 Example of Edge Ranking Algorithm Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

74 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 74 Example of Edge Ranking Algorithm Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

75 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 75 Example of Edge Ranking Algorithm Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

76 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 76 Edge Ranking: Parallel Results Approximate Edge Ranking O(log 2 n) time, n 2 /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: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

77 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 77 Motivation for Studying Rankings Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

78 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 78 Motivation for Studying Rankings Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

79 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 79 Part II (b): Prüfer Codes

80 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 80 Part II: Outline Introduction Parallel Preliminaries Node Ranking Edge Ranking Prüfer Codes Open Problems Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

81 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 81 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: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

82 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 82 Example of a Prüfer Code (9,6,5,6,1,6,1,1) Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

83 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 83 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: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

84 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 84 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: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

85 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 85 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: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

86 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 86 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: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

87 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 87 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 43756821 12345678 Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

88 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 88 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} 0447778889 0128888889 Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

89 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 89 Parallel Algorithm Prüfer Chain Step 3: /* Compute when a node becomes a maximum (if it does) for both left- to-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; 00010036 12000003 Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

90 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 90 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; 00020058 12000008 Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

91 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 91 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; 000020033 011000006 Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

92 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 92 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]; 00002225 01222222 Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

93 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 93 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]; 34567821 Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

94 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 94 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: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

95 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 95 Parallel Algorithm Prüfer Tree Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

96 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 96 Parallel Algorithm Prüfer Tree Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

97 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 97 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: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

98 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 98 Prüfer Code Summary Tree to P-codeP-code to Tree sequentialO(n) folkloreO(n) (K 78) parallelO(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: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

99 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 99 Part II: Outline Introduction Parallel Preliminaries Node Ranking Edge Ranking Prüfer Codes Open Problems Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

100 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 100 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: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw

101 Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 101 References See www.cs.armstrong.edu/greenlaw Parallel Computation and Algorithms, Part II: Sequential and Parallel Algorithms for Tree Problems Raymond Greenlaw


Download ppt "Parallel Computation and Algorithms, Part I: An Introduction to Parallel Computation and Ρ-Completeness Theory Raymond Greenlaw 1 Parallel Computation."

Similar presentations


Ads by Google