Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Имитационное моделирование в AnyLogic 7. В 2 частях. Часть 2

Покупка
Артикул: 798501.01.99
Доступ онлайн
300 ₽
В корзину
Работа состоит из двух частей: часть 1 — учебное пособие, часть 2 — лабораторный практикум. В первой части излагаются основы имитационного моделирования в среде AnyLogic 7. Во второй части приведены четыре лабораторных работы для бакалавров, изучающих модуль «Математическое и компьютерное моделирование». Издание предназначено для студентов всех форм обучения и аспирантов, обучающихся по техническим специальностям.
Лимановская, О. В. Имитационное моделирование в AnyLogic 7. В 2 частях. Часть 2 : лабораторный практикум / О. В. Лимановская. - Екатеринбург : Изд-во Уральского ун-та, 2017. - 104 с. - ISBN 978-5-7996-1996-1. - Текст : электронный. - URL: https://znanium.com/catalog/product/1922208 (дата обращения: 02.03.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Министерство образования и науки Российской Федерации
Уральский федеральный университет
имени первого Президента России Б. Н. Ельцина

О. В. Лимановская

Имитационное моделирование 
в AnyLogic 7

В 2 частях

Часть 2

Рекомендовано методическим советом 
Уральского федерального университета 
в качестве лабораторного практикума для студентов вуза, 
обучающихся по направлению 
09.03.04 — Программная инженерия

Екатеринбург
Издательство Уральского университета
2017

УДК 004.94(076.5)
ББК 32.972.1я
          Л58

Рецензенты:
ст. науч. сотр., канд. физ.-мат. наук О. Р. Рахманова (лаборатория электродных 
процессов ФГБУН «Институт высокотемпературной электрохимии 
УрО РАН);
Г. В. Лимановский (начальник группы поддержки сети Института высокотемпературной 
электрохимии УрО РАН)

Научный редактор доц., канд. техн. наук И. Н. Обабков

 
Лимановская, О. В.
Л58    Имитационное моделирование в AnyLogic 7. В 2 ч., ч. 2 : лабораторный 
практикум / О. В. Лимановская. — Екатеринбург : Изд-во Урал. ун-та, 
2017. — 104 с.

ISBN 978-5-7996-1996-1 (ч. 2)
ISBN 978-5-7996-1995-4

Работа состоит из двух частей: часть 1 — учебное пособие, часть 2 — лаборатор-
ный практикум. В первой части излагаются основы имитационного моделирова-
ния в среде AnyLogic 7. Во второй части приведены четыре лабораторных работы 
для бакалавров, изучающих модуль «Математическое и компьютерное моделиро-
вание». Издание предназначено для студентов всех форм обучения и аспирантов, 
обучающихся по техническим специальностям.

Рис. 160.

УДК 004.94(076.5)
ББК 32.972.1я

ISBN 978-5-7996-1996-1 (ч. 2) 
© Уральский федеральный
ISBN 978-5-7996-1995-4 
     университет, 2017

Введение

Лабораторный практикум посвящен изучению работы 
в среде имитационного моделирования AnyLogic 7, содер-
жит подробные пошаговые инструкции по созданию мо-
делей в среде AnyLogic 7. Рассмотрено создание дискрет-
но-событийных, агентных и пешеходных моделей. В ходе 
работы по созданию моделей могут возникать вопросы 
по теоретической части среды AnyLogic. Теоретические во-
просы и справочные материалы по среде AnyLogic 7 изло-
жены в учебном пособии «Имитационное моделирование 
в AnyLogic 7» (часть 1). Поэтому для работы со студентами 
в ходе выполнения ими лабораторных работ рекомендует-
ся использование обоих изданий.

Лабораторная работа № 1
Дискретно-событийное моделирование.  
Моделирование систем массового обслуживания

Задача

Промоделировать работу билетных касс. В кассы есть единая оче-
редь, которую обслуживают две основные кассы. Если основные кассы 
не справляются с потоком покупателей, то открывается третья касса. 
Поток покупателей меняется в зависимости от времени суток и стано-
вится больше в выходные дни. Расписание потока покупателей при-
ведено ниже.
Рабочие дни:
8:00–13:00 — десять человек в час;
13:00–16:00 — пятнадцать человек в час;
16:00–22:00 — двадцать человек в час.
Выходные дни:
9:00–12:00 — двадцать человек в час;
12:00–21:00 — сорок человек в час.
Покупатели, время ожидания покупки у которых превысило час, 
уходят из касс, не купив билета. Время обслуживания одного покупа-
теля в кассах меняется случайным образом от 2 до 15 минут и в среднем 
составляет 5 минут. Предусмотреть в модели учет купивших и неку-
пивших билеты.

Решение

Этап 1. Задание логики работы модели

Шаг 1. Создание новой модели

Создайте новую модель (рис. 1.1) в среде AnyLogic, нажав на кноп-
ку Создать и выбрав Модель из выпадающего меню (или используйте 
клавиши быстрого доступа <Ctrl+N>).

Дискретно-событийное моделирование. Моделирование систем массового обслуживания 

Рис. 1.1. Создание новой модели

Введите имя модели ticket в открывшемся диалоговом окне и за-
дайте единицы модельного времени — минуты (рис. 1.2). Нажмите 
кнопку Готово.

Рис. 1.2. Задание параметров новой модели

Лабораторная работа № 1

Шаг 2. Моделирование прихода покупателей

В открывшемся окне модели перейдите на вкладку Палитра и от-
кройте первую библиотеку из списка — Библиотеку моделирования 
процессов. Из нее перетащите на рабочее поле блок Source (рис. 1.3). 
Как известно, именно этот блок моделирует появление заявок в мо-
дели. В нашем случае покупатели — это заявки.

Рис. 1.3. Моделирование прихода покупателей

В начале моделирования мы не будем учитывать изменение интен-
сивности потока покупателей в течение дня и недели. Просто зададим 
наименьшую границу потока. Для этого выберем в пункте Прибыва-
ют согласно режим Интенсивности и зададим значение интенсивно-
сти 10. Это значит, что в среднем 10 раз в час будут приходить поку-
патели, то есть примерно каждые 6 минут.

Шаг 3. Моделирование очереди покупателей

Перетащите из библиотеки моделирования процессов блок Queue. 
Будьте внимательны и постарайтесь сделать так, чтобы блок Queue связался 
с блоком Source. Это позволит избежать лишних хлопот по до-
рисовыванию связей между блоками. Если не удастся связать блоки, 
то нужно дважды щелкнуть на выходной порт блока Source и потянуть 
связь до блока Queue. Заявка проходит в модели только по связям. Если  

Дискретно-событийное моделирование. Моделирование систем массового обслуживания 

блоки не связаны, то заявка не сможет перейти в следующий блок. 
Блок Queue имитирует накопление заявок в модели, фактически моделирует 
очередь. Оставим все ее параметры по умолчанию. Это значит, 
что ее логика будет соответствовать логике очереди «первый пришел, 
первый ушел» и не будет задано никакой привязки на местности. Отметить 
пункт Максимальная вместимость (рис. 1.4), поскольку в задании 
ничего не было сказано об ограничениях длины очереди.

Рис. 1.4. Моделирование очереди покупателей

Шаг 4. Моделирование процесса покупки билетов

Для процесса покупки билетов требуется ресурс — кассиры. Для 
моделирования ресурсов в модели используется блок ResourcePool. 
Перетащите его на рабочее поле модели. Этот блок не связывается 
ни с каким блоком в модели, так как через него не должны проходить 
заявки.
В свойствах блока задайте его имя booking_clerk. Поскольку кассиры 
могут передвигаться от кассы к кассе, то задайте тип ресурса как Движущийся 
и укажите их скорость 2 км/ч. Пока не будем задавать расписание 
работы кассиров и в пункте Количество задано оставим режим 
Напрямую и укажем количество кассиров, например 2 (рис. 1.5).
Перед тем как моделировать сам процесс покупки билетов, используем 
блок выбора движения заявок, поскольку покупатели из очереди 
могут идти как в первую, так и во вторую кассу. Перетащите блок 
selectOutput на рабочее поле и соедините его с блоком Queue. Условие 
выбора касс введем позже.

Лабораторная работа № 1

Рис. 1.5. Моделирование ресурсов для продажи билетов

Далее нужно промоделировать сам процесс покупки билетов. Процесс 
покупки билетов — это процесс обслуживания заявки. Для этого 
используется блок Service, который включает в себя логику работы 
трех блоков Sieze (захват ресурсов), Delay (удержание заявки и ресурсов), 
Release (освобождение ресурсов). Также блок Service имеет 
собственную очередь, то есть в него еще встроен блок Queue. Поэто-
му если бы к каждой кассе шла своя очередь, то блок Queue отдельно 
можно было бы не использовать.
Перетащите два блока Service на рабочее поле. В свойствах блоков 
задайте их имена booking1 и booking2. Задайте вместимость собствен-
ных очередей 2 и время задержки (рис. 1.6). Время задержки задается 
функцией треугольного распределения со средним значением 5 ми-
нут, минимальным значением 2 минуты и максимальным значением 
15 минут. В пункте Набор(ы) ресурсов выберите из списка ресурсов 
только что созданный ресурс booking_clerk. Теперь в первой и во вто-
рой кассах будут работать указанные в ресурсах 2 кассира.
Теперь, когда обе кассы промоделированы, вернемся к условию вы-
бора кассы покупателем. Пусть покупатель идет во вторую кассу, уви-
дев, что в первой кассе собралось более трех человек. Такое поведение 
заявкам можно задать, если использовать в условии выбора функцию 

Дискретно-событийное моделирование. Моделирование систем массового обслуживания 

объекта service — size (), которая возвращает количество клиентов, об-
служиваемых в данный момент объектом. Если величина, возвращен-
ная функцией size () объекта booking1, будет больше 3 (рис. 1.7), то зна-
чит, что в эту кассу покупатель не пойдет.

Рис. 1.6. Моделирование процесса продажи билетов

Рис. 1.7. Условие выбора касс

Доступ онлайн
300 ₽
В корзину