![](/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.24. Блоки управления потоками транзактов logic, gate lr, gate ls и gate
Логические ключи (блок LOGIC). Логические ключи используются для моделирования объектов, имеющих всего два положения: «Включен» (set или 1 ) и «Выключен» (reset или 0).
Блок LOGIC используется для включения, выключения или инвертирования положения ключа. Положение ключа можно проверить любым транзактом в любой части модели.
Блок LOGIC имеет такой формат:
LOGIC Х А
Операнд А – номер логического ключа; он может быть именем, положительным целым, СЧА или CЧA*CЧA.
Когда транзакт входит в блок LOGIC, положение логического ключа, номер которого задан в операнде А, изменяется в зависимости от значения вспомогательного оператора Х следующим образом:
S – логический ключ устанавливается в положение «Включен»;
R – логический ключ устанавливается в положение «Выключен»;
I – логический ключ инвертируется, то есть положение его изменяется на противоположное.
Логический ключ имеет СЧА LS<номер ключа> или LS$<HMH ключа>, который возвращает значение 1, если ключ в положении «Включен», и 0 – если в положении «Выключен».
Для изменения направления движения сообщений в зависимости от положения логических ключей используются блоки GATE LR и GATE LS
Блоки GATE LR и GATE LS. Блоки GATE LR, GATE LS проверяют положение логического ключа. В операнде В задается номер блока, к которому переходит транзакт, если вспомогательный оператор Х имеет значение «ложь». Если значение логического оператора – «истина», транзакт переходит к следующему по порядку блоку. Если операнд В пустой, блок GATE LR (GATE LS) работает в режиме условного вхождения, если заполнен – в режиме безусловного вхождения.
В режиме условного вхождения транзакты могут войти в блок GATE только в том случае, если логический оператор (LRj или LSj) имеет значение «истина». Если значение логического оператора – «ложь», транзакт помещается в список задержки и не обрабатывается интерпретатором до тех пор, пока значение не станет истинным. Пдинственным исключением являются транзакты, находящиеся в блоке TRANSFER BOTH (или ALL). Когда потом какой-нибудь другой транзакт проходит блок LOGIC, изменяющий состояние соответствующего ключа, и присваивает указанному в блоке GATE логическому оператору значение «истина», все транзакты, находящиеся в списке задержки, активизируются. После этого интерпретатор, просматривая CTC, получает возможность переместить один или несколько транзактов (включая и те, что находятся в блоке TRANSFER BOTH или ALL) в блок GATE LR (GATE LS), работающий в режиме условного вхождения.
Пример 4.59
Рассмотрим работу телефонной сети, имеющей 50 абонентских линий связи, причем одновременно может быть задействовано не более 10 связей между абонентами. Каждый абонент может соединиться c остальными, если свободны его входная линия связи и входная линия вызываемого абонента. Из 50 линий для организации связи могут использоваться любые две свободных линии. Необходимо промоделировать работу телефонной сети для 1000 вызовов. Интервалы между вызовами и длительность разговора распределены по экспоненциальному закону. Предусматривается, что первые 15 вызовов образуют переходной процесс в сети и эти данные не нужно учитывать при моделировании. Модель этой системы разработал Джеффри Гордон для GPSS/H. Приведенный текст программы модифицирован для GPSS World.
Программа:
Блок GATE. Блок GATE управляет потоком транзактов c помощью логических операторов. Блок GATE, как и блок TEST, не изменяет никаких атрибутов транзактов. Он определяет номер следующего блока, к которому должен перейти транзакт из блока GATE. Блок GATE может задержать транзакт на входе, если не задан альтернативный выход. Блок GATE имеет такой формат:
GATEX A,|B|
Операнд А содержит имя или номер объекта, для которого производится проверка. Операнд А может быть именем, положительным целым числом, СЧА или CЧA*CЧA.
Операнд В содержит номер следующего блока для входящего транзакта, если логический оператор имеет значение «ложь». Операнд В может быть именем, положительным целым числом, СЧА или CЧA*CЧA. Если операнд В определен, то он должен содержать номер блока, допустимый для текущей модели.
В дополнительном операторе Х задается один из следующих логических операторов:
1. Логические операторы, связанные c устройствами:
NU – устройство j, заданное в операнде А, свободно;
U – устройство j, заданное в операнде А, занято (в результате выполнения транзактом блока SEIZE или PREEMPT);
NI – устройство j, заданное в операнде А, не прервано;
I – устройство j, заданное в операнде А, обслуживает прерывания;
FV – устройство j, заданное в операнде А, доступно;
FNV – устройство j, заданное в операнде А, не доступно.
2. Логические операторы, связанные c МКУ:
SE – МКУ j, заданное в операнде А, пустое (S[j]=0);
SNE – МКУ j, заданное в операнде А, не пустое (S[j]<>0);
SF – МКУ j, заданное в операнде А, заполнено (R[t]=0);
SNF – МКУ j, заданное в операнде А, не заполнено (R[j]<>0);
SV – МКУ j, заданное в операнде А, доступно;
SNV – МКУ j, заданное в операнде А, не доступно.
3. Логические операторы, связанные c транзактами:
M – в блоке j, заданном в операнде А блока GATE, находится в состоянии синхронизации транзакт, принадлежащий тому же семейству, что и транзакт, который находится в блоке GATE или пытается войти в этот блок;
NM – в блоке j, заданном в операнде А блока GATE, в состоянии синхронизации нет ни одного транзакта, принадлежащего тому же семейству, что и транзакт, который пытается войти в блок GATE.
4. Логические операторы, связанные c логическими ключами:
LS – логический ключ j, заданный в операнде А, включен;
LR – логический ключ j, заданный в операнде А, выключен.
Режимы условного и безусловного входов в блок GATE. Блок GATE, как и блок TEST, может работать в режимах безусловного и условного вхождения.
В режиме безусловного вхождения транзакт никогда не задерживается на входе блока GATE. Если заданный логический оператор имеет значение «истина», транзакт пытается перейти к следующему no номеру блоку. Если логический оператор имеет значение «ложь», го транзакты будут пытаться перейти к блоку, номер которого задан в операнде В блока GATE. Выбор следующего блока производится один раз в момент вхождения транзакта в блок GATE.
В режиме условного вхождения, если операнд В блока GATE пустой (альтернативный выход не задан), транзакты не смогут войти в блок GATE до тех пор, пока указанный в этом блоке логический оператор не будет иметь значение «истина». Интерпретатор не проверяет значение логических операторов, за исключением операторов M и NM. В режиме условного вхождения задержанные транзакты находятся в списках задержки и, таким образом, исключаются из числа транзактов, обрабатываемых интерпретатором до тех пор, пока соответствующий логический оператор не примет значение «истина».
Пример 4.60
В данном случае транзакт помещается в список задержки, если МКУ LINE1 не доступно в тот момент, когда транзакт пытается войти в блок GATE. Когда МКУ становится доступным, все транзакты выводятся из списка и делают попытку войти в МКУ.
Блоки GATE – очень мощный инструмент, но они могут приводить к значительным затратам компьютерного времени на тщетные попытки транзактов войти в блок. Чтобы уменьшить частоту бесполезных попыток вхождения в блок, можно c помощью блоков LINK и UNLINK поместить транзакты в СП.