
мод сис / V.Boev-GPSSvsAnyLogic
.pdf
верОбр — вероятность обработки документов; верОтказа — вероятность не обработки документов.
AnyLogic-модель построена. Выделите в окне Проекты Simulation:Main. На странице Основные установите Фиксиро-
ванное начальное число (воспроизводимые прогоны) и Начальное число: 1055. Перейдите на страницу Модельное время,
выберите из списка Остановить: В заданное время. Введите Конечное время: 600000.0 (модельное время увеличено в 10 000).
Запустите модель. Вы должны получить результаты, приведенные на рис. 9.2.
Рис. 9.2. Результаты решения задачи в AnyLogic
Вероятность не обработки документов верОтказа=0,345, то есть отличается от полученного аналитическим путѐм решения на 0,001. Хотя это отличие можно отнести на счѐт округления до трѐх знаков после запятой.
Теперь измените количество сотрудников с трѐх на шесть. Для этого выделите элемент Параметр с именем колСотр и установите по умолчанию 6. Всѐ остальные данные оставьте без изменения. Запустите модель. Вероятность не обработки документов верОтказа=0,051, то есть также отличается от полученного аналитическим путѐм решения на 0,001.
391
Сравнительную оценку можно было бы провести и при проведении расчѐтов с большим числом знаков после запятой, то есть с большей точностью.
9.4. Решение задачи в GPSS World
Программа с комментариями GPSS-модели обработки документов приведена ниже.
; Модель обработки документов в организации
T1 EQU 4 ; Среднее время поступления документов
T2 EQU 12 ; Среднее время обработки одного документа
Sotr STORAGE |
|
3 ; |
Количество сотрудников |
VrMod EQU |
|
60 ; |
Время моделирования |
; Сегмент имитации обработки документов |
|||
GENERATE |
(Exponential(1053,0,T1)); Источники |
||
документов |
|
|
|
Met1 GATE SNF |
Sotr,Met2 ; Не заняты ли сотрудники? |
||
ENTER |
Sotr |
; Нет, тогда занять |
|
ADVANCE(Exponential(1053,0,T2)) ; обработка |
|||
LEAVE |
Sotr |
; Освободить сотрудника |
|
Met3 TERMINATE |
; |
Учѐт обработанных документов |
|
Met2 TERMINATE |
; |
Учѐт необработанных документов |
;Сегмент задания времени моделирования и расчёта результатов
GENERATE VrMod
TEST E TG1,1,Met4 ; Если TG1=1, то расчет
;Вероятностей
SAVEVALUE VerObr,(N$Met3/N$Met1); обработки SAVEVALUE VerOtk,(1-X$VerObr) ; необработки
Met4 TERMINATE 1
START 10000 ; задание количества прогонов
При трѐх сотрудниках в группе обработки документов вероятность необработки (VEROTK) такая же, как и при аналитическом решении задачи, что видно из фрагмента отчѐта:
STORAGE CAP.REM.MIN.MAX. ENTRIES AVL. |
AVE.C. UTIL. |
|||||||
SOTR |
3 |
2 |
0 |
3 |
98161 |
1 |
1.963 |
0.654 |
SAVEVALUE |
|
|
|
|
RETRY |
VALUE |
|
|
VEROBR |
|
|
|
|
0 |
|
0.654 |
|
VEROTK |
|
|
|
|
0 |
|
0.346 |
|
При шести сотрудниках результаты моделирования также совпадают с результатами аналитического решения задачи.
392
Таким образом, в обеих системах имитационного моделирования получены одинаковые результаты, которые совпадают с достаточно высокой точностью с результатами аналитического решения задачи.
Замечание. Данная задача приводится автором на занятиях обучаемым и как поучительный пример для принятия решений на практике по причине, которая заключается в следующем.
Вполне логичным представляется первичное назначение группы сотрудников для обработки документов. Действительно, за один час в организацию поступают 15 документов. И три сотрудника также могут обработать за один час 15 документов. Каждый сотрудник по 5 документов.
Но элемент случайного их поступления, а также принятые условия, что обрабатывается свободным сотрудником последний поступивший документ, и вероятность обработки должна быть не менее 95 %, вносят свои коррективы, в которых мы убедились, решая эту задачу и аналитически, и в двух системах моделирования.
393

ГЛАВА 10. РЕШЕНИЕ ОБРАТНЫХ ЗАДАЧ В ANYLOGIC
Решение обратных задач средствами GPSS World было рассмотрено в главах 1 и 2. Теперь приступим к решению этих же за-
дач в AnyLogic.
10.1. Определение среднего времени обработки группы запросов сервером
1.В п. 1.2.6 была сохранена модель простой эксперимент с именем Сервер Обратная задача. Откройте еѐ.
2.Удалите из модели объекты презентации и вывода статистики. Она должна иметь объекты, показанные на рис. 10.1.
3.Добавьте два элемента Параметр и один элемент Простая переменная. Дайте имена, как на рис. 10.1.
4.Тип элемента количествоЗапросов int. В поле Значение по умолчанию: введите 29. Это целая часть количества обработанных запросов при решении прямой задачи.
5.Элемент коэффициент как и в GPSS-модели предназначен для учѐта дробной части количества обработанных запросов (см.
п. 1.3). Его тип double. Введите в поле Значение по умолча-
нию: 1.
6.Тип элемента времяВыполнения double.
7.Выделите блок sink и в поле Действие при входе: введите
Java код:
if( sink.in.count() == количествоЗапросов ){
времяВыполнения = time(); stopSimulation();
}
Рис. 10.1. Простой эксперимент Сервер Обратная задача
394

Этот код сравнивает заданное количество запросов в группе (в данном случае 29) с обработанным количеством запросов. При равенстве заданных и обработанных запросов переменной времяВыполнения присваивается величина текущего модельного времени, то есть время обработки заданной группы запросов в одном прогоне модели, и простой эксперимент останавливается.
Для выполнения заданного количества прогонов создайте эксперимент варьирования параметров.
1.В панели Проект щелкните правой кнопкой мыши элемент модели и из контекстного меню выберите Создать эксперимент.
2.В появившемся диалоговом окне из списка Тип экспери-
мента: выберите Варьирование параметров.
3.В поле Имя оставьте имя эксперимента, рекомендованное системой.
4.Щелкните кнопку Готово. Появится страница Основные панели Свойства (рис. 10.2). Установите свойства согласно рис. 10.2.
5.Перейдите на страницу Дополнительные. В поле Код
инициализации эксперимента: введите data.reset();. А в поле Действие после прогона модели:
data.add( time()/коэффициент );
Рис. 10.2. Страница основные эксперимента варьирования параметров
395

Рис. 10.3. Интерфейс Эксперимента варьирования параметров
6.В эксперименте Варьирование параметров, как вы пом-
ните, в отличие от эксперимента Оптимизация интерфейс создает пользователь.
7.Создайте интерфейс, показанный на рис. 10.3. Здесь вы видите гистограмму, которая будет отображать время выполнения группы запросов.
8.Перетащите элемент Гистограмма из палитры Статистика на диаграмму активного класса. На странице Основные установите флажок Отображать среднее. Оставьте флажок Отобра-
жать плотность вероятности.
9.Щѐлкните Добавить данные.
10.Установите Заголовок: Время выполнения. Набор данных: data. Цвет плотности вер-ти: silver. Цвет линии среднего: crimson. Установите Не обновлять автоматически.
11.Перетащите элемент Данные гистограммы. В поле Имя:
введите data. Остальные свойства оставьте установленными по умолчанию.
12. Добавьте элемент text и введите Среднее значение:.
396

13. Добавьте второй элемент text. Оставьте имя, предложенное системой. Перейдите на страницу Динамические и в поле Текст:
введите data.mean().
14. Построение Эксперимента варьирование параметров
завершено. Запустите его. При наличии ошибок, устраните их. Далее проведѐм по четыре эксперимента в AnyLogic и GPSS
World. Результаты одного из экспериментов при количестве прогонов 29,16 показаны на рис. 10.4. Результаты всех экспериментов сведены в табл. 10.1.
Для первого эксперимента исходные данные были введены в
ходе предыдущих построений. Для экспериментов 2…4 данные вводятся из табл. 10.1. Например, для второго эксперимента значение по умолчанию параметра количествоЗапросов заменяется на 291, а значение по умолчанию параметра коэффициент учѐта дробной части — на 10 на диаграмме простого эксперимента.
Рис. 10.4. Вариант результатов решения обратной задачи
397

