![](/user_photo/2706_HbeT2.jpg)
- •Предисловие
- •Введение
- •Глава 1. Модели массового обслуживания
- •1.1. Системы массового обслуживания и их характеристики
- •1.2. Системы c одним устройством обслуживания
- •1.3. Основы дискретно-событийного моделирования cmo
- •1.4. Многоканальные системы массового обслуживания
- •Переменная vаr1, экспоненциальное распределение
- •Глава 2. Вероятностные сети систем массового обслуживания
- •2.1. Общие сведения о сетях
- •2.2. Операционный анализ вероятностных сетей
- •2.3. Операционные зависимости
- •2.4. Анализ узких мест в сети
- •Глава 3. Вероятностное моделирование
- •3.1. Метод статистических испытаний
- •3.2. Моделирование дискретных случайных величин
- •3.3. Моделирование непрерывных случайных величин
- •3.4. Сбор статистических данных для получения оценок характеристик случайных величин
- •3.5. Определение количества реализаций при моделировании случайных величин
- •Глава 4. Система моделирования gpss
- •4.1. Объекты
- •4.2. Часы модельного времени
- •4.3. Типы операторов
- •4.4. Внесение транзактов в модель. Блок generate
- •4.5. Удаление транзактов из модели. Блок terminate
- •4.6. Элементы, отображающие одноканальные обслуживающие устройства
- •4.7. Реализация задержки во времени. Блок advance
- •4.8. Сбор статистики об ожидании. Блоки queue, depart
- •4.9. Переход транзакта в блок, отличный от последующего. Блок transfer
- •4.10. Моделирование многоканальных устройств
- •4.11. Примеры построения gpss-моделей
- •4.12. Переменные
- •4.13. Определение функции в gpss
- •4.14. Стандартные числовые атрибуты, параметры транзактов. Блоки assign, mark, loop
- •Примеры фрагментов gpss-моделей c использованием сча и параметров гранзактов
- •4.15. Изменение приоритета транзактов. Блок priority
- •4.16. Организация обслуживания c прерыванием. Блоки preempt и return
- •4.17. Сохраняемые величины
- •4.18. Проверка числовых выражений. Блок test
- •4.19. Определение и использование таблиц
- •4.20. Косвенная адресация
- •4.21. Обработка транзактов, принадлежащих одному семейству
- •4.22. Управление процессом моделирования в системе gpss
- •4.23. Списки пользователей
- •4.24. Блоки управления потоками транзактов logic, gate lr, gate ls и gate
- •4.25. Организация вывода временных рядов из gpss-модели
- •4.26. Краткая характеристика языка plus
- •4.27. Команды gpss WorId
- •4.28. Диалоговые возможности gpss World
- •4.29. Отличия между gpss World и gpss/pc
- •Глава 5. Моделирование вычислительных и операционных систем
- •5.1. Операционные системы компьютеров
- •5.2. Сети и системы передачи данных
- •5.3. Проблемы моделирования компьютеров и сетей
- •Глава 6. Основы моделирования процессов
- •6.1. Производственные процессы
- •6.2. Распределительные процессы
- •6.3. Процессы обслуживания клиентов
- •6.4. Процессы управления разработками проектов
- •Глава 7. Задания для самостоятельной работы Задание 1. Моделирование разливной линии
- •Задание 2 [10]. Моделирование контроля и настройки телевизоров
- •Задание 3. Моделирование работы кафе
- •Задание 4. Моделирование работы обрабатывающего цеха
- •Задание 5. Моделирование работы обрабатывающего цеха
- •Задание 6. Моделирование работы обрабатывающего цеха
- •Задание 7. Моделирование работы cmo
- •Задание 8. Моделирование функций
- •Задание 9 [10]. Моделирование системы обслуживания
- •Задание 10 [16]. Моделирование системы автоматизации проектирования
- •Задание 11 [16]. Моделирование работы транспортного цеха
- •Задание 12 [16]. Моделирование системы передачи разговора
- •Задание 13 [16]. Моделирование системы передачи данных
- •Задание 14 [16]. Моделирование узла коммутации сообщений
- •Задание 15 [16]. Моделирование процесса сборки
- •Задание 16 [16]. Моделирование работы цеха
- •Задание 17 [16]. Моделирование системы управления производством
- •Задание 18. Моделирование производственного процесса
- •Задание 19. Моделирование работы заправочной станции
- •Задание 20. Моделированиеработы станции технического обслуживания
- •Задание 21. Моделирование работы станции скорой помощи
- •Задание 22. Моделирование работы госпиталя
- •Задание 23. Моделирование работы маршрутных такси
- •Задание 24. Моделирование работы печатной системы
- •Задание 25. Моделирование процесса сборки пк
- •Глава8. Проектирование имитационных моделей c помощью интерактивной системы имитационного моделирования
- •8.1. Структура интерактивной системы имитационного моделирования
- •8.2. Построение концептуальной схемы модели
- •8.3. Параметрическая настройка модели
- •8.4. Генератор формул
- •8.5. Управление экспериментом
- •8.6. Запуск эксперимента и обработка результатов моделирования
- •8.7. Управление проектами и общей настройкой системы
- •8.8. Пример построения модели средствами iss 2000
- •Глава 9. Технология имитационного моделирования
- •9.1. Имитационные проекты
- •9.2. Организация экспериментов
- •9.3. Проблемы организации имитационных экспериментов
- •9.4. Оценка точности результатов моделирования
- •9.5. Факторный план
- •9.6. Дисперсионный анализ anova в планировании экспериментов
- •9.7. Библиотечная процедура anova
- •9.8. Технология проведение дисперсионного анализа в системе gpss World
- •9.9. Особенности планирования экспериментов
- •9.10. Нахождение экстремальных значений на поверхности отклика
- •9.11. Организация экспериментов в gpss WorId
- •9.L2. Выбор наилучшего варианта структуры системы
- •Глава 10. Примеры принятия решений c помощью имитационного моделирования
- •10.1. Моделирование производственного участка
- •10.2. Моделирование технологического процесса ремонта и замены оборудования
- •Приложение Системные сча
- •Сча транзактов
- •Сча блоков:
- •Сча одноканальных устройств:
- •Список литературы
- •Глава 9. Технология имитационного моделирования 167
- •Глава 10. Примеры принятия решений c помощью имитационного моделирования 203
4.7. Реализация задержки во времени. Блок advance
Перевод c английского языка блока ADVANCE (ЗАДЕРЖАТЬ) – продвигать, А не задерживать. Этот блок действительно продвигает ЧАСЫ модельного времени на некоторое значение, но фактически он осуществляет задержку продвижения транзакта в течение некоторого интервала времени. Обычно этот интервал задается случайной величиной.
В GPSS возможны следующие варианты распределения времени обслуживания:
1) детерминированное (постоянное);
2) равномерное распределение;
3) другие распределения.
Как и при использовании блока GENERATE особо рассматривается равномерное распределение случайных величин. Применение более сложных видов распределений требует использования дополнительных функций (см. параграф 4.13).
Формат блока:
ADVANCE A[,B]
Таблица 4.6
Операнд |
Значение |
Значение по умолчанию |
А |
Среднее время задержки на обслуживание (число, СЧА) |
0 |
В |
Половина поля допуска равномерно распределенного времени задержки (число, СЧА) |
0 |
Блок никогда не препятствует входу транзакта. Любое число транзактов может находиться в этом блоке одновременно. Когда транзакт попадает в такой блок, выполняется соответствующая подпрограмма и вычисляется время пребывания в нем транзакта. Вновь прибывший транзакт никак не влияет на уже находящийся в блоке транзакт.
Если время пребывания в блоке равно нулю, то вместо задержки в блоке ADVANCE интерпретатор сразу же пытается переместить этот транзакт в следующий блок. Более подробно о взаимодействии блока ADVANCE c интерпретатором описано в параграфе 4.21.
1. В GPSS/PC не допускаются дробные значения времени задержки.
2. Отрицательное значение задержки всегда вызывает ошибку.
Пример 4.2
Использование блока ADVANCE:
ADVANCE 30,5
Время задержки транзакта в этом блоке – случайная величина, равномерно распределенная на интервале [25, 35], которая принимает одно из 11 целых значений.
Пример 4.3
Классический случай использования последовательности SEIZE – ADVANCE – RELEASE:
Транзакт, двигаясь по этой цепочке блоков, займет устройство c именем PRIB, задержится там на 16±4 единицы времени и затем покинет его. После того как транзакт войдет в блок RELEASE и соответствующая этому блоку подпрограмма закончится, интерпретатор попытается переместить транзакт в следующий блок модели и следующий транзакт может уже использовать устройство PRIB.
Блоки ADVANCE можно располагать в любых местах программы, А не только между блоками SEIZE и RELEASE.
4.8. Сбор статистики об ожидании. Блоки queue, depart
Эти блоки обеспечивают в GPSS возможность автоматического сбора статистических данных, описывающих вынужденное ожидание, которое может происходить время от времени в различных точках модели.
Система моделирования GPSS обеспечивает возможность сбора статистики c помощью такого средства, как регистратор очереди.
При использовании регистратора очереди в тех точках модели, где число ресурсов ограничено, интерпретатор автоматически начинает собирать различную информацию об ожидании c помощью СЧА, А именно:
1) число входов транзактов в очередь;
2) количество транзактов, которые фактически присоединились к очереди и сразу ее покинули, т.е. имели время ожидания равное нулю;
3) максимальная длина очереди;
4) среднее число ожидавших транзактов;
5) среднее время ожидания тех транзактов, которым пришлось ждать.
В модели может быть несколько регистраторов очередей, различающихся именами. Правила присвоения имен те же, что и для устройств. Разработчик вносит регистратор очереди в модель c помощью пары взаимодополняющих блоков:
Таблица 4.7
Операнд
|
Значение |
Результат по умолчанию |
А |
Имя очереди, в которую необходимо стать транзакту или которую надо покинуть (числовое или символическое имя, CЧА)_ |
Ошибка |
В |
Число единиц, на которое увеличивается (уменьшается) длина очереди (число, СЧА) |
1 |
При входе транзакта в блок QUEUE (СТАТЬ В ОЧЕРЕДЬ) выполняются четыре действия:
1 ) счетчик входов для данной очереди увеличивается на В;
2) длина очереди (счетчик текущего содержимого) для данной очереди увеличивается на В;
3) значение текущей длины очереди хранится в стандартном числовом атрибуте Q$<имя очереди>;
4) транзакт присоединяется к очереди c запоминаем ее имени и значения текущего модельного времени.
Транзакт перестает быть элементом очереди только после того, как он переходит в блок DEPART (ПОКИНУТЬ ОЧЕРЕДЬ) соответствующей очереди. Когда это происходит, интерпретатор выполняет такие операции:
1) длина очереди соответствующей очереди уменьшается на В;
2) используя привязку к значению времени, определяет: является ли время, проведенное транзактом в очереди, нулевым; если да, то такой транзакт по определению является транзактом c нулевым пребыванием в очереди и одновременно изменяется счетчик нулевых вхождении,
3) ликвидируется «привязка» транзакта к очереди.
Если в модели используются объекты типа «очередь», то в файле стандартной статистики будет представлена информация об этих объектах. В конце моделирования интерпретатор автоматически выдает статистические данные: значение счетчика входов, максимальное значение длины очереди, среднее значение длины очереди, текущее значение длины очереди в конце периода моделирования, среднее значение времени нахождения в очереди и т.д.
Статистическая информация об ожидании выдается в следующем виде:
Пример 4.4
Пусть необходимо собрать статистику об ожидании в очереди при обслуживании устройством PRIB, тогда в сегмент модели будут введены блоки QUEUE и DEPART:
В этом примере все транзакты, попадающие в устройство, должны пройти через пару QUEUE – DEPART даже тогда, когда устройство свободно и его можно сразу же занять.
Пример 4.5
Увеличение на единицудлины Q$QPR1 очереди QPR1:
QUEUE QPR1
Увеличение на две единицы длины Q$QPR2 очереди QPR2:
QUEUE QPR2,2
Уменьшение на единицу длины QSQWORKER очереди QWORKER:
DEPART QWORKER
1. Когда транзакт входит в блок QUEUE, то ищется очередь c именем, определенным операндом А. При необходимости очередь создается.
2. Блок QUEUE не поддерживает список членов очереди, он только добавляет единицы к длине очереди.
3. Использование регистратора очереди необязательно. C eгo помощью интерпретатор собирает лишь статистику об ожидании. Если же регистратор не используется, то статистика не собирается, но везде, где должна возникать очередь, она возникает. Ожидание является следствием состояния устройства, А не следствием использования регистратора. Если в планы не входит обработка статистических данных об очередях, то лучше не собирать статистику – это сэкономит время, расходуемое на моделирование.
4. Один и тот же транзакт может одновременно увеличить длину нескольких очередей.
5. При выходе транзакта из очереди через блок DEPART транзакту не обязательно уменьшать длину очереди на ту же величину, на которую он увеличил ее при входе в блок QUEUE. Но в итоге число входов в очередь должно равняться числу выходов из нее.