Концептуальное проектирование систем в Anylogic 7 и GPSS World
Покупка
Тематика:
Программирование и алгоритмизация
Издательство:
ИНТУИТ
Автор:
Боев Владислав Добринов
Год издания: 2016
Кол-во страниц: 450
Дополнительно
Курс предназначен для проведения практических занятий по дисциплинам, связанным с проектированием и компьютерным моделированием систем с использованием систем имитационного моделирования.
Предлагаются различные методики разработки имитационных моделей с применением инструментальных средств AnyLogic 7 и GPSS World.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 01.03.02: Прикладная математика и информатика
- 01.03.04: Прикладная математика
- 02.03.02: Фундаментальная информатика и информационные технологии
- 03.03.02: Прикладная математика и информатика
- 04.03.02: Химия, физика и механика материалов
- 09.03.03: Прикладная информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Концептуальное проектирование систем в Anylogic 7 и GPSS World 2-е издание, исправленное Боев В.Д. Национальный Открытый Университет “ИНТУИТ” 2016 2
Концептуальное проектирование систем в Anylogic 7 и GPSS World/ В.Д. Боев - М.: Национальный Открытый Университет “ИНТУИТ”, 2016 Курс предназначен для проведения практических занятий по дисциплинам, связанным с проектированием и компьютерным моделированием систем с использованием систем имитационного моделирования. Предлагаются различные методики разработки имитационных моделей с применением инструментальных средств AnyLogic 7 и GPSS World. (c) ООО “ИНТУИТ.РУ”, 2014-2016 (c) Боев В.Д., 2014-2016 3
Введение “Концепция проекта - это модель проекта. В ней должны быть на должном уровне обобщения выделены ключевые факторы (даны ответы на ключевые вопросы). Тебе, в процессе написания концепции (подготовки модели) должно стать понятно “что делать?” и “на каком основании это делать?” - ты должен почувствовать конструкцию процесса и понять, как ею шевелить” (Клейн ссылка: www.zen.ru - www.zen.ru). Пособие предназначено для проведения практических занятий по дисциплинам “Проектирование и моделирование систем”, “Моделирование”, “Компьютерное моделирование”, “Моделирование сложных систем и процессов” с использованием систем имитационного моделирования (ИМ). При ИМ дискретных процессов в современной практике в качестве инструментального средства получила широкое распространение система общецелевого назначения GPSS World, являющаяся последним современным представителем семейства языков моделирования GPSS. В последние годы наряду с ней применяется система моделирования AnyLogic (новая версия 7). AnyLogic разработана компанией XJTechnologies на основе современных концепций в области информационных технологий и результатов исследований в теории гибридных систем и объектно-ориентированного моделирования. Это комплексный инструмент, охватывающий в одной модели основные в настоящее время направления моделирования: дискретно-событийное, системной динамики, агентное. Многоподходность не характерна для существующих систем моделирования. Агентные модели не позволяет создавать ни одна из известных систем моделирования, в том числе и GPSS World. Необходимым условием для оценки возможностей новой системы моделирования является её способность воспроизводить модели одинаковых процессов с не меньшей эффективностью, чем это сделано с помощью других систем, в данном случае GPSS World. Эффективность (точность и достоверность) получаемых результатов GPSS World подтверждена многолетней практикой использования при проектировании сложных систем. AnyLogic существует уже более 10 лет, успешно применяется в различных предметных областях, в бизнес-среде. В статьях [1, 2, 3] и монографии [4] показана адекватность AnyLogic классическому инструменту дискретно-событийного моделирования GPSS World. Поэтому в пособии вопросы анализа и проектирования систем рассматриваются на примерах использования AnyLogic 6 и 7 и GPSS World как одних из универсальных средств моделирования проектных решений. Изложение ведётся согласно подходу, который можно назвать “обучение на примерах” или “делай как мы”. В работе не ставилась задача дать всестороннюю оценку достоинствам и недостаткам обеих систем ИМ. Подготовленный читатель может, исходя из стоящих перед ним целей моделирования проектируемой системы, сформулировать оценки такого плана. Основное внимание сосредоточено на сравнительной оценке результатов моделирования, полученных на моделях одной и той же проектируемой системы. Адекватность достигалась также стремлением к идентичной реализации всех функций 4
проектируемой системы при построении моделей средствами GPSS World и AnyLogic7. Последнее обстоятельство привело автора к необходимости детально изложить методики построения моделей, проведения экспериментов, интерпретации полученных результатов, что, несомненно, будет способствовать качественному проведению практических занятий. В работе с целью получения обучаемыми всесторонних знаний рассматривается моделирование процессов в разнородных системах, но с использованием дискретнособытийного подхода. Модели демонстрируют достижение и учебной цели, и цели исследования. Возможна и практическая их пригодность. Для проверки качества приобретённых знаний приводятся темы проектирования. Новая версия AnyLogic 7 позволяет использовать модели, разработанные в среде AnyLogic 6, но модернизация их в какой-то части невозможна. Это, а также освоение новых информационных технологий и побудило автора к полной переработке пособия [1]. Результаты моделирования в AnyLogic 6 оставлены для сравнительной оценки с результатами в AnyLogic 7. В приложении даны условные обозначения объектов Библиотеки моделирования процессов и элементов палитр AnyLogic7. Большое спасибо сотрудникам фирмы “Экс Джей Текнолоджис” П. А. Лебедеву, С. А. Суслову за плодотворное сотрудничество и рекомендации по построению моделей, а также руководству фирмы за предоставленную версию AnyLogic 7. За допечатную подготовку автор благодарен Д. В. Боеву. Автор 5
Модель обработки запросов сервером Модель в GPSS World При имитационном моделировании с использованием специальных инструментальных средств, например, GPSS World, в общем случае решаются две задачи. Назовем их прямой и обратной. Прямая задача заключается в нахождении оценки математического ожидания какоголибо показателя моделируемой системы при заданном времени ее функционирования. Обратная задача состоит в определении оценки математического ожидания времени функционирования системы, за которое какой-либо её показатель достигает заданного значения. Решение этих задач, особенно обратной задачи, имеет свои особенности. Рассмотрим эти особенности далее на примерах. Начнём построение GPSS-моделей с прямой задачи. Решение прямой задачи Постановка задачи Сервер обрабатывает запросы, поступающие с автоматизированных рабочих мест (АРМ) с интервалами, распределенными по показательному закону со средним значением T1 = 2 мин. Сервер имеет входной буфер ёмкостью 5 запросов. Вычислительная сложность запросов подчинена нормальному закону с математическим ожиданием оп и среднеквадратическим отклонением оп. Производительность сервера оп/с. В случае полной занятости входного буфера поступающий запрос теряется. Построить имитационную модель обработки запросов сервером для определения оценки математического ожидания количества запросов (дальше - количества запросов), обработанных сервером за время функционирования T = 1 час, и оценки математического ожидания вероятности обработки запросов (дальше - вероятности обработки запросов). Уяснение задачи моделирования Сервер представляет собой однофазную систему массового обслуживания разомкнутого типа с ожиданием и с отказами. В модели для имитации источника запросов следует использовать блок GENERATE, для имитации сервера как одноканального устройства - блоки SEIZE и RELEASE, для 6
имитации буфера - QUEUE и DEPART, обработки запросов - ADVANCE. В модели должны быть следующие элементы: задание исходных данных; описание арифметических выражений; сегмент имитации поступления и обработки запросов; сегмент задания времени моделирования и расчета результатов моделирования. Серверу дадим имя Server. Для вывода из модели транзактов, имитирующих обработанные и потерянные запросы, используем блоки TERMINATE с метками ObrZap и PotZap соответственно. Для счета количества всех запросов используем метку KolZap. Выберем масштаб: 1 единице масштабного времени соответствует 1 с. Так как среднее значение интервалов поступления запросов , мин. то теперь это будет 120 ед. мод. времени. Рассчитаем количество прогонов, которые нужно выполнить в каждом наблюдении, т. е. проведем так называемое тактическое планирование эксперимента. Пусть результаты моделирования (вероятность обработки запросов) нужно получить с доверительной вероятностью и точностью Расчет проведем для худшего случая, т. е. при вероятности , так как до эксперимента неизвестно: Блок-диаграмма модели Построим блок-диаграмму модели для решения прямой задачи, т. е. сегмент имитации поступления и обработки запросов и сегмент задания времени моделирования и расчета результатов моделирования (Рис. 1.1). Блок-диаграмма представляет собой набор стандартных блоков. Она строится так. Из множества блоков выбирают нужные, и далее выстраивают их в диаграмму для того, чтобы в процессе функционирования модели они как бы взаимодействовали друг с другом. Диаграмма сопровождается необходимыми комментариями. Использование блоков при построении моделей зависит от логических схем работы реальных систем, моделируемых на ЭВМ. Теперь приступим к написанию программы модели. 7
Рис. 1.1. Блок-диаграмма модели Программа модели Для задания исходных данных используем переменные пользователя. Они задаются с помощью команды EQU. Переменным пользователя даны такие же имена, как и в постановке задачи, но добавлен знак подчеркивания. Например, T1_, S1_ и т. д. Время моделирования зададим переменной пользователя VrMod. Арифметическая переменная для расчета времени обработки VrObr запроса на сервере: VrObr VARIABLE (Normal(2,(S1_#Koef),(S2_#Koef))))/Q_ 8
Переменная пользователя Koef введена для удобства изменения (пропорционального изменения) характеристик нормального закона распределения, которому подчиняется вычислительная сложность запросов. Особенно целесообразно использование этой переменной при проведении экспериментов. Вероятность обработки VerObr запросов на сервере будем определять как отношение количества обработанных N$ObrZap запросов к количеству всего поступивших N$KolZap запросов: VerObr VARIABLE N$ObrZap/N$KolZap В арифметическом выражении VerObr, например, N$ObrZap - системный числовой атрибут - количество транзактов, вошедших в блок с меткой ObrZap, а N$KolZap количество транзактов, вошедших в блок с меткой KolZap. Количество обработанных запросов определяется арифметическим выражением: Res VARIABLE INT(N$ObrZap/X$Prog) Все необходимое для написания программы модели имеется. Напишем программу модели для решения прямой задачи. ; Обработка запросов сервером. Прямая задача ; Задание исходных данных T1_ EQU 120 ; Средний интервал поступления запросов, с S1_ EQU 60000000 ; Среднее значение вычислительной сложности запросов, оп S2_ EQU 200000 ; Стандартное отклонение вычислительной сложности запросов, оп Q_ EQU 600000 ; Средняя производительность сервера, оп/с Emk EQU 5 ; Ёмкость входного буфера Koef EQU 1 ; Коэффициент изменения характеристик нормального распределения VrObr VARIABLE (Normal(9,(S1_#Koef),(S2_#Koef)))/Q_ VerObr VARIABLE N$ObrZap/N$KolZap Res VARIABLE INT(N$ObrZap/X$Prog) VrMod EQU 3600 ; Время моделирования, 1 ед. мод. времени = 1 с. ; Сегмент имитации обработки запросов GENERATE (Exponential(2,0,T1_)) ; Источник запросов KolZap TEST L Q$Server,Emk,PotZap ; Занят ли буфер? QUEUE Server ; Встать в очередь SEIZE Server ; Занять сервер DEPART Server ; Покинуть очередь к серверу ADVANCE V$VrObr ; Имитация обработки запроса SAVEVALUE SumTime+,M1; Время обработки всех запросов RELEASE Server ; Освободить сервер ObrZap TERMINATE ; Обработанные запросы PotZap TERMINATE ; Потерянные запросы ; Сегмент задания времени моделирования и расчета результатов GENERATE VrMod TEST L X$Prog,TG1,Met1 ; Если X$Prog < TG1, SAVEVALUE Prog,TG1 ; то X$Prog = TG1 9
Met1 TEST E TG1,1,Met2 ; Если TG1 = 1, то SAVEVALUE VerObr,V$VerObr ; расчет и сохранение в ячейке VerObr вероятности обработк SAVEVALUE Res,V$Res ; числа обработанных запросов SAVEVALUE TimeMean,(X$SumTime/N$ObrZap) Met2 TERMINATE 1 START 9604 ; Количество прогонов модели При расчете количества обработанных запросов Res в арифметическом выражении N$ObrZap/X$Prog используется число прогонов. В арифметическом выражении указано не явное число прогонов, а в виде содержимого ячейки X$Prog. Число прогонов заносится предварительно в эту ячейку по завершении первого прогона модели, но до того момента, когда из счетчика завершений TG1 будет вычтена первая единица. В этом случае арифметическое выражение не зависит от числа прогонов, которое может меняться на различных этапах создания и эксплуатации модели, в том числе и в зависимости от исходных данных, а также от точности и достоверности результатов моделирования. Поскольку количество обработанных запросов не может быть дробным числом, то для получения целого числа, записываемого в ячейку Res, используется процедура INT из встроенной библиотеки. Среднее время X$TimeMean обработки одного запроса определяется как отношение суммарного времени X$SumTime к количеству обработанных запросов N$ObrZap. В данной модели можно определять X$TimeMean как сумму средних времен обработки одного транзакта на сервере и среднего времени задержки в очереди. Для уменьшения машинного времени расчет искомых показателей производится не после каждого прогона, а после завершения последнего прогона, т. е. когда содержимое счетчика завершений будет равно единице (TG1 = 1). Ввод текста программы модели, исправление ошибок и проведение моделирования 1. Запустите GPSS World. 2. Закройте окно напоминания о необходимости обновления “Заметок”. Откроется главное меню. 3. Для ввода текста GPSS World имеет текстовый редактор. Откройте окно текстового редактора. Для этого выберите в меню File / New и в появившемся меню выберите Model. Нажмите Ok. 4. Наберите текст программы модели, т. е. создайте объект “Модель”. При вводе текста следует использовать клавишу [Tab]. Например, после набора Т1_ нужно нажать клавишу [Tab]. Интервалы табуляции установлены по умолчанию. 5. После ввода программы модели создайте объект “Процесс моделирования”, представляющий собой оттранслированный объект “Модель”. Для трансляции выберите Command / Create Simulation. По этой команде транслятор GPSS проверяет программу модели на наличие синтаксических ошибок. 6. При наличии синтаксических ошибок система в окне JOURNAL выдаст список сообщений об ошибках трансляции. Перейдите к п. 7. При отсутствии ошибок в окне JOURNAL появится сообщение Model Translation Begun. Ready. Перейдите к 10