Sztochasztikus programozás
Sztochasztikus programozás (angol: stochastic programming) — a matematikai programozás azon ága, amely optimalizálási feladatok megoldásához dolgoz ki modelleket és módszereket bizonytalansági körülmények között, amikor a modell egyes paraméterei nem ismertek pontosan, hanem ismert vagy becsült valószínűségi eloszlású véletlen változókként vannak megadva[1][2].
Az determinisztikus feladatokkal ellentétben, ahol minden adat adott konstansnak tekintendő, a sztochasztikus programozás célja olyan megoldás (vagy döntési politika) megtalálása, amely valamely statisztikai értelemben optimális. Ez leggyakrabban a célfüggvény várható értékének minimalizálását vagy maximalizálását jelenti[1]. A kulcsötlet az, hogy olyan döntési politikát keressünk, amely a véletlen paraméterek összes lehetséges realizációján átlagolva a legjobb eredményt adja; ez különösen fontos olyan feladatoknál, ahol a döntéseket ismételten, hasonló körülmények között hozzák (például készletgazdálkodásban vagy energiarendszerek irányításában)[3].
A feladat matematikai megfogalmazása
Általános alakban a sztochasztikus programozási feladat a következőképpen fogalmazható meg: ahol:
- — a meghatározandó irányítási változók (döntések) vektora.
- — a megengedett megoldásainak halmaza, amelyet determinisztikus korlátok határoznak meg.
- — a feladat bizonytalan paramétereit (például keresletet, árakat, időjárási feltételeket) képviselő véletlen vektor.
- — a célfüggvény, amelynek értéke mind a döntéstől, mind a véletlen vektor realizációjától függ.
- — a várható érték operátora, amelyet a vektor valószínűségi eloszlása szerint számítunk.
A többlépéses sztochasztikus modellek alapját képező legfontosabb elv a nem-anticipativitás elve (angol: non-anticipativity principle). Ez kimondja, hogy bármely szakaszban hozott döntések csak az addig rendelkezésre álló információtól függhetnek, és nem „tekinthetnek a jövőbe"[2].
Kétlépéses feladat kompenzálási joggal
A legelterjedtebb modell a kétlépéses sztochasztikus feladat kompenzálási joggal (angol: two-stage stochastic program with recourse)[1]. A döntéshozatali folyamat két szakaszra tagolódik:
- Első szakasz: „Itt és most" (here-and-now) döntés születik — meghatározzák a vektort. Ezt a döntést még azelőtt kell meghozni, mielőtt a véletlen vektor konkrét realizációja ismertté válna.
- Második szakasz: Miután a véletlen esemény bekövetkezett, kiigazító vagy kompenzáló döntést (recourse decision) hoznak — a vektort —, amelynek célja az első szakasz döntése és a kimenetel együttes hatásából adódó negatív következmények minimalizálása vagy a kedvező lehetőségek kihasználása.
Matematikailag a kétlépéses sztochasztikus lineáris programozási feladat a következőképpen fogalmazható meg: az első szakasz korlátaival: . Itt a kompenzációs függvény (recourse function), amely a második szakasz feladatának optimális értékét jelenti: ahol a és paramétereket tartalmazó véletlen vektor; és pedig determinisztikus paraméterek[2].
Kulcstulajdonságok és tételek
- Konvexitás: Az elmélet egyik alapvető eredménye, hogy kétlépéses sztochasztikus lineáris programozási feladat esetén a várható kompenzációs függvény konvex függvény. Ez a tulajdonság rendkívül jelentős, mivel garantálja, hogy az első szakasz összesített feladata konvex programozási feladat, amelyre hatékony megoldási módszerek léteznek, és a globális optimum egybeesik a lokális optimummal[1].
- Determinisztikus ekvivalens: Ha a véletlen vektornak véges számú lehetséges realizációja (forgatókönyve) van valószínűségekkel, akkor a sztochasztikus programozási feladat átfogalmazható egyetlen nagy determinisztikus optimalizálási feladatként. Ebben az esetben a várható értéket az összes forgatókönyv szerinti súlyozott összeg helyettesíti. Ez a feladat mérete azonban lineárisan nő a forgatókönyvek számával, ami „átokszerű dimenzionális robbantáshoz" vezet, és nagy számú forgatókönyv esetén számítási szempontból megoldhatatlanná teszi ezt a megközelítést[2].
Összehasonlítás a robusztus optimalizálással
A sztochasztikus programozás egyike a bizonytalansági körülmények közötti optimalizálás több megközelítésének. A robusztus optimalizálástól való legfontosabb különbsége a bizonytalanság modellezési módjában és az optimalitási kritériumban rejlik[4].
| Kritérium | Sztochasztikus optimalizálás | Robusztus optimalizálás |
|---|---|---|
| A bizonytalanság megjelenítése | A paraméterek ismert valószínűségi eloszlású véletlen változók | A paraméterek egy adott bizonytalansági halmazba tartoznak, eloszlás nem szükséges |
| Optimalitási kritérium | A célfüggvény várható értékének optimalizálása | Optimalizálás a legrosszabb forgatókönyv szerint (minimax) |
| A megoldás jellege | Átlagosan optimális politika, amely ritka forgatókönyvek esetén nem feltétlenül megengedett | Minden realizációra garantáltan megengedett megoldás; konzervatív lehet |
Példák
- Az újságárus feladata (angol: newsvendor problem): Klasszikus készletgazdálkodási feladat, ahol az eladónak el kell döntenie, mekkora mennyiségű árut szerezzen be anélkül, hogy a pontos jövőbeli keresletet ismerné. A megoldás egyensúlyt teremt a feleslegből eredő veszteség kockázata és a hiányból fakadó elmaradt haszon kockázata között.
- A gazda feladata: Egy gazda eldönti, hogy összterületén hány holdat osszon ki különböző növényekre anélkül, hogy ismerné a terméseredményt befolyásoló jövőbeli időjárást. Miután az időjárás ismertté válik, a gazda kiigazító intézkedéseket tehet (például feleslegét eladhatja, vagy a hiányzó termést piacon vásárolhatja meg)[5].
Lásd még
- Matematikai programozás
- Operációkutatás
- Robusztus optimalizálás
- Dinamikus programozás
- Irányításelmélet
Megjegyzések
- ↑ 1.0 1.1 1.2 1.3 Shapiro, A., Dentcheva, D., & Ruszczyński, A. (2009). Lectures on Stochastic Programming: Modeling and Theory. Society for Industrial and Applied Mathematics (SIAM).
- ↑ 2.0 2.1 2.2 2.3 Birge, J. R., & Louveaux, F. (2011). Introduction to Stochastic Programming (2nd ed.). Springer Science+Business Media.
- ↑ "Стохастическое программирование". Википедия. [1]
- ↑ Gorissen, B. L., Yanıkoğlu, İ., & den Hertog, D. (2015). A practical guide to robust optimization. Omega, 53, 124-137.
- ↑ Bricker, D. L. SLPwR: Farmer Problem. University of Iowa. [2]