- •Воронежский государственный технический университет
- •Утверждено Редакционно-издательским советом университета в качестве учебного пособия
- •Введение
- •2. Классификация видов моделирования систем
- •3. Основные математические методы моделирования информационных процессов и систем
- •3.1. Виды математических моделей
- •3.2. Структурные математические модели
- •3.3. Функциональные математические модели
- •3.3.1. Непрерывно-детерминированные модели
- •3.3.2. Непрерывно-стохастические модели
- •3.3.2.1. Анализ работы разомкнутых смо
- •3.3.2.2. Замкнутые смо
- •3.4. Моделирование дискретных систем
- •3.4.1. Конечные автоматы
- •3.4.2. Дискретно-детерминированные модели
- •3.4.3. Вероятностные автоматы
- •3.5. Сетевые модели. Сети Петри (n-схемы)
- •4. Имитационное моделирование информационных процессов
- •4.1. Организация статистического моделирования
- •4.2Моделирование случайной величины с заданным законом распределения
- •4.3 Моделирование равномерно распределенных на отрезке [a,b] случайных чисел
- •4.4. Моделирование показательно распределенных св
- •4.5. Моделирование нормально распределенных случайных чисел
- •4.6. Проверка качества случайных чисел по критерию
- •4.7. Точность статистических оценок
- •4.8. Аппроксимация результатов моделирования
- •5. Формализация и алгоритмизация процессов функционирования систем
- •5.1. Методика разработки и машинной реализации моделей систем
- •5.2. Построение концептуальных моделей систем и их формализация
- •5.3. Алгоритмизация моделей систем и их машинная реализация
- •6. Планирование имитационных моделй с экспериментами
- •6.1. Полный факторный эксперимент
- •6.2. Дробные реплики
- •6.3. Общая схема планирования эксперимента
- •6.3.1. "Крутое восхождение"
- •6.3.2. Этапы планирования эксперимента
- •6.4. Стратегическое планирование
- •6.5. Тактическое планирование
- •7. Оценка точности и достоверности результатов моделирования
- •7.1. Общие положения
- •7.2. Регрессионный анализ
- •7.3. Корреляционный анализ
- •7.4. Экспертные оценки
- •8. Инструментальные средства моделирования систем
- •8.1. Архитектура языков имитационного моделирования
- •8.2. Задание времени в машинной модели
- •8.3. Сравнительный анализ языков моделирования
- •8.4. Примеры прикладных пакетов моделирования и языков моделирования
- •9. Правила построения моделирующих алгоритмов и способы реализации моделей
- •10. Сетевые модели вычислительных систем
- •10.1. Определение: Сеть Петри
- •Объекты, образующие сеть Петри
- •2Расширенная входная Расширенная выходная
- •10.2. Маркировка сети Петри.
- •10.3. Пространство состояний сети Петри
- •10.4. Моделирование параллельных процессов.
- •10.5. Моделирование процессора с конвейерной обработкой
- •10.6. Кратные функциональные блоки компьютера
- •10.7. Сети Петри и программирование
- •10.8. Взаимно исключающие параллельные процессы
- •10.9. Анализ сетей Петри
- •10.10. Дерево достижимости сети Петри
- •В позицию может входить и выходить только одна дуга
- •11. Система имитационного моделирования gpss/pc
- •11.1. Назначение и основные возможности системы
- •11. 2. Состав системы моделирования gpss/pc
- •11.3. Структура операторов языка gpss/pc
- •11.4. Команды среды gpss/pc
- •11.5. Основные операторы языка gpss/pc
- •11.5.1. Начало gpss-модели
- •11.5.2. Комментарии в gpss/pc
- •11.5.3. Имитация потоков событий. Транзакты
- •11.5.4. Имитация типовых узлов смо
- •11.6. Информация о ходе моделирования
- •11.6.1. Окно данных
- •11.6.2. Окно блоков
- •11.6.3. Окно устройств
- •11.6.4. Окно многоканальных устройств
- •11.7. Информация о результатах моделирования
- •11.7.1. Файл результатов моделирования
- •11.7.2. Содержание результатов моделирования
- •11.9. Управление движением транзактов
- •11.10. Дополнительные средства сбора информации о модели
- •11.11. Стандартные числовые атрибуты
- •11.12. Выбор направления движения транзактов с использованием сча
- •11.13. Датчики случайных чисел в gpss/pc
- •11.14. Функции в gpss/pc
- •11.14.1. Дискретные функции
- •11.14.2. Непрерывные функции
- •11.15. Переменные в gpss/pc
- •11.16. Организация циклов
- •11.17. Логические переключатели
- •11.18. Управление движением транзактов в зависимости от состояния элементов модели
- •11.19. Моделирование согласованных процессов на gpss-pc
- •11.19.1. Создание ансамблей транзактов
- •11.19.2. Накопление нескольких транзактов для последующей обработки
- •11.19.3. Объединение нескольких транзактов в один
- •11.19.4. Синхронизация движения транзактов в модели
- •11.20. Время пребывания транзакта в модели
- •11.21. Сбор данных о распределении значений характеристик модели. Таблицы
- •11.22. Изменение имени файла результатов моделирования
- •11.23. Приведение модели к исходному состоянию
- •11.24. Многократное выполнение моделирования
- •11.25. Моделирование нескольких вариантов системы в одной gpss-модели
- •11.26. Время моделирования
- •3 94026 Воронеж, Московский просп., 14
11.15. Переменные в gpss/pc
Переменные в GPSS/PC предназначены для вычислений арифметических и логических выражений. Имеются два основных вида переменных: арифметические и логические. Ниже рассматриваются арифметические переменные, предназначенные для вычисления числовых выражений. Логические переменные, принимающие значения 0 или 1, применяются значительно реже; они рассматриваются в документации по системе GPSS/PC.
Арифметические переменные объявляются в начале текста GPSS-моде ли (до первого оператора GENERATE) в следующей форме:
метка FVARIABLE выражение
Метка - это имя переменной, используемое для ссылок на нее.
Значение переменной - это значение указанного в ее объявлении выражения. В выражении могут указываться числа (только целые!), любые СЧА, ссылки на функции и на другие переменные. В выражении используются обычные математические операции: "+" - сложение, "-" - вычитание, "#" - умножение, "/" - деление, "^" - возведение в степень, "@" - деление по модулю. Разрешается использовать скобки. Если требуется использовать в выражении дробное число, то его следует записать в виде числителя и знаменателя (например, 3/10, а не 0.3).
Внимание! Для операции умножения используется знак "#", а не "*".
Ссылки на переменные в операторах GPSS/PC указываются в следующем виде: V$имя_переменной.
Важное (но не единственно возможное) применение переменных - имитация НСВ (переменные при этом используются совместно с функциями).
Пример (имитация НСВ, распределенной по закону Эрланга k-го порядка). НСВ, распределенная по закону Эрланга k-го порядка - это сумма k НСВ, каждая из которых распределена по пуассоновскому закону. Можно доказать, что для имитации НСВ X, распределенной по закону Эрланга k-го порядка, со средним значением (математическим ожиданием), равным m, может использоваться следующая формула: X = (m/k)* *(X1+X2+...+Xk), где X1,X2,...,Xk - экспоненциальные НСВ с математическим ожиданием, равным 1. Например, для имитации НСВ, распределенной по закону Эрланга 3-го порядка со средним значением m=6, можно использовать следующую переменную (совместно с функцией XPDIS, имитирующей экспоненциальную НСВ с математическим ожиданием, равным 1).
XPDIS FUNCTION RN1,C24
..... см. таблицу соответствия на стр.70. .....
ERL FVARIABLE 2#(FN$XPDIS+FN$XPDIS+FN$XPDIS)
Пример (имитация НСВ, распределенной по гауссовскому закону). Из теории вероятностей известно, что гауссовская НСВ с математическим ожиданием m и среднеквадратическим отклонением может быть получена по формуле: X = m + Xн, где Xн - НСВ, распределенная по гауссовскому закону с математическим ожиданием 0 и среднеквадратическим отклонением 1. Например, для имитации гауссовской НСВ с m=5 и = 0,2 может использоваться следующая переменная (совместно с рассмотренной ранее функцией SNORM):
SNORM FUNCTION RN1,C25
GAUSS FVARIABLE 5+(2#FN$SNORM)/10
Пример. Имитируется работа управляющей ЭВМ, обрабатывающей сигналы от технологического оборудования. Поток сигналов, поступающих на ЭВМ, представляет собой поток Эрланга 2-го порядка; интенсивность потока сигналов - 0,1 сигнала/с (т.е. средний интервал времени между сигналами равен 10 с). Время обработки сигналов представляет собой НСВ, распределенную по гауссовскому закону; в среднем обработка одного сигнала занимает 8 с, среднеквадратическое отклонение - 0,4 с. Требуется разработать GPSS-модель для анализа работы управляющей ЭВМ в течение одного часа.
10 SIMULATE
20 SNORM FUNCTION RN1,C25
..... см. таблицу соответствия на стр.71 .....
30 GAUSS FVARIABLE 8+(4#FN$SNORM)/10
40 XPDIS FUNCTION RN1,C24
..... см. таблицу соответствия на стр.70 .....
50 ERL FVARIABLE 5#(FN$XPDIS+FN$XPDIS)
60 ;
70 GENERATE V$ERL
80 QUEUE 1
90 SEIZE COMP
100 DEPART 1
110 ADVANCE V$GAUSS
120 RELEASE COMP
130 TERMINATE
140 GENERATE 3600
150 TERMINATE 1
Приведем пример GPSS-модели, в которой используется переменная, не связанная с имитацией НСВ.
Пример На ВЦ поступают задачи четырех типов: A (20%), B (30%), C (15%), D (35%). Средний интервал времени между задачами составляет 2 часа 30 минут. Время решения задач - случайная величина, распределенная по экспоненциальному закону; в среднем решениe задачи типа A занимает 40 минут, B - 20 минут, C - 2 часа, D - 1 час 40 минут. На ВЦ имеется одна ЭВМ. За каждую минуту работы ЭВМ, затраченную на решение задачи, заказчик платит 5 денежных единиц. Требуется разработать GPSS-модель для анализа работы ВЦ в течение 100 часов. Предусмотреть подсчет задач каждого типа, а также величины прибыли от решения всех задач.
10 SIMULATE
20 TIP FUNCTION RN1,D4
0.2,1/0.5,2/0.65,3/1,4
30 SRED FUNCTION P1,D4
1,40/2,20/3,120/4,100
40 XPDIS FUNCTION RN1,C24
..... см. таблицу соответствия на стр.70 .....
50 VREMRESH FVARIABLE P2#FN$XPDIS
60 PRIB FVARIABLE P3#5
70 GENERATE 120,30
80 ASSIGN 1,FN$TIP
90 ASSIGN 2,FN$SRED
100 ASSIGN 3,FN$VREMRESH
110 QUEUE OCH
120 SEIZE COMP
130 DEPART OCH
140 ADVANCE P3
150 RELEASE COMP
160 SAVEVALUE SUMPRIB+,V$PRIB
170 SAVEVALUE P1+,1
180 TERMINATE
190 GENERATE 6000
200 TERMINATE 1
Устройство, имитирующее работу ЭВМ, обозначено как COMP, очередь к ЭВМ - OCH. В первый параметр транзакта, имитирующего задачу, записывается номер, обозначающий тип задачи (1,2,3,4 для типов A,B,C,D соответственно), а во второй - среднее время решения задачи данного типа.
Для расчета времени решения каждой конкретной задачи используется переменная VREMRESH: произведение значения 2-го параметра на величину функции XPDIS. Время решения задачи записывается в третий параметр транзакта (оператор 100). Для подсчета прибыли от решения каждой задачи введена переменная PRIB: произведение значения третьего параметра транзакта (т.е. времени решения данной задачи) на 5. Суммарная прибыль подсчитывается с помощью сохраняемой величины SUMPRIB.
Для подсчета количества задач каждого типа используется оператор SAVEVALUE P1+,1 (увеличение на единицу сохраняемой величины, номер которой записан в первом параметре транзакта). Таким образом, данный оператор создает ТРИ сохраняемых величины (с числовыми именами 1,2,3) .