18.01.2014 Views

Approximation Algorithms for Embedding General Metrics Into Trees

Approximation Algorithms for Embedding General Metrics Into Trees

Approximation Algorithms for Embedding General Metrics Into Trees

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

that contains r. Furthermore, <strong>for</strong> each A i ∈ A G , we define a subtree T i of T as follows: T i contains<br />

all the vertices C of T , such that T G,A i<br />

K<br />

visits C.<br />

Lemma 6. There exists a polynomial-time algorithm that computes an unweighted tree T ′ , and <strong>for</strong><br />

any i ∈ [k] a mapping φ i : V (T i ) → V (T ′ ), such that<br />

• <strong>for</strong> any i,j ∈ [k], φ i (T i ) ∩ φ j (T j ) = ∅,<br />

• <strong>for</strong> any i,j ∈ [k], <strong>for</strong> any v i ∈ V (T i ), and v j ∈ V (T j ), D T (v i ,v j ) ≤ D T ′(φ i (v i ),φ j (v j )) ≤<br />

20(D T (v i ,v j ) + 1)log n.<br />

Proof. Deferred to the full version of this paper.<br />

Note that the tree T ′ might contain vertices C ∈ V (T), such that <strong>for</strong> any K ∈ K G , K /∈ C. We call<br />

such a vertex steiner. First, <strong>for</strong> each steiner vertex C ∈ V (T ′ ) we add a vertex v C ∈ V (S). We have<br />

to add the following types of edges:<br />

• For any C 1 ,C 2 ∈ V (T ′ ), such that both C 1 , and C 2 are steiner vertices, we add the edge<br />

{v C1 ,v C2 } in S, with weight W G /(c 3 α).<br />

• For any C 1 ,C 2 ∈ V (T ′ ), such that C 2 , is a steiner vertex, and there exists A 1 ∈ A G , such that<br />

C 1 ∈ φ 1 (T 1 ), we pick K 1 ∈ T G,A 1<br />

K<br />

, with K 1 ∈ C 1 , and an arbitrary x 1 ∈ K 1 , and we add the<br />

edge {x 1 ,v C1 } in S. The weight of this new edge is W G /(c 3 α).<br />

• For any pair A 1 ,A 2 ∈ A G , with A 1 ≠ A 2 , such that there exists an edge in T ′ connecting<br />

φ 1 (T 1 ) with φ 2 (T 2 ), we add an edge between S A 1<br />

, and S A 2<br />

. We pick the edge that connects<br />

S A 1<br />

with S A 2<br />

as follows. Pick C 1 ,C 2 ∈ V (T), with C 1 ∈ T 1 , and C 2 ∈ T 2 , such that there<br />

is an edge between φ 1 (C 1 ), and φ 2 (C 2 ) in T ′ . We pick an arbitrary pair of points x 1 , x 2 , with<br />

x 1 ∈ K 1 ∈ C 1 , and x 2 ∈ K 2 ∈ C 2 , <strong>for</strong> some K 1 ,K 2 ∈ K G , and we connect S A 1<br />

with S A 2<br />

by<br />

adding the edge {x 1 ,x 2 } of length D(x 1 ,x 2 ).<br />

Given the metric M = (X,D), the algorithm first computes a weighted complete graph G 0 = (V,E),<br />

with V (G 0 ) = X, such that the weight of each edge {u,v} ∈ E(G) is equal to D(u,v). Let ∆ be<br />

the diameter of M. Clearly, G 0 is a ∆-restricted subgraph. The algorithm then executes the procedure<br />

RECURSIVETREE on G 0 , and outputs the resulting tree S.<br />

Be<strong>for</strong>e we bound the distortion of the resulting embedding, we first need to show that at each recursive<br />

call of the procedure RECURSIVETREE, the graph G satisfies the input requirements. Namely, we have<br />

to show that G c-approximates M. Clearly, this holds <strong>for</strong> G 0 . Thus, it suffices to show that the property<br />

is maintained <strong>for</strong> each graph G A , were A ∈ A G . Observe that since G c-approximates M, and M c-<br />

embeds into a tree, it follows that G c 2 -embeds into a tree. Since (TK G, K G, A G ) is a (r,c 2 )-well-separated<br />

decomposition, we can assume the properties of lemmata 4, and 5, <strong>for</strong> γ = c 2 .<br />

Lemma 7. For any A ∈ A G , G A c-approximates M.<br />

Proof. Deferred to the full version of this paper.<br />

The next two lemmata bound the distortion of the resulting embedding of G into S. The fact that the<br />

contraction is small follows by the fact that the distance between the clusters in A G is sufficiently large.<br />

The expansion on the other hand, depends on the maximum depth of the recursion. This is because at each<br />

recursive call, when we merge the trees S A to obtain S, we incurr an extra c O(1) log n-factor in the distortion.<br />

Since at every recursive call the maximum edge weight of the input graph decreases by a factor of α, the<br />

parameter α can be used to adjust the recursion depth in order to optimize the final distortion.<br />

11

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!