sequential and parallel algorithms for some problems on trees raymond greenlaw 1 sequential and...

Post on 27-Mar-2015

234 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

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

2

OutlineOutline

• Introduction• Parallel Preliminaries• Node Ranking• Edge Ranking• Prüfer Codes• Open Problems

Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw

3

OutlineOutline

• Introduction• Parallel Preliminaries• Node Ranking• Edge Ranking• Prüfer Codes• Open Problems

Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw

4

TreesTrees

Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw

5

OutlineOutline

• Introduction• Parallel Preliminaries• Node Ranking• Edge Ranking• Prüfer Codes• Open Problems

Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw

6

Parallel Random Access MachineParallel Random Access Machine

RAM Processors

Global Memory Cells

P0 P1 P2

C0 C1 C2

Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw

7

Preliminary Parallel AlgorithmsPreliminary Parallel Algorithms

• Brent’s Scheduling Principle• Parallel Prefix Computation• Euler Tour• List Ranking• Parallel Tree Contraction

Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw

8

Brent’s Scheduling PrincipleBrent’s Scheduling Principle

(Brent) If processor allocation is not a problemthen a t(n) time parallel algorithm that requires w(n) computational operations

canbe simulated using w(n)/p(n) + t(n) time

andp(n) processors.

Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw

9

Example of Brent’sExample of Brent’s

Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw

10

Parallel Prefix ComputationParallel Prefix Computation

(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

18

OutlineOutline

• Introduction• Parallel Preliminaries• Node Ranking• Edge Ranking• Prüfer Codes• Open Problems

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

21

Node Ranking: Sequential ResultsNode 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 TreesRaymond Greenlaw

22

Example of Sequential Node Ranking Algorithm

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 TreesRaymond Greenlaw

23

Example of Sequential Node Ranking Algorithm

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 TreesRaymond Greenlaw

24

Node Ranking: Parallel ResultsNode 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 TreesRaymond Greenlaw

25

OutlineOutline

• Introduction• Parallel Preliminaries• Node Ranking• Edge Ranking• Prüfer Codes• Open Problems

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

28

Edge Ranking: Sequential ResultsEdge 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 TreesRaymond Greenlaw

29

From Local to Global OptimalityFrom Local to Global Optimality

Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw

30

Greedy Cover LabelingGreedy 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 TreesRaymond Greenlaw

31

Example of Edge Ranking AlgorithmExample of Edge Ranking Algorithm

Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw

32

Example of Edge Ranking AlgorithmExample of Edge Ranking Algorithm

Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw

33

Example of Edge Ranking AlgorithmExample of Edge Ranking Algorithm

Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw

34

Edge Ranking: Parallel ResultsEdge 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 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

37

OutlineOutline

• Introduction• Parallel Preliminaries• Node Ranking• Edge Ranking• Prüfer Codes• Open Problems

Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw

38

Definition of Prüfer CodeDefinition 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 TreesRaymond Greenlaw

39

Example of a Prüfer CodeExample of a Prüfer Code

(9,6,5,6,1,6,1,1)

Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw

40

Related WorkRelated 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 TreesRaymond Greenlaw

41

Related Work ContinuedRelated 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 TreesRaymond Greenlaw

42

Can Sequential AlgorithmPrüfer Code Be Parallelized?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 TreesRaymond Greenlaw

43

Parallel Algorithm Prüfer ChainParallel 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 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

56

OutlineOutline

• Introduction• Parallel Preliminaries• Node Ranking• Edge Ranking• Prüfer Codes• Open Problems

Sequential and Parallel Algorithms for Some Problems on TreesRaymond Greenlaw

57

Open ProblemsOpen 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 TreesRaymond Greenlaw

58

ReferencesReferences

See www.cs.armstrong.edu/greenlaw

top related