- •Введение
- •1. Концептуальные модели
- •2. Языки моделирования
- •3. Способы дискретного моделирования
- •4. Событийное моделирование
- •4.1. Общие положения
- •4.2. Алгоритм дискретно-событийной имитации
- •4.3. Пример событийной модели
- •5. Сканирование активностей
- •6. Процессно-ориентированный подход
- •7. Непрерывное имитационное моделирование
- •7.1. Общие положения
- •7.2. Алгоритм интегрирования рунге-кутта-фелберга
- •7.3. Пример непрерывно-дискретной модели
- •8.1. Стохастические системы и процессы
- •8.2. Вероятность
- •8.3. Законы распределения
- •8.4. Генерация псевдослучайных чисел
- •8.5. Основные понятия математической статистики
- •9. Системы имитационного моделирования
- •9.1. Gpss
- •9.2. Слам II
- •9.3. Matlab
- •9.4. BpSimulator
- •9.5. Uml
- •9.6. Rational Rose
- •9.7. AnyLogic
- •10. Технология имитационного моделирования
9. Системы имитационного моделирования
Выбор системы моделирования определяется многими факторами. К ним относятся сложность исследуемой системы и ее функциональный состав, цель имитации, объем статистического анализа, стоимость программного обеспечения и т.д. Ниже представлены некоторые системы моделирования.
9.1. Gpss
Система GPSSпредназначена для моделирования дискретных процессов процессно-ориентированным способом на языкеGPSS. Модель представляет собой сеть, составленную из блоков, выполняющих определенные функции. Сеть дополняется программной частью. ТаймерGPSSрегистрирует только целочисленные значения времени.
Пример. Интервалы прихода заявок на пункт приема распределены равномерно в диапазоне 186 единиц времени. Время обработки заявки распределено также равномерно в диапазоне 164 единицы. Заявки приходят, обрабатываются и пересылаются на выполнение. Необходимо собрать статистические данные об очереди заявок за 8 часов. Сетевая модель имеет вид рис. 9.1. Здесь для первого сегмента:
GENERATE- операция генерации транзактов с интервалом 186;
QUEUE- "встать в очередь"JOEQ;
SEIZE- "занять свободный прибор (обработки)"JOE;
DEPART- "покинуть очередь"JOEQ;
ADVANCE- "задержать" на 164;
RELEASE- "освободить прибор"JOE;
TERMINATE- "завершить" (покинуть).
2-й сегмент моделирует окончание имитации. При выходе из TERMINATEсчетчик завершений уменьшает показания на 1.
QUEUE
SEIZE
DEPART
ADVANCE
16.4
RELEASE
1
1-й
сегмент
2-й
сегмент

















Рис. 9.1
9.2. Слам II
Это универсальная система для любых концептуальных моделей на основе фортрана. Модели оформляются либо в виде сетевой блочной структуры, либо как совокупность системных и пользовательских процедур.
СЛАМ характеризуется, помимо прочего, наличием специальной группы (входных) операторов. В них разработчик определяет требования к модели: название, дату оформления и т. д. Признаками этой группы операторов являются служебные слова GEN- начало иFIN- конец. Программа процессно-ориентированной модели СЛАМ полностью представляет собой группу входных операторов. Она сопровождается сетевой блочной структурой.
Пример: процессно-ориентированная модель. Имеется линия приема и обработки заявок. Ее сетевая модель показана на рис. 9.2.
TBC
ACTIVITY
IQ
EXPON
(0.5)
EXPON
(0.25)
MC
M
MA
1
QC
IFL
1
N
2
M
CREATE
QUEUE
BLOCK
QUEUE
TF
2
N









































M
TERMINATE







TERMINATE
TIME IN SYSTEM
TIME BET. BALKS
SUB






COLT
COLT
Рис. 9.2
Здесь запросы клиентов обрабатываются последовательно двумя операторами. В сети могут находиться одновременно не более 8 заявок: до 4 - в базе данных первого оператора, до 2 - в базе данных второго оператора и по одной на ЭВМ у каждого оператора. Если заявка не может быть принята базой данных первого оператора из-за недостатка места, она отсылается в другой сервер, расположенный вне рассматриваемой сети. Переполнение базы данных второго оператора приводит к блокированию (прерыванию) процесса обработки первого оператора. Интервалы между поступлениями запросов в сеть распределены случайно экспоненциально с математическим ожиданием 0.4 единицы времени. Времена обработки на рабочих местах распределены также экспоненциально, причем на 1-м рабочем месте среднее время обработки равно 0.25 единиц, а на втором - 0.5. Время работы сети - 300 единиц. Необходимо определить время нахождения каждой заявки в сети и интервалы отказа в приеме заявок.
Принятые СЛАМ-обозначения:
CREATE- генератор компонентов (заявок);
TF- время первого поступления (0- по умолчанию);
TBC- интервал поступления (будет указан в программе);
MA- элемент массиваATRIB, запоминающий время поступления;
MC- предельное количество поступающих заявок (не ограничено);
M- максимальное количество выходов, по которым компоненты могут поступать дальше (, но задействован только один выход);
QUEUE-Q-узел (очередь);
IQ- начальное количество запросов;
QC- максимально допустимое количество компонентов;
IFL- номер файла очереди;
ACTIVITY- действие;
EXPON(0.25) - закон распределения времени обработки;
1 в квадрате - номер рабочего места (оператора);
N- число рабочих мест с данным типом работ;
BLOCK- символ блокировки;
COLT- блок сбора статистики;
INT(1) - системная переменная - интервал времени между моментом поступления (1 - первый атрибут) и текущим временемTNOW;
TIME IN SYSTEM, TIME BET. BALKS- название документов статистики;
TERMINATE- выход;
BET. - интервалы поступления отказных запросов;
SUB- метка блока.
