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
R. Petreschi
Department of Computer Science
University of Rome La Sapienza
M. Halldorsson
Decode Genetics
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
A. Schaffer
National Institute of Health
T. Przytycka
Department of Biophysics
John Hopkins University Medical School
1
Outline
•
•
•
•
•
•
Introduction
Parallel Preliminaries
Node Ranking
Edge Ranking
Prüfer Codes
Open Problems
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
2
Outline
•
•
•
•
•
•
Introduction
Parallel Preliminaries
Node Ranking
Edge Ranking
Prüfer Codes
Open Problems
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
3
Trees
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
4
Outline
•
•
•
•
•
•
Introduction
Parallel Preliminaries
Node Ranking
Edge Ranking
Prüfer Codes
Open Problems
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
5
Parallel Random Access Machine
RAM Processors
P0
P1
P2
C0
C1
C2
Global Memory Cells
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
6
Preliminary Parallel Algorithms
•
•
•
•
•
Brent’s Scheduling Principle
Parallel Prefix Computation
Euler Tour
List Ranking
Parallel Tree Contraction
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
7
Brent’s Scheduling Principle
(Brent)
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.
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
8
Example of Brent’s
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
9
Parallel Prefix Computation
(Ladner & Fisher)
The Parallel Prefix 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 Trees
Raymond Greenlaw
10
Example of Parallel Prefix
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
11
Euler Tour
(Tarjan & Vishkin)
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.
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
12
Example of Euler Tour
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
13
List 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 Trees
Raymond Greenlaw
14
Example of List Ranking
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
15
Parallel Tree Contraction
(He; Miller & Teng; Abrahamson, Dadoun,
Kirkpatrick & Przytycka)
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.
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
16
Example of Tree Contraction
Scrunched tree
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
17
Outline
•
•
•
•
•
•
Introduction
Parallel Preliminaries
Node Ranking
Edge Ranking
Prüfer Codes
Open Problems
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
18
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.
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
19
Node Ranking Example
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
20
Node Ranking: Sequential Results
• Node Ranking Problem
• O(n log n) time
(Iyer, Ratliff & Vijayan)
• O(n) time
(Schaffer)
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
21
Example of Sequential Node Ranking
Algorithm
• Critical list at * is {3,4}
• Label 3 at ** covers values 1 and 2
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
22
Example of Sequential Node Ranking
Algorithm
• Critical list at * is {3,4}
• Label 3 at ** covers values 1 and 2
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
23
Node Ranking: Parallel Results
• 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 Trees
Raymond Greenlaw
24
Outline
•
•
•
•
•
•
Introduction
Parallel Preliminaries
Node Ranking
Edge Ranking
Prüfer Codes
Open Problems
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
25
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.
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
26
Edge Ranking Example
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
27
Edge Ranking: Sequential Results
• Approximate Edge Ranking
• O(n log n) time
(Iyer, Ratliff & Vijayan)
• Optimal Edge Ranking
• O(n3 log n) time
(de la Torre, Greenlaw & Schaffer)
• O(n2 log n) time
(Zhou, Kashem & Nishizeki)
• O(n log n) time, O(n) time
(Lam & Ling)
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
28
From Local to Global Optimality
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
29
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.
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
30
Example of Edge
Ranking Algorithm
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
31
Example of Edge
Ranking Algorithm
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
32
Example of Edge
Ranking Algorithm
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
33
Edge Ranking: Parallel Results
• 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 Trees
Raymond Greenlaw
34
Motivation for Studying Rankings
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
35
Motivation for Studying Rankings
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
36
Outline
•
•
•
•
•
•
Introduction
Parallel Preliminaries
Node Ranking
Edge Ranking
Prüfer Codes
Open Problems
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
37
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;
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
38
Example of a Prüfer Code
(9,6,5,6,1,6,1,1)
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
39
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)
• Tree to Prüfer code
EREW-PRAM O(log n) time, n processors
(Chen & Wang, Greenlaw & Petreschi)
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
40
Related Work Continued
• Chain to Prüfer code
EREW-PRAM O(log n) time, n/log n
(Greenlaw & Petreschi)
• Used Prüfer codes for random
tree generation
(Kumar, Deo & Kumar)
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
41
Can Sequential Algorithm
Prüfer Code Be Parallelized?
• Initial intuition suggests no.
• What type of running time do we want?
• How do we proceed?
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
42
Parallel Algorithm Prüfer Chain
The Prüfer code of this chain is
(2,8,3,7,5,6)
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
43
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
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
5
4
6
5
8
6
2
7
1
8
44
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
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
7
8
7
8
8
8
8
8
8
8
9
9
45
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
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
1
0
0
0
0
0
3
0
6
3
46
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
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
2
0
0
0
0
0
5
0
8
8
47
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
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
2
0
0
0
0
0
3
0
3
6
48
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
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
49
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
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
6
7
8
2
1
50
Theorem 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 Trees
Raymond Greenlaw
51
Parallel Algorithm Prüfer Tree
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
52
Parallel Algorithm Prüfer Tree
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
53
Theorem 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 Trees
Raymond Greenlaw
54
Prüfer Code Summary
Tree to P-code
P-code to Tree
sequential
O(n) folklore
O(n)
parallel
O(log n) time, n processors
EREW-PRAM
O(log n) time, n processors
EREW-PRAM
For a chain
O(log n) time,
n/log n processors
EREW-PRAM
For a chain
O(log n) time, n/log n
processors
EREW-PRAM
For a tree
O(log n) time, n/log n processors
EREW-PRAM
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
55
Outline
•
•
•
•
•
•
Introduction
Parallel Preliminaries
Node Ranking
Edge Ranking
Prüfer Codes
Open Problems
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
56
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?
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
57
References
See
www.cs.armstrong.edu/greenlaw
Sequential and Parallel Algorithms for Some Problems on Trees
Raymond Greenlaw
58
© Copyright 2026 Paperzz