שלמים - Technion

Linear
Programming
Ohad Feder
1
‫‪2‬‬
‫‪Rank Lemma‬‬
‫תזכורת‬
‫יהי 𝑛𝑅 ⊆ } ‪ P={x : Ax=b , x ≥ 0‬ויהי 𝑛𝑅𝜖 ‪extreme x‬‬
‫‪ point solution‬של ‪ P‬כך ש‪ 𝑥𝑖 ≥ 0 :‬לכל ‪ .i‬אזי מספר המשתנים‬
‫החיוביים ממש שווה למספר האילוצים הבת"ל הנוצרים ע"י ‪,A‬‬
‫כלומר למספר השורות הבת"ל של ‪ ,A‬כלומר לדרגת ‪.A‬‬
‫‪ ‬אינטואיטיבית‪ Rank Lemma ,‬אומרת ש‪Extreme Point -‬‬
‫של תחום ‪-d‬מימדי כלשהו מוגדרת ע"י חיתוך של בדיוק ‪d‬‬
‫אילוצים בת"ל‪ .‬כמובן שיכולים להיות יותר מ‪ d -‬אילוצים‬
‫הנחתכים באותה נקודה‪ ,‬אבל אז חלק מהאילוצים הם‬
‫מיותרים בהגדרת הנקודה‪ .‬נתבונן בדוגמא הבאה‪:‬‬
‫‪3‬‬
‫‪Rank Lemma‬‬
‫תזכורת‬
‫‪ P‬הוא תחום דו‪-‬מימדי‪.‬‬
‫מספיקים שני אילוצים בלבד על מנת להגדיר את הנקודה ‪.A‬‬
‫‪4‬‬
‫‪Basic Solutions for LPs‬‬
‫‪ ‬תזכורת‪:‬‬
‫בהנתן בעיית תכנון לינארי בצורה הסטנדרטית‬
‫‪𝑥≥0‬‬
‫𝑥 𝑇 𝑐 ‪max‬‬
‫‪𝑠. 𝑡. 𝐴𝑥 = 𝑏,‬‬
‫(‪ b‬וקטור אי שלילי‪ A ,‬מגודל 𝑛 × 𝑚)‬
‫וקטור 𝑥 הפותר את המערכת יקרא פתרון פיזיבילי בסיסי אם‪:‬‬
‫‪ n-m .1‬מרכיביו הם אפסים‪.‬‬
‫‪ .2‬שאר ‪ m‬הרכיבים מתאימים לעמודות בת"ל של המטריצה‬
‫‪.A‬‬
‫פתרון בסיסי פיזיבילי הוא למעשה ‪Extreme Point Solution‬‬
‫("קודקוד")‪.‬‬
‫‪5‬‬
‫הקדמה‬
‫‪ ‬נניח שיש לנו בעיית אופטימיזציה שבה כל המשתנים‬
‫צריכים לקיים ‪ .𝑥𝑖 ∈ 0,1‬פתרון הבעיה בשלמים זו בעיה‬
‫‪-NP‬קשה‪ .‬לכן ניתן לבצע רלקסציה ולהמיר את הבעיה‬
‫לבעיית ‪ LP‬ע"י כך שנרשה 𝑖𝑥 ≤ ‪.0‬‬
‫‪ ‬כעת נוצרת בעיה‪ :‬המשתנים עלולים לקבל ערכים לא‪-‬‬
‫שלמים‪.‬‬
‫‪ ‬פתרון אפשרי‪ :‬נעגל את המשתנים לערך השלם הקרוב‬
‫ביותר בתקווה לקבל קירוב טוב לפתרון האופטימלי‪.‬‬
‫‪ ‬עדיין יש בעיה‪ :‬במקרה וישנם הרבה משתנים לא‪-‬שלמים‪,‬‬
‫לאחר עיגול נקבל פתרון רחוק מהפתרון האופטימלי‪.‬‬
‫‪6‬‬
‫הקדמה‬
‫‪ ‬טענה‪ :‬אם לבעיית ‪ LP‬יש "מבנה טוב"‪ ,‬אזי לכל פתרון‬
‫בסיסי של הבעיה יהיה מספר קטן של משתנים שיקבלו‬
‫ערכים לא‪-‬שלמים‪.‬‬
‫‪ ‬באמצעות תכונה זו נוכל לעגל את הפתרון הבסיסי הנ"ל‬
‫כדי לקבל פתרון בשלמים המהווה קירוב טוב לפתרון‬
‫האופטימלי‪.‬‬
‫‪ ‬מהו "מבנה טוב"?‬
‫נראה באמצעות דוגמא‪.‬‬
‫‪7‬‬
‫‪Vector Scheduling‬‬
‫‪ ‬הגדרת הבעיה‪ :‬רוצים לחלק ‪ n‬משימות ‪-d‬מימדיות ל‪m -‬‬
‫מכונות זהות‪ ,‬כך שנמזער את העומס המקסימלי על כל‬
‫המימדים ועל כל המכונות‪.‬‬
‫‪ ‬באופן פורמלי‪ :‬נתונות ‪ m‬מכונות ו‪ n -‬משימות‪,𝐽1 , … ,𝐽𝑛 ,‬‬
‫כאשר 𝑗𝐽 הינו וקטור ‪-d‬מימדי 𝑑𝑗𝑝‪ 𝑝𝑗1 , … ,‬ו‪ 𝑝𝑗𝑖 -‬מתאר את‬
‫זמן העיבוד של המימד ה‪ i -‬של משימה ‪ .j‬בנוסף‪ ,‬לכל מכונה ‪i‬‬
‫ומימד ‪ h‬יש חסם ‪ 𝑏𝑖ℎ‬על זמן העיבוד שניתן לתת לו‪.‬‬
‫‪ ‬המטרה‪ :‬לחלק את המשימות למכונות‪ ,‬כלומר לתת לכל‬
‫מכונה ‪ i‬קבוצה של משימות ‪ ,Ai‬כך שנביא למינימום את‬
‫הביטוי ‪.𝑚𝑎𝑥1≤𝑖≤𝑚 𝑚𝑎𝑥1≤ℎ≤𝑑 𝐽𝑗 ∈𝐴𝑖 𝑝𝑗ℎ‬‬
‫‪8‬‬
‫‪Vector Scheduling‬‬
‫‪ ‬נחלק את המשימות לשתי קבוצות‪ L (Large) :‬ו‪.S (Small) -‬‬
‫‪ ‬הקבוצה ‪ L‬תכיל את כל המשימות (וקטורים ‪-d‬מימדיים)‬
‫שבהם האיבר הגדול ביותר (זמן העיבוד המקסימלי מבין ‪d‬‬
‫המימדים) גדול מערך 𝑑‪ 𝛿 = 𝜀/‬כלשהו כאשר 𝜀 הוא מספר‬
‫קטן המהווה פרמטר לבעיה‪ .‬הקבוצה ‪ S‬תכיל את שאר‬
‫הוקטורים‪.‬‬
‫‪ ‬תזמון המשימות בקבוצה ‪ L‬נעשה באופן שאינו ‪ LP‬ולכן לא‬
‫נתייחס לכך ונתמקד בתזמון המשימות מקבוצה ‪.S‬‬
‫‪9‬‬
‫‪Vector Scheduling‬‬
‫‪ ‬את הוקטורים הקטנים (‪ )S‬נתזמן ע"י רלקסציה לבעיית תכנון‬
‫לינארי‪.‬‬
‫‪ ‬נמספר את הוקטורים בקבוצה ‪ S‬ע"י |‪.1,…,|S‬‬
‫‪ ‬לכל 𝑚 ≤ 𝑖 ≤ ‪ 1 ≤ 𝑗 ≤ 𝑛,1‬נגדיר‪ - 𝑥𝑗𝑖 ∈ 0,1 :‬אינדיקטור‬
‫המציין האם הוקטור 𝑗𝐽 הושם למכונה ‪.i‬‬
‫‪ ‬כאמור‪ ,‬פתרון הבעיה בשלמים זו בעיה ‪-NP‬קשה‪ ,‬לכן נבצע‬
‫רלקסציה בכך שנרשה ‪ 𝑥𝑗𝑖 ≥ 0‬ובכך נפוך את הבעיה לבעיית‬
‫‪ LP‬סטנדארטית‪.‬‬
‫‪10‬‬
‫‪Vector Scheduling‬‬
‫‪ ‬אם כך‪ ,‬מערכת האילוצים בבעיית ה‪ LP -‬המתאימה‪:‬‬
‫‪1 ≤ i ≤ m, 1 ≤ h ≤ d‬‬
‫‪ℎ‬‬
‫‪ℎ‬‬
‫𝑝‬
‫𝑥‬
‫≤‬
‫𝑏‬
‫𝑖𝑗 𝑗 𝑆∈ 𝑗𝐽‬
‫𝑖‬
‫)‪(1‬‬
‫𝑆 ≤𝑗≤‪1‬‬
‫𝑚‬
‫𝑖𝑗𝑥 ‪𝑖=1‬‬
‫)‪(2‬‬
‫‪1 ≤ i ≤ m, 1 ≤ j ≤ n‬‬
‫)‪(1‬‬
‫)‪(2‬‬
‫‪=1‬‬
‫‪(3) 𝑥𝑗𝑖 ≥ 0‬‬
‫מבטיח שלכל מכונה ולכל מימד לא תהיה חריגה מההגבלה‬
‫המותרת‪.‬‬
‫מבטא את הדרישה שכל וקטור הושם למכונה אחת בדיוק‪.‬‬
‫‪11‬‬
‫‪Vector Scheduling‬‬
‫‪ ‬משפט‪ :‬בכל פתרון פיזיבילי בסיסי לבעיית ‪ LP‬כלשהי‪ ,‬מספר‬
‫המשתנים המקבלים ערך גדול ממש מ‪ 0 -‬חסום ע"י מספר‬
‫האילוצים שאינם טריוויאלים (‪.)Rank Lemma‬‬
‫‪ ‬כעת נראה את התכונה החשובה ביותר של בעיית ה‪VS -‬‬
‫שמאפשרת לנו למצוא פתרון בשלמים שמספיק קרוב לפתרון‬
‫הבסיסי בשברים‪.‬‬
‫‪ ‬למה‪ :‬בכל פתרון פיזיבילי בסיסי לבעיית ה‪ ,VS -‬לכל היותר‬
‫𝑚 ∙ 𝑑 וקטורים מושמים ליותר ממכונה אחת (כלומר‬
‫המשתנים המתאימים לוקטורים אלו מקבלים ערכים שאינם‬
‫שלמים)‪.‬‬
‫‪12‬‬
‫‪Vector Scheduling‬‬
‫‪1 ≤ i ≤ m, 1 ≤ h ≤ d‬‬
‫‪ℎ‬‬
‫‪ℎ‬‬
‫𝑝‬
‫𝑥‬
‫≤‬
‫𝑏‬
‫𝑖𝑗 𝑗 𝑆∈ 𝑗𝐽‬
‫𝑖‬
‫)‪(1‬‬
‫𝑆 ≤𝑗≤‪1‬‬
‫𝑚‬
‫𝑖𝑗𝑥 ‪𝑖=1‬‬
‫)‪(2‬‬
‫‪1 ≤ i ≤ m, 1 ≤ j ≤ n‬‬
‫‪=1‬‬
‫‪(3) 𝑥𝑗𝑖 ≥ 0‬‬
‫‪ ‬הוכחת הלמה‪:‬‬
‫מספר האילוצים שאינם טריוויאלים הוא 𝑚 ∙ 𝑑 ‪ . 𝑆 +‬על פי‬
‫המשפט שהוזכר נובע כי זוהי גם ההגבלה על מספר המשתנים‬
‫𝑖𝑗𝑥 שיקבלו ערך חיובי בכל פתרון בסיסי פיזיבילי כלשהו‪.‬‬
‫מכיוון שכל וקטור מושם למכונה אחת לפחות‪ ,‬אזי מספר‬
‫הוקטורים שיושמו ליותר ממכונה אחת (כלומר המשתנים‬
‫המתאימים להם יקבלו ערך שאינו שלם) הוא לכל היותר 𝑚 ∙ 𝑑‪.‬‬
‫‪13‬‬
‫‪Vector Scheduling‬‬
‫‪ ‬המעבר מפתרון ה‪ LP -‬בשברים לפתרון בשלמים‪:‬‬
‫נסמן ב‪ S’ -‬את קבוצת הוקטורים שהושמו ליותר ממכונה אחת‬
‫(כלומר בשברים)‪ .‬מכיוון ש‪ , 𝑆 ′ ≤ 𝑑 ∙ 𝑚 -‬נוכל לחלק את ’‪ S‬ל‪-‬‬
‫‪ m‬תתי קבוצות בגודל של לכל היותר ‪ d‬כל אחת‪ ,‬ולהקצות את‬
‫תת הקבוצה ה‪ i -‬למכונה ה‪.i -‬‬
‫𝜀‬
‫𝑑‬
‫מכיוון שהאיבר הגדול ביותר בכל וקטור קטן מ‪( δ = -‬על פי‬
‫בחירת הקבוצה ‪ ,)S‬נקבל שהעומס על כל מימד בכל מכונה גדל‬
‫בלכל היותר 𝜀 ולכן למעשה לא פגענו הרבה בפתרון‪.‬‬
‫‪14‬‬
‫‪Vector Scheduling‬‬
‫‪ ‬סיכום‪:‬‬
‫בעקבות היחס בין מספר המשתנים לבין מספר האילוצים‬
‫שאינם טריוויאלים ברלקסציה של בעיית ה‪ ,LP -‬בשילוב עם‬
‫דרישות ההשמה של הבעיה‪ ,‬קיבלנו שרק מספר קטן יחסית של‬
‫משתנים יכולים לקבל ערכים לא‪-‬שלמים‬
‫(זהו למעשה "המבנה הטוב" שהזכרנו קודם)‪.‬‬
‫לכן ניתן לעגל את הערכים הללו ולקבל קירוב טוב בשלמים‪.‬‬
‫‪15‬‬
‫‪Unimodularity‬‬
‫‪ ‬שאלה‪:‬‬
‫נתון תחום ‪-n‬מימדי‪.𝑃 = 𝑥 ∈ ℝ𝑛 | 𝐴𝑥 ≤ 𝑏,𝑥 ≥ 0 :‬‬
‫אילו אילוצים על המטריצה ‪ A‬והוקטור ‪ b‬יבטיחו כי כל‬
‫הקודקודים של ‪ P‬יהיו שלמים (‪?)integers‬‬
‫‪ ‬תשובה‪ :‬אם ‪ A‬היא מטריצה יונימודולרית לחלוטין‬
‫(‪ )Totally Unimodular‬ו‪ b -‬הינו וקטור של מספרים‬
‫שלמים בלבד‪.‬‬
‫‪16‬‬
‫‪(Totally) Unimodular Matrices‬‬
‫הגדרות‪:‬‬
‫‪ ‬מטריצה ריבועית ושלמה 𝑛×𝑛‪ 𝐵 ∈ ℤ‬תקרא‬
‫יונימודולרית אם ‪.det 𝐵 = ±1‬‬
‫‪ ‬מטריצה שלמה 𝑛×𝑚‪ 𝐴 ∈ ℤ‬תקרא יונימודולרית‬
‫לחלוטין אם כל תת‪-‬מטריצה ריבועית ‪ B‬של ‪ A‬מקיימת‬
‫‪.det 𝐵 ∈ 0, ± 1‬‬
‫הערה‪ :‬כל האיברים של מטריצה יונימודולרית לחלוטין‬
‫הם בהכרח ‪( 0, ± 1‬מדוע?)‪.‬‬
‫‪17‬‬
‫מוטיבציה‬
‫‪ ‬אם כל הקודקודים של ‪ P = 𝑥 ∈ ℝ𝑛 | 𝐴𝑥 ≤ 𝑏,𝑥 ≥ 0‬הם‬
‫שלמים‪ ,‬אז לכל וקטור ‪ ,c‬לבעיית התכנון הלינארי הבאה‬
‫𝑥 𝑇 𝑐 ‪max‬‬
‫‪subject to 𝐴𝑥 ≤ 𝑏, 𝑥 ≥ 0‬‬
‫יש פתרון אופטימלי בשלמים (בהנחה שהבעיה פיזיבלית‬
‫וחסומה)‪.‬‬
‫‪ ‬הסבר‪ :‬ניתן להוכיח כי אם לבעיית ‪ LP‬יש פתרון אופטימלי‬
‫כלשהו אז בהכרח יש לה גם פתרון בסיסי אופטימלי (שזהו‬
‫גם קודקוד)‪ ,‬וכאמור דרשנו שכל הקודקודים הם שלמים‪.‬‬
‫‪18‬‬
‫מוטיבציה‬
‫מסקנה‪:‬‬
‫אם ‪ A‬מטריצה יונימודולרית לחלוטין ו‪b -‬‬
‫וקטור שלם‪ ,‬אזי לבעיית התכנון הלינארי‬
‫המתאימה יש פתרון בשלמים‪.‬‬
‫נראה דוגמא לשימוש בטענת יונימודולריות בבעיית‬
‫השידוך שהוצגה בהרצאה הקודמת‪.‬‬
‫‪19‬‬
‫‪The Assignment Problem‬‬
‫תזכורת‬
‫‪ ‬הגדרת הבעיה‪ :‬נתון‪ :‬גרף דו‪-‬צדדי )‪ ,G=(V1⋃V2,E‬כאשר‬
‫|‪ ,|V1|=|V2‬ופונקציית משקל ‪.𝑤: 𝐸 → ℝ‬‬
‫‪ ‬המטרה‪ :‬מציאת שידוך בעל משקל מינימלי לכל צומת בגרף‪.‬‬
‫‪ :LP-Relaxation ‬לכל 𝐸 ∈ )𝑣‪ (𝑢,‬נגדיר משתנה בינארי ‪xuv‬‬
‫שערכו ‪ 1‬אם"ם הקשת )𝑣‪ (𝑢,‬נכללת בשידוך המוצע‪.‬‬
‫‪u,𝑣 w‬‬
‫‪u, v ∗ 𝑥uv‬‬
‫‪∀𝑢𝜖𝑉1 ∶ 𝑣:(𝑢,𝑣)𝜖𝐸 𝑥𝑢𝑣 = 1‬‬
‫‪∀𝑣𝜖𝑉2 ∶ 𝑢: 𝑢,𝑣 𝜖𝐸 𝑥𝑢𝑣 = 1‬‬
‫‪∀ u, 𝑣 𝜖E ∶ 𝑥𝑢𝑣 ≥ 0‬‬
‫‪Minimize:‬‬
‫‪Subject to:‬‬
‫‪20‬‬
‫‪TUM argument for The‬‬
‫‪Assignment Problem‬‬
‫נתבונן במטריצת‬
‫המקדמים ‪A‬‬
‫המתארת את הבעיה‪:‬‬
‫אבחנות‪:‬‬
‫‪ .1‬כל עמודה מכילה בדיוק שני ‪-1‬ים‪.‬‬
‫‪ .2‬ניתן לחלק את השורות של המטריצה לשתי קבוצות כך‬
‫ששני ה‪-1‬ים של כל עמודה ימצאו בקבוצות שונות‪.‬‬
‫משפט ‪ -‬אם שני התנאים לעיל מתקיימים‪ ,‬אזי המטריצה הינה‬
‫יונימודולרית לחלוטין‪.‬‬
‫מכאן נקבל כי קיים פתרון בשלמים לבעיית ההשמה‪.‬‬
‫‪21‬‬
‫הוכחת המשפט‬
‫‪ ‬נוכיח באינדוקציה‪:‬‬
‫בסיס ‪ -‬לכל תת‪-‬מטריצה בגודל ‪ 1x1‬הדטרמיננטה היא ‪ 0‬או ‪.1‬‬
‫צעד ‪ -‬נניח נכונות לכל תת‪-‬מטריצה ריבועית מגודל 𝑘 × 𝑘 ותהי ‪D‬‬
‫תת‪-‬מטריצה של ‪ A‬בגודל )‪ .(𝑘 + 1) × (𝑘 + 1‬נחלק למקרים‪:‬‬
‫‪ .1‬אם ‪ D‬מכילה עמודת אפסים‪ ,‬אז כמובן ‪.det 𝐷 = 0‬‬
‫‪ .2‬אם כל עמודה ב‪ D -‬מכילה שני ‪-1‬ים‪ .‬זאת אומרת שאחד מהם‬
‫מגיע מהחלק העליון של ‪( A‬כלומר ‪ n‬השורות הראשונות) והשני‬
‫מגיע מהחלק התחתון‪ .‬לכן‪ ,‬סכום השורות המגיעות מהחלק העליון‬
‫שווה לסכום שאר השורות‪ .‬זה מראה שוקטורי השורות הם תלויים‪-‬‬
‫לינארית ולכן שוב ‪.det 𝐷 = 0‬‬
‫‪ .3‬אם עמודה כלשהי של ‪ D‬מכילה"‪ "1‬בודד‪ ,‬נסמנו 𝑗𝑖𝑎‪ .‬יהי 𝑗𝑖𝐷‬
‫המינור שנוצר ע"י הסרת השורה ה‪ i -‬והעמודה ה‪ .j -‬אזי מתקיים‬
‫𝑗𝑖𝐷 ‪ ,det 𝐷 = ±𝑎𝑖𝑗 ∙ det 𝐷𝑖𝑗 = det‬אך על פי הנחת‬
‫האינדוקציה‪.det 𝐷𝑖𝑗 ∈ 0, ± 1 ,‬‬
‫מש"ל‬
‫‪22‬‬
‫‪Matching in Bipartite Graphs‬‬
‫‪ ‬הגדרת הבעיה‪ :‬נתון גרף דו‪-‬צדדי ‪𝐺 = (𝑉1‬‬
‫‪ ∪ 𝑉2 ,E‬ופונקציית משקל ‪.𝑤: 𝐸 → ℝ‬‬
‫‪ ‬המטרה‪ :‬מציאת תת קבוצה של קשתות זרות‬
‫בצמתים בעלות משקל מקסימלי‪.‬‬
‫‪ ‬נגדיר אינדיקטור 𝑒𝑥 שערכו יהיה ‪ 1‬אם"ם הקשת‬
‫𝑒 נבחרה לפתרון‪ .‬נרצה להראות כי קיים פתרון‬
‫אופטימלי אינטגרלי לבעיה‪.‬‬
‫‪23‬‬
‫‪Matching in Bipartite Graphs‬‬
‫‪ :LP Relaxation ‬נציג את הבעיה ע"י רלקסציית ‪ LP‬ונסמנה‬
‫𝑚𝑏𝑃𝐿‪ .‬לכל 𝑉 ∈ ‪ v‬הסימון 𝑣 𝛿 מתייחס לקבוצת הקשתות‬
‫הנוגעות בצומת ‪.v‬‬
‫𝑒𝑥 𝑒𝑤 𝐸∈‪e‬‬
‫‪∀𝑣 ∈ 𝑉1 ∪ 𝑉2‬‬
‫𝐸 ∈ 𝑒∀‬
‫‪≤1‬‬
‫𝑒𝑥 )𝑣(𝛿∈‪e‬‬
‫‪Maximize:‬‬
‫‪Subject to:‬‬
‫‪𝑥𝑒 ≥ 0‬‬
‫‪ ‬נשים לב שהתכנית הלינארית )‪" 𝐿𝑃𝑏𝑚 (G‬קומפקטית"‪ ,‬כלומר‬
‫מספר האילוצים והמשתנים חסום פולינומיאלית ע"י גודל‬
‫הבעיה ולכן ניתן למצוא פתרון אופטימלי בזמן פולינומי‪.‬‬
‫‪24‬‬
‫‪Matching in Bipartite Graphs‬‬
‫‪ ‬כעת נרצה להוכיח שקיים פתרון אופטימלי אינטגרלי‬
‫לרלקסציה הנ"ל‪.‬‬
‫‪ ‬טענה ‪ – 1‬בהנתן פונקציית משקל כלשהי ‪ ,w‬קיים‬
‫שידוך אינטגרלי ‪ M‬כך ש‪ ,𝑤 𝑀 ≥ 𝑤 ∙ 𝑥 -‬כאשר ‪x‬‬
‫הינו פתרון אופטימלי ל‪.𝐿𝑃𝑏𝑚 G -‬‬
‫‪ ‬מסקנה – קיים פתרון אופטימלי אינטגרלי ל‪-‬‬
‫‪.𝐿𝑃𝑏𝑚 G‬‬
‫‪25‬‬
‫‪Characterization of Extreme Point Solutions‬‬
‫‪ ‬לפני שנוכיח את טענה ‪ ,1‬ניתן אפיון ל‪Extreme Point -‬‬
‫‪ Solutions‬של ‪.𝐿𝑃𝑏𝑚 G‬‬
‫‪ ‬הגדרות‪:‬‬
‫ עבור ‪ ,𝐹⊆E‬יהי )𝐹(𝜑 וקטור בינארי מעל |𝐸|‪ ℝ‬המכיל ‪1‬‬‫לכל קשת 𝐹 ∈ 𝑒 ו‪ 0 -‬אחרת‪ .‬וקטור זה נקרא וקטור אופיני‬
‫של ‪.F‬‬
‫‪ 𝛿 𝑣 -‬מתייחס לקבוצת הקשתות הנוגעות בצומת ‪.v‬‬
‫‪26‬‬
‫‪Characterization of Extreme Point Solutions‬‬
‫‪ ‬תוך שימוש ב‪ ,Rank Lemma -‬ניתן לקבל את האפיון הבא‬
‫המורכב מקבוצה של אילוצים בלתי תלויים לינארית‪:‬‬
‫‪ ‬למה ‪ - 2‬בהנתן ‪ Extreme Point Solution‬כלשהו 𝑥 ל‪-‬‬
‫‪ 𝐿𝑃𝑏𝑚 G‬כך ש‪ 𝑥𝑒 > 0 -‬לכל 𝐸 ∈ 𝑒‪ ,‬קיים ‪ 𝑊⊆𝑉1 ∪ 𝑉2‬כך ש‪:‬‬
‫)‪ 𝑥 𝛿(𝑣) = 1 (1‬לכל 𝑊 ∈ 𝑣‪.‬‬
‫𝑒𝑥‬
‫)𝑣(𝛿∈𝑒‬
‫=‬
‫𝑣 𝛿 𝑥‬
‫)‪ (2‬הוקטורים 𝑊 ∈ 𝑣 | )𝑣(𝛿 𝜑 הם בת"ל‪.‬‬
‫)‪𝑊 = |𝐸| (3‬‬
‫‪ ‬האפיון הנ"ל ישמש אותנו להוכחת האלגוריתם בשקף הבא‪.‬‬
‫‪27‬‬
‫‪Iterative Algorithm‬‬
‫‪ ‬כעת נראה אלגוריתם איטרטיבי אשר מוצא שידוך אינטגרלי‬
‫שמשקלו לפחות כמו משקל הפתרון האופטימלי של ‪,𝐿𝑃𝑏𝑚 G‬‬
‫ובכך נוכיח את טענה ‪.1‬‬
‫)‪(1‬‬
‫)‪(2‬‬
‫אתחל ∅ ← 𝐹‪.‬‬
‫כל עוד ∅ ≠ 𝐸‪:‬‬
‫‪‬‬
‫‪‬‬
‫)‪(3‬‬
‫מצא ‪ Extreme Point Solution‬אופטימלי ל‪ 𝐿𝑃𝑏𝑚 G -‬והסר מ‪-‬‬
‫𝐺 כל קשת 𝑒 כך ש‪.𝑥𝑒 = 0 -‬‬
‫אם קיימת קשת )𝑣‪ 𝑒 = (𝑢,‬כך ש‪ ,𝑥𝑒 = 1 -‬עדכן }𝑒{ ∪ 𝐹 ← 𝐹‬
‫וגם }𝑣‪.G ← G\{𝑢,‬‬
‫החזר את 𝐹‪.‬‬
‫‪28‬‬
‫נכונות האלגוריתם‬
‫נוכיח את נכונות האלגוריתם בשני שלבים‪:‬‬
‫‪.1‬‬
‫נוכיח שהאלגוריתם מחזיר שידוך במשקל אופטימלי‬
‫אם האלגוריתם בכל איטרציה מוצא קשת ‪ e‬כך ש‪-‬‬
‫‪ 𝑥𝑒 = 0‬בשלב )‪ (2a‬או קשת ‪ e‬כך ש‪ 𝑥𝑒 = 1 -‬בשלב‬
‫)‪.(2b‬‬
‫‪.2‬‬
‫נראה שהאלגוריתם אכן מוצא קשת כזו בכל שלב‬
‫ובכך נשלים את הוכחת הנכונות‪.‬‬
‫‪29‬‬
‫נכונות – שלב ראשון‬
‫נניח שהאלגוריתם‪ ,‬בכל איטרציה‪ ,‬מוצא קשת עם ‪ 𝑥𝑒 = 0‬או 𝑒𝑥‬
‫‪ = 1‬ונוכיח שהוא מחזיר שידוך ‪ F‬שמשקלו לפחות כמשקל‬
‫הפתרון האופטימלי ל‪.𝐿𝑃𝑏𝑚 G -‬‬
‫נוכיח באינדוקציה על מספר האיטרציות באלגוריתם‪:‬‬
‫בסיס – המקרה בו האלגוריתם נמשך איטרציה אחת בלבד הוא‬
‫טריוויאלי – קל לראות שהפתרון המוחזר ע"י האלגוריתם הוא‬
‫בדיוק ‪( x‬הפתרון של ‪ 𝐿𝑃𝑏𝑚 G‬שנמצא באיטרציה הראשונה)‪.‬‬
‫‪30‬‬
‫נכונות – שלב ראשון (‪)2‬‬
‫צעד האינדוקציה – נבחין בין שני המקרים‪:‬‬
‫)‪ (1‬אם מצאנו קשת ‪ e‬כך ש‪ 𝑥𝑒 = 0 -‬בשלב (‪ )2a‬של האלגו'‪,‬‬
‫אז מסירים אותה והבעיה שנותרת לאיטרציה הבאה היא‬
‫מציאת שידוך בגרף }𝑒{\𝐺‪ .‬אם נקח את הפתרון הנוכחי 𝑥‬
‫ונצמצם אותו ל‪( 𝐺\ 𝑒 -‬נקרא לו 𝑠𝑒𝑟𝑥)‪ ,‬נקבל פתרון‬
‫פיזיבילי לרלקסציית ‪ LP‬של הבעיה המצומצמת שנותרה‪.‬‬
‫מהנחת האינדוקציה‪ ,‬האלגוריתם מחזיר שידוך ) ‪𝐹′⊆𝐸(𝐺 ′‬‬
‫שמשקלו הוא לפחות הפתרון האופטימלי ל‪,𝐿𝑃𝑏𝑚 G′ -‬‬
‫כלומר 𝑠𝑒𝑟𝑥 ∙ 𝑤 ≥ ‪ ,w 𝐹 ′‬ומכיוון שהסרנו מהפתרון‬
‫המקורי רק את ‪ 𝑥𝑒 = 0‬אזי 𝑥 ∙ 𝑤 = 𝑠𝑒𝑟𝑥 ∙ 𝑤 ≥ ‪𝑤 𝐹 ′‬‬
‫ולכן צעד האינדוקציה מתקיים במקרה זה‪.‬‬
‫‪31‬‬
‫נכונות – שלב ראשון (‪)3‬‬
‫(‪ )2‬אם מצאנו קשת ‪ e‬כך ש‪ 𝑥𝑒 = 1 -‬בשלב (‪ )2b‬של האלגו'‪ ,‬אז‬
‫הבעיה שנותרת היא מציאת שידוך הכולל את הקשת ‪ .e‬זה‬
‫למעשה בדיוק בעיית השידוך בגרף }‪.G’=G\{u,v‬‬
‫בנוסף‪( 𝑥𝑟𝑒𝑠 ,‬שזה ‪ x‬המוגבל לקשתות ב‪ )G’ -‬הוא פתרון פיזיבילי‬
‫לרלקסציה של הבעיה שנותרה‪ .‬מהנחת האינדוקציה‪ ,‬האלגוריתם‬
‫יחזיר פתרון ’‪ F‬שמשקלו לפחות כמשקל הפתרון האופטימלי ל‪-‬‬
‫‪ ,𝐿𝑃𝑏𝑚 G′‬לכן 𝑠𝑒𝑟𝑥 ∙ 𝑤 ≥ ‪( 𝑤 𝐹 ′‬כי ‪ xres‬פיזיבילי)‪ .‬האלגוריתם‬
‫יחזיר את השידוך }‪ F=F’U{e‬ונקבל‬
‫𝑠𝑒𝑟𝑥 ∙ 𝑤 ≥ )’‪ ,w(F)=w(F’)+we and w(F‬כלומר‬
‫𝑥 ∙ 𝑤 = 𝑒𝑤 ‪ w F ≥ 𝑤 ∙ 𝑥𝑟𝑒𝑠 +‬מכיוון ש‪,xe =1 -‬‬
‫ולכן צעד האינדוקציה מתקיים גם במקרה זה‪.‬‬
‫מש"ל‬
‫‪32‬‬
‫נכונות – שלב שני‬
‫‪ ‬נותר להראות שהאלגוריתם בכל שלב מוצא קשת ‪ e‬כך ש‪-‬‬
‫‪ 𝑥𝑒 = 0‬או ‪ 𝑥𝑒 = 1‬ובכך נשלים את הוכחת טענה ‪.1‬‬
‫הוכחת שלב זה תסתמך על האפיון שראינו קודם ל‪-‬‬
‫‪.Extreme Point Solutions‬‬
‫‪ ‬בהנתן ‪ Extreme Point Solution‬כלשהו ‪ ,x‬נניח בשלילה‬
‫שלכל קשת ‪ e‬מתקיים קיים ‪ ,‬על פי האפיון ‪0 < 𝑥𝑒 < 1 .‬‬
‫‪ 𝑊⊆𝑉1 ∪ 𝑉2‬המקיים את שלושת האילוצים‪:‬‬
‫‪ 𝑥 𝛿(𝑣) = 1 ‬לכל 𝑊 ∈ 𝑣‪.‬‬
‫‪ ‬הוקטורים 𝑊 ∈ 𝑣 | )𝑣(𝛿 𝜑 הם בת"ל‪.‬‬
‫‪𝑊 = |𝐸| ‬‬
‫נכונות – שלב שני (‪)2‬‬
‫‪34‬‬
‫נכונות – שלב שני (‪)3‬‬
‫מטענה ‪ 3‬נובע שהקשתות ‪ E‬יוצרות מעגל מעל צמתי ‪ .W‬יהי ‪C‬‬
‫מעגל כלשהו עם כל צמתי ‪ .W‬מכיוון ש‪ G -‬הוא גרף דו‪-‬צדדי‪ ,‬כל‬
‫קשת ב‪ C -‬נוגעת בצומת אחד מ‪ 𝑉1 ∩ 𝑊 -‬ואחד מ‪ .𝑉2 ∩ 𝑊 -‬אם‬
‫נבטא זאת ע"י וקטורים אופיניים נקבל‪:‬‬
‫)𝑣(𝛿 𝜑‬
‫‪𝑣∈𝐶∩𝑉2‬‬
‫= )𝑣(𝛿 𝜑‬
‫‪𝑣∈𝐶∩𝑉1‬‬
‫זו סתירה לתנאי ‪ 2‬באפיון שראינו שעל פיו הוקטורים‬
‫𝑊 ∈ 𝑣 | )𝑣(𝛿 𝜑 הם בת"ל‪.‬‬
‫מש"ל‬
‫סיימנו להוכיח את טענה ‪ 1‬ומכך נובע שקיים לבעיית השידוך‬
‫פתרון אופטימלי אינטגרלי‪.‬‬
‫‪35‬‬
‫‪Generalized Assignment‬‬
‫‪ ‬בחלק זה נראה אלגוריתם קירוב לבעיית ה‪Generalized -‬‬
‫‪ Assignment‬ע"י רלקסציה איטרטיבית‪ ,‬אך הפעם נוותר על‬
‫ההוכחה הפורמלית‪.‬‬
‫‪ ‬הצגת הבעיה – נתון‪ :‬סט של משימות – ‪ ,J‬סט של מכונות ‪-‬‬
‫‪ ,M‬לכל משימה ‪ j‬ומכונה ‪ i‬יש זמן עיבוד 𝑗𝑖𝑝 ומחיר 𝑗𝑖𝑐‪ .‬בנוסף‪,‬‬
‫כל מכונה ‪ i‬ניתנת לשימוש במשך 𝑖𝑇 יחידות זמן בלבד‪.‬‬
‫‪ ‬המטרה – להקצות כל משימה למכונה כלשהי כך שהמחיר‬
‫הכולל יהיה מינימלי ושאף מכונה לא תוקצה לזמן ארוך יותר‬
‫מזמן השימוש האפשרי שלה‪.‬‬
‫‪36‬‬
‫‪Generalized Assignment‬‬
‫‪ ‬על מנת לתאר את הבעיה כ‪ ,LP -‬ראשית נמדל אותה כבעיית‬
‫שידוך בגרף דו צדדי‪:‬‬
‫ נגדיר גרף דו‪-‬צדדי ‪ G‬שבו ‪ J‬ו‪ M -‬הם שני הצדדים של הגרף‪.‬‬‫ מחירה של קשת בין משימה ‪ j‬למכונה ‪ i‬הוא 𝑗𝑖𝑐‪.‬‬‫‪-‬‬
‫כעת יש למצוא תת‪-‬קבוצה ‪ F‬של הקשתות כך ש‪𝑑𝐹 𝑗 = 1 -‬‬
‫לכל משימה ‪ ,j‬כאשר הצומת אליו המשימה ‪ j‬מחוברת הוא‬
‫למעשה המכונה שאליה המשימה תוקצה‪.‬‬
‫‪-‬‬
‫לכל קשת )𝑗‪ 𝑒 = (𝑖,‬נגדיר אינדיקטור 𝑒𝑥 שאומר האם‬
‫המשימה ‪ j‬מוקצה למכונה ‪.i‬‬
‫‪37‬‬
‫‪Generalized Assignment‬‬
‫𝐽 ∈ 𝑗∀‬
‫‪∀𝑖 ∈ 𝑀′‬‬
‫𝐸 ∈ 𝑒∀‬
‫𝑗𝑖𝑥 𝑗𝑖𝑐 𝐸∈)𝑗‪𝑒=(𝑖,‬‬
‫‪Minimize‬‬
‫𝑒𝑥 )𝑗(𝛿∈𝑒‬
‫‪Subject to‬‬
‫‪=1‬‬
‫𝑖𝑇 ≤‬
‫𝑒𝑥 𝑒𝑝 )𝑖(𝛿∈𝑒‬
‫‪𝑥𝑒 ≥ 0‬‬
‫‪ ‬נשים לב שאת הגבלת הזמנים קבענו רק עבור תת קבוצה‬
‫‪ 𝑀′‬של המכונות אשר מאותחלת ל‪ 𝑀 -‬באלגוריתם‬
‫האיטרטיבי‪.‬‬
‫‪38‬‬
‫‪Generalized Assignment‬‬
‫‪ ‬טענה – קיים אלגוריתם פולינומי לבעיית ה‪Generalized -‬‬
‫‪ Assignment‬אשר מחזיר פתרון שמחירו לכל היותר ‪ C‬והוא‬
‫משתמש בכל מכונה ‪ i‬במשך לכל היותר 𝑖𝑇‪ 2‬יחידות זמן‪ ,‬כאשר‬
‫‪ C‬הוא המחיר האופטימלי של הקצאה המשתמשת במכונה ‪i‬‬
‫במשך לכל היותר 𝑖𝑇 יחידות זמן (אם הקצאה כזו אפשרית)‪.‬‬
‫‪ ‬נראה אלגוריתם איטרטיבי שמחזיר את התוצאה המבוקשת‪.‬‬
‫‪ ‬האלגוריתם ידגים את שיטת הקירוב ע"י רלקסצייה‬
‫איטרטיבית שבה בנוסף לצעד הרגיל של בחירת איבר אינטגרלי‬
‫(כמו בדוגמא הקודמת)‪ ,‬מבצעים גם רלקסציה לאילוצים‬
‫מסויימים שנבחר‪ .‬נשים לב שיש לבחור אותם בזהירות על מנת‬
‫שהפתרון האינטגרלי המקורב לא יהיה רחוק מדי מהפתרון‬
‫האמיתי‪.‬‬
‫‪39‬‬
‫‪Iterative Generalized Assignment Algorithm‬‬
‫)‪(1‬‬
‫אתחל 𝑀 ← ‪.𝐹 ← ∅, M′‬‬
‫)‪(2‬‬
‫כל עוד ∅ ≠ 𝐽‪:‬‬
‫)‪(a‬‬
‫מצא ‪ Extreme Point Solution‬אופטימלי ‪ x‬ל‪ LP -‬והסר‬
‫כל קשת המקיימת ‪.𝑥𝑖𝑗 = 0‬‬
‫)‪(b‬‬
‫אם קיים משתנה עם 𝐽‪𝑖,𝑗 ,‬‬
‫𝑗𝑖𝑝 ‪← 𝐽\ 𝑗 , 𝑇𝑖 ← 𝑇𝑖 −‬‬
‫)‪(c‬‬
‫(רלקסציה) אם קיימת מכונה ‪ i‬כך ש‪ ,𝑑 𝑖 = 1 -‬או מכונה ‪i‬‬
‫כך ש‪ 𝑑 𝑖 = 2 -‬וגם ‪ , 𝑗∈𝐽 𝑥𝑖𝑗 ≥ 1‬בצע }𝑖{ \ ‪.𝑀′ ← 𝑀′‬‬
‫)‪(3‬‬
‫החזר את ‪.F‬‬
‫∪ 𝐹 ← 𝐹עדכן ‪𝑥𝑖𝑗 = 1 ,‬‬
‫‪40‬‬
‫‪ - Integrality Gap‬הקדמה‬
‫‪ ‬כפי שראינו‪ ,‬רלקסציית ‪ LP‬היא דרך סטנדרטית למימוש‬
‫אלגוריתם קירוב עבור בעיות אופטימיזציה קשות (כגון‬
‫בעיות שדורשות פתרון בשלמים)‪.‬‬
‫‪ ‬כשמבצעים קירוב‪ ,‬מעניין אותנו לדעת מהי איכות‬
‫הקירוב‪ .‬קונספט חשוב בהקשר זה הוא‬
‫‪.Integrality Gap‬‬
‫‪41‬‬
‫‪ - Integrality Gap‬הגדרה‬
‫‪ ‬בהנתן רלקסציית‪ LP-‬לבעיית אופטימיזציה כלשהי וקלט 𝐼‪,‬‬
‫נסמן ב‪ 𝑀𝑓𝑟𝑎𝑐 -‬את ערך פונקציית המטרה בפתרון אופטימלי‬
‫כלשהו של הרלקסציה (כלומר יתכן ומכיל ערכים לא‪-‬שלמים)‬
‫וב‪ 𝑀𝑖𝑛𝑡 -‬את ערך פונקציית המטרה בפתרון אופטימלי של‬
‫הבעיה בשלמים‪.‬‬
‫‪ 𝐼𝐺 ‬יוגדר כך‪ :‬עבור בעיית מינימיזציה‬
‫עבור בעיית מקסימיזציה‬
‫𝑐𝑎𝑟𝑓𝑀‬
‫𝑡𝑛𝑖𝑀‬
‫𝑡𝑛𝑖𝑀‬
‫𝑐𝑎𝑟𝑓𝑀‬
‫‪IG = sup‬‬
‫‪IG = sup‬‬
‫כלומר‪ ,‬הסופרמום של היחס על פני כל המופעים של הבעיה‪.‬‬
‫‪ ‬הערה‪ :‬היחס תמיד גדול מ‪( 1 -‬מדוע?)‪.‬‬
‫‪42‬‬
‫‪ - Integrality Gap‬מוטיבציה‬
‫מה זה נותן?‬
‫קירוב בעזרת רלקסציה נעשה ע"י אסטרטגיות עיגול שונות על‬
‫מנת לעבור מהפתרון בשברים לפתרון בשלמים‪.‬‬
‫‪ IG‬הוא היחס בין ערך הפתרון בשלמים לערך פתרון הרלקסציה‬
‫בשברים‪ ,‬לכן בבעיית מינימזציה ידוע שערכו של כל פתרון‬
‫שנשיג ע"י אסטרטגיית עיגול כלשהי יהיה לפחות 𝑐𝑎𝑟𝑓𝑀 ∙ 𝐺𝐼‪.‬‬
‫לכן בעזרת ‪ IG‬ניתן להעריך את טיב הקירוב – אם ‪ IG‬גדול מדי‪,‬‬
‫ניתן להניח שהרלקסציה הנוכחית לא מספיק טובה וננסה‬
‫למצוא אחת אחרת‪.‬‬
‫‪43‬‬
‫‪Set Cover‬‬
‫‪ ‬הגדרת הבעיה‪ :‬בהנתן הקבוצה 𝑛‪ G = 1, … ,‬ומשפחה של‬
‫קבוצות } 𝑚𝐴‪ F = {𝐴1 , … ,‬שכל אחת מהן מוכלת ב‪ ,G -‬יש‬
‫למצוא תת‪-‬קבוצה מינימלית של קבוצות מ‪ F -‬כך שאיחודן‬
‫יכסה את ‪.G‬‬
‫‪ ‬הצגה בצורת 𝑃𝐿‪ :‬נגדיר אינדיקטור 𝑖𝑥 המציין אם הקבוצה 𝑖𝐴‬
‫נבחרה‪.‬‬
‫𝑚‬
‫𝑖𝑥 ‪𝑖=1‬‬
‫𝑛≤𝑗≤‪, 1‬‬
‫𝑚≤𝑖≤‪, 1‬‬
‫‪𝑥𝑖 ≥ 1‬‬
‫𝑖𝐴∈𝑗 | 𝑖‬
‫‪𝑥𝑖 ≥ 0‬‬
‫‪Minimize‬‬
‫𝑜𝑡 𝑡𝑐𝑒𝑗𝑏𝑢𝑆‬
‫‪44‬‬
‫‪Set Cover‬‬
‫‪ ‬נניח כי ‪ 𝐺 = 1,2,3‬ו‪-‬‬
‫‪1,2 , 2,3 , 1,3‬‬
‫= 𝐹‪.‬‬
‫‪ ‬מהו ערך הפתרון האופטימלי בשלמים?‬
‫‪𝑀𝑖𝑛𝑡 = 2‬‬
‫‪ ‬מהו ערך הפתרון האופטימלי של הרלקסציה בשברים?‬
‫‪𝑀𝑓𝑟𝑎𝑐 = 1.5‬‬
‫‪ ‬לכן ‪ Integrality Gap‬עבור בעיה זו הוא‪= 1.333 :‬‬
‫‪2‬‬
‫‪1.5‬‬
‫= 𝐺𝐼‬
‫‪ ‬למעשה ניתן להוכיח שלרלקסצייה הזו מתקיים שה‪ IG -‬הוא‬
‫תמיד ‪ log n‬כאשר ‪ n‬הוא מספר האלמנטים בקלט‪.‬‬
45