Сдам Сам

Назначение и возможности инструментальной среды AnyLogic

ВВЕДЕНИЕ

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

Моделирование – метод решения задач, при использовании которого ис- следуемая система заменяется более простым объектом, описывающим реаль- ную систему и называемым моделью.

Моделирование применяется в случаях, когда проведение экспериментов над реальной системой невозможно или нецелесообразно, например, из-за вы- сокой стоимости или длительности проведения эксперимента в реальном мас- штабе времени.

Различают физическое и математическое моделирование. Примером фи- зической модели является уменьшенная копия самолета, продуваемая в потоке воздуха. При использовании математического моделирования поведение сис- темы описывается с помощью формул. Особым видом математических моделей являются имитационные модели.

Имитационная модель – это компьютерная программа, которая описывает структуру и воспроизводит поведение реальной системы во времени. Имитаци- онная модель позволяет получать подробную статистику о различных аспектах функционирования системы в зависимости от входных данных.

Имитационное моделирование – разработка компьютерных моделей и по- становка экспериментов на них. Целью моделирования в конечном счете явля- ется принятие обоснованных, целесообразных управленческих решений. Ком- пьютерное моделирование становится сегодня обязательным этапом в принятии ответственных решений во всех областях деятельности человека в связи с ус- ложнением систем, в которых человек должен действовать и которыми он дол- жен управлять. Знание принципов и возможностей имитационного моделиро- вания, умение создавать и применять модели являются необходимыми требова- ниями к инженеру, менеджеру, бизнес-аналитику.


Назначение и возможности инструментальной среды AnyLogic

Современные системы моделирования поддерживают весь арсенал но- вейших информационных технологий, включая развитые графические оболоч- ки для целей конструирования моделей и интерпретации выходных результатов моделирования, мультимедийные средства, анимацию в реальном масштабе времени, объектно-ориентированное программирование, Internet - решения и др. В данном пособии описываются методы и приемы построения моделей с помощью инструментальной системы AnyLogic.

Пакет AnyLogic – профессиональный инструмент нового поколения, который предназначен для разработки и исследования имитацион- ных моделей. Разработчик продукта – компания «Экс Джей Текнолоджис» (XJ Technologies), г. Санкт-Петербург; электронный адрес: www.xjtek.ru.

AnyLogic был разработан на основе новых идей в области информацион- ных технологий, теории параллельных взаимодействующих процессов и теории гибридных систем. Благодаря этим идеям чрезвычайно упрощается построение сложных имитационных моделей, имеется возможность использования одного инструмента при изучении различных стилей моделирования.

Программный инструмент AnyLogic основан на объектно- ориентированной концепции. Другой базовой концепцией является пред- ставление модели как набора взаимодействующих, параллельно функциони- рующих активностей. Активный объект в AnyLogic – это объект со своим собственным функционированием, взаимодействующий с окружением. Он может включать в себя любое количество экземпляров других активных объектов.

Графическая среда моделирования поддерживает проектирование, раз- работку, документирование модели, выполнение компьютерных эксперимен- тов, оптимизацию параметров относительно некоторого критерия.

При разработке модели можно использовать элементы визуальной гра- фики: диаграммы состояний (стейтчарты), сигналы, события (таймеры), порты и т.д.; синхронное и асинхронное планирование событий; библиотеки актив-


ных объектов.

Удобный интерфейс и многочисленные средства поддержки разработки моделей в AnyLogic делают не только использование, но и создание компью- терных имитационных моделей в этой среде моделирования доступными даже для начинающих.

При разработке модели на AnyLogic можно использовать концепции и средства из нескольких классических областей имитационного моделирования : динамических систем, дискретно-событийного моделирования, системной ди- намики, агентного моделирования. Кроме того, AnyLogic позволяет интегриро- вать различные подходы с целью получить более полную картину взаимодейст- вия сложных процессов различной природы.

В данном пособии описываются три имитационные модели: дискретно- событийная, системно-динамическая и агентная. Для каждой модели приводит- ся подробная постановка проблемы, разбирается структура модели, описывает- ся процесс построения модели в среде AnyLogic и изучается ее поведение.


СРЕДСТВА ANYLOGIC ДЛЯ ИМИТАЦИОННОГО МОДЕЛИРОВАНИЯ СИСТЕМ

Основные концепции

Две фазы моделирования. AnyLogic используется для разработки имита- ционных исполняемых моделей и последующего их прогона для анализа. Раз- работка модели выполняется в графическом редакторе AnyLogic с использова- нием многочисленных средств поддержки, упрощающих работу. Построенная модель затем компилируется встроенным компилятором AnyLogic и запускает- ся на выполнение. В процессе выполнения модели пользователь может наблюдать ее поведение, изменять параметры модели, выводить результаты моделирования в различных формах и выполнять разного рода компьютерные эксперименты с моделью.

Для реализации специальных вычислений и описания логики поведения объектов AnyLogic позволяет использовать мощный современный язык Java.

Активные объекты, классы и экземпляры активных объектов. Основ- ными строительными блоками модели AnyLogic являются активные объекты, которые позволяют моделировать любые объекты реального мира.

Класс в программировании является мощным средством, позволяющим структурировать сложную систему. Класс определяет шаблон, в соответствии с которым строятся отдельные экземпляры класса. Эти экземпляры могут быть определены как объекты других активных объектов.

Активный объект является экземпляром класса активного объекта. Чтобы создать модель AnyLogic, вы должны создать классы активных объектов (или использовать объекты библиотек AnyLogic) и задать их взаимосвязи. AnyLogic интерпретирует создаваемые вами графически классы активных объектов в классы Java, поэтому вы можете пользоваться всеми преимуществами объект- но-ориентированного моделирования.

Активные объекты могут содержать вложенные объекты, причем уровень вложенности не ограничен. Это позволяет производить декомпозицию модели на любое количество уровней детализации.


Активные объекты имеют четко определенные интерфейсы взаимодейст- вия – они взаимодействуют со своим окружением только посредством своих интерфейсных элементов.

Это облегчает создание систем со сложной структурой, а также делает активные объекты повторно используемыми. Создав класс активного объекта, вы можете создать любое количество объектов – экземпляров данного класса.

Каждый активный объект имеет структуру (совокупность включенных в него активных объектов и их связи), а также поведение, определяемое совокуп- ностью переменных, параметров, стейтчартов и т.п. Каждый экземпляр актив- ного объекта в работающей модели имеет свое собственное поведение, он может иметь свои значения параметров, функционирует независимо от других объектов, взаимодействуя с ними и с внешней средой.

Визуальная разработка модели. При построении модели используются средства визуальной разработки (введения состояний и переходов стейтчарта, введения пиктограмм переменных и т.п.), задания численных значений пара- метров, аналитических записей соотношений переменных и аналитических записей условий наступления событий. Основной технологией программирова- ния в AnyLogic является визуальное программирование – построение с помо- щью графических объектов и пиктограмм иерархий структуры и поведения ак- тивных объектов.

Встроенный язык Java. AnyLogic является надстройкой над языком Ja- va – одним из самых мощных и в то же время самых простых современных объ- ектно-ориентированных языков. Все объекты, определенные пользователем при разработке модели с помощью графического редактора, компилируются в кон- струкции языка Java, а затем происходит компиляция всей собранной програм- мы на Java, задающей модель, в исполняемый код. Хотя программирование сведено к минимуму, разработчику модели необходимо иметь некоторое пред- ставление об этом языке (например, знать синтаксически правильные конст- рукции).

Средства описания поведения объектов. Основными средствами описа-


ния поведения объектов являются переменные, события и диаграммы состоя- ний. Переменные отражают изменяющиеся характеристики объекта. События могут наступать с заданным интервалом времени и выполнять заданное дейст- вие. Диаграммы состояний (или стейтчарты) позволяют визуально предста- вить поведение объекта во времени под воздействием событий или условий, они состоят из графического изображения состояний и переходов между ними (т.е. по сути это конечный автомат). Любая сложная логика поведения объектов модели может быть выражена с помощью комбинации стейтчартов, дифферен- циальных и алгебраических уравнений, переменных, таймеров и программного кода на Java. Алгебраические и дифференциальные уравнения записываются аналитически.

Интерпретация любого числа параллельно протекающих процессов в модели AnyLogic скрыта от пользователя. Никаких усилий разработчика модели для организации квазипараллелизма интерпретации не требуется; отслеживание всех событий выполняется системой автоматически.

Модельное и реальное время. Понятие модельного времени является базовым в системах имитационного моделирования. Модельное время – это условное логическое время, в единицах которого определено поведение всех объектов модели. В моделях AnyLogic модельное время может изменяться либо непрерывно, если поведение объектов описывается дифференциальными урав- нениями, либо дискретно, переключаясь от момента наступления одного собы- тия к моменту наступления следующего события, если в модели присутствуют только дискретные события. Моменты наступления всех планируемых событий в дискретной модели исполнительная система хранит в так называемом кален- даре событий, выбирая оттуда наиболее раннее событие для выполнения связанных с ним действий. Значение текущего времени в моделях AnyLogic может быть получено с помощью функции time().

Единицу модельного времени разработчик модели может интерпретиро- вать как любой отрезок времени: секунду, минуту, час или год. Важно только, чтобы все процессы, зависящие от времени, были выражены в одних и тех же


единицах. При моделировании физических процессов все параметры и уравне- ния должны быть выражены в одних и тех же единицах измерения физических величин.

Интерпретация модели выполняется на компьютере. Физическое время, затрачиваемое процессором на имитацию действий, которые должны выпол- няться в модели в течение одной единицы модельного времени, зависит от мно- гих факторов. Поэтому единица физического времени и единица модельного времени не совпадают.

В AnyLogic приняты два режима выполнения моделей: режим виртуаль- ного времени и режим реального времени. В режиме виртуального времени процессор работает с максимальной скоростью без привязки к физическому времени. Данный режим используется для факторного анализа модели, набора статистики, оптимизации параметров модели и т.д. Поскольку анимация и другие окна наблюдения за поведением модели обычно существенно замедляют скорость интерпретации модели на компьютере, для повышения скорости выполнения эти окна нужно закрыть.

В режиме реального времени пользователь задает связь модельного вре- мени с физическим временем, т.е. устанавливает ограничение на скорость процессора при интерпретации модели. В этом режиме задается количество единиц модельного времени, которые должны интерпретироваться процессо- ром в одну секунду. Обычно данный режим включается для того, чтобы визуально представить функционирование системы в реальном темпе наступ- ления событий, проникнуть в суть процессов, происходящих в модели.

Соотношение физического и модельного времени при работе модели можно понять на таком примере. При коэффициенте ускорения 4, если процес- сор успевает выполнить менее чем за 1 с все операции, которые в модели определены в течение 4-х единиц модельного времени, то он будет ждать до конца секунды. Если же процессор не успевает выполнить все операции, то у него не будет интервала ожидания, и коэффициент ускорения будет меньше того, который установлен пользователем.


Анимация поведения модели. AnyLogic имеет удобные средства представления функционирования моделируемой системы в живой форме ди- намической анимации, что позволяет «увидеть» поведение сложной системы. Визуализация процесса функционирования моделируемой системы позволяет проверить адекватность модели, выявить ошибки при задании логики.

Средства анимации позволяют пользователю легко создавать виртуаль- ный мир (совокупность графических образов, ожившую мнемосхему), управ- ляемый динамическими параметрами модели по законам, определенным поль- зователем с помощью уравнений и логики моделируемых объектов. Графиче- ские элементы, добавленные на анимацию, называются динамическими, по- скольку все их параметры: видимость, цвет и т.п. – можно сделать зависимыми от переменных и параметров модели, которые меняются со временем при вы- полнении модели.

С помощью совершенной технологии визуализации работающих моделей AnyLogic можно создавать интерактивные анимации произвольной сложности, связывая графические объекты (в т.ч. импортированные чертежи) во встроенном редакторе с объектами модели. Как и модель, анимация имеет иерархическую структуру, которая может динамически изменяться. Возможно создание нескольких точек зрения или нескольких уровней детальности в пре- делах одной анимации. Элементы управления и развитая бизнес-графика превращают анимацию модели в настоящую панель управления для оценки эффективности решений. В AnyLogic поддерживается как двумерная, так и трёхмерная анимация.

Интерактивный анализ модели. Многие системы моделирования позволяют менять параметры модели только до запуска модели на выполнение. AnyLogic позволяет пользователю вмешиваться в работу модели, изменяя параметры модели в процессе ее функционирования. Примером таких средств являются слайдеры, которые могут быть введены в окно анимации.


Пользовательский интерфейс

После запуска AnyLogic открывается рабочее окно, в котором для про- должения работы надо создать новый проект или открыть уже существующий.

Начиная с версии 6.4 AnyLogic предоставляет пользователям возмож- ность использовать шаблоны моделей при создании новых моделей. Чтобы соз- дать новый проект, щелкните по соответствующей кнопке на панели инстру- ментов или выберите пункт меню Файл | Создать проекти затем из ниспа- дающего меню – Модель. Откроется диалоговое окно Новая модель, где зада- ется имя и местоположение нового проекта. Далее следуйте указаниям Масте- ра создания модели. Можно создавать новую модель «с нуля» или использовать шаблон.

При открытии проекта (нового или существующего) AnyLogic всегда открывает среду разработки проекта – графический редактор модели (рис. 1). Рассмотрим основные составляющие этого редактора.

Окно проекта обеспечивает легкую навигацию по элементам проекта, таким как пакеты, классы и т.д. Поскольку проект организован иерархически, то он отображается в виде дерева: сам проект образует верхний уровень дерева рабочего проекта, пакеты – следующий уровень, классы активных объектов и сообщений – следующий и т.д. Можно копировать, перемещать и удалять лю- бые элементы дерева объектов, легко управляя рабочим проектом.


Рис. 1

Одна из ветвей в дереве проекта имеет название Simulation:Main (экспе- римент). Эксперимент хранит набор настроек, с помощью которых конфигури- руют работу модели. Один эксперимент создается автоматически при создании проекта. Это простой эксперимент с именем Simulation, позволяющий визуа- лизировать модель с помощью анимации и поддерживающий инструменты для отладки модели. Простой эксперимент используется в большинстве случаев. Поддерживается ещё несколько типов экспериментов для различных задач моделирования.

Структурная диаграмма. При построении модели нужно задать ее структуру (т.е. описать, из каких частей состоит модель системы) и поведение отдельных объектов системы. В AnyLogic структурными элементами модели являются так называемые активные объекты. Активный объект имеет структу- ру и поведение. Элементы структуры – это другие активные объекты, включен- ные как составные элементы данного активного объекта, и связи, которые существуют между включенными активными объектами. Активные объекты могут содержать: события, стейтчарты, переменные, функции, уравнения, параметры.


Структура активного объекта задается графически на структурной диа- грамме. Поведение задается с помощью стейтчарта и определяет реакции активного объекта на внешние события – логику его действий во времени.

Диаграмма состояний (или стейтчарт – statechart) – это модифицирован- ные графы переходов конечного автомата. Стейтчарт позволяет графически за- дать пространство состояний алгоритма поведения объекта, а также события, которые являются причинами срабатывания переходов из одних состояний в другие, и действия, происходящие при смене состояний. Стейтчарты соответст- вуют стандарту UML. Они сохраняют графический вид, атрибуты и семантику выполнения, определенную в UML (Unified Modeling Language). Стейтчарты в AnyLogic поддерживают следующие типы событий: сигнал – объект может послать сигнал другому объекту, чтобы уведомить его о чем-то; таймаут – в течение заданного промежутка времени в стейтчарте ничего не происходит; событие – событие, при котором значение булево выражения становится

«истина».

Кроме того, в окне редактора для модели можно построить двумерное или трехмерное анимационное представление, которое помогает понять, что происходит с моделью во времени. Именно в этом окне визуально представля- ется имитация поведения моделируемой системы. Элементы анимационной картинки имеют свои параметры, которые могут быть связаны с переменными и параметрами модели. Изменение переменных модели во времени ведет к изменению графического образа, что позволяет пользователю наглядно пред- ставить динамику моделируемой системы с помощью динамически меняющей- ся графики.

Окно свойств. В редакторе AnyLogic для каждого выделенного элемента модели существует свое окно свойств, в котором указываются свойства (пара- метры) этого элемента. При выделении какого-либо элемента в окне редактора снизу появляется окно свойств, показывающее параметры данного выделенного элемента. Окно свойств содержит несколько вкладок. Каждая вкладка содержит элементы управления, такие как поля ввода, флажки, переключатели, кнопки и


т.д., с помощью которых можно просматривать и изменять свойства элементов модели. Число вкладок и их внешний вид зависит от типа выбранного элемента. Окно палитры. Содержит элементы (графические объекты), которые могут быть добавлены на структурную диаграмму. Элементы разбиты по груп- пам, отображаемым на разных вкладках. Чтобы добавить объект палитры на диаграмму, щелкните сначала по элементу в палитре, а затем щелкните по диа-

грамме.

Параметры.Активный объект может иметь параметры. Параметры обычно используются для задания характеристик объекта. Вы можете задать различные значения параметров для разных объектов одного и того же класса, что требуется в тех случаях, когда объекты имеют одинаковое поведение, но их характеристики разные. Возможно описание параметров любых Java-классов.

Чтобы создать параметр класса активного объекта (рис. 2), в окне Проектщелкните мышью по классу активного объекта. В окне Свойстващелкните по кнопке Новый параметр.Задайте свойства параметра в открывшемся диалого- вом окне Параметр.

Рис. 2

Переменные.Активный объект может содержать переменные. Перемен- ные могут быть либо внутренними, либо интерфейсными. Активный объект может иметь переменные, моделирующие, меняющиеся во времени величины. Переменные могут быть вынесены в интерфейс активного объекта и связаны с


переменными других активных объектов. Тогда при изменении значения одной переменной будет немедленно меняться и значение связанной с ней зависимой переменной другого объекта. Этот механизм обеспечивает непрерывное и/или дискретное взаимодействие объектов.

Передача сообщений.AnyLogic позволяет передавать информацию от одного объекта другому путем передачи специальных пакетов данных – сооб- щений. С помощью передачи сообщений можно реализовать механизм опове- щения – сообщения будут представлять команды или сигналы, посылаемые системой управления. Можно также смоделировать поток заявок, в этом случае сообщения будут представлять собой заявки – объекты, которые производятся, обрабатываются, обслуживаются или еще каким-нибудь образом подвергаются воздействию моделируемого процесса (документы в модели бизнес-процесса, клиенты в модели системы массового обслуживания, детали в производствен- ных моделях).

Сообщения принимаются и посылаются через специальные элементы активных объектов – порты. Обмен сообщениями возможен только между пор- тами, соединенными соединителями – элементами, играющими роль путей движения сообщений.

Чтобы соединить порты вложенных объектов, щелкните мышью по кноп- ке панели инструментов Соединитель, а затем щелкните мышью поочередно по обоим портам. Чтобы добавить точку изгиба,щелкните мышью по кнопке панели инструментов Редактировать точки.

Запуск и просмотр модели. Запускать и отлаживать модель можно с по- мощью меню Модельи панели инструментов:

.

При исполнении модели запустится компилятор, который построит ис- полняемый код модели в языке Java, скомпилирует его и затем запустит модель на исполнение.

Для запуска модели щелкните по кнопке Выполнить, затем выберите эксперимент из выпадающего списка. После этого откроется окно презентации,


отображающее созданную презентацию для запущенного эксперимента. Щелк- ните по кнопке, чтобы запустить модель и перейти на презентацию.

В окне презентации можно увидеть: анимированную диаграмму модели, окна инспекта элементов модели, ожившую анимацию, диаграммы состояний, графики статистики.

Проведение экспериментов

С помощью экспериментов задаются конфигурационные настройки модели. AnyLogic поддерживает несколько типов экспериментов: простой экс- перимент, эксперимент для варьирования параметров, оптимизационный и др. На рис. 3 показано окно выбора эксперимента.

Рис. 3


Простой эксперимент. Задачи вида «что – если» (так называемая прямая задача имитационного моделирования ИМ) в AnyLogic решаются с по- мощью простого эксперимента. Простой эксперимент (с именем Simulation) создается автоматически при создании проекта. Он позволяет визуализировать модель с помощью анимации, графиков (диаграмм) и т.п. Широкие возможно- сти для отображения данных предоставляет библиотека бизнес-графики (Business Graphics Library).

Для построения, например, графика зависимости переменных от времени в поле анимации сначала нужно построить прямоугольник, в переделах которо- го будет размещаться график, после чего в любое место поля редактора перене- сти экземпляр объекта ChartTime из Business Graphics Library. Затем в окне свойств данного объекта следует настроить параметры, определяющие цвет и толщину линий, имена отображаемых переменных, названия переменных, ко- торые будут отображаться, цвет текста и т.д.

Простой эксперимент используется в большинстве случаев при разработ- ке и анализе моделей, созданных в AnyLogic. В частности, он поддерживает средства для отладки модели. Можно организовать несколько простых экспе- риментов с различными значениями исходных факторов и, сделав один из этих экспериментов текущим, запустить модель на выполнение.

Эксперимент для варьирования параметров. Анализ чувствительно- сти модели. Анализ чувствительности модели – процедура оценки влияния исходных гипотез и значений ключевых факторов на выходные показатели мо- дели. Обычно эксперимент с варьированием параметров и анализом реакции модели помогает оценить, насколько чувствительным является выдаваемый моделью прогноз к изменению гипотез, лежащих в основе модели. При анализе чувствительности обычно рекомендуется выполнять изменение значений фак- торов по отдельности, что позволяет ранжировать их влияние на результирую- щие показатели.

В AnyLogic доступен механизм автоматического запуска модели заданное


количество раз с изменением значений выбранных параметров – это экспери- мент для варьирования параметров. При запуске данного эксперимента поль- зователь может изучить и сравнить поведение модели при разных значениях параметров с помощью графиков.

Чтобы запустить такой эксперимент, нужно выполнить следующее:

- создать эксперимент для варьирования параметров;

- сконфигурировать эксперимент, выбрав параметры модели, которые вы хотите варьировать, и, задав значения, которые эти параметры должны будут принять за определенное вами количество прогонов модели, в окне свойств данного эксперимента;

- запустить модель, выбрав данный эксперимент в качестве текущего.

Такой вид эксперимента не поддерживает визуализацию работы модели с помощью анимации.

Оптимизационный эксперимент. Используется для решения задач количественного анализа (расчет показателей эффективности системы). Поиск тех значений факторов, которые определяют наиболее предпочтительный вари- ант решения, называется обратной задачей ИМ. Обратные задачи моделирова- ния отвечают на вопрос о том, какое решение из области допустимых решений обращает в максимум показатель эффективности системы. Для решения обрат- ной задачи многократно решается прямая задача. В случае, когда число возможных вариантов решения невелико, решение обратной задачи сводится к простому перебору всех возможных решений. Сравнивая их между собой, можно найти оптимальное решение.

Если перебрать все варианты решений невозможно, то используются ме- тоды направленного перебора с применением эвристик. При этом оптимальное или близкое к оптимальному решение находится после многократного выпол- нения последовательных шагов (решений прямой задачи и нахождения для каждого набора входных параметров модели вектора результирующих показа- телей). Правильно подобранная эвристика приближает эксперимент к опти- мальному решению на каждом шаге.


В качестве блока регистрации значений выходных показателей и выбора очередного приближения при оптимизации (рис. 4) пользователь может исполь- зовать любой внешний оптимизатор или же оптимизатор OptQuest, встроенный в AnyLogic. Оптимизатор OptQuest разработан недавно на основе метаэвристик рассеянного поиска (scatter search) и поиска «табу» (tabu search). Этот оптими- затор является лучшим из предлагаемых на рынке профессиональных пакетов оптимизации для решения сложных проблем оптимизации.

 

 

Условие прекращения эксперимента выполнено

 

Рис. 4

 

 

Оптимизатор OptQuest запускается прямо из среды разработки модели. Чтобы настроить оптимизацию в AnyLogic необходимо выполнить следующее:

1) создать в разработанной модели оптимизационный эксперимент;

2) задать оптимизационные параметры и области их изменения;

3) задать условие остановки модели после каждого прогона. Это может быть либо остановка по времени выполнения прогона, либо остановка по условиям, накладываемым на переменные модели;

4) задать целевую функцию, т.е. исследуемую реакцию системы;

5) задать ограничения, которые в конце каждого прогона определяют, до- пустимо ли значение вектора исходных входных факторов. Ограниче- ния можно не задавать (т.е. это опционально);

6) задать условия прекращения эксперимента.

После запуска модели оптимизационный эксперимент найдет наилучшие значения входных параметров, при которых заданная целевая функция обра- тится в минимум или максимум.


Порядок выполнения работы

Лабораторные работы предусмотрены для версии 6.х продукта AnyLogic,

для версии 5.х они могут отличаться.

Модель AnyLogic представляет собой файл с именем, заданным пользо- вателем, и расширением .alp. При создании новой модели можно сразу указать полный путь и имя каталога, в котором будет находиться ваша модель.

В ходе выполнения лабораторной работы необходимо научиться созда- вать дискретно-событийные модели с помощью библиотеки Enterprise Library пакета AnyLogic. Для этого активно используйте справочное руководство по Enterprise Library и учебное пособие по Enterprise Library (меню Справка).

При выполнении лабораторной работы студент сначала выполняет общее задание, а затем индивидуальное задание по варианту, предлагаемому препода- вателем.

Задание к лабораторной работе

Построим с помощью элементов библиотеки Enterprise Library модель простой системы массового обслуживания – модель банковского отделения.

В банковском отделении находятся банкомат и стойки банковских касси- ров, которые предназначены для быстрого и эффективного обслуживания посе- тителей банка. Операции с наличностью клиенты банка производят с помощью банкомата, а более сложные операции, такие как оплата счетов, – с помощью кассиров.

Необходимо произвести оценку затрат операций и определить, сколько денег тратится на обслуживание одного клиента и какую часть этой суммы составляют накладные расходы на оплату работы персонала банка, а какую – на обслуживание посетителей.

1. Создание нового проекта.

Создайте новую модель. Переименуйте класс Main в Model. В свойствах эксперимента Simulation задайте выполнение модели в режиме реального вре- мени с выполнением одной единицы модельного времени в одну секунду. В этой модели под единицей модельного времени мы будем понимать одну мину- ту работы банковского отделения.

2. Создание блок-схемы.

Создайте блок-схему модели, которая пока будет состоять только из бан- комата. Для этого перетащите в окно структуры элементы библиотеки Enterprise Library и соедините их так, как показано на рис. 6.

Объект source генерирует заявки (entities) определенного типа через за- данный временной интервал. Заявки представляют собой объекты, которые производятся, обрабатываются, обслуживаются или еще каким-нибудь образом подвергаются воздействию моделируемого процесса: это могут быть клиенты в


системе обслуживания, детали в модели производства, документы в модели до- кументооборота и др. В нашем примере заявками будут посетители банка, а объект source будет моделировать их приход в банковское отделение.

 
 

Рис. 6

Объект queue моделирует очередь клиентов, ожидающих обслуживания. Объект delay моделирует задержку. В нашем примере он будет имитиро-

вать банкомат, тратящий определенное время на обслуживание клиента.

Объект sink обозначает конец блок-схемы.

3. Запуск модели.

Для каждой модели, созданной в Enterprise Library, автоматически созда- ется блок-схема с наглядной визуализацией процесса, с помощью которой вы можете изучить текущее состояние модели, например, длину очереди, количе- ство обслуженных человек и т.д.

Для запуска модели (рис. 7) щелкните мышью по кнопке Запустить. От- кроется окно с презентацией запущенного эксперимента. AnyLogic автоматиче- ски помещает на презентацию каждого простого эксперимента заголовок и кнопку, позволяющую запустить модель и перейти на презентацию, нарисован- ную вами для главного класса активного объекта этого эксперимента (Main).

Щелкните по этой кнопке. AnyLogic переключится в режим работы моде- ли. С помощью визуализированной блок-схемы вы можете проследить, сколько человек находится в очереди, сколько человек в данный момент обслуживается и т.д.


 

Рис. 7

 

На рис. 8 видно, что 4 человека стоят в очереди, а 23 человека покинули очередь (блок queue), из них 22 обслужили (блок sink), а один еще обслужива- ется у банкомата (блок delay).

Рис. 8

С помощью кнопок панели инструментов Замедлитьи Ускоритьможно изменить скорость выполнения модели. Во время выполнения модели можно следить за состоянием любого блока диаграммы процесса с помощью окна инспекта этого объекта. Чтобы открыть окно инспекта, щелкните мышью по значку блока. В окне инспекта будет отображена базовая информация по выде- ленному блоку, например, для блока Queue будет отображена вместимость оче- реди, количество заявок, прошедшее через каждый порт объекта, и т.д.


4. Изменение данных модели.

Задайте данные модели, изменяя свойства созданных объектов (рис. 9).

В свойстве interarrivalTime объекта source укажите, как часто в отделение приходят клиенты – exponential(0.67).

Рис. 9

Интервал между приходом клиентов распределен экспоненциально со средним значением, равным 1.5 единицы модельного времени. Заметьте, что аргумент функции exponential() равен 0.67, потому что в качестве аргумента за- дается интенсивность прихода клиентов.

Функция exponential() является стандартной функцией генератора слу- чайных чисел AnyLogic. AnyLogic предоставляет функции и других случайных распределений, таких как нормальное, равномерное, треугольное и т.д. За де- тальным описанием функций и их параметров обращайтесь к руководству пользователя или справочнику классов (см. методы класса Func). Для вызова руководства пользователя, справочника классов AnyLogic выберите соответст- вующие пункты меню Справка.

В свойстве capacity объекта queue (рис. 10) задайте максимальную длину очереди – 15.

Рис. 10


В свойстве delayTime объекта delay (рис. 11) задайте время задержки (время обслуживания) – triangular( 0.8, 1, 1.3 ).

Рис. 11

Обслуживание одного клиента занимает примерно 1 минуту. Здесь время обслуживания распределено по треугольному закону со средним значением, равным 1 минуте, минимальным – 0.8 и максимальным – 1.3 минуты.

Запустите модель и проанализируйте ее работу.

5. Сбор статистики.

AnyLogic позволяет производить сбор сложной статистики. Для этого нужно лишь включить у объекта режим сбора статистики, поскольку по умол- чанию он отключен для повышения скорости выполнения модели.

В системе собирается статистика по длине очереди для блока queue (length) и статистика по коэффициенту использования для блока delay (utiliza- tion). Чтобы включить сбор статистики для объекта, установите переключатель Включить сбор статистикина вкладке Основныесвойств объекта.

Запустите модель и просмотрите в окне инспекта статистику для блоков queue и delay. Можно также просмот







Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2017 zdamsam.ru Размещенные материалы защищены законодательством РФ.