close

Вход

Забыли?

вход по аккаунту

?

Makarov Lihtcinder Golubnichaya imitacionnoe modelirovanie v srede anylogic metod ukazaniya po vypolneniyu lab rabot 2018

код для вставкиСкачать
ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
Федеральное государственное бюджетное образовательное
учреждение высшего образования
«ПОВОЛЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ТЕЛЕКОММУНИКАЦИЙ И ИНФОРМАТИКИ»
Кафедра мультисервисных сетей и информационной безопасности
И.С. Макаров, Б.Я. Лихтциндер, Е.Ю. Голубничая
ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ В СРЕДЕ
ANYLOGIC
Методические указания по выполнению лабораторных работ
Самара
2018
УДК 004.438
БКК 32.972
М
Рекомендовано к изданию методическим советом ПГУТИ, протокол
№60, от 15.05.2018 г.
Рецензент:
заведующий кафедрой «Информационных систем и технологий»
Самарского университета,
д.т.н., профессор Прохоров С.А.
Макаров, И. С., Лихтциндер, Б. Я., Голубничая, Е. Ю.
М
Имитационное моделирование в среде AnyLogic: методические
указания по выполнению лабораторных работ / И. С. Макаров, Б. Я.
Лихтциндер, Е. Ю. Голубничая. – Самара: ПГУТИ, 2018. – 42 с.
Методические
указания
по
выполнению
лабораторных работ
«Имитационное моделирование в среде AnyLogic» содержат описание
четырех
лабораторных
работ,
посвященных
имитационному
моделированию
систем
массового
обслуживания
с
помощью
программного средства моделирования AnyLogic (версия – Personal
Learning Edition: для начинающих и студентов). Методические указания
разработаны в соответствии с ФГОС ВО по направлениям подготовки
10.05.02 «Информационная безопасность телекоммуникационных систем»,
10.03.01 «Информационная безопасность» и предназначены для
проведения лабораторных занятий по дисциплине «Моделирование систем
и сетей телекоммуникаций».
©, Макаров И.С., Лихтциндер Б.Я., Голубничая Е.Ю., 2018
СОДЕРЖАНИЕ
Лабораторная работа № 1 ...................................................................... 4
Лабораторная работа № 2 .................................................................... 12
Лабораторная работа № 3 .................................................................... 20
Лабораторная работа № 4 .................................................................... 39
Контрольные вопросы .......................................................................... 41
Список рекомендованной литературы ................................................ 42
3
Лабораторная работа № 1
Моделирование одноприборной системы массового
обслуживания (СМО)
1 Цель работы
Знакомство со средой имитационного моделирования AnyLogic
(изучение интерфейса, библиотеки моделирования процессов, анализ
полученных
результатов
моделирования)
путем
создания
модели
одноприборной системы массового обслуживания (СМО).
2 Задание на лабораторную работу
Разработка простейшей модели одноприборной СМО и проведение
на ее основе модельного эксперимента с целью анализа характеристик
функционирования СМО.
В ходе выполнения лабораторной работы требуется:
 разработать модель одноприборной СМО;
 проанализировать полученные результаты;
 сформулировать общие выводы по выполненным заданиям.
3 Методические указания по выполнению лабораторной работы
При первом запуске AnyLogic открывается начальная страница,
которая содержит ссылки на обучающие материалы (рис. 1.1), с которыми
необходимо
ознакомиться
перед
началом
выполнения
заданий
лабораторной работы.
1. Создание новой модели. С помощью кнопки стартового окна
«Создать модель» или команды в главном меню «Файл» > «Создать» >
«Модель» создайте новую модель, как показано на рис. 1.2. При
необходимости допускается сменить предложенный по умолчанию каталог
на иной, путем указания пути к нему в поле «Местоположение» или
4
выбрать этот каталог с помощью диалога навигации по файловой
структуре, открывающегося после нажатия на кнопку «Выбрать».
Рис. 1.1. Стартовое окно AnyLogic
Рис. 1.2. Создание новой модели
После заполнения всех полей окна «Новая модель», завершите
процесс нажатием на кнопку «Готово».
2. Создание диаграммы процесса. После успешного выполнения
предыдущего шага откроется рабочее окно проекта (рис. 1.3). В левой
части рабочей области находятся панели «Проекты» и «Палитра». В центре
рабочей области находится графический редактор диаграммы типа агента
«Main». В правой рабочей области будет отображаться панель «Свойства»,
5
используемая
для
просмотра
и
изменения
свойств
выбранного
(выделенного) в панели «Проекты» или графическом редакторе в текущий
момент элемента (или элементов) модели.
Рис. 1.3. Рабочее окно
Панель «Проекты» обеспечивает легкую навигацию по элементам
открытых в текущий момент времени моделей. В созданной модели уже
имеется один тип агента «Main» и эксперимент «Simulation». Агенты – это
главные строительные блоки модели AnyLogic. В нашем случае агент
«Main» послужит местом, где мы зададим всю логику модели: здесь мы
расположим структуру СМО (на примере модели банковского отделения)
и зададим диаграмму процесса потока заявок (клиентов). Поскольку
модель организована иерархически, то она отображается в виде дерева.
Панель «Палитра» содержит разделенные по палитрам элементы,
которые
могут быть добавлены на
диаграмму типа
агента
или
эксперимента. По умолчанию при создании новой модели в панели
«Палитра» открывается «Библиотека моделирования процессов». Другие
доступные палитры открываются нажатием левой кнопкой мыши по
соответствующей иконке на вертикальной панели слева от палитры.
В рамках данной работы основной акцент делается на библиотеку
моделирования процессов, в частности блоки «Source» (генерирует агентов
6
определенного типа, обычно используется в качестве начальной точки
диаграммы
процесса,
формализующей
поток
агентов),
«Queue»
(моделирует очередь агентов, ожидающих приема блоками, следующими
за данным в диаграмме процесса), «Delay» (задерживает агентов на
заданный период времени, тем самым моделируя функции обслуживания
прибором),
«Sink»
(уничтожает
поступивших
агентов,
обычно
используется в качестве конечной точки потока агентов (и диаграммы
процесса
соответственно)).
Таким
образом,
каждый
блок
задает
определенную операцию, которая будет производиться над проходящими
по диаграмме процесса заявками. Диаграмма процесса в AnyLogic
создается путем добавления объектов (блоков) библиотеки из палитры на
диаграмму агента, соединения их портов и изменения значений свойств
блоков в соответствии с требованиями разрабатываемой модели.
Добавьте блоки из «Библиотеки моделирования процессов» на
диаграмму и соедините их, как показано на рис. 1.4. Для этого переместите
требуемый блок из палитры в графический редактор. Данная схема
моделирует простейшую систему очереди, состоящую из источника
агентов (заявок), задержки (и очереди перед задержкой) и финального
уничтожения агентов. В процессе расположения блоков рядом друг с
другом, можно заметить, как появляются соединительные линии между
блоками. Будьте внимательны, эти линии должны соединять только порты,
находящиеся с правой или левой стороны блоков.
Рис. 1.4. Соединение блоков
7
3. Настройка параметров блоков. Чтобы изменить свойства блоков
собранной в рамках предыдущего этапа СМО, выделите блок, щелкнув по
нему мышью в графическом редакторе или в панели «Проекты»> «Main» >
«Агенты». Свойства блока откроются в панели Свойства.
В панели «Свойства» блока «source» задайте интенсивность
прибытия клиентов (заявок) в моделируемой СМО, как это показано на
рис. 1.5.
Рис. 1.5. Настройка блока «source»
В панели Свойства блока «queue» задайте максимальное число
клиентов (заявок), которое может находиться в очереди, как это показано
на рис. 1.6. Таким образом, в моделируемой СМО в очереди будет
находиться не более 17 клиентов (заявок).
Рис. 1.6. Настройка блока «queue»
В свойствах блока «delay» измените его имя на «ATM» (банковский
автомат от англ. Automated teller machine) и задайте время обслуживания в
поле «Время задержки», распределенное по треугольному закону со
средним
значением
равным
–
2.5,
минимальным
–
1.8
и
максимальным – 3.2 минутам (рис. 1.7). Функция triangular() является
8
стандартной функцией генератора случайных чисел AnyLogic. Тем не
менее,
AnyLogic
предоставляет
функции
и
других
случайных
распределений (таких как нормальное, равномерное, треугольное и др.), с
вариантами заданий, которых можно ознакомиться в справке AnyLogic
(клавиша F1).
Рис. 1.7. Настройка блока «delay»
4. Запуск модели. Перед непосредственно самим запуском модели
постройте Вашу модель с помощью кнопки панели инструментов « » или
главное меню «Модель»>«Построить» (или по нажатию клавиши F7), при
этом в рабочей области AnyLogic должен быть выбран какой-то элемент
именно этой модели. Если в модели есть какие-нибудь ошибки, то
построение не будет завершено, и в панели «Ошибки» будет выведена
информация об ошибках, обнаруженных в модели. Для исправления
ошибки необходимо перейти к ее месту двойным щелчком мыши по
ошибке в этом списке. После исправления всех ошибок и успешного
построения разработанной модели, запустите ее, путем нажатия на
соответствующую кнопку «
» панели инструментов или через главное
меню «Модель»>«Запустить» (или по нажатию клавиши F5). В случае если
в AnyLogic открыто несколько проектов, то при и запуске откроется
список всех моделей, из которого нужно выбрать эксперимент, который
Вы хотите запустить. Эксперимент разрабатываемой в рамках данной
9
лабораторной работы модели будет называться «Bank/Simulation» (рис.
1.8). Далее в открывшемся окне презентаций нажмите на кнопку
«Запустить», тем самым запустив модель и перейдя к презентации агента
верхнего уровня запущенного эксперимента (рис. 1.9). Следует заметить,
что запуская модель, происходит ее автоматическое обновление.
Рис. 1.8. Запуск модели
Рис. 1.9. Окно запуска презентации модели
Для каждой модели, созданной с помощью объектов «Библиотеки
моделирования
процессов»,
автоматически
создается
блок-схема
с
наглядной визуализацией процесса, с помощью которой Вы можете
изучить текущее состояние модели, например, длину очереди, количество
обслуженных клиентов (заявок) и т.д. Функциональные возможности
AnyLogic позволяют изменить скорость выполнения модели с помощью
кнопок панели инструментов «Замедлить»
и «Ускорить»
. Помимо
этого имеется возможность следить за состоянием любого блока
диаграммы процесса во время выполнения модели с помощью окна
инспекта этого объекта. Чтобы открыть окно инспекта, щелкните мышью
по значку блока. В окне инспекта будет отображена базовая информация
по выделенному блоку: например, для блока «queue» будет отображена
10
вместимость очереди, количество агентов, прошедших через каждый порт
объекта и т.д. (рис. 1.10).
Рис. 1.10. Выполнение разработанной СМО
4 Результаты работы
После завершения работы каждая бригада (2-3 студента) должна
подготовить отчет, содержащий титульный лист, цель работы, скриншоты
основных этапов создания модели, в том числе итоговый скриншот,
отображающий характеристики разработанной СМО, а также выводы по
полученным статистическим характеристикам. Каждый студент должен
ответить на вопросы преподавателя.
11
Лабораторная работа № 2
Графическое моделирование и анализ одноприборной
СМО
1 Цель работы
На примере схемы одноприборной СМО предыдущей работы
изучить возможности и получить практические навыки визуализации
протекающих процессов в среде AnyLogic.
2 Задание на лабораторную работу
Создание графической анимации процесса движения клиентов
(заявок)
в
очереди
с
целью
наглядного
анализа
характеристик
функционирования СМО.
В ходе выполнения лабораторной работы требуется:
 визуализировать
процесс
обслуживания
клиентов
в
виде
простейшей анимации (очереди, ведущей к банкомату);
 визуализировать процесс обслуживания клиентов в виде 3D
анимации (очереди, ведущей к банкомату);
 проанализировать полученные результаты;
 сформулировать общие выводы по выполненным заданиям.
3 Методические указания по выполнению лабораторной работы
В рамках предыдущей работы выполнялся анализ характеристик
разработанной модели с помощью диаграммы процесса, но куда удобнее
было бы иметь более наглядную визуализацию моделируемого процесса с
помощью анимации. Поскольку в исследуемой СМО не так важно
конкретное расположение объектов в пространстве, то можно добавить
чисто схематическую анимацию интересующих нас объектов – прибор и
ведущую к нему очередь.
12
1. Создание простейшей анимации. Анимация модели рисуется в той
же диаграмме (в графическом редакторе), в которой задается и диаграмма
моделируемого процесса. Нарисуйте точечный узел, обозначающий
банкомат. Для этого вначале откройте палитру «Разметка пространства»
панели «Палитра». Затем из этой палитры перенесите элемент «Точечный
узел» в графический редактор и поместите его под блок-схемой процесса
(рис. 2.1)
Рис. 2.1. Задание фигуры банкомата в виде точечного узла
Выделите щелчком точечный узел в графическом редакторе, чтобы
открыть для него панель «Свойства». Для того чтобы во время
моделирования менялся цвет нашей фигуры банкомата, введите в поле
«Цвет» выражение «ATM.size()>0?red:green», которое будет постоянно
вычисляться заново при выполнении модели. В указанном выражении
ATM – это имя блока «delay». Функция size() возвращает число человек,
обслуживаемых в данный момент времени. Если банкомат занят, то цвет
кружка будет красным, в противном случае – зеленым.
Выделите щелчком блок ATM в диаграмме процесса, чтобы открыть
его свойства. Затем в параметре «Место агентов» выберите ранее
добавленный точечный узел «point». Вы можете выбрать его в параметре
«Место агентов» из выпадающего списка подходящих объектов, щелкнув
по значку «
», или выбрать фигуру из графического редактора,
предварительно щелкнув кнопку «
» справа от параметра (в этом случае
все неподходящие объекты в графическом редакторе будут обесцвечены).
13
Рис. 2.2. Связь АТМ с точечным узлом
Далее необходимо задать фигуру анимации очереди. Нарисуйте путь,
обозначающий очередь. Для этого вначале откройте палитру «Разметка
пространства» панели «Палитра». Двойным щелчком выделите элемент
«Путь», чтобы перейти в режим рисования. Теперь Вы можете рисовать
путь точка за точкой, последовательно щелкая мышью в тех точках
диаграммы, куда Вы хотите поместить вершины линии (рис. 2.3). Чтобы
завершить рисование, добавьте последнюю точку пути двойным щелчком
мыши.
Рис. 2.3. Добавление пути, обозначающего очередь
Откройте панель «Свойства» блока «queue». Затем выберите путь
«path», который мы только нарисовали в параметре «Место агентов» (рис.
2.4) , по аналогии со связью точечного узла в блок АТМ.
Рис. 2.4. Связь блока «queue» с элементом «Путь»
Теперь Вы можете запустить модель (клавиша F5) и изучить ее
поведение. Для ускорения работы модели, переключитесь в режим
виртуального времени, щелкнув мышью по кнопке «
14
» панели
инструментов. В режиме виртуального времени модель выполняется
максимально быстро, без привязки модельного времени к реальному.
После запуска модели в окне презентации будет отображаться
простейшая анимация – банкомат и ведущая к нему очередь клиентов (рис.
2.5). Цвет фигуры банкомата будет меняться в зависимости от того,
обслуживается ли клиент в данный момент времени.
Рис. 2.5. Анимация нахождения клиентов в очереди
2. Создание 3D анимации. Вначале из библиотеки «Презентация»
панели «Палитра» необходимо перенести на диаграмму «3D Окно» (рис.
2.6), используемое для задания на диаграмме агента области, в которой во
время запуска модели будет отображаться трехмерная анимация этой
модели.
Рис. 2.6. Добавление в графическую область объекта «3D Окно»
15
Поместите область 3D окна туда, где Вы хотите видеть 3D анимацию
во время запуска модели. Затем запустите модель и опробуйте навигацию
по сцене трехмерной анимации. Для этого щелкните кнопку панели
инструментов «Показать область» и выберите [window3d] (рис. 2.7).
Рис. 2.7. Запуск 3D анимации
Попробуйте «подвигаться» по трехмерной сцене с помощью
описанных ниже команд навигации.
Функция
Действие
1. Нажмите левую кнопку мыши в области 3D
окна
и
держите
ее
нажатой.
Перемещение сцены
2.
Передвиньте
мышь
в
направлении
перемещения.
1. Нажмите клавишу Alt и держите ее нажатой.
2. Нажмите левую кнопку мыши в области 3D
Поворот сцены
окна
и
держите
ее
нажатой.
3. Передвиньте мышь в направлении вращения.
Приближение/отдаление Покрутите колесо мыши от/на себя в области
сцены
3D окна.
Теперь необходимо задать фигуру клиента банка. По умолчанию
клиенты в нашей модели обозначались цветными точками и отображались
цветными цилиндрами в 3D анимации. Чтобы задать нестандартный тип
клиента и выбрать для него соответствующую фигуру анимации,
необходимо создать новый тип агента. Для этого откройте «Библиотеку
16
моделирования процессов» в панели «Палитра» и перенесите элемент «Тип
агента» в графический редактор (рис. 2.8).
Рис. 2.8. Добавление нового агента в графическую область
Откроется диалоговое окно «Мастера создания агентов» на шаге
«Создание нового типа агента». Введите «Customer» в поле «Имя нового
типа», оставьте выбранной опцию «Создать новый тип агента «с нуля»»
(рис. 2.9). Нажмите кнопку «Далее».
Рис. 2.9. Создание нового типа агента
Выберите опцию «3D» для типа анимации и фигуру анимации
«Человек» из списка 3D фигур (рис. 2.10). Далее нажмите «Готово», после
чего диаграмма нового агента Customer откроется автоматически. Вы
можете найти 3D фигуру «Человек» в начале координат. Далее настройте
использование нового типа агента в блок-схеме, для этого на диаграмме
процесса «Main» выделите блок «source» в графическом редакторе. В
свойствах блока «source» выберите тип агента Customer в выпадающем
списке параметра «Новый агент» (рис. 2.11).
17
Рис. 2.10. Анимация агента
Рис. 2.11. Настройка нового типа агента в блоке «source»
Запустите модель, чтобы увидеть анимацию клиентов в очереди (рис.
2.12).
Рис. 2.12. Анимация клиентов в очереди
Затем необходимо добавить фигуру (объект) банкомата, для этого
откройте палитру «3D Объекты» в панели «Палитра». Перенесите 3D
фигуру «Банкомат» из секции палитры «Супермаркет» в графический
редактор и поместите ее на точечный узел (рис. 2.13). Если на данном
этапе запустить модель и проверить 3D анимацию в режиме просмотра
window3d, то можно заметить, что банкомат стоит не той стороной по
направлению к очереди клиентов, поэтому необходимо развернуть его в
18
правильную сторону. Для этого выделите 3D объект банкомата ATM в
графическом редакторе и откройте секцию свойств «Расположение».
Выберите из выпадающего списка параметра «Поворот Z, °» – «0»
градусов. Запустите модель, чтобы убедиться, что фигура банкомата стоит
«лицом» к клиентам (рис. 2.14).
Рис. 2.13. Добавление фигуры банкомата
Рис. 2.14. 3D анимация клиентов в очереди к банкомату
4 Результаты работы
После завершения работы каждая бригада (2-3 студента) должна
подготовить отчет, содержащий титульный лист, цель работы, выводы по
проделанной работе и скриншоты основных этапов создания модели, в том
числе итоговые скриншоты, отображающие два вида созданной анимации.
Каждый студент должен ответить на вопросы преподавателя.
19
Лабораторная работа № 3
Моделирование двухканальной СМО
1 Цель работы
На
примере
моделирования
двухканальной
СМО
закрепить
полученные навыки в рамках предыдущих лабораторных работ. Получить
навыки настройки сбора статических данных, построения диаграмм и
гистограмм с целью анализа статистических данных имитационной
модели.
2 Задание на лабораторную работу
В рамках данной лабораторной работы необходимо выполнить
имитационное моделирование работы банковского отделения, в которое
приходят посетители, часть из которых обращается к банкомату, а часть к
работникам банка (клеркам). То есть в рамках разрабатываемой модели
первый канал – очередь клиентов к банкомату, а второй – очередь
банковским служащим. В ходе выполнения лабораторной работы
требуется:
 разработать
модель
двухканальной
СМО,
на
примере
банковского отделения;
 визуализировать
процесс
«движения»
(распределения)
посетителей банковского отделения (заявок);
 настроить сбор статистики использования ресурсов;
 проанализировать
полученные
результаты,
путем
анализа
построенных диаграмм и гистограмм;
 сделать выводы по выполненным заданиям.
3 Методические указания по выполнению лабораторной работы
В текущей работе, созданная в рамках предыдущих работ модель
будет преобразована, путем добавления в нее еще одного вида
20
обслуживания (банковских служащих). Данную задачу можно было бы
решить по аналогии с моделированием работы банкомата с помощью
блока «Delay». Однако куда более удобным представляется моделирование
с
помощью
специального
блока
«Библиотеки
моделирования
процессов» – «Resource Pool», который может потребоваться заявке для
выполнения какой-то задачи. В моделируемой СМО посетителям
банковского отделения (заявкам) необходимо получить помощь у
банковских служащих (ресурсов). Следует заметить, что в каждый момент
времени ресурс может быть занят только одной заявкой (клиентом).
1. Добавление нового типа обслуживания. Откройте «Библиотеку
моделирования процессов» в панели «Палитра» и перенесите на диаграмму
процесса «Main» блок «Service» (рис. 3.1), который захватывает для агента
заданное количество ресурсов, задерживает агента, а затем освобождает
захваченные им ресурсы.
Рис. 3.1. Добавление блока «service»
Перейдите в панель Свойства блока «service». Измените параметры
объекта, как показано на рис. 3.2. Ко всем служащим будет вести одна
общая очередь, максимальное количество человек в которой равно 20.
Будем
полагать,
что
время
обслуживания
имеет
треугольное
распределение с минимальным значением – 4, средним – 6, и
максимальным – 8 минут.
21
Рис. 3.2. Настройка блока «service»
2.
Настройка
распределения
заявок.
Откройте
«Библиотеку
моделирования процессов» в панели «Палитра» и перенесите на диаграмму
процесса «Main» блок «SelectOutput» в свободное место между блоками
«source» и «queue». Для этого возможно потребуется переместить
несколько блоков, чтобы увеличить длину соединителя между ними.
«SelectOutput» является блоком принятия решения. В зависимости от
заданного условия, агент, поступивший в объект, будет поступать на один
из двух выходных портов объекта. Затем выделите блок «selectOutput» в
диаграмме процесса. В панели «Свойства» (параметр «Выход true
выбирается») этого блока выберите опцию «При выполнении условия».
Убедитесь, что в поле «Условие» стоит выражение «randomTrue( 0.5 )». В
этом случае к служащим и банкомату будет приходить примерно равное
количество
посетителей
банковского
отделения.
Соедините
блоки
«selectOutput» и «service» с другими блоками так, как показано на рис. 3.3.
Рис. 3.3. Соединение блоков
22
3. Добавление ресурсов. Перенесите блок «Resource Pool» из
«Библиотеки моделирования процессов» панели «Палитра» на диаграмму
процесса «Main» (рис. 3.4). Как было отмечено выше блок «ResourcePool»
задает ресурсы определенного типа (в создаваемой модели это будут
банковские служащие). Поместите его, например, под блоком «service» и
перейдите в панель Свойства. Настройте блок «ResourcePool», как
показано на рис. 3.5.
Рис. 3.4. Добавление блока «ResourcePool»
Рис. 3.5. Настройка блока «ResourcePool»
Блок
«ResourcePool»
указывается
в
объектах,
использующих
ресурсы, в создаваемой модели – это блок «Service». Поэтому необходимо
изменить свойства блока «service» диаграммы процесса (рис. 3.6).
Выделите блок «service» и перейдите в панель «Свойства». Выберите
опцию «Ресурсы одного типа» в параметре «Захватить ресурсы». Затем
укажите блок «tellers», который мы добавили на диаграмму, в параметре
«Тип ресурсов».
23
Рис. 3.6. Изменение свойств блока «service»
4. Настройка анимации. Поскольку в структуру модели были
внесены изменения, то изменения нужны и в настройках анимации.
Необходимо задать область для ожидания и место обслуживания клиентов
банковскими служащими.
Задайте фигуру разметки для электронной очереди (то есть место
ожидания клиентами), используя прямоугольный узел. Вначале откройте
палитру «Разметка пространства» панели «Палитра». Двойным щелчком
выделите
элемент
«Прямоугольный
узел»
палитры
«Разметка
пространства», чтобы перейти в режим рисования. Щелкните мышью в
графическом редакторе, чтобы задать вершину верхнего левого угла, затем
переместите прямоугольник, не отпуская кнопки мыши. Отпустите, когда
прямоугольный узел имеет нужную форму. Вы можете редактировать
фигуру и после того, как ее рисование завершено. Назовите эту область
«waitingArea» (рис. 3.7).
Рис. 3.7. Изменение свойств элемента «Прямоугольный узел»
24
Выделите щелчком блок «service» в диаграмме процесса и перейдите
в его свойства. Выберите добавленный прямоугольный узел «waitingArea»
в параметре «Место агентов (queue)», как показано на рис. 3.8.
Рис. 3.8. Изменение свойств блока «service»
Задайте фигуру разметки места обслуживания клиентов. Клиентам
банка требуется место, на котором они могли бы находиться во время
обслуживания у банковских служащих. Изобразите такую область, также с
использованием элемента «Прямоугольный узел». Назовите эту область
«customerPlaces» (рис. 3.9).
Рис. 3.9. Изменение свойств элемента «Прямоугольный узел»
В настоящей работе для задания местоположения тех клиентов,
которые
будут
использоваться
обслуживаться
аттракторы.
у
банковских
Выделите
узел
служащих
будут
«customerPlaces»
в
графическом редакторе и щелкните кнопку «Аттракторы» в свойствах
узла. В открывшемся окне «Аттракторы» укажите число аттракторов «4» в
параметре «Количество аттракторов», затем нажмите кнопку «OK». После
чего четыре аттрактора должны появиться в узле «customerPlaces» на
равном расстоянии друг от друга (рис. 3.10). Далее необходимо сослаться
на эту фигуру в диаграмме процесса. Щелкните блок «service» и перейдите
25
в панель «Свойства» этого блока. Выберите нарисованный узел
«customerPlaces» в параметре «Место агентов (delay)» (рис. 3.11).
Рис. 3.10. Добавление аттракторов
Рис. 3.11. Изменение свойств блока «service»
Банковским служащим также требуется место, где они могли бы
находиться во время обслуживания клиентов. Изобразите такую область,
также с использованием элемента «Прямоугольный узел». Назовите эту
область tellerPlaces (рис. 3.12).
Рис. 3.12. Изменение свойств элемента «Прямоугольный узел»
Для
задания
местоположения
банковских
служащих
также
используются аттракторы. Выделите узел «tellerPlaces» в графическом
редакторе и щелкните кнопку «Аттракторы» в свойствах узла. В
26
открывшемся окне «Аттракторы» укажите число аттракторов «4» в
параметре «Количество аттракторов», затем нажмите кнопку «OK».
Нетрудно заметить, что четыре аттрактора появились в узле «tellerPlaces»
на равном расстоянии друг от друга, но они направлены не в ту сторону.
Выделите все аттракторы, зажав клавишу Shift и щелкнув по ним мышью,
и затем выберите «+180.0» в параметре «Ориентация» секции свойств
«Местоположение и размер» (рис. 3.13).
Рис. 3.13. Добавление аттракторов
Выберите блок «tellers» на диаграмме процесса «Main» и перейдите в
его свойства. Выберите нарисованный узел «tellerPlaces» в параметре
«Базовое местоположение (узлы)» (рис. 3.14).
Рис. 3.14. Изменение свойств блока «tellers»
Вы
можете
запустить
модель
и
наблюдать,
как
клиенты
обслуживаются у банкоматов и проходят к банковским служащим.
Далее добавим в модель 3D фигуры банковских служащих. Для этого
необходимо создать новый тип ресурсов для анимации служащих.
27
Откройте «Библиотеку моделирования процессов» в панели «Палитра».
Перенесите элемент «Тип ресурса» в графический редактор (рис. 3.15).
Рис. 3.15. Добавление нового типа ресурсов
Откроется диалоговое окно Мастера создания агентов на шаге
«Создание нового типа агента». Введите «Teller» в поле «Имя нового
типа», оставьте опцию «Создать новый тип агента «с нуля»» выбранной
(рис. 3.16). Нажмите кнопку «Далее».
Рис. 3.16. Создание нового типа агентов
Выберите опцию «3D» для типа анимации и фигуру анимации
«Служащий» из списка 3D фигур (рис. 3.17). Далее нажмите на кнопку
«Готово». Новая диаграмма «Teller» автоматически откроется. Вы можете
найти 3D фигуру «Служащий» в начале координат. Переключитесь
обратно на диаграмму «Main».
28
Рис. 3.17. Анимация агента
Настройте использование нового типа ресурсов в блок-схеме. На
диаграмме «Main», выделите блок «tellers» в графическом редакторе.
Выберите тип ресурсов «Teller» в выпадающем списке параметра «Новый
ресурс» (рис. 3.18).
Рис. 3.18. Изменение свойств блока «tellers»
Запустите
модель,
чтобы
увидеть
получившуюся
анимацию
банковских служащих. Добавьте столы для клерков. Для этого откройте
палитру «3D Объекты» в панели «Палитра». Перенесите четыре 3D
фигуры «Стол» из секции палитры «Офис» в графический редактор и
поместите их в узел «tellerPlaces». Расположите столы на аттракторах, так
как аттракторы обозначают место, где стоят банковские служащие (рис.
3.19).
Рис. 3.19. Добавление фигур анимации
29
Не трудно заметить, что добавленные столы стоят не той стороной к
служащим. Выделите все столы методом Shift-щелчок и перейдите в их
свойства. В секции «Расположение» измените параметр «Поворот Z, °» на
«90.0» градусов. При необходимости, выровняйте расположение всех
восьми аттракторов и столов. Теперь запустите модель и просмотрите в 3D
анимации, как некоторые
клиенты идут к банкомату, а
другие
обслуживаются у столов служащих (рис. 3.20).
Рис. 3.20. 3D анимация клиентов в банковском отделении
5.
Сбор
статистики
использования
ресурсов.
AnyLogic
предоставляет пользователю удобные средства для сбора статистики по
работе блоков диаграммы процесса. Объекты «Библиотеки моделирования
процессов» самостоятельно производят сбор основной статистики. Все,
что нужно сделать – это включить сбор статистики для объекта. Например,
можно просмотреть интересующую статистику (скажем, статистику
занятости банкомата и длины очереди) с помощью диаграмм.
Добавьте диаграмму для отображения средней занятости банкомата.
Откройте палитру «Статистика», содержащую элементы сбора данных и
статистики, а также диаграммы для визуализации данных и результатов
30
моделирования. Перенесите элемент «Столбиковая диаграмма» из палитры
«Статистика» на диаграмму (рис. 3.21).
Рис. 3.21. Добавление элемента «Столбиковая диаграмма»
Перейдите в секцию «Данные» свойств столбиковой диаграммы.
Щелкните кнопку «
», чтобы задать данные для отображения в
диаграмме. Измените значение поля «Заголовок» на «ATM utilization»
(рис. 3.22). Затем в поле «Значение» введите «ATM.statsUtilization.mean()».
Здесь ATM – это имя блока «delay». У каждого блока «delay» есть
встроенный набор данных «statsUtilization», занимающийся сбором
статистики использования этого объекта. Функция mean() возвращает
среднее из всех измеренных этим набором данных значений. Также можно
использовать и другие методы сбора статистики, такие, как min()или max().
Рис. 3.22. Изменение свойств столбиковой диаграммы
Перейдите в секцию «Легенда» панели «Свойства». Измените
расположение легенды относительно диаграммы, как это показано на рис.
3.23. Затем измените ее размер, как это показано на рис. 3.24.
31
Рис. 3.23. Изменение свойств столбиковой диаграммы
Рис. 3.24. Изменение размеров столбиковой диаграммы
Аналогичным образом добавьте еще одну столбиковую диаграмму
для отображения средней длины очереди. Измените ее размер так, как
показано на рис. 3.25.
Рис. 3.25. Изменение размеров столбиковой диаграммы
Далее перейдите в секцию «Внешний вид» панели «Свойства» и
выберите последнюю опцию параметра «Направление столбцов», чтобы
столбцы столбиковой диаграммы росли влево. Также измените положение
легенды в секции «Легенда».
32
Добавьте
элемент
данных,
который
будет
отображаться
на
диаграмме, в секции «Данные». В поле «Заголовок» задайте «Queue
length», а в поле «Значение» задайте «queue.statsSize.mean()» (рис. 3.26).
Здесь «statsSize» – это имя объекта типа «статистика» StatisticsContinuous,
производящего сбор статистики размера очереди объекта «queue».
Рис. 3.26. Изменение свойств элемента «Данные»
Запустите модель и пронаблюдайте за занятостью банкомата и
средней длиной очереди с помощью созданных диаграмм (рис. 3.27).
Рис. 3.27. Сбор статистики использования ресурсов
6.
Сбор
статистики
по
времени
обслуживания.
Помимо
настроенной в рамках предыдущего этапа статистики использования
33
ресурсов, также необходимо иметь данные, о том, сколько времени клиент
проводит в банковском отделении и сколько времени он теряет, ожидая
своей очереди. Эту статистику можно собрать с помощью специальных
объектов сбора данных и отобразить собранную статистику распределения
времен обслуживания клиентов с помощью гистограмм. Для этого мы
будем использовать ранее созданный тип агента Customer. Вначале в
модель необходимо добавить два параметра.
Переключитесь в панель «Проекты». Дважды щелкните по типу
агента «Customer», чтобы открыть его диаграмму. Необходимо создать
параметры на диаграмме агента «Customer», поскольку требуется
статистика клиентов по времени их обслуживания. Откройте палитру
«Системная динамика» в панели Палитра. Перенесите два элемента
«Параметр» на диаграмму «Customer». Назовите параметры «startWaiting»
и «enteredSystem», оставьте заданный по умолчанию тип «double» (рис.
3.28).
Рис. 3.28. Добавление параметров
Добавьте элементы сбора статистики по времени ожидания клиентов
и времени пребывания клиентов в системе. Эти элементы будут
запоминать соответствующие значения времен для каждого клиента и
предоставят пользователю стандартную статистическую информацию:
среднее,
минимальное,
максимальное
из
измеренных
значений,
среднеквадратичное отклонение, доверительный интервал для среднего и
т.д.). Чтобы добавить объект сбора данных гистограммы на диаграмму,
перенесите элемент «Данные гистограммы» с секции «Сбор данных»
34
палитры «Статистика» на диаграмму процесса «Main» и измените его
свойства, как показано на рис. 3.29.
Рис. 3.29. Изменение свойств элемента «Данные гистограммы»
Создайте
еще
один
элемент
сбора
данных
гистограммы.
Ctrl+перенесите (Mac OS: Cmd+перенесите) только что созданный объект
данных гистограммы, чтобы создать его копию. Измените значение
параметра «Имя» этого элемента на «timeInSystemDistr» (рис. 3.30).
Рис. 3.30. Изменение свойств элемента «Данные гистограммы»
Далее необходимо изменить свойства блоков диаграммы процесса.
Измените свойства блока «source», как показано на рис. 3.31. Убедитесь,
что тип агента «Customer» указан в поле «Новый агент». Этот объект
35
должен
продолжать
создавать
агентов
типа
«Customer».
Введите
«agent.enteredSystem = time();» в поле действия «При выходе» в секции
«Действия». Этот код будет сохранять время создания агента-клиента в
переменной «enteredSystem» типа агента «Customer». Функция time()
возвращает текущее значение модельного времени.
Рис. 3.31. Изменение свойств блока «source»
Измените свойства блока «queue», как показано на рис. 3.32. Введите
«agent.startWaiting = time();» в поле действия «При входе» в секции
«Действия». Этот код запоминает время начала ожидания клиентом его
очереди на обслуживание в переменной «startWaiting» типа агента
«Customer». Введите «waitTimeDistr.add(time() - agent.startWaiting);» в поле
действия «При выходе». Этот код добавляет время, в течение которого
клиент ожидал обслуживания, в объект сбора данных «waitTimeDistr».
Рис. 3.32. Изменение свойств блока «queue»
Измените свойства блока «sink», как показано на рис. 3.33. Введите
«timeInSystemDistr.add(time()-agent.enteredSystem);» в поле действия «При
входе» в секции «Действия». Этот код добавляет полное время пребывания
клиента в банковском отделении в объект сбора данных гистограммы
«timeInSystemDistr».
36
Рис. 3.33. Изменение свойств блока «sink»
Запустите модель и просмотрите статистику с помощью окон
инспекта. Открыть окно инспекта можно, щелкнув мышью по значку
объекта
сбора
данных.
Здесь
будут
видны
стандартные
для
статистического анализа данные, приведенные для значений, собранных в
данном объекте сбора статистики. Теперь необходимо добавить на
диаграмму нашего типа агента гистограммы, которые будут отображать
собранную временную статистику. Добавьте две гистограммы для
отображения распределений времен ожидания клиента и пребывания
клиента в системе. Чтобы добавить гистограмму на диаграмму процесса
«Main», перенесите элемент «Гистограмма» из палитры «Статистика» в то
место графического редактора, куда Вы хотите ее поместить (рис. 3.34).
При необходимости измените ее размер.
Рис. 3.34. Добавление гистограммы
Далее необходимо указать какой элемент сбора данных хранит
отображаемые на гистограмме данные: в секции «Данные» свойств
гистограммы щелкните мышью по кнопке «Добавить данные» и измените
«Заголовок» на «Waiting time distribution». Введите в поле Данные имя
соответствующего элемента «waitTimeDistr» (рис. 3.35).
37
Рис. 3.35. Изменение свойств гистограммы
Добавьте еще одну гистограмму и расположите ее под ранее
добавленной. Измените «Заголовок» на «Time in system distribution». В
поле «Данные» введите имя элемента, хранящего данные, которые будут
отображаться на гистограмме «timeInSystemDistr». Далее запустите
модель. Включите режим виртуального времени и понаблюдайте за тем,
какой вид примет распределение времен ожидания и пребывания клиента в
системе.
Рис. 3.36. Модель банковского отделения
4 Результаты работы
После завершения работы каждая бригада (2-3 студента) должна
подготовить отчет, содержащий скриншоты основных этапов создания
модели, в том числе итоговый скриншот, отображающий статистические и
графические характеристики разработанной СМО, а также выводы по
полученным гистограммам и диаграммам. Каждый студент должен
ответить на вопросы преподавателя.
38
Лабораторная работа № 4
Моделирование произвольных СМО
1 Цель работы
Индивидуальный
контроль
знаний
и
умений,
полученных
студентами в процессе освоения моделирования в среде AnyLogic.
2 Задание на лабораторную работу
Пользуясь навыками, полученными в ходе выполнения предыдущих
лабораторных работ, создать аналогичную модель с внесением в нее
изменений согласно варианту выданному преподавателем (табл. 1).
В ходе выполнения лабораторной работы каждому студенту
требуется:
 разработать модель СМО согласно варианту;
 визуализировать процесс обслуживания клиентов;
 настроить сбор статистики использования ресурсов;
 настроить сбор статистики по времени обслуживания;
 проанализировать полученные результаты;
 сделать выводы по выполненным заданиям.
После завершения работы каждый студент должен подготовить
отчет, содержащий скриншоты основных этапов изменения модели, в том
числе итоговый скриншот, отображающий статистические и графические
характеристики разработанной СМО, а также выводы по полученным
гистограммам и диаграммам. Кроме того каждый студент должен уметь
продемонстрировать преподавателю на персональном компьютере порядок
выполнения работы.
39
Таблица 1
40
второго прибора
Количество ресурсов
вторым прибором
Время обслуживания
прибору
к первому или второму
Вероятность обращения
потока
Распределение входного
Вариант
Варианты заданий
1
Экспоненциальное
1/1
4±2
1
2
Экспоненциальное
1/2
6±2
2
3
Экспоненциальное
2/1
8±2
3
4
Экспоненциальное
1/3
7±2
4
5
Экспоненциальное
3/1
9±2
5
6
Нормальное
1/1
8±2
1
7
Нормальное
1/2
7±2
2
8
Нормальное
2/1
9±2
3
9
Нормальное
1/3
4±2
4
10
Нормальное
3/1
6±2
5
11
Треугольное
1/1
2±2
1
12
Треугольное
1/2
7±2
2
13
Треугольное
2/1
9±2
3
14
Треугольное
1/3
4±2
4
15
Треугольное
3/1
6±2
5
16
Равномерное
1/1
4±2
1
17
Равномерное
1/2
6±2
2
18
Равномерное
2/1
7±2
3
19
Равномерное
1/3
8±2
4
20
Равномерное
3/1
9±2
5
Контрольные вопросы
1.
Дайте определение понятию «имитационное моделирование».
2.
Сформулируете определение понятию «дискретно-событийное
моделирование».
3.
Перечислите основные преимущества среды имитационно
моделирования AnyLogic.
4.
Поясните структуру рабочего окна проекта в AnyLogic.
5.
Поясните структуру панели «Проекты» в AnyLogic.
6.
Поясните структуру панели «Палитра» в AnyLogic.
7.
Перечислите блоки AnyLogic необходимые для создания
блок-схемы простейшей одноприборной СМО и дайте им краткую
характеристику.
8.
Перечислите блоки AnyLogic необходимые для создания
двухканальной СМО и дайте им краткую характеристику.
9.
Поясните назначение блоков «Библиотеки моделирования
процессов» панели «Палитра» в AnyLogic.
10. Поясните процесс настойки модельного времени эксперимента.
11. Поясните процесс запуска модели в AnyLogic.
12. Поясните процесс добавления нового агента в AnyLogic.
13. Поясните процесс добавления нового параметра в AnyLogic.
14. В чем суть 3D анимации?
15. Объясните порядок создания анимации в AnyLogic.
16. Поясните порядок создания анимации нахождения клиентов в
очереди в системе AnyLogic.
17. Поясните процесс добавления 3D объектов.
18. Поясните порядок настройки сбора статистики в AnyLogic.
19. Поясните процесс построения гистограмм в AnyLogic.
20. Поясните процесс построения диаграмм в AnyLogic.
41
Список рекомендованной литературы
1. Карташевский, В. Г. Основы теории массового обслуживания
[Текст] / В. Г. Карташевский. – М.: Горячая линия–Телеком, 2013. – 130 с.
2. Официальный сайт AnyLogic [Электронный ресурс]. – Режим
доступа: https://www.anylogic.ru, свободный. – Загл. с экрана.
3. Боев,
В.
Д.
Компьютерное
моделирование:
пособие
для
практических занятий, курсового и дипломного проектирования в
AnyLogic 7 [Электронный ресурс] / В. Д. Боев. – Электрон. текстовые дан.
–
СПб.:
ВАС,
2014.
–
Режим
доступа:
https://www.anylogic.ru/
upload/Books_ru/Compyuternoe_modelirovanie_v_AnyLogic_7_Boev_VD.pdf,
свободный. – Загл. с экрана.
4. Мезенцев, К. Н. Моделирование систем в среде AnyLogic 6.4.1:
учебное пособие [Электронный ресурс] / К. Н. Мезенцев; под редакцией
А.Б.Николаева. – Электрон. текстовые дан. – М: МАДИ, 2011. – Часть 2. –
Режим
доступа:
https://www.anylogic.ru/upload/Books_ru/Mezenczev_
Systems_Simulation_In_AnyLogic_6_%28Part_2%29.pdf, свободный. – Загл.
с экрана.
5. Киселева, М. В. Имитационное моделирование систем в среде
AnyLogic: учебно-методическое пособие [Электронный ресурс] / М. В.
Киселева. – Электрон. текстовые дан. – Екатеринбург: УГТУ – УПИ, 2009.
– Режим доступа: http://simulation.su/uploads/files/default/2009-uch-methodposob-kiseleva-1.pdf, свободный. – Загл. с экрана.
6. Ремезова, Е. М. Имитационное моделирование в среде AnyLogic:
лаб. практикум [Электронный ресурс] / Е. М. Ремезова. – Электрон.
текстовые дан. ‒ Владимир: Изд-во ВлГУ, 2017. – Режим доступа:
http://e.lib.vlsu.ru/bitstream/123456789/6305/1/01653.pdf, свободный. – Загл.
с экрана.
42
Документ
Категория
Без категории
Просмотров
0
Размер файла
2 161 Кб
Теги
modelirovanie, vypolnenie, makarov, lab, metod, 2018, anylogic, golubnichaya, lihtcinder, rabota, ukazaniya, imitacionnoe, sreda
1/--страниц
Пожаловаться на содержимое документа