Оптимизация стохастических моделей

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

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

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

Для оптимизации с переменным количеством репликаций в одной итерации задаются минимальное и максимальное количество репликаций. За одну итерацию оптимизатор OptQuest всегда выполняет заданное минимальное количество репликаций. Необходимость выполнения дополнительных репликаций определяется оптимизатором. Прекращение выполнения дополнительных репликаций произойдет в одном из следующих случаев:


Панель свойств оптимизационного эксперимента. Секция Репликации

 Чтобы запланировать выполнение фиксированного числа репликаций за одну итерацию
  1. Выберите эксперимент в панели Проекты.
  2. Перейдите в секцию Репликации панели Свойства.
  3. Установите флажок Использовать репликации.
  4. Выберите опцию Фиксированное количество репликаций.
  5. Задайте количество репликаций в поле Кол-во репликаций за итерацию.
 Чтобы запланировать выполнение переменного числа репликаций за одну итерацию
  1. Выберите эксперимент в панели Проекты.
  2. Перейдите в секцию Репликации панели Свойства.
  3. Установите флажок Использовать репликации.
  4. Выберите опцию Переменное кол-во репликаций (останов после выполнения минимального кол-ва репликаций, при достижении доверительного интервала).
  5. Задайте минимальное количество репликаций в поле Минимальное кол-во репликаций.
  6. Задайте максимальное количество репликаций в поле Максимальное кол-во репликаций.
  7. В поле Доверительная вероятность задайте значение доверительной вероятности для получаемых значений целевой функции. Доверительная вероятность показывает, с какой вероятностью случайный ответ попадет в доверительный интервал. Для простоты можно понимать её как точность выборки. Как правило, используется 95%, но в тех случаях, когда высокая точность не нужна, вероятностью можно пожертвовать и понизить её уровень до 90% и даже до 85%. И наоборот, чем большую выборку может себе позволить исследователь, тем выше можно установить точность полученных данных. Доверительный интервал можно понимать как погрешность, задает размах части кривой распределения по обе стороны от выбранной точки, куда могут попадать ответы.
  8. В поле Относительный уровень ошибки задайте значение от 0 до 1, определяющее размер доверительного интервала, который нас будет устраивать в качестве условия прекращения выполнения дополнительных репликаций для текущей итерации. Интервал считается как ("текущее среднее значение" - "текущее среднее значение" * относительный уровень ошибки, "текущее среднее значение" + "текущее среднее значение" * относительный уровень ошибки).
Более подробную информацию о доверительном интервале вы можете найти, например, здесь.