Имитационное моделирование в AnyLogic 7. В 2 частях. Часть 2
Покупка
Тематика:
Системы автоматического моделирования
Издательство:
Издательство Уральского университета
Год издания: 2017
Кол-во страниц: 104
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-7996-1996-1
Артикул: 798501.01.99
Работа состоит из двух частей: часть 1 — учебное пособие, часть 2 — лабораторный практикум. В первой части излагаются основы имитационного моделирования в среде AnyLogic 7. Во второй части приведены четыре лабораторных работы для бакалавров, изучающих модуль «Математическое и компьютерное моделирование». Издание предназначено для студентов всех форм обучения и аспирантов, обучающихся по техническим специальностям.
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Министерство образования и науки Российской Федерации Уральский федеральный университет имени первого Президента России Б. Н. Ельцина О. В. Лимановская Имитационное моделирование в 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. Условие выбора касс