- •Предисловие
- •Введение
- •Глава 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.20. Косвенная адресация
Ранее были рассмотрены прямые способы адресации, когда:
1) номер объекта задается константой
2)номер объекта задается СЧА
Адресация может быть относительной и по отношению к самому блоку. Это осуществляется при помощи записи *+/-п. Например,
TRANSFER ,*+2
В этом случае сам блок TRANSFER является ориентировочным блоком. Транзакт пытается войти во второй, относительно блока TRANSFER, блок.
Подобные ссылки не зависят от свойств транзакта, обрабатываемого в данный момент времени. Использование прямой адресации может привести к введению большого числа дополнительных блоков только для того, чтобы записать номера объектов в СЧА, т.е. к увеличению объема модели. Существенным образом сократить объем модели и использовать зависимость номеров объектов от свойств транзактов позволяет косвенная адресация.
Общий формат косвенной адресации:
CЧA*CЧAj или CЧA*CЧA<имя>
Там, где допустимо использование СЧА, обычно могут использоваться и CЧA*CЧA.
При использовании косвенной адресации параметр P может опускаться.
Пример 4.46
SEIZE P*X1
Занять устройство, номер которого содержится в параметре транзакта, А номер параметра определяется значением ячейки X1.
SAVEVALUE l,X*P2
Поместить в ячейку c номером 1 значение, содержащееся в ячейке, номер которой определяется параметром 2.
Пример 4.47
В данной модели предполагается, что через некоторый узел сети проходят информационные сообщения грех типов, причем каждый из них характеризуется своим распределением числа символов. В модели первый параметр транзакта содержит тип сообщения, А второй параметр – число символов сообщения.
При использовании косвенной адресации при обращении к устройствам, МКУ или функциям через параметры приходится применять числовые значения имен. Транслятор GPSS/PC на этапе компиляции сам присваивает именам числовые значения, однако, при этом пользователь не контролирует такое присвоение. Для того, чтобы не возникали конфликты между числовыми значениями имен, присвоенных транслятором, и именами, заданных пользователем, необходимо использовать простое правило: в модели использовать имена либо только числовые, либо только символьные.
Назначение именам числовых значений осуществляется c помощью оператора EQU (аналог #define в языке программирования Си).
Пример 4.48
Необходимо занять МКУ, номер которого определяется в первом параметре транзакта. По логике функционирования модели занимаетсяодин из двух МКУ: SECTION_A или SECTION_B.
Пример 4.49
Рассмотрим приход клиентов в банк и их обслуживание кассирами. Время прихода клиентов задается функцией распределения ARRIVE. Для обслуживания открыто семь окошек кассиров, к каждому из них может образовываться очередь. Во время прихода клиента в банк, если хотя бы один кассир свободен, клиент сразу же подходит к этому кассиру. В противном случае он присоединяется к любой кратчайшей очереди на текущий момент. Порядок обслуживания клиентов из очереди – FIFO.
Обслуживание в кассе разделяется на пять видов операций, частота появления которых и среднее время обслуживания задаются функцией MEAN.
В модели c несколькими очередями могут возникнуть одновременные события прихода клиента и конца обслуживания кассиром. Если событие «приход» будет рассмотрено ранее события «конец обслуживания», то устройство в момент проверки будет считаться занятым и вновь прибывший клиент не сможет занять кассира. Поэтому необходимо обеспечить приоритетность в обработке события «освобождения кассира». Это можно сделать c помощью задания уровня приоритета (блок PRIORITY 1) между блоками GENERATE и ADVANCE.
Для реализации поиска свободного кассира используется блок TEST E, помеченный меткой NEXT, который проверяет, свободен ли кассир. Максимальный номер кассира запоминается в параметре гранзакта P5. По этому же параметру образуется цикл для проверки всех устройств (блок LOOP). Номер первого свободного кассира запоминается в параметре транзакта P3, и транзакт передается на обслуживание. Если все устройства заняты, то транзакт переходит к следующему блоку после LOOP. т.е. к блоку TEST, помеченному меткой SIT. Этот блок сравнивает длины очередей для всех устройств. Первоначально для сравнения в параметр P2 транзакта помещается число 1000. Аналогично организуется цикл по всем очередям c помощью параметра P1 транзакта. Первоначально туда помещается максимальный номер очереди. Если длина следующей просматриваемой очереди меньше предыдущей, то запоминается номер очереди в параметре P3 и ее длина в параметре P2 транзакта. После просмотра всех очередей (перехода к следующему блоку после LOOP) в этих параметрах окажется номер минимальной очереди и ее длина, соответственно.
Приведем текст соответствующей программы.
Отчет с результатами моделирования:
Гистограмма времени пребывания в системе приведена на рис.4.12
Рис. 4.12
Косвенная адресация является мощным инструментом языка GPSS, позволяющим существенно сократить размер модели и во многих случаях уложиться в ограничения для бесплатно распространяемых студенческих версий языка GPSS (в модели должно быть до 150 блоков).