Programare stochastică
Programarea stochastică (engl. stochastic programming) — ramură a programării matematice care elaborează modele și metode de rezolvare a problemelor de optimizare în condiții de incertitudine, când anumiți parametri ai modelului nu sunt cunoscuți cu exactitate, ci sunt reprezentați ca variabile aleatoare cu distribuții de probabilitate cunoscute sau estimate[1][2].
Spre deosebire de problemele deterministe, unde toate datele sunt considerate constante date, programarea stochastică urmărește găsirea unei soluții (sau a unei politici de luare a deciziilor) care să fie optimă într-un anumit sens statistic. Cel mai frecvent, aceasta înseamnă minimizarea sau maximizarea valorii așteptate a funcției obiectiv[1]. Ideea cheie constă în găsirea unei politici de luare a deciziilor care să fie cea mai bună „în medie" pentru toate realizările posibile ale parametrilor aleatori, ceea ce este deosebit de relevant pentru problemele în care deciziile se iau în mod repetat în condiții similare (de exemplu, în gestionarea stocurilor sau a sistemelor energetice)[3].
Formularea matematică a problemei
În formă generală, problema programării stochastice poate fi formulată astfel: unde:
- — vectorul variabilelor de decizie (soluțiilor) care trebuie determinate.
- — mulțimea soluțiilor admisibile pentru , definită prin constrângeri deterministe.
- — vectorul aleator care reprezintă parametrii incerți ai problemei (de exemplu, cererea, prețurile, condițiile meteorologice).
- — funcția obiectiv, a cărei valoare depinde atât de decizia luată , cât și de realizarea vectorului aleator .
- — operatorul valorii așteptate, calculat după distribuția de probabilitate a vectorului .
Principiul fundamental care stă la baza modelelor stochastice multi-etapă este principiul non-anticipativității (engl. non-anticipativity principle). Acesta stipulează că deciziile luate la orice etapă pot depinde doar de informațiile disponibile până în acel moment și nu pot „privi în viitor\"[2].
Problema în două etape cu recurs
Cel mai răspândit model este problema în două etape cu recurs (engl. two-stage stochastic program with recourse)[1]. Procesul de luare a deciziilor este împărțit în două etape:
- Prima etapă: Se ia o decizie „aici și acum\" (here-and-now) — se determină vectorul . Această decizie trebuie luată înainte ca realizarea concretă a vectorului aleator să fie cunoscută.
- A doua etapă: După ce evenimentul aleator s-a produs, se ia o decizie de corecție sau de recurs (recourse decision) — vectorul , orientat spre minimizarea consecințelor negative sau valorificarea oportunităților favorabile apărute ca urmare a combinației dintre decizia din prima etapă și rezultatul .
Matematic, problema de programare liniară stochastică în două etape este formulată astfel: cu constrângerile primei etape: . Aici — funcția de recurs (recourse function), reprezentând valoarea optimă a problemei din a doua etapă: unde — vectorul aleator care include parametrii și ; iar și — parametri deterministici[2].
Proprietăți cheie și teoreme
- Convexitate: Unul dintre rezultatele fundamentale ale teoriei este că, pentru problema de programare liniară stochastică în două etape, funcția de recurs așteptată este o funcție convexă. Această proprietate are o importanță deosebită, deoarece garantează că problema globală a primei etape este o problemă de programare convexă, pentru care există metode eficiente de rezolvare și optimul global coincide cu cel local[1].
- Echivalentul determinist: Dacă vectorul aleator are un număr finit de realizări posibile (scenarii) cu probabilitățile , atunci problema programării stochastice poate fi reformulată ca o singură problemă de optimizare deterministă de dimensiuni mari. În acest caz, valoarea așteptată este înlocuită de o sumă ponderată pe toate scenariile. Cu toate acestea, dimensiunea acestei probleme crește liniar cu numărul de scenarii, ceea ce conduce la „blestemul dimensionalității\" și face această abordare imposibil de rezolvat computațional pentru un număr mare de scenarii[2].
Comparație cu optimizarea robustă
Programarea stochastică este una dintre mai multe abordări ale optimizării în condiții de incertitudine. Diferența sa esențială față de optimizarea robustă constă în modul de modelare a incertitudinii și în criteriul de optimalitate[4].
| Criteriu | Optimizare stochastică | Optimizare robustă |
|---|---|---|
| Reprezentarea incertitudinii | Parametrii sunt variabile aleatoare cu o distribuție de probabilitate cunoscută | Parametrii aparțin unei mulțimi de incertitudine date; distribuția nu este necesară |
| Criteriul de optimalitate | Optimizarea valorii așteptate a funcției obiectiv | Optimizarea în cel mai defavorabil scenariu (minimax) |
| Caracterul soluției | Politică optimă „în medie\", poate fi inadmisibilă pentru scenarii rare | Soluție garantat admisibilă pentru toate realizările; poate fi conservatoare |
Exemple
- Problema vânzătorului de ziare (engl. newsvendor problem): Problemă clasică de gestionare a stocurilor, în care un vânzător trebuie să decidă ce cantitate de marfă să achiziționeze, fără a cunoaște cererea viitoare exactă. Soluția echilibrează riscul pierderilor din surplus cu riscul pierderii profitului din cauza deficitului.
- Problema fermierului: Un fermier decide câte hectare de teren să aloce diferitelor culturi pe o suprafață totală, fără a cunoaște condițiile meteorologice viitoare, care influențează productivitatea. După ce condițiile meteorologice devin cunoscute, fermierul poate lua măsuri de corecție (de exemplu, să vândă surplusul sau să cumpere recolta lipsă de pe piață)[5].
Vezi și
- Programare matematică
- Cercetarea operațională
- Optimizare robustă
- Programare dinamică
- Teoria controlului
Note
- ↑ 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]