- •Предисловие
- •Введение
- •Глава 1. Модели массового обслуживания
- •1.1. Системы массового обслуживания и их характеристики
- •1.2. Системы c одним устройством обслуживания
- •1.3. Основы дискретно-событийного моделирования cmo
- •1.4. Многоканальные системы массового обслуживания
- •Переменная vаr1, экспоненциальное распределение
- •Глава 2. Вероятностные сети систем массового обслуживания
- •2.1. Общие сведения о сетях
- •2.2. Операционный анализ вероятностных сетей
- •2.3. Операционные зависимости
- •2.4. Анализ узких мест в сети
- •Глава 3. Вероятностное моделирование
- •3.1. Метод статистических испытаний
- •3.2. Моделирование дискретных случайных величин
- •3.3. Моделирование непрерывных случайных величин
- •3.4. Сбор статистических данных для получения оценок характеристик случайных величин
- •3.5. Определение количества реализаций при моделировании случайных величин
- •Глава 4. Система моделирования gpss
- •4.1. Объекты
- •4.2. Часы модельного времени
- •4.3. Типы операторов
- •4.4. Внесение транзактов в модель. Блок generate
- •4.5. Удаление транзактов из модели. Блок terminate
- •4.6. Элементы, отображающие одноканальные обслуживающие устройства
- •4.7. Реализация задержки во времени. Блок advance
- •4.8. Сбор статистики об ожидании. Блоки queue, depart
- •4.9. Переход транзакта в блок, отличный от последующего. Блок transfer
- •4.10. Моделирование многоканальных устройств
- •4.11. Примеры построения gpss-моделей
- •4.12. Переменные
- •4.13. Определение функции в gpss
- •4.14. Стандартные числовые атрибуты, параметры транзактов. Блоки assign, mark, loop
- •Примеры фрагментов gpss-моделей c использованием сча и параметров гранзактов
- •4.15. Изменение приоритета транзактов. Блок priority
- •4.16. Организация обслуживания c прерыванием. Блоки preempt и return
- •4.17. Сохраняемые величины
- •4.18. Проверка числовых выражений. Блок test
- •4.19. Определение и использование таблиц
- •4.20. Косвенная адресация
- •4.21. Обработка транзактов, принадлежащих одному семейству
- •4.22. Управление процессом моделирования в системе gpss
- •4.23. Списки пользователей
- •4.24. Блоки управления потоками транзактов logic, gate lr, gate ls и gate
- •4.25. Организация вывода временных рядов из gpss-модели
- •4.26. Краткая характеристика языка plus
- •4.27. Команды gpss WorId
- •4.28. Диалоговые возможности gpss World
- •4.29. Отличия между gpss World и gpss/pc
- •Глава 5. Моделирование вычислительных и операционных систем
- •5.1. Операционные системы компьютеров
- •5.2. Сети и системы передачи данных
- •5.3. Проблемы моделирования компьютеров и сетей
- •Глава 6. Основы моделирования процессов
- •6.1. Производственные процессы
- •6.2. Распределительные процессы
- •6.3. Процессы обслуживания клиентов
- •6.4. Процессы управления разработками проектов
- •Глава 7. Задания для самостоятельной работы Задание 1. Моделирование разливной линии
- •Задание 2 [10]. Моделирование контроля и настройки телевизоров
- •Задание 3. Моделирование работы кафе
- •Задание 4. Моделирование работы обрабатывающего цеха
- •Задание 5. Моделирование работы обрабатывающего цеха
- •Задание 6. Моделирование работы обрабатывающего цеха
- •Задание 7. Моделирование работы cmo
- •Задание 8. Моделирование функций
- •Задание 9 [10]. Моделирование системы обслуживания
- •Задание 10 [16]. Моделирование системы автоматизации проектирования
- •Задание 11 [16]. Моделирование работы транспортного цеха
- •Задание 12 [16]. Моделирование системы передачи разговора
- •Задание 13 [16]. Моделирование системы передачи данных
- •Задание 14 [16]. Моделирование узла коммутации сообщений
- •Задание 15 [16]. Моделирование процесса сборки
- •Задание 16 [16]. Моделирование работы цеха
- •Задание 17 [16]. Моделирование системы управления производством
- •Задание 18. Моделирование производственного процесса
- •Задание 19. Моделирование работы заправочной станции
- •Задание 20. Моделированиеработы станции технического обслуживания
- •Задание 21. Моделирование работы станции скорой помощи
- •Задание 22. Моделирование работы госпиталя
- •Задание 23. Моделирование работы маршрутных такси
- •Задание 24. Моделирование работы печатной системы
- •Задание 25. Моделирование процесса сборки пк
- •Глава8. Проектирование имитационных моделей c помощью интерактивной системы имитационного моделирования
- •8.1. Структура интерактивной системы имитационного моделирования
- •8.2. Построение концептуальной схемы модели
- •8.3. Параметрическая настройка модели
- •8.4. Генератор формул
- •8.5. Управление экспериментом
- •8.6. Запуск эксперимента и обработка результатов моделирования
- •8.7. Управление проектами и общей настройкой системы
- •8.8. Пример построения модели средствами iss 2000
- •Глава 9. Технология имитационного моделирования
- •9.1. Имитационные проекты
- •9.2. Организация экспериментов
- •9.3. Проблемы организации имитационных экспериментов
- •9.4. Оценка точности результатов моделирования
- •9.5. Факторный план
- •9.6. Дисперсионный анализ anova в планировании экспериментов
- •9.7. Библиотечная процедура anova
- •9.8. Технология проведение дисперсионного анализа в системе gpss World
- •9.9. Особенности планирования экспериментов
- •9.10. Нахождение экстремальных значений на поверхности отклика
- •9.11. Организация экспериментов в gpss WorId
- •9.L2. Выбор наилучшего варианта структуры системы
- •Глава 10. Примеры принятия решений c помощью имитационного моделирования
- •10.1. Моделирование производственного участка
- •10.2. Моделирование технологического процесса ремонта и замены оборудования
- •Приложение Системные сча
- •Сча транзактов
- •Сча блоков:
- •Сча одноканальных устройств:
- •Список литературы
- •Глава 9. Технология имитационного моделирования 167
- •Глава 10. Примеры принятия решений c помощью имитационного моделирования 203
4.17. Сохраняемые величины
В GPSS пользователю предоставляется возможность определить «свои» глобальные переменные, начальные значения которых могут быть заданы перед моделированием и к которым можно обратиться из любого места модели в любой момент времени. Эти переменные называют сохраняемыми величинами (ячейками). Совокупность логически связанных между собой ячеек образует матрицу (аналог массива).
В отличие от параметров транзакта, приоритета и отметки времени, которые теряются в момент выхода транзакта из модели, ячейки доступны на протяжении всего процесса моделирования. Значения сохраняемых величин не подсчитываются интерпретатором автоматически (как СЧА устройств, очередей, МКУ и т.п.), А задаются и изменяются программистом.
Сохраняемые величины могут принимать положительные и отрицательные значения. Стандартный числовой атрибут Xj (Х$<имя ячейки>) дает значение соответствующей сохраняемой величины. Например, X2 – значение ячейки 2; X$DAY – значение ячейки DAY.
C матрицами связан стандартный числовой атрибут MXj(m, n) – значение, записанное в строке т и в столбце n матрицы j или МХ$<имя матрицы> (m,n), если матрица имеет символьное имя.
СЧА сохраняемой величины может быть использован для косвенного задания данных, А также как аргумент функций и таблиц.
Перед использованием матрица определяется оператором описания MATRIX. Начальные значения ячеек и матриц можно задать c помощью оператора описания INITIAL.
1. Допускается косвенная адресация ячеек, матриц, А также их строк и столбцов. Например: X*P2 – значение ячейки c номером, который сохраняется в параметре 2; MX*P5(5,2) – элемент (5,2) матрицы, номер которой записан в параметре 5; MX3(P4,X2) – значение, записанное в строке P4 и в столбце X2 матрицы 3.
2. Недопустимой является запись такого вида: MXl(MX2(l,2),MX3(3,4)), поскольку нельзя задавать номера строк и столбцов матрицы c помощью СЧА матриц.
Оператор INITIAL (ИНИЦИАЛИЗИРОВАТЬ). Если в процессе моделирования происходит обращение к сохраняемой величине, которая не была задана, то интерпретатор выдает ошибку в процессе выполнения программы. Поэтому перед началом моделирования все сохраняемые величины должны быть инициализированы c помощью оператора INITIAL.
Формат оператора представлен в таблице.
Ta6лицa 4.39
Поле |
Информация в поле |
Метка |
Не используется |
Операция |
INITIAL |
Операнд А |
Имя сохраняемой величины |
Операнд В |
Начальное значение |
Пример 4.38
INITIAL X$TIMER,1000000
Ячейке TIMER присваивается начальное значение 1000000;
INITIAL X3,2S
Ячейке c номером 3 присваивается начальное значение 25.
INITIAL MX8(2,4),-53
Величина – 53 записывается в строку 2, столбец 4 матрицы 8.
INITIAL MX$COST(l,3),22
Величина 22 записывается в строку 1, столбец 3 матрицы COST.
Блок SAVEVALUE (СОХРАНИТЬ ВЕЛИЧИНУ). Значение сохраняемой величины изменяется при входе транзакта в блок, SAVEVALUE (СОХРАНИТЬ ВЕЛИЧИНУ).
Его формат:
SAVEVALUE A[+,-],B
Таблица 4.40
Операнд |
Значение |
Результат по умолчанию |
А |
Номер или символьное имя сохраняемой величины |
Ошибка |
В |
Величина, используемая для модификации (число или СЧА) |
Ошибка |
Подобно блоку ASSIGN блок SAVEVALUE может быть использован как в режиме замещения величины, так и в режиме увеличения или уменьшения. В режиме увеличения предыдущее значение сохраняемой величины увеличивается на значение, заданное операндом В, А в режиме уменьшения – уменьшается на это значение. Режимы увеличения и уменьшения определяются введением соответственно знака «плюс» или «минус» перед запятой, разделяющей операнды А и В.
Пример 4.39
SAVEVALUE P5,VSALPHA
При входе транзакта в блок SAVEVALUE прежде всего вычисляется величина переменной ALPHA. Полученный результат присваивается сохраняемой величине, номер которой записан в параметpe P5.
SAVEVALUE 5+,X2
При входе транзакта в блок величина X5 увеличивается на значение величины X2.
SAVEVALUE PROFIT-,FN$COSTS
При входе транзакта в блок величина X$PROFIT уменьшается на значение функции FN$COSTS.
Оператор описания матрицы MATRIX. Каждая матрица должна быть объявлена до ее использования, т.е. должна иметь оператор описания. Формат оператора представлен в таблице.
Таблица 4.41
Поле |
Информация в поле |
Метка |
Имя матрицы |
Операция |
MATRIX |
Операнд А |
Не используется (оставлен для совместимости с более старыми версиями GPSS) |
Операнд В |
Число строк матрицы (целое положительное) |
Операнд С |
Число столбцов матрицы (целое положительное) |
Матрица в GPSS/PC может содержать не более чем 8191 элемент. Она может быть переопределена или инициализирована повторно другим оператором MATRIX c тем же именем. Переопределение, при котором размер матрицы изменяется, повлечет за собой выделение памяти под новую матрицу. Выделенная до этого оперативная память остается занятой.
Блок MSAVEVALUE. Блок MSAVEVALUE используется для записи значений в матрицы, А также для увеличения или уменьшения значений элементов матриц. Его формат:
MSAVEVALUE A[+,-|3,C,D
Таблица 4.42
Операнд |
Значение |
Результат по умолчанию |
А |
Имя матрицы |
Ошибка |
В |
Номер строки матрицы |
Ошибка |
С |
Номер столбца матрицы |
Ошибка |
D |
Величина, используемая для модификации |
Ошибка |
Операнды А, В и C могут быть именем, положительным целым, СЧА или CЧA*CЧA. Операнд D может быть именем, СЧА или : CЧA*CЧA.
Подобно блокам ASSIGN и SAVEVALUE этот блок может быть использован как в режиме замещения величины, так и в режиме увеличения или уменьшения.
Когда транзакт входит в блок MSAVEVALUE, то анализируется операнд А и ищется матрица c указанным именем. Если матрица ненайдена, то возникает ошибка. Соответствующий элемент матрицы определяется содержимым операндов В и C. Если такого элемента не существует, то также возникает ошибка.