Система имитационного моделирования GPSS

Вводные сведения

Литература:
1. Боев В.Д. Моделирование систем. Инструментальные средства GPSS World: Учеб. пособие. - СПб.: БХВ-Петербург, 2004.

Пакет моделирования:
GPSS World Student Version
Можно взять на сетевом диске T:\Korobitsin\Modelling\GPSS-student.exe

Лабораторная работа № 1. МОДЕЛИРОВАНИЕ ПРОСТЫХ ИНФОРМАЦИОННЫХ ПРОЦЕССОВ НА КОМПЬЮТЕРЕ

Цель работы: знакомство с системой имитационного моделирования GPSS World, с подготовкой задания на моделирование, выполнением анализа и обработкой результатов моделирования.

Краткие сведения о GPSS World

Система имитационного моделирования общего назначения GPSS (General Purpose Simulation System) предназначена для описания и исследования дискретных моделей систем массового обслуживания (СМО). Программа GPSS World разработана компанией Minuteman Software. Используемая для лабораторных работ, GPSS World Student Version является свободно распространяемой и ее можно скачать с официального сайта разработчика www.minutemansoftware.com . Вопросы и пожелания к разработчику можно посылать по адресу электронной почты Support@MinutemanSoftware.com .

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

Блоки генерации и удаления транзактов

GENERATE A,B,C,D,E - блок генерации транзактов
    A  - средний интервал времени между последовательными транзактами;
    B  - разброс интервала времени относительно A;
    C  - время начальной задержки;
    D  - количество генерируемых транзактов, по умолчанию неограничено;
    E  - приоритет транзактов, по умолчанию 0.
TERMINATE A - блок удаления транзакта
    A  - величина уменьшение счетчика числа завершений.
      

Блоки занятия и освобождения приборов

SEIZE A - блок занятия прибора
    A  - имя прибора, подлежащего занятию транзактом.
RELEASE A - блок освобождения прибора
    A  - имя освобождаемого прибора.

Блок задержки транзактов

ADVANCE A,B - блок задержки транзакта в цепи будущих событий
    A  - средний интервал времени задержки;
    B  - разброс интервала времени относительно A;

Операторы и блоки вычислительной категории

Name VARIABLE X - оператор описания целой переменной
Name FVARIABLE X - оператор описания действительной переменной
Name BVARIABLE X - оператор описания логической переменной
    Name  - имя переменной;
    X  - выражение соответствующего типа.

SAVEVALUE A,B - блок сохранения значения сохраняемой величины
    A - имя или номер изменяемой ячейки;
    B - значение, которое надо записать в ячейку.

Компиляция и запуск имтации

Для того чтобы создать модель необходимо запустить GPSS World. Выбрать пункт меню File->New и указать, что новый файл будет моделью (Model). После чего набрать текст программы на языке GPSS и откомпилировать ее, вызвав Command->Create Simulation. Если компилятор выдал сообщение об успешной компиляции:
    Model Translation Begun.
    Ready.
то можно запустить имитацию Command->Start.

Пример 1:

Процесс прохождения заявок, поступление которых подчиняется равномерному закону со средним значением 8 и интервалом [6,10] единиц времени, а обработка - равномерному закону со средним 5 и интервалом [2,8], можно описать программой:

      GENERATE  8,2  ; генерация транзактов
      SEIZE     DEV  ; занятие прибора
      ADVANCE   5,3  ; задержка транзакта
      RELEASE   DEV  ; освобождение прибора
      TERMINATE  1   ; уничтожение транзакта

Блоки занятия и освобождения очереди

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

QUEUE A,B - блок занятия очереди
    A  - имя очереди;
    B  - количество мест в очереди, занимаемое транзактом.
DEPART A,B - блок освобождения очереди
    A  - имя очереди;
    B  - количество мест в очереди, освобождаемое транзактом.
Блок QUEUE может быть помещен перед любым блоком модели, в котором может возникнуть задержка. Отметим, что очередь к занятому устройству автоматически организуется пакетом моделирования независимо от того, есть в программе блок QUEUE или нет.

Пример 2:

В условиях примера 1 необходимо получить статистические данные об очереди заявок, ожидающих обслуживание на приборе:

      GENERATE    8,2
      QUEUE       SER
      SEIZE       DEV
      DEPART      SER
      ADVANCE     5,3
      RELEASE     DEV
      TERMINATE    1

Построение гистограмм

Система GPSS позволяет строить дополнительные статистические таблицы для получения частотных распределений определенных аргументов, которыми могут быть некоторые СЧА (например, времени задержки транзакта в отдельных частях модели; длин очередей; содержимого памяти и т.п.). У каждой таблицы имеются определенные области значений аргумента. Число попаданий аргумента в каждую из этих областей регистрируется системой автоматически. В конце эксперимента результаты в таблицах выводятся на печать.

Name TABLE A,B,C,D - команда описания таблицы частотного распределения
    Name - имя таблицы,
    A  - имя переменной, значение которой табулируется, 
    B  - левая граница первого интервала таблицы,
    C  - ширина интервалов,
    D  - количество интервалов.

Name QTABLE A,B,C,D - команда описания таблицы времени пребывания в очереди
    Name - имя таблицы,
    A  - имя очереди, 
    B  - левая граница первого интервала таблицы,
    C  - ширина интервалов,
    D  - количество интервалов.

MARK A - блок отметки времени
    A  - номер параметра транзакта, в который заносится момент времени входа транзакта в данный блок.

TABULATE A,B - блок табулирования
    A  - имя таблицы, в которую заносится табулируемая величина,
    B  - весовой коэффициент, задающий число раз занесения величины
          в таблицу при каждом входе в блок.

Пример 3:

Получить таблицу распределения интервалов заявок по равномерному закону в интервале от 0 до 100:

AAA1  VARIABLE    C1-X1 ; вычисление значения переменной ААА1 как разность 
                        ; текущего значения времени моделирования (C1) и предыдущего,
                        ; сохраняемого в ячейке 1 (X1)
      GENERATE    50,50 ; генерация транзактов по равномерному закону
      TABULATE    TAB1  ; блок табулирования времени
      SAVEVALUE   1,C1  ; cохранение в ячейке 1 текущего времени
      TERMINATE   1     ; удаление транзакта
TAB1  TABLE       V$AAA1,10,10,11 ; формирование таблицы частоты попадания
                        ; интервалов генерации транзактов в интервалы временной оси
                        ; от 0 до 100 с шагом 10

Статистика имитации

В процессе выполнения программы собирается стандартная статистическая информация, которая автоматически выводится на печать по окончании моделирования. Содержание стандартного отчета:

  • Заголовок содержит название модели, дату и время запуска модели.
  • Начало (START TIME) и конец (END TIME) модельного времени, количество блоков (BLOCKS), устройств (FACILITIES) и памятей (STORAGES) в модели.
  • Список имен введенных в модели, где каждому имени (NAME) приписывается число (VALUE). Значения начинаются с 10000.000.
  • Список блоков, содержащий следующую информацию:
    • LABEL - метка блока,
    • LOC - позиция блока в модели (Location),
    • BLOCK TYPE - название блока на языке GPSS,
    • ENTRY COUNT - количество вошедших в блок транзактов с момента последней команды CLEAR или RESET,
    • CURRENT COUNT - количество транзактов в данный момент в блоке,
    • RETRY - количество транзактов, ожидающих входа в блок.
  • Список устройств, содержащий информацию:
    • FACILITY - название или номер устройства,
    • ENTRIES - количество транзактов, занимавших это устройство блоками SEIZE или PREEMPT с момента применения команд CLEAR или RESET,
    • UTIL. - коэффициент использования устройства,
    • AVE.TIME - среднее время одного обслуживания,
    • AVAIL. - доступность устройства в момент окончания имитации (AVAIL.),
    • OWNER - количество транзактов, находящихся на устройстве,
    • PEND - количество транзактов, ожидающих устройство для захвата по блоку PREEMPT,
    • INTER - количество транзактов, прерванных при обработке блоками PREEMPT,
    • RETRY - количество транзактов, ожидающих по разным причинам освобождения устройства,
    • DELAY - количество транзактов, ожидающих освобождения устройства в режиме приоритетного входа по блоку PREEMPT.
  • Список очередей с информацией:
    • QUEUE - название или номер очереди,
    • MAX - максимальное количество транзактов, содержащихся в очереди за весь период сбора статистики,
    • CONT. - текущее количество транзактов в момент окончания имитации,
    • ENTRY - общее количество входов в очередь,
    • ENTRY(0) - количество транзактов, вышедших из очереди без ожидания,
    • AVE.CONT. - среднее значение транзактов в очереди,
    • AVE.TIME - среднее время ожидания в очереди,
    • AVE.(-0) - среднее время ожидания, исключая транзакты, которые не задерживались в очереди,
    • RETRY - количество транзактов, ожидающих вход в очередь по некоторым причинам.
  • В таблицах печатается информация: имя таблицы (TABLE), среднее значение аргумента (MEAN), стандартное отклонение (STD.DEV); а также табличные значения: диапазон интервала (RANGE), частота попадания в интервал (FREQUENCY), накопленная относительная частота (CUM.%).
    •  TABLE - имя или номер таблицы или Q-таблицы,
    •  MEAN - среднее значение табулируемой величины,
    •  STD.DEV - средне-квадратичное отклонение,
    •  RANGE - левый и правый конец интервалов. Интервалы с нулевыми значениями не отображаются,
    • RETRY - количество транзактов, ожидающих по некоторым причинам в блоке TABULATE,
    •  FREQUENCY - количество элементов, попавших в этот интервал,
    •  CUM.% - накопительный процент, попавших элементов.

    Практическое задание

    Необходимо промоделировать работу участка цеха, состоящего из нескольких станков и обрабатывающего два потока деталей различного типа. В таблице 1 представлено распределение выполняемых операций по станкам T1, T2 и T3. Интервалы времени между поступлениями деталей и времена выполнения операций распределены равномерно. Информация о временах поступления и выполнения операций заданы в таблицах 2 и 3.

    Определить для рабочего дня (8 часов) и рабочей недели (5 дней при односменном режиме) следующие показатели:

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

    Таблица 1. Распределение операций по станкам

    Вариант Операция 1 Операция 2 Операция 3 Операция 4 Операция 5 Операция 6
    1 T1 T2 T3 T1 T3 T2
    2 T2 T1 T3 T1 T2 T3
    3 T3 T2 T1 T1 T2 T3
    4 T1 T2 T3 T3 T1 T2
    5 T1 T3 T2 T3 T1 T2
    6 T1 T2 T3 T2 T3 T2
    7 T2 T1 T3 T1 T3 T1
    8 T2 T2 T3 T1 T3 T2
    9 T1 T2 T3 T3 T2 T3
    10 T3 T2 T1 T1 T3 T2
    11 T2 T3 T1 T1 T2 T1
    12 T2 T3 T1 T1 T2 T3
    13 T3 T2 T1 T3 T2 T3
    14 T1 T3 T3 T1 T3 T2
    15 T2 T3 T1 T3 T1 T3
    16 T1 T2 T3 T2 T1 T2
    17 T2 T1 T3 T2 T3 T1
    18 T1 T2 T3 T1 T3 T2
    19 T1 T3 T2 T3 T2 T3
    20 T3 T2 T1 T1 T3 T2

    Таблица 2. Интервалы времени поступления деталей (мин.)

    Вариант Первого типа Второго типа
    1 30 + 5 20 + 5
    2 35 + 7 27 + 4
    3 33 + 6 28 + 9
    4 28 + 5 15 + 5
    5 35 + 10 28 + 5
    6 40 + 5 30 + 5
    7 40 + 10 30 + 8
    8 25 + 5 20 + 5
    9 45 + 5 25 + 5
    10 20 + 5 15 + 5
    11 35 + 4 20 + 6
    12 38 + 8 27 + 6
    13 33 + 7 29 + 3
    14 29 + 6 15 + 5
    15 38 + 8 28 + 5
    16 40 + 5 37 + 6
    17 40 + 10 33 + 9
    18 29 + 5 20 + 8
    19 45 + 7 29 + 5
    20 25 + 5 15 + 6

    Таблица 3. Интервалы выполнения операций (мин.)

    Вариант Операция 1 Операция 2 Операция 3 Операция 4 Операция 5 Операция 6
    1 5 + 2 20 + 4 10 + 3 7 + 4 15 + 5 15 + 7
    2 7 + 3 18 + 5 12 + 2 5 + 6 17 + 6 11 + 5
    3 8 + 3 9 + 4 14 + 3 8 + 4 20 + 8 14 + 3
    4 7 + 2 20 + 4 12 + 5 7 + 4 17 + 8 15 + 7
    5 8 + 3 11 + 6 14 + 3 9 + 4 22 + 7 14 + 3
    6 7 + 2 23 + 4 12 + 7 7 + 4 15 + 4 15 + 7
    7 8 + 3 13 + 7 14 + 3 9 + 4 16 + 5 14 + 3
    8 7 + 2 21 + 6 12 + 7 7 + 5 13 + 4 15 + 7
    9 10 + 2 13 + 7 14 + 3 9 + 4 11 + 6 14 + 3
    10 5 + 2 21 + 6 12 + 3 7 + 4 10 + 4 15 + 7
    11 5 + 2 10 + 3 20 + 4 15 + 5 7 + 4 15 + 7
    12 18 + 5 7 + 3 12 + 2 5 + 6 11 + 5 17 + 6
    13 8 + 3 9 + 4 14 + 3 8 + 4 14 + 3 20 + 8
    14 20 + 4 7 + 2 12 + 5 7 + 4 17 + 8 15 + 7
    15 8 + 3 22 + 7 11 + 6 14 + 3 9 + 4 14 + 3
    16 23 + 4 12 + 7 7 + 2 7 + 4 15 + 4 15 + 7
    17 13 + 7 14 + 3 9 + 4 8 + 3 16 + 5 14 + 3
    18 7 + 2 12 + 7 7 + 5 13 + 4 21 + 6 15 + 7
    19 10 + 2 14 + 3 9 + 4 13 + 7 11 + 6 14 + 3
    20 5 + 2 12 + 3 7 + 4 21 + 6 10 + 4 15 + 7

    Порядок выполнения работы

    1. Ознакомится с описанием работы.
    2. Получить вариант задания у преподавателя.
    3. Подготовить описания на языке GPSS и выполнить:
      • моделирование процесса;
      • получение статистических данных;
      • построение таблиц частот генерации и обработки деталей.
    4. Выполнить анализ результатов.
    5. Сохранить программу и отчеты.
    6. Подготовить отчет о работе с представлением и объяснением полученных результатов

    Следующая работа Главная страница