Смекни!
smekni.com

Моделирование работы двух кассиров в банке (стр. 2 из 3)

Состояние СМО характеризуется состояниями ОА, транзактов и очередей к ОА. Состояние ОА описывается двоичной переменной, которая может принимать значения «занят» или «свободен». Переменная, характеризующая состояние транзакта, может иметь значения «обслуживания» или «ожидания». Состояние очереди характеризуется количеством находящихся в ней транзактов.

Потоком событий называется последовательность однородных событий, следующих одно за другим в случайные моменты времени. Важной характеристикой потока событий является его интенсивность Я— среднее число событий, приходящееся на единицу времени. Интенсивность потока может быть как постоянной {Л = const), так и переменной, зависящей от времени t. Поток событий называется регулярным, если события следуют одно за другим через определенные, равные промежутки времени. На практике чаще встречаются потоки нерегулярные, со случайными интервалами.

Поток событий называется стационарным, если его вероятностные характеристики не зависят от времени. Поток событий называется потоком без последействия, если для любых двух непересекающихся интервалов времени txи t2 число событий, попадающих на один из них, не зависит от того, сколько событий попало на другой. Это означает, что заявки попадают в систему независимо друг от друга.

Поток событий называется ординарным, если события в нем появляются поодиночке, а не группами по нескольку сразу. Если поток событий ординарен, то вероятностью попадания на малый интервал времени tдвух или более событий можно пренебречь.

Поток событий называется простейшим (или стационарным пуассоновским), если он обладает сразу тремя свойствами: стационарен, ординарен и не имеет последействия. Название «простейший» связано с тем, что процессы, связанные с простейшими потоками, имеют наиболее простое математическое описание. Самый простой, на первый взгляд, регулярный поток не является «простейшим», так как обладает последействием: моменты появления событий в таком потоке связаны жесткой функциональной зависимостью.

СМО могут быть одноканальными и многоканальными.

Процесс работы СМО представляет собой случайный процесс с дискретными состояниями и непрерывным временем; состояние СМО меняется скачком в моменты появления каких-то событий (прихода новой заявки, окончания обслуживания, момента, когда заявка, которой «надоело ждать», покидает очередь).

Предмет теории массового обслуживания - построение математических моделей, связывающих заданные условия работы СМО (число каналов, их производительность, правила работы, характер потока заявок) с интересующими нас характеристиками - показателями эффективности СМО, описывающими, с той или другой точки зрения, ее способность справляться с потоком заявок. В качестве таких показателей (в зависимости от обстановки и целей исследования) могут применяться разные величины, например: среднее число заявок, обслуживаемых СМО в единицу времени; среднее число занятых каналов; среднее число заявок в очереди и среднее время ожидания обслуживания; вероятность того, что число заявок в очереди превысит какое-то значение, простои, и т. д.

Системы массового обслуживания делятся на типы (или классы) по ряду признаков. Первое деление: СМО с отказами и СМО с очередью. В СМО с отказами заявка, поступившая в момент, когда все каналы заняты, получает отказ, покидает СМО и в дальнейшем процессе обслуживания не участвует. В СМО с очередью заявка, пришедшая в момент, когда все каналы заняты, не уходит, а становится в очередь и ожидает возможности быть обслуженной. На практике чаще встречаются (и имеют большее значение) СМО с очередью. СМО с очередью подразделяются на разные виды, в зависимости от того, как организована очередь - ограничена она или не ограничена. Ограничения могут касаться как длины очереди, так и времени ожидания (так называемые «СМО с нетерпеливыми заявками»). При анализе СМО должна учитываться также и «дисциплина обслуживания» - заявки могут обслуживаться либо в порядке поступления (раньше пришла, раньше обслуживается), либо в случайном порядке. Величина, характеризующее право на первоочередное обслуживание, называется приоритетом. При освобождении канала на обслуживание принимается заявка из непустой очереди с наиболее высоким приоритетом. Существуют СМО с так называемым многофазовым обслуживанием, состоящим из нескольких последовательных этапов или «фаз».

Кроме этих признаков, СМО делятся на два класса: «открытые» и «замкнутые». В открытой СМО характеристики потока заявок не зависят от того, в каком состоянии находится сама СМО (сколько каналов занято). В замкнутой СМО - зависят.


Логико-математическое описание модели

Модель работает по следующим правилам.

Все величины могут быть только целыми неотрицательными числами. Время обслуживания каждым кассиром одного клиента должно быть > 0. Кассир может принимать состояние «свободен» («0») или «занят» («1»). Состояние очереди, длина рабочего дня, максимальный поток людей в единицу времени {maxenter) и количество обслуженных клиентов может быть > 0.

Значения входных параметров задаются перед началом работы модели.

В начальный момент времени кассиры свободны, очереди и количество обслуженных клиентов = 0.

Распределение потока людей происходит по правилу выравнивания очереди, т.е. каждый из вошедших оценивает длину обеих очередей и встает в ту, которая короче. В случае равных очередей предпочтение отдается первому кассиру.

Далее во время каждого такта (от единицы до длины рабочего дня) с помощью функции random, имеющей равномерное распределение, получаем случайное число вошедших людей от 0 до maxenterи происходит распределение их в очереди по правилу, указанному вьппе. Далее для каждого кассира проверяются условия, если он свободен, есть очередь и кассир успевает обслужить еще хотя бы одного клиента, то очередь становится на единицу меньше, кассир принимает состояние «занят» на время, которое необходимо ему, чтобы обслужить клиента, а количество обслуженных им людей становится больше на единицу. Если хотя бы одно из условий не выполняется, состояние модели на этом такте остается неизменным.

Выбор средств моделирования

Существуют специальные языки и системы моделирования, например GPSSи Arena. Но на изучение хотя бы одного из этих средств ушло бы слишком много времени. Из известных мне средств выбор стоял между электронными таблицами Excelи средой программирования Delphi6. Но реализация моего алгоритма в Excelсостояла бы из очень громоздких и сложных логических выражений, тогда как в Delphi6 тот же самый алгоритм выглядит достаточно просто. А также среда Delphi6 очень удобна в плане отладки алгоритма и визуализации результатов. Следовательно, оптимальным выбором является Delphi6.

Анализ работы модели

Проанализируем работу модели, задавая разные входные параметры.

Для начала посмотрим ситуацию, когда длина рабочего дня равна нулю (рис. 1). Этот рисунок отражает состояние модели в начальный момент времени.

Далее (рис. 2) показана ситуация, когда в банк никто не приходил за все время его работы. Поэтому состояние кассиров всегда «свободен», длины очередей весь день = 0, а, следовательно, и количество обслуженных клиентов = 0. В этом случае стоит проверить, не заперты ли двери. Или лучше разрекламировать этот банк, а то так недолго и разориться.

В следующих случаях в качестве длины рабочего дня были выбраны числа 10 и 12, т.к. при таких параметрах на графике хорошо виден результат - точки не сливаются, и т.к. 12 кратно 2*3 = 6 (2 иЗ- время работы кассиров с одним клиентом), а 10 кратно 1*1 = 1 (аналогично).

На рис. 3 заметен приоритет распределения очереди. Поток людей небольшой, поэтому очереди к обоим кассирам часто = 0, а по приоритету вошедшие идут к первому кассиру, поэтому второй весь день отдыхает. Здесь же видна ситуация с отказом. В конце дня ко второму кассиру все-таки пришел один человек, но он отказался его обслужить, т.к. на это ему нужно 3 единицы времени, а осталось всего 2. В этой ситуации руководителю банка стоит задуматься о сокращении штата кассиров. И сократить следует второго, т.к. он работает медленнее. Рассчитаем количество людей, обслуженных первым кассиром: длина рабочего дня = 12 единицам, из них 2 первый кассир отдыхал, а т.к. на обслуживание одного клиента он тратит две единицы времени, то за день он обслужил (12-2)/2 = 5 клиентов.

На рис. 4 кассиры отлично справляются со своими обязанностями, несмотря на то, что максимальное количество заявок равно четырем, потому что скорость обслуживания довольно высокая - на одного клиента каждый кассир тратит всего по одной единице времени. Следовательно, т.к. они не отдыхали, то каждый из них обслужил по 10 человек, потому что 10 - это длина рабочего дня. В этой ситуации кассиры в состоянии обслужить всех клиентов без отказов.

На рис. 5 показан очень напряженный рабочий день. Интенсивность потока людей увеличилась всего на одну единицу по сравнению с предыдущей ситуацией, и рабочий день увеличился на 2 единицы, но очереди при этом достигают длины 10 человек, несмотря на то, что кассиры добросовестно трудятся весь день. В этом случае руководству банка рекомендуется нанять на работу еще хотя бы одного кассира, т.к. двое не справляются с таким объемом заявок. Рассчитаем количество обслуженных людей: оба кассира трудились не покладая рук, поэтому первый обслужил 12 / 2 = 6 клиентов, а второй 12/3 = 4 клиентов (2 и 3 - время на обслуживание одного клиента соответственно первым и вторым кассирами, 12 - длина рабочего дня).

Из рассмотренных ситуаций, можно сделать вывод, что модель работает правильно. При этом кассиры во время работы не отвлекаются на посторонние дела и добросовестно относятся к своим обязанностям.