- •Язык имитационного моделирования gpssWorld
- •Базовые понятия системы имитационного моделирования gpssWorld.
- •Системные числовые атрибуты
- •Логические и условные операторы
- •Формат записи операторов языка gpss
- •Операторы, имитирующие работу динамической категории объектов.
- •Операторы, имитирующие работу аппаратной категории объектов.
- •Операторы, имитирующие работу статистической категории объектов
- •Операторы операционной категории
- •Блок выбора объекта из однородной совокупности объектов по заданному условию
- •Блоки, изменяющие маршрут движения транзактов.
- •Размножение транзактов.
- •Операторы вычислительной категории
- •Операторы, имитирующие работу группирующей категории
- •Операторы, имитирующие работу запоминающей категории
- •Примеры построения модели на языке gpssWorld
- •Пример №1
- •Пример №2
- •Пример №3
- •Пример №4
- •Пример №5
- •Пример №6
- •Редактор форм
- •Введение
- •Создание формы и указание модели
- •Ввод информации о модели
- •Настройка динамического мониторинга
- •Добавление пользовательского объекта мониторинга
- •Построение формы ввода одного эксперимента
- •Корневая панель
- •Команда «Надпись»
- •Команда «Группа»
- •Команда «Элемент управления вкладками»
- •Команда «Скрывающаяся панель»
- •Команда «Изображение»
- •Команда «Секция ввода»
- •Привязка к операнду
- •Связывание элемента диалога и элемента «надпись»
- •Добавление/удаление факторов
- •Команда «Выпадающий список»
- •Команда «Галка»
- •Команда «Кнопка»
- •Форма планирования экспериментов
- •Принципы планирования
- •Добавление факторов
- •Добавление показателей
- •Выбор серии экспериментов
- •Ручной план эксперимента
- •Автоматическое построение плана с использованием шага
- •Работа с exe-модулем
- •Ошибки во время моделирования
- •Анализ результатов
- •Открытие результатов
- •Анализ результатов моделирования одиночного эксперимента
- •Стандартный отчет
- •План полного факторного эксперимента.
- •План дробного факторного эксперимента
- •Планы второго порядка
- •Ортогональный центральный композиционный план
- •Ротатабельный центральный композиционный план
- •Планы Коно
- •Планы Кифера
- •Использование пакета Statistica10 для статистической обработки экспериментальных данных
- •Вычисление основных статистических характеристик
- •Оценка нормальности распределения
- •Необходимость проверки нормальности распределения анализируемых данных
- •Проверка на нормальность распределения анализируемых данных
- •Тесты Колмогорова – Смирнова и Шапиро – Уилка
- •График нормальных вероятностей
- •Корреляционный анализ
- •Коэффициент корреляции Пирсона
- •Коэффициент корреляции Спирмена
- •Факторный анализ
- •Выбор числа факторов
- •Кластерный анализ
- •Стандартизация данных
- •Кластерный анализ
- •Регрессионный анализ
- •Оптимизация
- •Пример моделирования предметной области и анализ результатов
- •Модель процесса сборки пк
- •Разработка модели процесса сборки пк
- •Моделирование процесса сборки пк
- •Настройки модели
- •Корреляционный анализ
- •Регрессионный анализ
- •Задание
- •Задание на лабораторную работу №1
- •Задания на лабораторную работу №2
- •Задание на лабораторную работу №3
- •Варианты заданий
- •Варианты первых заданий
- •Варианты вторых заданий
- •Варианты третьих заданий
Операторы, имитирующие работу группирующей категории
Группирующую категорию образуют группы и списки. На языке GPSSWимеются различные по своему функциональному назначению списки, в том числе текущих событий, будущих событий, прерванных транзактов, транзактов, ожидающих в очереди. Наибольший интерес для программиста представляют списки пользователя, которые можно использовать для повышения эффективности работы программы. Списки пользователя позволяют поместить в них некоторые транзакты, которые не могут передвигаться в модели, в чем заранее уверен программист, и они выводятся из активного состояния, то есть переводятся в пассивное состояние. Этим самым они фактически лишаются регулярного «просмотра» диспетчером модели, за счет чего происходит сокращение времени моделирования. Снова вернуть их в активное состояние может только программист, предусмотрев для этого возможность их вывода из списка пользователя с помощью каких-то активных транзактов. Для изменения состояния списков пользователя применяют следующие блоки, представленные в таблице 1 .16.
Таблица 1.16. Операторы, имитирующие работу группирующей категории
№ |
Блок |
Описание |
1 |
LINKA,B,C |
Посылка активных транзактов в список пользователя, |
2 |
UNLINK O A,B,C,D,E,F |
Вывод пассивных транзактов из списка пользователя |
В операнде А данных блоков записывается идентификатор списка пользователя. В операнде В блока LINKуказывается дисциплина помещения транзакта в список пользователя. Допустимы следующие дисциплины:
FIFO– первый пришел, первым вышел.
LIFO– последний пришел, первым вышел.
PR– чем выше приоритет, тем ближе к выходу из списка пользователя устанавливается транзакт.
Р – чем меньше число в параметре, тем ближе к выходу из списка пользователя устанавливается транзакт; в данном режиме требуется обязательно указать идентификатор параметра.
Ввод в список пользователя любого нового транзакта приводит к пересмотру очереди транзактов по выходу их из списка пользователя. Транзакт, вошедший в блок LINK, пытается войти в блок, метка которого указана в операнде С и таким образом, остаться активным. Если же это не удается, он переводится в пассивное состояние по правилу, заданному в операнде В.
Вывод пассивных транзактов из списка пользователя производится при поступлении какого-либо активного транзакта в блок UNLINK. В операндеOблокаUNLINKзаписывается один из условных операторов отношений, или не записывается ничего. В операнде А блокаUNLINKуказывается идентификатор списка пользователя. В операнде В указывается метка, к которой направляются пассивные транзакты из списка, а активный транзакт переходит к следующему блоку. В операнде С указывается количество пассивных транзактов, удаляемых из списка пользователя. Если удаляются все транзакты, то записывается символALL. В операндеDуказывается проверяемое значение. В операндеEуказывается контрольное значение, которое сравнивается с содержимым операндаD. В операндеFуказывается метка, к которой направляется транзакт в случае если по указанному условию в списке пользователя не удалось найти ни одного транзакта. Если в операндеFничего не указано, то транзакт в любом случае направляется к следующему блоку.
Примеры использования описанных выше блоков приведены в таблице 1 .17.
Таблица 1.17 Примеры использования операторов, имитирующих работу группирующей категории
Пример использования оператора |
Комментарии |
LINKONHOLD,FIFO |
Активный транзакт помещается в конец списка пользователя с именем ONHOLD |
UNLINK |
|