
- •Федеральное агентство по образованию
- •Оглавление
- •Глава 5. Моделирование вычислительных и операционных систем 289
- •Глава 6. Основы моделирования процессов 305
- •Глава 7. Задания для самостоятельной работы 311
- •Глава 8. Проектирование имитационных моделей 335
- •Глава 9. Технология имитационного моделирования 361
- •Глава 10. Примеры принятия решений с помощью имитационного моделирования 433
- •Глава 11. Задания для имитационных проектов 451
- •Предисловие
- •Введение
- •Глава 1. Модели массового обслуживания
- •1.1. Системы массового обслуживания и их характеристики
- •1.2. Системы с одним устройством обслуживания
- •1.3. Основы дискретно-событийного моделирования смо
- •1.4. Многоканальные системы массового обслуживания
- •Глава 2. Вероятностные сети систем массового обслуживания
- •2.1. Общие сведения о сетях
- •2.2. Операционный анализ вероятностных сетей
- •2.3. Операционные зависимости
- •2.4. Анализ узких мест в сети
- •Глава 3. Вероятностное моделирование
- •3.1. Метод статистических испытаний
- •3.2. Моделирование дискретных случайных величин
- •3.3. Моделирование непрерывных случайных величин
- •3.4. Сбор статистических данных для получения оценок характеристик случайных величин
- •Для оценки дисперсии случайной величины ξ используют формулу
- •3.5. Определение количества реализаций при моделировании случайных величин
- •По формулам (3.18-3.20) находим
- •Задачи для самостоятельной работы
- •Задача 6
- •Глава 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.23
- •4.14. Стандартные числовые атрибуты, параметры транзактов. Блоки assign, mark, loop
- •4.15. Изменение приоритета транзактов. БлокPriority
- •4.16. Организация обслуживания с прерыванием. Блоки preempt и return
- •Задание для самостоятельной работы:
- •4.17. Сохраняемые величины
- •4.18. Проверка числовых выражений. Блок test
- •Пример 4.40
- •Задание для самостоятельной работы:
- •4.19. Определение и использование таблиц
- •Задания для самостоятельной работы:
- •4.20. Косвенная адресация
- •4.21. Обработка транзактов, принадлежащих одному семейству
- •4.22. Управление процессом моделирования в системеGpss
- •4.23. Списки пользователей
- •4.24. Блоки управления потоками транзактовLogic,gatelr,gatelSиGate
- •7 Testne p1,p2,asn2 ; Повторить, если адресат
- •4.25. Организация вывода временных рядов изGpss-модели
- •4.26. Краткая характеристика языкаPlus
- •4.27. Команды gpss World
- •4.28. Диалоговые возможностиGpssWorld
- •4.29. Отличия между gpss World и gpss/pc
- •Глава 5. Моделирование вычислительных и операционных систем
- •5.1. Операционные системы компьютеров
- •5.2. Сети и системы передачи данных
- •5.3. Проблемы моделирования компьютеров и сетей
- •Глава 6. Основы моделирования процессов
- •6.1. Производственные процессы
- •6.2. Распределительные процессы
- •6.3. Процессы обслуживания клиентов
- •6.4. Процессы управления разработками проектов
- •Глава 7. Задания для самостоятельной работы Задание 1. Моделирование разливной линии
- •Глава 8. Проектирование имитационных моделей с помощью интерактивной системы имитационного моделирования
- •8.1. Структура интерактивной системы имитационного моделирования
- •8.2. Построение концептуальной схемы модели
- •8.3. Параметрическая настройка модели
- •8.4. Генератор формул
- •8.5. Управление экспериментом
- •8.6. Запуск эксперимента и обработка результатов моделирования
- •8.7. Управление проектами и общей настройкой системы
- •8.8. Пример построения модели средствамиIss2000
- •Глава 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. Организация экспериментов вGpssWorld
- •9.12. Выбор наилучшего варианта структуры системы
- •Глава 10. Примеры принятия решений с помощью имитационного моделирования
- •10.1. Моделирование производственного участка
- •10.2. Моделирование технологического процесса ремонта и замены оборудования
- •Глава 11. Задания для имитационных проектов
- •Приложение Системные сча
- •Сча транзактов
- •Сча блоков:
- •Сча одноканальных устройств:
- •Сча очередей
- •Сча таблиц
- •Сча ячеек и матриц ячеек сохраняемых величин:
- •Сча вычислительных объектов
- •Сча списков и групп
- •Список литературы
Задания для самостоятельной работы:
1. В ресторан каждые 25+9 с заходят клиенты. Заказы принимают шесть кассиров. Время выполнения заказов - 120+40 с. Соберите статистическую информацию о длине очереди.
2. В одноканальную СМО поступает пуассоновский поток заявок с интенсивностью 2 мин-1. Время обслуживания одной заявки -25±4 с. Соберите статистическую информацию о времени пребывания заявок в системе.
3. В двухканальную СМО поступает пуассоновский поток заявок с интенсивностью 3 мин-1. Время обслуживания одной заявки -28±6 с. Соберите статистическую информацию о времени пребывания заявок в очереди.
4. На складе обслуживают заказы трех видов. Заказы поступают по нормальному закону с параметрами (12, 2). Вероятность появления заказа первого вида составляет 0,3, второго вида - 0,55, третьего вида - 0,15. Все заказы выполняются одним из двух рабочих за время 16+5 ед. времени. Каждый вид заказов характеризуется своим распределением стоимости выполнения в зависимости от времени выполнения заказа (зависимости задайте самостоятельно). Стоимость выполнения заказа сохраните в параметре 1. При моделировании подсчитайте суммарную стоимость выполнения заказов.
5. В сети СМО действует три МКУ. Транзакт входит в то МКУ, номер которого помещен в параметре 2. Напишите соответствующий фрагмент программы для данной модели.
4.20. Косвенная адресация
Ранее были рассмотрены прямые способы адресации, когда:
1) номер объекта задается константой
QUEUE 2 ; Стать в очередь 2 SEIZE 1 ; Занять устройство 1
2) номер объекта задается СЧА
LEAVE P1 ; Освободить МКУ с номером, задаваемым параметром 1
Адресация может быть относительной и по отношению к самому блоку. Это осуществляется при помощи записи *+/-n. Например,
TRANSFER ,*+2
В этом случае сам блок TRANSFER является ориентировочным блоком. Транзакт пытается войти во второй, относительно блока TRANSFER, блок.
Подобные ссылки не зависят от свойств транзакта, обрабатываемого в данный момент времени. Использование прямой адресации может привести к введению большого числа дополнительных блоков только для того, чтобы записать номера объектов в СЧА, т.е. к увеличению объема модели. Существенным образом сократить объем модели и использовать зависимость номеров объектов от свойств транзактов позволяет косвенная адресация.
Общий формат косвенной адресации:
C4A*C4Aj или СЧА*СЧА<имя>
Там, где допустимо использование СЧА, обычно могут использоваться и СЧА*СЧА.
При использовании косвенной адресации параметр Р может опускаться.
Пример 4.46
SEIZE P*X1
Занять устройство, номер которого содержится в параметре транзакта, а номер параметра определяется значением ячейки X1.
SAVE VALUE 1,X*Р2
Поместить в ячейку с номером 1 значение, содержащееся в ячейке, номер которой определяется параметром 2.
Пример 4.47
4 FUNCTION RN1,D3 ; Функция распределения типов сообщений 0.2,1/0.5,2/0.999999,3
1 FUNCTION RN2,C20 ; Функция распределения числа символов сообщения типа 1
2 FUNCTION RN3,C20 ; Функция распределения числа символов сообщения типа 2
3 FUNCTION RN4,C20 ; Функция распределения числа символов сообщения типа 3
GENERATE 100,10
ASSIGN 1.FN4 ; Определение типа сообщения
ASSIGN 2.FN*P1 ; Определение числа символов сообщения
В данной модели предполагается, что через некоторый узел сети проходят информационные сообщения трех типов, причем каждый из них характеризуется своим распределением числа символов. В модели первый параметр транзакта содержит тип сообщения, а второй параметр - число символов сообщения.
При
использовании косвенной адресации при
обращении к устройствам, МКУ или функциям
через параметры приходится применять
числовые значения имен. Транслятор
GPSS/PC
на этапе компиляции сам присваивает
именам числовые значения, однако, при
этом пользователь не контролирует такое
присвоение. Для того, чтобы не возникали
конфликты между числовыми значениями
имен, присвоенных транслятором, и
именами, заданных пользователем,
необходимо использовать простое правило:
в модели использовать имена либо только
числовые, либо только символьные.
Назначение именам числовых значений осуществляется с помощью оператора EQU (аналог #define в языке программирования Си).
Пример 4.48
Необходимо занять МКУ, номер которого определяется в первом параметре транзакта. По логике функционирования модели занимается один из двух МКУ: SECTION_A или SECTION_B.
SECTION_A EQU 1
SECTION_B EQU 2 .
SECTION_A STORAGE 2
SECTION_B STORAGE 3
ASSIGN 1,1
ASSSIGN 1,2
ENTER PI
Пример 4.49
Рассмотрим приход клиентов в банк и их обслуживание кассирами. Время прихода клиентов задается функцией распределения ARRIVE. Для обслуживания открыто семь окошек кассиров, к каждому из них может образовываться очередь. Во время прихода клиента в банк, если хотя бы один кассир свободен, клиент сразу же подходит к этому кассиру. В противном случае он присоединяется к любой кратчайшей очереди на текущий момент. Порядок обслуживания клиентов из очереди - FIFO.
Обслуживание в кассе разделяется на пять видов операций, частота появления которых и среднее время обслуживания задаются функцией MEAN.
В модели с несколькими очередями могут возникнуть одновременные события прихода клиента и конца обслуживания кассиром. Если событие «приход» будет рассмотрено ранее события «конец обслуживания», то устройство в момент проверки будет считаться занятым и вновь прибывший клиент не сможет занять кассира. Поэтому необходимо обеспечить приоритетность в обработке события «освобождения кассира». Это можно сделать с помощью задания уровня приоритета (блок PRIORITY 1) между блоками GENERATE и ADVANCE.
Для реализации поиска свободного кассира используется блок TEST E, помеченный меткой NEXT, который проверяет, свободен ли кассир. Максимальный номер кассира запоминается в параметре транзакта Р5. По этому же параметру образуется цикл для проверки всех устройств (блок LOOP). Номер первого свободного кассира запоминается в параметре транзакта РЗ, и транзакт передается на обслуживание. Если все устройства заняты, то транзакт переходит к следующему блоку после LOOP, т.е. к блоку TEST, помеченному меткой SIT. Этот блок сравнивает длины очередей для всех устройств. Первоначально для сравнения в параметр Р2 транзакта помещается число 1000. Аналогично организуется цикл по всем очередям с помощью параметра Р1 транзакта. Первоначально туда помещается максимальный номер очереди. Если длина следующей просматриваемой очереди меньше предыдущей, то запоминается номер очереди в параметре РЗ и ее длина в параметре Р2 транзакта. После просмотра всех очередей (перехода к следующему блоку после LOOP) в этих параметрах окажется номер минимальной очереди и ее длина, соответственно.
Приведем текст соответствующей программы.
* Функция времени обслуживания
020 MEAN FUNCTION RN1,D5
1,450/.29,750/.61,1000/.85,1500/1.0,3000
* Функция времени прихода
030 ARRIVEL FUNCTION RN1,D6
0.0,50/.25,100/.60,150/.80,200/.90,250/1.0,300
*
040 Т_1 TABLE Ml,200,600,10 ; Сбор данных о времени пребывания
050*************************************************************
055 GENERATE FNSARRIVEL ; Приход клиентов
060 ASSIGN 1,7 ; Задать МАХ номер очереди
065 ASSIGN 2,1000 ; Запомнить большое число
070 ASSIGN 4,FN$MEAN ; Запомнить в Р4 время обслуживания
075 ASSIGN 5,7 ; Задать МАХ номер кассира
080 NEXT TESTE F*5,0,FAC ; Есть свободный кассир?
085 ASSIGN 3,P5 ; «Да» - запомнить его номер
090 TRANSFER ,QUI ; Идти на обслуживание
95 РАС LOOP 5,NEXT ; Цикл по всем кассирам
100*************************************************************
105 SIT TESTL Q*1,P2,SIS ; Поиск MIN очереди
110 ASSIGN 3,P1 ; Запомнить номер очереди
110 ASSIGN 2,Q*1 ; Запомнить длину очереди
120 SIS LOOP 1,SIT ; Цикл по всем очередям
125 QUI QUEUE РЗ ; Встать в очередь
130 SEIZE РЗ ; Занять кассира
135 DEPART РЗ ; Покинуть очередь
140 PRIORITY 1
145 ADVANCE P4 ; Обслужиться
150 RELEASE РЗ ; Освободить кассира
155 TABULATE T_l ; Время пребывания
165 TERMINATE
170*********************************************************
175 GENERATE 14400 ; Таймер времени работы 180 TERMINATE 1
Отчет с результатами моделирования:
Гистограмма времени пребывания в системе приведена на рис. 4.12
Косвенная
адресация является мощным инструментом
языка GPSS,
позволяющим существенно сократить
размер модели и во многих случаях
уложиться в ограничения для бесплатно
распространяемых студенческих версий
языка GPSS
(в модели должно быть до 150 блоков).