- •Имитационное моделирование систем
- •Предисловие
- •Список сокращений
- •Введение
- •Глава 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
Моделирование очередей
В GPSS объекты типа "очередь" вводятся для сбора статистических данных. Необходимо понимать, что блоки очереди не влияют на реальное образование очередей транзактов (очереди образуются перед входами в устройства сами по себе), блоки являются регистраторами статистики. Статистика об очередях собирается в моменты входа транзакта в блок QUEUE (вход в очередь) или в блок DEPART (выход из очереди). Формат записи блока QUEUE:
QUEUE A,[B]
Операнд А задаёт номер или имя очереди. Может быть именем, положительным целым числом, СЧА. Поле В определяет число единиц, на которое увеличивается текущая длина очереди. Если поле В пусто, то по умолчанию прибавляется единица.
Когда транзакт входит в блок QUEUE, то ищется очередь с именем, определённым операндом А. Если необходимо, очередь создаётся. Значение текущей длины очереди хранится в СЧА Q$имя. Поскольку очередь обычно используется для измерения времени ожидания, за блоком QUEUE обычно следует такой блок, как SEIZE, который может задержать сообщение. Одно и то же сообщение может одновременно увеличить длину нескольких очередей, т. е. сообщение может войти в несколько блоков QUEUE перед тем, как войти в соответствующие блоки DEPART.
Блок DEPART имеет следующий формат:
DEPART A,[B]
Блок DEPART служит для уменьшения счётчика длины очереди. В поле В задаётся число единиц, на которое уменьшается длина очереди. Это число не должно превышать текущую длину очереди, иначе возникает ошибка «длина очереди отрицательна». Если поле В пусто, длина очереди по умолчанию уменьшается на единицу.
Пример. Посетители приходят в кассу кинотеатра через 20 ± 10 сек, знакомятся с обстановкой 15 ± 15 сек и занимают очередь. Каждый посетитель приобретает билет у кассира в течении 20 ± 5 сек. Построить модель в течении 8 часов.
Запишем модель на языке GPSS.
SIMULATE ;управляющий блок на выполнение программы
GENERATE 20,10 ;приход посетителей
ADVANCE 15,15 ;знакомство с обстановкой
QUEUE 1 ;очередь к кассиру
SEIZE KASSA ;занять кассира
DEPART 1 ;освободить очередь
ADVANCE 20,5 ; покупка билета
RELEASE KASSA ;освободить кассира
TERMINATE ;уход из кассы
GENERATE 2880 ;таймер времени
TERMINATE 1
START 1
При наборе блоков удобно пользоваться окном Insert GPSS blocks (вставить блок), которое вызывается в меню Edit/Insert GPSS blocks. Выбрав в нём нужный блок, заполняем последовательно поля ввода для каждого операнда. Здесь удобно вводить метки и комментарии.
Моделирование многоканальных устройств (мку)
Многоканальное устройство (памяти) – особый объект языка для имитации разного рода накопителей, конвейеров, в которых одновременно могут находиться несколько транзактов. В отличие от одноканального устройства, для указания ёмкости (количества каналов) используется оператор описания памяти STORAGE. Как любой оператор описания он помещается между блоками SIMULATE и GENERATE. Формат оператора:
имя STORAGE А
Сначала определяется имя МКУ, А – ёмкость МКУ (количество каналов).
Блок ENTER (занять МКУ) позволяет вошедшему транзакту использовать многоканальное устройство. Транзакт может быть задержан на входе в блок, если многоканальное устройство заполнено, или имеющейся ёмкости недостаточно, или устройство в данный момент недоступно. Формат записи:
ENTER A,[B]
Операнд А указывается номер или имя МКУ, определённое блоком STORAGE. В необязательном поле В содержится число занимаемых каналов. Если поле В пусто, то по умолчанию занимается один канал. Одно и то же сообщение может входить в неограниченное число многоканальных устройств, а впоследствии освобождать их (или часть из них).
Блок LEAVE (покинуть устройство) имеет формат:
LEAVE A,[B]
Блок LEAVE освобождает определённое число единиц многоканального устройства, указанных в поле В. Если это поле пусто, по умолчанию предполагается равным 1. Число освобождаемых единиц не должно превышать текущее содержимое многоканального устройства. Транзакт не обязан освобождать столько же единиц каналов, сколько занимал. Поле А блока LEAVE определяет номер или имя многоканального устройства.
Пример. Машины подъезжают на СТО с интервалом 4±2 мин. и обслуживаются у одного из 3-х свободных мастеров в течении 60±4 – 5 мин., затем покидают станцию. Можно промоделировать следующим образом.
SIMULATE
CTO STORAGE 3
GENERATE 4,2
ENTER CTO
ADVANCE 60,45
LEAVE CTO
TERMINATE