16+
DOI: 10.18413/2518-1092-2016-1-4-16-20

СИСТЕМНО-ОБЪЕКТНОЕ ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ СИСТЕМ МАССОВОГО ОБСЛУЖИВАНИЯ

Aннотация

В работе рассматриваются основные аспекты системно-объектного имитационного моделирования систем массового обслуживания с применением программного средства UFOModeler. Приводится классическое понимание системы массового обслуживания, рассматриваются варианты формального построения моделей. Основная часть статьи посвящена реализации примера простой системы массового обслуживания, состоящей из двух блоков: очередь и узел обработки. Пример модели рассматривается в терминах подхода «Узел-Функция-Объект».


С системами массового обслуживания (СМО) мы встречаемся повседневно. Любому из нас приходилось когда-то ждать обслуживания в очереди (например, в магазине, на автозаправке, в библиотеке, кафе и т. д.). Аналогичные ситуации возникают при потребности воспользоваться телефонной связью или выполнить свою программу на компьютере. Более того, любое производство можно представить как последовательность систем обслуживания. К типичным системам обслуживания относят также ремонтные и медицинские службы, транспортные системы, аэропорты, вокзалы и другие. Особое значение приобрели такие системы при изучении процессов в информатике. Это, прежде всего, компьютерные системы, сети передачи информации, ОС, базы и банки данных. Системы обслуживания играют значительную роль в повседневной жизни. Опыт моделирования разных типов дискретных событийных систем свидетельствует о том, что приблизительно 80% этих моделей основаны на СМО [1].

Такие системы можно описать, если задать:

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

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

Существуют системы с одним устройством обслуживания, а так же многоканальные системы массового обслуживания. Рассмотрим одноканальную (с одним устройством обслуживания) СМО, показанную на следующем рисунке.

Рис.1. Структура одноканальной СМО.

Fig. 1. The structure of single-channel system of mass service

Для обозначения СМО используются три параметра: X/Y/Z, где X – распределение времени поступления; Y – распределение времени обслуживания; Z – число обслуживающих устройств. В теории СМО некоторые аналитические решения были получены для систем вида D/D/1, М/М/1 и М/G/l [2]. Для других значений параметров систем обслуживания аналитические решения не были получены, то есть эта проблема мотивирует использование моделирования.

Самая известная модель – это так называемая CMО типа М/М/1, где М – марковские процессы распределения времени поступления и обслуживания с одним устройством. Например, в системе М/М/1 время между двумя поступлениями в систему требований и время обслуживания имеют экспоненциальные распределения. Такая CMO иногда используется как модель для одного процессора компьютерной системы или как стандартное устройство ввода-вывода (например, магнитный диск).

Система D/D/1 – детерминированная система, тогда как D/M/1 – смешанная. Если о системе мало известно, это обозначается как G/G/m, то есть система с произвольными распределениями и m устройствами.

Многоканальная СМО (с несколькими одинаковыми устройствами обслуживания) изображена на рис. 2. В отличие от одноканальных СМО многоканальные системы рассчитать сложнее. Теория массового обслуживания позволяет получать аналитические зависимости для расчетов характеристик работы многоканальных CMО в стационарном режиме работы, однако, эти зависимости можно получить только для системы М/М/m.

Рассмотрим возможности программного комплекса «UFOModeler» [3] с точки зрения разработки имитационных моделей систем массового обслуживания. В его основе лежит метод системного анализа Узел – Функция – Объект (Unit – Function – Object) UFO-подход [4]. Метод UFO-анализа – это подход к системе как функциональному объекту, состоящий в представлении ее в виде трехэлементной конструкции: «Узел–Функция–Объект» (UFO-подход). На основе данного подхода разработан формально-семантический метод UFO-анализа, позволяющий конструировать системно-объектные модели как комбинации UFO-элементов.

Рис. 2. Структура многоканальной СМО

Fig. 2. The structure of multichannel system of mass service

Представления об узловых, функциональных и объектных характеристиках системы позволяют описывать системы их как UFO-элементы, т.е. одновременно как «Узлы – Функции – Объекты» и хранить эту информацию в специальных библиотеках UFO-элементов. Это позволяет значительно облегчить работу по моделированию, анализу и оптимизации бизнес-процессов.

Построим с помощью программного обеспечения UFOModeler модель простой системы массового обслуживания – модель работы банковского терминала. В банковском отделении находится терминал. Операции с наличностью клиенты банка производят с помощью банковского терминала. Время обслуживания клиента задано с помощью псевдослучайных чисел в интервале от 1 до 10 минут. При этом в отделении банка каждые 10 минут приходят от 1 до 10 человек (псевдослучайное число) и ждут своей очереди.

Для начала создадим модель и назовем ее «Отделение банка», затем создадим два узла «Очередь» и «Транзакция клиента». Следующим этапом необходимо создать связи. Связи – это всевозможные потоки материи или информации, циркулирующие в моделируемой системе и между системой и окружающей средой. Особенностью UFO-подхода является то, что в нём существует базовая иерархия связей. Связи, которые используются в модели, добавляются в эту иерархию, расширяя её, т.е. каждая новая связь является подвидом существующей. На рисунке ниже представлен результат добавления связей на диаграмму.

Рис. 3. Представление связей узлов на схеме

Fig. 3. Connection of nodes on the chart

С точки зрения втекающих и вытекающих потоков/связей, каждая система характеризуется функциональными способностями, обеспечивающими преобразование «втекающих» по связям ресурсов в «вытекающие» ресурсы. Эти функциональные способности обеспечивают баланс «притока» и «оттока» по функциональным связям узла, занимаемого данной системой. При этом баланс одного и того же узла может быть обеспечен, в принципе, разными наборами функциональных способностей, т.е. разными функциональными зависимостями выхода от входа. Формальная функциональная характеристика системы является второстепенной и характеризует теоретическую способность (потенциальную возможность) системы сбалансировать определенный узел.

За обработку входящих и исходящих потоков данных узла отвечает функция, описанная с помощью языка УФО-скрипт с внедрением специальных методов для обработки потоков ввода/вывода данных. Таким образом, код функции для узла «Очередь» будет выглядеть следующим образом:

 var x,i: integer;

begin

x := 0;

i := 0;

while 1>0 do

 begin

  i := i + 1;

  x := x + round(Random * 10);

  SetLinkOut('клиенты.срКолво',x / i);

  SetLinkOut('клиенты.ожидающие',x);

  SetObjProp('#buzy', round(x / i));

  if x / i >= 100 then

    SetObjProp('#active', true)

  else

    SetObjProp('#active', false);

  delay(10);

 end;

end.

Код функции для узла «Транзакция клиента»:

var ojidanie,obsluj:integer;

percentCount,v:real;

begin

while GetLinkInI('клиенты.ожидающие') > 0 do

 begin

 if GetLinkInI('клиенты.ожидающие') <> ojidanie then

 begin

  percentCount := 100.;

  ojidanie := GetLinkInI('клиенты.ожидающие');

  v := (1 / ojidanie) * 100;

 end;

 SetObjProp('#buzy', round(percentCount));

 SetObjProp('#active', true);

 ojidanie := ojidanie - 1;

 obsluj := GetLinkInI('клиенты.обслуженные') + 1;

 SetLink('клиенты.ожидающие', ojidanie);

 SetLink('клиенты.обслуженные',obsluj);

 SetLinkOut('клиенты.обслуженные',obsluj);

 percentCount := percentCount - v;

 SetObjProp('#buzy', round(percentCount));

 if ojidanie = 0 then

  SetObjProp('#active', false)

 else

  SetObjProp('#active', true);

 delay(1);

 end;

Далее необходимо запустить выполнение модели, после чего пользователь увидит процесс работы модели, представленный на рисунке ниже.

Рис. 4. Симулятор функционирования СМО

Fig. 4. The simulator of the mass service system functioning

Из модели следует, что среднее количество пополнения очереди людьми составляет 2 человека, количество ожидающих обслуживания клиентов составляет 7 человек, количество обслуженных клиентов составляет 19 человек.

При этом полоса слева от блока «Транзакция клиента» отражает загруженность терминала, а полоса слева от блока «Очередь» обозначает среднее количество пополнения очереди.

Из выше описанного примера моделирования СМО можно сделать вывод, что использование формально-семантического метода УФО-анализа, позволяет конструировать системно-объектные модели как комбинации УФО-элементов. Модель, построенная в примере является наглядной и информативной, что позволяет провести анализ модели на визуальном уровне.

Список литературы

1. Бочаров П.П., Печинкин А.В. Теория массового обслуживания. — М.: РУДН, 1995. — С. 530.

2. Клейнрок Л. Теория массового обслуживания. — М.: Машиностроение, 1979. — С. 432.

3. Жихарев А.Г., Маторин С.И., Корчагина К.В. Имитационное моделирование с применением системного подхода и исчисления объектов // Объектные системы – 2016: материалы XII Международной научно-практической конференции (Ростов-на-Дону, 10-12 мая 2016 г.) / Под общ. ред. П.П. Олейника. – Ростов-на-Дону: ШИ (ф) ЮРГПУ (НПИ) им. М.И. Платова, 2016, С. 28-33.

4. S.I. Matorin, A.G. Zhikharev, O.A. Zimovets The elements of general theory of the systems in terms of system-object approach of «Unit-Function-Object» // International Journal of Applied Engineering Research – 2015.- Vol. 10 – No. 24.- Pp. 44831-44837.