Approximation Algorithms for the Maximum Leaf Spanning Tree Problem - - PowerPoint PPT Presentation

approximation algorithms for the maximum leaf spanning
SMART_READER_LITE
LIVE PREVIEW

Approximation Algorithms for the Maximum Leaf Spanning Tree Problem - - PowerPoint PPT Presentation

Approximation Algorithms for the Maximum Leaf Spanning Tree Problem on Acyclic Digraphs Nadine Schwartges Joachim Spoerhase Alexander Wolff WAOA 11 Lehrstuhl f ur Informatik I Universit at W urzburg, Germany Problem


slide-1
SLIDE 1

Approximation Algorithms for the Maximum Leaf Spanning Tree Problem

  • n Acyclic Digraphs

Nadine Schwartges · Joachim Spoerhase · Alexander Wolff

Lehrstuhl f¨ ur Informatik I Universit¨ at W¨ urzburg, Germany

WAOA ’11

slide-2
SLIDE 2

Problem Definition

Given a digraph G with root r, find an r-rooted spanning tree with the maximum number of leaves. r

slide-3
SLIDE 3

Problem Definition

Given a digraph G with root r, find an r-rooted spanning tree with the maximum number of leaves. r r G

slide-4
SLIDE 4

Previous Results

Undirected graphs

classical NP-hard problem listed by Garey & Johnson [’74]

slide-5
SLIDE 5

Previous Results

Undirected graphs

classical NP-hard problem listed by Garey & Johnson [’74] 3-approximation by local search [Lu and Ravi ’90] O(n5) running time

slide-6
SLIDE 6

Previous Results

Undirected graphs

classical NP-hard problem listed by Garey & Johnson [’74] 3-approximation by local search [Lu and Ravi ’90] O(n5) running time 3-approximation in (almost) linear time by expansion-based approach [Lu and Ravi ’98]

slide-7
SLIDE 7

Previous Results

Undirected graphs

classical NP-hard problem listed by Garey & Johnson [’74] 3-approximation by local search [Lu and Ravi ’90] O(n5) running time 3-approximation in (almost) linear time by expansion-based approach [Lu and Ravi ’98] linear-time 2-approximation by expansion [Solis-Oba ’98]

slide-8
SLIDE 8

Previous Results

Undirected graphs

classical NP-hard problem listed by Garey & Johnson [’74] 3-approximation by local search [Lu and Ravi ’90] O(n5) running time 3-approximation in (almost) linear time by expansion-based approach [Lu and Ravi ’98] linear-time 2-approximation by expansion [Solis-Oba ’98]

Digraphs

√ OPT-approximation [Drescher and Vetta, ’10] 92-approximation [Daligault and Thomass´ e, 10]

slide-9
SLIDE 9

Previous Results

Undirected graphs

classical NP-hard problem listed by Garey & Johnson [’74] 3-approximation by local search [Lu and Ravi ’90] O(n5) running time 3-approximation in (almost) linear time by expansion-based approach [Lu and Ravi ’98] linear-time 2-approximation by expansion [Solis-Oba ’98]

Digraphs

√ OPT-approximation [Drescher and Vetta, ’10] What about special classes of digraphs? 92-approximation [Daligault and Thomass´ e, 10]

slide-10
SLIDE 10

Previous Results

Undirected graphs

classical NP-hard problem listed by Garey & Johnson [’74] 3-approximation by local search [Lu and Ravi ’90] O(n5) running time 3-approximation in (almost) linear time by expansion-based approach [Lu and Ravi ’98] linear-time 2-approximation by expansion [Solis-Oba ’98]

Digraphs

√ OPT-approximation [Drescher and Vetta, ’10] What about special classes of digraphs?

DAGs

92-approximation [Daligault and Thomass´ e, 10]

slide-11
SLIDE 11

Our Results for DAGs

MaxSNP-hard, i.e., no PTAS linear-time 4-approximation algorithm linear-time 2-approximation algorithm (expansion-based)

slide-12
SLIDE 12

Our Results for DAGs

MaxSNP-hard, i.e., no PTAS linear-time 4-approximation algorithm linear-time 2-approximation algorithm (expansion-based)

slide-13
SLIDE 13

Algorithm

Input: acyclic digraph G with root r Output: spanning tree T mark r F ← expand(G) T ← connect(G, F) return T r G

slide-14
SLIDE 14

Algorithm

Input: acyclic digraph G with root r Output: spanning tree T mark r F ← expand(G) T ← connect(G, F) return T r G

slide-15
SLIDE 15

Algorithm

Input: acyclic digraph G with root r Output: spanning tree T mark r F ← expand(G) T ← connect(G, F) return T r G

slide-16
SLIDE 16

Procedure expand

F ← ∅ foreach node v in G do if v / ∈ F then F ← F + v Uv ← unmarked children of v if |Uv| ≥ 2 then F ← F + Uv foreach u ∈ Uv do F ← F + (v, u) mark u F G v r

slide-17
SLIDE 17

Procedure expand

F ← ∅ foreach node v in G do if v / ∈ F then F ← F + v Uv ← unmarked children of v if |Uv| ≥ 2 then F ← F + Uv foreach u ∈ Uv do F ← F + (v, u) mark u F G v r

slide-18
SLIDE 18

Procedure expand

F ← ∅ foreach node v in G do if v / ∈ F then F ← F + v Uv ← unmarked children of v if |Uv| ≥ 2 then F ← F + Uv foreach u ∈ Uv do F ← F + (v, u) mark u F G v Uv r

slide-19
SLIDE 19

Procedure expand

F ← ∅ foreach node v in G do if v / ∈ F then F ← F + v Uv ← unmarked children of v if |Uv| ≥ 2 then F ← F + Uv foreach u ∈ Uv do F ← F + (v, u) mark u F G v Uv r

slide-20
SLIDE 20

Procedure expand

F ← ∅ foreach node v in G do if v / ∈ F then F ← F + v Uv ← unmarked children of v if |Uv| ≥ 2 then F ← F + Uv foreach u ∈ Uv do F ← F + (v, u) mark u F G v Uv r

slide-21
SLIDE 21

Procedure expand

F ← ∅ foreach node v in G do if v / ∈ F then F ← F + v Uv ← unmarked children of v if |Uv| ≥ 2 then F ← F + Uv foreach u ∈ Uv do F ← F + (v, u) mark u F G v Uv every u ∈ Uv has exactly one incoming edge in F r

slide-22
SLIDE 22

Procedure expand

F ← ∅ foreach node v in G do if v / ∈ F then F ← F + v Uv ← unmarked children of v if |Uv| ≥ 2 then F ← F + Uv foreach u ∈ Uv do F ← F + (v, u) mark u F G v Uv every u ∈ Uv has exactly one incoming edge in F r

slide-23
SLIDE 23

Procedure expand

F ← ∅ foreach node v in G do if v / ∈ F then F ← F + v Uv ← unmarked children of v if |Uv| ≥ 2 then F ← F + Uv foreach u ∈ Uv do F ← F + (v, u) mark u F G v r

slide-24
SLIDE 24

Procedure expand

F ← ∅ foreach node v in G do if v / ∈ F then F ← F + v Uv ← unmarked children of v if |Uv| ≥ 2 then F ← F + Uv foreach u ∈ Uv do F ← F + (v, u) mark u F G v Uv r

slide-25
SLIDE 25

Procedure expand

F ← ∅ foreach node v in G do if v / ∈ F then F ← F + v Uv ← unmarked children of v if |Uv| ≥ 2 then F ← F + Uv foreach u ∈ Uv do F ← F + (v, u) mark u F G v r

slide-26
SLIDE 26

Procedure expand

F ← ∅ foreach node v in G do if v / ∈ F then F ← F + v Uv ← unmarked children of v if |Uv| ≥ 2 then F ← F + Uv foreach u ∈ Uv do F ← F + (v, u) mark u F G v Uv r

slide-27
SLIDE 27

Procedure expand

F ← ∅ foreach node v in G do if v / ∈ F then F ← F + v Uv ← unmarked children of v if |Uv| ≥ 2 then F ← F + Uv foreach u ∈ Uv do F ← F + (v, u) mark u F G v r

slide-28
SLIDE 28

Procedure expand

F ← ∅ foreach node v in G do if v / ∈ F then F ← F + v Uv ← unmarked children of v if |Uv| ≥ 2 then F ← F + Uv foreach u ∈ Uv do F ← F + (v, u) mark u F G v Uv r

slide-29
SLIDE 29

Procedure expand

F ← ∅ foreach node v in G do if v / ∈ F then F ← F + v Uv ← unmarked children of v if |Uv| ≥ 2 then F ← F + Uv foreach u ∈ Uv do F ← F + (v, u) mark u F G v r

slide-30
SLIDE 30

Procedure expand

F ← ∅ foreach node v in G do if v / ∈ F then F ← F + v Uv ← unmarked children of v if |Uv| ≥ 2 then F ← F + Uv foreach u ∈ Uv do F ← F + (v, u) mark u F G v Uv r

slide-31
SLIDE 31

Procedure expand

F ← ∅ foreach node v in G do if v / ∈ F then F ← F + v Uv ← unmarked children of v if |Uv| ≥ 2 then F ← F + Uv foreach u ∈ Uv do F ← F + (v, u) mark u F G v r

slide-32
SLIDE 32

Procedure expand

F ← ∅ foreach node v in G do if v / ∈ F then F ← F + v Uv ← unmarked children of v if |Uv| ≥ 2 then F ← F + Uv foreach u ∈ Uv do F ← F + (v, u) mark u F G v Uv r

slide-33
SLIDE 33

Procedure expand

F ← ∅ foreach node v in G do if v / ∈ F then F ← F + v Uv ← unmarked children of v if |Uv| ≥ 2 then F ← F + Uv foreach u ∈ Uv do F ← F + (v, u) mark u F G = v r

slide-34
SLIDE 34

Procedure expand

F ← ∅ foreach node v in G do if v / ∈ F then F ← F + v Uv ← unmarked children of v if |Uv| ≥ 2 then F ← F + Uv foreach u ∈ Uv do F ← F + (v, u) mark u F G = v Uv r

slide-35
SLIDE 35

Procedure expand

F ← ∅ foreach node v in G do if v / ∈ F then F ← F + v Uv ← unmarked children of v if |Uv| ≥ 2 then F ← F + Uv foreach u ∈ Uv do F ← F + (v, u) mark u F G r

slide-36
SLIDE 36

Algorithm

Input: acyclic digraph G with root r Output: spanning tree T mark r F ← expand(G) T ← connect(G, F) return T F G r

slide-37
SLIDE 37

Procedure connect

foreach unmarked node v do choose arbitrary incoming edge e of v in G F ← F + e mark v F G r v

slide-38
SLIDE 38

Procedure connect

foreach unmarked node v do choose arbitrary incoming edge e of v in G F ← F + e mark v F G r v e

slide-39
SLIDE 39

Procedure connect

foreach unmarked node v do choose arbitrary incoming edge e of v in G F ← F + e mark v F G r v e

slide-40
SLIDE 40

Procedure connect

foreach unmarked node v do choose arbitrary incoming edge e of v in G F ← F + e mark v F G r v e

slide-41
SLIDE 41

Procedure connect

foreach unmarked node v do choose arbitrary incoming edge e of v in G F ← F + e mark v F G r e v

slide-42
SLIDE 42

Procedure connect

foreach unmarked node v do choose arbitrary incoming edge e of v in G F ← F + e mark v F G r

slide-43
SLIDE 43

Correctness

⇒ spanning tree

  • Lemma. Given an acyclic digraph G, the algorithm computes

a spanning tree of G. Observations. ◮ If a node is marked, – it has exactly one incoming edge in F (except r) and – no further incoming edges are added. ◮ At the end of the algorithm every node is marked.

slide-44
SLIDE 44

Correctness

⇒ spanning tree

  • Lemma. Given an acyclic digraph G, the algorithm computes

a spanning tree of G. Observations. ◮ If a node is marked, – it has exactly one incoming edge in F (except r) and – no further incoming edges are added. ◮ At the end of the algorithm every node is marked.

slide-45
SLIDE 45

Correctness

⇒ spanning tree

  • Lemma. Given an acyclic digraph G, the algorithm computes

a spanning tree of G. Observations. ◮ If a node is marked, – it has exactly one incoming edge in F (except r) and – no further incoming edges are added. ◮ At the end of the algorithm every node is marked.

slide-46
SLIDE 46

Correctness

⇒ spanning tree

  • Lemma. Given an acyclic digraph G, the algorithm computes

a spanning tree of G. Observations. ◮ If a node is marked, – it has exactly one incoming edge in F (except r) and – no further incoming edges are added. ◮ At the end of the algorithm every node is marked.

slide-47
SLIDE 47

Correctness

⇒ spanning tree

  • Lemma. Given an acyclic digraph G, the algorithm computes

a spanning tree of G. Observations. ◮ If a node is marked, – it has exactly one incoming edge in F (except r) and – no further incoming edges are added. ◮ At the end of the algorithm every node is marked.

slide-48
SLIDE 48

Analysis

  • Def. Let

◮ ¯ F = F − {isolated nodes} = {T0, . . . , Tk}, ◮ ri ← root of Ti and ◮ ¯ L ← set of leaves in ¯ F.

  • Observation. Procedure expand yields forest F.

F

slide-49
SLIDE 49

Analysis

  • Def. Let

◮ ¯ F = F − {isolated nodes} = {T0, . . . , Tk}, ◮ ri ← root of Ti and ◮ ¯ L ← set of leaves in ¯ F.

  • Observation. Procedure expand yields forest F.

T0 T1 ¯ F

slide-50
SLIDE 50

Analysis

  • Def. Let

◮ ¯ F = F − {isolated nodes} = {T0, . . . , Tk}, ◮ ri ← root of Ti and ◮ ¯ L ← set of leaves in ¯ F.

  • Observation. Procedure expand yields forest F.

T0 T1 ¯ F r0 r1

slide-51
SLIDE 51

Analysis

  • Def. Let

◮ ¯ F = F − {isolated nodes} = {T0, . . . , Tk}, ◮ ri ← root of Ti and ◮ ¯ L ← set of leaves in ¯ F.

  • Observation. Procedure expand yields forest F.

T0 T1 ¯ F r0 r1 L

slide-52
SLIDE 52

Analysis

⇒ at least |V (Ti)|/2 leaves for each Ti ∈ ¯ F Expand F in appropriate order: top-down. Every expansion ◮ creates at least two leaves and ◮ destroys exactly one leaf. Lemma 1. For i = 0, . . . , k, any subtree Ti ∈ ¯ F has at least (|V (Ti)| + 1)/2 leaves.

slide-53
SLIDE 53

Analysis

⇒ at least |V (Ti)|/2 leaves for each Ti ∈ ¯ F Expand F in appropriate order: top-down. Every expansion ◮ creates at least two leaves and ◮ destroys exactly one leaf. Lemma 1. For i = 0, . . . , k, any subtree Ti ∈ ¯ F has at least (|V (Ti)| + 1)/2 leaves.

slide-54
SLIDE 54

Analysis

⇒ at least |V (Ti)|/2 leaves for each Ti ∈ ¯ F Expand F in appropriate order: top-down. Every expansion ◮ creates at least two leaves and ◮ destroys exactly one leaf. Lemma 1. For i = 0, . . . , k, any subtree Ti ∈ ¯ F has at least (|V (Ti)| + 1)/2 leaves. F

slide-55
SLIDE 55

Analysis

⇒ at least |V (Ti)|/2 leaves for each Ti ∈ ¯ F Expand F in appropriate order: top-down. Every expansion ◮ creates at least two leaves and ◮ destroys exactly one leaf. Lemma 1. For i = 0, . . . , k, any subtree Ti ∈ ¯ F has at least (|V (Ti)| + 1)/2 leaves. F

slide-56
SLIDE 56

Analysis

⇒ at least |V (Ti)|/2 leaves for each Ti ∈ ¯ F Expand F in appropriate order: top-down. Every expansion ◮ creates at least two leaves and ◮ destroys exactly one leaf. Lemma 1. For i = 0, . . . , k, any subtree Ti ∈ ¯ F has at least (|V (Ti)| + 1)/2 leaves. F . . .

slide-57
SLIDE 57

Analysis

⇒ at least |V (Ti)|/2 leaves for each Ti ∈ ¯ F Expand F in appropriate order: top-down. Every expansion ◮ creates at least two leaves and ◮ destroys exactly one leaf. Lemma 1. For i = 0, . . . , k, any subtree Ti ∈ ¯ F has at least (|V (Ti)| + 1)/2 leaves. F . . .

slide-58
SLIDE 58

Analysis

⇒ at least |V (Ti)|/2 leaves for each Ti ∈ ¯ F Expand F in appropriate order: top-down. Every expansion ◮ creates at least two leaves and ◮ destroys exactly one leaf. Lemma 1. For i = 0, . . . , k, any subtree Ti ∈ ¯ F has at least (|V (Ti)| + 1)/2 leaves. F . . .

slide-59
SLIDE 59

Analysis

Lemma 2. Procedure connect creates a tree with at least |¯ L| − k leaves. T0 T1 T2 F

slide-60
SLIDE 60

Analysis

Lemma 2. Procedure connect creates a tree with at least |¯ L| − k leaves. T0 T1 T2 F

slide-61
SLIDE 61

Analysis

Lemma 2. Procedure connect creates a tree with at least |¯ L| − k leaves. T0 T1 T2 F

slide-62
SLIDE 62

Analysis

Lemma 3. OPT ≤ |V (¯ F)| − k. ⇒ exclusion of k nodes of V (¯ F) show the uniqueness For ◮ each root ri and ◮ each leaf ℓ of T ∗ outside of V (¯ F) identify a unique internal node in T ∗. Let T ∗ be an optimum spanning tree.

slide-63
SLIDE 63

Analysis

Lemma 3. OPT ≤ |V (¯ F)| − k. ⇒ exclusion of k nodes of V (¯ F) show the uniqueness For ◮ each root ri and ◮ each leaf ℓ of T ∗ outside of V (¯ F) identify a unique internal node in T ∗. Let T ∗ be an optimum spanning tree.

slide-64
SLIDE 64

Analysis

Lemma 3. OPT ≤ |V (¯ F)| − k. ⇒ exclusion of k nodes of V (¯ F) show the uniqueness For ◮ each root ri and ◮ each leaf ℓ of T ∗ outside of V (¯ F) identify a unique internal node in T ∗. Let T ∗ be an optimum spanning tree.

slide-65
SLIDE 65

Analysis

Lemma 3. OPT ≤ |V (¯ F)| − k. ⇒ exclusion of k nodes of V (¯ F) show the uniqueness For ◮ each root ri and ◮ each leaf ℓ of T ∗ outside of V (¯ F) identify a unique internal node in T ∗. Let T ∗ be an optimum spanning tree.

slide-66
SLIDE 66

Analysis

Lemma 3. OPT ≤ |V (¯ F)| − k. ⇒ exclusion of k nodes of V (¯ F) show the uniqueness For ◮ each root ri and ◮ each leaf ℓ of T ∗ outside of V (¯ F) identify a unique internal node in T ∗. Let T ∗ be an optimum spanning tree.

slide-67
SLIDE 67

Analysis

case 1: u, v, w ∈ path u procedure expand Take the first node in V (¯ F) on the way from ri or ℓ to r. u is first node ∈ V (¯ F) for w Assume to the contrary that u is the unique node of v and w. case 2: u, v, w / ∈ path u v w w v Claim: This node is unique.

slide-68
SLIDE 68

Analysis

case 1: u, v, w ∈ path u procedure expand Take the first node in V (¯ F) on the way from ri or ℓ to r. u is first node ∈ V (¯ F) for w Assume to the contrary that u is the unique node of v and w. case 2: u, v, w / ∈ path u v w w v Claim: This node is unique.

slide-69
SLIDE 69

Analysis

case 1: u, v, w ∈ path u procedure expand Take the first node in V (¯ F) on the way from ri or ℓ to r. u is first node ∈ V (¯ F) for w Assume to the contrary that u is the unique node of v and w. case 2: u, v, w / ∈ path u v w w v Claim: This node is unique.

slide-70
SLIDE 70

Analysis

case 1: u, v, w ∈ path u procedure expand Take the first node in V (¯ F) on the way from ri or ℓ to r. u is first node ∈ V (¯ F) for w Assume to the contrary that u is the unique node of v and w. case 2: u, v, w / ∈ path u v w w v Claim: This node is unique.

slide-71
SLIDE 71

Analysis

case 1: u, v, w ∈ path u procedure expand Take the first node in V (¯ F) on the way from ri or ℓ to r. u is first node ∈ V (¯ F) for w Assume to the contrary that u is the unique node of v and w. case 2: u, v, w / ∈ path u v w w v Claim: This node is unique.

slide-72
SLIDE 72

Analysis

case 1: u, v, w ∈ path u procedure expand Take the first node in V (¯ F) on the way from ri or ℓ to r. u is first node ∈ V (¯ F) for w Assume to the contrary that u is the unique node of v and w. case 2: u, v, w / ∈ path u v w w v Claim: This node is unique.

slide-73
SLIDE 73

Analysis

Putting things together. . . Lemma 1. For i = 0, . . . , k, any subtree Ti ∈ ¯ F has at least (|V (Ti)| + 1)/2 leaves. Lemma 2. Procedure connect creates a tree with at least |¯ L| − k leaves. Lemma 3. OPT ≤ |V (¯ F)| − k. ⇒ ≥ |¯ L| − k ≥

k

  • i=0

|V (Ti)| + 1 2 − k = |V (¯ F)| − k 2 ⇒ ratio 2

slide-74
SLIDE 74

Analysis

Putting things together. . . Lemma 1. For i = 0, . . . , k, any subtree Ti ∈ ¯ F has at least (|V (Ti)| + 1)/2 leaves. Lemma 2. Procedure connect creates a tree with at least |¯ L| − k leaves. Lemma 3. OPT ≤ |V (¯ F)| − k. ⇒ ≥ |¯ L| − k ≥

k

  • i=0

|V (Ti)| + 1 2 − k = |V (¯ F)| − k 2 ⇒ ratio 2

slide-75
SLIDE 75

Analysis

Putting things together. . . Lemma 1. For i = 0, . . . , k, any subtree Ti ∈ ¯ F has at least (|V (Ti)| + 1)/2 leaves. Lemma 2. Procedure connect creates a tree with at least |¯ L| − k leaves. Lemma 3. OPT ≤ |V (¯ F)| − k. ⇒ ≥ |¯ L| − k ≥

k

  • i=0

|V (Ti)| + 1 2 − k = |V (¯ F)| − k 2 ⇒ ratio 2

slide-76
SLIDE 76

Summary and Open Questions

MaxSNP-hardness for DAGs Summary.

slide-77
SLIDE 77

Summary and Open Questions

MaxSNP-hardness for DAGs linear-time 4- and 2-approximation algorithms for DAGs improving upon 92-approximation for general digraphs Summary.

slide-78
SLIDE 78

Summary and Open Questions

MaxSNP-hardness for DAGs linear-time 4- and 2-approximation algorithms for DAGs improving upon 92-approximation for general digraphs Summary. Open questions expansion-approach extendable to general digraphs?

slide-79
SLIDE 79

Summary and Open Questions

MaxSNP-hardness for DAGs linear-time 4- and 2-approximation algorithms for DAGs improving upon 92-approximation for general digraphs Summary. Open questions expansion-approach extendable to general digraphs? better results (DAGs or general) by multi-stage expansion?

slide-80
SLIDE 80

Summary and Open Questions

MaxSNP-hardness for DAGs linear-time 4- and 2-approximation algorithms for DAGs improving upon 92-approximation for general digraphs Summary. Open questions expansion-approach extendable to general digraphs? better results (DAGs or general) by multi-stage expansion?

Thank you!