An O(log  k)­Approximation 
                   2

    Algorithm for Vertex Connected 
          Spanning Subgraph

       ...
Outline of This Talk
    ●
        Problem Formulation
    ●
        Structural Properties
    ●
        Main Algorithm
  ...
Motivation




                 3
Design a Network




                       4
A Survivable Network




                           5
Given network­nodes and possible 
        connections (with cost).




                   C



                           ...
We want to pay cheap cost to make 
          all nodes connected.




                   C



                            ...
Is this good enough?




             C



                           8
What if one node is broken? 




                 C



                                   9
Network break apart 




             C



                           10
We want more than just connected.




                   C



                                        11
We require a network to be 
    survivable even if some nodes fail.




                    C



                         ...
A network that can survive
       after one node fail.




                C



                                 13
A network that can survive
       after one node fail.




                C



                                 14
Formulate as a Graph problem




                                   15
Min­cost k­Vertex Connected Spanning
        Subgraph Problem (k­VCSS)




                                           16
k­Vertex Connected Spanning 
         Subgraph Problem (k­VCSS)

    Input:
    ●   Graph G=(V, E) with non­negative cost ...
History of Results




                         18
Results since 2002
                                             n = number of vertices
                                   ...
Results since 2002
                                             n = number of vertices
                                   ...
Negative Results: APX­Hard for k > 1
    Czumaj­Lingas 1999, Gabow (unpublished)




                                     ...
All results listed have a common framework.




                                                  22
Increase connectivity from L=1, 2,.., k 




                                               23
Start from connectivity = 1




                             Edge in current graph
                             Edge that ...
Increase connectivity to 2




                             Edge in current graph
                             Edge that c...
Increase connectivity to 3




                             Edge in current graph
                             Edge that c...
T(n, k)­approx. algo. for increasing connectivity,
                         implies
       O(T(n, k) log k)­approx. algo. ...
Assume a graph is L­connected,
    and we want to increase connectivity to L+1




                                       ...
Structure of L­connected graph




                                     29
(Vertex) Separator
    ●   Set S of vertices: removing S leaves G disconnected.
    ●   An  L­connected graph that is not ...
Cover Separator
    ●
        Add an edge crossing it.




                                     31
Covering all separators =
              increasing connectivity
    ●   Naive idea: add an edge to cover each separator
  ...
Covering all separators =
              increasing connectivity
    ●   Naive idea: add an edge to cover each separator
  ...
Covering all separators =
              increasing connectivity
    ●   Naive idea: add an edge to cover each separator
  ...
Our plan is to find a systematic way
          to cover all separators




                                           35
Hard to work with separators
    Better to deal with fragments




                                    36
Fragment
    ●   Removing separator disconnects graph into parts.
    ●   Each part is called a fragment.




            ...
Fragment
    ●   Removing separator disconnects graph into parts.
    ●   Each part is called a fragment.




            ...
Fragment
    ●   Precisely, fragment F has L neighbours, say N(F), and 
        V – (F ∪ N(F)) is not empty.
    ●   V – (...
Cover Fragment
    ●
        Add an edge between fragment and its 
        complementary fragment.




                   ...
Small fragment
    ●   A fragment F, F ≤ (|V| ­ L)/2




                                        41
Property of small fragment
    ●
        The non­empty intersection of two small          
        fragments is also a sma...
Property of small fragment
    ●
        The non­empty intersection of two small          
        fragments is also a sma...
Property of small fragment
    ●
        The non­empty intersection of two small          
        fragments is also a sma...
Property of small fragment
    ●
        The non­empty intersection of two small          
        fragments is also a sma...
Core and Halo­set (AC )




                              46
Core
    ●
        An inclusionwise minimal small fragment




                                       Core contains no 
  ...
Halo­family A(C)
    ●
        A(C) = {U : U is a small fragment that contains 
        C and contains no other cores}



...
Halo­family A(C)
    ●
         A(C) = {U : U is a small fragment that contains 
         C and contains no other cores}

...
Halo­set AC
    ●   AC = a union of fragments in Halo­family A(C)




                             AC




                ...
Disjointness Property
    ●
        Members of different Halo­families are disjoint.




                                 ...
Disjointness Property
    ●
        Thus, cores and Halo­sets are disjoint.




                                          ...
Connection to Connectivity
    ●
        (L+1)­connected graph has no small fragments 
        and thus has no cores.




...
Cores and Halo­sets (but not Halo­families) are
               polytime computable.




                                  ...
We use the number of cores to measure
    how close graph is to be (L+1)­connected.




                                  ...
Our plan is to add cheap edges
    to decrease the number of cores.




                                       56
Algorithm
    While the number of cores > 0
      For each core C
       –Add set of edges to cover all fragments in 
    ...
Overview of Analysis
    ●
        In each while loop,
        ●
            The number of core decreases by half.
       ...
The number of cores
                  decreases by half.
    ●
        Cores in the next iteration are small fragments 
  ...
The number of cores
                  decreases by half.
    ●
        Cores in the next iteration are small fragments 
  ...
The number of cores
                  decreases by half.
    ●
        Cores in the next iteration are small fragments 
  ...
The number of cores
                 decreases by half.
    ●
        Fragments having one core are in some Halo­
        ...
The number of cores
                 decreases by half.
    ●
        Fragments having one core are in some Halo­
        ...
The number of cores
                        decreases by half.
       ●   Remaining small fragments contains ≥ 2 cores



...
The number of cores
                  decreases by half.
    ●
        Thus, the number of cores in the next iterations 
 ...
Cost paid is at most 4opt
    ●
        Claim: There is a 2­approximation algorithm for 
        covering Halo­families. [...
Cost paid is at most 4opt
    ●
        An edge that covers a fragment must go from 
        the fragment to its complemen...
Cost paid is at most 4opt
    ●   Edges that cover small fragments:
        (1) has ≥ 1 endpoints in Halo­sets (2) share b...
Cost paid is at most 4opt
    ●   OPT(C) = {e ∈ OPT : e has endpoint in A(C)}
    ●
        I(C) = min­cost set of edges t...
Subroutines needed




                         70
Cover Halo­family




                        71
Subroutine Needed


        Theorem [Frank '99] There is a polynomial time 
        algorithm that increasing rooted conne...
Cover Halo­Family A(C)
    ●   Set cost of edges with no endpoints in AC to zero.
    ●   Run Frank's algorithm rooted at ...
Correctness

      Edges that cover small fragments in
    Halo­family A(C) have endpoints in A(C)




                   ...
Cost

      Frank's algorithm give an optimal solution
    Running it in bi­directed graph pays factor of 2.




         ...
Computing Cores and Halo­sets




                                    76
Compute Cores
    For each pair of vertices
    ●
        Compute Vertex­Capacitated Max­flow
    ●
        Choose vertice...
Compute Halo­set AC
    For each vertex v
    ●   Run testing procedure to check if v is in AC
    End For




           ...
We need Testing Procedure.




                                 79
Testing Procedure (core C, vertex v) 
    ●   Add an edge from a vertex r ∈ C to v.
    ●
        Add edges forming a cliq...
Testing Procedure (core C, vertex v) 
    ●
        Compute minimal small fragment U that 
        contains C by running M...
Testing Procedure (core C, vertex v) 
    ●   If U contains both C and v but no other cores, accept v.
    ●   Otherwise, ...
Testing Procedure (core C, vertex v) 
    ●   If U contains both C and v but no other cores, accept v.
    ●   Otherwise, ...
Correctness of Testing Procedure
    ●
        Let U be any small fragment containing C.




                 U           ...
Correctness of Testing Procedure
    ●   If v ∈U, then a neighbour of v is either in U or a 
        separator of U. So, U...
Correctness of Testing Procedure
    ●   If v ∈a separator of U, then v has one neighbour in U and 
        one in its com...
Correctness of Testing Procedure
    ●   If v ∉U, then an edge (r, v) covers U.


                                        ...
Correctness of Testing Procedure
    ●
        Thus, any small fragment containing C, if exists, 
        must contain v i...
Correctness of Testing Procedure
    ●   U has unique core C ⇔ U is in Halo­family A(C) 




                             ...
Correctness of Testing Procedure
    ●   U has unique core C ⇔ U is in Halo­family A(C) 


                               ...
Side Remarks (not in paper)
    ●
        Our algorithm give factor of O(log t), where t is the 
        number of cores.
...
Conclusion
    ●
        We present O(log2 k)­approximation algorithm 
        for k­VCSS


    ●
        New techniques n...
Open Problems
    ●
        Is there O(log k)­approximation algorithm for 
        all value of k, n?
    ●
        Can we...
Questions?




                 94
Thank you for your attention.




                                    95
Upcoming SlideShare
Loading in …5
×

An O(log^2 k)-approximation algorithm for k-vertex connected spanning subgraph

617 views
551 views

Published on

I am finding a creative idea for presenting mathematics without losing its preciseness.

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
617
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

An O(log^2 k)-approximation algorithm for k-vertex connected spanning subgraph

  1. 1. An O(log  k)­Approximation  2 Algorithm for Vertex Connected  Spanning Subgraph Bundit Laekhanukit C&O Department, University of Waterloo Joint work with Jittat Fakcharoenphol, Kasetsart University     1
  2. 2. Outline of This Talk ● Problem Formulation ● Structural Properties ● Main Algorithm ● Important Subroutines     2
  3. 3. Motivation     3
  4. 4. Design a Network     4
  5. 5. A Survivable Network     5
  6. 6. Given network­nodes and possible  connections (with cost). C     6
  7. 7. We want to pay cheap cost to make  all nodes connected. C     7
  8. 8. Is this good enough? C     8
  9. 9. What if one node is broken?  C     9
  10. 10. Network break apart  C     10
  11. 11. We want more than just connected. C     11
  12. 12. We require a network to be  survivable even if some nodes fail. C     12
  13. 13. A network that can survive after one node fail. C     13
  14. 14. A network that can survive after one node fail. C     14
  15. 15. Formulate as a Graph problem     15
  16. 16. Min­cost k­Vertex Connected Spanning Subgraph Problem (k­VCSS)     16
  17. 17. k­Vertex Connected Spanning  Subgraph Problem (k­VCSS) Input: ● Graph G=(V, E) with non­negative cost on edges ● An integer k, a requirement Goal: ● Find a min­cost subgraph H=(V, E'). ● Removing < k vertices does not disconnect H. k=1: Minimunm Spanning Tree,  k>1: NP­Hard     17
  18. 18. History of Results     18
  19. 19. Results since 2002 n = number of vertices m = number of edges Year Authors Approximation Ratio 2002 Cheriyan, Vempala, Vetta O(log k) for n > 6k2 n 2004 Kortsarz, Nutov O(min{     log k,    }log k) n−k k 2008 Fakcharoenphol, L. O(log2 k) n 2009 Nutov O(log(    ) log k) n−k Important early result: Ravi, Williamson 1995     19
  20. 20. Results since 2002 n = number of vertices m = number of edges Year Authors Approximation Ratio 2002 Cheriyan, Vempala, Vetta O(log k) for n > 6k2 n 2004 Kortsarz, Nutov O(min{     log k,    }log k) n−k k 2008 Fakcharoenphol, L. O(log2 k) n 2009 Nutov O(log(    ) log k) n−k Important early result: Ravi, Williamson 1995     20
  21. 21. Negative Results: APX­Hard for k > 1 Czumaj­Lingas 1999, Gabow (unpublished)     21
  22. 22. All results listed have a common framework.     22
  23. 23. Increase connectivity from L=1, 2,.., k      23
  24. 24. Start from connectivity = 1 Edge in current graph Edge that can be added     24
  25. 25. Increase connectivity to 2 Edge in current graph Edge that can be added     25
  26. 26. Increase connectivity to 3 Edge in current graph Edge that can be added     26
  27. 27. T(n, k)­approx. algo. for increasing connectivity, implies O(T(n, k) log k)­approx. algo. for k­VCSS.     27
  28. 28. Assume a graph is L­connected, and we want to increase connectivity to L+1     28
  29. 29. Structure of L­connected graph     29
  30. 30. (Vertex) Separator ● Set S of vertices: removing S leaves G disconnected. ● An  L­connected graph that is not (L+1)­connected has  separator of size L.     30
  31. 31. Cover Separator ● Add an edge crossing it.     31
  32. 32. Covering all separators = increasing connectivity ● Naive idea: add an edge to cover each separator ● But, the cost can be blown up.     32
  33. 33. Covering all separators = increasing connectivity ● Naive idea: add an edge to cover each separator ● But, the cost can be blown up.     33
  34. 34. Covering all separators = increasing connectivity ● Naive idea: add an edge to cover each separator ● But, the cost can be blown up.     34
  35. 35. Our plan is to find a systematic way to cover all separators     35
  36. 36. Hard to work with separators Better to deal with fragments     36
  37. 37. Fragment ● Removing separator disconnects graph into parts. ● Each part is called a fragment.     37
  38. 38. Fragment ● Removing separator disconnects graph into parts. ● Each part is called a fragment.     38
  39. 39. Fragment ● Precisely, fragment F has L neighbours, say N(F), and  V – (F ∪ N(F)) is not empty. ● V – (F ∪ N(F)) is a complementary fragment. Not empty Fragment Complementary Fragment,     39
  40. 40. Cover Fragment ● Add an edge between fragment and its  complementary fragment.     40
  41. 41. Small fragment ● A fragment F, F ≤ (|V| ­ L)/2     41
  42. 42. Property of small fragment ● The non­empty intersection of two small           fragments is also a small fragment.     42
  43. 43. Property of small fragment ● The non­empty intersection of two small           fragments is also a small fragment.     43
  44. 44. Property of small fragment ● The non­empty intersection of two small           fragments is also a small fragment.     44
  45. 45. Property of small fragment ● The non­empty intersection of two small           fragments is also a small fragment.     45
  46. 46. Core and Halo­set (AC )     46
  47. 47. Core ● An inclusionwise minimal small fragment Core contains no  other small fragments     47
  48. 48. Halo­family A(C) ● A(C) = {U : U is a small fragment that contains  C and contains no other cores} C     48
  49. 49. Halo­family A(C) ● A(C) = {U : U is a small fragment that contains  C and contains no other cores} not in Halo­family C     49
  50. 50. Halo­set AC ● AC = a union of fragments in Halo­family A(C) AC C     50
  51. 51. Disjointness Property ● Members of different Halo­families are disjoint.     51
  52. 52. Disjointness Property ● Thus, cores and Halo­sets are disjoint.     52
  53. 53. Connection to Connectivity ● (L+1)­connected graph has no small fragments  and thus has no cores.     53
  54. 54. Cores and Halo­sets (but not Halo­families) are polytime computable.     54
  55. 55. We use the number of cores to measure how close graph is to be (L+1)­connected.     55
  56. 56. Our plan is to add cheap edges to decrease the number of cores.     56
  57. 57. Algorithm While the number of cores > 0 For each core C –Add set of edges to cover all fragments in  Halo­family of C End For End While     57
  58. 58. Overview of Analysis ● In each while loop, ● The number of core decreases by half. ● Cost paid is ≤ 4opt ● Thus, it give O(log n) opt.     58
  59. 59. The number of cores decreases by half. ● Cores in the next iteration are small fragments  in the previous one. Edge in current graph Edge that can be added     59
  60. 60. The number of cores decreases by half. ● Cores in the next iteration are small fragments  in the previous one. Edge in current graph Edge that can be added     60
  61. 61. The number of cores decreases by half. ● Cores in the next iteration are small fragments  in the previous one. Edge in current graph Edge that can be added     61
  62. 62. The number of cores decreases by half. ● Fragments having one core are in some Halo­ family, so all of them must be covered. Edge in current graph Edge that can be added     62
  63. 63. The number of cores decreases by half. ● Fragments having one core are in some Halo­ family, so all of them must be covered. Edge in current graph Edge that can be added     63
  64. 64. The number of cores decreases by half. ● Remaining small fragments contains ≥ 2 cores     64 Core in the next iteration
  65. 65. The number of cores decreases by half. ● Thus, the number of cores in the next iterations  is at most half of the previous one.     65
  66. 66. Cost paid is at most 4opt ● Claim: There is a 2­approximation algorithm for  covering Halo­families. [proof later] ● Idea: Edges that cover each Halo­families are  almost disjoint (share by at most 2).     66
  67. 67. Cost paid is at most 4opt ● An edge that covers a fragment must go from  the fragment to its complementary. Edge in current graph Edge that can be added     67
  68. 68. Cost paid is at most 4opt ● Edges that cover small fragments: (1) has ≥ 1 endpoints in Halo­sets (2) share by ≤ 2 Halo­sets. share by ≤ 2 Halo­sets ≥ 1 endpoint in Halo­Set Edge in current graph Edge that can be added     68
  69. 69. Cost paid is at most 4opt ● OPT(C) = {e ∈ OPT : e has endpoint in A(C)} ● I(C) = min­cost set of edges that cover A(C) ● Then cost(I(C)) ≤ cost(OPT(C)) ● Thus,  ∑ cost  I C ≤∑ cost OPT C =2 opt ● 2­approx for covering Halo­family implies that  cost paid ≤ 4opt.     69
  70. 70. Subroutines needed     70
  71. 71. Cover Halo­family     71
  72. 72. Subroutine Needed Theorem [Frank '99] There is a polynomial time  algorithm that increasing rooted connectivity of  directed graph by 1. ● Particularly, Frank's algorithm covers all  fragments that contain a root vertex r. Note: We use Frank­Tardos Algorithm in the original paper.     72
  73. 73. Cover Halo­Family A(C) ● Set cost of edges with no endpoints in AC to zero. ● Run Frank's algorithm rooted at r ∈ C (bi­directed graph) ● Choose edges with endpoints in AC cost 0 original cost r C AC     73
  74. 74. Correctness Edges that cover small fragments in Halo­family A(C) have endpoints in A(C)     74
  75. 75. Cost Frank's algorithm give an optimal solution Running it in bi­directed graph pays factor of 2.     75
  76. 76. Computing Cores and Halo­sets     76
  77. 77. Compute Cores For each pair of vertices ● Compute Vertex­Capacitated Max­flow ● Choose vertices reachable from source. ● Save fragment found to the list End for Remove fragments in list that contain others.     77
  78. 78. Compute Halo­set AC For each vertex v ● Run testing procedure to check if v is in AC End For     78
  79. 79. We need Testing Procedure.     79
  80. 80. Testing Procedure (core C, vertex v)  ● Add an edge from a vertex r ∈ C to v. ● Add edges forming a clique on neighbours of v. v Padding Edges Padded Graph   r   80
  81. 81. Testing Procedure (core C, vertex v)  ● Compute minimal small fragment U that  contains C by running Max­Flow. v U                   r   81
  82. 82. Testing Procedure (core C, vertex v)  ● If U contains both C and v but no other cores, accept v. ● Otherwise, reject v. v U                 ACCEPT   r   82
  83. 83. Testing Procedure (core C, vertex v)  ● If U contains both C and v but no other cores, accept v. ● Otherwise, reject v. v U                 REJECT   r   83
  84. 84. Correctness of Testing Procedure ● Let U be any small fragment containing C. U                     84
  85. 85. Correctness of Testing Procedure ● If v ∈U, then a neighbour of v is either in U or a  separator of U. So, U is still a fragment. v U                   r   85
  86. 86. Correctness of Testing Procedure ● If v ∈a separator of U, then v has one neighbour in U and  one in its complement. So, padding edges cover U. v cover U U                   r   86
  87. 87. Correctness of Testing Procedure ● If v ∉U, then an edge (r, v) covers U. v cover U U                   r   87
  88. 88. Correctness of Testing Procedure ● Thus, any small fragment containing C, if exists,  must contain v in the padded graph. v U                   r   88
  89. 89. Correctness of Testing Procedure ● U has unique core C ⇔ U is in Halo­family A(C)  v U                   r   89
  90. 90. Correctness of Testing Procedure ● U has unique core C ⇔ U is in Halo­family A(C)  v U                   r   90
  91. 91. Side Remarks (not in paper) ● Our algorithm give factor of O(log t), where t is the  number of cores. ● Running Frank's algorithm from r ∈ C reduce the  number of cores to ≤ k. ● Preprocessing cost ≤ 2opt In the original paper, we apply Kortsarz­Nutov's algorithm when k ≤ o(n), e.g., k ≤ n/2.     91
  92. 92. Conclusion ● We present O(log2 k)­approximation algorithm  for k­VCSS ● New techniques not in this talk: ● The number of cores can be decreased to L. ● We can avoid Halo­sets computation.     92
  93. 93. Open Problems ● Is there O(log k)­approximation algorithm for  all value of k, n? ● Can we get hardness better than APX­hard? ● Can we apply LP rounding technique to this  problem? ­­ What is ratio IP/LP?     93
  94. 94. Questions?     94
  95. 95. Thank you for your attention.     95

×