ברוכים הבאים לשיעור בנושא "תכנון לינארי גיאומטרי", יחידה מרכזית בקורס "גיאומטריה חישובית". יחידה זו מתמקדת בפתרון בעיות תכנון לינארי (LP) במימדים נמוכים, בעיקר 2 ו-3, תוך שימוש בגישות גיאומטריות ואלגוריתמים אקראיים. הבנה מעמיקה של נושא זה חיונית לא רק בשל יישומיו הרבים, אלא גם כבסיס לאלגוריתמים מורכבים יותר בגיאומטריה חישובית. נתמקד בהגדרות, באלגוריתם האינקרמנטלי האקראי ובניתוח ביצועיו במימדים נמוכים, תוך דגש על נקודות קריטיות לבחינה.
הגדרת בעיית תכנון לינארי ופרשנות גיאומטרית
בעיית תכנון לינארי היא בעיית אופטימיזציה שבה אנו שואפים למקסם או למזער פונקציית מטרה לינארית, בכפוף למערכת של אילוצים לינאריים. לבעיות אלו יש פרשנות גיאומטרית חזקה, במיוחד במימדים נמוכים.
במימד 2, כל אילוץ לינארי מגדיר חצי מישור, והתחום הקביל הוא חיתוך של חצאי מישורים, כלומר מצולע קמור. במימד 3, כל אילוץ מגדיר חצי מרחב, והתחום הקביל הוא חיתוך של חצאי מרחבים, כלומר פאון קמור.
אלגוריתם אקראי אינקרמנטלי לפתרון LP
האלגוריתם האינקרמנטלי האקראי מספק גישה יעילה לפתרון בעיות LP במימדים נמוכים. הרעיון המרכזי הוא להוסיף את האילוצים אחד-אחד, בסדר אקראי, ולעדכן את הפתרון האופטימלי בכל שלב.
עקרונות פעולה:
- אתחול: מתחילים עם מספר קטן של אילוצים "מלאכותיים" (לרוב 2 בדו-מימד, 3 בתלת-מימד) המגדירים תחום קביל חסום ובתוכו פתרון אופטימלי התחלתי.
- הוספה אינקרמנטלית: מוסיפים אילוץ חדש hi מהרשימה האקראית.
- בדיקת הפרה: בודקים האם הפתרון האופטימלי הנוכחי p* מקיים את hi.
- אם p* מקיים את hi, הוא נשאר הפתרון האופטימלי עבור הקבוצה המעודכנת של האילוצים.
- אם p* מפר את hi, אזי הפתרון האופטימלי החדש חייב לשכב על הגבול של hi (כלומר, על היפר-מישור המגדיר את hi). במקרה זה, הבעיה מצטמצמת לבעיית LP במימד נמוך יותר על גבי הגבול של hi.
פתרון במימד 2 ו-3
פתרון LP במימד 2
- אתחול: נניח שיש לנו 2 אילוצים מלאכותיים h0, h1 המגדירים פתרון התחלתי p0*.
- איטרציה (לכל אילוץ hi בסדר אקראי):
- אם pi-1* מקיים את hi, אז pi* = pi-1*.
- אם pi-1* מפר את hi, אזי הפתרון האופטימלי החדש pi* חייב לשכב על הקו המגדיר את hi. אנו פותרים בעיית LP חדשה במימד 1 על קו זה, כאשר האילוצים הם חיתוך האילוצים הקודמים עם הקו של hi. פתרון בעיית 1D LP הוא טריוויאלי (מציאת נקודה קיצונית על קטע).
פתרון LP במימד 3
- אתחול: נניח שיש לנו 3 אילוצים מלאכותיים h0, h1, h2 המגדירים פתרון התחלתי p0*.
- איטרציה (לכל אילוץ hi בסדר אקראי):
- אם pi-1* מקיים את hi, אז pi* = pi-1*.
- אם pi-1* מפר את hi, אזי הפתרון האופטימלי החדש pi* חייב לשכב על המישור המגדיר את hi. אנו פותרים בעיית LP חדשה במימד 2 על מישור זה, כאשר האילוצים הם חיתוך האילוצים הקודמים עם המישור של hi. פתרון בעיית 2D LP מתבצע באופן רקורסיבי באמצעות אותו אלגוריתם.
יישומים
לבעיות תכנון לינארי גיאומטריות מגוון רחב של יישומים בתחומים שונים:
- הקצאת משאבים: תכנון אופטימלי של הקצאת משאבים מוגבלים (זמן, חומרים, כוח אדם) כדי למקסם רווח או למזער עלויות.
- תכנון ייצור: קביעת כמויות ייצור של מוצרים שונים תחת מגבלות כושר ייצור, חומרי גלם וביקוש.
- מיקום מתקנים (Facility Location): מציאת המיקום האופטימלי למתקן (למשל, בית חולים, מחסן) שימזער מרחקים או עלויות שירות.
- תכנון נתיבים: מציאת מסלולים אופטימליים ברשתות (לדוגמה, רשתות תקשורת או תחבורה).
- גיאומטריה חישובית: בעיות כמו מציאת המעגל המינימלי המכיל קבוצת נקודות (Minimum Enclosing Circle) ניתנות לניסוח כבעיית LP במימד נמוך.
שאלות לדיון
- הסבירו את הפרשנות הגיאומטרית של בעיית תכנון לינארי במימד 2. כיצד פרשנות זו מסייעת בהבנת מיקום הפתרון האופטימלי?
- תארו את הרעיון המרכזי שמאחורי האלגוריתם האינקרמנטלי האקראי לפתרון LP. מדוע האקראיות חיונית ליעילותו?
- פרטו את השלבים לפתרון בעיית LP במימד 2 באמצעות הגישה האינקרמנטלית האקראית. מה קורה כאשר אילוץ חדש מפר את הפתרון האופטימלי הנוכחי?
- כיצד משתנה הגישה לפתרון LP במימד 3 לעומת מימד 2, במיוחד במקרה של הפרת אילוץ?
נקודות לתשובת מודל
- הגדרת LP: פונקציית מטרה לינארית, אילוצים לינאריים, תחום קביל (פאון קמור).
- פתרון אופטימלי: תמיד בקודקוד של התחום הקביל (אם קיים).
- אלגוריתם אינקרמנטלי אקראי: הוספת אילוצים בסדר אקראי, שמירה על פתרון אופטימלי נוכחי.
- חשיבות האקראיות: מבטיחה זמן ריצה ממוצע של O(n) עבור מימד קבוע, מונעת מקרי קצה גרועים.
- פתרון 2D: אתחול עם 2 אילוצים מלאכותיים. במקרה של הפרה, הפתרון החדש על קו האילוץ המפר, ופותרים LP במימד 1 על הקו.
- פתרון 3D: אתחול עם 3 אילוצים מלאכותיים. במקרה של הפרה, הפתרון החדש על מישור האילוץ המפר, ופותרים LP במימד 2 על המישור (באופן רקורסיבי).
- מורכבות: זמן ריצה ממוצע O(n) עבור מימד קבוע (2D, 3D).
- יישומים: הקצאת משאבים, תכנון ייצור, מיקום מתקנים, בעיות גיאומטריות (כמו מעגל חוסם מינימלי).