Stochastické programování

From Systems analysis Wiki
Jump to navigation Jump to search

Stochastické programování (angl. stochastic programming) — odvětví matematického programování, které vyvíjí modely a metody řešení optimalizačních úloh v podmínkách neurčitosti, kdy některé parametry modelu nejsou přesně známy, ale jsou představeny jako náhodné veličiny se známými nebo odhadnutými pravděpodobnostními rozděleními[1][2].

Na rozdíl od deterministických úloh, kde jsou všechna data považována za zadané konstanty, stochastické programování si klade za cíl nalézt řešení (nebo politiku rozhodování), které je optimální v určitém statistickém smyslu. Nejčastěji to znamená minimalizaci nebo maximalizaci střední hodnoty účelové funkce[1]. Klíčová myšlenka spočívá v nalezení takové politiky rozhodování, která bude nejlepší „v průměru" přes všechny možné realizace náhodných parametrů, což je zvláště důležité pro úlohy, kde se rozhodnutí přijímají opakovaně za podobných podmínek (například v řízení zásob nebo energetických systémů)[3].

Matematická formulace úlohy

V obecném tvaru lze úlohu stochastického programování formulovat jako: minxX𝔼[f(x,ξ)] kde:

  • x — vektor řídících proměnných (rozhodnutí), které je třeba stanovit.
  • X — množina přípustných řešení pro x, definovaná deterministickými omezeními.
  • ξ — náhodný vektor představující nejisté parametry úlohy (například poptávka, ceny, počasí).
  • f(x,ξ) — účelová funkce, jejíž hodnota závisí jak na přijatém rozhodnutí x, tak na realizaci náhodného vektoru ξ.
  • 𝔼[] — operátor střední hodnoty, vypočítávaný podle pravděpodobnostního rozdělení vektoru ξ.

Nejdůležitějším principem, který leží v základu vícestupňových stochastických modelů, je princip nepředjímání (angl. non-anticipativity principle). Říká, že rozhodnutí přijímaná v jakékoli fázi mohou záviset pouze na informacích dostupných do daného okamžiku a nemohou „nahlížet do budoucnosti\"[2].

Dvoustupňová úloha s právem kompenzace

Nejrozšířenějším modelem je dvoustupňová úloha s právem kompenzace (angl. two-stage stochastic program with recourse)[1]. Proces rozhodování je rozdělen do dvou fází:

  1. První fáze: Je přijato rozhodnutí „tady a teď\" (here-and-now) — je stanoven vektor x. Toto rozhodnutí musí být přijato před tím, než je známa konkrétní realizace náhodného vektoru ξ.
  2. Druhá fáze: Poté, co nastala náhodná událost, je přijato opravné nebo kompenzační rozhodnutí (recourse decision) — vektor y(ξ), zaměřené na minimalizaci negativních důsledků nebo využití příznivých příležitostí vzniklých kombinací rozhodnutí první fáze x a výsledku ξ.

Matematicky je dvoustupňová úloha stochastického lineárního programování formulována následovně: minxn1{cTx+𝔼ξ[Q(x,ξ)]} při omezeních první fáze: Ax=b,x0. Zde Q(x,ξ)funkce kompenzace (recourse function), představující optimální hodnotu úlohy druhé fáze: Q(x,ξ)=minyn2{q(ξ)TyT(ξ)x+Wy=h(ξ),y0} kde ξ — náhodný vektor zahrnující parametry q(ξ),T(ξ) a h(ξ); a c,A,b a W — deterministické parametry[2].

Klíčové vlastnosti a věty

  • Konvexnost: Jedním ze základních výsledků teorie je, že pro dvoustupňovou úlohu stochastického lineárního programování je očekávaná funkce kompenzace Q(x)=𝔼ξ[Q(x,ξ)] konvexní funkcí. Tato vlastnost má zásadní význam, neboť zaručuje, že celková úloha první fáze je úlohou konvexního programování, pro niž existují efektivní metody řešení a globální optimum splývá s lokálním[1].
  • Deterministický ekvivalent: Má-li náhodný vektor ξ konečný počet možných realizací (scénářů) ξ1,,ξK s pravděpodobnostmi p1,,pK, lze úlohu stochastického programování přeformulovat jako jednu velkou deterministickou optimalizační úlohu. V tomto případě je střední hodnota nahrazena váženým součtem přes všechny scénáře. Velikost této úlohy však roste lineárně s počtem scénářů, což vede k „prokletí dimenzionality\" a činí tento přístup výpočetně nezvládnutelným pro velký počet scénářů[2].

Srovnání s robustní optimalizací

Stochastické programování je jedním z několika přístupů k optimalizaci v podmínkách neurčitosti. Jeho klíčový rozdíl od robustní optimalizace spočívá ve způsobu modelování neurčitosti a v kritériu optimality[4].

Srovnání přístupů k optimalizaci v podmínkách neurčitosti
Kritérium Stochastická optimalizace Robustní optimalizace
Reprezentace neurčitosti Parametry jsou náhodné veličiny se známým pravděpodobnostním rozdělením Parametry náleží danému množině neurčitosti, rozdělení není vyžadováno
Kritérium optimality Optimalizace střední hodnoty účelové funkce Optimalizace v nejhorším scénáři (minimax)
Charakter řešení Politika optimální „v průměru\", může být nepřípustná pro vzácné scénáře Řešení zaručeně přípustné pro všechny realizace; může být konzervativní

Příklady

  • Úloha novinářova (angl. newsvendor problem): Klasická úloha řízení zásob, kde prodejce musí rozhodnout, jaké množství zboží nakoupit, aniž zná přesnou budoucí poptávku. Řešení vyvažuje riziko ztrát z přebytků a riziko ušlého zisku z nedostatku.
  • Úloha farmáře: Farmář rozhoduje, kolik akrů půdy věnovat různým plodinám na celkové ploše, aniž zná budoucí počasí, které ovlivňuje výnosy. Poté, co je počasí známo, může farmář přijmout opravná opatření (například prodat přebytky nebo dokoupit chybějící úrodu na trhu)[5].

Viz také

  • Matematické programování
  • Operační výzkum
  • Robustní optimalizace
  • Dynamické programování
  • Teorie řízení

Poznámky

  1. 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. 2.0 2.1 2.2 2.3 Birge, J. R., & Louveaux, F. (2011). Introduction to Stochastic Programming (2nd ed.). Springer Science+Business Media.
  3. "Стохастическое программирование". Википедия. [1]
  4. Gorissen, B. L., Yanıkoğlu, İ., & den Hertog, D. (2015). A practical guide to robust optimization. Omega, 53, 124-137.
  5. Bricker, D. L. SLPwR: Farmer Problem. University of Iowa. [2]