Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 1 в Anylogic.docx
Скачиваний:
59
Добавлен:
17.09.2019
Размер:
1.29 Mб
Скачать

Создание оптимизационного эксперимента по нахождению оптимального числа постов мойки

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

Anylogic обладает широкими возможностями в проведении экспериментов.

В панели Проект, щелкните правой кнопкой мыши по элементу модели и выберите Создать|Эксперимент из контекстного меню. 

В появившемся окне выберите Оптимизационный эксперимент и нажмите Готово.

Выберите в окне Проект элемент Optimization: Main:

В закладке Основные свойств Оптимизационного эксперимента введите целевую функцию. У нас это benefit () .

Небольшой нюанс: при создании эксперимента целевая функция будет принадлежать в внутреннему классу Anylogic’а root. Таким образом имя целевой функции должно быть записано как root.benefit() .Поставьте галочку на условии Максимизировать целевую функцию при оптимизации.

Т.к. в нашем эксперименте будет меняться только параметр N, задайте его тип как дискретный с минимальным значением равным 1, максимальным 10 и шагом 1.

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

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

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

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

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

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

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

 Чтобы запланировать выполнение нескольких репликаций за одну итерацию

  1. Выберите эксперимент в панели Проект.

  2. Перейдите на страницу Репликации панели Свойства.

  3. Установите флажок Использовать репликации

 Чтобы запланировать выполнение фиксированного числа репликаций за одну итерацию

  1. Выберите опцию Фиксированное количество репликаций.

  2. Задайте количество репликаций в поле Кол-во репликаций за итерацию.

Запустите оптимизационный эксперимент.

Как можно видеть, оптимальное число постов на станции равно трем.