95
  1 Bundit Laekhanukit C&O Department, University of Waterloo Joint work with Jittat Fakcharoenphol, Kasetsart University An O(log 2  k)-Approximation Algorithm for Vertex Connected Spanning Subgraph

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

  • Upload
    lbundit

  • View
    436

  • Download
    1

Embed Size (px)

DESCRIPTION

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

Citation preview

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

    1

Bundit LaekhanukitC&O Department, University of Waterloo

Joint work withJittat Fakcharoenphol, Kasetsart University

An O(log2 k)­Approximation Algorithm for Vertex Connected 

Spanning Subgraph

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

    2

Outline of This Talk

● Problem Formulation● Structural Properties● Main Algorithm● Important Subroutines

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

    3

Motivation

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

    4

Design a Network

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

    5

A Survivable Network

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

    6

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

CC

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

    7

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

CC

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

    8

Is this good enough?

CC

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

    9

What if one node is broken? 

CC

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

    10

Network break apart 

CC

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

    11

We want more than just connected.

CC

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

    12

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

CC

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

    13

A network that can surviveafter one node fail.

CC

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

    14

A network that can surviveafter one node fail.

CC

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

    15

Formulate as a Graph problem

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

    16

Min­cost k­Vertex Connected SpanningSubgraph Problem (k­VCSS)

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

    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

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

    18

History of Results

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

    19

Results since 2002

Year

2002

2004

2008

2009

Authors

Cheriyan, Vempala, Vetta 

Kortsarz, Nutov

Fakcharoenphol, L.

Nutov

Approximation Ratio

O(log k) for n > 6k2

O(min{     log k,    }log k)

O(log2 k)

O(log(    ) log k)

nn−k

nn−k

k

n = number of verticesm = number of edges

Important early result: Ravi, Williamson 1995

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

    20

Results since 2002

Year

2002

2004

2008

2009

Authors

Cheriyan, Vempala, Vetta 

Kortsarz, Nutov

Fakcharoenphol, L.

Nutov

Approximation Ratio

O(log k) for n > 6k2

O(min{     log k,    }log k)

O(log2 k)

O(log(    ) log k)

nn−k

nn−k

k

n = number of verticesm = number of edges

Important early result: Ravi, Williamson 1995

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

    21

Negative Results: APX­Hard for k > 1Czumaj­Lingas 1999, Gabow (unpublished)

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

    22

All results listed have a common framework.

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

    23

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

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

    24

Start from connectivity = 1

Edge in current graphEdge that can be added

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

    25

Increase connectivity to 2

Edge in current graphEdge that can be added

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

    26

Increase connectivity to 3

Edge in current graphEdge that can be added

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

    27

T(n, k)­approx. algo. for increasing connectivity,implies

O(T(n, k) log k)­approx. algo. for k­VCSS.

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

    28

Assume a graph is L­connected,and we want to increase connectivity to L+1

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

    29

Structure of L­connected graph

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

    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.

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

    31

Cover Separator

● Add an edge crossing it.

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

    32

Covering all separators =increasing connectivity

● Naive idea: add an edge to cover each separator● But, the cost can be blown up.

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

    33

Covering all separators =increasing connectivity

● Naive idea: add an edge to cover each separator● But, the cost can be blown up.

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

    34

Covering all separators =increasing connectivity

● Naive idea: add an edge to cover each separator● But, the cost can be blown up.

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

    35

Our plan is to find a systematic wayto cover all separators

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

    36

Hard to work with separatorsBetter to deal with fragments

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

    37

Fragment

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

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

    38

Fragment

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

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

    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.

FragmentComplementary Fragment,

Not empty

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

    40

Cover Fragment

● Add an edge between fragment and its complementary fragment.

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

    41

Small fragment

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

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

    42

Property of small fragment

● The non­empty intersection of two small          fragments is also a small fragment.

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

    43

Property of small fragment

● The non­empty intersection of two small          fragments is also a small fragment.

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

    44

Property of small fragment

● The non­empty intersection of two small          fragments is also a small fragment.

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

    45

Property of small fragment

● The non­empty intersection of two small          fragments is also a small fragment.

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

    46

Core and Halo­set (AC )

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

    47

Core

● An inclusionwise minimal small fragment

Core contains no other small fragments

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

    48C

Halo­family A(C)

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

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

    49C

Halo­family A(C)

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

not in Halo­family

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

    50

AC

C

Halo­set AC

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

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

    51

Disjointness Property

● Members of different Halo­families are disjoint.

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

    52

Disjointness Property

● Thus, cores and Halo­sets are disjoint.

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

    53

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

and thus has no cores.

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

    54

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

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

    55

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

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

    56

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

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

    57

Algorithm

While the number of cores > 0

For each core C– Add set of edges to cover all fragments in 

Halo­family of CEnd For

End While

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

    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.

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

    59

The number of coresdecreases by half.

● Cores in the next iteration are small fragments in the previous one.

Edge in current graphEdge that can be added

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

    60

The number of coresdecreases by half.

● Cores in the next iteration are small fragments in the previous one.

Edge in current graphEdge that can be added

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

    61

The number of coresdecreases by half.

● Cores in the next iteration are small fragments in the previous one.

Edge in current graphEdge that can be added

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

    62

The number of coresdecreases by half.

● Fragments having one core are in some Halo­family, so all of them must be covered.

Edge in current graphEdge that can be added

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

    63

The number of coresdecreases by half.

● Fragments having one core are in some Halo­family, so all of them must be covered.

Edge in current graphEdge that can be added

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

    64

The number of coresdecreases by half.

● Remaining small fragments contains ≥ 2 cores

Core in the next iteration

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

    65

The number of coresdecreases by half.

● Thus, the number of cores in the next iterations is at most half of the previous one.

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

    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).

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

    67

Cost paid is at most 4opt

● An edge that covers a fragment must go from the fragment to its complementary.

Edge in current graphEdge that can be added

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

    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.

Edge in current graphEdge that can be added

≥ 1 endpoint in Halo­Set

share by ≤ 2 Halo­sets

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

    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, ● 2­approx for covering Halo­family implies that 

cost paid ≤ 4opt.

∑ cost I C ≤∑ cost OPT C =2 opt

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

    70

Subroutines needed

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

    71

Cover Halo­family

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

    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.

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

    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

C AC

r

cost 0

original cost

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

    74

Correctness

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

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

    75

Cost

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

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

    76

Computing Cores and Halo­sets

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

    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.

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

    78

Compute Halo­set AC

For each vertex v

● Run testing procedure to check if v is in AC

End For

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

    79

We need Testing Procedure.

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

    80

● Add an edge from a vertex r ∈ C to v.● Add edges forming a clique on neighbours of v.

Testing Procedure (core C, vertex v) 

r

v

Padded GraphPadding Edges

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

    81

U                

Testing Procedure (core C, vertex v) 

● Compute minimal small fragment U that contains C by running Max­Flow.

r

v

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

    82

Testing Procedure (core C, vertex v) 

● If U contains both C and v but no other cores, accept v.● Otherwise, reject v.

U                

r

v

ACCEPT

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

    83

U                

Testing Procedure (core C, vertex v) 

● If U contains both C and v but no other cores, accept v.● Otherwise, reject v.

r

v

REJECT

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

    84

Correctness of Testing Procedure

● Let U be any small fragment containing C.

U                

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

    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.

U                

r

v

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

    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.

U                

r

v

cover U

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

    87

Correctness of Testing Procedure

● If v ∉U, then an edge (r, v) covers U.

U                

r

v

cover U

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

    88

Correctness of Testing Procedure

● Thus, any small fragment containing C, if exists, must contain v in the padded graph.

U                

r

v

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

    89

Correctness of Testing Procedure

● U has unique core C ⇔ U is in Halo­family A(C) 

U                

r

v

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

    90

Correctness of Testing Procedure

● U has unique core C ⇔ U is in Halo­family A(C) 

U                

r

v

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

    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.

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

    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.

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

    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?

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

    94

Questions?

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

    95

Thank you for your attention.