Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИМ_с_помощью_GPSS.doc
Скачиваний:
7
Добавлен:
03.05.2019
Размер:
1.36 Mб
Скачать

Моделирование одноканальной разомкнутой системы массового обслуживания

Постановка задачи

Необходимо смоделировать процесс обслуживания покупателей на кассе в магазине. Известно, что клиент подходит на кассу в промежуток времени от 4 до 6 минут (51). Кассир в среднем обслуживает каждого клиента в течение 5 минут.

Требуется смоделировать процесс функционирования системы и определить основные показатели при обслуживании 100 человек:

  1. Коэффициент использования кассы.

  2. Среднее время использования кассы.

  3. Количество обслуженных людей в кассе.

  4. Среднюю длину очереди перед кассой.

  5. Среднее время пребывания клиента в очереди.

  6. Максимальную длину очереди.

  7. Коэффициент использования очереди.

Рис. 6. Графическое изображение функционирования системы [4],

где 1 – покупатель подходит к кассе; 2 – покупатель встает в очередь; 3 – кассир обслуживает покупателя; 4 – покупатель уходит из кассы; 5 – покупатель уходит из магазина

Построение имитационной модели процесса

GENERATE 5,1 ; покупатель подходит к кассе

QUEUE Ochered ; покупатель встает в очередь

SEIZE Kassir ; проверка занятости кассира

DEPART Ochered ; выход покупателя из очереди

ADVANCE 5 ; кассир обслуживает покупателя

RELEASE Kassir ; покупатель уходит из кассы

TERMINATE 1 ; покупатель уходит из магазина.

START 100 ; количество обслуженных клиентов.

Описание операторов имитационной модели процесса

  1. Блок GENERATE создает транзакты для последующего ввода в процесс моделирования.

Generate а, в, с, d, е

Операнды:

  • А – среднее время создания. Необязательный. Допустимые значения: Null, Name, Number, String, ParenthesizedExpression или DirectSNA. He допускается использование параметров транзактов.

  • В – отклонение времени от среднего. Необязательный. Допустимые значения: Null, Name, Number, String, ParenthesizedExpression или DirectSNA. He допускается использование параметров транзактов.

  • С – время начальной задержки, момент времени поступления первого транзакта. Необязательный операнд. Допустимые значения: Null, Name, Number, String, ParenthesizedExpression или DirectSNA. He допускается использование параметров транзактов.

  • D – ограничение на количество. По умолчанию ограничения на количество создаваемых транзактов нет. Необязательный операнд. Допустимые значения: Null, Name, PosInteger, String, ParenlhesizedExpression или DirectSNA. He допускается использование параметров транзактов.

  • Е – уровень приоритета. По умолчанию равен нулю. Необязательный операнд. Допустимые значения: Null, Name, Integer, String, ParenthesizedExpression или DirectSNA. He допускается использование параметров транзактов.

Действие

Когда начат процесс моделирования или выполнена интерактивная команда, все блоки GENERATE, которые не были использованы, вызываются для создания их первых транзактов. Операнд С может быть использован для задания приращения времени для первого транзакта. В противном случае первое прира­щение времени вычисляется из операндов А и В.

Перед созданием нового транзакта операнд D численно вычисляется для того, чтобы определить, все ли необходимые транзакты были созданы. Если предел не был превышен, генерация транзактов продолжается. Затем блок GENERATE создает новый транзакт, присваивая ему следующий порядковый номер и приоритет из операнда Е. Времени входа транзакта в систему присваивается значение абсолютного модельного времени. Новый транзакт представляет собой семейство с одним членом.

Промежуточное время между прибытиями новых транзактов вычисляется из операндов А, В и С. Если задан только операнд А, он численно вычисляется и используется в качестве приращения времени. Если присутствуют операнды А и В, и В не задает функцию, оба операнда численно вычисляются, и в качестве приращения времени используется случайное число, лежащее в интервале от А – В до А + В включительно. Можно выбрать генератор случайных чисел, который будет использоваться в качестве источника случайного числа. Это устанавливается на странице «Random Numbers» («Случайные числа») в журнале настроек модели.

  1. Блок QUEUE регистрирует статистику очереди, отражающую увеличение её длины: