Approximation Algorithms for NP-hard Combinatorial Problems

Download Presentation

Approximation Algorithms for NP-hard Combinatorial Problems

Loading in 2 Seconds...

- 86 Views
- Uploaded on
- Presentation posted in: General

Approximation Algorithms for NP-hard Combinatorial Problems

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Approximation Algorithms for NP-hard Combinatorial Problems

Local Search, Greedy and Partitioning

Magnús M. Halldórsson

Reykjavik University

www.ru.is/~mmh/ewscs13/

EWSCS, 5 March 2013

- Local search
- Independent set (in bounded-degree graphs)
- Max Cut

- Greedy
- Partitioning
- If time allows:
- Probabilistic method

EWSCS, 5 March 2013

- Post-processing technique
- Frequently used on solutions found by some other algorithms, to try to improve it using simple changes.

- “Local” : Changes that affect a small part of the solution

EWSCS, 5 March 2013

S initial starting solution (obtained elsewhere)

while ( small improvement I to S) do

S solution obtained by applying I to S

output S

A solution that has gone through local search is said to be locally optimal (with respect to the improvements applied)

Issues:

- What is an improvement? (Problem specific)
- How do we find the improvement? (Search)

EWSCS, 5 March 2013

- Consider the Independent Set problem
- (1,0)-improvement : Add a single vertex (& delete none)
- A locally optimal solution with respect (1,0)-improvements is precisely a maximal independent set

EWSCS, 5 March 2013

EWSCS, 5 March 2013

- While some node has more neighbors in its own group than the other group
- Move it to the other group

- Convergence?
- Potential function: # edges cut
- Strictly increasing with each move

EWSCS, 5 March 2013

- While some node has more neighbors in its own group than the other group
- Move it to the other group

- For each vertex v: d(v)/2 edges incident on v are cut
- More than |E|/2 edges are cut
- |ALG| >= |E|/2
- |OPT| <= |E|

EWSCS, 5 March 2013

- A 2-improvement (2-imp) is the addition of up to 2 vertices and removal of up to 1 vertex, from the current solution.
- Thus, it is a set I of up to 3 vertices so that |S\I| ≤ 2 and |I\S| ≤ 1.
S

while ( 2-imp I to S) do

S S I(symmetric set difference)

output S

- Thus, it is a set I of up to 3 vertices so that |S\I| ≤ 2 and |I\S| ≤ 1.

EWSCS, 5 March 2013

G

B

A

C

- Given graph G of max degree
- A : Algorithm’s solution (2-locally optimal)
- B : “Best” solution (optimal)
- C = A B
- B’ = B \ C
- A’ = A \ C
- Rest of G doesn’t matter

EWSCS, 5 March 2013

- Let B’ = B \ C, and A’ = A \ C.
- Rest of G doesn’t matter

- Suppose a vertex in A’ is adjacent to two vertices in B’

v1

u

v2

- Then at least one of them must be adjacent to another node in A’

w

B’

A’

EWSCS, 5 March 2013

- b1 = #nodes in B w/ 1 nbor in A
- b2 = #nodes in B w/ 2 nbors in A
- b = b1 + b2 = |B’|, a = |A’|
- b1 a
- b1 + 2 b2 a
- So, 2b = 2(b1 + b2) (+1) a
- (+1)/2-approximation

v1

u

v2

w

B’

A’

EWSCS, 5 March 2013

EWSCS, 5 March 2013

Maximal IS(G) // G=(V,E) is a graph

if V = , return

Pick some vertex v from V

V’ = V – N[v]

Let G’ = graph induced by V’

return MaximalIS(G’) {v}

N(v)

v

N[v]

EWSCS, 5 March 2013

N(v)

- Observation: OPT contains at most = |N(v)| nodes from N[v]MaximalIS() obtains 1 from N[v]
- “Pay , get 1”
- Claim: MaximalIS gives a -approximation

v

N[v]

Maximal IS(G)

if V = , return

Pick some vertex v from V

V’ = V – N[v]

return MaximalIS(G[V’]) {v}

EWSCS, 5 March 2013

- Simplest algorithm is:
- Keep adding new circles, disjoint from the previous ones
- That gives a maximal collection.

MaxCircles(S) // S is a set of unit circles

if S = , return

Pick any circle C from S

S1 = Circles that intersect C, S2 = S \ S1

return MaxCircles(S2) {C}

Observation: Each circle can intersect at most 6 mutually non-intersecting circles

Claim: MaxCircles gives a 6-approximation

Argument: “Pay 6, get 1”

EWSCS, 5 March 2013

- Improved algorithm:
- Find a circle whose neighborhood contains few non-intersecting circles

MaxCircles(S) // S is a set of unit circles

if S = , return

Pick lowest circle C from S

S1 = Circles that intersect C, S2 = S \ S1

return MaxCircles(S2) {C}

Observation: C intersects at most 3 mutually non-intersecting circles

Claim: MaxCircles gives a 3-approximation

Argument: “Pay 3, get 1”

EWSCS, 5 March 2013

- Consider the min-degree greedy algorithm for the independent set problem
- Argue a -1-approximation ratio on non-regular graphs
- Argue a (+1)/2 ratio on regular graphs.

EWSCS, 5 March 2013

- Design a factor-2 approximation algorithm for the problem of finding a minimum cardinality maximal matching in an undirected graph.

EWSCS, 5 March 2013