Компьютерное моделирование, GPSS

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ 2

1. ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ 6

1.1. ОРИГИНАЛ МОДЕЛИ 6

1.2. ПЕРЕВОД МОДЕЛИ 8

1.3. ОТЧЁТ РАБОТЫ МОДЕЛИ 11

2. ИНТЕРПРЕТАЦИЯ 16

ЗАКЛЮЧЕНИЕ 18

3. СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ 19

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ВВЕДЕНИЕ

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

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

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

Основными понятиями СМО являются

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

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

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

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

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

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

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

СМО с  ожиданием подразделяются на разные виды в зависимости от того, как  организована очередь: с ограниченной или неограниченной длиной очереди, с ограниченным временем ожидания и  т.п.

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

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

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

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

Имитационным  моделированием иногда называют получение  частных численных решений сформулированной задачи на основе аналитических решений  или с помощью численных методов.

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

 

  1. ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ

    1. ОРИГИНАЛ МОДЕЛИ

; GPSS World Sample File - ASSEMBLY.GPS, by Gerard F. Cummings

******************************************************************

*  Assembly of Motor Pump and Baseplate                                   *        

******************************************************************

Transit   TABLE        M1,200,200,20

****************************************************************** 

          GENERATE     (Exponential(1,0,300))   ;New order arrives

         SPLIT                2,Factory,1              ;Make 2 copies of order

******************************************************************

*     Purchase Motor   Original Transaction Goes Here, P1=1

          QUEUE              Motor                  ;Queue for motor

          SEIZE              Motor                  ;Get a Facility

          DEPART            Motor                 ;Depart the queue

          ADVANCE        200,100             ;Take motor from stock

          RELEASE          Motor                 ;Free the Facility

          TRANSFER       ,Tryout              ;Send to trial assembly

******************************************************************

Factory   TEST E       P1,2,Baseplate          ;Is P1=2 ?

          QUEUE                Pumps                   ;Join the Queue (P1=2)

          SEIZE                Pumps                  ;Get a Facility

          DEPART              Pumps                   ;Depart the Queue

          ADVANCE          180,120                 ;Prepare the Pump

Pump       MATCH        Plate                   ;Wait for baseplate

          ADVANCE          50,10                   ;Check pump on baseplate

          RELEASE            Pumps                   ;Free the Facility 

          TRANSFER        ,Tryout                 ;Send for a tryout

******************************************************************

Baseplate QUEUE        Base                    ;Join Queue P1 must=3

          SEIZE                Base                    ;Get a Facility

          DEPART            Base                    ;Depart the Queue

          ADVANCE          80,20                   ;Make the baseplate

Plate     MATCH            Pump                   ;Wait for the pump unit

          ADVANCE          50,10                   ;Check the pump on

                                               ; baseplate

          RELEASE             Base                    ;Free the Facility

******************************************************************

Tryout    GATHER        3                        ;Gather 3 units to tryout

          ADVANCE          60                      ;Trial assembly

          TEST E               P1,1,Finish             ;Is it the motor?(P1=1)

******************************************************************  

          SEIZE                Paint1                 ;Get first paint Facility

          ADVANCE          100,20                  ;Paint the motor

          RELEASE             Paint1                  ;Free paint Facility 1

          TRANSFER         ,Build                  ;Send for assembly

******************************************************************      

Finish    TEST E            P1,2,Basplate           ;Is it the pump?(P1=2)

          SEIZE                Paint2                  ;Get paint Facility 2

          ADVANCE         120,30                  ;Paint the Pump

          RELEASE            Paint2                  ;Free paint Facility 2

          TRANSFER         ,Build                  ;Send for assembly

Basplate  SEIZE            Galvanize               ;Get a Facility

          ADVANCE         120,30                  ;Galvanize baseplate

          RELEASE           Galvanize               ;Free the Facility

******************************************************************

Build     ASSEMBLE     3                       ;Collect 3 units

          ADVANCE         150,30                  ;Assemble unit

          TABULATE        Transit                 ;Record transit time

          TERMINATE      1                        ;One unit completed

    1. ПЕРЕВОД МОДЕЛИ

; GPSS World Sample File - ASSEMBLY.GPS, by Gerard F. Cummings

******************************************************************

*       Сборка двигателя, насоса и опорной плиты                 *       

******************************************************************

Transit    TABLE        M1,200,200,20

******************************************************************

          GENERATE     (Exponential(1,0,300))  ; Поступает новый заказ

          SPLIT                2,Factory,1             ; Создание двух копий заказа

******************************************************************* Заказ двигателя, первоначальная сделка идёт сюда, P1=1

          QUEUE         Motor                    ; Очередь для двигателя

          SEIZE         Motor                   ; Занять устройство

          DEPART        Motor                    ; Выход из очереди

          ADVANCE     200,100                 ; Взять двигателя со склада

          RELEASE       Motor                    ; Освободить устройство                                                                            TRANSFER     ,Tryout                 ; Отправка на сборку

******************************************************************

Factory   TEST E       P1,2,Baseplate          ; P1=2?

          QUEUE         Pumps                    ; Встать в очередь (если Р1=2)

          SEIZE         Pumps                    ; Занять устройство

          DEPART        Pumps                    ; Выход из очереди

          ADVANCE     180,120                 ; Подготовка насоса

Pump      MATCH     Plate                    ; Ожидание опорной плиты

          ADVANCE     50,10                    ; Проверка насоса на опорной       ; плите

          RELEASE      Pumps                    ; Освобождение устройства 

          TRANSFER   ,Tryout                  ; Отправка на проверку

 

 

******************************************************************

Baseplate QUEUE        Base                    ; Встать в очередь (если P1=3)

          SEIZE             Base                     ; Занять устройство

          DEPART       Base                     ; Выход из очереди

          ADVANCE    80,20                    ; Создание опорной плиты

Plate     MATCH      Pump                     ; Ожидание насоса

          ADVANCE    50,10                    ; Проверка насоса на опорной       ; плите

          RELEASE      Base                     ; Освобождение устройства

******************************************************************

Tryout    GATHER    3                        ; Создание агрегата для проверки

          ADVANCE      60                       ; Пробная сборка

          TEST E         P1,1,Finish             ; Действительно ли это -        ; двигатель? (P1=1)

******************************************************************   

          SEIZE         Paint1                   ; Занять первое устройство       ; покраски

          ADVANCE    100,20                   ; Покраска двигателя

          RELEASE      Paint1                   ; Освобождение первого        ; устройства покраски

          TRANSFER     ,Build                   ; Отправка на сборку

******************************************************************

Finish    TEST E       P1,2,Basplate           ; Это насос?(P1=2)

          SEIZE             Paint2                   ; Занять второе устройство       ; покраски

          ADVANCE    120,30                   ; Покраска насоса

          RELEASE      Paint2                   ; Освобождение второго        ; устройства покраски

          TRANSFER     ,Build                   ; Отправка на сборку

Basplate  SEIZE        Galvanize               ; Занять устройство

          ADVANCE      120,30                  ; Оцинковка опорной плиты

          RELEASE        Galvanize               ; Освобождение устройства

******************************************************************

Build     ASSEMBLE    3                        ; Сборка всех составляющих

          ADVANCE        150,30                  ; Сборка агрегата

          TABULATE     Transit                 ; Рекордное время         ; транспортировки

          TERMINATE    1                        ; Один агрегат готов

 

 

Построим  гистограмму, показывающую время сборки одного насосного агрегата (рисунок 1). По ней очевидно, что агрегат будет собираться в течении 700(±100) часов.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    1. ОТЧЁТ РАБОТЫ МОДЕЛИ

Отчёт работы модели для одного насосного агрегата представлен в таблице ниже.

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

По результатам работы имитационной модели, получим Таблицу 1

Имя устройства (FACILITY)

Коэффициент использования (UTIL.), %

Среднее время занятия устройства (AVE. TIME), мин

Двигатель (Motor)

79,1

266,9

Насос (Pumps)

53,1

179,0

Опорная плита (Base)

53,2

179,6

Оцинковка плиты (Galvanize)

21,6

72,9

Покраска насоса (Paint2)

26,0

87,7

Покраска двигателя (Paint1)

19,4

65,5


 

Таблица 1.

 Построим гистограмму, показывающую время сборки одного насосного агрегата (рисунок 1). По ней очевидно, что агрегат  будет собираться в течении 700(±100) часов.


 

 

 

 

 

 

 

 

 

 

 

Рисунок 1.

Рассмотрим результаты работы модели для создания 25 насосных агрегатов  в таблицах 2 и 3.

Имя очереди (QUEUE)

Максимальная длина очереди (MAX)

Средняя длина очереди (AVE. CONT.)

Среднее время пребывания транзактов в очереди (AVE. TIME)

Двигатель (Motor)

4

0,883

328,53

Насос (Pumps)

4

0,786

224,31

Опорная плита (Base)

4

0,789

306,88





Имя устройства (FACILITY)

Коэффициент использования (UTIL.), %

Среднее время занятия устройства (AVE. TIME), мин

Двигатель (Motor)

27

219,43

Насос (Pumps)

27

226,35

Опорная плита (Base)

27

227,61

Оцинковка плиты (Galvanize)

26

116,03

Покраска насоса (Paint2)

26

121,56

Покраска двигателя (Paint1)

26

99,66





Таблица 2.

Таблица 3.

Построим  гистограмму, показывающую время сборки двадцати пяти насосных агрегатов (рисунок 2). По ней очевидно, что все насосы будут собраны в течение 1400 часов, причём

  1. в промежутке 400-600 часов будет собрано 3 насосных агрегата
  2. в последующие 200 часов (600-800) будет собрано наибольшее количество агрегатов - 13
  3. в период от 800 до 1000 часов вновь будет собрано 3 агрегата
  4. в промежутке 1000-1200 часов будет собрано 5 насосных агрегатов
  5. и в последние 200 часов будет собрано наименьшее количество агрегатов - 2.


 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 2.

 

 

 

 

 

  1. ИНТЕРПРЕТАЦИЯ

  • GENERATE - создание сообщения о поступлении нового заказа и размещение его в списке будущих событий
  • SPLIT - создание двух копий сообщения о поступлении нового заказа с адресацией её в блок Factory
  • TABLE - таблица
    • название - Transit
    • M1 - имя случайной переменной значение которой будет табулироваться
    • 200 - число являющееся первым граничным значением. Самый левый интервал
    • 200 - ширина интервала
    • 20 - общее число интервалов таблицы. Включая нижний и верхний

 

БЛОКИ ЗАКАЗА ДВИГАТЕЛЯ/НАСОСА/ОПОРНОЙ ПЛИТЫ

  • QUEUE - включение сообщения о получении двигателя (Motor), насоса (Pumps) или плиты (Base) со склада в очередь
  • SEIZE - занятие устройства/услуги или ожидание его освобождения для последующего занятия
  • DEPART - вывод сообщения из очереди
  • ADVANCE - задержка сообщения на определённое время, с включением его в список будущих событий
  • RELEASE - освобождение устройства/услуги
  • TRANSFER - пересылка сообщения в блок проверки (Tryout)
  • MATCH - синхронизация сообщений (например, ожидание сообщением о поступлении насоса связанных с ним сообщений в других блоках модели)
  • TEST - проверка арифметических условий и модификация направления движения потока сообщений

 

БЛОК СБОРКИ (Build)

  • ASSEMBLE - вывод из модели трёх сообщений для двигателя, насоса и плиты о сборке всех составляющих в один агрегат
  • ADVANCE - задержка сообщения о сборке агрегата на 150(±30) минут, с включением его в список будущих событий
  • TABULATE - обновление данных таблицы Transit, заданной в начале модели
  • TERMINATE - уничтожение сообщения, уменьшение счётчика завершённых сообщений

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ЗАКЛЮЧЕНИЕ

Итак, данная имитационная модель заключалась в  том, что некий производитель выпускает насосные агрегаты, которые собираются по заказам клиентов. Заказы поступают в среднем каждые 5 часов. При поступлении заказа с него снимают две копии. Исходный заказ используется для получения со склада двигателя и подготовки его к сборке (200±100 минут). Первая копия используется для заказа и подгонки насоса (180±120 минут), а вторая копия – для производства опорной плиты (80±20 минут).  
 Когда насос и опорная плита готовы, производится проверочный монтаж (50±10 минут). После того как будут готовы все три компонента, производится окончательная сборка. Агрегат разбирается, насос и двигатель окрашиваются, а опорная плита оцинковывается. Затем агрегат собирается окончательно (150±30 минут).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

  1. Томашевский В. Имитационное моделирование в среде GPSS. - М.: Бестселлер, 2003, 217 с.
  2. Блоки GPSS. - URL: http://codingrus.ru/readarticle.php?article_id=2115 Дата обращения: 21.04.2013.
  3. Кудрявцев Е.М. GPSS World. Основы имитационного моделирования различных систем. - М.: ДМК-Пресс, 2004.  - 320 с.: ил. (Серия "Проектирование"). ISBN 5-94074-219-X

 


Компьютерное моделирование, GPSS