במחיר של שניים: גישה אחידה לקירוב בעיות אופטימיזציה...
DESCRIPTION
במחיר של שניים: גישה אחידה לקירוב בעיות אופטימיזציה אחד. Reuven Bar-Yehuda CS Technion IIT Slides and papers at: http://www.cs.technion.ac.il/~reuven. Example VC. Given a graph G=(V,E) penalty p v Z for each v V Min p v ·x v S.t.: x v {0,1} x v + x u 1 {v,u} E. - PowerPoint PPT PresentationTRANSCRIPT
www.cs.technion.ac.il/~reuven
LR at Haifa 1
במחיר של שניים: גישה אחידה לקירוב בעיות אופטימיזציהבמחיר של שניים: גישה אחידה לקירוב בעיות אופטימיזציה אחדאחד
Reuven Bar-Yehuda
CS Technion IIT
Slides and papers at:
http://www.cs.technion.ac.il/~reuven
www.cs.technion.ac.il/~reuven
LR at Haifa 2
Example VCExample VC
Given a graph G=(V,E) penalty pv Z for each v V
Min pv·xv
S.t.: xv {0,1}
xv + xu 1 {v,u} E
www.cs.technion.ac.il/~reuven
LR at Haifa 3
Linear Programming (LP)Linear Programming (LP) Integer Programming (IP) Integer Programming (IP)
Given a profit [penalty] vector p.
Maximize[Minimize] p·x
Subject to: Linear Constraints F(x)
IP: where “x is an integer vector” is a constraint
www.cs.technion.ac.il/~reuven
LR at Haifa 4
Example VCExample VC
Given a graph G=(V,E) and penalty vector p Zn
Minimizep·x
Subject to: x {0,1}n
xi + xj 1 {i,j} E
www.cs.technion.ac.il/~reuven
LR at Haifa 5
Example SCExample SC
Given a Collection S1, S2,…,Sn of all subsets of {1,2,3,…,m} and penalty vector p Zn
Minimizep·x
Subject to: x {0,1}n
xi 1 j=1..m j Si
S1
S2
S3
Sn
1
2
3
m
www.cs.technion.ac.il/~reuven
LR at Haifa 6
Example Min CutExample Min Cut
Given Network N(V,E) s,t V and capacity vector p Z|E|
Minimizep·x
Subject to: x {0,1}|E|
xe 1 st path P e P
www.cs.technion.ac.il/~reuven
LR at Haifa 7
Example Shortest PathExample Shortest Path
Given digraph G(V,E) s,t V and length vector p Z|E|
Minimizep·x
Subject to: x {0,1}|E|
xe 1 st cut P e P
www.cs.technion.ac.il/~reuven
LR at Haifa 8
Example MST (Minimum Spanning Tree)Example MST (Minimum Spanning Tree)
Given graph G(V,E) s,t V and length vector p Z|E|
Minimizep·x
Subject to: x {0,1}|E|
xe 1 cut P e P
www.cs.technion.ac.il/~reuven
LR at Haifa 9
Example Minimum Steiner TreeExample Minimum Steiner Tree
Given graph G(V,E) TV and length vector p Z|E|
Minimizep·x
Subject to: x {0,1}|E|
xe 1 T’s cut P e P
www.cs.technion.ac.il/~reuven
LR at Haifa 10
Example Generalized Steiner ForestExample Generalized Steiner Forest
Given graph G(V,E) T1T1…Tk V
and length vector p Z|E|
Min p·x
S.t.: x {0,1}|E|
xe 1 i Ti’s cut P
e P
www.cs.technion.ac.il/~reuven
LR at Haifa 11
Example IS (Maximum Independent Set)Example IS (Maximum Independent Set)
Given a graph G=(V,E) and profit vector p Zn
Maximaize p·x
Subject to: x {0,1}n
xi + xj 1 {i,j} E
www.cs.technion.ac.il/~reuven
LR at Haifa 12
Maximum Independent Set in Interval GraphsMaximum Independent Set in Interval Graphs
Activity9Activity8Activity7Activity6Activity5Activity4Activity3Activity2
Activity1
time
Maximize s.t. For each instance I:
For each time t:
I
IxIp )( }1,0{Ix
)()(:
1IetIsIIx
www.cs.technion.ac.il/~reuven
LR at Haifa 13
The Local-Ratio Technique:The Local-Ratio Technique: Basic definitions Basic definitions
Given a profit [penalty] vector p.
Minimize [Maximize] p·x
Subject to: feasibility constraints F(x)
x is r-approximation if F(x) and p·x r · p·x*
An algorithm is r-approximation if for any p, F
it returns an r-approximation
www.cs.technion.ac.il/~reuven
LR at Haifa 14
The Local-Ratio Theorem:The Local-Ratio Theorem:
x is an r-approximation with respect to p1
x is an r-approximation with respect to p- p1
x is an r-approximation with respect to p
Proof: (For minimization)
p1 · x r × p1*
p2 · x r × p2*
p · x r × ( p1*+ p2*)
r × ( p1 + p2 )*
www.cs.technion.ac.il/~reuven
LR at Haifa 15
Special case: Optimization is 1-approximationSpecial case: Optimization is 1-approximation
x is an optimum with respect to p1
x is an optimum with respect to p- p1
x is an optimum with respect to p
www.cs.technion.ac.il/~reuven
LR at Haifa 16 A Local-Ratio Schema for A Local-Ratio Schema for Minimization[Maximization] problems: Minimization[Maximization] problems:
Algorithm r-ApproxMin[Max]( Set, p )
If Set = Φ then return Φ ;
If I Set p(I)=0 then return {I} r-ApproxMin( Set-{I}, p ) ;
[If I Set p(I) 0 then return r-ApproxMax( Set-{I}, p ) ;]
Define “good” p1 ;
REC = r-ApproxMax[Min]( Set, p- p1 ) ;
If REC is not an r-approximation w.r.t. p1 then “fix it”; return REC;
www.cs.technion.ac.il/~reuven
LR at Haifa 17
The Local-Ratio Theorem: ApplicationsThe Local-Ratio Theorem: Applications
Applications to some optimization algorithms (r = 1):
( MST) Minimum Spanning Tree (Kruskal)
( SHORTEST-PATH) s-t Shortest Path (Dijkstra)
(LONGEST-PATH) s-t DAG Longest Path (Can be done with dynamic programming)
(INTERVAL-IS) Independents-Set in Interval Graphs Usually done with dynamic programming)
(LONG-SEQ) Longest (weighted) monotone subsequence (Can be done with dynamic programming)
( MIN_CUT) Minimum Capacity s,t Cut (e.g. Ford, Dinitz)
Applications to some 2-Approximation algorithms: (r = 2)
( VC) Minimum Vertex Cover (Bar-Yehuda and Even)
( FVS) Vertex Feedback Set (Becker and Geiger)
( GSF) Generalized Steiner Forest (Williamson, Goemans, Mihail, and Vazirani)
( Min 2SAT) Minimum Two-Satisfibility (Gusfield and Pitt)
( 2VIP) Two Variable Integer Programming (Bar-Yehuda and Rawitz)
( PVC) Partial Vertex Cover (Bar-Yehuda)
( GVC) Generalized Vertex Cover (Bar-Yehuda and Rawitz)
Applications to some other Approximations:
( SC) Minimum Set Cover (Bar-Yehuda and Even)
( PSC) Partial Set Cover (Bar-Yehuda)
( MSP) Maximum Set Packing (Arkin and Hasin)
Applications Resource Allocation and Scheduling :
….
www.cs.technion.ac.il/~reuven
LR at Haifa 18
The creative part…The creative part…find find -Effective weights-Effective weights
p1 is -Effective if every feisible solution is -approx w.r.t. p1
i.e. p1 ·x p1*
VC (vertex cover) Edge Matching Greedy Homogeneous
www.cs.technion.ac.il/~reuven
LR at Haifa 19
VC (V, E, p)
If E= return ;
If p(v)=0 return {v}+VC(V-{v}, E-E(v), p);
Let (x,y)E;
Let = min{p(x), p(y)};
Define p1 (v) = if v=x or v=y and 0 otherwise;
Return VC(V, E, p- p1 )
VC: Recursive implementation (edge by edge)VC: Recursive implementation (edge by edge)
0
0
00
0
0
www.cs.technion.ac.il/~reuven
LR at Haifa 20VC: Iterative implementation (edge by edge)VC: Iterative implementation (edge by edge)
VC (V, E, p)
for each e E;
let = min{p(v)| v e};
for each v e
p(v) = p(v) - ;
return {v| p(v)=0};
0
0
00
0
0
www.cs.technion.ac.il/~reuven
LR at Haifa 21
15
5
812
20
6
10
Min 5xBisli+8xTea+12xWater+10xBamba+20xShampoo+15xPopcorn+6xChocolate
s.t. xShampoo + xWater 1
www.cs.technion.ac.il/~reuven
LR at Haifa 23VC: Iterative implementation (edge by edge)VC: Iterative implementation (edge by edge)
VC (V, E, p)
for each e E;
let = min{p(v)| v e};
for each v e
p(v) = p(v) - ;
return {v| p(v)=0};
1015
100
2
30
90
5080
www.cs.technion.ac.il/~reuven
LR at Haifa 24
VC: Greedy ( O(H(VC: Greedy ( O(H()) - approximation))) - approximation)H(H()=1/2+1/3+…+1/)=1/2+1/3+…+1/ = O(ln = O(ln ))
Greedy_VC (V, E, p)
C = ;
while E
let v=arc min p(v)/d(v)
C = C + {v};
V = V – {v};
return C;
n/
n/4
n/3
n/2
n
… …
www.cs.technion.ac.il/~reuven
LR at Haifa 25
VC: LR-Greedy (star by star)VC: LR-Greedy (star by star)
LR_Greedy_VC (V, E, p)
C = ;
while E
let v=arc min p(v)/d(v)
let = p(v)/d(v);
C = C + {v};
V = V – {v};
for each u N(v)
p(v) = p(v) - ;
return C;
4
www.cs.technion.ac.il/~reuven
LR at Haifa 26
VC: LR-Greedy by reducing 2-effective homogeniousVC: LR-Greedy by reducing 2-effective homogeniousHomogenious = all vertices have the same “greedy value”Homogenious = all vertices have the same “greedy value”
LR_Greedy_VC (V, E, p)
C = ;
Repeat
Let = Min p(v)/d(v);
For each v V
p(v) = p(v) – d(v);
Move from V to C all zero weight vertices;
Remove from V all zero degree vertices;
Until E=Return C;
46 4
53
3
3
2
www.cs.technion.ac.il/~reuven
LR at Haifa 27
Example MST (Minimum Spanning Tree)Example MST (Minimum Spanning Tree)
Given graph G(V,E) s,t V and length vector p Z|E|
Minimizep·x
Subject to: x {0,1}|E|
xe 1 cut P e P
www.cs.technion.ac.il/~reuven
LR at Haifa 28
MST (V, E, p)
If V= return ;
If self-loop e return MST(V, E-{e}, p);
If p(e)=0 return {e}+MST(Vshrink(e), Eshrink(e), p);
Let = min{p(e) : eE};
Define p1 (e) = for all eE;
Return MST(V, E, p- p1 )
MST: Recursive implementation (Homogenious)MST: Recursive implementation (Homogenious)
www.cs.technion.ac.il/~reuven
LR at Haifa 29
MST (V, E, p)
Kruskal
MST: Iterative implementation (Homogenious)MST: Iterative implementation (Homogenious)