- •Глава 1. Принципы моделирования случайных элементов 6
- •Глава 3. Метод Монте-Карло и его применения 51
- •3.4. Задания 63
- •Глава 4. Система моделирования gpss 64
- •Глава 5. Моделирование сложных систем на основе gpss 127
- •5.2.1. Иммитационная модель системы 136
- •Глава 6. Задания лабораторного практикума по gpss 152
- •Глава 7. Статистическое моделирование в финансовом анализе. 181
- •Введение
- •Глава 1.Принципы моделирования случайных элементов
- •1.1. Моделирование случайных величин
- •1.1.1.Моделирование базовых случайных величин (бсв) Понятие бсв
- •Датчики бсв
- •Метод Макларена-Марсальи
- •Специальные тесты проверки точности моделирования бсв
- •Тест «совпадения моментов»
- •Тест «ковариация»
- •Тест «равномерность двухмерного распределения»
- •1.1.2.Статический анализ точности моделирования
- •1.1.3.Задания
- •1.2. Моделирование дискретных случайных величин (дсв)
- •1.2.1.Понятие дсв. Общая схема алгоритма моделирования
- •1.2.3.Графический анализ точности моделирования
- •1.2.4.Задания
- •Дискретное равномерное распределение
- •1.3. Моделирование непрерывных случайных величин (нсв)
- •1.3.1.Понятие нсв. Универсальные методы моделирования нсв. Понятие нсв.
- •Метод обратной функции.
- •Метод исключения
- •1.3.2.Тесты проверки точности моделирования нсв Критерии согласия
- •- Критерий согласия Пирсона
- •Критерий согласия Колмогорова.
- •Критерий серий
- •Критерий “нисходящих” и ”восходящих” серий
- •1.3.3.Алгоритмы моделирования для основных непрерывных распределений Равномерное распределение
- •Алгоритм моделирования
- •Одномерное нормальное распределение
- •Алгоритм моделирования
- •Экспоненциальное распределение
- •Алгоритм моделирования
- •Распределение Лапласа
- •Алгоритм моделирования
- •Алгоритмы моделирования:
- •Бета-распределение.
- •Связь с другими распределениями
- •Алгоритмы моделирования:
- •Алгоритмы моделирования
- •Алгоритм моделирования
- •Моделирование случайных величин с заданной гистограммой
- •Алгоритм моделирования
- •Моделирование случайных величин с заданным полигоном частот
- •1.3.4.Задания Равномерное распределение
- •Одномерное нормальное распределение
- •Распределение Лапласа
- •Распределение Вейбулла-Гнеденко
- •Гамма распределение
- •Бета-распределение
- •Распределение Коши
- •Логистическое распределение
- •Распределение Стьюдента
- •Распределение Фишера
- •3.2. Вычисление определенного интеграла методом Монте-Карло
- •Пример.
- •Текст программы:
- •3.3. Решение системы алгебраических уравнений методом Монте-Карло
- •3.4. Задания
- •Глава 4.Система моделирования gpss
- •4.1. Краткие сведения из теории
- •4.2. Основные правила и операторы языка gpss
- •4.2.1.Структура операторов gpss
- •4.2.2.Основные операторы языка gpss
- •4.3. Основные блоки gpss/pc и связанные с ними объекты
- •4.3.1.Блоки, связанные с транзактами
- •4.3.2.Блоки, связанные с аппаратными объектами
- •4.3.3.Блоки для сбора статистических данных
- •4.3.4.Блоки, изменяющие маршруты транзактов
- •4.3.5.Блоки, работающие с памятью
- •4.3.6.Блоки для работы со списками пользователя
- •4.4. Управляющие операторы gpss/pc
- •4.5. Некоторые приемы конструирования gpss-моделей
- •4.5.1.Косвенная адресация
- •4.5.2.Обработка одновременных событий
- •4.6. Команды gpss/pc и технология работы с пакетом
- •4.6.1.Загрузка интегрированной среды
- •4.6.2.Ввод новой модели
- •4.6.3.Редактирование текста модели
- •4.6.4.Запись и считывание модели с диска
- •4.6.5.Прогон модели и наблюдение за моделированием
- •4.6.6.Получение и интерпретация стандартного отчета
- •5.1.3.Анализ результатов иммитационного моделирования
- •5.2. Моделирование работы участка цеха
- •5.2.1.Иммитационная модель системы
- •110 Generate 30,5 Первый сегмент модели
- •280 Generate 20,5 Второй сегмент модели
- •450 Generate 480 Третий сегмент модели (таймер)
- •5.2.2.Анализ результатов иммитационного моделирования
- •Обсуждение результатов моделирования
- •105 A2 storage 2 Второй станок моделируется как накопитель
- •5.3. Порядок оформления отчета
- •5.3.1.Содержание отчета
- •Задания для самопроверки
- •5.3.2.Создание выходного файла
- •Задание для домашней подготовки
- •5.3.3.Описание элементов выходного файла
- •Глава 6.Задания лабораторного практикума по gpss
- •Глава 7.Статистическое моделирование в финансовом анализе.
- •7.1. Моделирование наращенных сумм и современных величин платежа.
- •Задание 4.
- •7.2. Моделирование величины реальной наращенной суммы платежей с учетом инфляции.
- •7.3. Моделирование обменного курса валют при двойной конверсии валют.
- •Приложение
- •Примечание к таблице п.3
- •Литература
4.5.2.Обработка одновременных событий
Так как модельное время в GPSS целочисленно, то оказывается вполне вероятным одновременное наступление двух или более событий, причем вероятность этого тем больше, чем крупнее выбранная единица модельного времени. В некоторых случаях одновременное наступление нескольких событий, или так называемый временной узел, может существенно нарушить логику модели.
Рассмотрим, например, еще раз модель на рис. 14. Здесь может образоваться временной узел между событиями “поступление транзакта на вход модели” и “завершение обслуживания в МКУ”. Если непосредственно перед завершением обслуживания были заняты оба канала МКУ, то обработка временного узла зависит от последовательности транзактов, соответствующих событиям, в списке текущих событий.
Предположим, что первым в списке расположен транзакт, освобождающий канал МКУ. Тогда вначале будет обработан этот транзакт, т.е. событие “завершение обслуживания в МКУ”, причем условие “МКУ STO2 не заполнено”, проверяемое в блоке GATE, станет истинным. Затем будет обработан транзакт, поступивший на вход модели, в блок GATE с именем ENT1, из блока GENERATE или из блока TRANSFER в безусловном режиме. При этом транзакт будет впущен в блок ENTER, и МКУ в тот же момент модельного времени снова окажется заполненным. Такая ситуация при обработке временного узла представляется естественной.
Предположим теперь, что первым в списке текущих событий расположен транзакт, поступающий на вход модели. Так как условие “МКУ STO2 не заполнено” ложно, то блок GATE направит этот транзакт в блок с именем REFUS. Таким образом, в модели будет зафиксирован отказ в обслуживании, хотя в этот же момент модельного времени, после обработки транзакта, освобождающего канал, МКУ станет доступным.
Порядок расположения транзактов, соответствующих рассматриваемым событиям, в списке текущих событий случаен, и в среднем в половине случаев временной узел будет обрабатываться не так, как нужно. В результате статистика, связанная с отказами, окажется искаженной.
Для правильной обработки временного узла надо обеспечить такой порядок расположения транзактов в списке текущих событий, чтобы транзакт, освобождающий МКУ, всегда располагался первым. Этого можно добиться, управляя приоритетами транзактов (рис. 22).
STO2 STORAGE 2
EXP FUNCTION RN1,C24
0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915
.7,1.2/.75,1.38/.8,1.6/.84,1.85/.88,2.12/.9,2.3
.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9
.99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8
GENERATE 100,FN$EXP
ENT1 GATE SNF STO2,REFUS
ENTER STO2
PRIORITY 1
ADVANCE 160,FN$EXP
LEAVE STO2
TERMINATE 1
REFUS TRANSFER .1,,OUT
ADVANCE 250,FN$EXP
TRANSFER ,ENT1
OUT TERMINATE 1
Рис. 22
Транзакты, поступающие в модель через блок GENERATE, имеют нулевой приоритет. Такой же приоритет имеют транзакты, получившие отказ в обслуживании, направленные в блок с именем REFUS и затем повторно поступающие в блок с именем ENT1. Те же транзакты, что поступают на обслуживание, повышают приоритет до 1 в блоке PRIORITY, и после выхода из блока ADVANCE возвращаются из списка будущих в список текущих событий, располагаясь в начале списка. Таким образом, нужный порядок транзактов обеспечивается, и временной узел будет обработан правильно.
Опасность неверной обработки временных узлов характерна для моделей со списками пользователя. Рассмотрим, например, еще раз модель на рис. 18. Здесь также возможен временной узел между событиями “приход транзакта” и “завершение обслуживания транзакта”.
Пусть первым в списке текущих событий располагается вновь пришедший транзакт. Так как устройство с именем SYSTEM занято, то блок GATE направит этот транзакт в блок LINK, и он будет введен в список пользователя с именем LINE. Затем будет обработан транзакт, освобождающий устройство. Проходя через блок UNLINK, он выведет транзакт с начала списка пользователя и направит его в список текущих событий, где тот продвинется в блок SEIZE, занимая устройство SYSTEM.
Если же первым в списке текущих событий располагается транзакт, освобождающий устройство, то он выведет первый из ожидающих транзактов из списка пользователя в список текущих событий, где тот расположится после вновь пришедшего транзакта. Поэтому первым будет обработан вновь пришедший транзакт, который пройдет через блок GATE и займет устройство “без очереди”. Транзакт-очередник, который был выведен из списка пользователя, “застрянет” перед блоком SEIZE и после очередного освобождения устройства займет его, нарушая, в свою очередь, логику работы модели.
Проведенный анализ показывает, что для правильной обработки временного узла необходимо обеспечить такой порядок расположения транзактов в списке текущих событий, чтобы первым всегда располагался вновь пришедший транзакт. В рассматриваемом случае этого можно добиться, используя блок PRIORITY с операндом BU (рис. 23).
Перед освобождением устройства обслуженный транзакт проходит через блок PRIORITY, который, оставляя неизменным приоритет транзакта PR, переводит его в конец списка текущих событий. При новом просмотре списка в случае наличия временного узла начинает обрабатываться вновь поступивший транзакт. Так как устройство еще занято, он направляется блоком GATE в список пользователя. При повторной обработке обслуженного транзакта тот освобождает устройство и выводит очередной транзакт из списка пользователя. Таким образом, правильная обработка временного узла обеспечивается и в этом случае.
EXP FUNCTION RN1,C24
0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915
.7,1.2/.75,1.38/.8,1.6/.84,1.85/.88,2.12/.9,2.3
.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9
.99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8
GENERATE 100,FN$EXP
ASSIGN TSRV,80,EXP
GATE NU SYSTEM,WAIT
SFAC SEIZE SYSTEM
ADVANCE P$TSRV
PRIORITY PR,BU
RELEASE SYSTEM
UNLINK LINE,SFAC,1
TERMINATE 1
WAIT LINK LINE,P$TSRV
Рис. 23
