logo

3.2.5. Оптимизация моделей в Arena

Конечной целью моделирования в Arena является оптимизация рассматриваемой системы. Очевидным способом оптимизации, в который естественным образом перетекает отладка модели, является перебор допустимых значений параметров задачи с целью поиска наилучшего решения. Однако число возможных вариантов очень быстро возрастает с увеличением числа варьируемых параметров, в результате чего такой способ оптимизации становится весьма трудоёмким. Возникает естественное желание автоматизировать этот процесс. Для этих целей служит программа OptQuest, интегрированная с Arena. Для её запуска необходимо в меню Tools выбрать команду: OptQuest for Arena.

И

Рис. 3.53. Заполнение блока Decide 2

спользуем OptQuest для оптимизации несколько изменённой модели парикмахерской по сравнению с моделью BarberShop4. Прежде мы учитывали степень удовлетворения клиента при помощи специального показателя. Теперь мы сделаем это другим путём. На практике эти два способа не исключают друг друга. Мы будем рассматривать их раздельно исключительно ради удобства. Итак, мы будем считать, что если клиент видит в очереди меньше пяти человек, то он остаётся стричься, а если в очереди 5 человек или больше, то он уходит. При этом теряется потенциальная выгода от обслуживания клиента.

Вернёмся к модели, изображённой на рис. 3.34 (BarberShop3) и сделаем следующие преобразования.

1. Заполним диалоговое окно блока Decide 2 так, как это показано на рис. 3.53.

2. Увеличим поток клиентов в два раза по сравнению с исходными данными, представленными в табл. 3.1.

3. Упростим расписание работы парикмахеров. Будем считать, что их рабочий день составляет 10 часов без перерыва и все парикмахеры работают одинаково. Тогда в блоке HairCutting надо задать Resource в качестве вида ресурса. Назовём этот ресурс Barbers, и в таблице ресурсов в ячейке Type установим параметр Based on Schedule. В графе Schedule Name запишем название расписания − BarbersSchedule, в графе Schedule Rule установим Ignore. Заполним таблицу Schedule через диалог, так, как показано на рис. 3.32.

4. Удалим ставшие лишними строки в таблицах Set, Resource и Schedule.

5. В блоке Create установим время прихода сигнала – 14 часов − для того чтобы к этому времени заведомо завершилось обслуживание клиентов.

6. Число репликаций установим равным десяти, а время одной репликации – 15 часов. Мы постарались организовать модель так, чтобы её результаты можно было сравнить с расчетами модели BarberShop4, представленной в пункте 3.2.3.

Для запуска программы OptQuest необходимо в меню Tools выбрать команду OptQuest for Arena. Если в окне программы OptQuest в меню File выбрать команду New (при загруженной модели Arena), то OptQuest начнёт взаимодействовать с текущей моделью Arena. Сначала OptQuest соберёт информацию о возможных варьируемых параметрах и целевых функциях задачи. При оптимизации модели парикмахерской после сбора информации окно OptQuest будет иметь примерно такой вид, как это представлено на рис. 3.54.

Рис. 3.54. Окно Optquest с загруженной моделью

На панели инструментов окна OptQuest, кроме пиктограмм команд, типичных для приложений Windows, можно найти следующие пиктограммы. – Status and Solutions предназначается для быстрого доступа к соответствующему окну с информацией о ходе выполнения оптимизации. Кнопки и позволяют открывать/закрывать соответственно окна с графиком и диаграммой, на которых в графическом виде отображается информация о ходе процесса оптимизации. Кнопка позволяет открывать/закрывать окно Simulation Log, в котором регистрируется подробная информация о ходе оптимизации.

Другая группа команд служит для управления процессом оптимизации. Кнопка позволяет запустить мастер заполнения окон оптимизации. Он запускается автоматически при выполнении команды New. Нажатие кнопки позволяет приступить к выполнению первого шага последовательности, запускаемой мастером оптимизации. При этом разворачивается/сворачивается окно Control Selection. Пример заполнения этого окна показан на рис. 3.55. Здесь мы должны в графе Select отметить, что мы выбираем переменную NRes в качестве контролируемого параметра.

Рис. 3.55. Заполнение окна Control Selection

Вернёмся к заполнению диалогового окна Control Selection. В представленной там таблице в строке свойств параметра NRes мы должны установить верхнюю и нижнюю границы его варьирования (Lower Bound и Upper Bound), начальное значение (Suggested Value) и тип параметра (Type) дискретный (Discrete) или непрерывный (Continuous). В случае дискретного параметра необходимо также указать шаг его изменения.

При помощи кнопки можно открыть окно Constraints. Здесь мы можем установить дополнительные ограничения на варьируемые параметры. Кнопка открывает доступ к окну Objective and Requirement Selection (рис. 3.56). В этом окне можно выбрать целевую функцию, указать, что с ней надо делать (минимизировать или максимизировать) и установить её допустимые границы. В столбце Value таблицы, представленной в окне Objective and Requirement Selection, указано, усредняются или нет представленные величины. В нашем примере мы будем максимизировать переменную Profit.

Рис. 3.56. Заполнение окна Objective and Requirement Selection

Кнопка открывает окно Options, в котором производятся установки параметров моделирования (рис. 3.57). Здесь мы установим число прогонов модели, равным ста.

Рис. 3.57. Окно установки параметров моделирования

Кнопки предназначены для запуска, приостановки и остановки процесса моделирования. Кнопка открывает диалоговое окно Sensitivity Analysis, в котором отображаются результаты анализа чувствительности найденного решения.

Запустив модель на счёт, мы можем получить значения прибыли 4 424 р. − для одного парикмахера, 6 226 р. − для двух и 5 846 р. − для трёх (ваши цифры могут быть несколько иными). В качестве оптимального решения OptQuest указывает использование труда двух парикмахеров (рис. 3.58). Примерно такие же результаты можно получить при анализе модели в Arena. Для освоения программы предлагается самостоятельно поупражняться в нахождении оптимального решения задачи о работе парикмахерской при помощи OptQuest при различных потоках посетителей.

Рис. 3.58. Результаты оптимизации

Интересно отметить, что в модели BarberShop4 значение переменной Profit монотонно убывало, а степень удовлетворённости клиентов монотонно возрастала с увеличением числа парикмахеров. Мы должны были задать некоторое соотношение этих величин, чтобы определить оптимальное число работников. В модели BarberShop5 мы можем ориентироваться только по величине прибыли.