- •Имитационное моделирование систем
- •Предисловие
- •Список сокращений
- •Введение
- •Глава 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
Изменение маршрута движения транзактов
Блок TRANSFER (передавать) предназначен для передачи входящего в него транзакта в другой блок модели. Он имеет формат:
TRANSFER [A],[B],[C],[D]
Операнды В и С являются метками блоков, куда направляется транзакт. Операнд А задаёт режим выбора блока, к которому направляется транзакт, существует 9 режимов:
, – безусловный режим;
. – статистический, выбор одного из двух с заданной вероятностью;
BOTH – последовательный выбор одного из двух блоков;
ALL – последовательный выбор одного из нескольких блоков;
PICK – выбор одного из нескольких случайным образом;
FN – функциональный режим, выбор по заданной функции;
Р – параметрический;
SBR – подпрограммный;
SIM – одновременный.
В режиме безусловного перехода операнд А пуст и все транзакты отправляются к блоку, указанному в блоке В. Например, TRANSFER ,MET1
В статистическом режиме значение операнда А, записываемое после точки как трёхзначное десятичное число, показывает вероятность (долю) транзактов, которые должны быть отправлены в блок с меткой С, остальные в блок В или к следующему блоку, если операнд В опущен. Примеры:
TRANSFER .7,MET1,MET2;70 % идёт на метку MET2, 30 % – на MET1
TRANSFER .4,,MET2 ;40 % идёт на метку, 60 % – в блок ниже
Если блоки с меткой MET1, MET2 заняты, то транзакт остаётся в блоке TRANSFER и повторяет попытку перехода в каждый следующий момент модельного времени.
В режиме BOTH транзакт проверяет два пути: сначала возможность войти в блок с меткой В, затем в С, если оба заняты, то ждёт.
В режиме ALL транзакт проверяет возможность войти в любой блок, начиная с блока, указанного в операнде В, и заканчивая блоком, указанным С. Операнд В определяет шаг изменения номера проверяемого блока.
В функциональном режиме вычисляется значение функции, имя которой указано в операнде В, берётся целая часть, полученное число складывается с С (может быть 0) и в блок с этим номером направляется транзакт.
Разработка модели и процесс моделирования в gpss. Пример создания модели
Рассмотрим процесс разработки модели на конкретном примере.
Пример. В парикмахерской два зала: причёсок и маникюрный. В маникюрном зале один мастер, в зале причёсок 2 мастера. Около 60 % приходящих клиентов пришли сделать причёску, из них 25 % затем хотят сделать маникюр. Если очередь к мастерам более одного человека, то клиент уходит. Поток клиентов простейший со средним значением 10 мин., время обслуживания в маникюрном зале 30 ± 10 мин, в зале причёски 60 ± 10 мин. Построить модель, имитирующую работу салона в течение 12-ти часов. Определить коэффициенты загрузки мастеров и количество ушедших клиентов.
Для моделирования простейшего потока воспользуемся встроенной библиотечной функцией exponential(a,b,c), задающей показательный закон распределения. Аргумент а означает номер генератора случайных чисел (любое число от 0 до 127), в определяет сдвиг, с – среднее значение. Для того чтобы различать клиентов, ушедших из-за очереди более 1 человека, введём два TERMINATE с разными метками. Для проверки очереди используем блок TEST и СЧА длины очереди Q$имя.
SIMULATE
PRICH STORAGE 2 ;заводим 2 мастера причёсок
GENERATE (exponential(1,0,10)) ;генерируем клиентов
TRANSFER .6,Z_MAN,Z_PRICH ;60 % на причёску, 40 % – маникюр
Z_PRICH TEST L Q$OCHPRICH,2,NEOBS ;длина очереди меньше двух?
QUEUE OCHPRICH ;становимся в очередь
ENTER PRICH ;занимаем мастера причёсок
DEPART OCHPRICH ;покидаем очередь
ADVANCE 60,10 ;обслуживаемся
LEAVE PRICH ;освобождаем мастера
TRANSFER .75,,VYIHOD ;75 % уходят, 25 % пошли на маникюр, ниже
Z_MAN TEST L Q$OCHMAN,2,NEOBS ;проверяем очередь на маникюр
QUEUE OCHMAN
SEIZE MAN ;занимаем мастера по маникюру
DEPART OCHMAN
ADVANCE 30,10
RELEASE MAN ;освобождаем мастера
VYIHOD TERMINATE ;все обслуженные клиенты уходят
NEOBS TERMINATE ;здесь необслуженные клиенты
GENERATE 720 ;фиктивный блок времени
TERMINATE 1
START 1