Стохастично програмиране
Стохастично програмиране (англ. stochastic programming) — дял на математическото програмиране, разработващ модели и методи за решаване на оптимизационни задачи в условия на неопределеност, когато някои параметри на модела не са известни точно, а са представени като случайни величини с известни или оценени вероятностни разпределения[1][2].
За разлика от детерминираните задачи, при които всички данни се считат за зададени константи, стохастичното програмиране си поставя за цел да намери решение (или политика за вземане на решения), което е оптимално в някакъв статистически смисъл. Най-често това означава минимизиране или максимизиране на математическото очакване на целевата функция[1]. Ключовата идея се състои в намирането на такава политика за вземане на решения, която ще бъде най-добра „средно" по всички възможни реализации на случайните параметри, което е особено актуално за задачи, при които решения се вземат многократно в сходни условия (например в управлението на запасите или енергийните системи)[3].
Математическа постановка на задачата
В общ вид задачата на стохастичното програмиране може да бъде формулирана като: където:
- — вектор от управляващи променливи (решения), които трябва да бъдат определени.
- — множеството от допустими решения за , определено от детерминирани ограничения.
- — случаен вектор, представящ неопределените параметри на задачата (например търсене, цени, метеорологични условия).
- — целева функция, чиято стойност зависи както от приетото решение , така и от реализацията на случайния вектор .
- — оператор на математическото очакване, изчисляван по вероятностното разпределение на вектора .
Най-важният принцип, лежащ в основата на многоетапните стохастични модели, е принципът на непредвосхищане (англ. non-anticipativity principle). Той гласи, че решенията, вземани на всеки етап, могат да зависят само от информацията, налична към този момент, и не могат да „гледат в бъдещето\"[2].
Двуетапна задача с право на компенсация
Най-разпространеният модел е двуетапната задача с право на компенсация (англ. two-stage stochastic program with recourse)[1]. Процесът на вземане на решения е разделен на два етапа:
- Първи етап: Взема се решение „тук и сега\" (here-and-now) — определя се векторът . Това решение трябва да бъде взето, преди да стане известна конкретната реализация на случайния вектор .
- Втори етап: След като случайното събитие е настъпило, се взема коригиращо или компенсационно решение (recourse decision) — векторът , насочено към минимизиране на отрицателните последствия или използване на благоприятните възможности, възникнали в резултат на съчетанието на решението от първия етап и изхода .
Математически двуетапната задача на стохастичното линейно програмиране се формулира по следния начин: при ограничения от първия етап: . Тук е функцията на компенсация (recourse function), представляваща оптималната стойност на задачата от втория етап: където — случаен вектор, включващ параметрите и ; а и — детерминирани параметри[2].
Ключови свойства и теореми
- Изпъкналост: Един от фундаменталните резултати на теорията е, че за двуетапната задача на стохастичното линейно програмиране очакваната функция на компенсация е изпъкнала функция. Това свойство е от огромно значение, тъй като гарантира, че общата задача от първия етап е задача на изпъкнало програмиране, за която съществуват ефективни методи за решаване и глобалният оптимум съвпада с локалния[1].
- Детерминиран еквивалент: Ако случайният вектор има краен брой възможни реализации (сценарии) с вероятности , то задачата на стохастичното програмиране може да бъде преформулирана като една голяма детерминирана оптимизационна задача. В този случай математическото очакване се замества от претеглена сума по всички сценарии. Въпреки това размерът на тази задача нараства линейно с броя на сценариите, което води до „проклятието на размерността\" и прави такъв подход изчислително неразрешим при голям брой сценарии[2].
Сравнение с робастна оптимизация
Стохастичното програмиране е един от няколкото подхода за оптимизация в условия на неопределеност. Ключовото му отличие от робастната оптимизация се състои в начина на моделиране на неопределеността и критерия за оптималност[4].
| Критерий | Стохастична оптимизация | Робастна оптимизация |
|---|---|---|
| Представяне на неопределеността | Параметрите са случайни величини с известно вероятностно разпределение | Параметрите принадлежат на зададено множество на неопределеност, разпределение не се изисква |
| Критерий за оптималност | Оптимизация на математическото очакване на целевата функция | Оптимизация в най-лошия сценарий (минимакс) |
| Характер на решението | Политика, оптимална „средно\", може да бъде недопустима за редки сценарии | Решение, гарантирано допустимо за всички реализации; може да бъде консервативно |
Примери
- Задачата на вестникопродавача (англ. newsvendor problem): Класическа задача за управление на запасите, при която продавачът трябва да реши какво количество стока да закупи, без да знае точното бъдещо търсене. Решението балансира между риска от загуби поради излишъци и риска от пропусната печалба поради дефицит.
- Задачата на фермера: Фермерът решава колко акра земя да отдели за различни култури на обща площ, без да знае бъдещото време, което влияе върху добива. След като времето стане известно, фермерът може да предприеме коригиращи действия (например да продаде излишъците или да закупи допълнително необходимата реколта на пазара)[5].
Вижте също
- Математическо програмиране
- Изследване на операциите
- Робастна оптимизация
- Динамично програмиране
- Теория на управлението
Бележки
- ↑ 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]