Sequential and Parallel Algorithms for Some Problems on Trees Raymond Greenlaw 1 Sequential and Parallel Algorithms for Some Problems on Trees by Raymond Greenlaw Armstrong Atlantic State University Joint work with: P. de la Torre Department of Computer Science University of New Hampshire M. Halldorsson Decode Genetics T. Przytycka Department of Biophysics John Hopkins University Medical School A. Schaffer National Institute of Health R. Petreschi Department of Computer Science University of Rome La Sapienza
58
Embed
Sequential and Parallel Algorithms for Some Problems on Trees Raymond Greenlaw 1 Sequential and Parallel Algorithms for Some Problems on Trees by Raymond.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
1
Sequential and Parallel Algorithms for Some Problems on Trees
by
Raymond GreenlawArmstrong Atlantic State University
Sequential and Parallel Algorithms for Some Problems on Trees
by
Raymond GreenlawArmstrong Atlantic State University
Joint work with:P. de la Torre
Department of Computer ScienceUniversity of New Hampshire
M. Halldorsson Decode Genetics
T. Przytycka Department of Biophysics
John Hopkins University Medical School
A. SchafferNational Institute of Health
R. Petreschi Department of Computer ScienceUniversity of Rome La Sapienza
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
(Ladner & Fisher)The Parallel Prefix Problem can besolved in O(log n) time using n/log nprocessors on an EREW-PRAM.
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
11
Example of Parallel PrefixExample of Parallel Prefix
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
12
Euler Tour Euler Tour
(Tarjan & Vishkin)An Euler tour of an n-node tree can becomputed in O(log n) time using n/log nprocessors on an EREW-PRAM.
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
13
Example of Euler TourExample of Euler Tour
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
14
List RankingList Ranking
(Anderson & Miller)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.
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
15
Example of List RankingExample of List Ranking
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
16
Parallel Tree ContractionParallel Tree Contraction
(He; Miller & Teng; Abrahamson, Dadoun, Kirkpatrick & Przytycka)
Let T be an n-leaf regular binary expressiontree. Then all of the algebraic expressionsassociated with the internal nodes (one pernode) of T can be evaluated in O(log n) time using n/log n processors on an EREW-PRAM.
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
17
Example of Tree ContractionExample of Tree Contraction
Scrunched tree
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
19
Node RankingNode 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.
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
20
Node Ranking ExampleNode Ranking Example
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
• Approximate Optimal Tree Ranking• O(log2 n) time, n processors EREW-PRAM (Liang, Dhall & Lakshmivarahan)• Optimal Tree Ranking• O(log n) time, n2/log n procs CREW-PRAM (de la Torre & Greenlaw) (Przytycka)• Super Critical Tree Numbering O(log n) time, n2/log n procs CREW-PRAM (de la Torre, Greenlaw & Przytycka)
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
26
Edge RankingEdge 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.
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
27
Edge Ranking ExampleEdge Ranking Example
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
• Approximate Edge Ranking• O(log2 n) time, n2/log n processors CREW-PRAM (de la Torre, Greenlaw & Schaffer)• Optimal Edge Ranking of Constant Degree Trees NC (de la Torre, Greenlaw & Schaffer)
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
35
Motivation for Studying RankingsMotivation for Studying Rankings
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
36
Motivation for Studying RankingsMotivation for Studying Rankings
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
44
Parallel Algorithm Prüfer ChainStep 1:
Parallel Algorithm Prüfer ChainStep 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
12865734
87654321
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
45
Parallel Algorithm Prüfer ChainStep 2:
Parallel Algorithm Prüfer ChainStep 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 4 4 7 7 7 8 8 8 9
0 1 2 8 8 8 8 8 8 9
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
46
Parallel Algorithm Prüfer ChainStep 3:
Parallel Algorithm Prüfer ChainStep 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;
0 0 0 1 0 0 3 6
1 2 0 0 0 0 0 3
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
47
Parallel Algorithm Prüfer ChainStep 4:
Parallel Algorithm Prüfer ChainStep 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 0 0 2 0 0 5 8
1 2 0 0 0 0 0 8
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
48
Parallel Algorithm Prüfer ChainStep 5:
Parallel Algorithm Prüfer ChainStep 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 0 2 0 0 3 3
0 1 1 0 0 0 0 0 6
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
49
Parallel Algorithm Prüfer ChainStep 6:
Parallel Algorithm Prüfer ChainStep 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
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
50
Parallel Algorithm Prüfer ChainStep 7:
Parallel Algorithm Prüfer ChainStep 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
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
51
Theorem on ChainsTheorem on Chains
(Greenlaw & Petreschi)
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.
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
52
Parallel Algorithm Prüfer TreeParallel Algorithm Prüfer Tree
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
53
Parallel Algorithm Prüfer TreeParallel Algorithm Prüfer Tree
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
54
Theorem on TreesTheorem on Trees
(Greenlaw, Halldorsson & Petreschi) 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.
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw
55
Prüfer Code SummaryPrüfer Code Summary
Tree to P-code P-code to Tree
sequential
O(n) folklore O(n)
parallel O(log n) time, n processorsEREW-PRAM
O(log n) time, n processorsEREW-PRAM
For a chain O(log n) time,n/log n processors EREW-PRAM
For a chainO(log n) time, n/log n processorsEREW-PRAM
For a treeO(log n) time, n/log n processorsEREW-PRAM
Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw