Автор работы: Пользователь скрыл имя, 24 Марта 2012 в 15:16, реферат
Целью работы является обоснование необходимости использования программных продуктов компьютерного имитационного моделирования при анализе и оценке деятельности предприятий, а также при принятии управленческих решений.
ВВЕДЕНИЕ
Глава 1. ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ ИМИТАЦИОННОГО МОДЕЛИРОВАНИЯ
1.1. Понятие имитационного моделирования
1.2. Этапы имитационного моделирования
1.3. Анализ подходов и программного обеспечения применяемого в имитационном моделировании
Глава 2. ПАКЕТ ИМИТАЦИОННОГО МОДЕЛИРОВАНИЯ ANYLOGIC
2.1. История развития программного продукта AnyLogic
2.2. Основные библиотеки и конструкции моделирования в среде AnyLogic
2.3. Основные возможности и средства имитационного моделирования в среде AnyLogic
Глава 3. ПРАКТИЧЕСКОЕ ИСПОЛЬЗОВАНИЕ ТЕХНОЛОГИИ ИМИТАЦИОННОГО МОДЕЛИРОВАНИЯ ДЛЯ АНАЛИЗА ЭКОНОМИЧЕСКИХ ПРОЦЕССОВ
3.1. Дискретно-событийное моделирование в AnyLogic
3.1. Модель работы операционного зала банка с использованием среды AnyLogic
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
Средства AnyLogic, поддерживают моделирование дискретно-событийных систем. Эти средства включают сущности, порождающие события, и сущности, позволяющие изменять состояние системы как реакцию на наступившие события.
Основными средствами порождения событий в модели являются таймеры и стейтчарты (statecharts). Кроме базовых средств разработки дискретно-событийных систем, пользователю доступна библиотека Enterprise Library, в которой собраны высокоуровневые средства – блоки, позволяющие осуществлять моделирование широкого класса дискретно событийных систем массового обслуживания без использования программного кода на основе применения заранее определенных блоков библиотеки.
Библиотечные блоки значительно упрощают разработку указанных моделей в стиле drag and drop (перетащить и оставить).
Библиотечные элементы в моделях могут быть дополнены низкоуровневыми средствами, которые включают:
– стейтчарты (карты состояний), позволяющие графически описать сложное дискретное поведение;
– таймеры и события, позволяющие выразить изменение поведения объекта во времени или наступлении некоторого события;
– возможности определения своих собственных типов транзакций (сообщений) для взаимодействия активных объектов;
– механизм обмена активных объектов сообщениями через порты.
Стейтчарты – это средство визуального задания сложного поведения объектов, включающее иерархические состояния, разветвления (условные переходы), исторические состояния т. п. Дискретно-событийные системы меняют свое состояние мгновенно, под влиянием событий. Переходы могут быть активизированы полученными сообщениями, исчерпанием таймаута, возникновением событий и условиями. Сообщения могут быть произвольных типов, они посылаются и принимаются через порты.
В AnyLogic могут использоваться статические и динамические таймеры. В дискретно-событийных моделях необходимо включение стохастики в модель. Для этого в AnyLogic предусмотрены более 35 различных генераторов распределенных случайных величин.
AnyLogic позволяет проведение экспериментов с моделью, выполнение анализа рисков, оптимизацию параметров модели.
Библиотека Enterprise Library содержит несколько десятков блоков с предопределенной функциональностью, полное описание которых содержится в справочных материалах. Основные группы блоков:
– блоки управления потоком заявок;
– блоки классических ресурсов;
– блоки обработки;
– блоки транспортировки;
– блоки транспортировки по сети.
Блоки для управления потоком заявок имеют желтый цвет. К ним относятся: источник заявок (Source), сток (Sink), очередь заявок (Queue), разветвитель потоков (Split), сортировка заявок SelectOutput и др. Данная группа блоков удобна для создания моделей систем, относящихся к системам массового обслуживания.
Группа блоков классических ресурсов включает в себя блоки Resource, ProcessQ и др. Объект Resource может создавать, хранить, выдавать и забирать ресурсы. Объект ProcessQ занимает ресурсы для заявки, задерживает заявку, а затем освобождает занятые ей ресурсы.
Группа блоков обработки и включает два блока: задержку (Delay) и сервер (Server). Блок задержки удерживает каждую поступившую на его вход заявку на определенное время. Число возможных заявок, которые одновременно и независимо могут быть задержаны в одном блоке, определено параметром capacity. Время задержки может задаваться как реализация случайной величины, распределенной по некоторому закону. Блок задержки моделирует независимую обработку заявок, то есть время задержки каждой заявки в блоке не зависит от числа задержанных заявок, находящихся в блоке одновременно.
Сервер должен обеспечить такой режим, при котором каждая заявка получит определенное обслуживание. При этом на сервере на обслуживании могут находиться несколько заявок, поэтому время сервера делится между всеми заявками, одновременно находящимися в обработке.
Группа блоков транспортировки по сети предназначены для имитации заявок, время обслуживания которых в системе зависит от геометрических характеристик системы. Подобными особенностями обладают не только организации социального обслуживания населения, например, больницы, банки, но и производственные системы с конвейерами, складские системы и т. п.
3.1. Модель работы операционного зала банка с использованием среды AnyLogic
Рассмотрим типичную проблему массового обслуживания и то, как эта проблема может быть легко решена с использованием одной из библиотек, разработанных в AnyLogic. Системы массового обслуживания являются типичными системами дискретно-событийного типа. Среда AnyLogic открыта для разработки библиотек совершенно различного назначения.
Из-за однотипности, похожести задач, решаемых моделями систем массового обслуживания, удобно отдельные блоки (генераторы заявок, обслуживающие приборы, очереди и т. п.) реализовать как набор (библиотеку) объектов, из которых может собираться структура конкретной модели и параметры которых можно настраивать в зависимости от характеристик моделируемой системы. Именно для этих целей в AnyLogic создана библиотека Enterprise Library. Она предоставляет высокоуровневый интерфейс для быстрого создания дискретно-событийных моделей с помощью блок-схем. Построим с помощью элементов библиотеки модель системы, предоставляющей сервисы – операционный зал банка.
Рассмотрим систему, предоставляющую сервисное обслуживание – операционный зал банка. В банке есть три кассира, обслуживающие клиентов по различным типам операций и банкомат, использующий для осуществления операций с банковской пластиковой карточкой. Существуют две разные очереди : первая на обслуживания к кассирам, вторая - к банкомату. После обслуживания кассиром либо у банкомата, клиент покидает операционный зал банка.
Цель моделирования такой системы может быть разной. Однако наиболее типичной целью исследования в подобных задачах массового обслуживания является оценка эффективности системы, т. е. нахождение числовых значений характеристик, описывающих качество обслуживания системой потока посетителей. Такими характеристиками является время, проведенное клиентом в банке, длина очереди, которую он отстоял, процент времени занятости обслуживающего персонала.
Клиенты приходят в банк обычно в случайные моменты времени. У каждого клиента свои вопросы по своему счету или по будущему кредиту, поэтому время обслуживания тоже случайно. Оплата в кассе либо обслуживание в банкомате занимает случайное время, поскольку один посетитель может совершить один тип операций, а другой несколько. Операционный зал банка является типичной системой массового обслуживания (СМО). Такую систему можно представить моделью с небольшим числом типов абстрактных объектов: клиенты представляются заявками на обслуживание, а объекты, выполняющие обслуживание (банкомат, кассиры), представляются приборами, обрабатывающими заявки. Объекты типа «Очередь» имитируют ожидание без обработки.
Структура имитационной модели, которая даст ответ на поставленные вопросы, должна отражать структуру реальной системы массового обслуживания: заявки (клиенты банка) генерируются (входят в систему), становятся в очереди к обслуживающим приборам, а после полного обслуживания покидают систему. Структура модели операционного зала банка в данных терминах имеет вид рис. 3.1.
Рис.3.1 Структура модели операционного зала банка
Рисунок 3.1 показывает структуру модели операционного зала банка на том уровне абстракции, который достаточен для ответа на подобные вопросы. Блоки, представленные на рис. 3.1, часто используются для моделирования систем массового обслуживания. Все такие блоки есть в библиотеке Enterprise Library.
Перенесем модель операционного зала банка в среду AnyLogic. Создаем новый проект, открываем библиотеку Enterprise Library и в окно структуры корневого активного объекта методом drag-and-drop вносим из библиотеки следующие элементы, представленные на рис. 3.2. Эта структура собирается из элементов библиотеки AnyLogic, содержащей типовые блоки: генераторы заявок, очереди, задержки, ресурсы, блок стока.
Рис. 3.2 Структура модели операционного зала в среде AnyLogic
Первым объектом в диаграмме процесса является объект типа Source. Объект Source генерирует заявки определенного типа. Заявки представляют собой объекты, которые производятся, обрабатываются, обслуживаются, или еще каким-нибудь образом подвергаются действию моделируемого процесса. В нашем примере заявками будут посетители банка, а объект Source будет моделировать их приход в банковское отделение.
Объект SelectOutput является блоком принятия решения. В зависимости от заданного нами условия, заявка, поступившая в объект, с определенной вероятностью будет поступать на один из двух выходных портов объекта.
Следующий объект - Queue. Он моделирует очередь заявок, ожидающих приема объектом, следующим за данным в диаграмме процесса. В нашем случае он будет моделировать очередь клиентов, ждущих освобождения банкомата.
Следующим в нашей диаграмме процесса следует объект Delay. Он задерживает заявки на заданный период времени, представляя в нашей модели банкомат, у которого посетитель банковского отделения тратит свое время на проведение необходимой ему операции.
Объект Service - захватывает для заявки заданное количество ресурсов, задерживает заявку, а затем освобождает захваченные ею ресурсы. В нашей модели этот объект будет моделировать обслуживание клиента кассиром, а объект ResourcePool (в нашем примере его имя Tellers) задает ресурсы определенного типа (в нашей модели это будут банковские кассиры).
Объект Sink моделирует завершение обработки заявки в системе.
Настроим параметры включенных в модель блоков из библиотеки.
Пусть в нашем примере в соответствии с измерениями (или предположениями) поток клиентов в банк является случайным, интенсивность прибытия клиентов составляет 0,67 в единицу времени, при этом вместимость очереди к банкомату будет составлять 10 человек.
Обслуживание одного клиента банкоматом занимает примерно 1 минуту. Зададим время обслуживания, распределенное по треугольному закону со средним значением, равным 1, минимальным - равным 0,8 и максимальным – 1,3 минутам. В поле время задержки введем функцию triangular(0,8, 1, 1.3).
Обслуживание одного клиента кассиром занимает примерно 5 минут. Зададим время обслуживания, распределенное по треугольному закону со средним значением, равным 6, минимальным - равным 2,5 и максимальным - 11 минутам. В поле время задержки введем функцию triangular (2,5, 6,11).
Для объекта Tellers зададим число ресурсов равное 3, что в нашем примере соответствует трем кассирам.
Оставим свойства объекта SelectOutput без изменений. Пусть Выход true выбирается с заданной вероятностью, а вероятность [0..1] равна 0.5. В этом случае к кассирам и банкомату будет приходить примерно равное количество клиентов. Запустим модель на выполнение.
Хотя мы можем анализировать работу запущенной нами модели с помощью визуализированной диаграммы процесса (рис.3.3), но куда удобнее было бы иметь более наглядную визуализацию моделируемого нами с помощью анимации. В этом примере создадим визуализированный план банковского отделения.
Рис. 3.3 Визуализированной диаграммы процесса обслуживания клиентов в отделении банка
Для этого воспользуемся палитрой Презентация, которая содержит элементы, используемые для рисования презентаций моделей: фигуры, с помощью которых можно рисовать сложные презентации, а также элементы управления, с помощью которых можно сделать презентации интерактивными.
В нашем примере для анимации модели выберем:
- круг, который будет обозначать в анимации банкомат (oval);
- две ломаные, которые будут представлять очереди к банкомату (polyline) и кассирам (queueBeforeTellers) соответственно;
- элемент человек (Person), чтобы проследить его местонахождение клиента на каждом этапе;
- ломаная из трех точек, чтобы указать на анимации места, в которых будут находиться кассиры(tellerPlaces);
- изображения занятого (busyTeller) и свободного кассира (idleTeller).
Зададим круг в качестве фигуры анимации банкомата и на странице свойств объекта Delay вводим Oval в поле Фигура анимации. Сделаем так, что цвет круга будет меняться в зависимости от того, обслуживает ли банкомат в данный момент времени клиента или нет. Для этого перейдем на страницу Динамические панели свойств и в поле Цвет заливки и введем следующую строку: delay.size() > 0 ? red : white. Здесь delay – это имя нашего объекта Delay. Функция size() возвращает число человек, обслуживаемых в данный момент времени. Если банкомат занят, то цвет кружка будет красным, в противном случае - белым.
Рис. 3.4 Окно свойств объекта Delay
Зададим ломаные в качестве фигур анимации очереди к банкомату и кассирам. На странице свойств объектов Queue и Service вводим polyline и queueBeforeTellers в поле Фигура анимации.
Информация о работе Имитационное моделирование экономических процессов