approximating the minimum degree spanning tree to within one from the optimal degree

72
Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree R96922115 陳陳陳 R96922055 陳陳 B93902023 陳陳陳 R96922074 陳陳陳 R96922142 陳陳陳

Upload: dane

Post on 13-Jan-2016

31 views

Category:

Documents


0 download

DESCRIPTION

Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree. R96922115 陳建霖 R96922055 宋彥朋 B93902023 楊鈞羽 R96922074 郭慶徵 R96922142 林佳慶. Authors. Martin Furer Department of Computer Science and Engineering The Pennsylvania State University - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

R96922115 陳建霖R96922055 宋彥朋B93902023 楊鈞羽R96922074 郭慶徵R96922142 林佳慶

Page 2: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Authors

• Martin Furer Department of Computer Science and Engineering

The Pennsylvania State University

• Balaji Raghavachari Computer Science Department, EC 3.1

University of Texas at Dallas

Page 3: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Application

• Distribution of mail and news on the Internet

• Designing power grids

Page 4: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Similar approximation properties

• Edge coloring problem

• 3-colorability of planer graphs

Page 5: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Theorem 1

• There is a polynomial time approximation algorithm for the minimum degree spanning tree problem which produces a spanning tree of degree )log( nO

Page 6: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Theorem 2

• There is a polynomial time approximation algorithm for the minimum degree Steiner tree problem which produces a Steiner tree of degree )log( nO

Page 7: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Theorem 3

• There is a polynomial time approximation algorithm for the directed version of the minimum degree spanning tree problem which produces a directed spanning tree of degree )log( nO

Page 8: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Theorem 4

• There is a polynomial time approximation algorithm for the minimum degree spanning tree problem which produces a spanning tree of degree at most 1

Page 9: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

A Simple Approximation Algorithm

Page 10: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Improvement

• :the degree of vertex u in T

• If

we now introduce an “improvement” in T by adding the edge and deleting one of the edge in C incident to

)(u

2))(),(max()( vuw

),( vuw

Page 11: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Example

3

<=211

2

<=2

G T

Page 12: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Locally Optimal Tree

• Def: A locally optimal tree (LOT) is a tree in which none of the non-tree edges produce any improvements. Its maximal degree denoted by k

• Def: contains those vertices of T which have degree at least i

iS

Page 13: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Theorem

• For any b>1, the maximal degree k of a locally optimal tree T is less than

Hence, k = nb blog

)log( nO

Page 14: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Proof

• Observe the ratio of can be larger than b at most times in a row. To be more precise, there is an i with

k- +1 i k such that

Otherwise, we have

which lead to a contradiction

ii SS /1

)(log nO b

nblog ii SbS 1

log

log 1b

b

nkk nS b S n n

Page 15: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Proof

• Suppose we remove the vertices of from T. This split T into a forest F with t trees. And we can say that

iS

)1(2 ii SSit

Page 16: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Proof

• Now, we can say the average degree of vertices in in any spanning tree of G is at least

1iS

1

1

i

i

S

St

Page 17: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Proof

1

1

i

i

S

St

Sib

Si i 1)1(

2( 1) 1 i i i

i

i S S S

b S

b

i 1

b

nk b 1)1log(

b

nk blog

logbk b n

Page 18: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Algorithm (sketch)

• We start with an arbitrary spanning tree T of G

• We used the local optimality condition only on “ high”( ) degree vertices.

• The algorithm stops when no vertex in

has a local improvement.

• Each phase of the algorithm can be implemented in polynomial time.

1log nk bS

1log nk bS

Page 19: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Theorem 1

• There is a polynomial time approximation algorithm for the minimum degree spanning tree problem which produces a spanning tree of degree )log( nO

Page 20: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Idea

• We just need to show that the number of phases is bounded by a polynomial in n.

Page 21: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Proof

• Recall :the degree of vertex u in T

• Define a potential function such that

(c>2)

• Define total potential of the tree is the sum of the potentials of all vertices.

• We can say that where k is the maximal degree of T

)(u

)()( ucu

)(T

kncT )(

Page 22: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Proof

1 1 1

1 1

1

1 2 2

1

1 2, 2

i i a i b i i a i b

i i a i b i i a i b

i i a i b

i i i

c c c c c c

c c c c c c c

c c c c

c c c c a b

Page 23: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Proof

• For ,

where

2 1 2 2( 2 ) (3 ) ( 2 3 )i i i ic c c c c c nki log

2)2()1( iccc

n

c k

3

)2()1(

c

cc

2

)(

n

T

Page 24: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Proof

• Observe we need phases,the potential reduces by a constant factor.

• On the other hand, k cannot decrease more than n times.

• Hence, bound on the number of phases.

)( 2nO

)( 3nO

Page 25: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

The Steiner tree version

Page 26: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Steiner Problem

• Consider a graph G = (V,E) and a distinguished set of vertices D V.

• Steiner spanning tree: Find a tree which spans the vertices set D, paths in the tree may go through vertices of V - D.

W1

W2W3

W4

D1 D2

D3D4

D5D6

D7D8

Page 27: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Steiner Problem (cont.)

• Minimum Degree Steiner (spanning) Tree– To find a tree of minimum degree, which

spans the set D.– This is a generalization of the [Minimum

Degree Spanning Tree] problem.

Page 28: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Steiner Problem (cont.)

• We start with an arbitrary tree T which spans D and retain only edges which separate the set D in T.

• In other words, there are no useless edges since every edge separates at least two distinguished vertices.

Page 29: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

• Let W be the set of vertices spanned by T. (W : all vertices in the tree T)

• Non-tree path: a path between two vertices in W which goes entirely through vertices of V - W except for the end point.

Page 30: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Some case of non-tree paths

Page 31: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Steiner Problem (cont.)

• Pseudo optimal Steiner tree (POST): – Every edge in the tree separates at least two

distinguished vertices.– None of the non-tree paths produce any

improvement for any vertex in Si for i = k- log n⌈ ⌉ , where k denotes the maximal degree of the tree.

– If this property is true for all i, then we call it locally optimal Steiner tree (LOST).

Page 32: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Steiner Problem (cont.)

• Similar to the theorem 2.1, we have theorem 3.1: for any b>1, the maximal degree k of a LOST T is at most bΔ* + log n⌈ ⌉ . Hence k = O(Δ* + log n ).

• This idea can be converted into a polynomial time algorithm which produces a Steiner tree of degree O(Δ* + log n ).

Page 33: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Steiner Problem (cont.)

• Theorem 1.2. There is a polynomial time approximation algorithm for the minimum degree Steiner tree problem which produces a Steiner tree of degree O(Δ* + log n ).

Page 34: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Directed spanning trees version

Page 35: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

• Input : A directed graph G and anyone

spanning tree together with r

which is the root of the tree.

Page 36: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

What is a directed spanning tree ?

• Def : A rooted spanning tree T of G is a

subgraph of G with the following

properties:–T does not contain any cycles.–The outdegree of every vertex except r

is exactly one.–There is a path in T from every vertex to

the root r.

Page 37: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

An example

Page 38: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Recall

• The improvement in the undirected case

3

<=2

11

2

<=2

Page 39: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Where is the cycle in directed case ?

Page 40: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

New “improvement”

Idea : Consider a vertex v of indegree i.

Try to reduce the indegree of the

vertex by attaching one of the i

subtrees of v to another vertex of

smaller degree.

Page 41: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Step1 : Move the root of the subtree T’ that is

being removed from v to a “convenient”

vertex in that subtree.

Step2 : Attach T’ to another vertex outside

the tree to which the new root has a

connection.

Page 42: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

What is a convient vertex ?

• The set of convenient vertices are those in the

strongly connected part of the root of T’ in

the graph induced by the vertices of T’ with all

non-tree edges removed from vertices of

degree i – 1 or greater.• We pick a convenient vertex from convenient

set

Page 43: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

T’

Page 44: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Algorithm in directed version

• The algorithm tries to decrease the degrees of

vertices in Si for i =k – using the

improvement step above. nlog

Page 45: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

A Lemma

Let T be a directed spanning tree of degree k.

Let Si consist of those vertices whose indegree

is at least i. Suppose we remove the vertices of

Si from T, breaking T into a forest F.

Then there are at least t = ISiI× (i – 1) + 1 trees

of F whose vertices do not have descendants of

degree i or greater in T.

Page 46: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Let Y be “ a tree of F whose vertices

do not have descendants of degree i

or greater in T “ ?

What is a Y ?

Page 47: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

i

descendent

ancestor

Page 48: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Why ISiI× (i – 1) + 1 ?

• We use induction on the size of |Si|

– Basis : if |Si| =1, then there are (i-1) +1 = i subtrees like Y (o.k)

Note : Each addition of a vertex to the set S i

can remove at most one tree from the

set of candidate trees, but adds at

least i more.

Page 49: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

– suppose that |Si| = k holds, i.e : there are k ×(i-1)+1 subtrees like Y.

– then if |Si| = k+1, we will have at least

[k ×(i-1)+1]+i-1 = k×i-k+i = (k+1) ×(i-1)+1

• By math induction, we complete the proof.

Page 50: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

THEOREM 1.3

There is a polynomial time approximation algorithm for the directed version of the minimum degree spanning tree problem which produces a directed spanning tree of degree O(∆* + logn).

Page 51: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

illustration

As in the proof of the undirected case, we look for an i in the range k to k – where the

set Si does not “expand” by more than a constant factor.We will have at least [ ISiI× (i – 1) + 1 ]+ ISiI−1 edges connecting these components and each one of these edges is incident to at least one

vertex in Si-1

nlog

Page 52: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

illustration

Hence the average degree of vertices in Si-1 in

any spanning tree of G is at least

The maximal degree ∆* is at least the average

degree of these vertices.

1

1]1)1(|[|

i

ii

S

SiS

Page 53: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

illustration

Hence,

nbkbi

S

iS

S

SiS

i

i

i

ii

log

11)1(

*

1

1

*

Page 54: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

The △*+1 algorithm

Page 55: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Definition

k-1k

kk-1

≦k-2

u v

w

≦k-2

k

k-1 k-1

k-1

w

u v

If ρ(u) k – 1, we say that u ≧ blocks w from (u, v).

If neither u nor v blocks w, then w benefits from (u, v).

T

T

Page 56: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

The algorithm works in phases

• (Recall Def.) Suppose k were the maximal degree of a spanning tree T, Let Si be the set of vertices of degree at least i in T.

• In each phase we try to reduce the size of Sk by one. If successful, we move on to the next phase.

• So we also update k after each phase.

• Even in a phase the number of vertices of degree at most k-1 increases so many, but it’s ok!

Page 57: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

• We use the local optimality property.

many phases

try to improve

Max degree = k

but |Sk| remains the same…

Local Optimality Property

Our solution

Page 58: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

How many phases?

• As the size of Sk reduces by one in each phase (except the last one), there are at most O (n / k) phases when the maximal degree is k.

• At most phases... ( log )1 3

n n nO n n

k k

k=1

k=2

maximal degree from k to k-1

Page 59: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Theorem

• Let * be the degree of a MDST. △• Let S be the set Sk.• Let B be an arbitrary subset of vertices of degree k–1 in T.

S U B

suppose no such edges exist then k *+1≦△

F

Page 60: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Try to prove * something△ ≧

1

1

1

| | 1*

| |

| | 2(| | 1) | | 1

| |

( 1) | | 1

| |

k

k

k k k

k

k

k

t S

S

k S S S

S

k S

S

△* ≧ average degree of any subset

we want the vertices of high degree

take Sk

Sk

|F| = t

take S U BS U B

S U B may be either connected or disconnected (Case 1) (Case 2)

( 1) | | 1

| |

k

k

k S

b S

Page 61: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

S U B is connected

• Case 1

S U B is connected (a tree), then F contains exactly |S|k+|B|(k-1)-2(|S|+|B|-1) subtrees.

Exactly |S|k+|B|(k-1)-2(|S|+|B|-1)+(|S|+|B|-1) edges connect to S U B.

The average degree of vertices in S U B is exactly

|S|k+|B|(k-1)-(|S|+|B|-1) |S|(k-1)+|B|(k-1)-(|B|-1) |B|-11

|S|+|B| |S|+|B| |S|+|B|k

S U B

Page 62: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

S U B is not connected

• Case 2

S U B is not connected (not a tree), then F contains more than |S|k+|B|(k-1)-2(|S|+|B|-1) subtrees.

More than |S|k+|B|(k-1)-2(|S|+|B|-1)+(|S|+|B|-1) edges connect to S U B.

S U B

The average degree of vertices in S U B is more than

|S|k+|B|(k-1)-(|S|+|B|-1) |S|(k-1)+|B|(k-1)-(|B|-1) |B|-11

|S|+|B| |S|+|B| |S|+|B|k

Page 63: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Finally we proved * k-1△ ≧

• △* ≧ average degree of S U B =

• Therefore * k-1 △ ≧ k *+1≦ △

| | 11

| | | |

Bk

S B

0 1 1* 1 1

|S| 0 |S|

*

k k

k

• Note : what if |B|=0?

Page 64: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Observation

Let B = Vk-1, apply Theorem 5.1, we are done.

Vk U Vk-1

≦k-2

≦k-2

≦k-2

≦k-2

If no any Sk on the cycle, just union and mark good

kk

k-1k-1k-2

kk-1

Case 1Case 2aCase 2b

k-2k-1…

≦k-1≦k-1

Page 65: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Algorithm• Step 1. Given a SPT (the degree of all vertices is known),

remove Vk U Vk-1 (marked as bad) from T and mark all the connected components as good.

Vk U Vk-1

F

≦k-2≦k-2 ≦k-2

good

bad

Page 66: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Algorithm• Step 2. Choose any edge between 2 components and find

the cycle generated, also check all bad vertices on the cycle. If no such edges exist, stop.

Vk U Vk-1

F

uv≦k-2

≦k-2

≦k-2

≦k-2

Page 67: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Algorithm• Step 3. (Case 1) At least a vertex in Vk on the cycle,

reduce the size of Vk by one, go to Step 1.

Vk U Vk-1

F

uv

≦k-2

≦k-2 ≦k-2

≦k-2

kk-1

Page 68: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Algorithm• Step 3. (Case 2) No any vertex in Vk on the cycle,

(imply) at least a bad vertex in Vk-1 on the cycle, make a union of all components along with all bad vertices on the cycle, also mark the bad vertices as good, go to Step 2.

Vk U Vk-1

Fuv≦k-2

≦k-2 ≦k-2

≦k-2

k-1k-1 k-1

good

Page 69: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Illustration of example 1

≦k-2

k

k-1k-1

good good

k-2

≦k-1

k-1

Page 70: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Illustration of example 2

k or k-1

k-1 ≦k-2

Must not be choosed

Page 71: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Illustration of example 3

k-1k k

Page 72: Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree

Time analysis

• Step 1. Given a SPT (the degree of all vertices is known), remove Vk U Vk-1 (marked as bad) from T and mark all the connected components as good.

• Step 2. choose any edge between 2 components and find

the cycle generated , also check all bad vertices on the cycle. If no such edges exist, stop.

• Step 3. (Case 1) At least a vertex in Vk on the cycle, reduce the size of Vk by one, go to Step 1.

• Step 3. (Case 2) No any vertex in Vk on the cycle, (imply) at least a bad vertex in Vk-1 on the cycle, make a union of all components along with all bad vertices on the cycle, also mark the bad vertices as good, go to Step 2.

( ( ))O m n

(1)O

( ( ))O n n

)(nO

( )O n