אחד במחיר של שניים : גישה מאוחדת לפיתוח אלגוריתמי קירוב ראובן בר - יהודה מכללת ת"א יפו לזכרו של פרופ' שמעון אבן מורי ורבי
Download
Report
Transcript אחד במחיר של שניים : גישה מאוחדת לפיתוח אלגוריתמי קירוב ראובן בר - יהודה מכללת ת"א יפו לזכרו של פרופ' שמעון אבן מורי ורבי
אחד במחיר של שניים:
גישה מאוחדת לפיתוח אלגוריתמי קירוב
ראובן בר-יהודה
מכללת ת"א יפו
לזכרו של
פרופ' שמעון אבן
מורי ורבי
בעית אופטימיזציה ידועה :מסלול זול ביותר בין 2ערים
ST Shotest path
23
E
T
2
G
6
9
18
6
19
A
B
0
S
14
30
11
F
16
5
20
44
15
C
distance label
בעית אופטימיזציה ידועה :מסלול זול ביותר בין 2ערים
ST Shotest path
23
E
T
2
G
6
9
18
6
19
A
B
0
S
14
30
11
F
16
5
20
44
15
C
distance label
בעית אופטימיזציה ידועה :מסלול זול ביותר בין 2ערים
ST Shotest path
23
E
T
2
G
6
9
18
6
19
A
B
0
S
14
30
11
F
16
5
20
44
15
C
distance label
בעית אופטימיזציה ידועה :מסלול זול ביותר בין 2ערים
ST Shotest path
$14 + $30 + $16 = $60
23
E
T
2
G
6
9
18
6
19
A
B
0
S
14
30
11
F
16
5
20
44
15
C
distance label
בעית אופטימיזציה ידועה :מסלול זול ביותר בין 2ערים
ST Shotest path
$15+ $44 = $59
23
E
T
2
G
6
9
18
6
19
A
B
0
S
14
30
11
F
16
5
20
44
15
C
distance label
בעית אופטימיזציה ידועה :מסלול זול ביותר בין 2ערים
ST Shotest path
$9 + $23 + $19 = $61
23
E
T
2
G
6
9
18
6
19
A
B
0
S
14
30
11
F
16
5
20
44
15
C
distance label
בעית אופטימיזציה ידועה :מסלול זול ביותר בין 2ערים
ST Shotest path
$14 + $18 + $2 + $16 = $50
23
E
T
2
G
6
9
18
6
19
A
B
0
S
14
30
11
F
16
5
20
44
15
C
distance label
מסלול זול ביותר בין 2ערים
לאיזה מערכת מחירים כל המסלולי הם אופטימאליים?
אפשרות טריביאלית :כולם אפסים! יש עוד ?...
0
E
T
0
G
0
0
0
0
0
A
0
S
0
B
0
0
F
0
0
0
0
0
C
distance label
מסלול זול ביותר בין 2ערים
לאיזה מערכת מחירים כל המסלולים הם אופטימאליים?
אפשרות טריביאלית :כולם אפסים! יש עוד ? ...כן!
הכבישים היוצאים מהמקור מחיר אחיד (ולכל השאר )0
0
E
T
S
0
G
0
1
0
0
0
A
1
B
0
0
F
0
0
0
0
1
C
distance label
מסלול זול ביותר בין 2ערים
לאיזה מערכת מחירים כל המסלולים הם אופטימאליים?
אפשרות טריביאלית :כולם אפסים! יש עוד ? ...כן!
הכבישים היוצאים מהמקור מחיר אחיד (ולכל השאר ,)0יש עוד??
0
E
T
S
0
G
0
0
0
0
A
B
0
0
F
0
0
0
0
C
distance label
+
מסלול זול ביותר בין 2ערים
לאיזה מערכת מחירים כל המסלולים הם אופטימאליים?
הצעה :הכבישים היוצאים מהמקור מחיר אחיד
הכבישים הנכנסים למטרה מחיר אחיד (ולכל השאר )0
וכביש ישיר?
0
E
T
S
0
G
0
0
A
B
0
0
F
0
0
C
distance label
ונחזור למערך מחירים המקורי...
רוצים לעשות "מבצע הנחות" כך שלכל המסלולים תתקבל אותה הנחה
$14 -$1+ $18 + $2 + $16 = $50-$1
23
E
18
6
19
T
9-1=8
0
S
14-1=13
2
G
6
A
B
30
11
F
16
15-1=14
5
20
44
C
distance label
כל המסלולים הוזלו ב $9כולל האופטימאלי,
לכן מציאת מסלול "כחול" מינימום שקול לבעיה המקורית
למה לא יותר?
$14 -$9+ $18 + $2 + $16 = $50-$9 = $41
23
E
18
6
19
T
9-9=0
14-9=5
2
G
6
A
0
S
B
30
11
F
16
15-9=6
5
20
44
C
distance label
?מה עושים עם כביש חינם
$5 (+$9)+ $18 + $2 + $16 = $41 (+$9)
0
S
9-9=0
23
A
18
14-9=5
30
11
F
5
16
20
C
distance label
6
2
B
15-9=6
E
44
19
G
6
T
והבעיה החדשה ...ונמשיך באותה שיטה :מבצע הנחות של $5
)$5 (+$9)+ $18 + $2 + $16 = $41 (+$9
23
E
18
6
19
T
9-9=0
14-9=5
2
G
6
A
0
S
B
30
11
F
16
15-9=6
5
20
44
C
distance label
והבעיה החדשה ...ונמשיך באותה שיטה :מבצע הנחות של $5
)$5-$5 (+$9)+ $18 + $2 + $16 = $41-$5 (+$9
23-5=18
E
19
6
T
2
G
0
S
5-5=0
18
6
A
B
30
11
F
16
5
6-5=1
20
44
C
distance label
? מה עושים עם כביש חינם...ושוב
$5-$5 (+$9)+ $18 + $2 + $16 = $41-$5 (+$9)
0
S
A 23-5=18
E
5-5=0
18
30
C
distance label
11
F
5
6-5=1
6
2
B
16
20
44
19
G
6
T
וכן הלאה( ..קיבלנו והוכחנו את האלגוריתם של דיקסטרה)
)$5(+$14)+ $18 + $2 + $16 = $36(+$14
A 23-5=18
E
18
6
19
T
2
G
6
5-5=0
0
S
B
30
11
F
16
5
20
44
6-5=1
C
distance label
מסלול קצר ביותר:פורמלית
Min Path
Given digraph G(V,E) s,t V and pe Z for each e E
Minimize
pe·xe
Subject to:
xe {0,1}
x e
e P
1 st cut P
VC
כיסוי בצמתים:דוגמא נוספת
Given a graph G=(V,E) penalty pv Z for each v V
Min
S.t.:
pv·xv
xv {0,1}
xv + xu 1 {v,u} E
שוקולד+6xפופקורן+15xשמפו+20xבמבה+10xמים+12xתה+8xביסליMin 5x
1מים + xשמפוs.t. x
פתרון פיזיבילי 0 +8 + 12 +10 + 0 + 15 + 0 = 45
8
12
נמכר!
!SOLD
נמכר!
!SOLD
5
20
נמכר!
!SOLD
נמכר!
!SOLD
15
10
6
שוקולד+6xפופקורן+15xשמפו+20xבמבה+10xמים+12xתה+8xביסליMin 5x
1מים + xשמפוs.t. x
פתרון
5 +0 + 0 +10 + 20 + 0 + 6 = 41
פיזיבילי
8
נמכר!
!SOLD
12
נמכר!
!SOLD
5
20
נמכר!
!SOLD
נמכר!
!SOLD
10
6
15
שוקולד+6xפופקורן+15xשמפו+20xבמבה+10xמים+12xתה+8xביסליMin 5x
1מים + xשמפוs.t. x
פתרון
12
נמכר!
!SOLD
0 +8 + 12 +0 + 0 + 15 + 6 = 41
פיזיבילי
8
נמכר!
!SOLD
5
20
נמכר!
!SOLD
נמכר!
!SOLD
10
6
15
לאיזה מערכת מחירים כל הפתרונות הם אופטימאליים?
אפשרות טריביאלית :כולם אפסים! יש עוד ? ...לא!
מה עם פשרה??
0 +0 + 0 +0 + 0 + 0 + 0 = 0
0
0
נמכר!
!SOLD
נמכר!
!SOLD
0
0
נמכר!
!SOLD
0
0
נמכר!
!SOLD
0
לאיזה מערכת מחירים כל הפתרונות הם כמעט אופטימאליים?
פשרה :עד כדי פקטור 2
0 +0 + 1 +0 + 0 + 0 + 0 = 1
1
0
נמכר!
!SOLD
נמכר!
!SOLD
1
0
נמכר!
!SOLD
0
0
נמכר!
!SOLD
0
לאיזה מערכת מחירים כל הפתרונות הם כמעט אופטימאליים?
פשרה :עד כדי פקטור 2
0 +1 + 1 +0 + 0 + 0 + 0 = 2
1
0
נמכר!
!SOLD
נמכר!
!SOLD
נמכר!
!SOLD
1
0
נמכר!
!SOLD
0
0
נמכר!
!SOLD
0
ונחזור למערך מחירים המקורי...רוצים לעשות "מבצע הנחות
כך שלכל הפתרונות תתקבל כמעט אותה הנחה
פתרון פיזיבילי
0 +8 -1 + 12 +0 + 0 + 15 + 6 = 41 -1
8 -1
12
נמכר!
!SOLD
-1
נמכר!
!SOLD
5
20
נמכר!
!SOLD
נמכר!
!SOLD
10
6
15
ונחזור למערך מחירים המקורי...רוצים לעשות "מבצע הנחות
כך שלכל הפתרונות תתקבל כמעט אותה הנחה
פתרון פיזיבילי
5 -1 +8 -1 + 12 +0 + 0 + 15 + 6 = 46 -2
8 -1
12
נמכר!
!SOLD
-1
נמכר!
!SOLD
נמכר!
!SOLD
5
20
נמכר!
!SOLD
נמכר!
!SOLD
10
6
15
Movie:
1 4 the price of 2
Linear Programming (LP) תכנות לינארי
Integer Programming (IP) תכנות בשלמים
Given a penalty [profit] vector p
Minimize [Maximize]
p·x
][פרסים
][מקסימום
נתון וקטור קנסות
מצא מינימום
Subject to: Linear Constraints F(x)תחת אלוצים לינאריים
IP: where “x is an integer vector” is a constraints
כאשר הוקטור מאולץ להיות וקטור שלמים:תכנות בשלמים
Example: VC
כיסוי בצמתים:דוגמא
Given a graph G=(V,E) and penalty vector p Zn
Minimize
p·x
Subject to:
x {0,1}n
xi + xj 1 {i,j} E
Example Min Path
Given digraph G(V,E) s,t V and length vector p Z|E|
Minimize
Subject to:
p·x
x
|E|
{0,1}
x e
e P
1 st cut P
Example MST (Minimum Spanning Tree)
Given graph G(V,E) and length vector p Z|E|
Minimize
Subject to:
p·x
x
|E|
{0,1}
x e
e P
1 cut P
Example Minimum Steiner Tree
Given graph G(V,E) TV and length vector p Z|E|
Minimize
Subject to:
p·x
x
|E|
{0,1}
x e
e P
1 T’s cut P
Example Generalized Steiner Forest
Given graph G(V,E) T1T1…Tk V
and length vector p Z|E|
Min
S.t.:
p·x
x
|E|
{0,1}
xe
1 i Ti’s cut P
e P
The Local-Ratio Technique:
Basic definitions
:טכניקת היחס המקומי
הגדרות בסיסיות
Given a penalty [profit] 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
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 )*
Special case: Optimization is 1-approximation
מקרה פרטי :אופטימיזציה היא -1קירוב
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
אם פתרון מסוים הוא אופטימאלי ביחס לווקטור מחירים כתום
ואותו פתרון הוא גם אופטימאלי ביחס לווקטור מחירים כחול
אז פתרון זה יהיה אופטימאלי גם ביחס לווקטור המתקבל מסכומם
A Local-Ratio Schema for
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;
The 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 :
….
VC: Recursive implementation (edge by edge)
) מימוש רקורסיבי (קשת קשת:כיסוי בצמתים
0
VC (V, E, p)
0
If E= return ;
If p(v)=0 return {v}+VC(V-{v}, E-E(v), p);
Let (x,y)E;
0
Let = min{p(x), p(y)};
0
Define p1 (v) = if v=x or v=y and 0 otherwise;
Return VC(V, E, p- p1 )
0
0
VC: Iterative implementation (edge by edge)
מימוש איטרטיבי
VC (V, E, p)
for each e E;
let = min{p(v)| v e};
for each v e
0
p(v) = p(v) - ;
return {v| p(v)=0};
0
0
0
0
0
שוקולד+6xפופקורן+15xשמפו+20xבמבה+10xמים+12xתה+8xביסליMin 5x
1מים + xשמפוs.t. x
8
12
5
20
15
10
6
VC: Iterative implementation (edge by edge)
BarYehuda+Even 81 (V, E, p)
for each e E;
let = min{p(v)| v e}; -10
for each v e
90
p(v) = p(v) - ;
return {v| p(v)=0};
30
-10
10
50
80
15
100
2
VC: Iterative implementation (edge by edge)
BarYehuda+Even 81 (V, E, p)
for each e E;
let = min{p(v)| v e};
for each v e
p(v) = p(v) - ;80
return {v| p(v)=0};
30
15
0
50
80
100
2
VC: Iterative implementation (edge by edge)
BarYehuda+Even 81(V, E, p)
for each e E;
let = min{p(v)| v e};
-80
for each v e
p(v) = p(v) - ;80
return {v| p(v)=0};
30
15
0
-80
50
80
100
2
VC: Iterative implementation (edge by edge)
BarYehuda+Even 81(V, E, p)
for each e E;
let = min{p(v)| v e};
for each v e
p(v) = p(v) - ;0
return {v| p(v)=0};
30
15
0
50
80
20
2
VC: Iterative implementation (edge by edge)
BarYehuda+Even 81(V, E, p)
for each e E;
let = min{p(v)| v e};
for each v e
p(v) = p(v) - ;0
return {v| p(v)=0};
-50
30
15
0
-50
50
80
20
2
VC: Iterative implementation (edge by edge)
BarYehuda+Even 81(V, E, p)
for each e E;
let = min{p(v)| v e};
for each v e
0
p(v) = p(v) - ;
return {v| p(v)=0};
30
15
0
0
30
20
2
VC: Iterative implementation (edge by edge)
-15
BarYehuda+Even 81(V, E, p)
for each e E;
let = min{p(v)| v e};
for each v e
0
p(v) = p(v) - ;
return {v| p(v)=0};
30
-15
15
0
0
30
20
2
VC: Iterative implementation (edge by edge)
BarYehuda+Even 81(V, E, p)
for each e E;
let = min{p(v)| v e};
for each v e
0
p(v) = p(v) - ;
return {v| p(v)=0};
15
0
0
0
30
20
2
אחד במחיר של שניים:
גישה מאוחדת לפיתוח אלגוריתמי קירוב
ראובן בר-יהודה
מכללת ת"א יפו
לזכרו של
פרופ' שמעון אבן
מורי ורבי
מודים לכם
על תשומת הלב