approximating the minimum degree spanning tree to within one from the optimal degree r96922115...
TRANSCRIPT
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
• Balaji Raghavachari Computer Science Department, EC 3.1
University of Texas at Dallas
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
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
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
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
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
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
Theorem
• For any b>1, the maximal degree k of a locally optimal tree T is less than
Hence, k = nb blog
)log( nO
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
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
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
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
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
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
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 )(
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
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
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
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
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.
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.
• 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.
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).
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 ).
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 ).
• Input : A directed graph G and anyone
spanning tree together with r
which is the root of the tree.
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.
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.
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.
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
Algorithm in directed version
• The algorithm tries to decrease the degrees of
vertices in Si for i =k – using the
improvement step above. nlog
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.
Let Y be “ a tree of F whose vertices
do not have descendants of degree i
or greater in T “ ?
What is a Y ?
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.
– 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.
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).
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
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
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
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!
• We use the local optimality property.
many phases
…
try to improve
Max degree = k
but |Sk| remains the same…
Local Optimality Property
Our solution
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
…
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
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
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
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
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?
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
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
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
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
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
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