160
Рис. 34. Задание динамического отображения очереди
Можно также выбрать режим динамического построения графика потока в транзактов в терминаторе (меню Результаты пункт Динамика
потока).
После установки всех необходимых значений параметров в меню
Моделирование нужно выбрать пункт Запуск модели (рис. 35).
Рис. 35. Запуск имитационной модели
Из общего меню модельного окна осуществляется также управление режимами трассировки, которая может помочь в отладке модели. В частности, имеется возможность (рис. 35):
выйти в режим трассировки после наступления конкретного события;
перейти в трассировку, если какой-то транзакт входит в определенный - узел или выходит из него;
отслеживать путь определенного транзакта по графу модели;
выйти в режим трассировки по показанию модельного таймера.
161
Вопрос 5. Результаты моделирования.
Основные
результаты
запуска
программной
модели
помещаются в таблицу, которая содержится в файле с параметрами задаваемыми оператором modend. На рис. 36 приводится пример таблицы с результатами моделирования для модели СМО:
НАЗВАНИЕ
МОДЕЛИ:
СМО
ВРЕМЯ
МОДЕЛИРОВАНИЯ:
15029.83
Лист: 1 2
№ узла
Наименование узла
Тип уз ла
Точ ка
Заг руз ка(
%
=
),
П
уть(к м)
M
[
t]
с ред нее время
C
[t]
к вад рат коэ ф
.в ар.
С
четч ик в
ходов и hol d
К
ол.
к ан.
О
cт.
тр.
С
остоя ни е узла в этот мом ент
101
Генератор ag
-
-
12.20 0.95 1229 1
1 открыт
102
Очередь queue
-
-
23.89 1.36 1229 1
1 открыт
103
Сервер serv
-
%= 73.0 8.94 0.91 1228 1
0 открыт
104
Терминатор term
-
-
32.82 0.77 1228 0
0 открыт
Рис. 36. Результаты моделирования для модели СМО
Строки таблицы представляют собой узлы модели, а столбцы – входные и выходные еѐ параметры. В столбцах записываются:
№ узла
Номер узла модели.
Наименование
узла
Имя узла модели.
Тип узла
Тип узла.
Точка
Номер последней точки пространства, в которой находится узел типа creat,
delet или proc на момент окончания моделирования.
Загрузка (%), Путь
(км)
Для узлов типа serv или proc - коэффициент использования транзактами типа в процентах.
Для узла типа key – доля времени пребывания в закрытом состоянии;
Если производятся пространственные перемещения узлов типа proc, creat или
delet, то подсчитывается пройденный путь. Для пространства типа GEO путь считается в километрах.
162
М[t]
среднее время
Среднее значение времени задержки транзакта в узле или иной интервал времени, зависящий от типа узла:
для serv - это среднее время пребывания в узле (оно может быть больше времени обслуживания у неприоритетных транзактов при рз=аbs, т.е. при наличии приоритетных транзактов и правила абсолютных приоритетов);
для queue - среднее время задержки в очереди;
для ag - среднее время между двумя сгенерированными транзактами;
для term или delet - среднее время существования транзакта;
для key - среднее время пребывания в закрытом состоянии;
для creat и dynam - всегда нулевое значение;
для proc при p4=none, p4=поrm, p4=ехро или p4=unif - среднее время пребывания в узле (оно может быть больше времени обслуживания транзакта при переводе узла в пассивное состояние);
для proc при p4=earth, p4=plane или p4=cosmos -суммарное время пребывания транзакта в узлах dynam и proc с учетом возможных возвратов транзактов из proc в dynam.
C
2
[t] квадрат
коэф.вариации
Отношение дисперсии временного интервала к квадрату его среднего значения.
Счетчик входов и
hold
Число транзактов:
прошедших через узел;
сгенерированных транзактов (для ag или creat);
уничтоженных (для term или delet);
выполнивших операцию hold из другого узла в отношении узла key.
Кол.каналов
Число каналов в узле.
Ост.тр.
Количество транзактов, которые остались в узле на момент завершения моделирования.
Состояние узла в
этот момент
Состояние узла в момент окончания прогона модели:
открыт/закрыт для входа очередного транзакта, активен/пассивен (proc);
положительное (денежная сумма с буквой S) /отрицательное (денежная сумма с буквой D) сальдо (send);
остаток (денежная сумма с буквой S) / дефицит (сумма с буквой D) ресурса
(attach) ;
количество переходов транзактов на нижние слои-уровни модели (pay,
rent).
После окончания процесса моделирования можно посмотреть
график, а также выходные параметры всех узлов модели (также с помощью меню Результаты).
Пример отображения графика, построенного в процессе имитации, показан на рис. 37, на котором синим цветом показано среднее время задержки в очереди за все время моделирования.
163
Рис. 37. Окно результатов запуска модели
Если после запуска модели требуется внести в нее какие-либо изменения, то перед очередным построением исполняемого файла необходимо закрыть окно модели.
Изменения можно вносить, минуя стадию создания с помощью конструктора файла .pgf непосредственно в файл .cpp,. Следует иметь в виду, однако, что эти изменения не будут отражены в файле .pgf.
Выводы:
1. Имитационные модели сложных систем могут содержать много узлов со сложными взаимосвязями между ними и сложной логикой протекания процессов. Для описания этих объектов и свойств оригинала в моделирующих комплексах применяются высокоуровневые средства, позволяющие создавать модель прикладным специалистам и не требующих специальных знаний в области программирования.
2. Вместе с тем, эффективность работ по созданию и последующей модификации программной модели можно существенно повысить в случае, когда разработчику предоставлена возможность внесения изменений непосредственно в исходный текст программной модели. В моделирующих системах типа системы Pilgrim структура программного текста стандартизована и содержится в описании системы, обеспечивая легкую модификацию и исправления.
3. Основные конструкции языка описания моделей в системе
Pilgrim имеют унифицированный формат. Настройку моделей можно осуществлять заданием значений параметров узловых операторов и внесением логических конструкций в виде операторов языка С++ или
Pascal, обеспечивающих маршрутизацию и управление перемещением транзактов.
164 4. В моделирующих комплексах типа Pilgrim модель представляет собой скомпилированный модуль. Для этого необходимо произвести сборку исполнительного модуля, которая в системе реализуется стандартной процедурой в среде пакета Visual Studio с включением в проект необходимых компонентов (модулей) системы Pilgrim.
5. Конечной целью имитационного моделирования является получение выходных данных. Моделирующие комплексы включают в себя средства для сбора, обработки и вывода стандартной набора параметров, которые в случае системы Pilgrim имеют специфицированный формат и выводятся в файл с отчетом о результатах моделирования.
Вопросы для самопроверки:
1. Какие взаимосвязанные задачи реализуют языковые средства моделирующих комплексов?
2. Из каких основных разделов состоит программная модель системы Pilgrim на исходном языке?
3. Какую функцию выполняет предложение #include
?
4. Каково назначение оператора modbeg?
5. Каково назначение оператора modend?
6. Как можно пронаблюдать в динамике задержки в узлах типа
queue?
7. Как можно пронаблюдать в динамике задержки в узлах типа
term?
8. Как запустить процесс имитации?
Литература по теме:
1. Емельянов А.А., Власова Е.А., Дума Р.В. Имитационное моделирование экономических процессов / Под ред. А.А. Емельянова. –
М.: Финансы и статистика, 2009. – 480 с.
Практические задания:
1) Соберите исполнительный модуль модели СМО, используя исходный текст, который был сгенерирован в результате выполнения практического задания предыдущей темы.
2) Проанализируйте полученные результаты (таблицу в файле- отчете и графики задержек).
3) Определите с помощью формулы Хинчина-Полачека значение среднего времени ожидания в очереди и сравните его со значением, полученным в программной модели.
4) Непосредственно в тексте исходного модуля измените параметр закона распределения времени обслуживания в узле serv на параметр обслуживания с постоянным временем (none).
5) Проведите сборку исполнительного модуля и осуществите его
165 запуск.
6) Проведите сравнительный анализ результатов и объясните причину наблюдаемых отличий.
7) Определите с помощью формулы Хинчина-Полачека значение среднего времени ожидания в очереди и сравните его со значением, полученным в программной модели.
Тесты для самопроверки:
1. Файл, сгенерированный конструктором Gem, представляет собой … а) исполнительный модуль программной модели б) исходный модуль на языке С++ в) сходный модуль на специальном языке
2. Для получения случайных чисел в модели системы pilgrim используется … а) один датчик для всей модели б) несколько датчиков, число которых задается параметром в) один датчик для каждого узла модели г) один датчик для каждого транзакта модели
3. Максимальная точность результатов моделирования, выраженная в числе знаков после запятой, равна… а) 2 б) 4 в) 6 г) 8 4. Диспетчеризация транзактов в узлах модели осуществляется … а) явно разработчиком модели б) оператором network в) путем вызова специальных функций г) включенными в модель операторами С++ на основе анализа условий и параметров транзактов
166
1 ... 6 7 8 9 10 11 12 13 14
Тема 11. CASE-системы в имитационном моделировании Цели изучения темы:
познакомиться с понятием и назначением CASE-систем, применяемым в имитационном моделировании;
получить представление о концепциях и технологии создания модели в среде конструктора Gem.
Задачи изучения темы:
познакомиться с концепцией CASE-систем;
выяснить назначение и функции CASE-систем, применяемых для моделирования процессов и систем;
познакомиться с концепциями конструктора Gem моделирующего комплекса Pilgrim.
Успешно изучив тему, Вы: получите представление о:
функциональных возможностях конструктора Gem;
особенностях пользовательского интерфейса конструктора Gem;
способах настройки и модификации программного модуля модели;
будете знать:
структуру текста исходного модуля программной модели;
как строится работа в среде конструктора Gem;
как задаются параметры модели;
как описываются узлы на графе модели, параметры узлов и связи между узлами;
из чего состоит результат прогона модели и какова его структура.
Вопросы темы: 1. Создание многослойных моделей.
2. Использование узла
parent. 3. Использование узлов
pay,
rent,
down. 4. Многослойная модель бизнес-процесса.
Вопрос 1. Создание многослойных моделей. Для создания имитационной модели в отсутствие вспомогательных средств разработчику нужно написать
программный код, использующий языковые средства системы моделирования Pilgrim.
Модель имеет стандартную структуру. Внутри текста модели содержатся обращения к функциям Pilgrim, но может быть и
167 произвольный C++ код. Текст Pilgrim-модели обрабатывается препроцессором и стандартным компилятором C++ (Microsoft, Borland и др.). При этом требуется:
знать элементы языка C++;
представлять структуру программы, использующей библиотеку
Pilgrim;
знать синтаксис и семантику функций описания узлов и их параметров;
находить и исправлять возможные ошибки в указании параметров (включая ошибки синтаксически верных конструкций, но нарушающие правила модели, что может проявиться в неверных результатах работы модели);
преодолевать сложность составления моделей с большим числом узлов и нетривиальной логикой.
Конструктор имитационных Pilgrim-моделей Gem позволяет автоматизировать процесс создания модельного графа и автоматически генерировать код Pilgrim-программы. Тем самым отмеченные выше проблемы значительно упрощаются или снимаются вовсе. При использовании конструктора обеспечиваются:
автоматическая генерация программного кода, что позволяет пользователю не задумываться о структуре и синтаксисе программы, уделяя все внимание структуре и параметрам самой модели и ее узлов;
генерация функций описания узлов конструктором, что исключает ошибки, связанные с неправильной последовательностью указания позиционных параметров или пропуском некоторых из них;
блокировка заведомо неверных действий пользователя, а также вывод предупреждений о возможных ошибках;
поддержка разработки иерархических моделей, что может быть очень удобно при выполнении моделей с большим количеством узлов.
Широко применяемые при создании и использовании имитационных моделей CASE-средства (Computer Aided Software
Engineering), к которым по своему типу и назначению относится конструктор Gem, активно используют методологию структурного
анализа, предусматривающую наглядное и эффективное проектирование системы путем выделения ее составляющих и их последовательного рассмотрения. Описание системы начинается с общего обзора и выделения основных ее компонентов или процессов.
Сначала создается первый уровень или слой, на котором отображаются выделенные процессы и их взаимосвязи. Далее для ряда процессов может быть проведена детализация, в свою очередь, выделяющая новые процессы в их структуре. Так, последовательным усложнением описания объекта и его процессов разработчик достигает необходимой