On the complexity of the asymmetric VPN problem Thomas Rothvoß & Laura Sanità Institute of Mathematics EPFL, Lausanne ISMP’09 Concave Cost VPN Given: ◮ Undirected graph G = (V, E), costs c : E → Q+ ◮ Outgoing traffic bound b+ v ∈ N0 , ingoing traffic bound ∈ N b− 0 v ◮ Concave non-decreasing function f : Q+ → Q+ Find: Paths Puv , capacities xe s.t. X c(e) · f (xe ) → minimized e∈E and every valid traffic matrix (Du,v )u,v∈V can be routed. − D is valid if v sends ≤ b+ v and receives ≤ bv Concave Cost VPN Given: ◮ Undirected graph G = (V, E), costs c : E → Q+ ◮ Outgoing traffic bound b+ v ∈ N0 , ingoing traffic bound ∈ N b− 0 v ◮ Concave non-decreasing function f : Q+ → Q+ Find: Paths Puv , capacities xe s.t. X c(e) · f (xe ) → minimized e∈E and every valid traffic matrix (Du,v )u,v∈V can be routed. − D is valid if v sends ≤ b+ v and receives ≤ bv f (xe ) xe Concave Cost VPN Given: ◮ Undirected graph G = (V, E), costs c : E → Q+ ◮ Outgoing traffic bound b+ v ∈ N0 , ingoing traffic bound ∈ N b− 0 v ◮ Concave non-decreasing function f : Q+ → Q+ Find: Paths Puv , capacities xe s.t. X c(e) · f (xe ) → minimized e∈E and every valid traffic matrix (Du,v )u,v∈V can be routed. − D is valid if v sends ≤ b+ v and receives ≤ bv W.l.o.g.: − ◮ senders s ∈ S: b+ s = 1, bs = 0 + ◮ receivers r ∈ R: br = 0, b− r =1 + − ◮ non-terminals v: bv = bv = 0 f (xe ) xe Example s1 s2 s3 e r4 r2 r1 r3 Example Ps1 r2 s1 s2 s3 e r4 r2 r1 r3 Example Ps1 r2 s1 s2 Ps1 r1 s3 e r4 r2 r1 r3 Example Ps1 r2 s1 Ps2 r3 s2 Ps1 r1 s3 e r4 r2 r1 r3 Example Ps1 r2 s1 Ps2 r3 s2 Ps1 r1 s3 e r1 Ps3 r3 r4 r2 r3 Example S Ps1 r2 s1 R s1 r1 s2 r2 s3 r3 Ps2 r3 s2 Ps1 r1 s3 e r1 Ps3 r3 r4 r2 r3 r4 Example S Ps1 r2 s1 R s1 r1 s2 r2 s3 r3 Ps2 r3 s2 Ps1 r1 s3 e r1 Ps3 r3 r4 r2 r3 r4 Example S Ps1 r2 s1 R s1 r1 s2 r2 s3 r3 Ps2 r3 s2 Ps1 r1 s3 e r1 Ps3 r3 r4 r2 r3 r4 xe = maximal cardinality of a matching in Ge = (S ∪ R, Ee ) with (s, r) ∈ Ee ⇔ e ∈ Psr Example S Ps1 r2 s1 R vertex cover C s 1 r1 s2 r2 s3 r3 Ps2 r3 s2 Ps1 r1 s3 e r1 Ps3 r3 r4 r2 r3 r4 xe = maximal cardinality of a matching in Ge = (S ∪ R, Ee ) with (s, r) ∈ Ee ⇔ e ∈ Psr Known results Linear costs: ◮ APX-hard ◮ 5.55-apx [Gupta, Kumar, Roughgarden ’03] ◮ 4.74-apx [Eisenbrand, Grandoni ’05] ◮ 3.55-apx [Eisenbrand, Grandoni, Oriolo, Skutella ’07] Known results Linear costs: ◮ APX-hard ◮ 5.55-apx [Gupta, Kumar, Roughgarden ’03] ◮ 4.74-apx [Eisenbrand, Grandoni ’05] ◮ 3.55-apx [Eisenbrand, Grandoni, Oriolo, Skutella ’07] − Linear costs/symmetric (b+ v = bv ): ◮ Opt. solution is a tree [Goyal, Olver, Shepherd ’08] ◮ Opt. tree solution = best shortest path tree [Fingerhut et al. ’97; Gupta et al. ’01] Known results Linear costs: ◮ APX-hard ◮ 5.55-apx [Gupta, Kumar, Roughgarden ’03] ◮ 4.74-apx [Eisenbrand, Grandoni ’05] ◮ 3.55-apx [Eisenbrand, Grandoni, Oriolo, Skutella ’07] − Linear costs/symmetric (b+ v = bv ): ◮ Opt. solution is a tree [Goyal, Olver, Shepherd ’08] ◮ Opt. tree solution = best shortest path tree [Fingerhut et al. ’97; Gupta et al. ’01] Linear costs/balanced (|R| = |S|): ◮ Opt. tree solution = best shortest path tree [Italiano, Leonardi, Oriolo ’06] Known results Linear costs: ◮ APX-hard ◮ 5.55-apx [Gupta, Kumar, Roughgarden ’03] ◮ 4.74-apx [Eisenbrand, Grandoni ’05] ◮ 3.55-apx [Eisenbrand, Grandoni, Oriolo, Skutella ’07] − Linear costs/symmetric (b+ v = bv ): ◮ Opt. solution is a tree [Goyal, Olver, Shepherd ’08] ◮ Opt. tree solution = best shortest path tree [Fingerhut et al. ’97; Gupta et al. ’01] Linear costs/balanced (|R| = |S|): ◮ Opt. tree solution = best shortest path tree [Italiano, Leonardi, Oriolo ’06] Theorem There is a polytime 50-approximation for Concave Cost VPN that also gives a tree solution. Single Sink Buy-at-Bulk f (xe ) Given: ◮ G = (V, E), costs c : E → Q+ ◮ clients D ⊆ V , root r ◮ Concave non-decreasing function f : Q+ → Q+ xe Find: Capacities xe s.t. X c(e) · f (xe ) → minimize e∈E and each client can send a flow of 1 to r (simultaneously). client root r Single Sink Buy-at-Bulk f (xe ) Given: ◮ G = (V, E), costs c : E → Q+ ◮ clients D ⊆ V , root r ◮ Concave non-decreasing function f : Q+ → Q+ xe Find: Capacities xe s.t. X c(e) · f (xe ) → minimize e∈E and each client can send a flow of 1 to r (simultaneously). 1 1 2 client 1 3 1 5 1 root r 1 Single Sink Buy-at-Bulk f (xe ) Given: ◮ G = (V, E), costs c : E → Q+ ◮ clients D ⊆ V , root r ◮ Concave non-decreasing function f : Q+ → Q+ Find: Capacities xe s.t. X c(e) · f (xe ) → minimize e∈E and each client can send a flow of 1 to r (simultaneously). Known results: ◮ APX-hard ◮ Opt. solution is tree [Karger, Minkoff ’00] For cable-based formulation: ◮ ◮ ◮ 76.8-apx [Gupta, Kumar, Roughgarden ’03] improved to 25-apx [Grandoni, Italiano ’06] xe The algorithm Algorithm: +1 −1 +1 −1 −1 +1 −1 The algorithm Algorithm: 1. Choose a sender s∗ ∈ S uniformly at random +1 −1 s∗ +1 −1 −1 +1 −1 The algorithm Algorithm: 1. Choose a sender s∗ ∈ S uniformly at random 2. Define central hub instance with single sender s∗ (but b+ s∗ = |S|), receivers S ∪ R −1 −1 s∗ +|S| −1 −1 −1 −1 The algorithm Algorithm: 1. Choose a sender s∗ ∈ S uniformly at random 2. Define central hub instance with single sender s∗ (but b+ s∗ = |S|), receivers S ∪ R 3. Compute 25-apx solution x′e using a SSBB algo for the central hub VPN instance −1 −1 s∗ +|S| −1 −1 −1 −1 The algorithm Algorithm: 1. Choose a sender s∗ ∈ S uniformly at random 2. Define central hub instance with single sender s∗ (but b+ s∗ = |S|), receivers S ∪ R 3. Compute 25-apx solution x′e using a SSBB algo for the central hub VPN instance −1 −1 s∗ +|S| −1 −1 −1 −1 Claim: Capacities x′e suffice for orig. instance The algorithm Algorithm: 1. Choose a sender s∗ ∈ S uniformly at random 2. Define central hub instance with single sender s∗ (but b+ s∗ = |S|), receivers S ∪ R 3. Compute 25-apx solution x′e using a SSBB algo for the central hub VPN instance x′e = min{k, |S|} −1 s∗ +|S| −1 e −1 −1 −1 −1 Claim: Capacities x′e suffice for orig. instance k terminals SSBB vs. VPN with central hub VPN: ◮ sender s∗ (b+∗ = |S|), receivers S ∪ R s P ◮ cost function e∈E ce · f (xe ) SSBB: ◮ root s∗ , clients S ∪ R P ◮ cost function e∈E ce · f (min{xe , |S|}) −1 −1 s∗ +|S| −1 −1 −1 −1 SSBB vs. VPN with central hub f (xe ) VPN: ◮ sender s∗ (b+∗ = |S|), receivers S ∪ R s P ◮ cost function e∈E ce · f (xe ) SSBB: |S| ◮ root s∗ , clients S ∪ R P ◮ cost function e∈E ce · f (min{xe , |S|}) → concave −1 −1 −1 s∗ +|S| −1 −1 −1 xe SSBB vs. VPN with central hub VPN: ◮ sender s∗ (b+∗ = |S|), receivers S ∪ R s P ◮ cost function e∈E ce · f (xe ) SSBB: ◮ root s∗ , clients S ∪ R P ◮ cost function e∈E ce · f (min{xe , |S|}) → concave −1 −1 −1 e s∗ +|S| −1 −1 −1 SSBB vs. VPN with central hub VPN: ◮ sender s∗ (b+∗ = |S|), receivers S ∪ R s P ◮ cost function e∈E ce · f (xe ) SSBB: ◮ root s∗ , clients S ∪ R P ◮ cost function e∈E ce · f (min{xe , |S|}) → concave −1 −1 −1 k receivers/clients e s∗ +|S| −1 −1 capacity on e VPN SSBB −1 cost for e SSBB vs. VPN with central hub VPN: ◮ sender s∗ (b+∗ = |S|), receivers S ∪ R s P ◮ cost function e∈E ce · f (xe ) SSBB: ◮ root s∗ , clients S ∪ R P ◮ cost function e∈E ce · f (min{xe , |S|}) → concave −1 −1 −1 k receivers/clients e s∗ +|S| −1 −1 VPN SSBB capacity on e min{k, |S|} −1 cost for e c(e) · f (min{k, |S|}) SSBB vs. VPN with central hub VPN: ◮ sender s∗ (b+∗ = |S|), receivers S ∪ R s P ◮ cost function e∈E ce · f (xe ) SSBB: ◮ root s∗ , clients S ∪ R P ◮ cost function e∈E ce · f (min{xe , |S|}) → concave −1 −1 −1 k receivers/clients e s∗ +|S| −1 −1 VPN SSBB capacity on e min{k, |S|} k −1 cost for e c(e) · f (min{k, |S|}) c(e) · f (min{k, |S|}) Analysis Theorem There is a central hub solution of expected cost ≤ 2 · OP T . s∗ Analysis Theorem There is a central hub solution of expected cost ≤ 2 · OP T . Proof: ◮ Let (xe , Psr ) be optimal solution for orig. instance s∗ Analysis Theorem There is a central hub solution of expected cost ≤ 2 · OP T . Proof: ◮ Let (xe , Psr ) be optimal solution for orig. instance ◮ Choose a receiver r ∗ randomly r∗ s∗ Analysis Theorem There is a central hub solution of expected cost ≤ 2 · OP T . Proof: ◮ Let (xe , Psr ) be optimal solution for orig. instance ◮ Choose a receiver r ∗ randomly ◮ Install |S| units of capacity on Ps∗ r∗ r∗ |S| s∗ Analysis Theorem There is a central hub solution of expected cost ≤ 2 · OP T . Proof: ◮ Let (xe , Psr ) be optimal solution for orig. instance ◮ Choose a receiver r ∗ randomly ◮ Install |S| units of capacity on Ps∗ r∗ ◮ Install (cumulatively) 1 unit on each Psr∗ and Ps∗ r (in total never more then |S|) 1 |S| s∗ 1 r∗ Analysis Theorem There is a central hub solution of expected cost ≤ 2 · OP T . Proof: ◮ Let (xe , Psr ) be optimal solution for orig. instance ◮ Choose a receiver r ∗ randomly ◮ Install |S| units of capacity on Ps∗ r∗ ◮ Install (cumulatively) 1 unit on each Psr∗ and Ps∗ r (in total never more then |S|) r∗ 1 1 |S| 1 s∗ 1 1 Analysis Theorem There is a central hub solution of expected cost ≤ 2 · OP T . Proof: ◮ Let (xe , Psr ) be optimal solution for orig. instance ◮ Choose a receiver r ∗ randomly ◮ Install |S| units of capacity on Ps∗ r∗ ◮ Install (cumulatively) 1 unit on each Psr∗ and Ps∗ r (in total never more then |S|) ◮ Claim: E[capacity on e] ≤ 2 · xe r∗ 1 1 |S| 1 s∗ 1 1 Analysis (2) Lemma E[capacity on e] ≤ 2 · xe . Analysis (2) Lemma E[capacity on e] ≤ 2 · xe . ◮ Consider Ge = (S ∪ R, Ee ) with edges (s, r) ∈ Ee ⇔ e ∈ Ps,r S R Analysis (2) Lemma E[capacity on e] ≤ 2 · xe . ◮ Consider Ge = (S ∪ R, Ee ) with edges (s, r) ∈ Ee ⇔ e ∈ Ps,r ◮ Let C be vertex cover with |C| = xe S R C Analysis (2) Lemma E[capacity on e] ≤ 2 · xe . ◮ ◮ ◮ Consider Ge = (S ∪ R, Ee ) with edges (s, r) ∈ Ee ⇔ e ∈ Ps,r Let C be vertex cover with |C| = xe Case: s∗ or r ∗ are in C ◮ ◮ ◮ |R∩C| |C| Prob: ≤ |S∩C| |S| + |R| ≤ |S| Capacity: ≤ |S| Contribution: ≤ |C| |S| · |S| = |C| = xe S s∗ R r∗ C Analysis (2) Lemma E[capacity on e] ≤ 2 · xe . ◮ ◮ ◮ Let C be vertex cover with |C| = xe Case: s∗ or r ∗ are in C ◮ ◮ ◮ ◮ S Consider Ge = (S ∪ R, Ee ) with edges (s, r) ∈ Ee ⇔ e ∈ Ps,r |R∩C| |C| Prob: ≤ |S∩C| |S| + |R| ≤ |S| Capacity: ≤ |S| Contribution: ≤ |C| |S| · |S| = |C| = xe R r∗ s∗ C Case: Neither s∗ nor r ∗ are in C ◮ ◮ ◮ ◮ Prob: ≤ 1 (s∗ , r∗ ) ∈ / Ee ⇒ e ∈ / Ps∗ r∗ Capacity: ≤ deg(s∗ ) + deg(r∗ ) ≤ |R ∩ C| + |S ∩ C| = |C| Contribution: ≤ |C| = xe Balanced VPN is NP-hard Theorem VPN with linear costs and |S| = |R| is still NP-hard. ◮ ◮ G = (V, E) Steiner tree instance with terminals v1 , . . . , vk+1 P C > e∈E c(e), M ≫ (k + 1)C Balanced VPN is NP-hard Theorem VPN with linear costs and |S| = |R| is still NP-hard. ◮ ◮ G = (V, E) Steiner tree instance with terminals v1 , . . . , vk+1 P C > e∈E c(e), M ≫ (k + 1)C vk+1 G v1 v2 .. . vk Balanced VPN is NP-hard Theorem VPN with linear costs and |S| = |R| is still NP-hard. ◮ ◮ G = (V, E) Steiner tree instance with terminals v1 , . . . , vk+1 P C > e∈E c(e), M ≫ (k + 1)C vk+1 v1 v2 C .. C . v C G k M a1 a2 M receiver kM kM 0 sender 0 0 ... wk w1 w2 a4 a3 0 u1 u2 0 0 0 ... u3 u2k−1 Balanced VPN is NP-hard Theorem VPN with linear costs and |S| = |R| is still NP-hard. ◮ ◮ G = (V, E) Steiner tree instance with terminals v1 , . . . , vk+1 P C > e∈E c(e), M ≫ (k + 1)C vk+1 v1 v2 C .. C . v C G k M a1 a2 M receiver kM kM 0 sender 0 0 ... wk w1 w2 a4 a3 0 u1 u2 0 0 0 ... u3 u2k−1 Balanced VPN is NP-hard Theorem VPN with linear costs and |S| = |R| is still NP-hard. ◮ ◮ G = (V, E) Steiner tree instance with terminals v1 , . . . , vk+1 P C > e∈E c(e), M ≫ (k + 1)C vk+1 v1 v2 C .. C . v C G k M a1 a2 M receiver kM kM 0 sender 0 0 ... wk w1 w2 a4 a3 0 u1 u2 0 0 0 ... u3 u2k−1 Balanced VPN is NP-hard Theorem VPN with linear costs and |S| = |R| is still NP-hard. ◮ ◮ G = (V, E) Steiner tree instance with terminals v1 , . . . , vk+1 P C > e∈E c(e), M ≫ (k + 1)C 1 vk+1 1 G 1 M /1 a1 a2 M /1 kM /k 0 sender receiver 0 0 ... wk w1 w2 v1 C/1 v2 a4 1 .. C/1 1 v. C/1 k kM /k 1 a3 0 u1 u2 0 0 0 ... u3 u2k−1 Conclusions Conclusions Theorem There is a 50-apx for Concave Cost VPN Conclusions Theorem There is a 50-apx for Concave Cost VPN Corollary ρ-apx for SSBB ⇒ 2ρ-apx for Concave Cost VPN Conclusions Theorem There is a 50-apx for Concave Cost VPN Corollary ρ-apx for SSBB ⇒ 2ρ-apx for Concave Cost VPN Corollary OP Ttree ≤ 2 · OP T for Concave Cost VPN Conclusions Theorem There is a 50-apx for Concave Cost VPN Corollary ρ-apx for SSBB ⇒ 2ρ-apx for Concave Cost VPN Corollary OP Ttree ≤ 2 · OP T for Concave Cost VPN Theorem VPN with linear costs and |S| = |R| is still NP-hard. Conclusions Theorem There is a 50-apx for Concave Cost VPN Corollary ρ-apx for SSBB ⇒ 2ρ-apx for Concave Cost VPN Corollary OP Ttree ≤ 2 · OP T for Concave Cost VPN Theorem VPN with linear costs and |S| = |R| is still NP-hard. Thanks for your attention