- •Язык имитационного моделирования gpssWorld
- •Базовые понятия системы имитационного моделирования gpssWorld.
- •Системные числовые атрибуты
- •Логические и условные операторы
- •Формат записи операторов языка gpss
- •Операторы, имитирующие работу динамической категории объектов.
- •Операторы, имитирующие работу аппаратной категории объектов.
- •Операторы, имитирующие работу статистической категории объектов
- •Операторы операционной категории
- •Блок выбора объекта из однородной совокупности объектов по заданному условию
- •Блоки, изменяющие маршрут движения транзактов.
- •Размножение транзактов.
- •Операторы вычислительной категории
- •Операторы, имитирующие работу группирующей категории
- •Операторы, имитирующие работу запоминающей категории
- •Примеры построения модели на языке gpssWorld
- •Пример №1
- •Пример №2
- •Пример №3
- •Пример №4
- •Пример №5
- •Пример №6
- •Редактор форм
- •Введение
- •Создание формы и указание модели
- •Ввод информации о модели
- •Настройка динамического мониторинга
- •Добавление пользовательского объекта мониторинга
- •Построение формы ввода одного эксперимента
- •Корневая панель
- •Команда «Надпись»
- •Команда «Группа»
- •Команда «Элемент управления вкладками»
- •Команда «Скрывающаяся панель»
- •Команда «Изображение»
- •Команда «Секция ввода»
- •Привязка к операнду
- •Связывание элемента диалога и элемента «надпись»
- •Добавление/удаление факторов
- •Команда «Выпадающий список»
- •Команда «Галка»
- •Команда «Кнопка»
- •Форма планирования экспериментов
- •Принципы планирования
- •Добавление факторов
- •Добавление показателей
- •Выбор серии экспериментов
- •Ручной план эксперимента
- •Автоматическое построение плана с использованием шага
- •Работа с exe-модулем
- •Ошибки во время моделирования
- •Анализ результатов
- •Открытие результатов
- •Анализ результатов моделирования одиночного эксперимента
- •Стандартный отчет
- •План полного факторного эксперимента.
- •План дробного факторного эксперимента
- •Планы второго порядка
- •Ортогональный центральный композиционный план
- •Ротатабельный центральный композиционный план
- •Планы Коно
- •Планы Кифера
- •Использование пакета Statistica10 для статистической обработки экспериментальных данных
- •Вычисление основных статистических характеристик
- •Оценка нормальности распределения
- •Необходимость проверки нормальности распределения анализируемых данных
- •Проверка на нормальность распределения анализируемых данных
- •Тесты Колмогорова – Смирнова и Шапиро – Уилка
- •График нормальных вероятностей
- •Корреляционный анализ
- •Коэффициент корреляции Пирсона
- •Коэффициент корреляции Спирмена
- •Факторный анализ
- •Выбор числа факторов
- •Кластерный анализ
- •Стандартизация данных
- •Кластерный анализ
- •Регрессионный анализ
- •Оптимизация
- •Пример моделирования предметной области и анализ результатов
- •Модель процесса сборки пк
- •Разработка модели процесса сборки пк
- •Моделирование процесса сборки пк
- •Настройки модели
- •Корреляционный анализ
- •Регрессионный анализ
- •Задание
- •Задание на лабораторную работу №1
- •Задания на лабораторную работу №2
- •Задание на лабораторную работу №3
- •Варианты заданий
- •Варианты первых заданий
- •Варианты вторых заданий
- •Варианты третьих заданий
Операторы, имитирующие работу запоминающей категории
Операторы запоминающей категории представлены в таблице 1 .18.
Таблица 1.18. Операторы, имитирующие работу запоминающей категории
№ |
Блок |
Описание |
1 |
ASSIGN A,B,C |
Присвоение или изменение параметра транзакта |
2 |
INITIAL A,B |
Инициализация матрицы, логического ключа, ячейки или элемента матрицы |
3 |
SAVEVALUE A,B |
Изменение значения ячейки |
4 |
NAME EQU X |
Вычисление выражения и присвоение результата именованной величине |
Устанавливать или изменять значения параметров возможно с помощью блока ASSIGN.В полеА блокаASSIGN указывается номер или имя параметра, в полеВ - число или СЧА, модифицирующее значение параметра. В поле С может быть указана функция. После прохождения через блокASSIGN параметру транзакта будет присвоено значение величины из поляВ (режим замещения). В режиме увеличения или уменьшения значения параметра в полеА после номера (или имени) параметра указывается знак «плюс» или «минус», соответственно.
В начале программы начальные значения ячеек инициализируются в предложении INITIAL, имеющем следующий формат: INITIAL имя, значение.Здесь имя идентифицирует сохраняемую величину, которой присваивается указанное в поле В значение.
Для создания именованных величин используется команда EQU, имеющая следующий формат: Имя именованной величиныEQUвыражение.
Изменение содержимого ячеек происходит при прохождении транзактов через блок SAVEVALUE, который изменяет содержимое ячейки. При этом блок используется в режиме замещения или в режиме накопления. В режиме замещения в ячейку заносится новое значение, указанное в поле В блока SAVEVALUE. В режиме накопления содержимое ячейки увеличивается (уменьшается) на значение, указанное в поле В блока SAVEVALUE. В поле А блока SAVEVALUE приводится имя или номер модифицируемой ячейки.
Примеры использования описанных выше блоков приведены в таблице 1 .19.
Таблица 1.19 Примеры использования операторов, имитирующих работу запоминающей категории
Пример использования оператора |
Комментарии |
ASSIGN PARMETR_1,4 |
Значение 4 присваивается параметру входящего транзакта PARMETR_1 |
INITIAL X$X_1,58 |
Команда присваивает ячейке X_1 значение 58 |
SAVEVALUE X_1+,5 |
При прохождении транзакта через блок SAVEVALUE ячейка X_1 будет увеличена на 5 |
SAVEVALUE X_1,X$X_2 |
При прохождении транзакта через блок SAVEVALUE в ячейку X_1 будет записано значениеX_2 |
Примеры построения модели на языке gpssWorld
Пример №1
Интервалы прихода клиентов в парикмахерскую с одним креслом распределены равномерно: 18±6 мин. Время стрижки также распределено равномерно: 16±4 мин. Клиенты приходят в парикмахерскую, стригутся в порядке «первым пришел – первым обслужен» и затем уходят. Необходимо смоделировать работу парикмахерской по обслуживанию 100 клиентов.
Данная задача представляет собой систему массового обслуживания «Генератор транзактов-очередь- устройство», где под транзактами понимаются клиенты парикмахерской, а под устройством – кресло, сидя где будет происходить стрижка.
При составлении структурных схем модели будем придерживаться обозначений, представленных в таблице 2 .20.
Таблица 2.20 Условные обозначения
№ |
Условное обозначение |
Описание |
1 |
GT_N |
Генерация транзактов |
2 |
Q_N |
Очередь |
3 |
D_N |
Устройство |
4 |
M_N |
Память |
5 |
PR=N |
Приоритет |
6 |
P=N |
Вероятность |
Структурная схема примера представлена на рис. 2 .3
Рисунок 2.3 Структурная схема примера 1
Модель данной задачи представлена на рисунке 2 .4.
Рисунок 2.4 Программа примера 2.1
При наборе модели в расширенном редакторе GPSSWorldобратите внимание на автоматическое дополнение кода (см. Рисунок 2 .5).
Рисунок 2.5 Автоматическое дополнение кода
Для моделирования необходимо в меню «Моделирование» выбрать команду «Начать моделирование».
После начала процесса моделирования необходимо указать критерий останова процесса моделирования (в условиях данной задачи процесс моделирования завершается после обслуживания 100 клиентов). Для этого необходимо в меню «Моделирование» выбрать команду «START», в соответствующем окне ввести ее аргумент и нажать на кнопку «ОК» (см. Рисунок 2 .6)
Рисунок 2.6 Команда START
В принципе можно прописать команду START100 в самой модели а не вызывать данную команду из меню.
После завершения моделирования выдается стандартный отчет.
В разделе «Общая информация» отчёта указывается начальное и конечное абсолютное модельное время, количество блоков, устройств и памятей модели (см. Рисунок 2 .7).
Рисунок 2.7 Общая информация
В разделе «Имена» отчёта в левом столбце данных строк отчёта указывается имя объекта, а в правом номер, присвоенный ему при трансляции (см. Рисунок 2 .8).
Рисунок 2.8 Имена
В разделе «Блоки» (см. Рисунок 2 .9) отчёта в шести столбцах указываются следующие данные:
Метка;
Номер блока, присвоенный ему при трансляции (командам номер не присваивается);
Типа блока;
Количество входов транзактов в блок;
Количество транзактов, находившихся в блоке на момент окончания моделирования;
Количество транзактов, ожидающих выполнения специфических условий, зависящих от состояний конкретных блоков.
Рисунок 2.9 Блоки
Для устройств (см Рисунок 2 .10) в десяти столбцах отчёта указываются следующие данные:
Идентификатор устройства (имя или номер);
Количество транзактов, входивших в устройство;
Коэффициент использования устройства в долях;
Среднее время занятия устройства одним транзактом;
Состояние устройства в момент завершения моделирования по доступности (1 - доступно, 0 – не доступно);
Номер транзакта, занимающего устройство;
Количество транзактов, ожидающих возможности занять устройство с прерыванием других транзактов;
Количество транзактов, выполнение которых прервано на данном устройстве;
Количество транзактов, ожидающих выполнения специфического условия, которое зависит от данного устройства;
Количество транзактов, ожидающих возможности занять данное устройство, в том числе с помощью других блоков.
Рисунок 2.10 Устройства
Для очередей (см. Рисунок 2 .11) в девяти столбцах приводятся следующие данные:
Идентификатор очереди;
Максимальное содержимое очереди за время моделирования;
Текущее содержимое очереди в момент завершения моделирования;
Общее количество транзактов, входивших в очередь;
Общее количество транзактов, входивших в *очередь, с нулевым временем ожидания;
Взвешенное по времени моделирования среднее количество транзактов в очереди;
Среднее время ожидания в очереди одного транзакта;
Среднее время ожидания в очереди одного транзакта без учёта транзактов с нулевым временем задержки;
Количество транзактов, ожидающих выполнения специфического условия, зависящего от состояния очереди.
Рисунок 2.11 Очереди
Для списка будущих событий (см. Рисунок 2 .12) в восьми столбцах отчёта указываются следующие данные:
Номер каждого транзакта, находящегося в списке будущих событий;
Приоритет транзакта;
Время, когда планируется вывод транзакта из блока;
Номер семейства данного транзакта;
Номер блока, в котором находился транзакт на момент завершения моделирования;
Номер следующего блока, в который должен поступить данный транзакт;
Идентификатор параметров;
Содержимое параметра.
Рисунок 2.12 Будущие события
По содержимому отчёта сделаем заключение, что среднее время стрижки – 15.988 сравнительно ненамного отличается от заданного среднего значения – 16.0; коэффициент использования кресла – 0.867 также не на много отличается от отношения среднего времени обслуживания к среднему времени между поступлением клиентов – 0.888. Таким образом можно сделать заключение о том, что результаты моделирования не противоречат здравому смыслу.