עמוד 1: תכנון ליניארי, סימפלקס ורגישות
| סימן מזהה | שיטה |
|---|---|
| סיפור, החלטות ומגבלות | ניסוח מודל |
| שני משתנים ליניאריים | פתרון גרפי |
| טבלת בסיס או יותר משני משתנים | סימפלקס |
| פלט תוכנה או שינוי משאב | רגישות ו-LINDO |
| נגזרות או מכפלות משתנים | אופטימיזציה קלאסית |
| מקורות, יעדים, היצע וביקוש | תובלה |
מוסכמת אינדקסים: r מסמן שורת אילוץ, ו-k מסמן משתנה או עמודה. לכן xk הוא מספר היחידות, ck הוא רווח או עלות ליחידה, ar,k הוא מקדם המשתנה באילוץ, ו-br הוא גבול האילוץ.
| לכל היותר | ≤ |
| לפחות | ≥ |
| בדיוק | = |
| A לפחות p% מהסך T | A ≥ (p / 100) T |
| בחירה כן או לא | y ∈ {0, 1} |
| כמות שלמה | x ∈ ℤ, x ≥ 0 |
בדיקה: בכל אילוץ שני האגפים חייבים להיות באותן יחידות.
DV הוא התועלת מיחידת משאב נוספת, c הוא המחיר שמשלמים ליחידה ו-q היא הכמות הנרכשת. לכן DV-c הוא הרווח הנקי ליחידה. קונים רק אם הוא חיובי ורק כל עוד השינוי נמצא בתחום התקפות.
מתי צריך? באילוץ שוויון או באילוץ ≥ שאין בו עמודת יחידה, מוסיפים זמנית Ar כדי לקבל בסיס התחלתי.
בדיקה אחרי כל ציר: העמודה שנכנסה היא עמודת יחידה, כל אגפי הימין אי שליליים, והמשוואות עדיין מייצגות את אותה מערכת.
המטרה: להפוך כל אילוץ למשוואה וליצור נקודת התחלה שממנה אפשר לעבור בין פתרונות בסיסיים ולשפר את ערך המטרה.
תחילה דורשים br ≥ 0. אם אגף ימין שלילי, כופלים את כל השורה ב--1 והופכים את כיוון האי שוויון.
| האילוץ | המשוואה שמכניסים לטבלה |
|---|---|
| LHSr ≤ br | LHSr + sr = br |
| LHSr ≥ br | LHSr - er = br |
| LHSr = br | לא משנים; ייתכן שיידרש משתנה מלאכותי |
LHSr הוא כל אגף שמאל של אילוץ r; br הוא הגבול. sr הוא הקיבולת שלא נוצלה, ו-er הוא הכמות שבה עברנו דרישת מינימום. שניהם אי שליליים.
בסיס הוא בחירה של משתנה אחד לכל שורת אילוץ כך שהעמודות שנבחרו יוצרות עמודות יחידה: בכל עמודה יש 1 בשורה שלה ו-0 בשאר השורות. מאפסים את המשתנים שאינם בבסיס וקוראים את ערכי הבסיס מאגף ימין.
משתנה מרווח sr יוצר בדרך כלל בסיס טבעי. משתנה עודף מופיע עם -1, ובאילוץ שוויון אין עמודת יחידה; בשורות שאין להן בסיס מוסיפים זמנית משתנה מלאכותי Ar.
Ck הוא מקדם המשתנה במטרה; Zk הוא הערך שכבר מיוחס לעמודה לפי הבסיס הנוכחי. לכן Ck - Zk מודד כמה עוד אפשר לשפר ליחידה.
מקרים מיוחדים: אין מקדם חיובי בעמודה הנכנסת - הבעיה אינה חסומה. תיקו במבחן המנה עלול ליצור ניוון; ממשיכים לפי כלל עקבי.
LHS הוא הערך שהתקבל באגף שמאל ו-RHS הוא הגבול באגף ימין. DVr אומר בכמה ישתנה הערך האופטימלי Z* אם נשנה את br ביחידה אחת.
משמעות: מרווח או עודף חיובי אומר שהאילוץ אינו פעיל, ולכן שינוי קטן בגבול שלו אינו משנה את האופטימום וערכו הדואלי אפס. הכיוון ההפוך אינו מובטח: אילוץ פעיל יכול לקבל ערך דואלי אפס.
| OBJECTIVE VALUE | ערך המטרה |
| VALUE | ערך המשתנה |
| REDUCED COST | בכמה מקדם המטרה צריך להשתפר לפני שמשתנה אפס יהיה כדאי |
| SLACK OR SURPLUS | כמה קיבולת נשארה או בכמה עברנו את דרישת המינימום |
| DUAL PRICES | השינוי בערך המטרה עבור יחידה נוספת באגף ימין |
| CURRENT COEF / RHS | הערך הנוכחי |
| ALLOWABLE INC / DEC | כמות שינוי, לא נקודת קצה |
שורה 1 בדוח היא פונקציית המטרה; אילוץ 1 במודל מופיע בדרך כלל בשורה 2.
ck הוא הרווח או העלות של יחידה אחת ממשתנה k. אותו קודקוד נשאר אופטימלי כל עוד שיפוע קו המטרה נשאר בין שיפועי שתי הצלעות הפעילות. משנים מקדם אחד בכל פעם; אם c2 = 0, קו המטרה אנכי ובודקים אותו ישירות.
AIr ו-ADr הם גודל העלייה והירידה המותרות מהערך הנוכחי, לא גבולות התחום עצמם.
| LHS ≥ b, S = LHS - b > 0 | AI = S, AD = ∞ |
| LHS ≤ b, S = b - LHS > 0 | AI = ∞, AD = S |
בדיקה: מציבים את הזוג שהתקבל בשתי המשוואות המקוריות.
עמוד 2: נגזרות, לגראנז', KKT ובעיית תובלה
f(X) היא פונקציית המטרה, ו-X=(x1,...,xn)T הוא וקטור משתני ההחלטה.
אינטואיציה: הגרדיאנט אוסף את כל השיפועים המקומיים; כשהוא אפס אין כיוון שיפור מסדר ראשון. הסיאן אוספת את הנגזרות השניות ומתארת אם המשטח מתעקל כלפי מעלה, כלפי מטה או לכיוונים שונים.
| f′′(x) ≥ 0 | קמורה בתחום |
| f′′(x) ≤ 0 | קעורה בתחום |
| Hf(X) ⪰ 0 | קמורה בתחום |
| Hf(X) ⪯ 0 | קעורה בתחום |
D הוא התחום, u,v הן שתי נקודות בו ו-t בוחר נקודה ביניהן. בפונקציה קמורה הגרף נמצא מתחת למיתר המחבר שתי נקודות; בפונקציה קעורה הופכים את סימן האי שוויון.
D1, D2, ... הם הדטרמיננטים של הבלוקים השמאליים העליונים, לפי סדר גודל עולה. בשני משתנים: D1 = fxx ו-D2 = det(H). הסיאן לא מוגדרת בנקודה יציבה מעידה על אוכף; הסיאן למחצה בנקודה אחת אינה מספיקה לסיווג.
אם f′′(x̄)=0, עוברים לנגזרות מסדר גבוה עד הראשונה שאינה אפס: סדר זוגי וסימן חיובי נותן מינימום, זוגי ושלילי נותן מקסימום, וסדר אי זוגי אינו נותן קיצון.
הרעיון: במקום לחפש בכל המרחב, מחפשים נקודה שבה שינוי שמכבד את אילוצי השוויון כבר לא משפר את המטרה. הכופלים מחברים את המטרה והאילוצים למערכת אחת.
gr(X) הוא אגף שמאל של אילוץ r, br הוא הערך הנדרש, ו-λr הוא כופל האילוץ. בשוויון הכופל חופשי בסימן.
מטרה קמורה במינימום או קעורה במקסימום, עם אילוצים ליניאריים, נותנת אופטימום גלובלי.
הרעיון: לא כל אילוץ משפיע בנקודת האופטימום. תחילה מסדרים כל אילוץ כ-gr(X) ≤ br ומצמידים לו כופל λr ≥ 0, שמודד את השפעתו כשהוא פעיל.
| אין כיוון שיפור מקומי | ∂L / ∂xk = 0 |
| הנקודה מותרת | gr(X) ≤ br |
| סימן הכופלים תקין | λr ≥ 0 |
| פעיל או חסר השפעה | λr [br - gr(X)] = 0 |
איך פותרים: לכל אילוץ בודקים שני מצבים: או שהוא פעיל ולכן gr(X) = br, או שאינו פעיל ולכן λr = 0. פותרים כל צירוף ופוסלים תוצאה שמפרה אילוץ או סימן כופל. אילוץ פעיל עדיין יכול לקבל כופל אפס.
מקסימום: f קעורה. מינימום: f קמורה. בשניהם gr קמורות. אז KKT מספיק לאופטימום גלובלי.
μk הוא הכופל של הגבול xk ≥ 0, ולכן הוא משפיע רק כאשר המשתנה נמצא על הגבול xk = 0.
ברפיון משלים: xk > 0 ⇒ μk = 0, כי הגבול אינו פעיל; μk > 0 ⇒ xk = 0, כי הכופל פועל רק על הגבול.
f* הוא ערך המטרה האופטימלי, Δbr הוא שינוי קטן באגף ימין, ו-ΔLBk הוא שינוי בגבול התחתון. הקירוב תקף כל עוד קבוצת האילוצים הפעילים אינה משתנה.
r מסמן מקור ו-k יעד. xr,k היא הכמות שנשלחה, cr,k העלות ליחידה, sr ההיצע ו-dk הביקוש.
לפני שמקצים: מאזנים היצע וביקוש. עודף היצע דורש יעד דמה; עודף ביקוש דורש מקור דמה. עלות הדמה אפס רק אם אין מחיר אמיתי לחוסר או לעודף.
נדרשים m+n-1 תאים בסיסיים. אם חסרים, מוסיפים תא בסיסי בכמות אפס בלי ליצור מעגל.
מטרת הבדיקה: לברר אם פתיחת נתיב שאינו בשימוש יכולה להוזיל את ההובלה הכוללת.
θ מונע משלוח שלילי; תא לא בסיסי עם Δr,k = 0 עשוי לתת אופטימום חלופי.