ReferatWorld.ru
» » » Моделирование в системе PILGRIM
Вернуться назад

Моделирование в системе PILGRIM

Содержание
Введение. 3
1 Теоретическая часть. 4
1.1 Технология моделирования в системе PILGRIM.. 4
1.2 Инструментальные средства. 4
1.2.1 Транзакты, узлы, события. Модельный таймер. 4
1.2.2 Типы узлов имитационной модели. 5
1.2.3 Команды управления узлами. 9
1.2.4 Параметры транзактов. 10
1.2.5 Параметры состояния узлов. 10
1.2.6 Датчики случайных (псевдослучайных) величин. 11
2 Практическая часть. 13
2.1 Задание. 13
2.2 Построение графа модели. 13
2.3 Инициализация модели. 14
2.4 Описание узлов модели. 15
2.4.1 Очередь. 15
2.4.2 Серверы.. 15
2.4.3 Генератор (датчик, мини-ЭВМ)16
2.4.4 Ключ. 17
2.4.5 Терминатор. 18
2.5 Сохранение модели. 18
2.6 Генерация программы.. 19
Заключение. 20
Приложение А. Листинг программы.. 21
Введение
Имитационное моделирование (от англ. simulation) – это распространенная разновидность аналогового моделирования, реализуемого с помощью набора математических инструментальных средств, специальных имитирующих компьютерных программ и технологий программирования, позволяющих посредством процессов-аналогов провести целенаправленное исследование структуры и функций реального сложного процесса в памяти компьютера в режиме «имитации», выполнить оптимизацию некоторых его параметров.
Имитационной моделью называется специальный программный комплекс, который позволяет имитировать деятельность какого-либо сложного объекта.
Он запускает в компьютере параллельные взаимодействующие вычислительные процессы, которые являются по своим временным параметрам (с точностью до масштабов времени и пространства) аналогами исследуемых процессов.
Для создания имитационных моделей необходимо специальное программное обеспечение – система моделирования(simulationsystem).
Среди современных систем имитационного моделирования можно выделить следующие распространенные пакеты:
- ProcessCharter-1.0.2 (компания «Scitor», Менло-Парк, Калифорния, США);
- Powersim-2.01 (компания «Modell Data» AS, Берген, Норвегия);
- Ithink-3.0.61 (компания «High Performance Systems», Ганновер, Нью-Хэмпшир, США);
- Extend+BPR-3.1 (компания «Imagine That!», Сан-Хосе, Калифорния, США);
- ReThink (фирма «Gensym», Кембридж, Массачусетс, США);
- Pilgrim (Россия).
В данной работе будут рассмотрен процесс моделирования в системе Pilgrim.
1 Теоретическая часть
1.1 Технология моделирования в системе PILGRIM
Средством построения моделей в системе PILGRIM является графический конструктор Gem (от «Generator models»), представляющий собой набор узлов различного типа. На схеме имитационной модели узел есть графическое изображение некоторого типового процесса, или можно сказать, что внутри узла работает процесс. При этом элементарный процесс может быть, вообще говоря, представлен несколькими узлами имитационной модели, если этого требует логика его работы.
Таким образом, схема имитационной модели представляет собой направленный граф, вершины которого представляют собой компоненты элементарных процессов, а дуги определяют направление потоков заявок и управляющих воздействий в моделируемой системе.
Конструктор Gem генерирует программу на языке С++, которая в дальнейшем должна быть скомпилирована в составе проекта в среде MS Developer Studio, где предварительно должен быть установлен Visual C++ с библиотеками Pilgrim.
Процесс построения модели в системе PILGRIM включает в себя следующие этапы:
1. Анализ структуры моделируемого процесса
2. Определение входных и выходных параметров модели
3. Построение графа модели с помощью конструктора (вообще говоря, можно сразу писать программный файл, но конструктор значительно облегчает работу).
4. Описание узлов графа (определение значений параметров узлов модели).
Параметры узлов могут быть заданы константами или переменными пользователя. Во втором случае в момент входа в узел очередной заявки значения этих параметров должны быть определены с помощью операторов языка С++.
5. Определение условий выбора узла, если в модели имеются ветвления.
6. Компиляция модели.
1.2 Инструментальные средства
1.2.1 Транзакты, узлы, события. Модельный таймер
В системе имитационного моделирования PILGRIM граф модели описывает взаимодействия дискретных и непрерывных компонент имитационной модели и представляет собой стохастическую сеть. Каждый узел графа – это ветвь моделирующей программы.
Непрерывные компоненты представляют собой разностные уравнения, причем каждый очередной интервал (или шаг) интегрирования – это отрезок времени между двумя ближайшими событиями в стохастической сети.
Одновременность моделирования всех компонент системы имитируется с помощью единой службы модельного времени.
Основной динамической единицей любой модели, работающей под управлением имитатора, является транзакт.
ТРАНЗАКТ – это формальный запрос на какое-либо обслуживание, например сигнал о загрязнении какого-то пункта местности, телеграмма, поступающая на узел коммутации сообщений, проба загрязненной почвы, ожидающая соответствующего анализа и т.д. Пути "миграции" транзактов по графу определяются логикой функционирования дискретных компонентов модели.
УЗЛЫ графа представляют собой центры обслуживания транзактов. В узлах транзакты могут задерживаться, обслуживаться, порождать семейства новых транзактов, уничтожать другие транзакты. Вид обслуживания транзакта определяется типом узла.
Выход из узла одного транзакта называется СОБЫТИЕМ. Предположим, что в момент времени t произошло какое-то событие, а в момент времени t+d должно произойти ближайшее следующее, но не обязательно в этом же узле. Тогда очевидно, что передать управление непрерывным компонентам модели можно только на время [t,t+d].
Текущее значение модельного таймера хранится в системной переменной timer.
Значение модельного таймера доступно для чтения в процессе моделирования.
1.2.2 Типы узлов имитационной модели
Узел AG – постоянный генератор транзактов - представляет собой генератор транзактов. Он предназначен для создания транзактов имитационной модели. Транзакты генерируются по одному через определенные пользователем промежутки времени.
Для настройки генератора необходимо задать набор параметров (i,p,r,m,s,o,n). Параметры имеют следующий смысл:
i – номер узла-генератора (int);
p – приоритет (int), назначаемый каждому сгенерированному транзакту (вместо p=0 можно использовать p=none);
r – тип функции распределения интервала времени между двумя последовательно сгенерированными транзактами. Используются условные обозначения: norm – нормальное распределение, unif – равномерное, expo – экспоненциальное, erln – распределение Эрланга, beta – b-распределение, none – интервал, являющийся детерминированной величиной;
m – математическое ожидание интервала времени (float) между двумя последовательно сгенерированными транзактами (r=norm, unif, expo), либо математическое ожидание одного слагаемого этого интервала (r=erln), либо минимальное значение интервала (r=beta), либо постоянная величина этого интервала (r=none);
s – величина, зависимая от типа функции распределения (float): среднеквадратичное отклонение (r=norm), либо максимальное отклонение от среднего (r=unif), либо значение zero (r=expo, none), либо число слагаемых интервала (r=erln, в этом случае s>0.0), либо наиболее вероятное значение интервала времени между двумя последовательно сгенерированными транзактами (r=beta);
o – величина, также зависящая от типа функции распределения (float): либо значение zero (r=norm, unif, expo, erln, none), либо максимальное значение интервала времени между двумя последовательно сгенерированными транзактами (r=beta);
Параметры генератора могут быть изменены во время работы модели с помощью команды cheg (change generator).
Узел SERV – обслуживающий многоканальный прибор с абсолютными приоритетами (правило относительных приоритетов реализуется в узле типа queue – очередь), осуществляющий какое-либо обслуживание транзактов в течение модельного времени, отличного от нуля.
С точки зрения имитационной модели “обслуживание” заключается в задержке транзакта на заданный промежуток времени.
Для описания сервера необходимо задать набор параметров (c,u,r,m,s,o). Параметры имеют следующий смысл:
c – число обслуживающих каналов (int), c > 1;
u – дисциплина обслуживания: abs – приоритетная, с прерыванием обслуживания менее приоритетного транзакта, либо none – бесприоритетная;
r – тип функции распределения интервала обслуживания транзактов. Используются условные обозначения: norm – нормальное распределение, unif – равномерное, expo – экспоненциальное, erln – распределение Эрланга, beta – b-распределение, none – интервал является детерминированной величиной;
m – математическое ожидание интервала времени (float) обслуживания транзактов (r=norm, unif, expo), либо математическое ожидание одного слагаемого этого интервала (r=erln), либо минимальное значение интервала обслуживания (r=beta), либо постоянная величина этого интервала (r=none);
s – величина, зависящая от типа функции распределения (float): среднеквадратичное отклонение (r=norm), либо максимальное отклонение от среднего (r=unif), либо значение zero (r=expo, none), либо число слагаемых интервала обслуживания (r=erln, в этом случае s>0.0), либо наиболее вероятное значение интервала времени обслуживания транзактов (r=beta);
o – величина, также зависимая от типа функции распределения (float): либо значение zero (r=norm, unif, expo, erln, none), либо максимальное значение интервала времени обслуживания (r=beta);
Если задать r=abs, то имеются две возможности для работы с прерванными неприоритетными транзактами: либо они "дообслуживаются", либо характер прерывания был таков, что надо возобновить обслуживание сначала.
Узел QUEUE – очередь с относительными приоритетами
Узел queue моделирует очередь транзактов. Для ее описания требуется задать параметр u. Эта очередь строится по одному из двух правил: либо транзакты упорядочены в порядке поступления (для этого необходимо использовать в качестве u слово none), либо, кроме этого, более приоритетные транзакты находятся ближе к началу очереди, а менее приоритетные – ближе к концу. Во втором случае работает правило относительных приоритетов, которое задается с помощью u=prty.
Узел TERM – безусловный терминатор транзактов, назначение которого заключается в следующем: он удаляет из модели входящий в него транзакт и фиксирует время его существования начиная с момента выхода этого транзакта из генератора.
Существуют средства автоматического построения графика изменения потока транзактов, поступающих на вход терминатора.
Если пользователю необходимо иметь инструмент для анализа динамики потока транзактов по какой-то ветви графа, причем "принимающий" узел не является терминатором, то необходимо модель дополнить двумя узлами:
завести дополнительный терминатор и указать его номер в качестве параметра df в функции modbeg;
в ветвь вставить узел creat, который в момент прохождения каждого транзакта по ветви будет генерировать один дополнительный, направляемый в дополнительный терминатор.
Под временем пребывания в терминаторе подразумевается время жизни транзакта – с момента его генерации и до момента уничтожения в терминаторе.
График динамики потока транзактов, поступающих на вход терминатора, получается автоматически. Его вид аналогичен графику задержки в очереди. График показывает среднее количество транзактов, попадающих в терминатор в единицу модельного времени.
Узел KEY – клапан на пути транзактов – работает по принципу “шлагбаума”. Когда клапан закрыт, транзакт не может в него войти из предшествующего узла. Если же клапан открыт, то транзакт проходит через него в следующий узел без задержки. Среднее время пребывания такого узла в закрытом состоянии подсчитывается автоматически. Для управления этим клапаном или ключом существуют вспомогательные функции hold и rels.
Среднее время задержки – это среднее время пребывания ключа в закрытом состоянии. Число обслуженных транзактов – это число переключений ключа из закрытого состояния в открытое.
Узел CREAT – управляемый генератор транзактов (мультипликатор) - предназначен для создания нового семейства транзактов. Следует отметить, что все транзакты принадлежат какому-то семейству. Транзакты, выходящие из обычного генератора ag, принадлежат к семейству с номером 0. Узел creat, в отличие от ag, – это управляемый генератор.
Для описания управляемого генератора нужно задать набор параметров (f,a,b,l). Логика функционирования узла такова:
через узел проходит порождающий транзакт, который принадлежит семейству f1, и поступает в следующий узел;
одновременно с этим в узле генерируются a новых транзактов, принадлежащих семейству с номером f2=f, которые будут направлены в узел l. В общем случае l и следующий узел – любые узлы (кроме ag), в частности это может быть один и тот же узел. Номера семейств f1 и f2 в общем случае могут совпадать.
После прохождения порождающего транзакта узел creat получает его координаты, т.е. "перемещается". Семейству f2 могут передаваться все свойства порождающего транзакта.
Параметр b имеет следующие значения: либо copy – для тиражирования параметров порождающего транзакта каждому порожденному (включая время жизни), либо none – для присвоения каждому порожденному транзакту в качестве параметров нулевых значений.
Число обслуженных транзактов – это, на самом деле, число порожденных транзактов вновь образуемых семейств.
Узел DELET ( с параметрами (f,a)) – управляемый терминатор транзактов (демультипликатор) - предназначен для уничтожения группы транзактов, принадлежащих одному и тому же семейству f.
Логика функционирования этого узла такова: в узел входит уничтожающий транзакт семейства f1 и находится там до тех пор, пока в него не поступят a транзактов семейства f2=f. После поступления требуемого количества транзактов заданного семейства они мгновенно уничтожаются, а уничтожающий транзакт переходит в следующий узел. Уничтожающим становится транзакт, первым вошедший в пустой узел delet.
Следует отметить, что если в такой узел так и не поступят a транзактов, то уничтожающий транзакт будет все время находиться в нем, блокируя его в смысле поступления других уничтожающих транзактов. В общем случае номера семейств f1 и f2 могут совпадать.
Время существования уничтоженных транзактов фиксируется в узле delet, а сам узел получает координаты каждого уничтожаемого транзакта, т.е. он "перемещается" по координатной сетке. Среднее время задержки в данном случае – это среднее время ожидания всех транзактов, которые нужно уничтожить (или части транзактов, если из состояния ожидания узел delet выводится принудительно – выполнением функции freed); число обслуженных транзактов – это число уничтоженных транзактов.
Суперузел PROC – транзактно-управляемый процесс
Суперфункция моделирования транзактно-управляемого непрерывного процесса (сокращенно - "процесс") proc(ep,x,r,m,s,o) объединяет в себе имитацию обслуживающего узла типа serv с одним каналом, перемещение этого узла по общему полю данных на координатной сетке, запуск на время активности функции типа float ep(d), где d – элементарный интервал активности, который определяется системой PILGRIM в процессе моделирования и зависит от параметров x, r, m, s.
Интервал требуемого обслуживания транзакта может быть меньше времени пребывания транзакта в этом узле, так как процесс может быть переведен в состояние "пассивен" или "активен" каким-то транзактом из другого узла с помощью функций activ и passiv.
Если процесс пассивен, то обслуживание транзакта приостанавливается, а выполнение функции ep прерывается до тех пор, пока процесс не будет переведен в активное состояние.
Остальные аргументы имеют следующий смысл:
ep – имя программы, написанной пользователем, или слово dummy; эта программа может моделировать процесс: формула, дифференциальное уравнение и т.д.;
х – номер исходной точки, в которую устанавливается узел proc перед началом моделирования;
r – это либо тип функции распределения интервала активности процесса, либо тип координатного пространства. Если это тип функции распределения, то используются условные обозначения: norm – нормальное распределение, unif – равномерное, expo – экспоненциальное, erln – распределение Эрланга, beta – b-распределение, none – интервал, являющийся детерминированной величиной. Для задания типа пространства используются обозначения: geo – географические координаты, dcr – декартовы координаты;
m – математическое ожидание интервала времени (float) активности (r=norm, unif, expo), либо математическое ожидание одного слагаемого этого интервала (r=erln), либо минимальное значение интервала обслуживания (r=beta), либо постоянная величина этого интервала (r=none), либо интервал "непрерывного" нахождения этого узла на координатной сетке (при r=geo или r=dcr);
s – также параметр интервала активности обслуживания, который зависит от значения параметра r. Это либо среднеквадратичное отклонение (r=norm), либо максимальное отклонение от среднего (r=unif), либо значение zero (r=expo, none), либо число слагаемых интервала обслуживания (r=erln, в этом случае s>0.0), либо наиболее вероятное значение интервала времени обслуживания транзактов (r=beta), либо скорость перемещения узла от одной точки пространства к другой (при r=geo или r=dcr);
o – величина, также зависимая от типа функции распределения (float) интервала активности: либо значение zero (r=norm, unif, expo, erln, none), либо максимальное значение интервала времени обслуживания (r=beta).
Узел DINAM – очередь к процессу с динамическими
пространственно-зависимыми приоритетами
Узел dynam предназначен для моделирования обслуживания транзактов в очереди с динамическими пространственно-зависимыми приоритетами. Этот узел моделирует оптимально-управляемую очередь (очередь типа "скорая помощь"), которая находится на входе узла типа proc. Единственный параметр – это номер узла типа proc (он является следующим), который, в свою очередь, обязательно должен использовать параметр r=geo или r=dcr.

Внимание, отключите Adblock

Вы посетили наш сайт со включенным блокировщиком рекламы!
Ссылка для скачивания станет доступной сразу после отключения Adblock!

Скачать полную версию
Рефераты по информатике Содержание Введение. 3 1 Теоретическая часть. 4 1.1 Технология моделирования в системе PILGRIM.. 4 1.2 Инструментальные средства. 4 1.2.1 Транзакты,
Оценок: 676 (Средняя 5 из 5)

Одними из наиболее популярных услуг на рынке IT-технологий являются создание и продвижение лендингов. Они способны положительно влиять на деятельность любого бизнес-проекта в интернете. Судя по многочисленным отзывам, заказавшие создание лендингов люди ни разу не пожалели о потраченных деньгах. Они вложили в будущее, которое неразрывно связано с интернетом. Всё больше и больше предпринимателей обращаются к услугам разных агентств, веб-студий, чтобы заказать создание лендинга у профессионалов.

© 2017 - 2022 ReferatWorld.ru