138
Узел ag (AG) представляет собой генератор транзактов имитационной модели. Транзакты генерируются по одному через промежутки времени, величина которых определяется по правилу, заданному пользователем через параметры узла.
Узел Queue (Q) моделирует очередь транзактов.
Узел Serv (S) имитирует прибор, или сервер, осуществляющий какое-либо обслуживание транзактов в течение модельного времени, отличного от нуля. С точки зрения имитационной модели обслуживание заключается в задержке транзакта на заданный промежуток времени. Сервер - это одно- или многоканальный обслуживающий прибор, работающий по правилам абсолютных приоритетов или без них и имеющий стек для
«прерванных» транзактов (правило относительных приоритетов реализуется в узле типа
Queue).Аналогично узлу ag время нахождения транзакта в узле (продолжительность обслуживания) определяется по правилу, заданному пользователем через параметры узла.
Узел Term (T) представляет собой уничтожитель транзактов (терминатор). Он удаляет из программной модели входящие в него транзакты. Одновременно узел фиксирует время существования транзакта, начиная с момента выхода последнего из генератора.
Вопрос 3. Средства описания модели в системе Pilgrim.
Для автоматизации составления описания модели и получения на его основе исходного текста программной модели в моделирующей системе Pigrim предусмотрен специальный конструкторGem. На рис.
25 показано окно конструктора с построенным в его рабочей плоскости графом модели СМО.
Рис. 25. Граф модели СМО на рабочей плоскости конструктора Gem
Рассмотрим основные возможности и правила работы с конструктором.
139
Результаты проектирования/корректировки модели.
Описание модели конструктор сохраняет в файле с расширением
pgf (Pilgrim graf file), выполняя команду Сохранить (Сохранить как) меню Файл.
Для законченной версии модели разработчик может сгенерировать программный файл модели с расширением cpp, который будет далее скомпилирован в среде Visual C++ и вместе с подключенными библиотеками и ресурсами Pilgrim использован для сборки исполнительного модуля программной модели. Файл с исходным текстом программы создается командой Генерировать С++-файл меню
Выполнить.
Установка параметров моделирования.
Задание основных параметров модели производится с помощью инструмента ModBeg (рис. 26):
Рис. 26. Окно задания параметров моделирования
В строку Название вводится имя модели, которое будет указано в таблице результатов моделирования.
В строке Время указывается время моделирования.
В строке ПСЧ указывается начальное значение для генератора псевдослучайных чисел, необходимых для имитации случайных процесов. По умолчанию в качестве начального значения берется показание компьютерного таймера.
Строки Задержка и Поток предназначены для задания номеров контролируемых узлов: очереди (Queue) и терминатора (Term) соответственно. Для указанных узлов в процессе моделирования будут строиться графики времени задержки в узле типа Queue и динамики выходного потока в узле типа Term.
140
В правой верхней части окна записывается начальный текст на
С++, если он необходим. Программный текст делится на две части: начальный текст используется для подключения внешних библиотек и настройки глобальных параметров; текст инициализации ресурсов подготавливает параметры конкретных узлов типов attach и send.
Другие поля окна позволяют редактировать переменные, стандартные для оператора modbeg.
Описание выводного файла.
Параметры файла, содержащего результаты моделирования, задаются с помощью инструмента ModEnd (рис. 27):
Рис. 27. Окно задания параметров файла-отчета
Определение переменных.
При определении новой переменной модели (рис. 28) обязательными параметрами в окне ввода (вызывается с помощью инструмента Переменные на панели инструментов) являются имя и тип, значение пользователь может задавать или не задавать по своему усмотрению.
Рис. 28. Окно задания переменных модели
Построение графа модели.
В процессе редактирования графа модели можно выполнять следующие действия:
добавлять новые узлы;
перемещать узлы в области построения;
141
удалять существующие узлы;
определять маршруты переходов транзактов.
Для редактирования графа модели в конструкторе используется технология «перетаскивания и бросания» объекта, обозначающего тип требуемого узла или действия, из панели инструментов в область построения графа. Панель инструментов в левой части окна редактора содержит значки, обозначающие узлы системы. Изображения узлов перетаскиваются при нажатой левой кнопке мыши. На панели представлены группы узлов, поэтому в отдельных случаях (в тех, когда на панели указан другой класс узла) для указания класса узла потребуется выполнить дополнительное действие. Задать класс можно:
1) Перетаскиванием графического символа какого-либо узла из группы на рабочую плоскость и последующим изменением свойства
Класс узла (окно свойств может быть вызвано выбором опции
Параметры контекстного меню, отображаемого нажатием правой клавиши мыши, или двойным щелчком левой кнопки по изображению узла). Например, узел term можно задать, поместив на рабочую плоскость узел ag и поменяв его класс со значения AG на значение
Terminator.
2) Одним или несколькими нажатиями клавиши под значком узла на панели инструментов до момента появления узла нужного класса.
Узлы нумеруются автоматически (первая цифра номера означает номер плоскости, так как в системе Pilgrim есть возможность иерархического построения графа моделей.
Для удаления узла нужно:
захватить инструмент левой кнопкой мыши;
не отпуская кнопку, поместить указатель мыши на удаляемый узел;
подтвердить необходимость удаления.
Для проведения стрелки нужно:
захватить инструмент левой кнопкой мыши;
не отпуская кнопку, поместить указатель мыши на узел- источник стрелки;
отпустить кнопку, что будет означать привязку начала стрелки к данному узлу;
поместить указатель мыши на узел-приемник стрелки и щелкнуть левой кнопкой мыши.
142
Для удаления стрелки нужно:
войти в окно описания узла-источника стрелки;
пометить мышкой соответствующий Выход из узла;
нажать кнопку Удалить.
Номер узла присваивается конструктором при его создании.
Обычно первые 100 номеров зарезервированы для узлов send - бухгалтерских счетов. Нумерация создаваемых узлов осуществляется последовательно, с номера 101. Смена номера узла возможна с помощью соседнего с номером диалогового поля, но не рекомендуется для узлов, созданных ранее.
Определение параметров узла.
Каждый узел модели характеризуется множеством параметров:
типом;
порядковым номером;
именем;
принадлежностью к плоскости;
ссылками;
условиями переходов;
встроенным программным текстом;
параметрами, определяемыми спецификой типа узла, такими, как закон - распределения для узла типа serv, приоритет для queue и т.п.
Для описания узла необходимо открыть окно его свойств (рис. 29).
143
Рис. 29. Окно задания свйств узла
Для вызова окна необходимо дважды щелкнуть по изображению узла левой кнопкой мыши либо один раз щелкнуть по узлу правой кнопкой и после появления всплывающего меню выбрать в нем пункт
Параметры узла.
Узел может содержать несколько ссылок на узлы, в которые может перейти транзакт из данного узла. Выбор маршрута должен осуществляться в соответствии с условиями, которые формулируются в правой нижней части окна определения параметров транзакта (поле
Условие перехода). Для каждого из маршрутов выхода транзакта могут определяться действия, выполняемые после выхода, в виде операторов на языке С++.
Выбор исходящей ссылки осуществляется щелчком мыши в диалоговом поле Выходы. Любой вход и любой выход можно удалить, нажав кнопку Удалить под списком. На Рис. показан пример задания условий (для окна на рис. 29), при которых транзакт переходит из узла
102 в узел 103, и действий, выполняемых в этом случае.
144
Рис. 30. Спецификация условий и действий
Панель Общий С++ текст позволяет включить в процедуру обработки узла произвольный текст на языке С++. Текст имеет две части: одна выполняется до выполнения узлового оператора, другая - после. До вхождения транзакта в узловой оператор могут формироваться значения параметров, необходимых для выполнения оператора, например, величина среднего времени обслуживания транзакта в узле
serv. После выхода транзакта из узлового оператора могут стоять конструкции, предназначенные для управления логикой работы модели
(сигнальные функции - см. далее) или осуществляющие сбор
(накопление) статистики для подсчета итогов.
Поле Имя содержит имя узла, отображаемое на схеме и в таблице с результатами моделирования. Имена, назначаемые по умолчанию, можно (и целесообразно) изменять.
Значение поля Класс выбирается из списка, который состоит из типов узлов, имеющих одинаковый графический символ. Например, узел типа send можно сменить на attach (при этом изменяется набор и смысл параметров узла).
Нажатие кнопки Определить параметры приведет к появлению окна, вид которого зависит от типа узла. Так, для узла serv окно будет иметь вид, показанный на рис 31:
145
Рис. 31. Окно установки параметров узла
Смысл параметров Параметр 1, Параметр 2, Параметр 3 зависит от значения, указанного в поле ввода параметра Закон распределения. В частности, Параметр 1 для экспоненциального и нормального законов распределения представляет собой математическое ожидание (среднее), а Параметр 2 для нормального законов распределения - среднеквадратическое отклонение времени нахождения транзакта в узле.
Поле Плоскость показывает, к какой плоскости принадлежит узел, и доступно только для просмотра.
Проверка графа модели.
Построенная с помощью конструктора модель подвергается проверке. Предусмотрено два типа проверок:
автоматическая в процессе построения модели (заведомо ложные действия блокируются);
полная проверка графа (запускается командой меню).
Результат проверки графа выдается в окне в виде списка возможных и явных ошибок (рис. 32), не позволяющих сгенерировать программный Рilgrim-файл (к явным ошибкам относятся отсутствие выходов или входов узла и неопределенные вход/выход плоскости – см. далее).
146
Рис. 32. Окно сообщений об ошибках в графе модели
Проверка корректности графа производится автоматически в момент, непосредственно предшествующий генерации программного
Рilgrim-файла, а также может быть вызвана явно указанием пункта
Выполнить основного меню.
Выводы:
1. Для исследования стохастических систем применяется имитационное моделирование. Механизм машинной реализации этой методологии основан на агрегатном описании моделируемых процессов, при котором программным образом воспроизводится последовательность смен моделируемой системой своих состояний.
2. Эффективность применения подхода на основе имитационного моделирования к решению сложных задач можно значительно повысить путем использования моделирующих комплексов. Их применение позволяет значительно сократить затраты на создание модели проведение на ней машинных экспериментов.
3. Повысить эффективность и автоматизировать процессы создания и применения моделей в моделирующих комплексах можно путем построения концептуальной основы, позволяющей получать формализованное описание моделируемого объекта и генерировать на его основе программный код. Основными элементами описание модели в системе Pilgrim являются граф, транзакт, узел, ресурс, событие, пространство.
4. Использование стандарта для описания модели в моделирующих комплексах позволяет автоматически получать исходный текст программной модели с помощью специальных компонентов. В системе Pilgrim таким компонентом является конструктор моделей Gem.
147
Вопросы для самопроверки:
1. Решение каких задач можно автоматизировать при помощи моделирующих комплексов?
2. Поясните на блок-схеме логическую последовательность действий по имитации работы одноканальной СМО с очередью.
3. Какие требования предъявляются к моделирующим комплексам?
4. Каковы основные достоинства моделирующей системы
Pilgrim?
5. Что представляет собой модель в системе Pilgrim?
6. Что называется транзактом в модели системы Pilgrim?
7. Что такое узел в системе Pilgrim?
8. Какие узлы системы Pilgrim нужны для моделирования одноканальной системы массового обслуживания?
9. Что такое ресурс в системе Pilgrim?
10. Что является событием в модели системы Pilgrim?
Литература по теме:
1. Емельянов А.А., Власова Е.А., Дума Р.В. Имитационное моделирование экономических процессов / Под ред. А.А. Емельянова. –
М.: Финансы и статистика, 2009. – 480 с..
Емельянова. – М.: Маркет ДС,
2010. – 464 с.
Практические задания.
Запустите конструктор Gem и создайте граф модели СМО, описанной в настоящей теме. В качестве значений параметров задайте:
Время моделирования – 2500.
Закон распределения интервала между транзактами – expo.
Средний интервал между транзактами – 12.
Закон распределения времени обслуживания – expo.
Среднее время обслуживания – 9.
Проверьте в конструкторе Gem созданную модель.
Сгенерируйте в конструкторе Gem файл с исходным текстом и сохраните в личной папке.
148
Тесты для самопроверки:
1. В имитационных моделях … . а) имитируются только входные и выходные потоки заявок б) воспроизводятся процессы функционирования исследуемой системы с соблюдением логической и временной последовательности в) моделируется прохождение через исследуемую систему только одной заявки г) используются физические свойства исследуемой системы
2. К числу основных преимуществ имитационных моделей относятся … . а) простота разработки моделей б) универсальность применения в) экономичность г) высокая точность результатов
3. Моделирующие комплексы используются в случаях, когда … а) разрабатываемые модели отличает большая сложность б) будет проводиться большой объема экспериментов в) нельзя создать программную модель на алгоритмическом языке
149
1 ... 6 7 8 9 10 11 12 13 14