stochastic dynamic programming
Főnév
stochastic dynamic programming (tsz. stochastic dynamic programmings)
- (informatika) A sztochasztikus dinamikus programozás olyan matematikai-optimalizációs keretrendszer, amelyben a döntési folyamat több lépésben zajlik, a rendszer állapota pedig mind a múltbeli döntésektől, mind véletlen eseményektől függ. Ezzel ellentétben a determinisztikus dinamikus programozásnál a jövő pontosan előre jelezhető. A stochasztikus esetben viszont valószínűségi átmeneteket és várható értékeket alkalmazunk, így alkalmasunk olyan valós problémák modellezésére, ahol a bizonytalanság kulcsszerepet játszik (például készletszintek, portfóliókezelés, sorban álló rendszerek).
1. A stochasztikus dinamikus programozás alapjai
Állapotok () A rendszer lehetséges konfigurációinak halmaza. Egy inventory-problémánál ez lehet a raktárkészlet szintje, pénzügyi portfólió esetén pedig a vagyontételek értéke.
Akciók () Minden időpillanatban elérhető döntések, például mekkora mennyiséget rendelünk, vagy milyen arányban allokáljuk az eszközöket.
Átmeneti valószínűségek ()
Azt adja meg, hogy ha a jelen állapot -ben az akciót hajtjuk végre, a következő időpontban állapotba kerülünk–e mekkora valószínűséggel. Mivel a rendszer stochasztikus, e valószínűségek jellemzik a bizonytalanságot.
Jutalom- vagy költségfüggvény ()
A rendszer az állapotból az állapotba lépve az akció következtében kapott (vagy fizetett) jutalom/költség. Gyakran egyszerűsítünk és vagy akár formában dolgozunk.
Diszkontfaktor () Egy valós szám, amely a jövőbeni jutalmak jelenértékét adja. A teljes várható, diszkontált jutalom
maximalizálása a cél.
2. A Bellman-egyenlet és visszafelé kalkuláció
A stochasztikus dinamikus programozás központi eszköze a Bellman-egyenlet, amely rekurzívan összekapcsolja az egyes állapotok optimális értékét:
Itt
- az optimális értékfüggvény: a maximális várható, diszkontált jutalom, ha az állapotból indulunk és optimális döntéseket hozunk.
- A maximálás azokon az akciókon fut, amelyek az adott állapotban engedélyezettek.
A dinamikus programozás során visszafelé („backward induction”) lépünk a lehetséges időpillanatokon: ha végponti feltételként megadtuk értékeit (például terminális költség vagy jutalom a leállásnál), onnan lépünk vissza a korábbi állapotokra, és számítjuk ki sorban a értékeket.
3. Véges és végtelen horizon
Vége horizon (T időlépés) Ilyenkor a Bellman-egyenletet a terminális időpontban kezdeti feltételekkel indítjuk ( ismert), majd visszafelé iterálva kapjuk -t, ahonnan a döntést meghozzuk.
Végtelen horizon Ha és , az értékiteráció konvergál egy fixpontra, ahol
és .
4. Számítási módszerek
Értékiteráció Egyszerű, de gyakran lassú: minden állapotra minden akciót és átmenetet végig kell számolni minden iterációban. Konvergencia: monotón növekvő (vagy csökkenő) sorozatként éri el az optimális -et.
Politikaiteráció
Politikaértékelés: adott politika mellett megoldjuk a lineáris egyenletrendszert
Politikaváltás: . A két lépést ismételjük, amíg a politika nem változik (jellemzően kevesebb iteráció szükséges, de egy-egy iteráció drágább).
Lineáris programozás Közvetlenül megoldhatjuk egy LP-formulációval:
Itt súlyozott kiinduló állapot-gyakoriság.
5. Gyakorlat: készletgazdálkodás
Legyen a raktárkészlet szintje nap elején, a rendelési mennyiség. A kereslet stochasztikus, ismert eloszlással. A modell:
Állapot: .
Akció: .
Átmenet:
vagy 0, ha kifogy.
Jutalom:
A visszafelé kalkulációval az egyes készlet- és rendelési döntésekhez tartozó optimális várható haszon kiszámítható.
6. Kihívások és „átok”
A stochasztikus dinamikus programozás fő nehézsége a dimenziókátka:
- Állapottér nagysága gyorsan nő a változók számával.
- Akciótér is hasonlóan növeli a komplexitást. Ez korlátozza a módszer közvetlen alkalmazhatóságát nagy rendszerekre.
Megoldási irányok
- Approximate Dynamic Programming (ADP) – Funkcióillesztés (pl. lineáris/bázisfüggvényes, neurális hálózatokkal).
- Monte Carlo Tree Search (MCTS) – Kérdezgetés-szimuláció (pl. Go-játék).
- Reinforcement Learning – Q-learning, SARSA, Deep Q-Network (DQN) – modellmentes megközelítések.
- Hierarchikus felbontás – A nagy feladatot több, kisebb DP-problémára bontjuk.
7. Alkalmazási példák
- Energiagazdálkodás – Akkumulátor töltési–kisütési stratégia, ha a villamosenergia-ár stochasztikus.
- Portfólióoptimalizálás – Részvény–kötvény allokáció időben változó piaci környezetben.
- Robotikai mozgástervezés – Bizonytalan környezetben a legjobb irányítást keressük (POMDP kiterjesztés).
- Epidemiamodellezés – Vakcina-elosztás dinamikus sztochasztikus fertőzésmodell mellett.
8. Összefoglalás
A stochasztikus dinamikus programozás gazdag elméleti hátteret és univerzális keretet nyújt olyan problémákhoz, ahol a döntések sorozata és a bizonytalanság kölcsönhatása kulcsfontosságú. A Bellman-egyenlet adják a módszer magját, és visszafelé kalkuláció vagy iteratív eljárások alkalmazhatóak a véges vagy végtelen horizonú esetekre. A dimenziókátka miatt azonban gyakran approximate és hierarchikus módszerekkel egészítjük ki, illetve a reinforcement learning modern eszköztárával oldjuk meg a nagy állapot- és akcióterű feladatokat. A keretrendszer sikerrel alkalmazható logisztikától a pénzügyön át a robotikáig, és ma is aktív kutatási terület a hatékonyabb közelítések és skálázható algoritmusok fejlesztése.
- stochastic dynamic programming - Szótár.net (en-hu)
- stochastic dynamic programming - Sztaki (en-hu)
- stochastic dynamic programming - Merriam–Webster
- stochastic dynamic programming - Cambridge
- stochastic dynamic programming - WordNet
- stochastic dynamic programming - Яндекс (en-ru)
- stochastic dynamic programming - Google (en-hu)
- stochastic dynamic programming - Wikidata
- stochastic dynamic programming - Wikipédia (angol)