אחד במחיר של שניים : גישה מאוחדת לפיתוח אלגוריתמי קירוב ראובן בר - יהודה מכללת ת"א יפו לזכרו של פרופ' שמעון אבן מורי ורבי

Download Report

Transcript אחד במחיר של שניים : גישה מאוחדת לפיתוח אלגוריתמי קירוב ראובן בר - יהודה מכללת ת"א יפו לזכרו של פרופ' שמעון אבן מורי ורבי

‫אחד במחיר של שניים‪:‬‬
‫גישה מאוחדת לפיתוח אלגוריתמי קירוב‬
‫ראובן בר‪-‬יהודה‬
‫מכללת ת"א יפו‬
‫לזכרו של‬
‫פרופ' שמעון אבן‬
‫מורי ורבי‬
‫בעית אופטימיזציה ידועה‪ :‬מסלול זול ביותר בין ‪ 2‬ערים‬
‫‪ST 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‬ערים‬
‫‪ST 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‬ערים‬
‫‪ST 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‬ערים‬
‫‪ST 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‬ערים‬
‫‪ST 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‬ערים‬
‫‪ST 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‬ערים‬
‫‪ST 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 st 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 st 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) TV 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
‫אחד במחיר של שניים‪:‬‬
‫גישה מאוחדת לפיתוח אלגוריתמי קירוב‬
‫ראובן בר‪-‬יהודה‬
‫מכללת ת"א יפו‬
‫לזכרו של‬
‫פרופ' שמעון אבן‬
‫מורי ורבי‬
‫מודים לכם‬
‫על תשומת הלב‬