Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Черемных_учебник_1.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

5.2.2 Очереди

Понятие очереди аналогично другому понятию, используемому при построении диаграмм потоков данных, — хранилищу данных. Очереди — это способ моделирования объектов, которые находятся внутри системы и пребывают в состоянии ожидания обработки одной из ее частей. Временной цикл или продолжительность (duration) вы­полнения того или иного действия (здесь и далее слово действие по­нимается в терминах IDEF3) — это время, которое необходимо тому или иному действию для выполнения. Продолжительность выполне­ния действия может изменяться с течением времени, вызывая тем са­мым случайные возмущения, отражающиеся на выходе всей системы. Рассмотрим, например, два последовательно выполняющихся дейст­вия, занимающих в нормальных условиях одинаковое время. Выпол­нение первого из них за время, меньшее обычного, приведет к накоп­лению в очереди незавершенных изделий.

Поведение очередей должно быть описано в имитационной мо­дели. Например, очередь может функционировать как стек — послед­нее изделие, помещенное в очередь, извлекается из нее первым. Этот принцип широко известен под аббревиатурой LIFO (Last In — First

Out). Очередь может функционировать и наоборот — по принципу FIFO (First In — First Out). Кроме того, объекты могут извлекаться из очередей случайным образом или по какому-либо специально задан­ному признаку.

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

5.2.3 Оборудование

Оборудование (Facilities) представляет в имитационных моделях отдельные действия системы. Термин оборудование отражает произ­водственные корни имитационного моделирования, когда предпола­гается, что каждое действие выполняется на некотором (возможно, су­ществующем только в абстракции) рабочем месте и собираемые изделия передаются с одного рабочего места на другое, как на сбороч­ном конвейере. Время обработки записывается как математическое выражение (обычно статистическое), кроме того, специфицируются правила использования механизмов рабочего места и исходного сырья.

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

В этом примере мы будем моделировать работу банковского опе­рационного зала с целью выяснения, как наилучшим образом органи­зовать работу операционистов для оптимального выполнения набора типовых банковских операций или транзакций (каждая из которых требует от операциониста выполнения своего набора действий). Предположим, что в нашем операционном зале возможно выполнение таких транзакций, как:

  • пополнение счета клиента наличными или с использованием чека;

  • снятие денег со счета;

  • перевод средств по счетам клиента;

  • выписка дорожного чека;

  • открытие нового счета.

При пополнении счета клиента (рис. 5.1) производятся следующие действия:

• если пополнение счета осуществляется с помощью чека — прове­ рить чек, затем записать депонируемую сумму;

  • если счет пополняется наличными — подсчитать сумму налич­ ных, записать депонируемую сумму, поместить деньги в кассу;

  • если клиенту что-либо возвращается наличными — извлечь необ­ ходимую сумму из кассы, подсчитать ее и отдать клиенту;

  • записать общую сумму возвращенных денег;

  • возвратить клиенту документы по счету.

При снятии средств со счета (рис. 5.2) выполняются следующие действия:

  • проверка состояния счета;

  • извлечение наличных из кассы, подсчет и передача клиенту;

  • запись общей суммы, переданной клиенту.

Рис. 5.2. Снятие средств со счета

При переводе средств с одного счета на другой (рис. 5.3) произво­дится такая последовательность действий:

  • проверка состояния счета, с которого осуществляется снятие средств;

  • запись снимаемой суммы;

  • запись депонируемой суммы;

  • возврат документов, касающихся произведенной операции, кли­ енту.

При выписке дорожного чека (рис. 5.4) выполняются следующие действия:

Рис. 5.3. Перевод средств с одного счета на другой


  • если производится снятие средств — проверка состояния счета и запись снимаемой суммы;

  • если транзакция проводилась с использованием наличных — про­ верка состояния счета клиента и документов по счету, подсчет суммы наличных;

  • распечатка и передача чека клиенту.

Как видно из рис. 5.4, имеется два основных типа транзакций, раз­личающихся по способу оплаты клиентом выписанного дорожного чека: он может снимать деньги со своего счета или платить наличны­ми. Это видно из OR-соединений на диаграмме: клиент может платить наличными, снимать деньги со счета или даже одновременно исполь­зовать оба способа. В случае если для банка существуют значитель­ные различия во времени (и, возможно, стоимости) проведения этих типов транзакций, важно отразить в имитационной модели все три упомянутых случая. Аналогично, если разница во времени проведе­ния транзакции для разных типов счетов существенна, это также должно найти отражение в модели.

Заметим, что в нашем примере не моделируется открытие новых банковских счетов. Вместо этого при необходимости мы будем ис­пользовать некоторое математическое выражение. Важно помнить, что не всегда необходимо моделировать все действия (напомним, что слово "действие" здесь понимается в терминологии IDEF3) одного уровня детализации — мы создаем модели только лишь для сущест­венных с выбранной точки зрения частей бизнес-процесса.

Важные для нас имитационные переменные представлены в табл. 5.2. Фактически в этой таблице перечислены механизмы испол­нения, необходимые для выполнения описываемых нами действий.

Таблица 5.2

Наименование ресурса

Всего в наличии

Стоимость, $/мин

свмп*

Среднее время поломки

Операционист

3

0,20

0

0

Счетчик банкнот

1

0,05

Норм(6000,25)

Норм(16,3)

*СВМП - среднее время работы между поломками.

Функция Норм(мат. ожидание, дисперсия) — функция распреде­ления нормального закона, известная из математической статистики.

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

В статистике существуют специальные формулы, описывающие вероятность наступления того или иного события. Например, сколько в среднем клиентов придет в операционный зал банка между 10-00 и 10-30 в пятницу? Среднее значение, называемое в статистике матема­тическим ожиданием, изображено пиком каждой из трех кривых на рис. 5.5. Разброс получившейся при реальном наблюдении ошибки, показывающий, насколько близки друг к другу были реально наблю­давшиеся значения, называется дисперсией и выглядит на графике, как "ширина" каждой из трех кривых. Существует множество других функций распределения вероятностей, отличных от показанного на рис. 5.5 нормального распределения, которые могут быть применены для описания огромного набора реально возникающих ситуаций. Ес­тественно, что графики этих функций могут существенно отличаться от приведенных на рисунке.

Рис. 5.5. Нормальная функция распределения

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

В табл. 5.3 время выполнения каждого действия представлено в виде статистической формулы. Например, время выполнения провер­ки документов и записи суммы депозита имеет нормальное распреде­ление и занимает в среднем 0,5 мин. Это первый параметр функции. Естественно, что выполнение этих действий не всегда занимает ровно 0,5 мин, это всего лишь среднее время. Вполне можно также наблю­дать, что в редких случаях эти действия могут быть завершены, ска­жем, за 0,4 или 0,6 мин. Мы подсчитали это с использованием второго параметра функции — дисперсии.

Таблица 5.3

Действие

Механизм исполнения

Количество

Время

Пополнение счета:

Проверить документы и записать депонируе­мую сумму

Операционист

1

Норм(0,5;0.1)

Подсчитать неболь­шую сумму наличных

Тоже

1

Норм(0,5;0.5)

Подсчитать большую сумму наличных

Операционист Счетчик банкнот

1

1

Норм(0,1;0.5)

Поместить сумму в кассу и сделать за­пись в кассовой книге

Операционист

1

Норм(0,1;0.5)

Извлечь наличные из кассы

Тоже

1

Норм(0,3;0.1)

Подсчитать неболь­шую сумму воз­вращаемых наличных

1

Норм(0,5;0.5)

Подсчитать большую сумму возвращаемых наличных

Операционист Счетчик банкнот

1

1

Норм(0,1;0.5)

Передать сумму клиенту

Операционист

1

Норм(0,3;0.1)

Записать общую сумму, переданную клиенту

Тоже

1

Норм(0,3;0.1)

Вернуть клиенту до­кументы по счету

1

Норм(0,3;0.1)

Продолжение

Действие

Механизм исполнения

Количество

Время

Снятие средств со счета:

Проверить состояние счета

Операционист

1

Норм(0,5;0.3)

Извлечь наличные из кассы

Тоже

1

Норм(0,3;0.1)

Подсчитать неболь­шую сумму возвращаемых наличных

1

Норм(0,5;0.5)

Подсчитать большую сумму возвращаемых наличных

Операционист Счетчик банкнот

1 1

Норм(0,1;0.5)

Передать сумму клиенту

Операционист

1

Норм(0,3;0.1)

Записать общую сумму, переданную клиенту

Тоже

1

Норм(0,3;0.1)

Перевод средств по счетам:

Проверить состояние счета, с которого снимаются средства

1

Норм(0,5;0.3)

Записать снятую

сумму

1

Норм(0,3;0.1)

Записать депони­руемую сумму

1

Норм(0,3;0.1)

Вернуть клиенту документы по счету

1

Норм(0,3;0.1)

Выписать дорожный чек:

Проверить состояние счета

1

Норм(0,5;0.3)

Записать снятую сумму

»

1

Норм(0,3;0.1)

Проверить состояние счета клиента

-

1

Норм(0,3;0.1)

Проверить данные чека

1

Норм(1,0;5)

Действие

Механизм исполнения

Количество

Время

Подсчитать сумму наличных

Операционист

1

Норм(0,5;0.5)

Распечатать и пере­дать клиенту чек

То же

1

Норм(1,0;5)

Открыть новый счет

"

1

Норм(15,6)

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

Во-первых, определим норму прибытия клиентов как Норм(1,2; 0,3). Это означает, что приблизительно каждые 1,2 мин в операцион­ный зал заходит новый клиент. Если норма прибытия клиентов изме­няется в зависимости от времени дня, мы могли бы составить таблицу норм прибытия, в которой перечислили нормы прибытия клиентов в зависимости от времени.

В соответствии с табл. 5.4 50% всех транзакций — операции депо­нирования. Половина из них — всего лишь проверки состояния счета, 30% — депонирование мелких сумм и только 20% операций депони­рования приносят банку значительные суммы. Аналогичные значения показывают вероятности других действий.

Таблица 5.4

Группа действий

Вероятность

Депонирование средств на счет

0,5

Проверка состояния

0,5

Депонирование мелкой суммы

0,3

Депонирование крупной суммы

0,2

Снятие средств со счета

0,25

Снятие мелкой суммы

0,75

Снятие крупной суммы

0,25

Перевод со счета на счет

0,15

Продолжение

Группа действий

Вероятность

Выписка дорожного чека:

0,15

Оплата со счета

0,80

Оплата наличными

0,20

Открытие нового счета

0,05

Для определения поведения очередей аналитик должен сделать несколько предположений о физической реализации моделируемой системы. Например, для каждой из пяти перечисленных в таблице ос­новных транзакций может иметься собственная очередь или все кли­енты могут обслуживаться в общей очереди вне зависимости от типа транзакции, наконец, может быть что-то среднее из двух вариантов. Предположим, что все клиенты обслуживают в одной очереди.

В табл. 5.5 мы предположили, что длина очереди клиентов не ограничена. Однако может оказаться полезным применить для оче­реди некоторые ограничения, для того чтобы посмотреть, как теряют­ся клиенты в случае, если очередь чрезмерно длинна (некоторые кли­енты не будут томиться в операционном зале, если видят, что ждать им придется долго).

Таблица 5.5

Очередь

Поведение

Вместимость

Приходящие клиенты

FIFO

0

Наконец, мы должны определить, какую информацию нужно по­лучить о каждом из компонентов модели. Выбор результирующих пе­ременных зависит от цели построения модели. Для нашей модели наи­более очевидными параметрами являются время ожидания клиента в очереди и ее длина. Однако просто получить среднее время, проведен­ное клиентом в очереди, и его стандартное отклонение будет недоста­точно. Мы хотим увидеть, как будут меняться длина очереди и время ожидания в зависимости от времени.

Рассмотрим рис. 5.6. Процесс, применяющийся в очереди №1, яв­но не справляется с возложенной на него задачей: длина очереди все время растет. Длина очереди № 2 изменяется во времени, но не превы­шает некоторого предела. Если он неприемлем, это означает, что оче­редь в некоторые моменты времени становится слишком длинной. Для понимания, почему это происходит, нужен дальнейший анализ.

Возможно, в пиковые периоды нагрузки требуется оптимизация рас­пределения имеющихся ресурсов. Очередь № 3 (и обрабатывающие ее действия) — кандидат на исключение из бизнес-процесса, если банк и клиенты достигнут более удачной договоренности о расписании рабо­ты операционного зала.

Рис. 5.6. Результат моделирования очередей

В рассматриваемом примере стоимость работы механизмов ис­полнения также важна, поскольку мы пытаемся определить наимень­шее возможное число операционистов и счетчиков банкнот для опера­ционного зала, которое могло бы приемлемым образом справляться с предполагаемым потоком клиентов. Нам нужно понять, сколько вре­мени каждый из механизмов простаивает, для того чтобы подсчитать, во сколько обходятся такие простои. Нужно определить период вре­мени, в течение которого операционист занят обслуживанием кли­ента. Наконец, можно вычислить, сколько времени проведет опера­ционист в ожидании, пока освободится счетчик банкнот. Вся эта информация получается посредством разработки формул вычисления параметров имитационного моделирования.