Лб 1. Лабораторная работа 1 Знакомство с ведущим инструментом имитационного моделирования AnyLogic Цель работы
Скачать 1.08 Mb.
|
(Системные требования. Среда разработки моделей AnyLogic — это Java-приложение.Она протестирована на следующих платформах:– Microsoft Windows 10, x64, Internet Explorer 11– Microsoft Windows 8, x64, Internet Explorer 11– Microsoft Windows 7 SP1, x64, Internet Explorer 11– Apple Mac OS X 10.10 (Yosemite) или выше, Universal, Safari 9+– SuSE Linux, x64 (с установленными GTK+, libwebkitgtk-1.0-0, libudev, libssl 0.9.8 и выше), Firefox 24+ – Ubuntu Linux 10.04 или выше, x64 (с установленными GTK+, libwebkitgtk-1.0-0, libudev, libssl 0.9.8 и выше), Firefox 24+ – Linux Mint 17 или выше, x64 (с установленными GTK+, libwebkitgtk-1.0-0, libudev, libssl 0.9.8 и выше), Firefox 24+ AnyLogic может также быть установлен на других платформах, не перечисленных в этом списке (например, на других версиях Linux), но в этом случае мы не гарантируем полной совместимости с платформой.Требования к аппаратному обеспечению:– 1,5 Гб свободного дискового пространства– для хорошей производительности рекомендуется иметь 4-8 Гб памяти и современный двухъядерный процессор (для пешеходного моделирования и экспериментов с несколькими "прогонами" рекомендуется иметь более мощный процессор)– рекомендуется использовать мышь).2. Ознакомьтесь с программным обеспечением AnyLogic, с этапами работы в нем. 3. По методике, приведенной ниже, реализуйте пример имитационного моделирования. 4. Сделайте отчет о выполненном задании. Методика проведения работы Модель банковского отделения Библиотека Моделирования Процессов AnyLogic поддерживает дискретно-событийный, или, если быть более точным, «процессный» подход моделирования. С помощью объектов Библиотеки Моделирования Процессов вы можете моделировать системы реального мира, динамика которых представляется как последовательность операций (прибытие, задержка, захват ресурса, разделение, ...) над агентами, представляющими клиентов, документы, звонки, пакеты данных, транспортные средства и т.п. Эти агенты сами не контролируют свою динамику, но могут обладать определёнными атрибутами, влияющими на процесс их обработки (например, тип звонка, сложность работы) или накапливающими статистику (общее время ожидания, стоимость). Диаграммы процессов AnyLogic иерархичны, масштабируемы, расширяемы и объектно-ориентированы, что позволяет пользователю моделировать сложные системы любого уровня детальности. Другой важной особенностью Библиотеки моделирования процессов является возможность создания достаточно сложных анимаций процессных моделей. В этой лабораторной работе создадим модель простой системы обслуживания, а именно модель банковского отделения. В банковском отделении находятся банкомат и стойки банковских кассиров, что позволяет быстро и эффективно обслуживать посетителей банка. Операции с наличностью клиенты банка производят с помощью банкомата, а более сложные операции, такие как оплата счетов – с помощью кассиров. Шаг 1. Создание простой модели Вначале создадим простейшую модель, в которой будем рассматривать обслуживание людей банкоматом. Создайте новую модель Щелкните мышью по кнопке панели инструментов Создать . Появится диалоговое окно Новая модель. Задайте имя новой модели. В поле Имя модели введите Bank. Имя модели введите Bank. Рис. 1. Ввод новой модели Выберите каталог, в котором будут сохранены файлы модели. Если вы хотите сменить предложенный по умолчанию каталог на какой-то другой, вы можете ввести путь к нему в поле Местоположение или выбрать этот каталог с помощью диалога навигации по файловой системе, открывающегося по нажатию на кнопку Выбрать. Выберите минуты в качестве Единиц модельного времени. Щелкните мышью по кнопке Готово, чтобы завершить процесс. Вы создали новую модель. В ней уже имеется один тип агента Main и эксперимент Simulation. Агенты - это главные строительные блоки модели AnyLogic. В нашем случае агент Main послужит местом, где мы зададим всю логику модели: здесь мы расположим чертеж банковского отделения и зададим диаграмму процесса потока клиентов. В центре рабочей области находится графический редактор диаграммы типа агента Main. Рис. 2. Агент Main В левой части рабочей области находятся панель Проекты и панель Палитра. Панель Проекты обеспечивает легкую навигацию по элементам моделей, открытых в текущий момент времени. Поскольку модель организована иерархически, то она отображается в виде дерева. Панель Палитра содержит разделенные по палитрам элементы, которые могут быть добавлены на диаграмму типа агента или эксперимента. В правой рабочей области будет отображаться панель Свойства. Панель Свойства используется для просмотра и изменения свойств выбранного в данный момент элемента (или элементов) модели. Когда вы выделяете какой-либо элемент, например, в панели Проекты или графическом редакторе, панель Свойства показывает свойства выбранного элемента. Теперь мы можем настроить нашу модель, созданную с помощью Мастера создания модели. Создание диаграммы процесса Теперь мы зададим динамику процесса, создав диаграмму из блоков Библиотеки моделирования процессов. Каждый блок задает определенную операцию, которая будет производиться над проходящими по диаграмме процесса агентами. Диаграмма процесса в AnyLogic создается путем добавления объектов библиотеки из палитры на диаграмму агента, соединения их портов и изменения значений свойств блоков в соответствии с требованиями вашей модели. Создайте диаграмму процесса По умолчанию при создании новой модели в панели Палитра открывается Библиотека моделирования процессов. Вы можете открывать палитры щелчком по соответствующей иконке на вертикальной панели слева от палитры: Рис. 3. Библиотека моделирования процессов Добавьте блоки Библиотеки моделирования процессов на диаграмму и соедините их, как показано на рисунке. Чтобы добавить объект на диаграмму, перетащите требуемый элемент из палитры в графический редактор. Рис. 4. Графический редактор Когда вы перетаскиваете блоки и располагаете их рядом друг с другом, вы можете видеть, как появляются соединительные линии между блоками. Будьте внимательны, эти линии должны соединять только порты, находящиеся с правой или левой стороны иконок. Данная схема моделирует простейшую систему очереди, состоящую из источника агентов, задержки (и очереди перед задержкой) и финального уничтожения агентов. Объекты диаграммы. Объект Source генерирует агентов определенного типа. Обычно он используется в качестве начальной точки диаграммы процесса, формализующей поток агентов. В нашем примере агентами будут посетители банка, а объект Source будет моделировать их приход в банковское отделение. Объект Queue моделирует очередь агентов, ожидающих приема объектами, следующими за данным в диаграмме процесса. В нашем случае он будет моделировать очередь клиентов, ждущих освобождения банкомата. Объект Delay задерживает агентов на заданный период времени, представляя в нашей модели банкомат, у которого посетитель банковского отделения тратит свое время на проведение необходимой ему операции. Объект Sink уничтожает поступивших агентов. Обычно он используется в качестве конечной точки потока агентов (и диаграммы процесса соответственно). За детальным описанием объектов Библиотеки моделирования процессов обращайтесь к Справочному руководству по Библиотеке моделирования процессов. Настройте блоки диаграммы Чтобы изменить свойства элемента, выделите элемент в графическом редакторе или в панели Проекты, щелкнув по нему мышью. Свойства элемента откроются в панели Свойства. Выделите блок source. В панели Свойства укажите, как часто должны прибывать клиенты. Введите0.3 и выберите в минуту в поле Интенсивность прибытия. Рис. 5. Панель «Свойства» Измените свойства блока queue. Введите в поле Вместимость 15. В очереди будут находиться не более 15 человек. Рис. 6. Свойства блока queue Измените свойства блока delay. Назовите объект ATM. Задайте время обслуживания в поле Время задержки, распределенное по треугольному закону со средним значением, равным 1.5, минимальным - равным 0.8 и максимальным - 3.5 минутам. Рис. 7. Свойства блока delay Функция triangular() является стандартной функцией генератора случайных чисел AnyLogic. AnyLogic предоставляет функции и других случайных распределений, таких как нормальное, равномерное, треугольное, и т.д. Запуск модели Мы закончили моделирование простейшей системы очереди и готовы запустить созданную модель. Сначала постройте вашу модель с помощью кнопки панели инструментов Построить модель (при этом в рабочей области AnyLogic должен быть выбран какой-то элемент именно этой модели). Если в модели есть какие-нибудь ошибки, то построение не будет завершено, и в панель Ошибки будет выведена информация об ошибках, обнаруженных в модели. Двойным щелчком мыши по ошибке в этом списке вы можете перейти к месту ошибки, чтобы исправить ее. После того, как вы исправите все ошибки и успешно построите вашу модель, вы можете ее запустить. Запуская модель, вы автоматически обновляете ее. Запустите модель Щелкните мышью по кнопке панели инструментов Запустить и выберите из открывшегося списка эксперимент, который вы хотите запустить. Эксперимент этой модели будет называться Bank/Simulation. Рис. 8. Запуск модели На момент запуска этого конкретного эксперимента наша модель - единственная открытая модель в рабочем пространстве. В дальнейшем будет запускаться тот эксперимент, который запускался вами в последний раз. Чтобы выбрать какой-то другой эксперимент, вам будет нужно щелкнуть правой кнопкой мыши по этому эксперименту в панели Проекты и выбрать Запустить из контекстного меню. Запустив модель, вы увидите окно модели. В нем будет отображена презентация агента верхнего уровня модели. По умолчанию это тип агента Main. Для каждой модели, созданной с помощью объектов Библиотеки моделирования процессов, автоматически создается блок-схема с наглядной визуализацией процесса, с помощью которой вы можете изучить текущее состояние модели, например, длину очереди, количество обслуженных человек и так далее. Рис. 9. Блок-схема с наглядной визуализацией процесса Вы можете изменить скорость выполнения модели с помощью кнопок панели инструментов Замедлить и Ускорить. Вы можете следить за состоянием любого блока диаграммы процесса во время выполнения модели с помощью окна инспекта этого объекта. Чтобы открыть окно инспекта, щелкните мышью по значку блока. В окне инспекта будет отображена базовая информация по выделенному блоку: например, для блока Queue будет отображена вместимость очереди, количество агентов, прошедших через каждый порт объекта, и т.д. Строка Содержит отображает количество агентов, находящихся в данный момент на объекте вместе с ID этих агентов. Рис. 10. Отображение строки Шаг 2. Создание анимации модели Хотя мы и могли анализировать работу запущенной нами только что модели с помощью диаграммы процесса, но куда удобнее было бы иметь более наглядную анимацию моделируемого нами процесса. В этом примере мы хотим создать визуализированный план банковского отделения. Поскольку в нашем случае нас не интересует конкретное расположение объектов в пространстве, то мы можем просто добавить чисто схематическую анимацию интересующих нас объектов - в нашем случае мы хотим видеть на анимации банкомат и ведущую к нему очередь клиентов. Анимация модели рисуется в той же диаграмме (в графическом редакторе), в которой задается и диаграмма моделируемого процесса. Добавление фигур разметки пространства Задайте фигуру анимации банкомата Нарисуем точечный узел, обозначающий банкомат. Вначале откройте палитру Разметка пространства панели Палитра. Перетащите элемент Точечный узел из палитры Разметка пространства в графический редактор и поместите его под блок-схемой процесса. Рис. 11. Элемент Точечный узел Выделите щелчком точечный узел в графическом редакторе, чтобы открыть для него панель Свойства. Мы с вами хотим, чтобы во время моделирования менялся цвет нашей фигуры, поэтому введите выражение, которое будет постоянно вычисляться заново при выполнении модели, в поле Цвет: ATM.size() > 0 ? red : green Здесь ATM – это имя нашего объекта Delay. Функция size() возвращает число человек, обслуживаемых в данный момент времени. Если банкомат занят, то цвет кружка будет красным, в противном случае - зеленым. Выделите щелчком блок delay, названный нами ATM, в диаграмме процесса, чтобы открыть его свойства. Выберите точечный узел point, который мы только нарисовали в параметре Место агентов. Вы можете выбрать его из выпадающего списка подходящих объектов, щелкнув стрелку "вниз", или выбрать фигуру из графического редактора, предварительно щелкнув кнопку справа от параметра (в таком случае все неподходящие объекты в графическом редакторе будут обесцвечены). Рис. 12. Точечный узел point Задайте фигуру анимации очереди к банкомату Нарисуем путь, обозначающий очередь к банкомату. Вначале откройте палитру Разметка пространства панели Палитра. Двойным щелчком выделите элемент Путь палитры Разметка пространства, чтобы перейти в режим рисования. Теперь вы можете рисовать путь точка за точкой, последовательно щелкая мышью в тех точках диаграммы, куда вы хотите поместить вершины линии. Чтобы завершить рисование, добавьте последнюю точку пути двойным щелчком мыши. Рис. 13. Путь точка за точкой Выделите щелчком блок queue в диаграмме процесса, чтобы открыть для него панель Свойства. Выберите путь path, который мы только нарисовали в параметре Место агентов. Вы можете выбрать его из выпадающего списка подходящих объектов, щелкнув стрелку "вниз", или выбрать фигуру из графического редактора, предварительно щелкнув кнопку справа от параметра (в таком случае все неподходящие объекты в графическом редакторе будут обесцвечены). Рис. 14. Выбор пути path Теперь вы можете запустить модель и изучить ее поведение. Для ускорения работы модели, переключитесь в режим виртуального времени, щелкнув мышью по кнопке панели инструментов Реальное/виртуальное время. В режиме виртуального времени модель будет выполняться максимально быстро, без привязки модельного времени к реальному. Запустите модель. Вы увидите, что у нашей модели теперь есть простейшая анимация - банкомат и ведущая к нему очередь клиентов. Цвет фигуры банкомата будет меняться в зависимости от того, обслуживается ли клиент в данный момент времени. Рис. 15. Запуск модели |