По курсу
ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ
Для студентов дневного отделения
направление 38.03.05 «Бизнес-информатика»
Квалификация бакалавр
(III курс)
Санкт-Петербург
Рекомендовано научно-методическим советом университета
Методические указания к выполнению практических работ по курсу «Имитационное моделирование» для студентов дневного отделения направления 38.03.05 ”Бизнес-информатика” (III курс).
Составители: к.т.н., профессор Е.Е. Иванов
К.т.н., доцент Д.А. Шустов
Рецензент: к.э.н., доцент М.И. Барабанова
ОБЩИЕ СВЕДЕНИЯ
Общий вид задачи имитационного моделирования.
Для моделирования необходимо создать модель и провести ее исследование. Перед созданием модели требуется конкретизировать цели моделирования. После исследования надо выполнить обработку и анализ результатов моделирования.
Процесс создания моделей проходит несколько стадий. Он начинается с изучения (обследования) реальной системы, ее внутренней структуры и содержания взаимосвязей между ее элементами, а также внешних воздействий и завершается разработкой модели. В укрупненном плане имитационное моделирование предполагает наличие следующих этапов:
1. Разработка концептуальной модели.
2. Подготовка исходных данных.
3. Выбор средств моделирования.
4. Разработка программной модели.
5. Проверка адекватности и корректировка модели.
6. Планирование машинных экспериментов.
7. Моделирование ("прогоны").
8. Анализ результатов моделирования.
Для одного и того же объекта можно составить множество моделей. Они будут отличаться степенью детализации и учета тех или иных особенностей режимов функционирования объекта. Поэтому все этапы имитационного моделирования пронизаны заранее сформулированной целью исследования.
Вариант задачи имитационного моделирования.
Одной из наиболее простых и наглядных задач имитационного моделирования является задача массового обслуживания с одним элементом обслуживания. В теории массового обслуживания этот элемент называется одноканальным устройством или прибором. Рассмотрим систему, состоящую из одного человека, выполняющего обслуживание определенного типа.
Рис. 1-1. Одноканальная система массового обслуживания.
"Клиенты" приходят к такому "обслуживающему прибору" в случайные моменты времени, ждут своей очереди (при ее наличии), их обслуживают по дисциплине FIFO (First In First Out) -первым пришел - первым обслужен. На рисунке цепочка кружочков - очередь заявок ожидающих обслуживания, квадрат - обслуживающий прибор, кружок внутри квадрата - заявка, находящаяся на обслуживании. Система, состоящая из обслуживающего прибора, заявки, находящейся на обслуживании, и ожидающих обслуживания заявок, называется системой массового обслуживания (СМО).
Интервал времени между последовательными моментами прибытия заявок в систему является случайной величиной. Время выполнения обслуживания также является случайной величиной. Предметом исследования являются распределения системных величин, зависящих от указанных. Основными системными величинами являются следующие:
· число заявок, прибывших на обслуживание за заданный промежуток времени;
· число заявок, которые поступили на обслуживание сразу же по прибытии;
· среднее время пребывания заявок в очереди;
· средняя длина очереди;
· максимальная длина очереди;
· нагрузка прибора - доля времени потраченного прибором на обслуживание в течении заданного промежутка времени.
Системные величины представляют особый интерес при изучении в условиях присутствия некоторой стоимостной функции. Например, если при появлении потенциального клиента оказывается слишком много ожидающих, клиент может уйти. В этом случае обслуживающий терпит убыток.
Практическое занятие № 1. Общие сведения об имитационном моделировании. Система имитационного моделирования GPSS. Интерфейс.
При выполнении практических работ будет использоваться инструментальная программная система GPSS World – система имитационного моделирования общего назначения. Эти инструментальные средства разработаны для работы в среде Windows 95/98/2000/XP/7. Будем в дальнейшем для простоты обозначать GPSS World просто GPSS. После запуска GPSS на экран монитора выводится основное окно (рис 1-2).
Рисунок 1-2. Основное окно.
Как и все окна среды Windows оно содержит заголовок окна, основное полосковое меню с опциями File, Edit, Search, View, Command, Window, Help. Ниже расположена панель инструментов с кнопками для выполнения наиболее употребимых операций. Эта панель может быть отключена или включена щелчком мыши по пунктам меню Edit/Toolbar. Нижняя строка окна является строкой состояния и служит для подсказки пользователю о состоянии и режимах работы GPSS.
Для ознакомления с основными приемами работы средствами GPSS необходимо использовать простейшую модель – пример, представленный в разделе «Общие сведения». Для этого необходимо щелкнуть пункт File/Open и в появившемся окне выбрать файл S1.gps и щелкнуть кнопку «Открыть» (рисунки 1-3 и 1-4).
Рисунок 1-3.
Рисунок 1-4.
В основном окне GPSS появится текст модели (рисунок 1-5).
Рисунок 1-5.
Не вдаваясь в подробности, рассмотрим структуру текста модели. При наборе текста различают следующие поля (части) строки слева направо: поле метки, поле оператора (еще оператор называют блоком), поле операндов и поле комментария. Длина строки не более 250 символов. Если в первой позиции строки стоит символ «*» или «;», то данная строка является строкой комментария, т.е. невыполняемой при моделировании строкой. Если необходимо комментировать оператор, то поле комментария должно начинаться с символа «;». Переход из одного поля в другое проще всего осуществлять нажатием клавиши «TAB». При наборе текста модели можно использовать как строчные, так и прописные буквы (регистр устанавливают в зависимости от желания выделить ту или иную часть текста).
Если необходимо вставить строку, то следует щелкнуть мышью в начале строки, после которой необходимо вставить новую. Затем выбрать пункт меню Edit/Insert Line (рисунок 1-6).
Рисунок 1-6.
В появившейся пустой строке можно ввести необходимый оператор, например, оператор BUFFER (рисунок 1-7).
Рисунок 1-7.
Для удаления строки необходимо щелкнуть мышью в любом ее месте и выбрать пункт меню Edit/Delete Line (Рисунок 1-8).
Рисунок 1-8.
Большинство операторов можно включать в текст модели, используя специальную таблицу «Insert GPSS Block into Block Object», которую можно вызвать, используя меню Edit/Insert GPSS Blocks… (Рисунок 1-9).
Рисунок 1-9.
На экран выводится окно-таблица «Insert GPSS Block into Block Object» (Рисунок 1-10).
Рисунок 1-10.
Выберем BUFFER. Выводится окно этого оператора (Рисунок 1-11). После щелчка по кнопке «OK» в соответствующем месте вставляется строка с оператором BUFFER (Рисунок 1-12).
Рисунок 1-11.
Рисунок 1-12.
Удалим строку, приведя модель к исходному виду (Рисунок 1-5).
Для запуска модели ее необходимо предварительно транслировать. Трансляция осуществляется выбором пункта меню Command/Create Simulation (Рисунок 1-13).
Рисунок 1-13.
На экран выводится окно «JOURNAL» (Рисунок 1-14).
Рисунок 1-14.
Если в тексте модели отсутствуют синтаксические ошибки, то в окне появляются только две строки: системные дата и время начала трансляции и готовности системы к процессу моделирования. При наличии синтаксических ошибок будут выведены номера строк с ошибками, с указанием вида ошибки.
Процесс моделирования в динамике можно наблюдать, используя окно блоков «BLOCK ENTITIES». Это окно можно вывести на экран, используя пункты меню Window/Simulation Window/Blocks Window (Рисунок 1-15).
Рисунок 1-15.
На рисунке 1-16 представлено окно «BLOCK ENTITIES» с исходным состоянием модели до начала моделирования.
Рисунок 1-16.
Для запуска модели необходимо выбрать пункт меню Command/START (Рисунок 1-17). Появится окно «Start Command». В поле этого окна по умолчанию содержится команда START 1 (Рисунок 1-18).
Рисунок 1-17.
Рисунок 1-18.
Заменим команду START 1 на команду START 100 и щелкнем кнопку «OK». Начнется процесс моделирования, который можно наблюдать по изменениям содержимого окна «BLOCK ENTITIES». Вид этого окна по окончании моделирования представлен на рисунке 1-19. Это окно будет расположено ниже окна «REPORT», которое выводится автоматически (Рисунок 1-20). Необходимо обратить внимание, что при использовании окна «BLOCK ENTITIES» моделирование происходит медленно. Отключим (закроем) это окно и вновь выполним моделирование.
Рисунок 1-19.
Рисунок 1-20.
Если просто выполнить команду START 100, то в системе GPSS моделирование будет осуществляться не с исходного состояния модели, а будет продолжено. Что бы привести модель к исходному состоянию необходимо выполнить команду CLEAR (очистить). Однако, предварительно закроем окно «REPORT», ответив «Нет» на запрос о сохранении, и посмотрим содержимое журнала (окна «JOURNAL»), представленное на рисунке 1-21.
Рисунок 1-21.
В журнале приводятся системные дата и время запуска моделирования, окончания моделирования и вывода отчета. Приведение модели в исходное состояние осуществляется через пункты меню Command/CLEAR
Рисунок 1-22.
После этого запустим командой START 100 процесс моделирования. Результат в виде окна «REPORT» появится незамедлительно. Закрыв без сохранения это окно, получим содержимое окна «JOURNAL» (Рисунок 1-23).
Рисунок 1-23.
Обратите внимание, что в журнале регистрируются все действия пользователя и реакция системы на эти действия.
Если есть желание сохранить модель или сохранить ее под другим именем, то необходимо войти в пункт меню File и выбрать необходимую опцию. Все файлы – модели имеют расширение «имя.gps.».
Выполнение работы.
Выйти из системы GPSS. Запустить систему. Выполнить File/New и в открывшемся окне выбрать пункт Model. В появившемся окне набрать текст модели (рис. 1-5). Выполнить все операции рассмотренные выше.
Практическое занятие № 2. Простейшая модель. Реализация в средствами GPSS.
При выполнении практических работ будет использоваться инструментальная программная система GPSS World – система имитационного моделирования общего назначения. Эти инструментальные средства разработаны для работы в среде Windows 95/98/2000/XP/7. Будем в дальнейшем для простоты обозначать GPSS World просто GPSS.
Общие сведения.
В системе GPSS операторы модели - это операторы блоков, команды или PLUS-процедуры. Задача исследователя при реализации модели – создать такую последовательность операторов модели, при которой поведение модели как можно более точно соответствовало поведению реальной системы
В любой модели обслуживания происходит перемещение неких элементов отображающих перемещения в моделируемом объекте. Например, финансовый поток, поток материальных ценностей, поток клиентов и тому подобное. Такие элементы в имитационном моделировании называются транзактами.
Транзакт – модельное отображение элемента потока в моделируемом объекте. Транзакты входят в модель и покидают модель в определенные моменты времени, в соответствии логическими потребностями, которые возникают в модели. Модель представляется в виде, блоков, выполняющих свои, специфические функции. Транзакт перемещается от блока к блоку. Когда транзакт входит в блок, на исполнение вызывается соответствующая подпрограмма, и далее транзакт (в общем случае) пытается войти в следующий блок. Продвижение транзакта продолжается до событий:
• транзакт входит в блок задержки транзакта на некоторое определенное время;
• транзакт входит в блок удаления транзакта из модели;
• транзакт "пытается" войти в следующий блок, который "отказывается" принять этот транзакт. Транзакт остается в текущем блоке и продолжает движение после разрешения войти в следующий блок.
Если транзакт остается на месте, то начинается перемещение в модели другого транзакта.
Модель может содержать любое количество сегментов, определяющих последовательность процедур обработки транзактов. Сегменты независимы друг от друга. Структура блок-схемы модели отличается от структуры схемы алгоритма программы.
При моделировании все события должны происходить на фоне модельного времени. Транзакты поступают в систему, а когда подходит очередь, поступают на обслуживание. После завершения обслуживания транзакт покидает систему. Интерпретатор GPSS должен автоматически обслуживать таймер модельного времени.
Особенности GPSS и его таймера:
• таймер GPSS регистрирует целые значения;
• единицу времени, которая может быть отмечена таймером, определяет пользователь;
• GPSS является интерпретатором для “следующего события” - в данный момент модельного времени таймер продвигается к ближайшему значению времени, на которое запланировано следующее событие;
• интервал модельного времени пропускается, если на этом интервале нет событий - время прогона модели не зависит от единицы времени, выбранной пользователем.
В блок-схеме модели каждый блок занимает вполне определенное место. Глаголы, описывают основные функциональные назначения блоков. Каждый из блоков характеризуется своим собственным глаголом, например, GENERATE (ГЕНЕРИРОВАТЬ), LEAVE (ВЫЙТИ) и т.п. Операнды блоков задают информацию, специфичную для выполняемого действия. Число операндов зависит от типа блока. Операнды некоторых блоков должны быть специфицированы всегда, а другие могут задаваться или не задаваться. Интерпретатор предполагает значения этих операндов заданными по умолчанию.