Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В области математической оптимизации , стохастическое программирование является основой для моделирования оптимизации проблем , которые связаны с неопределенностью . Стохастический программа является задача оптимизации , в которой некоторые или все параметры задачи являются неопределенными, но следуют известные распределения вероятностей . [1] [2]Эта структура контрастирует с детерминированной оптимизацией, в которой предполагается, что все параметры задачи точно известны. Цель стохастического программирования - найти решение, которое оптимизирует некоторые критерии, выбранные лицом, принимающим решение, и соответствующим образом учитывает неопределенность параметров задачи. Поскольку многие решения в реальном мире связаны с неопределенностью, стохастическое программирование нашло применение в широком диапазоне областей, от финансов до транспорта и оптимизации энергопотребления. [3] [4]

Двухэтапные задачи [ править ]

Основная идея двухэтапного стохастического программирования заключается в том, что (оптимальные) решения должны основываться на данных, доступных на момент принятия решений, и не могут зависеть от будущих наблюдений. Двухэтапная формулировка широко используется в стохастическом программировании. Общая формулировка двухэтапной задачи стохастического программирования дается следующим образом:

где - оптимальное значение задачи второго этапа

Классические двухэтапные задачи линейного стохастического программирования можно сформулировать как

где - оптимальное значение задачи второго этапа

В такой формулировке это вектор переменной решения первого этапа, вектор переменной решения второго этапа и содержит данные задачи второго этапа. В этой формулировке на первом этапе мы должны принять решение «здесь и сейчас» до того , как станет известна реализация неопределенных данных , рассматриваемых как случайный вектор. На втором этапе, когда реализация становится доступной, мы оптимизируем свое поведение, решая соответствующую задачу оптимизации.

На первом этапе мы оптимизируем (минимизируем в приведенной выше формулировке) стоимость решения на первом этапе плюс ожидаемая стоимость (оптимального) решения на втором этапе. Мы можем рассматривать проблему второго этапа просто как проблему оптимизации, которая описывает наше предположительно оптимальное поведение, когда обнаруживаются недостоверные данные, или мы можем рассматривать ее решение как действие регресса, где член компенсирует возможную несогласованность системы и является Стоимость этого регрессного иска.

Рассматриваемая двухэтапная задача является линейной, поскольку целевые функции и ограничения линейны. Концептуально это несущественно, и можно рассматривать более общие двухэтапные стохастические программы. Например, если задача первого этапа является целочисленной, можно добавить ограничения целостности к задаче первого этапа, чтобы допустимый набор был дискретным. При необходимости также могут быть включены нелинейные цели и ограничения. [5]

Предположение о распределении [ править ]

Формулировка вышеупомянутой двухэтапной задачи предполагает, что данные второго этапа могут быть смоделированы как случайный вектор с известным распределением вероятностей (а не просто неопределенным). Это было бы оправдано во многих ситуациях. Например, это может быть информация, полученная из исторических данных, и распределение существенно не изменится за рассматриваемый период времени. В таких ситуациях можно надежно оценить требуемое распределение вероятностей, и оптимизация в среднем может быть оправдана законом больших чисел . Другой пример:могут быть реализациями имитационной модели, выходы которой являются стохастическими. Эмпирическое распределение выборки можно использовать как приближение к истинному, но неизвестному распределению выходных данных.

Дискретизация [ править ]

Чтобы решить двухэтапную стохастическую задачу численно, часто необходимо предположить, что случайный вектор имеет конечное число возможных реализаций, называемых сценариями , скажем , с соответствующими массами вероятностей . Тогда математическое ожидание в целевой функции задачи первого этапа можно записать как сумму:

и, более того, двухэтапная задача может быть сформулирована как одна большая задача линейного программирования (это называется детерминированным эквивалентом исходной задачи, см. раздел § Детерминированный эквивалент стохастической задачи ).

Когда имеется бесконечное (или очень большое) количество возможных реализаций, стандартный подход состоит в том, чтобы представить это распределение по сценариям. При таком подходе возникают три вопроса, а именно:

  1. Как строить сценарии, см. § Построение сценария ;
  2. Как решить детерминированный эквивалент. Оптимизаторы, такие как CPLEX , GLPK и Gurobi, могут решать большие линейные / нелинейные задачи. Сервер NEOS [6], расположенный в Университете Висконсина, Мэдисон , обеспечивает свободный доступ ко многим современным решателям. Структура детерминированного эквивалента особенно удобна для применения методов декомпозиции [7], таких как декомпозиция Бендерса или декомпозиция сценария;
  3. Как измерить качество полученного решения относительно «истинного» оптимума.

Эти вопросы не являются независимыми. Например, количество построенных сценариев повлияет как на управляемость детерминированного эквивалента, так и на качество полученных решений.

Стохастическое линейное программирование [ править ]

Стохастическая линейная программа является частным случаем классической двухэтапной стохастической программы. Стохастический LP построен из набора многопериодных линейных программ (LP), каждая из которых имеет одинаковую структуру, но несколько разные данные. Двухпериодная Л.П., представляющий сценарий, может рассматриваться как имеющий следующий вид:

Векторы и содержат переменные первого периода, значения которых нужно выбрать немедленно. Вектор содержит все переменные для последующих периодов. Ограничения включают только переменные первого периода и одинаковы во всех сценариях. Другие ограничения включают переменные более поздних периодов и в некоторых отношениях различаются от сценария к сценарию, отражая неопределенность в отношении будущего.

Обратите внимание, что решение двухпериодной LP эквивалентно принятию сценария во втором периоде без неопределенности. Чтобы учесть неопределенности на втором этапе, следует присвоить вероятности различным сценариям и решить соответствующий детерминированный эквивалент.

Детерминированный эквивалент стохастической задачи [ править ]

С конечным числом сценариев двухэтапные стохастические линейные программы могут быть смоделированы как большие задачи линейного программирования. Эта формулировка часто называется детерминированной эквивалентной линейной программой или сокращенно до детерминированного эквивалента. (Строго говоря, детерминированный эквивалент - это любая математическая программа, которую можно использовать для вычисления оптимального решения на первом этапе, поэтому они будут существовать и для непрерывных распределений вероятностей, когда можно представить затраты на втором этапе в некоторой замкнутой форме.) Например, чтобы сформировать детерминированный эквивалент приведенной выше стохастической линейной программы, мы назначаем вероятность каждому сценарию . Затем мы можем минимизировать ожидаемое значение цели с учетом ограничений всех сценариев:

У нас есть разные векторы переменных более позднего периода для каждого сценария . Однако переменные первого периода и одинаковы для каждого сценария, потому что мы должны принять решение для первого периода, прежде чем мы узнаем, какой сценарий будет реализован. В результате ограничения, включающие только и должны быть указаны только один раз, в то время как остальные ограничения должны быть указаны отдельно для каждого сценария.

Построение сценария [ править ]

На практике можно было бы построить сценарии, узнав мнение экспертов о будущем. Количество построенных сценариев должно быть относительно небольшим, чтобы полученный детерминированный эквивалент мог быть решен с разумными вычислительными затратами. Часто утверждают, что решение, оптимальное для использования только нескольких сценариев, обеспечивает более гибкие планы, чем решение, предполагающее только один сценарий. В некоторых случаях такое утверждение можно проверить путем моделирования. Теоретически некоторые меры гарантии того, что полученное решение решает исходную проблему с разумной точностью. Обычно в приложениях только оптимальное решение первого этапа имеет практическое значение, поскольку почти всегда «истинная» реализация случайных данных будет отличаться от набора построенных (сгенерированных) сценариев.

Предположим, что он содержит независимые случайные компоненты, каждая из которых имеет три возможных реализации (например, будущие реализации каждого случайного параметра классифицируются как низкие, средние и высокие), тогда общее количество сценариев равно . Такой экспоненциальный рост количества сценариев затрудняет разработку моделей с использованием экспертных оценок даже для разумных размеров . Ситуация становится еще хуже, если некоторые случайные компоненты имеют непрерывное распределение.

Выборка Монте-Карло и метод приближения среднего значения выборки (SAA) [ править ]

Распространенным подходом к уменьшению набора сценариев до приемлемого размера является использование моделирования Монте-Карло. Предположим, общее количество сценариев очень велико или даже бесконечно. Предположим далее , что мы можем создать образец из репликаций случайного вектора . Обычно предполагается, что выборка является независимой и одинаково распределенной (iid sample). Для данной выборки функция ожидания аппроксимируется средним значением выборки.

и, следовательно, проблема первой стадии дается формулой

Эта формулировка известна как метод приближения выборочного среднего . Проблема SAA является функцией рассматриваемой выборки и в этом смысле случайна. Для данного образца проблема ССА имеет тот же вид , как двухступенчатый стохастическую задача линейного программирования со сценариями ., , Взятая с той же вероятностью .

Статистический вывод [ править ]

Рассмотрим следующую задачу стохастического программирования

Вот непустое замкнутое подмножество , - случайный вектор, распределение вероятностей которого поддерживается на множестве , и . В рамках двухэтапного стохастического программирования задается оптимальное значение соответствующей задачи второго этапа.

Предположим, что это правильно определено и имеет конечные значения для всех . Это означает, что для каждого значение почти наверняка конечно.

Предположим , что мы имеем выборку из реализаций случайного вектора . Эту случайную выборку можно рассматривать как исторические данные наблюдений или ее можно сгенерировать методами выборки Монте-Карло. Тогда мы можем сформулировать соответствующее приближение выборочного среднего

По закону больших чисел имеем, что при некоторых условиях регулярности поточечно сходится с вероятностью 1 к as . Более того, при мягких дополнительных условиях сходимость равномерная. У нас также есть , то есть, является несмещенной оценкой . Следовательно, естественно ожидать, что оптимальное значение и оптимальные решения задачи SAA сходятся к своим аналогам истинной задачи как .

Согласованность оценок SAA [ править ]

Предположим, что допустимый набор задач SAA фиксирован, т. Е. Не зависит от выборки. Пусть и будет оптимальным значением и набором оптимальных решений, соответственно, истинной проблемы, и пусть и будет оптимальным значением и набором оптимальных решений, соответственно, проблемы SAA.

  1. Позвольте и быть последовательностью (детерминированных) действительных значений функций. Следующие два свойства эквивалентны:
    • для любой и любой сходящейся к нему последовательности следует, что сходится к
    • функция непрерывна и сходится к равномерно на любом компактном подмножестве
  2. Если цель задачи SAA сходится к цели истинной задачи с вероятностью 1, как , равномерно на допустимом множестве . Тогда сходится к с вероятностью 1 при .
  3. Предположим, что существует такой компакт , что
    • множество оптимальных решений истинной задачи непусто и содержится в
    • функция конечнозначна и непрерывна на
    • последовательность функций сходится к с вероятностью 1, так как равномерно по
    • для достаточно больших множество непусто и с вероятностью 1
тогда и с вероятностью 1 при . Обратите внимание, что обозначает отклонение набора от набора , определяемое как

В некоторых ситуациях оценивается допустимый набор задач SAA, затем соответствующая задача SAA принимает вид

где является подмножеством в зависимости от выборки и, следовательно, является случайным. Тем не менее, результаты согласованности оценок SAA все же могут быть получены при некоторых дополнительных предположениях:

  1. Предположим, что существует такой компакт , что
    • множество оптимальных решений истинной задачи непусто и содержится в
    • функция конечнозначна и непрерывна на
    • последовательность функций сходится к с вероятностью 1, так как равномерно по
    • для достаточно больших множество непусто и с вероятностью 1
    • если и сходится с вероятностью 1 к точке , то
    • для некоторой точки существует последовательность такая, что с вероятностью 1.
тогда и с вероятностью 1 при .

Асимптотика оптимального значения SAA [ править ]

Предположим, что образец iid, и зафиксируем точку . Затем образец средняя оценка , из , является несмещенной и имеет дисперсию , где , как предполагается, конечно. Более того, по центральной предельной теореме имеем

где означает сходимость в распределении и имеет нормальное распределение со средним значением и дисперсией , записанное как .

Другими словами, имеет асимптотически нормальное распределение, то есть для больших , имеет приблизительно нормальное распределение со средним и дисперсией . Это приводит к следующему (приблизительному) доверительному интервалу в% для :

где (здесь обозначает cdf стандартного нормального распределения) и

- выборочная оценка дисперсии . То есть ошибка оценки (стохастически) порядка .

Приложения и примеры [ править ]

Биологические приложения [ править ]

Стохастическое динамическое программирование часто используется для моделирования поведения животных в таких областях, как поведенческая экология . [8] [9] Эмпирические испытания моделей оптимального кормления , переходов жизненного цикла , таких как окрыление у птиц и откладка яиц у паразитоидных ос, показали ценность этого метода моделирования в объяснении эволюции принятия поведенческих решений. Эти модели, как правило, многоступенчатые, а не двухступенчатые.

Экономические приложения [ править ]

Стохастическое динамическое программирование - полезный инструмент для понимания принятия решений в условиях неопределенности. Одним из примеров является накопление основного капитала в условиях неопределенности; часто он используется экономистами по ресурсам для анализа биоэкономических проблем [10], в которые входит неопределенность, например, погода и т. д.

Пример: многоступенчатая оптимизация портфеля [ править ]

Ниже приводится пример финансового многоэтапного стохастического программирования. Предположим, что у нас есть начальный капитал для инвестирования в активы. Предположим далее, что нам разрешено время от времени балансировать наш портфель, но без вливания в него дополнительных денежных средств. В каждом периоде мы принимаем решение о перераспределении текущего состояния между активами. Пусть будут начальные суммы, вложенные в n активов. Мы требуем, чтобы все они были неотрицательными и чтобы уравнение баланса соблюдалось.

Рассмотрим общую прибыль за каждый период . Это формирует случайный векторный процесс . В определенный период времени мы можем перебалансировать портфель, указав суммы, инвестированные в соответствующие активы. В то время доходность первого периода была реализована, поэтому разумно использовать эту информацию при принятии решения о ребалансировке. Таким образом, решения второго этапа, во время , на самом деле являются функциями реализации случайного вектора , т . Точно так же во время решение является функцией доступной информации, предоставленной историей случайного процесса до времени . Последовательность функций , сбудучи постоянным, определяет реализуемую политику процесса принятия решений. Говорят , что такая политика является возможной , если она удовлетворяет модель ограничение с вероятностью 1, то есть, неотрицательность ограничение , , и баланс ограничений богатства,

где в периоде богатство выражается

который зависит от реализации случайного процесса и решений до времени .

Предположим, цель состоит в том, чтобы максимизировать ожидаемую полезность этого богатства в последний период, то есть рассмотреть проблему

Это многоступенчатая задача стохастического программирования, в которой этапы пронумерованы от до . Оптимизация выполняется по всем реализуемым и выполнимым политикам. Для завершения описания проблемы также необходимо определить распределение вероятностей случайного процесса . Это можно сделать разными способами. Например, можно построить конкретное дерево сценариев, определяющее эволюцию процесса во времени. Если на каждом этапе случайный возврат каждого актива может иметь два продолжения, независимо от других активов, то общее количество сценариев равно

Чтобы написать уравнения динамического программирования , рассмотрите вышеупомянутую многоступенчатую задачу назад во времени. На последнем этапе известна и выбрана реализация случайного процесса . Следовательно, необходимо решить следующую задачу

где обозначает условное ожидание данного . Оптимальное значение указанной выше задачи зависит от и обозначено .

Аналогично поэтапно следует решать задачу

оптимальное значение которого обозначено . Наконец, на этапе решается задача

Поэтапный независимый случайный процесс [ править ]

Для общего распределения процесса решить эти уравнения динамического программирования может быть сложно. Ситуация значительно упрощается, если процесс независим от стадий, т.е. не зависит (стохастически) от for . В этом случае, соответствующие условные ожидания становятся безусловным ожиданием, и функция , не зависит от . То есть оптимальное значение задачи

и является оптимальным значением

для .

Программные инструменты [ править ]

Языки моделирования [ править ]

Все задачи дискретного стохастического программирования могут быть представлены на любом языке алгебраического моделирования , вручную реализуя явную или неявную непредвзятость, чтобы гарантировать, что полученная модель учитывает структуру информации, доступной на каждом этапе. Экземпляр задачи SP, созданный общим языком моделирования, имеет тенденцию к довольно большому росту (линейно по количеству сценариев), и его матрица теряет структуру, присущую этому классу задач, которая в противном случае могла бы быть использована во время решения конкретные алгоритмы декомпозиции. Начинают появляться расширения языков моделирования, специально разработанные для SP, см .:

  • AIMMS - поддерживает определение проблем SP
  • EMP SP (расширенное математическое программирование для стохастического программирования) - модуль GAMS, созданный для облегчения стохастического программирования (включает ключевые слова для параметрических распределений, случайных ограничений и мер риска, таких как Value at risk и Expected Shortfall ).
  • SAMPL - набор расширений AMPL, специально разработанный для выражения стохастических программ (включает синтаксис для случайных ограничений, интегрированных случайных ограничений и проблем робастной оптимизации )

Они оба могут генерировать формат уровня экземпляра SMPS, который в неизбыточной форме передает структуру проблемы решателю.

См. Также [ править ]

  • Корреляционный разрыв
  • EMP для стохастического программирования
  • Энтропийная ценность под угрозой
  • FortSP
  • Язык алгебраического моделирования SAMPL
  • Оптимизация сценария
  • Стохастическая оптимизация
  • Выбор портфеля с ограниченными шансами

Ссылки [ править ]

  1. ^ Шапиро, Александр; Дентчева, Даринка ; Рущинский, Анджей (2009). Лекции по стохастическому программированию: моделирование и теория (PDF) . Серия MPS / SIAM по оптимизации. 9 . Филадельфия, Пенсильвания: Общество промышленной и прикладной математики (SIAM). Общество математического программирования (MPS). С. xvi + 436. ISBN 978-0-89871-687-0. Руководство по ремонту  2562798 .
  2. ^ Бирдж, Джон Р .; Луво, Франсуа (2011). «Введение в стохастическое программирование» . Серия Springer по исследованию операций и финансовому инжинирингу . DOI : 10.1007 / 978-1-4614-0237-4 . ISSN 1431-8598 . 
  3. ^ Стейн В. Уоллес и Уильям Т. Зиемба (ред.). Приложения стохастического программирования . Серия книг MPS-SIAM по оптимизации 5, 2005.
  4. ^ Приложения стохастического программирования описаны на следующем веб-сайте, Stochastic Programming Community .
  5. ^ Шапиро, Александр; Филпотт, Энди. Учебник по стохастическому программированию (PDF) .
  6. ^ http://www.neos-server.org/neos/
  7. ^ Рущинский, Анджей ; Шапиро, Александр (2003). Стохастическое программирование . Справочники по исследованию операций и науке об управлении. 10 . Филадельфия: Эльзевьер . п. 700. ISBN 978-0444508546.
  8. ^ Mangel, M. & Clark, CW 1988. Динамическое моделирование в поведенческой экологии. ISBN Princeton University Press 0-691-08506-4 
  9. ^ Хьюстон, A. I & McNamara, JM 1999. Модели адаптивного поведения: подход, основанный на состоянии . ISBN издательства Кембриджского университета 0-521-65539-0 
  10. ^ Ховитт, Р., Мсанги, С., Рейно, А и К. Кнапп. 2002. "Использование полиномиальных приближений для решения задач стохастического динамического программирования: или подход" Бетти Крокер "к SDP". Рабочий документ факультета сельского хозяйства и экономики природных ресурсов Калифорнийского университета в Дэвисе.

Дальнейшее чтение [ править ]

  • Джон Р. Бирж и Франсуа В. Луво. Введение в стохастическое программирование . Springer Verlag, Нью-Йорк, 1997.
  • Калл, Питер; Уоллес, Стейн В. (1994). Стохастическое программирование . Серия Wiley-Interscience по системам и оптимизации. Чичестер: John Wiley & Sons, Ltd., стр. Xii + 307. ISBN 0-471-95158-7. Руководство по ремонту  1315300 .
  • Г. Ч. Pflug: Оптимизация стохастических моделей. Интерфейс между моделированием и оптимизацией . Клувер, Дордрехт, 1996.
  • Андраш Прекопа . Стохастическое программирование. Kluwer Academic Publishers, Дордрехт, 1995.
  • Анджей Рущинский и Александр Шапиро (редакторы) (2003) Стохастическое программирование . Справочники по исследованию операций и науке об управлении, Vol. 10, Эльзевир.
  • Шапиро, Александр; Дентчева, Даринка ; Рущинский, Анджей (2009). Лекции по стохастическому программированию: моделирование и теория (PDF) . Серия MPS / SIAM по оптимизации. 9 . Филадельфия, Пенсильвания: Общество промышленной и прикладной математики (SIAM). Общество математического программирования (MPS). С. xvi + 436. ISBN 978-0-89871-687-0. Руководство по ремонту  2562798 .
  • Стейн В. Уоллес и Уильям Т. Зиемба (редакторы) (2005). Приложения стохастического программирования . Серия книг MPS-SIAM по оптимизации 5
  • Кинг, Алан Дж .; Уоллес, Стейн В. (2012). Моделирование с помощью стохастического программирования . Серия Springer по исследованию операций и финансовому инжинирингу. Нью-Йорк: Спрингер. ISBN 978-0-387-87816-4.

Внешние ссылки [ править ]

  • Домашняя страница сообщества стохастического программирования