SLIDE 1
Local approximation algorithms for vertex cover Jukka Suomela HIIT, - - PowerPoint PPT Presentation
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 2
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
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
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
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
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
Synchronous communication round: Each node
- 1. performs local computation
8 / 56
Vertex cover in a distributed setting
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
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
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
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
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
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
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
Maximal matchings and edge packings
16 / 56
Part II: Background
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
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
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
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
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
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
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
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
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
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
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
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
Finding maximal edge packings in unweighted graphs
29 / 56
Part III: Pessimist’s algorithm
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
Find a maximal matching in the 2-coloured graph Easy in O(∆) rounds
31 / 56
Finding an edge packing
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
1
Many possibilities. . .
33 / 56
Finding an edge packing
SLIDE 34
1 2 1 2 1 2
Many possibilities. . .
34 / 56
Finding an edge packing
SLIDE 35
1
1 2 1 2
Many possibilities. . .
35 / 56
Finding an edge packing
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
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
∆ = 3
In any graph: Unsaturated edges adjacent to two weight 1
2 edges 38 / 56
Finding a maximal edge packing
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
∆ = 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
∆ = 2
Repeat
41 / 56
Finding a maximal edge packing
SLIDE 42
∆ = 2 → ∆ = 1
Delete saturated edges
42 / 56
Finding a maximal edge packing
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
∆ = 1
- Repeat. . .
44 / 56
Finding a maximal edge packing
SLIDE 45
- Repeat. . .
Maximum degree decreases
- n each iteration
Everything saturated in
∆ iterations
45 / 56
Finding a maximal edge packing
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
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
Finding maximal edge packings in weighted graphs
48 / 56
Part IV: Optimist’s algorithm
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
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
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
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
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
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
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
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