Stochastic Steiner Tree without a Root
-
Upload
ulla-sears -
Category
Documents
-
view
34 -
download
0
description
Transcript of Stochastic Steiner Tree without a Root
1 Mar 05 Stochastic Steiner without a Root 1
Stochastic Steiner Tree without a Root
Martin Pál
Joint work with Anupam Gupta
1 Mar 05 Stochastic Steiner without a Root 2
Steiner Tree
Input: graph G, weights ce on edges,
set of terminals g = {t1, t2, …, tn}
Solution: a network connecting all terminals.
Goal: minimize cost of the network built.
Note: optimal network will be a tree.
1 Mar 05 Stochastic Steiner without a Root 3
Stochastic Steiner tree
What if the terminals are not known beforehand?
Installing edges in advance reduces cost – but planning must be done obliviously.
We may not be able to correctly connect all demands – but hopefully we will be allowed to fix things later by buying extra edges.
?
?
??
?
?
1 Mar 05 Stochastic Steiner without a Root 4
The modelTwo stage stochastic model with recourse:
On Monday, edges are cheap, but we do not know the set of terminals. We can buy edges.
On Tuesday, set g of terminals materializes. We must buy edges to connect up g. Edges are σ times more expensive. (σ == inflation factor).
drawn from a known distribution π
1 Mar 05 Stochastic Steiner without a Root 5
The model
Two stage stochastic model with recourse:
Find F1 Edges and F2 : 2Users 2Edges to
minimize cost(F1) + σ Eπ(g)[cost(F2(g))]
subject to connected(g, F1 F2(g))
for all sets gUsers
Want compact representation of F2 by an algorithm
1 Mar 05 Stochastic Steiner without a Root 6
First stage not connected subgraph
Pr[] = Pr[] = ½
σ > 2
Two distant groups
Two nearby groups
1 Mar 05 Stochastic Steiner without a Root 7
The Rent or Buy problem (1)
Input: graph G, weights ce on edges,
set of demand pairs D, a constant M≥1
Solution: a set of paths, one for each (si,ti) pair.
Goal: minimize cost of the network built.
1 Mar 05 Stochastic Steiner without a Root 8
The Rent or Buy problem (2)
Rent or buy: Must rent or buy each edge.
rent: pay ce for each path using edge e
buy: pay Mce
Goal: minimize rental+buying costs.
Steiner forest: pay ce
for every edge used
1 Mar 05 Stochastic Steiner without a Root 9
Rent or Buy as Stochastic Steiner
Let gi ={si,ti}
π(gi) = 1/n
σ = M/n
install e in first stage buy e install e in second stage rent e
Stochastic Steiner = generalized RoB
Each group gi has tree Ti
(may have exponentially many groups)
1 Mar 05 Stochastic Steiner without a Root 10
The Algorithm
1. Boosted Sampling: Draw σ groups of clients g1,g2,…,gσ indep. from the distribution π.
2. Build a Steiner forest F1 on {g1,g2,…,gσ} using an -approx algorithm.
3. When actual group g of terminals appears, build a tree spanning g in G/F1.
1 Mar 05 Stochastic Steiner without a Root 11
Bounding the cost
Expected first stage cost is small:
Using -approx, can get OPT
Theorem: Expected cost of bought edges is OPT.
Lemma: There is a forest F on sampled groups with E[cost(F)] OPT.
e installed in first stage OPT: Pr[e is in F] = 1
e not in first stage OPT: Pr[e is in F] ≤ σ Pr[e is in some Ti]
1 Mar 05 Stochastic Steiner without a Root 12
Bounding the second stage cost
Unselected groups pay their rental cost
Selected groups contribute towards buying its tree
pays rent
pays rent
pays buy
Plan: Bound second stage cost by the first stage cost:
Expected second stage() Expected share()
pays rent
pays buy
pays buy
1 Mar 05 Stochastic Steiner without a Root 13
Need a cost sharing algorithm
Input: Set of demand groups S
Output: Steiner forest FS on S cost share ξ(S,g) of each group gS
ξ({}, ) = 4
ξ({}, ) = 5
Set of demandsdemand group
1 Mar 05 Stochastic Steiner without a Root 14
Cost Sharing for Steiner Forest
(P1) Good approximation: cost(FS) St*(S)
(P2) Cost shares do not overpay: gS ξ(S,g) St*(S)
(P3) Strictness: let S’ = S {g} MST(g) in G/ FS ξ(S’,g)
Example: S = {} g =
Rental of if FS bought
of share if added to S
1 Mar 05 Stochastic Steiner without a Root 15
Bounding second stage cost
S’ = {g1,g2,…,gσ} and S = S’– {}.Imagine Pr[S’ | S] = σ π().E[rent() | S]
π()σMST() in G/FS
E[buy() | S] = π()σ
ξ(S+,)
E[rent()]
E[buy()]
jD E[rent(j)] jD E[buy(j)] OPT
1 Mar 05 Stochastic Steiner without a Root 16
Computing shares using the AKR-GW algorithm
ξ():ξ():ξ():
Active terminals share cost of growth evenly.
1 Mar 05 Stochastic Steiner without a Root 17
AKR-GW is not enough
1+ε
1 1
cost share() = 1/n + rental() = 1 +
Solution: Force the algorithm to buy the middle edge
- need to be careful not to pay too much
Problem: cost shares do not pay enough!
1 Mar 05 Stochastic Steiner without a Root 18
Forcing AKR-GW buy more
1+ε
1 1
Idea: Inflate the balls!
Roughly speaking, multiply each radius by > 1
1 Mar 05 Stochastic Steiner without a Root 19
Why should inflating work?
layer: only is contributing
layer: terminals other than contributing
ξ() large
ξ() small, can take shortcuts
ξ() small, can take shortcuts
1 Mar 05 Stochastic Steiner without a Root 20
The inflated AKR-GW
1. Run the standard AKR-GW algorithm on S
2. Note the time Tj when each demand j frozen
3. Run the algorithm again, with new freezing rule:every demand j deactivated at time Tj for some > 1
Freezing times
1 Mar 05 Stochastic Steiner without a Root 21
The inflated AKR-GW (2)
Freezing times
Original AKR-GW
Inflated AKR-GWFreezing times
1 Mar 05 Stochastic Steiner without a Root 22
Easy facts
Fact: Any time t: u and v in the same cluster in Original u and v in the same cluster in Inflated
Inflated has at most as many clusters as Original
Theorem: Forest constructed by Inflated AKR-GW has cost at most (+1) OPT.
Pf: adapted from [GW].
1 Mar 05 Stochastic Steiner without a Root 23
Proving strictness
Compare:
•Original(S+) (cost shares)
•Inflated(S) (the forest we buy)
Need to prove: MST() in G/ FS ξ(S+, )
•Lower bound on ξ(S+, ) : alone()
•Original(S+) must have connected terminals. Hence it contains a tree P spanning . Use it to bound MST().
1 Mar 05 Stochastic Steiner without a Root 24
Simplifying..
Let be time when Original(S+) connects terminals.
•Terminate Original(S+) at time .
•In Inflated(S), freeze each term. j at time min(Tj, ).
Simpler graph H:
•Contract all edges that Inflated(S) bought. Call the new graph H.
•Run both Original(S+) and Inflated(S) on H.
•Note that Inflated(S) on H does not buy any edges!
1 Mar 05 Stochastic Steiner without a Root 25
Comparing Original(S+) & Inflated(S)
Freezing times
Freezing times
Original(S+)
Inflated(S)
1 Mar 05 Stochastic Steiner without a Root 26
Proof idea
Correspondence of other (i.e. non-red) layers:
Layer l in Original(S+) Layer l’ in Inflated(S)
|Tree| = |Alone| + |Other|
|Other| ≤ |Tree|(-1) |Tree| ≤ |Alone|
+ |Waste|
+ |Waste|
+ |Duplicates|
If we can prove: we are done.
|Waste| ≤ |Alone||Duplicates| ≤ |Alone| + |Other|
1 Mar 05 Stochastic Steiner without a Root 27
Bounding the Waste
Claim: If a layer l contains t, then its corresponding inflated layer l’ also contains some t.
Original(S+)
Inflated(S)
Pf: By picture.
The only way of wasting a layer l is when the whole group lies inside l’.
1 Mar 05 Stochastic Steiner without a Root 30
Bounding the Duplicates
# edges cut = #clusters –1
# intersections = 2 # edges
# cuts < 2 #clusters
|Alone| + |Other|+|Duplicates| < 2(|Alone| + |Other|)
1 Mar 05 Stochastic Steiner without a Root 31
Summing up
|Tree| ≤ 4/(-2) |Alone|
Hence we have +1 approximation algorithm with 4/(-2)-strict cost sharing.
Setting =4 we obtain a 5+8=13 approximation.
1 Mar 05 Stochastic Steiner without a Root 32
The End
• No need to know π explicitly (sampling oracle is enough)
• Is the ball inflation trick necessary?
• Derandomize the sampling algorithm (for π given explicitly).
• Get stronger strictness to allow multistage algo