ppt

advertisement
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
Today‘s lecture
• Local search
– Independent set (in bounded-degree graphs)
– Max Cut
• Greedy
• Partitioning
• If time allows:
– Probabilistic method
EWSCS, 5 March 2013
Local search technique
• 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
Generic local improvement
method
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
Greedy is a form of local search
• 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
Max Cut : Local search
EWSCS, 5 March 2013
Max Cut – Local search
• 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
Max Cut – Local search
• 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
LS for Independent Sets
• 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
EWSCS, 5 March 2013
Analysis of 2-opt
•
•
•
•

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
G
B
A
C
EWSCS, 5 March 2013
Some observation
• Let B’ = B \ C, and A’ = A \ C.
• Rest of G doesn’t matter

v1
u
v2

w
A’
B’
Suppose a vertex in
A’ is adjacent to two
vertices in B’
Then at least one of
them must be
adjacent to another
node in A’
EWSCS, 5 March 2013
Argument
• 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 b 2   a
So, 2b = 2(b1 + b2)  (+1) a
 (+1)/2-approximation
v1
u
v2
w
A’
EWSCS, 5 March 2013
B’
SIMPLE GREEDY ARGUMENTS
EWSCS, 5 March 2013
Independent Set in Boundeddegree Graphs
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’

N(v)
v
return MaximalIS(G’)  {v}
N[v]
EWSCS, 5 March 2013
Independent Set in
Bounded-degree Graphs

Observation:
OPT contains at most  = |N(v)| nodes from N[v]

N(v)
v
MaximalIS() obtains 1 from N[v]


“Pay , get 1”
N[v]
Claim: MaximalIS gives a  -approximation
Maximal IS(G)
if V = , return 
Pick some vertex v from V
V’ = V – N[v]
EWSCS, 5 March 2013
return MaximalIS(G[V’])  {v}
Maximum collection of disjoint
unit circles
•
•
•
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 6approximation
Argument: “Pay 6, get 1”
EWSCS, 5 March 2013
Maximum collection of disjoint
unit circles
•
•
Improved algorithm:
Find a circle whose
neighborhood contains few nonintersecting 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 3approximation
Argument: “Pay 3, get 1”
EWSCS, 5 March 2013
Problem #1: IS
1. Consider the min-degree greedy algorithm
for the independent set problem
2. Argue a -1-approximation ratio on nonregular graphs
3. Argue a (+1)/2 ratio on regular graphs.
EWSCS, 5 March 2013
Problem #2: Min maximal matching
1. Design a factor-2 approximation algorithm
for the problem of finding a minimum
cardinality maximal matching in an
undirected graph.
EWSCS, 5 March 2013
Download