Стохастическое программирование - Stochastic programming

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

Двухэтапные задачи

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

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

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

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

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

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

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

Предположение о распределении

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

Дискретность

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

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

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

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

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

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

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

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

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

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

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

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

Построение сценария

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

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

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

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

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

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

Статистические выводы

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

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

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

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

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

Согласованность оценок SAA

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

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

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

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

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

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

Предположим, что образец это i.i.d. и зафиксировать точку . Тогда выборочная средняя оценка , из , беспристрастен и имеет дисперсию , где предполагается быть конечным. Более того, по Центральная предельная теорема у нас есть это

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

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

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

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

Приложения и примеры

Биологические приложения

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

Экономические приложения

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

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

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

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

где в период богатство дан кем-то

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

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

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

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

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

Аналогично на этапах , нужно решить проблему

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

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

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

и оптимальное значение

для .

Программные инструменты

Языки моделирования

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

  • ЦЕЛИ - поддерживает определение задач ИП
  • EMP SP (Расширенное математическое программирование для стохастического программирования) - модуль GAMS создан для облегчения стохастического программирования (включает ключевые слова для параметрических распределений, случайных ограничений и мер риска, таких как Ценность под угрозой и Ожидаемый дефицит ).
  • SAMPL - набор расширений к AMPL специально разработан для выражения стохастических программ (включает синтаксис для случайных ограничений, интегрированных случайных ограничений и Надежная оптимизация проблемы)

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

Смотрите также

использованная литература

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

дальнейшее чтение

внешние ссылки