Local approximation algorithms for vertex cover Jukka Suomela HIIT, - - PowerPoint PPT Presentation

local approximation algorithms for vertex cover
SMART_READER_LITE
LIVE PREVIEW

Local approximation algorithms for vertex cover Jukka Suomela HIIT, - - PowerPoint PPT Presentation

Local approximation algorithms for vertex cover Jukka Suomela HIIT, University of Helsinki, Finland Joint work with Matti strand, Patrik Floren, Valentin Polishchuk, Joel Rybicki, and Jara Uitto + 1 + 1 2 4 Paderborn, 20 October


slide-1
SLIDE 1

Paderborn, 20 October 2009

+ 1

2 ·

+ 1

4 ·

Jukka Suomela — HIIT, University of Helsinki, Finland Joint work with Matti Åstrand, Patrik Floréen, Valentin Polishchuk, Joel Rybicki, and Jara Uitto

Local approximation algorithms for vertex cover

slide-2
SLIDE 2

Vertex cover problem in a distributed setting

2 / 56

Part I: Introduction

slide-3
SLIDE 3

Given a graph G = (V, E), find a smallest

C ⊆ V that covers every edge of G

  • i.e., each edge e ∈ E incident to

at least one node in C Classical NP-hard optimisation problem

3 / 56

Vertex cover

slide-4
SLIDE 4

Node = computer Edge = communication link Each node must decide whether it is in the cover C

4 / 56

Vertex cover in a distributed setting

slide-5
SLIDE 5

Graph is unknown, all nodes run the same algorithm Initially: Each node knows its own degree and the maximum degree ∆

5 / 56

Vertex cover in a distributed setting

slide-6
SLIDE 6

6 3 2 5 4 1 4 1 2 3 1 2 1 2 1 1 1 1

Port numbering: each node has chosen an ordering on its incident edges

6 / 56

Vertex cover in a distributed setting

slide-7
SLIDE 7

6 3 2 5 4 1 4 1 2 3 1 2 1 2 1 1 1 1

Communication primitives:

  • “send message m to port i”
  • “let m be the message received from port i”

7 / 56

Vertex cover in a distributed setting

slide-8
SLIDE 8

Synchronous communication round: Each node

  • 1. performs local computation

8 / 56

Vertex cover in a distributed setting

slide-9
SLIDE 9

Synchronous communication round: Each node

  • 1. performs local computation
  • 2. sends a message to each neighbour

9 / 56

Vertex cover in a distributed setting

slide-10
SLIDE 10

Synchronous communication round: Each node

  • 1. performs local computation
  • 2. sends a message to each neighbour

(message propagation. . . )

10 / 56

Vertex cover in a distributed setting

slide-11
SLIDE 11

Synchronous communication round: Each node

  • 1. performs local computation
  • 2. sends a message to each neighbour
  • 3. receives a message from each neighbour

11 / 56

Vertex cover in a distributed setting

slide-12
SLIDE 12

no yes no no no no no yes

Finally: Each node performs local computation and announces its output: whether it is in the cover C Running time = number of communication rounds

12 / 56

Vertex cover in a distributed setting

slide-13
SLIDE 13

Focus:

  • deterministic algorithm
  • strictly local algorithm,

running time independent of n = |V| (but may depend on maximum degree ∆)

  • the best possible approximation ratio

13 / 56

Vertex cover in a distributed setting

slide-14
SLIDE 14

Kuhn et al. (2006):

  • (2 + ǫ)-approximation in O(log ∆/ǫ4) rounds

Czygrinow et al. (2008), Lenzen & Wattenhofer (2008):

  • (2 − ǫ)-approximation requires

Ω(log∗ n) rounds, even if ∆ = 2

What about 2-approximation? Is it possible in f (∆) rounds, for some f ?

14 / 56

Prior work

slide-15
SLIDE 15

Deterministic 2-approximation algorithm for vertex cover

  • Running time O(∆) synchronous rounds

Surprise: node identifiers not needed

  • Negative result for (2 − ǫ)-approximation holds

even if there are unique node identifiers

  • Our algorithm can be used in

anonymous networks

15 / 56

Contribution

slide-16
SLIDE 16

Maximal matchings and edge packings

16 / 56

Part II: Background

slide-17
SLIDE 17

In a centralised setting,

2-approximation is easy:

find a maximal matching, take all matched nodes But matching requires

Ω(log∗ n) rounds

and unique identifiers

  • symmetry breaking!

17 / 56

Background: maximal matching

slide-18
SLIDE 18

0.0

0.0 1.0 0.0 0.0 0.5 0.0 0.3 0.2

Edge packing = nonnegative edge weights, for each v ∈ V, total weight on incident edges ≤ 1 Maximal, if no weight can be increased

18 / 56

Background: maximal edge packing

slide-19
SLIDE 19

0.0

0.0 1.0 0.0 0.0 0.5 0.0 0.3 0.2

Weighted edge packing = nonnegative edge weights, for each v ∈ V, total weight on incident edges ≤ wv Maximal, if no weight can be increased

19 / 56

Background: maximal edge packing

slide-20
SLIDE 20

0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0

Maximal matching =

⇒ maximal edge packing

(matched: weight 1, unmatched: weight 0)

20 / 56

Background: maximal edge packing

slide-21
SLIDE 21

0.5 0.5 0.5 0.5

Maximal matching requires symmetry breaking Maximal edge packing does not

21 / 56

Background: maximal edge packing

slide-22
SLIDE 22

1.0 0.3 0.0 0.0 0.0 0.0 0.0 0.5 0.2

Node saturated if total weight on incident edges = 1 Saturated nodes in a maximal edge packing =

2-approximation of vertex cover (proof: LP duality)

22 / 56

Background: maximal edge packing

slide-23
SLIDE 23

Node saturated if total weight on incident edges = 1 Saturated nodes in a maximal edge packing =

2-approximation of vertex cover

∗ ∗ ∗

So we only need to design a distributed algorithm that finds a maximal edge packing Warm-up: how to find a (non-trivial) edge packing?

23 / 56

Background: maximal edge packing

slide-24
SLIDE 24

1 1 1 2 1 3 1 2 1 4 1 3 1 1 1 4 1 4 1 4 1 2 1 2 1 3 1 1

A simple approach: a node of degree d offers

1/d of its residual capacity to each incident edge

Residual capacity = 1 − total weight of incident edges

= how much we could increase the weights of incident edges

24 / 56

Finding an edge packing

slide-25
SLIDE 25

1 2 1 3 1 4 1 4 1 4 1 3 1 4

Each edge accepts the minimum of the two offers

(cf. Khuller et al. 1994, Papadimitriou and Yannakakis 1993) 25 / 56

Finding an edge packing

slide-26
SLIDE 26

1 2 1 3 1 4 1 4 1 4 1 3 1 4

Looks good, some progress is guaranteed, and we might even saturate some nodes But this is not a maximal edge packing yet

26 / 56

Finding an edge packing

slide-27
SLIDE 27

1 2 1 3 1 4 1 4 1 4 1 4 1 3 1 2 1 6 1 12 3 4 3 4 5 12

Residual capacities are now unwieldy fractions, even though our starting point was unweighted! Unweighted instance =

⇒ weighted subproblems

27 / 56

Finding an edge packing

slide-28
SLIDE 28

Pessimist’s take:

  • Solving this will be as hard as finding

maximal edge packings in weighted graphs

  • Let’s try something else

Optimist’s take:

  • If we solve this, we can also find

maximal edge packings in weighted graphs

  • Let’s do it!

28 / 56

Finding an edge packing

slide-29
SLIDE 29

Finding maximal edge packings in unweighted graphs

29 / 56

Part III: Pessimist’s algorithm

slide-30
SLIDE 30

Construct a 2-coloured bipartite double cover Each original node simulates two nodes of the cover

30 / 56

Finding an edge packing

slide-31
SLIDE 31

Find a maximal matching in the 2-coloured graph Easy in O(∆) rounds

31 / 56

Finding an edge packing

slide-32
SLIDE 32

1 2 1 2 1 2

Give 1

2 units of weight to each edge in matching 32 / 56

Finding an edge packing

slide-33
SLIDE 33

1

Many possibilities. . .

33 / 56

Finding an edge packing

slide-34
SLIDE 34

1 2 1 2 1 2

Many possibilities. . .

34 / 56

Finding an edge packing

slide-35
SLIDE 35

1

1 2 1 2

Many possibilities. . .

35 / 56

Finding an edge packing

slide-36
SLIDE 36

1 1

1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2

Always: weight 1

2 paths and cycles and weight 1 edges

Valid edge packing

36 / 56

Finding an edge packing

slide-37
SLIDE 37

1 2 1 2 1 2 1 2

Not necessarily maximal – but all unsaturated edges adjacent to two weight 1

2 edges 37 / 56

Finding a maximal edge packing

slide-38
SLIDE 38

∆ = 3

In any graph: Unsaturated edges adjacent to two weight 1

2 edges 38 / 56

Finding a maximal edge packing

slide-39
SLIDE 39

∆ = 3 → ∆ = 2

In any graph: Unsaturated edges adjacent to two weight 1

2 edges

Delete saturated edges

39 / 56

Finding a maximal edge packing

slide-40
SLIDE 40

∆ = 3 → ∆ = 2

Each node has lost at least one neighbour Residual capacity

  • f each node is

exactly 1

2 40 / 56

Finding a maximal edge packing

slide-41
SLIDE 41

∆ = 2

Repeat

41 / 56

Finding a maximal edge packing

slide-42
SLIDE 42

∆ = 2 → ∆ = 1

Delete saturated edges

42 / 56

Finding a maximal edge packing

slide-43
SLIDE 43

∆ = 2 → ∆ = 1

Each node has lost at least one neighbour Residual capacity

  • f each node is

exactly 1

4 43 / 56

Finding a maximal edge packing

slide-44
SLIDE 44

∆ = 1

  • Repeat. . .

44 / 56

Finding a maximal edge packing

slide-45
SLIDE 45
  • Repeat. . .

Maximum degree decreases

  • n each iteration

Everything saturated in

∆ iterations

45 / 56

Finding a maximal edge packing

slide-46
SLIDE 46

∆ = 3

+ 1

2 ·

∆ = 2

+ 1

4 ·

∆ = 1

Maximal edge packing in (∆ + 1)2 rounds

= ⇒ 2-approximation of vertex cover

46 / 56

Finding a maximal edge packing

slide-47
SLIDE 47

Maximal edge packing in (∆ + 1)2 rounds

= ⇒ 2-approximation of vertex cover ∗ ∗ ∗

But it seems that this cannot be generalised to approximate minimum-weight vertex cover A different approach needed

47 / 56

Finding a maximal edge packing

slide-48
SLIDE 48

Finding maximal edge packings in weighted graphs

48 / 56

Part IV: Optimist’s algorithm

slide-49
SLIDE 49

1 1 1 2 1 3 1 2 1 4 1 3 1 1 1 4 1 4 1 4 1 2 1 2 1 3 1 1

Recall the simple algorithm: a node of degree d offers

1/d of its residual capacity to each incident edge

Each edge accepts the minimum of the two offers

49 / 56

Finding an edge packing

slide-50
SLIDE 50

1 2 1 3 1 4 1 4 1 4 1 4 1 3 1 2 1 6 1 12 3 4 3 4 5 12

Starting point has non-uniform capacities,

  • k if subproblems have non-uniform capacities!

Let’s study this approach more carefully. . .

50 / 56

Finding an edge packing

slide-51
SLIDE 51

1 2 1 3 1 4 1 4 1 4 1 4 1 3 1 2 1 6 1 12 3 4 3 4 5 12

Key observation: For each node

  • 1. at least one incident edge becomes saturated

(= cannot increase edge weight), or . . .

51 / 56

Finding an edge packing

slide-52
SLIDE 52

1 4 1 3 1 1 1 4 1 4 1 4 1 2 1 2 1 3 1 1 1 3 1 2 1 2 1 1

Key observation: for each node

  • 1. at least one incident edge becomes saturated, or
  • 2. at least one incident edge got two different offers

52 / 56

Finding an edge packing

slide-53
SLIDE 53

Key observation: for each node

  • 1. at least one incident edge becomes saturated, or
  • 2. at least one incident edge got two different offers

We can interpret the offers as “colours” Progress is guaranteed: edges become saturated or multi-coloured

53 / 56

Finding an edge packing

slide-54
SLIDE 54

After ∆ iterations: each edge saturated or multi-coloured At this point, colours are huge integers

1, 2, . . . ,

  • W(∆!)∆∆

but Cole–Vishkin (1986) techniques can be used to reduce the number of colours to ∆ + 1 very fast Then we can use the colours to saturate all edges

(W = maximum weight) 54 / 56

Finding an edge packing

slide-55
SLIDE 55

In summary, maximal edge packing in O(∆ + log∗ W) rounds, where W = maximum weight That is, O(∆) rounds in unweighted graphs!

  • pessimist’s algorithm was O(∆2)

Based on a natural “greedy but safe” strategy

  • pessimist’s algorithm was more ad hoc?

Generalisations: set cover problem, . . .

55 / 56

Finding an edge packing

slide-56
SLIDE 56

http://www.cs.helsinki.fi/jukka.suomela/

  • Two distributed 2-approximation algorithms

for the vertex cover problem

  • Running times: O(∆2) and O(∆) rounds,

deterministic, can be self-stabilised

  • Strictly local algorithms – running time

independent of number of nodes

  • Be optimistic: more general problems are

sometimes easier to tackle

56 / 56

Summary