- •Имитационное моделирование систем
- •Предисловие
- •Список сокращений
- •Введение
- •Глава 1. Основные понятия моделирования систем, классификация моделей и методов с точки зрения философии, моделирование представляет собой один из методов познания мира.
- •1.1. Основные понятия теории моделирования
- •1.2. Основные методы моделирования
- •1.3. Классификация моделей
- •Глава 2. Математическое моделирование систем с использованием марковских случайных процессов
- •2.1. Элементы теории марковских случайных процессов, используемые при моделировании систем
- •2.2. Марковские цепи
- •2.3. Непрерывные цепи Маркова
- •2.4. Финальные вероятности состояний
- •Необходимые и достаточные условия существования финальных вероятностей
- •2.5. Математическое представление потока событий
- •2.6. Компоненты и классификация моделей систем массового обслуживания (смо)
- •2.7. Расчёт основных характеристик смо на основе использования их аналитических моделей
- •Одноканальные системы с отказами
- •Одноканальные системы с ограниченной очередью
- •Многоканальные системы с отказами
- •Многоканальные системы с ограниченной очередью
- •Контрольные вопросы и задания
- •Глава 3. Имитационное моделирование в среде gpss
- •3.1. Общие сведения о языке gpss
- •Основные объекты языка gpss
- •3.3. Основные блоки языка gpss
- •Поступление транзактов в модель
- •Уничтожение транзактов
- •Моделирование работы одноканальных устройств
- •Моделирование очередей
- •Моделирование многоканальных устройств (мку)
- •Изменение маршрута движения транзактов
- •Разработка модели и процесс моделирования в gpss. Пример создания модели
- •Управление процессом моделирования
- •Объекты вычислительной категории языка: переменные и функции. Сохраняемые ячейки
- •Определение и использование функций
- •Работа с параметрами транзакта, приоритеты
- •Блок mark
- •Применение в моделях копий и организация синхронизации движения транзактов
- •Использование блока test
- •Контрольные задания по моделированию Моделирование систем с условием перераспределения заявок в заданном статистическом режиме
- •Заключение
- •Библиографический список
- •Основные элементы стандартного отчёта
- •Системные числовые атрибуты (сча)
- •Сча транзактов
- •Сча блоков
- •Сча одноканальных устройств
- •Сча очередей
- •Сча таблиц
- •Сча ячеек и матриц ячеек сохраняемых величин
- •Сча вычислительных объектов
- •Сча списков и групп
- •10. Какое действие выполняет этот оператор: transfer both,lab1,lab2
- •11. Какое действие выполняет этот оператор: transfer 0.4,lab1,lab2
- •12. Правильно ли описана эта команда: transfer ,met:
- •13. Какое действие выполняет этот блок: lines1 storage 2
- •Индивидуальные зачётные задания по имитационному моделированию систем
- •4. Реорганизация заправочной станции
- •8. Модель швейного цеха
- •10. Моделирование работы заправочной станции
- •11.Моделирование работы станции скорой помощи
- •13. Модель автобусной остановки
- •14.Моделирование работы кафе
- •15. Задача о конвейере
- •17.Моделирование цеха обработки
- •Алфавитно-предметный указатель
- •Рассказова Марина Николаевна имитационное моделирование систем
- •644099, Омск, Красногвардейская, 9
3.3. Основные блоки языка gpss
В отличие от PLUS-операторов, которые могут содержать несколько строк, операторы GPSS записываются в отдельной строке и имеют следующий вид:
[метка] имя блока[операнды] ;комментарии
Обязательным является только поле имя блока, остальные поля могут отсутствовать. Метка является именем-идентификатором блока, определяемым разработчиком. Имена должны начинаться с буквы, могут содержать цифры и символы подчёркивания. Имя метки не должно совпадать с ключевыми словами GPSS. GPSS присваивает меткам номера, начиная с 10 000. Количество обязательных операндов зависит от блока, они отделяются запятыми, для пропуска одного из подполей ставится подряд несколько запятых.
Приведём основные операторы, которые используются в программе.
Поступление транзактов в модель
GENERATE (генерировать) – блок, в котором «рождаются» транзакты (заявки на обслуживание) и входят в процесс моделирования. В любой блок GENERATE не могут входить транзакты. Поэтому в простых программах это первый блок. Имеет формат:
GENERATE [A],[B],[C],[D],[E]
Скобки [ ] означают, что данный операнд является необязательным.
Операнд A задаёт средний интервал времени между моментами поступления последовательных транзактов в модель. Если этот интервал постоянен, то операнд B не используется. Если же интервал поступления является случайной величиной, то в операнде B указывается модификатор среднего значения, который может быть задан в виде модификатора-интервала или модификатора-функции. Модификатор-интервал позволяет задать равномерный закон распределения поступления транзактов. Запись GENERATE A,B означает, что время поступления транзактов будет распределено равномерно на отрезке [A–B, A+B]. Ясно, что В<А.
Например, блок GENERATE 100,40 создаёт транзакты через случайные интервалы времени, равномерно распределённые на отрезке [60;140]. Разыгрывается случайное число в этом интервале, например 78, рождается первый транзакт. Затем, разыгрывается новое случайное число в интервале [60;140], например 132, и второй транзакт попадает в модель в момент времени 78 + 132 = 210 и т. д.
Модификатор-функция используется, если закон распределения интервала поступления отличен от равномерного. В этом случае в операнде B должна быть записана ссылка на функцию (её СЧА), описывающую этот закон, и случайный интервал поступления определяется как целая часть произведения поля A (среднего значения) на вычисленное значение функции.
В операнде C задаётся момент поступления в модель первого транзакта. Если это поле пусто или равно 0, то момент появления первого транзакта определяется операндами A и B.
Операнд D задаёт общее число транзактов, которое должно быть создано блоком GENERATE. Если это поле пусто, то блок генерирует неограниченное число транзактов до завершения моделирования.
Операнд E задаёт приоритет, присваиваемый генерируемым транзактам. Число уровней приоритетов неограниченно, причём самый низкий приоритет – нулевой. Если поле E пусто, то генерируемые транзакты имеют нулевой приоритет.
Операнд F задаёт число параметров транзакта, по умолчанию 12.
Нужно помнить, что смысл единицы времени (секунда, минута, час, день) закладывает разработчик (нигде не прописывая), поэтому нужно все операнды привести к единой единице измерения времени.
Примеры.
GENERATE 5;определяет время поступления транзактов ровно через
5 ед. времени;
2) GENERATE ,,,10;в момент времени 0 родится одновременно 10 транзактов;
3) GENERATE 2,,10,,1 ;первый родится в 10, затем в 12, 14 и т . д. с приоритетом 1.