Визуальная среда имитационного моделирования систем массового обслуживания (СМО)

Знакомство с визуальной средой рекомендуется начать с раздела "Примеры". Загрузить визуальную среду можно здесь.

Содержание

1 Работа в визуальной среде
1.1 Концепция построения модели в визуальной среде
1.2 Выбор блока или связи
1.3 Добавление блока
1.4 Удаление блока
1.5 Редактирование имени блока
1.6 Добавление и изменение связи между блоками
1.7 Удаление связи между блоками
1.8 Свойства блоков
1.9 Свойства модели
1.10 Запуск модели
1.11 Отчет о запуске модели
2 Описание блоков визуальной среды
2.1 "Генератор"
2.2 "Терминатор"
2.3 "Устройство обслуживания"
2.4 "Очередь"
2.5 "Коммутирующий блок"
2.6 "Копирующий блок"
2.7 "Компонующий блок"
2.8 "Ожидающий блок"
3 Описание свойств блоков
3.1 "Блок"
3.2 "Характеристика генератора"
3.3 "Характеристика потока"
3.4 "Приоритет"
3.5 "Характеристика очереди"
3.6 "Характеристика коммутирующего блока"
3.7 "Выходы"
3.8 "Значение выходов"
3.9 "Ожидаемые транзакты"
4 Описание свойств модели
4.1 "Условия эксперимента"
5 Примеры
5.1 Пример 1
5.2 Пример 2
5.3 Пример 3
5.4 Пример 4
6 Литература

1 Работа в визуальной среде

1.1 Концепция построения модели в визуальной среде

Модель в визуальной среде представляет собой сеть (рисунок 5.10). В узлах сети находятся блоки модели, а соединяющие линии - связи между блоками. Связь блоков представляет собой соединение выхода блока с входом другого блока. Отношение входа блока к выходам других блоков нужно рассматривать как один ко многим. Направление движения транзактов между блоками осуществляется от выхода блока к входу другого блока, а направление движения транзактов в сети - от "Генераторов" к "Терминатору". В сети не допускаются контуры, в которых могут циркулировать транзакты, так как время срабатывания некоторых блоков визуальной среды равно нулю и симулятор не может определить, в каком блоке находится транзакт (транзакт "размыт" по блокам).

Начало сети или модели СМО представляют блоки "Генераторы", а конец модели блок "Терминатор", причем блок "Терминатор" в модели присутствует только в одном экземпляре.

1.2 Выбор блока или связи

Если в тексте говорится о выборе таких объектов модели, как блок или связь, то подразумевается следующий механизм: нужно навести на объект указатель "мыши" и щелкнуть на нем левой клавишей. В визуальной среде невозможно за один раз выбрать несколько объектов.

1.3 Добавление блока

Добавить блок в модель можно с помощью окна "Блоки" (рисунок 1.1). В этом окне находятся все доступные блоки для построения модели. Механизм добавления - перетаскивание манипулятором нужного блока из окна "Блоки" в область проектирования модели. Если при добавлении нового блока ему не задано имя, то он не сможет получить связь с другими блоками.

Рисунок 1.1
Рисунок 1.1

1.4 Удаление блока

Для того чтобы удалить блок, нужно выбрать удаляемый блок и из меню приложения "Блоки" выполнить команду "Удалить". Существует альтернативный способ удаления блока - через его контекстное меню, применив ту же команду.

1.5 Редактирование имени блока

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

Рисунок 1.2
Рисунок 1.2

1.6 Добавление и изменение связи между блоками

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

Рисунок 1.3
Рисунок 1.3

Другой способ, позволяющий изменить связь, - выбираем связь. Из меню приложения "Связь" выполнить команду "Изменить", появится окно "Изменить блок приемник" (рисунок 1.4). Эту же команду можно выполнить из контекстного меню связи.

Рисунок 1.4
Рисунок 1.4

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

1.7 Удаление связи между блоками

Для удаления связи ее нужно выбрать. После этого действия из меню приложения "Связь" выполнить команду "Удалить" или запустить эту команду из контекстного меню связи.

1.8 Свойства блоков

Свойства блоков представляют набор вкладок, на которых можно произвести редактирование атрибутов блока. Для того чтобы получить доступ к свойствам блока, нужно выполнить следующие операции: выбрать блок и из меню приложения "Блок" выполнить команду "Свойства…". Последнюю команду можно выполнить и из контекстного меню блока.

1.9 Свойства модели

Для получения доступа к свойствам модели, нужно из меню приложения "Модель" выполнить команду "Свойства…" или запустить ее из контекстного меню области проектирования. Также существует и более быстрый способ получения свойств модели: двойной щелчок левой клавишей "мыши" в области проектирования.

1.10 Запуск модели

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

Рисунок 1.5
Рисунок 1.5

1.11 Отчет о запуске модели

Если в окне "Запуск модели" (рисунок 1.5) установлен флаг "Показать отчет о запуске после моделирования", то отчет будет показан после завершения моделирования, иначе отчет придется запустить вручную, нажав кнопку "Отчет". Окно "Отчет о запуске модели" состоит из трех таблиц (вкладок).

Таблица "Блоки" описывает атрибуты и общую статистику для всех блоков модели, накопленную за время моделирования. Таблица имеет следующие поля: "Номер блока", "Имя блока", "Тип блока", "Количество транзактов, вошедших в блок", "Количество транзактов, вышедших из блока", "Количество транзактов, оставшихся на конец периода моделирования".

В таблице "Устройства обслуживания" содержится статистика о блоках "Устройства обслуживания". Таблица имеет следующие поля: "Номер устройства", "Имя устройства", "Количество транзактов, прошедших через устройство", "Коэффициент использования устройства", "Среднее время задержки или обработки одного транзакта в устройстве обслуживания", "Состояние готовности устройства на конец периода моделирования", "Количество транзактов, ожидающих устройство в конце периода моделирования".

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

2 Описание блоков визуальной среды

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

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

Рисунок 2.1
Рисунок 2.1

2.1 "Генератор"

Генерирует (вводит) транзакты в систему.

Таблица 2.1
Наличие входа Нет
Количество выходов 1
Свойства "Блок"
"Характеристика генератора"
"Характеристика потока"

2.2 "Терминатор"

Уничтожает (выводит) транзакты из системы.

Таблица 2.2
Наличие входа Да
Количество выходов 0
Свойства "Блок"

2.3 "Устройство обслуживания"

Задерживает транзакт на время.

Таблица 2.3
Наличие входа Да
Количество выходов 1
Свойства "Блок"
"Характеристика потока"
"Приоритет"

2.4 "Очередь"

Организует очередь транзактов.

Таблица 2.4
Наличие входа Да
Количество выходов 1
Свойства "Блок"
"Характеристика очереди"
"Приоритет"

2.5 "Коммутирующий блок"

Изменяет направление движения транзактов согласно режиму.

Таблица 2.5
Наличие входа Да
Количество выходов от 1 до 20
Свойства "Блок"
"Характеристика коммутирующего блока"
"Выходы"
"Значение выходов"
"Приоритет"

2.6 "Копирующий блок"

Генерирует N копий входящего транзакта.

Таблица 2.6
Наличие входа Да
Количество выходов от 1 до 20
Свойства "Блок"
"Выходы"
"Значение выходов"
"Приоритет"

2.7 "Компонующий блок"

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

Таблица 2.7
Наличие входа Да
Количество выходов 1
Свойства "Блок"
"Ожидаемые транзакты"
"Приоритет"

2.8 "Ожидающий блок"

Собирает N транзактов одного ансамбля и пропускает их одновременно в следующий блок.

Таблица 2.8
Наличие входа Да
Количество выходов 1
Свойства "Блок"
"Ожидаемые транзакты"
"Приоритет"

3 Описание свойств блоков

3.1 "Блок"

На вкладке "Блок" (рисунок 3.1) можно редактировать имя блока.

Рисунок 3.1
Рисунок 3.1

3.2 "Характеристика генератора"

Вкладка "Характеристика генератора" (рисунок 3.2) позволяет редактировать параметры блока "Генератор".

Рисунок 3.2
Рисунок 3.2

3.3 "Характеристика потока"

На вкладке "Характеристика потока" (рисунок 3.3) можно задать закон поступления/обслуживания: детерминированный, равномерный, специальный; минимальное и максимальное значение случайной величины в случае равномерного закона, а при специальном законе - интервалы генерируемой величины. При выборе детерминированного закона его интервал задается в поле "Минимальное значение".

Рисунок 3.3
Рисунок 3.3

Кнопка "Тест" является проверкой заданного закона (происходит тест функции симулятора), то есть при нажатии появляется окно с гистограммой распределения случайной величины (рисунок 3.4).

Рисунок 3.4
Рисунок 3.4

3.4 "Приоритет"

Вкладка "Приоритет" (рисунок 3.5) присутствует во всех блоках, через которые может пройти транзакт. Транзакты в системе могут быть без приоритета, либо с относительным приоритетом. Приоритет может быть только положительным числом, и самое низкое его значение равно нулю.

Рисунок 3.5
Рисунок 3.5

3.5 "Характеристика очереди"

На вкладке "Характеристика очереди" (рисунок 3.6) можно задать дисциплину очереди (раньше поступил - раньше обслужился, последний поступил - первый обслужился, выбор из очереди случайный или по приоритету). Также возможно задать фиксированный размер очереди.

Рисунок 3.6
Рисунок 3.6

3.6 "Характеристика коммутирующего блока"

Вкладка "Характеристика коммутирующего блока" (рисунок 3.7) используется для задания условия передачи транзактов.

Рисунок 3.7
Рисунок 3.7

3.7 "Выходы"

На вкладке "Выходы" (рисунок 3.8) можно изменить количество выходов у блока.

Рисунок 3.8
Рисунок 3.8

3.8 "Значение выходов"

Вкладка "Значение выходов" (рисунок 3.9) позволяет задать выходам блока значения и взаимодействует со свойством "Выходы".

Рисунок 3.9
Рисунок 3.9

3.9 "Ожидаемые транзакты"

Вкладка "Ожидаемые транзакты" (рисунок 3.10) позволяет задать количество ожидаемых транзактов.

Рисунок 3.10
Рисунок 3.10

4 Описание свойств модели

4.1 "Условия эксперимента"

На вкладке "Условия эксперимента" (рисунок 4.1) можно задать условия эксперимента. К ним относятся условия завершения моделирования по времени ли по числу вышедших транзактов из системы, а также установка нужного количества запусков (имитаций) модели.

Рисунок 4.1
Рисунок 4.1

5 Примеры

В этом разделе приводятся примеры имитационных моделей СМО, построенных с использованием языка GPSS и визуальной среды.

5.1 Пример 1

Заявки поступают в систему массового обслуживания через время, равное 9 единиц. Обработка (обслуживание) каждой заявки занимает 7 единиц времени. После обработки заявки покидают систему. Провести обработку 150 заявок.

Загрузить модели GPSS и визуальной среды.

Программа GPSS на рисунке 5.1.

SIMULATE
10          GENERATE     9
20          SEIZE        1
30          ADVANCE      7
40          RELEASE      1
50          TERMINATE    1
START 150
END

Рисунок 5.1

Стандартный отчет после выполнения GPSS программы на рисунке 5.2.

     START_TIME    END_TIME  BLOCKS    FACILITIES  STORAGES   FREE_MEMORY
            0         1357      5           1          0         19504


 LINE       LOC          BLOCK_TYPE       ENTRY_COUNT   CURRENT_COUNT   RETRY
  10         1            GENERATE              150              0         0
  20         2            SEIZE                 150              0         0
  30         3            ADVANCE               150              0         0
  40         4            RELEASE               150              0         0
  50         5            TERMINATE             150              0         0


FACILITY    ENTRIES  UTIL.   AVE._TIME AVAILABLE  OWNER PEND INTER RETRY DELAY
  1            150  0.773        7.00      1         0   0     0     0     0

Рисунок 5.2

Вид модели в визуальной среде представлен на рисунке 5.3.

Рисунок 5.3
Рисунок 5.3

Отчет визуальной среды на рисунке 5.4.

Количество блоков в модели: 3
Время моделирования: 1357
Количество транзактов, вышедших из системы: 150
Количество транзактов, оставшихся в системе на конец периода моделирования: 0
Таблица - "Блоки"
Номер блока Имя блока Тип блока Количество транзактов, вошедших в блок Количество транзактов, вышедших из блока Количество транзактов, оставшихся на конец периода моделирования
1 Generate Генератор 0 150 0
2 1 Устройство обслуживания 150 150 0
3 Terminate Терминатор 150 0 0
Таблица - "Устройства обслуживания"
Номер устройства Имя устройства Количество транзактов, прошедших через устройство Коэффициент использования устройства Среднее время обработки или задержки одного транзакта в устройстве обслуживания Состояние готовности устройства в конце периода моделирования Количество транзактов, ожидающих устройство в конце периода моделирования
1 1 150 0.773 7.00 Свободен 0

Рисунок 5.4

5.2 Пример 2

Время поступления заявок в систему массового обслуживания от 7 до 11 мин., а время обслуживания от 5 до 9 мин. Поступление и обслуживание заявок осуществляется по равномерному закону. Время работы системы 120 мин.

Загрузить модели GPSS и визуальной среды.

Программа GPSS на рисунке 5.5.

SIMULATE
10          GENERATE     120
20          TERMINATE    1
30          GENERATE     9,2
40          SEIZE        1
50          ADVANCE      7,2
60          RELEASE      1
70          TERMINATE
START 1
END

Рисунок 5.5

Стандартный отчет после выполнения GPSS программы на рисунке 5.6.

     START_TIME    END_TIME  BLOCKS    FACILITIES  STORAGES   FREE_MEMORY
            0          120      7           1          0         19104


 LINE       LOC          BLOCK_TYPE       ENTRY_COUNT   CURRENT_COUNT   RETRY
  10         1            GENERATE                1              0         0
  20         2            TERMINATE               1              0         0
  30         3            GENERATE               13              0         0
  40         4            SEIZE                  13              0         0
  50         5            ADVANCE                13              1         0
  60         6            RELEASE                12              0         0
  70         7            TERMINATE              12              0         0


FACILITY    ENTRIES  UTIL.   AVE._TIME AVAILABLE  OWNER PEND INTER RETRY DELAY
  1             13  0.691        6.38      1        14   0     0     0     0

Рисунок 5.6

Вид модели в визуальной среде представлен на рисунке 5.3. Отчет визуальной среды на рисунке 5.7.

Количество блоков в модели: 3
Время моделирования: 120
Количество транзактов, вышедших из системы: 12
Количество транзактов, оставшихся в системе на конец периода моделирования: 1
Таблица - "Блоки"
Номер блока Имя блока Тип блока Количество транзактов, вошедших в блок Количество транзактов, вышедших из блока Количество транзактов, оставшихся на конец периода моделирования
1 Generate Генератор 0 13 0
2 1 Устройство обслуживания 13 12 1
3 Terminate Терминатор 12 0 0
Таблица - "Устройства обслуживания"
Номер устройства Имя устройства Количество транзактов, прошедших через устройство Коэффициент использования устройства Среднее время обработки или задержки одного транзакта в устройстве обслуживания Состояние готовности устройства в конце периода моделирования Количество транзактов, ожидающих устройство в конце периода моделирования
1 1 12 0.700 6.46 Занят 0

Рисунок 5.7

5.3 Пример 3

Смоделировать процесс прохождения 100 деталей на производственном участке сборочного цеха. На участок сборки подшипников поступают обоймы и шарики с интервалом времени 25 +/- 4 единицы. На контроль обоймы затрачивается 4 +/- 1 единицы времени; контроль шариков осуществляется последовательно со временем 2 +/- 1 единицы времени на шарик. Операция сборки требует одновременного поступления обоймы и шариков и производится со временем 4 +/- 2 единицы. В одной обойме 8 шариков. Все процессы подчиняются равномерному закону [1].

Загрузить модели GPSS и визуальной среды.

Программа GPSS на рисунке 5.8.

SIMULATE
10          GENERATE     25,4,,100
20          SPLIT        8,CHAN2
30 CHAN1    SEIZE        1
40          ADVANCE      4,1
50          RELEASE      1
60          TRANSFER     ,COMM
70 CHAN2    SEIZE        2
80          ADVANCE      2,1
90          RELEASE      2
100         GATHER       8
110 COMM    ASSEMBLE     9
120 CHAN3   SEIZE        3
130         ADVANCE      4,2
140         RELEASE      3
150 EXIT    TERMINATE    1
START 100
END

Рисунок 5.8

Стандартный отчет после выполнения GPSS программы на рисунке 5.9.

     START_TIME    END_TIME  BLOCKS    FACILITIES  STORAGES   FREE_MEMORY
            0         2512     15           3          0         17376


 LINE       LOC          BLOCK_TYPE       ENTRY_COUNT   CURRENT_COUNT   RETRY
  10         1            GENERATE              100              0         0
  20         2            SPLIT                 100              0         0
  30        CHAN1         SEIZE                 100              0         0
  40         4            ADVANCE               100              0         0
  50         5            RELEASE               100              0         0
  60         6            TRANSFER              100              0         0
  70        CHAN2         SEIZE                 800              0         0
  80         8            ADVANCE               800              0         0
  90         9            RELEASE               800              0         0
  100        10           GATHER                800              0         0
  110       COMM          ASSEMBLE              900              0         0
  120       CHAN3         SEIZE                 100              0         0
  130        13           ADVANCE               100              0         0
  140        14           RELEASE               100              0         0
  150       EXIT          TERMINATE             100              0         0


FACILITY    ENTRIES  UTIL.   AVE._TIME AVAILABLE  OWNER PEND INTER RETRY DELAY
  1            100  0.156        3.92      1         0   0     0     0     0
  2            800  0.636        2.00      1         0   0     0     0     0
  3            100  0.151