Stochastic programming — תכנות סטוכסטי

From Systems analysis Wiki
Jump to navigation Jump to search

תכנות סטוכסטי (באנגלית: stochastic programming) — ענף של תכנות מתמטי, המפתח מודלים ושיטות לפתרון בעיות אופטימיזציה בתנאי אי-ודאות, כאשר חלק מפרמטרי המודל אינם ידועים במדויק, אלא מיוצגים כמשתנים אקראיים עם התפלגויות הסתברותיות ידועות או מוערכות[1][2].

בשונה מבעיות דטרמיניסטיות, שבהן כל הנתונים נחשבים לקבועים נתונים, התכנות הסטוכסטי שואף למצוא פתרון (או מדיניות קבלת החלטות) שיהיה אופטימלי במובן סטטיסטי כלשהו. לרוב הדבר משמעו מינימיזציה או מקסימיזציה של התוחלת המתמטית של פונקציית המטרה[1]. הרעיון המרכזי הוא למצוא מדיניות קבלת החלטות שתהיה הטובה ביותר «בממוצע» על פני כל המימושים האפשריים של הפרמטרים האקראיים, דבר שרלוונטי במיוחד לבעיות שבהן החלטות מתקבלות שוב ושוב בתנאים דומים (לדוגמה, בניהול מלאי או מערכות אנרגיה)[3].

ניסוח מתמטי של הבעיה

בצורה כללית, ניתן לנסח את בעיית התכנות הסטוכסטי כך: minxX𝔼[f(x,ξ)] כאשר:

  • x — וקטור משתני הבקרה (ההחלטות) שיש לקבוע.
  • X — קבוצת הפתרונות הקבילים עבור x, המוגדרת על ידי אילוצים דטרמיניסטיים.
  • ξ — וקטור אקראי המייצג את הפרמטרים הלא-ודאיים של הבעיה (לדוגמה, ביקוש, מחירים, תנאי מזג אוויר).
  • f(x,ξ) — פונקציית המטרה, שערכה תלוי הן בהחלטה שהתקבלה x והן במימוש הווקטור האקראי ξ.
  • 𝔼[] — אופרטור התוחלת המתמטית, המחושב לפי התפלגות ההסתברות של הוקטור ξ.

עיקרון יסודי העומד בבסיס מודלים סטוכסטיים רב-שלביים הוא עיקרון אי-הקדמת העתיד (באנגלית: non-anticipativity principle). עיקרון זה קובע כי החלטות המתקבלות בכל שלב יכולות להיות תלויות רק במידע הזמין עד לאותו רגע, ואינן יכולות «להציץ לעתיד»[2].

בעיה דו-שלבית עם זכות פיצוי

המודל הנפוץ ביותר הוא בעיה דו-שלבית עם זכות פיצוי (באנגלית: two-stage stochastic program with recourse)[1]. תהליך קבלת ההחלטות מחולק לשני שלבים:

  1. שלב ראשון: מתקבלת החלטה «כאן ועכשיו» (here-and-now) — נקבע הוקטור x. החלטה זו חייבת להתקבל לפני שנודעת המימוש הספציפי של הוקטור האקראי ξ.
  2. שלב שני: לאחר שהאירוע האקראי התרחש, מתקבלת החלטת תיקון או פיצוי (recourse decision) — הוקטור y(ξ), שמטרתו למזער השלכות שליליות או לנצל הזדמנויות חיוביות שנוצרו כתוצאה מהשילוב של החלטת השלב הראשון x והתוצאה ξ.

מתמטית, הבעיה הדו-שלבית של תכנות לינארי סטוכסטי מנוסחת כך: minxn1{cTx+𝔼ξ[Q(x,ξ)]} באילוצי השלב הראשון: Ax=b,x0. כאן Q(x,ξ) היא פונקציית הפיצוי (recourse function), המייצגת את הערך האופטימלי של בעיית השלב השני: Q(x,ξ)=minyn2{q(ξ)TyT(ξ)x+Wy=h(ξ),y0} כאשר ξ הוא וקטור אקראי הכולל את הפרמטרים q(ξ),T(ξ) ו-h(ξ); ו-c,A,b ו-W הם פרמטרים דטרמיניסטיים[2].

תכונות מפתח ומשפטים

  • קמירות: אחד התוצאות היסודיות של התאוריה הוא שעבור בעיה דו-שלבית של תכנות לינארי סטוכסטי, פונקציית הפיצוי הצפויה Q(x)=𝔼ξ[Q(x,ξ)] היא פונקציה קמורה. תכונה זו בעלת חשיבות עצומה, שכן היא מבטיחה שבעיית השלב הראשון הכוללת היא בעיית תכנות קמור, שעבורה קיימות שיטות פתרון יעילות והאופטימום הגלובלי חופף לאופטימום המקומי[1].
  • שקילות דטרמיניסטית: אם לוקטור האקראי ξ יש מספר סופי של מימושים אפשריים (תרחישים) ξ1,,ξK עם הסתברויות p1,,pK, ניתן לנסח מחדש את בעיית התכנות הסטוכסטי כבעיית אופטימיזציה דטרמיניסטית גדולה אחת. במקרה זה התוחלת המתמטית מוחלפת בסכום משוקלל על פני כל התרחישים. אולם גודל בעיה זו גדל לינארית עם מספר התרחישים, דבר המוביל ל«קללת הממדיות» והופך גישה זו לבלתי אפשרית מבחינה חישובית עבור מספר גדול של תרחישים[2].

השוואה עם אופטימיזציה רובוסטית

תכנות סטוכסטי הוא אחת מכמה גישות לאופטימיזציה בתנאי אי-ודאות. ההבדל המרכזי שלו מאופטימיזציה רובוסטית נעוץ באופן מידול אי-הודאות ובקריטריון האופטימליות[4].

השוואת גישות לאופטימיזציה בתנאי אי-ודאות
קריטריון אופטימיזציה סטוכסטית אופטימיזציה רובוסטית
ייצוג אי-הודאות הפרמטרים הם משתנים אקראיים עם התפלגות הסתברותית ידועה הפרמטרים שייכים לקבוצת אי-ודאות נתונה, אין צורך בהתפלגות
קריטריון האופטימליות אופטימיזציה של התוחלת המתמטית של פונקציית המטרה אופטימיזציה בתרחיש הגרוע ביותר (מינימקס)
אופי הפתרון מדיניות אופטימלית «בממוצע», עשויה להיות בלתי קבילה עבור תרחישים נדירים פתרון המובטח כקביל עבור כל המימושים; עשוי להיות שמרני

דוגמאות

  • בעיית מוכר העיתונים (באנגלית: newsvendor problem): בעיה קלאסית של ניהול מלאי, שבה על המוכר להחליט כמה יחידות סחורה לרכוש מבלי לדעת את הביקוש המדויק העתידי. הפתרון מאזן בין סיכון ההפסד מעודפים לבין סיכון אובדן הרווח מחסר.
  • בעיית החקלאי: חקלאי מחליט כמה דונמים להקצות לגידולים שונים מתוך שטח כולל, מבלי לדעת את מזג האוויר העתידי המשפיע על היבול. לאחר שמזג האוויר הופך ידוע, יכול החקלאי לנקוט פעולות תיקון (לדוגמה, למכור עודפים או לרכוש את היבול החסר בשוק)[5].

ראו גם

  • תכנות מתמטי
  • חקר ביצועים
  • אופטימיזציה רובוסטית
  • תכנות דינמי
  • תורת הבקרה

הערות

[1] [2] [3] [4] [5] </references>

  1. 1.0 1.1 1.2 1.3 1.4 Shapiro, A., Dentcheva, D., & Ruszczyński, A. (2009). Lectures on Stochastic Programming: Modeling and Theory. Society for Industrial and Applied Mathematics (SIAM).
  2. 2.0 2.1 2.2 2.3 2.4 Birge, J. R., & Louveaux, F. (2011). Introduction to Stochastic Programming (2nd ed.). Springer Science+Business Media.
  3. 3.0 3.1 "Стохастическое программирование". Википедия. [1]
  4. 4.0 4.1 Gorissen, B. L., Yanıkoğlu, İ., & den Hertog, D. (2015). A practical guide to robust optimization. Omega, 53, 124-137.
  5. 5.0 5.1 Bricker, D. L. SLPwR: Farmer Problem. University of Iowa. [2]