1.2. Имитация банковской системыВ качестве примера имитационного моделирования рассмотрим обслуживание кассиром клиентов в банке. Клиенты прибывают в банк, ожидают обслуживания, если кассир занят, обслуживаются и затем покидают банк. Клиенты, прибывающие в банк в тот момент, когда кассир занят, ожидают в единственной к нему очереди. Для простоты мы предполагаем, что момент прибытия клиента и время обслуживания его кассиром известны для каждого клиента (табл. 1.1). Наша цель состоит в ручной имитации функционирования описанной выше системы для того, чтобы определить, какой процент времени кассир свободен и каково среднее время пребывания клиента в банке.
Таблица 1.1 Моменты прибытия и время обслуживания клиентов
Итоги ручной имитации в соответствии с исходными данными, представленными в табл. 1.1, приводятся в табл. 1.2. При этом предполагалось, что в начальный момент времени в системе нет клиентов, кассир свободен и первый клиент прибывает в момент времени, равный 3,2 мин. В табл. 1.2 первый и второй столбцы взяты из табл. 1.1. Время начала обслуживания, приведенное в третьем столбце, зависит от того, покинул ли предыдущий клиент банк. Оно принимается равным наибольшему значению из времен прибытия данного клиента и ухода предыдущего. Время ухода, приведенное в четвертом столбце, вычисляется как сумма соответствующего элемента третьего столбца и времени обслуживания данного клиента, которое определяется по табл. 1.1. Значение времени нахождения каждого клиента в очереди и в банке вычисляется, как показано в табл. 1.2. Средние значения этих переменных соответственно равны 2,61 и 5,81 мин.
Таблица 1.2 Ручное моделирование работы банка
Таблица 1.2 содержит итоговую информацию, относящуюся к клиенту, но не содержит сведений о кассире и размере очереди к нему. Для получения такой информации необходимо исследовать события, связанные с этой ситуацией. Логика обработки событий прибытия и ухода зависит от состояния системы в момент наступления этих событий. При наступлении события «прибытие клиента» в банк дальнейшая ситуация определяется состоянием кассира. Если кассир свободен, он переходит в состояние «занят» и приступает к обслуживанию клиента. При этом планируется событие «уход данного клиента» в момент времени, равный текущему времени плюс продолжительность его обслуживания. Если же кассир занят, обслуживание клиента не может начаться, и, следовательно, он встает в очередь (длина очереди увеличивается на 1). Логика обработки события «уход клиента из банка» зависит от длины очереди. Если в очереди есть хотя бы один клиент, кассир остается в состоянии «занят», длина очереди уменьшается на 1 и для первого клиента из очереди планируется событие ухода. Если же очередь пуста, кассир переводится в состояние «свободен».
Таблица 1.3 Событийно-ориентированное описание имитации работы банковского кассира
В табл. 1.3 приводится событийно-ориентированное описание состояния кассира и числа клиентов в банке (события расположены в хронологическом порядке). На рис. 1.1 приведены графики изменения значений этих переменных состояний во времени. Результаты имитации показывают, что в течение первых 40 мин работы в банке в среднем одновременно находилось 1,4525 клиента, а кассир был свободен 20% времени.
Для расположения событий прихода и ухода в хронологическом порядке необходимо вести запись (календарь) событий, подлежащих последующей обработке (будущих событий). Это осуществляется путем фиксирования моментов наступления следующего события прихода и следующего события ухода. Сравнение этих моментов определяет затем выбор одного из событий для обработки. Такой упорядоченный список событий обычно называется файлом, или календарем событий.
|