31
A Truthful 2- approximation Mechanism for the Steiner Tree Problem

A Truthful 2-approximation Mechanism for the Steiner Tree Problem

  • View
    225

  • Download
    0

Embed Size (px)

Citation preview

Page 1: A Truthful 2-approximation Mechanism for the Steiner Tree Problem

A Truthful 2-approximation Mechanism for the Steiner

Tree Problem

Page 2: A Truthful 2-approximation Mechanism for the Steiner Tree Problem

The Steiner Tree problem

INPUT: Undirected, weighted graph G=(V,E,c) N V: set of terminal nodes

OUTPUT: a tree T spanning N of minimum total

cost, i.e., which minimizes c(T)=eTc(e)

Page 3: A Truthful 2-approximation Mechanism for the Steiner Tree Problem

An example

5

2

4

1

1

2

3

3

5

1

3 1

2

22

a

b

c

N={a,b,c}

T: optimal Steiner tree

T

Page 4: A Truthful 2-approximation Mechanism for the Steiner Tree Problem

About Steiner Tree problem

It is NP-hard It is approximable within 1.55

Robins, Zelikovsky (2000)

Page 5: A Truthful 2-approximation Mechanism for the Steiner Tree Problem

Steiner Tree game Each edge e is controlled by a selfish agent Ae

Only Ae knows te (weight of the edge e) We want to compute a “good” solution w.r.t.

the true costs We do it by designing a mechanism Our mechanism:

Asks each agent to report her cost Computes a solution using an output algorithm g(٠) Hands payments pe to each agent Ae using some

payment function p

Page 6: A Truthful 2-approximation Mechanism for the Steiner Tree Problem

More formally Feasible solutions:

F: set of all trees in G spanning N Type of agent Ae:

e: weight of edge e Intuition: e is the cost Ae incurs whenever

she uses e Ae’s valuation of TF:

ve(e,T)= e if eE(T), 0 otherwise SCF: minimum Steiner tree of G=(V,E,)

with terminals N

Page 7: A Truthful 2-approximation Mechanism for the Steiner Tree Problem

How to design a truthful mechanism for the

problem?Notice that:

the (true) total weight of a feasible T is:

eE ve(e,T)

the problem is utilitarian!

…VCG mechanisms apply

Page 8: A Truthful 2-approximation Mechanism for the Steiner Tree Problem

VCG mechanism M= <g(r), p(x)>:

g(r): arg minxF j vj(rj,x)

pe(x): for each eE:

pe =j≠e vj(rj,g(r-e)) -j≠e vj(rj,x)

g(r) should compute an optimal solution!!!

What to do?

…we look for (approximated) one-parameter mechanisms!

L. Gualà, G. Proietti, A Truthful (2-2/k)-Approximation Mechanism for the Steiner Tree Problem with k Terminals, COCOON’05

Page 9: A Truthful 2-approximation Mechanism for the Steiner Tree Problem

Our goal: to design a mechanism satisfying:

1. g(٠) is monotone2. Solution returned by g(٠) is a “good”

solution, i.e. an approximated solution

3. g(٠) and p(٠) computable in polynomial time

Page 10: A Truthful 2-approximation Mechanism for the Steiner Tree Problem

A 2-approximation algorithm

1. Build the weighted complete graph D with node set N

1. For every pair of nodes in N, w(a,b):= dG(a,b)

2. Compute an MST M of D3. Expand any edge of M with the

corresponding shortest path. This defines a subgraph H of G

4. Return any feasible tree T which is a subgraph of H

Page 11: A Truthful 2-approximation Mechanism for the Steiner Tree Problem

An example

15

2

3

4

1

2

8

13

5

10

3 1

2

212

a

b c

N={a,b,c}

a

b c

7 7

8

D

Page 12: A Truthful 2-approximation Mechanism for the Steiner Tree Problem

An example

15

2

3

4

1

2

8

13

5

10

3 1

2

212

a

b c

N={a,b,c}

a

b c

7 7

8

D

M

Page 13: A Truthful 2-approximation Mechanism for the Steiner Tree Problem

An example

15

2

3

4

1

2

8

13

5

10

3 1

2

212

a

b c

N={a,b,c}

a

b c

7 7

8

D

MH

Page 14: A Truthful 2-approximation Mechanism for the Steiner Tree Problem

An example

15

2

3

4

1

2

8

13

5

10

3 1

2

212

a

b c

N={a,b,c}

a

b c

7 7

8

D

MT

Page 15: A Truthful 2-approximation Mechanism for the Steiner Tree Problem

The algorithm is a 2-approximation algorithm for the Steiner tree problem, i.e. it returns a solution with cost at most twice the cost of the optimal solution.

Theorem [Takahashi, Matsuyama,’80]

Is the algorithm monotone?

..good question!

It depends on Steps 3 and 4

Page 16: A Truthful 2-approximation Mechanism for the Steiner Tree Problem

Definition of g(٠)

We modify the 2-apx algorithm in order to garantee

1. Monotonicity2. Efficiency w.r.t. the computation to

the threshold values

Idea: we can guarantee an acyclic

expansion of M

Page 17: A Truthful 2-approximation Mechanism for the Steiner Tree Problem

High level description of g(٠)

1. Compute D; M=MST(D)2. Let r be any terminal node. T=({r},). N(T)={r}3. At each step g(٠) reaches a new terminal node b

(until N(T)=N)1. Choose an edge (a,b) of M s.t. a N(T) and b

N(T) 2. Try to expand (a,b) whithout forming cycles3. If this is not possible, look for an edge (a’,b) of

D s.t.1. (a’,b) admits an acyclic expansion2. a’ N(T)3. w(a’,b)=w(a,b)

4. M=M\{(a,b)} {(a’,b)}5. Expand (a’,b); N(T) = N(T) {b}

4. Return T and M

Page 18: A Truthful 2-approximation Mechanism for the Steiner Tree Problem

Expanding (a,b) An edge (a,b) admits an acyclic expansion w.r.t. a

current tree T if there is a shortest path =PG(a,b) s.t.

[a,x] is already in the current tree [x,b] passes through no node of T (except x)

Notation Let e’=(a’,b’) E(M) Removing e’ splits M into two subtrees N(a’): the node set of the subtree containig a’ N(b’): remaining nodes CM(a’,b’): non-tree edges crossing the cut

(N(a’),N(b’))

Page 19: A Truthful 2-approximation Mechanism for the Steiner Tree Problem

Expanding (a,b)

1. Let =PG(a,b);2. Let x be the first node of T encountered

along (traversing from b to a)3. Let (a’,b’) be any edge of the current M s.t.:

a’,b’ N(T) ’=PT(a’,b’) passes through x a N(a’)

4. N(T)=N(T) {b}; T=T [x,b];5. if (aa’) then M=M\{(a,b)} {(a’,b)}

Page 20: A Truthful 2-approximation Mechanism for the Steiner Tree Problem

Correctness (sketch)

T is acyclic At any time M is an MST of D we have to show that the

expanding step is correct There are 2 cases:

a=a’ a a’

Page 21: A Truthful 2-approximation Mechanism for the Steiner Tree Problem

Case 1 (a’=a)

a

b

c

da

c

d

b

a’

b’a’b’

x

MT

=PG(a,b)

’=PT(a,x) [x,b] is an alternative shortest path from a to b

we expands (a,b) with ’ (acyclic expansion)

Page 22: A Truthful 2-approximation Mechanism for the Steiner Tree Problem

Case 2 (a’ a)

a

b

c

da

c

d

b

x

a’

b’

a’

b’

it must bedG(a,x)=dG(a’,x)

’=PT(a’,x) [x,b] is ashortest path from a’ to b

…and we expands (a’,b) with ’ (acyclic expansion)

we swap (a,b) and (a’,b) in M…

w(a,b)=w(a’,b)

TM

Page 23: A Truthful 2-approximation Mechanism for the Steiner Tree Problem

The algorithm g( ) is monotone

Lemma

proof

It suffices to prove that any non-selected edge e it still non-selected when Ae raises her bid

Notice: e does not belong to any shortest path selected in M

Thus, if Ae raises her bid, the only edges in D which increase their weight are edges in E(D)\E(M)

…M remains an MST of D…

…the solution computed by g() is the same and e is not selected

Page 24: A Truthful 2-approximation Mechanism for the Steiner Tree Problem

How much can Ae raise her bid

before exiting from the computed solution?

Computing the payments

…we have to pay each selected edge e as its threshold value

Page 25: A Truthful 2-approximation Mechanism for the Steiner Tree Problem

a

bb’’b’

a’ a’’

e

a’ a’’a

b’b

b’’

M T

PG(a’,b’)

PG(a’’,b’’)PG(a,b)w(a,b)w(a’,b’) w(a’’,b’’)

Ae raises her bid of be

+be +be

(a’,b’) becomes lighter than (a,b)

Example 1

Page 26: A Truthful 2-approximation Mechanism for the Steiner Tree Problem

e

a’

a’’a a’

a’’a

b’b b’’

b’b b’’

MT

w(a’,b’)w(a,b)+be

w(a’’,b’’)+be

g(٠) selects (a’,b’)and e exits form the solution

Example 1

Page 27: A Truthful 2-approximation Mechanism for the Steiner Tree Problem

a

bb’’b’

a’ a’’

e

a’ a’’a

b’b

b’’

M T

PG(a’,b’)

PG(a’’,b’’)PG(a,b)w(a,b)w(a’,b’) w(a’’,b’’)

Ae raises her bid of be

PG-e(a,b) becomes shorter than PG(a,b)

Example 2

(a,b) is still a lightest edge crossing the cut

dG-e(a,b) +be

Page 28: A Truthful 2-approximation Mechanism for the Steiner Tree Problem

a

bb’’b’

a’ a’’

e

a’ a’’a

b’b

b’’

M T

PG(a’,b’)

PG(a’’,b’’)PG-e(a,b)dG-e(a,b)w(a’,b’) w(a’’,b’’)+be

g(٠) still selects (a,b) bute exits from the solution

Example 2

Page 29: A Truthful 2-approximation Mechanism for the Steiner Tree Problem

…more formally…

The threshold for e w.r.t. the edge (a,b) Im(e) is defined as

=be + min {(dG-e(a,b) – dG(a,b)), (swap(a,b)(e) – dG(a,b))}

swap(a,b)(e)= min {dG-e(a’,b’)}(a’,b’) CM(a,b)

e(a,b)

e(a,b)

where

The image of e on M Im(e)={(a,b) E(M) | e PT(a,b)}

Page 30: A Truthful 2-approximation Mechanism for the Steiner Tree Problem

Threshold of e

e = max { }i=1,..,h

If Im(e)={(a1,b1), … , (ah,bh)}

e(ai,bi)

Easy to see:e can be computed in polynomial time

Page 31: A Truthful 2-approximation Mechanism for the Steiner Tree Problem

The running time of the mechanism is O((n+k2)m log (m,n). The space used is O(n2).

Theorem