Исследование систем управления методами имитационного моделирования

 

 

Введение

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

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

Для создания таких моделей  возможно использование как традиционных (так называемых универсальных языков программирования – УЯП), так и  специализированных программных средств (языков имитационного моделирования – ЯИМ).

Специализированные языки  имитационного моделирования по некоторым показателям превосходят  УЯП. Их достоинства:

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

Существует несколько  ЯИМ, приспособленных к решению задач, возникающих при имитационном моделировании человеко-машинных систем: наиболее известны такие языки, как GPSS, SIMSCRIPT и SIMULA. Язык GPSS обладает преимуществом перед другими распространенными языками. Его особая привлекательность обуславливается тем, что он наиболее прост в применении. Наиболее эффективной версией из текстово-ориентированных версий GPSS является GPSS/H.

 

Системы массового обслуживания. Классификация. Основные определения

 

Система массового обслуживания (СМО) — система, которая производит обслуживание поступающих в неё требований. Обслуживание требований в СМО производится обслуживающими приборами. Классическая СМО содержит от одного до бесконечного числа приборов. В зависимости от наличия возможности ожидания поступающими требованиями начала обслуживания СМО подразделяются на:

 системы с потерями, в которых требования, не нашедшие в момент поступления ни одного свободного прибора, теряются;

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

системы с накопителем  конечной ёмкости (ожиданием и ограничениями), в которых длина очереди не может превышать ёмкости накопителя; при этом требование, поступающее  в переполненную СМО (отсутствуют свободные места для ожидания), теряется.

Выбор требования из очереди  на обслуживание производится с помощью  так называемой дисциплины обслуживания. Их примерами являются FCFS/FIFO (пришедший  первым обслуживается первым), LCFS/LIFO (пришедший последним обслуживается первым), random  (англ.)(случайный выбор). В системах с ожиданием накопитель в общем случае может иметь сложную структуру.

Основные понятия СМО

Требование (заявка) —  запрос на обслуживание.

Входящий поток требований — совокупность требований, поступающих в СМО.

Время обслуживания —  период времени, в течение которого обслуживается требование.

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

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

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

 

2. Средство машинного моделирования GPSS/H

Язык имитационного  моделирования GPSS (General Purpose Simulating System). Основными понятиями языка GPSS являются транзакт, блок и оператор. Транзакт GPSS - это динамический объект, под которым может подразумеваться клиент, требование, вызов или заявка на обслуживание прибором обслуживания. То есть основное назначение GPSS - это моделирование систем массового обслуживания, хотя наличие дополнительных встроенных средств позволяет моделировать и некоторые другие системы (например, распределение ресурсов между потребителями). Транзакты в GPSS могут создаваться (вводиться), уничтожаться (выводиться), задерживаться, размножаться, сливаться, накапливаться и т. д. Блок GPSS представляет собой некоторый самостоятельный элемент моделируемой системы. Каждый блок реализует одну или несколько операций над транзактом, группой транзактов или параметрами транзактов, а совокупность блоков составляет моделирующую программу. Таким образом, GPSS имеет блочную структуру и может быть легко приспособлен и для структурно-функционального моделирования не очень сложных систем.

Системы ПО на основе языка GPSS:

  • GPSS/PC (разработка Minuteman Software)
  • GPSS World (разработка Minuteman Software)
  • GPSS/H (разработка Wolverine Software)
  • Micro-GPSS (разработка Ингольфа Сталла)
  • WebGPSS (разработка Ингольфа Сталла)

GPSS/H (Wolverine Software)  

 После того, как  IBM перестала поддерживать GPSS V, наиболее  значимой версией GPSS, разработанной независимой программной фирмой стал GPSS/H. Автором GPSS/H является Дж. Хенриксен. Хенриксен в 1976 году образовал фирму Wolverine Software. Первой разработкой фирмы стал GPSS/H в 1978 году. GPSS/H полностью совместим сверху вниз с GPSS V, но модели, написанные на GPSS/H, выполняются значительно быстрее за счет исключения режима интерпретации.

Последняя версия GPSS, названная GPSS/H, выпущена фирмой Wolverine Software Corporation в 1996 году и еще не нашла широкого применения в России. В то же время ее отличает от старых версий множество новых положительных свойств и возможностей. Некоторые существенные достоинства:

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

 

3. Постановка задачи (Задание 3, вариант А)

Согласно заданию необходимо промоделировать работу банковских окон (в моей модели их два. Клиенты  приходят каждые 2 ± 1 минуты, чтобы обслужиться в одном из окон. Время обслуживания  опытным оператором  равно  2,5±1,5 минуты. В другом окне  работает менее опытный сотрудник, время обслуживания в этом окне 4 ± 2 минуты. Исходя из этого, вероятность быть обслуженным 40% в окне, где работает стажер (окно №1).

Зададимся параметрами:

Условное обозначение

Значения

G (период генерации)

2 ± 1

О1 (время обслуживания в первом окне)

4 ± 2

О2 (время обслуживания во втором окне)

2,5±1,5

V (вес терминирования)

1

С (число стартов)

100


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Блок-схема движения транзактов:


Приходит первый клиент

 

 

Вероятность прихода посетителя

к одному из окон

 

 

Если окно занято, переход

к другому окну

 

Клиент попадает в очередь в  первое окно

 

 

 

Начало обслуживания

 

 

Выход из очереди

 

 

 

Время обслуживания

 

 

Завершение обслуживания

 

 

Если окно занято переход 

к другому окну

 

Клиент попадает в очередь во второе окно

 

 

Начало обслуживания

 

 

Выход из очереди

 

 

Время обслуживания

 

 

Завершение обслуживания

 

 

 

Клиент покидает банк 
4. Представление исходной модели

4.1. Модельный файл

* Модуль описания

       SIMU               

* Модуль исполнения

       GENE      2,1                            ---  Каждые две минуты(+/- 1 минута) приходит

                                                               человек (генерируется транзакт)

       TRAN      .400,,O1                   --- С вероятностью 40% он попадет в первое окно

       TRAN      BOTH,O1,O2          --- Условный переход: если первое окно занято –  

                                                              человек идет во второе и  наоборот

       QUEUE     OCHER1               --- Человек попал в очередь в первое окно

       SEIZE     OKNO1                    --- Началось обслуживание  в первом окне

       DEPART    OCHER1              --- Человек покинул очередь в первое окно

       ADVA      4,2                          --- Время обслуживания в окне 1 с задержкой от 2

                                                            до 6 минут

       RELEASE   OKNO1               --- Обслуживание в первом окне завершилось

       TRAN      BOTH,,O1              --- Если второе окно занято клиент переходит

                                                            К первому

       QUEUE     OCHER2               --- Клиент попал в очередь второго окна

       SEIZE     OKNO2                    --- Началось обслуживание  во втором окне

       DEPART    OCHER2              --- Человек покинул очередь во второе окно

       ADVA      2.5,1.5                     --- Время обслуживания в окне 2 с задержкой от 

                                                             минуты до четырех минут

       RELEASE   OKNO2               --- Обслуживание во втором окне завершилось

       TERM      1                              --- Транзакт с весом один покидает модуль

* Модуль управления

      START             100                 --- Количество стартов (испытания завершатся,

                                                            когда 100 транзактов протерминируются)   

       END                                        --- Окончание процесса моделирования

 

 

 

 

 

 

 

 

 

 

После написания модельного файла его необходимо сохранить в

формате .gps и «прогнать» через GPSSH. Благодаря этому мы получим файл с листингом (в формате .lis) исполняемой программы, опираясь на который можно сделать выводы о модели.

   RELATIVE CLOCK:

ABSOLUTE CLOCK:

335.9545

335.9545


 

 

 

FACILITY  TOTAL  AVAIL  UNAVL     ENTRIES    AVERAGE   CURRENT  PERCENT  SEIZING  PREEMPTING

           TIME   TIME   TIME               TIME/XACT   STATUS   AVAIL     XACT      XACT  

   OKNO1  0.995                        90       3.716    AVAIL               90

   OKNO2  0.633                        88       2.418    AVAIL               88

 

 

 

   QUEUE     MAXIMUM      AVERAGE       TOTAL        ZERO     PERCENT      AVERAGE      $AVERAGE     QTABLE     CURRENT

            CONTENTS     CONTENTS      ENTRIES     ENTRIES     ZEROS      TIME/UNIT    TIME/UNIT     NUMBER    CONTENTS

  OCHER1          74       36.415         163           1        0.6        75.053        75.517                     73

  OCHER2           1        0.055          89          63       70.8         0.207         0.709                        1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.2 Листинг.

    STUDENT GPSS/H RELEASE 3.0n-C10 (UG207)     18 May 2013   10:03:32     FILE: step.GPS

 

    LINE# STMT#  IF DO  BLOCK#  *LOC   OPERATION A,B,C,D,E,F,G  COMMENTS 

 

        1     1                        SIMULATE

        2     2              1         GENERATE    2,1

        3     3              2         TRANSFER    .400,,O1

        4     4              3         TRANSFER    BOTH,O1,O2

        5     5              4         QUEUE       OCHER1

        6     6              5         SEIZE       OKNO1

        7     7              6         DEPART      OCHER1

        8     8              7         ADVANCE     4,2

        9     9              8         RELEASE     OKNO1

       10    10              9         TRANSFER   BOTH,,O1

       11    11             10         QUEUE       OCHER2

       12    12             11         SEIZE       OKNO2

       13    13             12         DEPART      OCHER2

       14    14             13         ADVANCE     2.5,1.5

       15    15             14         RELEASE     OKNO2

       16    16             15         TERMINATE   1

       17    17                        START       100

       18    18                        END

 

ENTITY DICTIONARY (IN ASCENDING ORDER BY ENTITY NUMBER; "*" => VALUE CONFLICT.)

 

       Facilities: 1=OKNO1         2=OKNO2

 

           Queues: 1=OCHER1        2=OCHER2

 

SYMBOL   VALUE   EQU DEFNS  CONTEXT      REFERENCES BY STATEMENT NUMBER

 

1            1              Block            3     4    10

2            2              Block            4

 

OKNO1        1              Facility         6     9

OKNO2        2              Facility        12    15

 

OCHER1       1              Queue            5     7

OCHER2       2              Queue           11    13

 

 

 

STORAGE REQUIREMENTS (BYTES)

 

COMPILED CODE:      410

COMPILED DATA:       64

MISCELLANEOUS:        0

ENTITIES:           428

COMMON:           10000

-----------------------

TOTAL:            10902

 

 

 

GPSS/H MODEL SIZE:

 

CONTROL STATEMENTS      3

BLOCKS                 15

 

 

 

Simulation begins.

 

 

Вывод

 

В двух окнах, 100 клиентов было обслужено за 335.9545 мин.

Полное время работы окон по работе с физ. лицами:

Первое окно: 0.995 (где  работает стажер)

Второе окно: 0.633

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

 

Список используемой литературы:

 

  1. Варжапетян А.Г. Методические указания по курсовому проектированию  
    по курсу «Исследование систем управления», Санкт-Петербург, 2005 (в электронном виде).
  2. Варжапетян А.Г. имитационное моделирование на GPSS/H, Санкт-Петербург, 2007
  3. Википедия

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 




Исследование систем управления методами имитационного моделирования