Выбор оптимальной дисциплины технологического обслуживания
Пусть группа станков обслуживается роботом-манипулятором. При этом возможны различные дисциплины обслуживания. Требуется выбрать оптимальную по заданному критерию дисциплину технологического обслуживания станков.
Очевидно, что в данном случае, как и в рассмотренном выше, мы имеем типичную систему массового обслуживания (СМО). При решении поставленной задачи могут применяться аналитические методы ТМО и метод имитационного моделирования. Зимин В.Л., используя метод вложенных цепей Маркова, проводит сравнение двух дисциплин обслуживания: обслуживание по запросу в порядке очереди и циклическое обслуживание. Критерием при сравнении служит коэффициент готовности обслуживаемых станков.
Оказалось, что для заданной замкнутой СМО в условиях пуассоновского входного потока коэффициент готовности станков при обслуживании по запросу в порядке очереди выше, чем при циклическом обслуживании. Однако, при относительно невысокой интенсивности потока заявок и небольшом количестве обслуживаемых станков значения коэффициента готовности практически совпадают. Естественно, что в этом случае предпочтительнее будет циклическое обслуживание, поскольку при этой дисциплине проще реализовать управляющую роботом программу.
Используя предложенную модель, можно исследовать эффективность и различных других дисциплин обслуживания.
Тема 7: Имитационное моделирование
1. Основные понятия Имитационного моделирования
1.1 Отличие аналитических моделей от имитационных
1.2 Средства реализации имитационной модели
1.3 Универсальность имитационного подхода и его основные недостатки
1.4 Классификация имитационных моделей
1.5 Этапы построения имитационных моделей
2. Общецелевая система моделирования GPSS
2.1 Основные понятия
2.2 Основные концепции моделирования на GPSS
2.3 Генерация и уничтожение транзактов. Введение транзактов в модель
3. Правила записи на бланках перфорации
1. Основные понятия Имитационного моделирования
Метод имитационного моделирования основан на алгоритмическом описании процессов и объектов, что делает возможным воспроизведение с помощью ЭВМ особенностей их функционирования с сохранением логической и временной структуры всех событий «жизни» реальной системы.
Машинную имитацию можно охарактеризовать как управляемый эксперимент с моделью системы, реализованной на ЭВМ.
Модель – это формализованное описание реальной системы, представляемое в таком виде, который позволит ввести это описание в ЭВМ и отразить с ее помощью поведение системы.
Эксперимент заключается в прогонах модели на ЭВМ или в проигрывании различных ситуаций, имеющих место в реальной системе. Управление экспериментом осуществляется путем варьирования исходных данных и изменении самой модели.
1.1 Отличие аналитических моделей от имитационных
Аналитические модели обычно представляются в виде уравнений, тождеств, неравенств и т.д. Они дают точное или приближенное решение поставленной задачи. Для этого класса моделей характерен высокий уровень абстракции, что часто снижает степень их адекватности реальному процессу (объекту). Существенным недостатком является практическая неразрешимость многих задач аналитическими методами (например, системы нелинейных дифференциальных уравнений в частных производных с граничными условиями).
Имитация применяется в тех случаях, когда нет аналитических способов исследования модели или когда аналитические модели не обладают требуемой точностью.
Имитация – численный метод, т.е. метод приближенных вычислений, когда решение получается на основе операций с большими массивами чисел. Это вызывает необходимость использования специальных методов обработки результатов.
1.2 Средства реализации имитационной модели
Первоначально разработка имитационных моделей велась в рамках традиционного подхода к решению отдельных задач с использованием ЭВМ.
При этом использовались универсальные языки программирования: PL/1, Фортран, Алгол. Наличие в различных имитационных моделях программных блоков, выполняющих практически одинаковые функции, привело к разработке специальных языков моделирования (Симскрипт, Симула, Динамо, GPSS, Имитак), которые позволяют выполнять поэлементное представление модели.
1.3 Универсальность имитационного подхода и его основные недостатки
Имеется возможность строить имитационные модели любой сложности при большом количестве динамических взаимосвязей. При этом анализ выходной информации осуществляется одними и теми же методами математической статистики и теории планирования эксперимента. Имитационная модель может быть использована для всестороннего анализа моделируемого объекта, т.е. с помощью методов имитации может использоваться практически любая реальная ситуация.
К недостаткам имитационного моделирования следует отнести частный характер результатов и в известной степени самой модели, а также трудоемкость разработки, большие затраты машинного времени на проведение экспериментов, стохастический характер результатов имитации, сложность нахождения оптимального варианта решения при детальном моделировании социально-экономических систем, необходимость исследователю иметь навыки программиста, специальные знания в области математической статистики и теории планирования эксперимента.
1.4 Классификация имитационных моделей
Классификация имитационных моделей может проводиться по различным аспектам. Одним из признаков классификации может быть учет случайных возмущений и отражение поведения моделируемого объекта с течением времени. В соответствии с этим классификационным признаком имитационные модели делятся на детерминированные и стохастические. В детерминированных моделях случайные факторы не учитываются. Стохастические имитационные модели сложны, они основаны на моделировании случайных величин и процессов и отражают их влияние на изменение характеристик объекта.
Второй аспект позволяет подразделять модели на статистические и динамические. Если ставится цель получить такие характеристики, как, например, производительность труда, надежность технической системы, - то это статическая модель. В случае, когда та же самая модель используется для имитации осуществления той или иной стратегии управления объектом, модель выступает как динамическая.
1.5 Этапы построения имитационных моделей
Независимо от вида разрабатываемой имитационной модели процесс ее построения состоит из следующих этапов:
1. Формулировка проблемы (задачи) моделирования,
2. Формализация модели,
3. Выбор языка моделирования и разработка комплекса программ, реализующих модель на ЭВМ,
4. Оценка адекватности созданной модели,
5. Планирование имитационного машинного эксперимента,
6. Обработка результатов имитационного эксперимента,
7. Внесение корректив и совершенствование имитационной модели, оценка ее адекватности изучаемому процессу (явлению).
В зависимости от сложности моделируемого объекта эти этапы имеют различную трудоемкость, но в том или ином виде обязательно выполняются зачастую или совместно.
Кратко охарактеризуем основные особенности некоторых из этапов.
Формулировка проблемы предполагает определение цели моделирования, выбор ограничений на ресурсы и т.д.
Формализация модели предполагает выбор типа создаваемой модели, состава переменных, определение источников информации и ее объемов, формализованное описание основных зависимостей, формирование структуры модели, определение условий перехода из одного состояния в другое и т.д.
Создание комплекса программ базируется на выборе языка программирования, учитывающего тип имитации. Составление укрупненной блок-схемы модели, разбиение модели на отдельные части с учетом модульного принципа создания программного обеспечения.
2. Общецелевая система моделирования GPSS
2.1 Основные понятия
Общецелевая система моделирования GPSS предназначена для построения дискретных имитационных моделей и осуществления с ними экспериментов на ЭВМ.
В основу модельного отображения реальных объектов с помощью GPSS положена концепция представления таких объектов в виде сетей массового обслуживания, где изменение состояний происходит в дискретные моменты времени. GPSS как система моделирования состоит из оригинального входного языка, имеющего свой словарь, грамматику и транслятор интерпретирующего типа, называемого интерпретатором GPSS. Интерпретатор представляет собой программу, которая переводит модель, описанную в терминах входного языка GPSS, в программу для ЭВМ и обеспечивает сам процесс моделирования.
В случае использования GPSS, мы моделируем системы, которые рассматриваются как сети массового обслуживания.
Пример. Системы обслуживания с одним прибором и очередью.
Интервал времени между последовательными моментами прибытия заявок в систему, который часто называют интервалом прибытия, является случайной величиной. Время, требуемое прибору для выполнения обслуживания, также является случайной величиной.
Приход Очередь Прибор Уход
Простая СМО, указанная выше, характеризуется этими независимыми случайными величинами. Предметом исследования являются распределения системных величин, зависящих от этих двух величин. Ими могут быть:
1. Число заявок, прибывших на обслуживание за заданный промежуток времени,
2. Число заявок, которые попали на обслуживание сразу же по прибытии,
3. Среднее время пребывания заявок в очереди,
4. Средняя длина очереди,
5. Максимальная длина очереди,
6. Нагрузка прибора, являющаяся функцией времени, которое потрачено прибором на обслуживание в течение заданного промежутка времени.
Разработка логической схемы модели на ЭВМ, которая имитирует СМО с одним прибором и очередью ведется при следующих условиях.
1. Случайная переменная, представляющая собой интервал времени между последним моментом прибытия, является равномерно распределенной случайной величиной и принимает только целые значения.
2. Время обслуживания предполагается равномерно распределенной случайной величиной,
3. Все пребывающие заявки должны быть обслужены независимо от длины очереди,
4. В начале моделирования очереди нет и обслуживающий прибор свободен,
5. Моделирование продолжается до тех пор, пока не будет достигнуто значение модельного времени, заданное для этой модели в качестве одного из входных данных. Как только этот заданный интервал времени истечет, моделирование будет завершено. В общем случае, когда моделирование завершается, обслуживающий прибор может быть в состоянии обслуживания заявки и в очереди может находиться одна или более заявок,
6. В процессе моделирования должна быть зафиксирована максимальная длина очереди.
2.2 Основные концепции моделирования на GPSS
В GPSS-модели происходит движение перемещающихся элементов (заявок). Каждый такой элемент называется транзактом.
Работа в GPSS-модели заключается в перемещении транзактов от блоков к блокам. Продвижение транзактов продолжается до тех пор, пока не произойдет одно из следующих событий:
1. Транзакт входит в блок, функцией которого является задержка транзакта на некоторое определенное моделью время,
2. Транзакт входит в некоторый блок, функцией которого является удаление транзакта из модели,
3. Транзакт «пытается» войти в следующий блок, в соответствии с предложенной блок-схемой логикой, однако блок «отказывается» принять этот транзакт. В этом случае транзакт остается в том блоке, в котором он в настоящее время находится. Позднее он будет повторять свою попытку войти в следующий блок.
Блокам в программе присваиваются символические имена. Они составляются из алфавитно-цифровых символов, причем их число не должно превышать пяти и первые три символа должны быть алфавитными.
Обычно символические имена присваиваются блокам, на которые есть ссылки из других частей модели.
Каждый блок определяет какое-либо действие в модели (например, создание или уничтожение транзактов, управление их потоками и т.д.).
Блоки соединяются в последовательности, называемые сегментами.
Исходя из функций блоков можно утверждать, что они являются как бы эквивалентами операторов в обычных языках программирования.
2.3 Генерация и уничтожение транзактов. Введение транзактов в модель
GENERATE-блок, через который транзакт входит в модель. Информация, необходимая для данного блока задается операндами А и B. Возможно задание равномерно распределенного интервала прибытия и другие варианты, для задания которых используются функции.
A – средний интервал времени между поступлениями двух последовательных транзактов.
B – половина поля допуска равномерно распределенного интервала.
Пример. GENERATE 5,3. Генерирует целые числа от 2 до 8.
Наличие операндов А и B необязательно. Если одно или оба значения не указаны, по умолчанию предполагаются нулевые значения.
Используются еще три операнда.
Операнд | Значение | Значение по умолчанию |
C | Смещение интервалов | Смещение отсутствует |
D | Ограничитель | Бесконечность |
E | Уровень приоритета | Нуль |
Операнд С используется для задания смещения интервалов. Это момент времени, в который в блоке GENERATE должен появиться первый транзакт. После этого все остальные проходы заявок возникают в соответствии с распределением интервала времени, заданным А и B. Операнд D задает граничное значение общего числа транзактов, которые могут войти через данный блок. Когда это число достигнуто, блок перестает работать. Операнд Е задает уровень приоритета транзакта. Возможно 128 уровней от 0 до 127. Чем больше число, тем выше приоритет.
Пример. GENERATE 3,3,10,5 – начало прохода 10, интервал прибытия равномерно распределен от 0 до 6. В модель входят 5 транзактов.
GENERATE 5,,2 – время прибытия 2. После этого приход транзактов через каждые 5 единиц времени.
GENERATE 8,1,,,4 – интервалы прибытия описываются условием 8±1, смещения нет, без ограничений, уровень приоритета 4.
3. Правила записи на бланках перфорации
Символическое имя (если оно задано) помещается между 2 и 6 позициями.
Операцию блоков записывают, начиная с колонки №8.
Операнды располагают с 19 позиции. Операнды следуют один за другим, они отделяются запятыми, между ними не оставляют пробелов.
Первая позиция не является полем имени. Если в ней стоит -, то вся строка воспринимается как комментарий.
Удаление транзактов из модели
Транзакты удаляются из модели попадая в блок TERMINATE (завершит). В модели может быть любое число таких блоков. Имеется операнд А, являющийся указателем счетчика завершений. Он задает величину, вычитаемую из счетчика завершений каждый раз, когда транзакт входит в блок TERMINATE. Если А не указывается, то по умолчанию он равен нулю. В этом случае вход транзакта в такой блок не вызывает уменьшения счетчика завершений.
В счетчике завершения хранится положительное число (целое), записанное в начале моделирования. При достижении содержанием счетчика нуля моделирование завершается.
Интерпретатор в GPSS начинает моделирование, когда встречается управляющая карта START.
Слово START записывается в поле операции с восьмой позиции, операнд А обычно записывается с 19-ой позиции. Блоки TERMINATE и START используются для управления процессом моделирования.
Пример. Необходимо моделировать поведение системы в течение 8 часов с интервалом времени – 1 мин. Это возможно сделать в виде двух вариантов:
1. В модель включить сегмент:
GENERATE 480
TERMINATE 1
В карте START, в качестве операнда А должна быть использована единица. В момент модельного времени 480 транзакт выходит из блока GENERATE и переходит в блок TERMINATE, удаляется из системы, из счетчика завершения вычитается 1 и моделирование прекращается.
2. В модель вставляется сегмент:
GENERATE 1
TERMINATE 1
В качестве операнда А карты START используется 480. Транзакты появляются в моменты времени 1,2, … ,480. Каждый из них попадает в блок TERMINATE и при его удалении из счетчика завершений вычитается единица.
Вторая схема требует больше времени. Кроме того, таймер проходит через все моменты времени, что еще больше увеличивает время моделирования.
Элементы, символизирующие обслуживающие приборы
Приборы характеризуются двумя основными способами:
1. Каждый прибор в любой момент времени может обслуживать только одно требование. Если в процессе обслуживания появляется новое требование, то оно должно либо ждать своей очереди, либо перейти в другое место. Возможно прерывание обслуживания, если новое требование имеет более высокий приоритет,
2. Когда на прибор поступает требование, надо выделить время на его обслуживание.
Приборам могут быть даны имена, это либо числа, либо символы. Числа должны быть целыми и положительными. Символические имена строятся по тем же правилам, что и для блоков.
Занятие и освобождение приборов
При использовании прибора выполняются следующие шаги:
1. Ожидание в очереди на обслуживание,
2. Когда «подходит очередь» – «занятие прибора». Событие «занятие прибора» происходит в некоторый момент времени,
3. Прибор остается в состоянии «занятости», пока не окончится обслуживание,
4. Событие «освобождение прибора» происходит в некоторый момент времени.
Рассмотрим реализацию 2 и 4 шагов.
В GPSS элементами, которые требуют обслуживания являются транзакты. Они перемещаются по модели блок за блоком. Для занятия прибора транзакт входит (или пытается войти) в соответствующий блок, описывающий этот прибор. Блок должен обладать следующими свойствами:
1. Если прибор уже используют, транзакт не может войти в блок, он должен ждать в очереди, т.е. этот транзакт на время исключают из рассмотрения,
2. Если прибор свободен, транзакт может войти в блок. Вход транзакта в блок вызывает выполнение подпрограммы обработки этого блока. Результатом является изменение статуса прибора с «незанято» в «занято».
Блок, который обладает этими свойствами, называется SEIZE А, где А – символическое или числовое имя. Освобождение прибора выполняется блоком RELEASE А, где А – имя прибора.
Этот блок не запрещает вход транзакту. Если делается попытка освободить свободный прибор, то выдается сообщение об ошибке и моделирование прекращается. При моделировании статистика использования прибора собирается автоматически.
Реализация задержки во времени
После занятия прибора возможно занятие сразу следующего прибора (рабочий и инструмент). Блок ADVANCE А,B выполняет задержку транзакта. Операнды А,B имеют тот же смысл, что и в блоке GENERATE.
Пример. SEIZE JOE
ADVANCE 16,4
RELEASE JOE
Блок ADVANCE никогда не препятствует входу транзактов. Любое их число может одновременно находиться в этом блоке.
Ожидание обслуживания
Дисциплина может устанавливаться по правилу «первый пришел – первым обслужен», или по приоритету. Блок QUEVE означает стать в очередь, DEPART – покинуть очередь. Эти блоки используются в операндом А, который является символическим именем очереди.
Пример. QUEVE JOEQ - стать в очередь
SEIZE JOE - занял прибор
DEPART JOEQ - покинул очередь
ADVANCE 16,4 - обслуживание
RELEASE JOE - окончил обслуживание и освободил прибор
В операторах QUEVE и DEPART возможно использовать операнд В (по умолчанию 1). Этот операнд указывает на сколько изменяется содержимое счетчика очереди. При работе модели собирается следующая статистика:
1. Число требований, поступивших в очередь,
2. Количество транзактов, фактически присоединившихся к очереди и сколько из прибывших поступило на обслуживание без задержки,
3. Максимальное значение длины очереди,
4. Среднее число требований, ожидающих обслуживания,
5. Среднее время ожидания тех требований, которым пришлось стать в очередь.
Использование блока QUEVE необязательно. Очередь существует независимо от него. Этот блок используется для сбора статистики.
Управляющий оператор SIMULATE
При необходимости выполнения просчетов по составленной модели, должен использоваться оператор SIMULATE. Если оператор отсутствует, то выполняется лишь трансляция модели. Стандартное положение оператора – начало программы. С его помощью можно задавать максимальную длительность счета модели (в минутах). В случае истечения заданного времени счета, моделирование завершается, а на печать выдается собранная к этому моменту статистика.
Пример. SIMULATE 5 - оператор определяет длительность счета модели, равную 5 минут.
Задача №1. Интервалы прихода клиентов в парикмахерскую с одним креслом распределены равномерно и составляют 18±6. Время обслуживания изменяется в пределах 16±4 минуты. Клиенты приходят в парикмахерскую и обслуживаются по правилу «первым пришел – первым обслужен», после чего покидают систему. Построить модель данной системы за 1 рабочий день.
Модель состоит из двух сегментов: клиенты и сегмент-таймер.
Условные обозначения:
Прибор – JOE (парикмахер);
Очередь из клиентов – JOEQ (используется для сбора статистики).
SIMULATE | ||
Х | MODEL SEGMENT 1 | |
GENERATE | 18,6 | |
QUEVE | JOEQ | |
SEIZE | JOE | |
DEPART | JOEQ | |
ADVANCE | 16,4 | |
RELEASE | JOE | |
TERMINATE | ||
X | MODEL SEGMENT 2 | |
GENERATE | ||
TERMINATE 1 | ||
START 1 | ||
END |
Порядок расположения сегментов безразличен.
Задача №2. В парикмахерскую с одним креслом могут приходить клиенты двух типов:
1. Только стричься. Распределение интервала прихода 35±10 минут,
2. Стричься и бриться. Распределение прихода 60±20 минут.
Стрижка - 18±6 минут, бритье - 10±2 минут.
Моделировать работу парикмахерской в течение 5 дней.
Структура модели:
1 сегмент – клиенты, которые только стригутся,
2 сегмент – клиенты, которые пришли стричься и бриться,
3 сегмент – таймер.
SIMULATE | ||
Х | MODEL SEGMENT 1 | |
GENERATE | 35,10 | |
QUEVE | JOEQ | |
SEIZE | JOE | |
DEPART | JOEQ | |
ADVANCE | 18,6 | |
RELEASE | JOE | |
TERMINATE | ||
Х | MODEL SEGMENT 2 | |
GENERATE | 60,20 | |
QUEVE | JOEQ | |
SEIZE | JOE | |
DEPART | JOEQ | |
ADVANCE | 18,6 | |
ADVANCE | 10,2 | |
RELEASE | JOE | |
TERMINATE | ||
X | MODEL SEGMENT 3 | |
GENERATE | ||
TERMINATE | ||
START | ||
END |
Система обслуживания с одним прибором, очередью и приоритетом
Задача №3. Кладовщик выдает запасные части механикам, обслуживающим станки. Время, необходимое для обслуживания зависит от приоритета запроса. Запросы бывают двух типов.
Категория запроса | Интервал времени прихода запросов | Время обслуживания |
420±360 | 300±90 | |
360±240 | 100±30 |
Дисциплина обслуживания: «первым пришел – первым обслужен» внутри приоритетного класса.
Структура модели и условные обозначения:
1 сегмент – механики, делающие запросы 1-ой категории,
2 сегмент – механики, делающие запрос 2-ой категории,
3 сегмент – таймер.
Приборы – CLEPK (кладовщик), LINE – очередь.
SIMULATE | ||
X | MODEL SEGMENT 1 | |
GENERATE | 420,360,,,1 | |
QUEVE | LINE | |
SEIZE | CLEPK | |
DEPART | LINE | |
ADVANCE | 300,90 | |
RELEASE | ||
TERMINATE | ||
X | MODEL SEGMENT 2 | |
GENERATE | 360,240,,,2 | |
QUEVE | LINE | |
SEIZE | CLEPK | |
DEPART | LINE | |
ADVANCE | 100,30 | |
RELEASE | CLEPK | |
TERMINATE | ||
X | MODEL SEGMENT 3 | |
GENERATE | ||
TERMINATE | ||
START | ||
END |
Изменение маршрутов транзактов
В GPSS поток транзактов обычно проходит блоки последовательно. Для изменения маршрутов транзактов используется блок TRANSFER. Он позволяет передать управление любому блоку программы. TRANSFER может работать в режимах условного перехода и безусловной передачи управления.
При безусловной передаче управления блок имеет вид: TARNSFER ,В – в поле А стоит запятая, в поле В – имя блока, которому будет передано управление.
Пример. TRANSFER ,NEXT
Задача №4. Производство деталей определенного вида включает процесс сборки, заканчивающийся коротким периодом обжига в печи. Поскольку содержание печи обходится довольно дорого, то несколько сборщиков используют одну печь, в которой можно обжигать одну деталь. Сборщик не может начать новую сборку, пока не вытащит из печи предыдущую деталь.
Таким образом, сборщик работает в следующем режиме:
1. Собирает очередную деталь,
2. Ожидает возможность использовать печь по принципу «первым пришел – первым обслужен»,
3. Использует печь,
4. Возвращается к 1 пункту.
Требуется определить оптимальное число сборщиков.
Исходные данные.
Операция | Требуемое время |
Сборка | 30±5 |
Обжиг | 8±2 |
Элемент процесса | Стоимость |
Заработная плата сборщика | 2 рубля в час |
Стоимость печи | 80 рублей за восьмичасовой рабочий день (независимо от степени использования) |
Цена материала | 2 рубля за 1 деталь |
Стоимость готового изделия | 7 рублей за 1 деталь |
1 сегмент модели – сборщики,
2 сегмент – таймер.
OVEN – печь.
Требуется определить оптимальное число сборщиков, использующих одну печь. Под оптимальным понимают такое число, которое дает максимальную прибыль. Время моделирования – 40 часов.
SIMULATE | ||
X | MODEL SEGMENT 1 | |
GENERATE | ,,,4 | |
BACK | ADVANCE | 30,5 |
SEIZE | OVEN | |
ADVANCE | 8,2 | |
RELEASE | OVEN | |
TRANSFER | ,BACK | |
X | MODEL SEGMENT 2 | |
GENERATE | ||
TERMINATE | ||
START | ||
END |
В этом варианте статистика по очереди не выбирается.
Условный переход
Режим ВОНТ. Задается в поле А блока TRANSFER. Осуществляется выбор маршрута между двумя блоками, имена которых указаны в поле операндов В и С. Сначала транзакт пытается войти в блок, заданный в B, затем в С, если это невозможно он задерживается в блоке TRANSFER и затем повторяет опрос блоков, имена которых указаны в B и С.
Пример. TRANSFER BOTH, ONE, SAM.
Задача №5. Используются данные задачи №4, но для случая двух печей OVEN1 и OVEN2.
SIMULATE | ||
X | MODEL SEGMENT 1 | |
GENERATE | ,,,4 | |
BACK | ADVANCE | 30,5 |
TRANSFER | BOTH, OVEN1, EXT | |
ONE | SEIZE | OVEN1 |
ADVANCE | 8,2 | |
RELEASE | OVEN1 | |
TRANSFER | ,BACK | |
NEXT | SEIZE | OVEN2 |
ADVANCE | 8,2 | |
RELEASE | OVEN2 | |
TRANSFER | ,BACK | |
X | MODEL SEGMENT 2 | |
GENERATE | ||
TERMINATE | ||
START | ||
END |
Выходная информация по использованию устройств (приборов)
1. Номер устройства (прибора) Facility
OVEN
2. Коэффициент использования прибора Average Utilization
.131
.785
суммарное время использования прибора
коэффициент использования прибора =
относительное условное время
т.е. коэффициент использования прибора равен отношению суммарного условного времени, в течение которого устройство было занято, к общему условному времени счета. Сообщение выдается в тысячных долях.
3. Число входов NUMBER ENTRIES
4. Среднее время использования устройства одним транзактом 7,991
5. Номер транзакта, занимающего прибор в момент окончания моделирования 81
6. Номер транзакта, если такой имеется, который в настоящее время занял прибор
PRESENT TRANS NO
Анализ решения задачи №4.
Для 4,5,6 сборщиков выпускается соответственно 235, 279 и 294 детали. Сборщик зарабатывает 80 рублей в неделю. Стоимость использования печи составляет 400 рублей в неделю.
Число сборщиков | Стоимость израсходованных материалов | Стоимость использования печи | Заработная плата | Стоимость деталей | Прибыль |
Таким образом, оптимальное число сборщиков равно 5.
Управляющая карта CLEAR (очистить)
В задачах №4 и №5 требовалось провести моделирование для разного числа сборщиков. В этом случае требует изменения только операнд D блока GENERATE в сегменте 1. Это можно сделать с помощью карты CLEAR. Она подготавливает модель к повторному прогону, при этом сбрасывается вся статистика. Обычно таким образом переопределяется карта GENERATE.
Задача №4. При использовании этого оператора имеет следующий вид.
SIMULATE | ||
KEY | GENERATE | ,,,4 |
BACK | ADVENCE | 30,5 |
SEIZE | OVEN | |
ADVANCE | 8,2 | |
RELEASE | OVEN | |
TRANSFER | BACK | |
GENERATE | ||
TERMINATE | ||
START | ||
GENERATE | ,,,5 | |
CLEAR | ||
START | ||
END |
После первой карты START блок GENERATE, имеющий символическое имя KEY, переопределяется. В результате действия оператора CLEAR, вся накопленная в процессе моделирования информация, стирается. Интерпретатор выдает на печать следующее сообщение: MULTIPLE DEFINITION OF SYMBOL IN ABOVE CARD (в предыдущей карте повторное использование имени).
Модельное время
Для того, чтобы обеспечить правильную временную последовательность событий в модели, организованы часы, хранящие значение текущего момента в модели. Все отрезки времени моделируемой системы измеряются целыми значениями. В отличии от обычных часов, измеряющих время в определенных единицах, обычно в секундах, часы в GPSS меняют свое значение только для того, чтобы указать время наступления ближайшего события. Например, если текущее значение часов модели равно 2, а очередное событие должно наступить в момент времени 7, то значение часов увеличивается сразу на 5 единиц.
Интерпретатор самостоятельно управляет потоком транзактов. Это означает, что он определяет какое время и в каком блоке будет находиться транзакт, а также дальнейший его маршрут. Для этого время наступления указанных событий назначается в единицах системных часов. В начале моделирования интерпретатор планирует приход первого транзакта и устанавливает таймер системного времени равным моменту его появления. Этот транзакт (а также другие, если они генерируются), входит в модель и продвигается через все доступные ему блоки. После того как не остается ни одного транзакта, который нужно передвигать в данный момент времени, интерпретатор устанавливает значение таймера равным времени наступления следующего события, на которое запланировано продвижение следующего транзакта. Когда движение и этого транзакта приостановится, т.е. он будет где-то заблокирован, интерпретатор осуществит поиск следующего транзакта, у которого будет самым близким из всех время ухода из блока. Таймер устанавливается на это время, и новый транзакт начнет свое движение.
Статистика GPSS
Целью построения любой модели является исследование моделируемой системы, поэтому интерпретатор GPSS собирает и автоматически выводит в конце каждого прогона серию стандартной статистики по каждому типу объектов, занятых в модели. Стандартная статистика используется при отладке модели и при оценке системы.
Вывод статистики о блоках
Выходные статистические данные для блоков содержат текущее и общее показания счетчиков числа входов для блоков. Столбец CURRENT – текущее число транзактов, прошедших через блок.
Стандартный вывод статистики об очередях:
1. Имя или номер очереди QUEVE LINE
2. Максимальная длина MAXIMUM CONTETS
3. Средняя длина AVERAGE CONTENTS
4. Общее число входов TOTAL ENTRIES
5. Число нулевых входов (без последующего ожидания) ZERO ENTRIES
6. Среднее время задержки в очереди AVERAGE TIME/TRANS
7. Среднее время задержки в очереди без учета нулевых
входов CURRENT CONTENTS
8. Текущая длина очереди PERCENT
9. Процент нулевых входов ZEROS
Пакет моделирования дискретных систем (ПМДС), его назначение и структура
Для реализации имитационных моделей, описанных на языке GPSS, используется пакет моделирования дискретных систем.
Распределение основной памяти имеет вид:
А | Супервизор ОС ЕС |
В | DAG01V |
С | DAG01A |
DAG01B | |
DAG02 | |
DAG03 | |
DAG04 | |
DAG01C | |
DAG05 | |
DAG06 | |
DAG07 | |
D | DAG08 |
E | Рабочая область |
F | Рабочая область |
G | Рабочая область |
H | Рабочая область |
I | Рабочая область |
J | Область связи |
K | Буферы ввода-вывода |
Область А занята супервизором ОС. Ее объем зависит от конфигурации ЭВМ и обычно составляет 18К.
Область В, размером 32К занимается модулем DAG01V, который постоянно находится в памяти. Он является управляющей фазой пакета.
Область С используется для размещения других модулей пакета ПМДС, которые вызываются в оперативную память по мере надобности. Занимает 32К. Отводит требуемую память DAG01А.
DAG02 – первая фаза транслятора пакета, выполняет первый просмотр программы.
DAG03 – вторая фаза транслятора DAG04, DAG01С, которые подготавливают просмотренную модель для симулятора и выполняют некоторый контроль правильности модели.
DAG05 – выполняет функции симулятора пакета. В нем имеются программы планирования, затем передается управление DAG06 или DAG07 в зависимости от того, какой вид печати результатов требуется для данной модели.
DAG06 – редактор вывода.
DAG07 – программы графического вывода.
DAG08 – содержит диагностические сообщения с описаниями ошибок.
Наборы данных, используемые в пакете ПМДС
Для работы пакета ПМДС требуются наборы данных, описываемых операторами языка управления заданиями.
DD-имена | Назначение |
DOUTPUT | Выходной набор данных, использованный транслятором и программами вывода пакета ПМДС |
DINTERO | Рабочий набор данных, используемый транслятором пакета |
DSYMTAB | Набор данных, содержащий символические обозначения, использованные в модели на языке GPSS; используется транслятором и программами вывода результатов пакета ПМДС |
DINTWORK | Рабочий набор данных, используемый на этапе ввода. Этот набор данных создается транслятором пакета |
DREPTGEN | Входной набор данных для редактора вывода; создается транслятором |
DINPUTI | Входной поток для транслятора пакета. ПК с текстом модели должны следовать за оператором DD, описывающим этот набор данных |
Заказ на выполнение программы, подготовленной на ПК
Диск №48, имя тома PMD122, библиотека PMDS2. Оператор DD с именем JOBLIB указывает имя библиотеки, в которую включен пакет ПМДС и имя тома. Оператор EXEC – стандартный управляющий оператор ОС ЕС.
Операнд PGM=DAG01V указывает на то, что должна быть выполнена программа DAG01V, хранящаяся в библиотеке, имя которой задано в предыдущем операторе DD. Операнд PARM=C определяет объем памяти, отведенный под объекты пакета.
//MODEL1 JOB шифр,«имя пользователя»,
// REGION=200K
//JOBLIB DD DSN=PMDS2,UNIT=SYSDA,
// VOL=SER=PMD122,DISP=SHR
// EXEC PGM=DAG01V,PARM=C
//DOUTPUT DD SYSOUT=A
//DINTERO DD UNIT=SYSDA,SPACE=(TRK,(10,10))
//DSYMTAB DD UNIT=SYSDA,SPACE=(TRK,(10,10))
//DINTWORK DD UNIT=(SYSDA,SER=(DINTERO)),
// SPACE=(TRK,(10,10))
//DREPTGEN DD UNIT=SYSDA,SPACE=(TRK,(10,10))
//DXREFDS DD UNIT=SYSDA,SPACE=(TRK,(1,1))
//DINPUT1 DD *
колода ПК
//
Выходная информация
Программа производит вывод информации в трех случаях:
1. После нормального завершения счета, когда значение счетчика завершения стало равным 0,
2. После обнаружения ошибок,
3. Когда вывод задан в самой модели с помощью специальных операторов печати.
Протокол работы
Протокол работы представляет собой распечатку 72 позиций. За распечаткой текста модели следует словарь, содержащий все используемые в программе идентификаторы объектов в алфавитном порядке, соответствующим номерам блоков и номерам операторов, в которых содержится данный символ. Если в программе содержатся ошибки, то сообщение о них выдается непосредственно за распечаткой этого оператора. При обнаружении ошибки (за исключением многократного использования идентификатора) моделирование выполняться не будет. Соответствующие сообщения выдаются в конце распечатки. Наконец, распечатка содержит последовательные номера всех выходных операторов.
Тип ошибки и аргументы
Печать информации об ошибке производится при обнаружении ошибки в процессе счета. Выдаваемая информация имеет вид:
WARNING – EXECUTION ERROR NUMBER XXX
BLOCK NUMBER YYYY
CLOCK ZZZZZZ
SIMULATION CONTINUES,
где ХХХ – номер, указывающий на источник ошибки,
YYYY – номер блока, в котором обнаружена ошибка,
ZZZZZZ – значение абсолютного условного времени, при котором возможная ошибка была обнаружена в данном блоке.
Сообщение об ошибке печатается при первом ее обнаружении в данном блоке. Счет продолжается, поскольку ошибка может оказаться несущественной или не влияющей на сбор статистики.
Симулятор
Симулятор – комплекс программ, непосредственно осуществляющих процесс моделирования. В задачи симулятора входит: определение ближайшего события, которое должно произойти, генерация соответствующих данных, сбор статистической информации. По окончанию моделирования симулятор выполняет дополнительную обработку информации, накопленной в процессе моделирования.
Многоканальные устройства (приборы)
Если имеется группа параллельно работающих устройств, то ее можно рассматривать как многоканальное устройство. Обращение к ней производится следующим образом:
ENTER А,В
где А – имя (символическое или числовое) многоканального устройства,
В – число каналов, которые занимает транзакт. По умолчанию В=1.
Вход в блок осуществляется по правилу «все или ничего», т.е. если свободны 2 канала, а нужны 3, то транзакт ждет.
Определение емкости многоканального устройства
Для этой цели используется блок STORAGE. Имеются 2 способа задания емкости.
1 способ. Задается в поле имени – имя многоканального устройства (символическое или числовое). В поле операции – слово STORAGE. В поле операнда А – емкость многоканального устройства.
Пример. 7 STORAGE 5
MAPY STORAGE 2
Многоканальные устройства 7 и MARY определены с емкостью 5 и 2 соответственно.
2 способ. Поле имени не используется (остается пустым), в поле операции – слово STORAGE. В поле операндов последовательность символов S¤имя1, С1 (S¤имя2, С2), S¤имяi, Сi. Основной единицей информации является запись S¤имяi, Сi, где «имя» является числовым или символьным именем многоканального устройства, Сi – его емкость. При записи символического имени перед ним ставится знак S¤.
Такой способ в одном операторе STORAGE позволяет описывать несколько многоканальных устройств.
Пример. STORAGE S¤PARK,10/S¤ CHECK,25
Различие между прибором и многоканальным устройством емкости 1 состоит в том, что прибор может не только заниматься, но и захватываться (PREEPT А).
При работе с многоканальными устройствами возможно переопределение их емкости. Освобождение многоканального устройства выполняется с помощью блока LEAVE, операнды определяются аналогично блоку ENTER.
Задача №6. Задача об управлении производством.
На трикотажной фабрике 50 швейных машин работают по 8 часов в день и по 5 дней в неделю. Любая из этих машин может в любой момент времени выйти из строя. В этом случае ее заменяют резервной машиной, причем либо сразу (если имеется резервная), либо по мере ее появления. Сломанную машину отправляют в ремонтную мастерскую, где ее чинят и возвращают в цех, но уже в качестве резервной.
Необходимо определить, сколько следует нанять рабочих для работы в мастерской, сколько машин следует иметь в резерве.
Цель – минимизация стоимости производства.
Оплата рабочих в мастерской – 3,75 рублей в час, за машины, находящиеся в резерве платят по 30 рублей в час. Почасовой убыток при использовании менее 50 машин оценивается в 20 рублей на машину (из-за снижения производства). На ремонт сломанной машины уходит 7±3 часа. Время наработки на отказ составляет 157±25 часов. Время для перевозки в мастерскую и обратно не учитывается. Собственные и арендуемые машины не различаются. Моделирование ведется в часах в течение 4 лет (в году 39 рабочих недель) по 40 часов в неделю.
Условные обозначения.
1 сегмент – швейные машины.
2 сегмент – таймер.
Многоканальные устройства:
MEN – рабочие мастерской,
NOLOW – максимальное число швейных машин, находящихся в работе одновременно.
Примечание | |||
SIMULATE | |||
STORAGE | S¤MEN,3/S¤NOWON,50 | Три рабочих, в мастерской работают 50 машин | |
X | MODEL SEGMENT 1 | ||
CNTRL | GENERATE | ,,,53 | 53 машины, 50 своих и 3 арендованных |
BACK | ENTER | NOWON | Машины начинают работать |
ADVANCE | 157,25 | Машина работает | |
LEAVE | NOWON | Машина сломалась | |
ENTER | MEN | Начинается ремонт | |
ADVANCE | 7,3 | Ремонт | |
LEAVE | MEN | Ремонт окончен | |
TRANSFER | ,BACK | Возвращение для работы | |
X | MODEL SEGMENT 2 | ||
GENERATE | 4 года по 40 часов в неделю | ||
TERMINATE | |||
START | |||
CNTRL | GENERATE | ,,,54 | Арендуются 4 машины |
CLEAR | |||
START | |||
CNTRL | GENERATE | ,,,55 | |
CLEAR | |||
START | |||
STORAGE | S¤MEN,4 | Переопределяется количество рабочих – 4 ремонтных рабочих | |
CNTRL | GENERATE | ,,,53 | |
CLEAR | |||
START | |||
CNTRL | GENERATE | ,,,54 | |
CLEAR | |||
START | |||
CNTRL | GENERATE | ,,,55 | |
CLEAR | |||
START | |||
STORAGE | S¤MEN,5 | ||
CNTRL | GENERATE | ,,,53 | |
CLEAR | |||
START | |||
CNTRL | GENERATE | ,,,54 | |
CLEAR | |||
START | |||
CNTRL | GENERATE | ,,,55 | |
CLEAR | |||
START | |||
END |
Выходные данные имеют вид (по многоканальным устройствам):
1. STORAGE - номер (имя) многоканального устройства
MEN
NOWON
2. CAPACITY - объем многоканального устройства
3. AVERAGE CONTENTS - среднее содержимое
2.185
49.182
4. AVERAGE UTILIZATION - коэффициент использования (нагрузка)
0.728
0.983
5. ENTRIES - число входов
6. AVERAGE TIME/TRANS - среднее время пребывания транзакта в канале
7.087
155.471
7. CURRENT - текущее содержимое
CONTENTS
8. MAXIMUM - максимум содержимого
CONTENTS
Интерпретация для нашей задачи:
1. Моделировались три параллельно работающих прибора CAPACITY (емкость) =3,
2. В среднем 2.185 из этих устройств были в состоянии занятости AVERAGE CONTENTS 2.185,
3. В среднем эти три прибора были загружены на 72.8 % AVERAGE UTILIZATION 0.728,
4. Общее число занятий приборов было 1924 ENTRIES 1924,
5. Среднее время на одно занятие было 7.087 единиц AVEAGE TIME/TRANS,
6. Ни один из приборов не находился в занятом состоянии в момент остановки моделирования CURRENT CONTENTS «пусто»,
7. В процессе моделирования были моменты, когда все три канала были в состоянии занятости одновременно MAXIMUM CONTENTS 3.
В момент выдачи результатов фабрика максимальной нагрузкой для NOWON.
Анализ результатов расчетов. Дневные расходы на оплату одного рабочего, аренду одной машины и убытки из-за простоя составят соответственно за 8 часов 30 рублей – оплата одного рабочего, 30 рублей – аренда одной машины, 60 рублей – простой одной машины.
Это означает, что оптимальные соотношения следует искать среди таких значений, которые вызывают минимальные потери из-за простоев машин.
Из исходных данных следует, что среднее время машины 157 часов, среднее время восстановления – 7 часов. Значит идеальный цикл работы машины (без простоев в ожидании ремонта) составляет 157+7=164 часа.
Значит коэффициент использования в такой системе должен составлять 157/164=0.95.
Если в работе все время должно быть 50 машин, чтобы исключить простои, то 0.95*Х!50, то общее число машин должно быть равно 52,6. Т.е. 2,6 машины при 50 работающих должны быть в резерве. Из-за различных случайностей возможны простои. Поэтому следует арендовать 3-5 машин и нанять 3-5 рабочих. После проведения моделирования оказывается, что нужны 4 машины и 4 рабочих.
Блок-диаграммы. Блок-диаграмма – графическое представление операций, происходящих внутри системы. Блок-диаграмма состоит из последовательных блоков, каждый из которых описывает выполняемые операции. Линии, соединяющие блоки, описывают последовательность выполняемых событий. В случае нескольких вариантов действий от блока отходят несколько линий. Если же к блоку подходят несколько линий, то это означает, что выполняемая операция является общей для двух или более блоков.
При этом используются следующие обозначения:
Обозначение блока | Операция | Операнды | |||
A | B | C | D | ||
A,B | ADVANCE | Среднее время | Модифика-тор интервала | ||
B A | DEPAT Покинуть | Символичес-кое имя очереди | Число элементов, на которое изменяется очередь | ||
B A | ENTER | Символичес-кое имя | Число занимаемых каналов | ||
A,B C,D,E | GENERATE | Средний интервал времени прибытия транзактов | Половина поля допуска | Смещение интервала | Ограничи-тель |
B A | LEAVE | Символичес-кое имя | Число освобождае-мых каналов | ||
B A | QUEVE | Символичес-кое имя | Число элементов на которое изменяется очередь | ||
A | RELEASE | Символичес-кое имя | |||
A | SEIZE | Символичес-кое имя | |||
A | TERMINATE | Указатель уменьшения счетчика завершений | |||
A B C | TRANSFER | Режим Выбора | Имя первого блока | Имя второго блока |
Редактор вывода. Редактор вывода позволяет выполнять следующие операции:
1. Выбирать для вывода виды статистики,
2. Помещать заголовки перед различными разделами вывода,
3. Управлять размещением выводимой информации, пропуском страниц и порядком вывода разделов,
4. Представлять значения стандартных числовых атрибутов в виде графиков, т.е. управляющие операторы редактора вывода можно разделить на два класса,
5. Операторы для выбора видов статистики, вставки заголовков, указаний с размещением информации,
6. Операторы для задания графического вывода.
Для обращения к редактору вывода, соответствующие управляющие карты необходимо поместить сразу же за последним оператором START, перед оператором END. Первым оператором должен быть помещен REPORT, после метки и поле операндов – пустое. Структура входной колоды при использовании операторов редактора вывода имеет следующий вид.
Модель на языке GPSS:
START 1000
REPORT
Управляющие операторы редактора вывода
END
Формат вывода будет выдержан для всех операторов START данной модели.
Тема 8: Сложные системы: экспертные методы сравнения
Предварительное замечание
Постановка задачи