- •Глава 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.3.2.Блоки, связанные с аппаратными объектами
Все примеры моделей, рассматривавшиеся выше, пока еще не являются моделями систем массового обслуживания, так как в них не учтена основная особенность СМО: конкуренция заявок на использование некоторых ограниченных ресурсов системы. Все транзакты, входящие в эти модели через блок GENERATE, немедленно получают возможность “обслуживания” в блоке ADVANCE, который никогда не “отказывает” транзактам во входе, сколько бы транзактов в нем не находилось.
Для моделирования ограниченных ресурсов СМО в модели должны присутствовать аппаратные объекты: одноканальные или многоканальные устройства. Одноканальные устройства создаются в текущей модели при использовании блоков SEIZE (занять) и RELEASE (освободить), имеющих следующий формат:
имя SEIZE A
имя RELEASE A
В поле A указывается номер или имя устройства. Если транзакт входит в блок SEIZE, то устройство, указанное в поле A, становится занятым и остаётся в этом состоянии до тех пор, пока этот же транзакт не пройдёт соответствующий блок RELEASE, освобождая устройство. Если устройство, указанное в поле A блока SEIZE, уже занято каким-либо транзактом, то никакой другой транзакт не может войти в этот блок и остаётся в предыдущем блоке. Транзакты, задержанные (заблокированные) перед блоком SEIZE, остаются в списке текущих событий и при освобождении устройства обрабатываются с учетом приоритетов и очередности поступления.
Каждое устройство имеет следующие СЧА: F —состояние устройства (0 —свободно,1 —занято); FR —коэффициент использования в долях 1000; FC —число занятий устройства; FT —целая часть среднего времени занятия устройства.
Воспользуемся блоками SEIZE и RELEASE для моделирования одноканальной СМО с ожиданием (рис. 7). Теперь блок ADVANCE находится между блоками SEIZE и RELEASE, моделирующими занятие и освобождение устройства с именем SYSTEM, и поэтому в н ем может находиться только один транзакт. Транзакты, выходящие из блока GENERATE в моменты занятости устройства, не смогут войти в блок SEIZE и будут оставаться в блоке GENERATE, образуя очередь в списке текущих событий.
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
SEIZE SYSTEM
ADVANCE 80,FN$EXP
RELEASE SYSTEM
TERMINATE 1
Рис. 7
Для моделирования захвата (прерывания) одноканального устройства вместо блоков SEIZE и RELEASE используются соответственно блоки PREEMPT (захватить) и RETURN (вернуть). Блок PREEMPT имеет следующий формат:
имя PREEMPT A,B,C,D,E
В поле A указывается имя или номер устройства, подлежащего захвату. В поле B кодируется условие захвата. Если это поле пусто, то захват возникает, если обслуживаемый транзакт сам не является захватчиком. Если же в поле B записан операнд PR, то захват возникает, если приоритет транзакта-захватчика выше, чем приоритет обслуживаемого транзакта.
Поля C, D и E определяют поведение транзактов, обслуживание которых было прервано. Поле C указывает имя блока, в который будет направлен прерванный транзакт. В поле D может быть указан номер или имя параметра прерванного транзакта, в который записывается время, оставшееся этому транзакту до завершения обслуживания на устройстве. При отсутствии операнда в поле E прерванный транзакт сохраняет право на автоматическое восстановление на устройстве по окончании захвата. Если же в поле E указан операнд RE, то транзакт теряет такое право.
Блок RETURN имеет единственный операнд A, содержащий имя или номер устройства, подлежащего освобождению от захвата.
Блоки PREEMPT и RETURN могут быть использованы для моделирования СМО с абсолютными приоритетами. В простейших случаях, при одном уровне захвата, в блоке PREEMPT используется единственный операнд A. При этом прерванный транзакт переводится симулятором из списка будущих событий в так называемый список прерываний устройства, а по окончании захвата устройства возвращается в список будущих событий с предварительно вычисленным временем занятия устройства для продолжения обслуживания.
Для создания в модели многоканальных устройств (МКУ) они должны быть предварительно определены с помощью операторов определения STORAGE (память), имеющих следующий формат:
имя STORAGE A
Здесь имя — имя МКУ, используемое для ссылок на него; A —емкость (количество каналов обслуживания) МКУ, задаваемая константой.
Для занятия и освобождения каналов обслуживания МКУ используется пара блоков ENTER (войти) и LEAVE (покинуть), имеющих следующий формат:
имя ENTER A,B
имя LEAVE A,B
В поле A указывается номер или имя МКУ, в поле B - число каналов МКУ, занимаемых при входе в блок ENTER или освобождаемых при входе в блок LEAVE. Обычно поле B пусто, и в этом случае по умолчанию занимается или освобождается один канал.
При входе транзакта в блок ENTER текущее содержимое МКУ увеличивается на число единиц, указанное в поле B. Если свободная емкость МКУ меньше значения поля B, то транзакт не может войти в блок ENTER и остается в предыдущем блоке, образуя очередь в списке текущих событий.
При входе транзакта в блок LEAVE текущее содержимое МКУ уменьшается на число единиц, указанное в поле B. Не обязательно освобождается такое же число каналов МКУ, какое занималось при входе данного транзакта в блок ENTER, однако текущее содержимое МКУ не должно становиться отрицательным.
Многоканальные устройства имеют следующие СЧА: S —текущее содержимое МКУ; R —свободная емкость МКУ; SR —коэффициент использования в долях 1000; SA —целая часть среднего содержимого МКУ; SM —максимальное содержимое МКУ; SC —число занятий МКУ; ST —целая часть среднего времени занятия МКУ.
Воспользуемся блоками ENTER-LEAVE и оператором STORAGE для моделирования двухканальной СМО с ожиданием (рис. 8). Если текущее содержимое МКУ с именем STO2 меньше 2, т.е. в блоке ADVANCE находится один или ни одного транзакта, то очередной транзакт, поступающий в модель через блок GENERATE, может войти в блок ENTER и затем в блок ADVANCE. Если же текущее содержимое МКУ равно 2, то очередной транзакт остается в блоке GENERATE, образуя очередь в списке текущих событий. По истечении задержки одного из двух обслуживаемых транзактов в блоке ADVANCE и после входа его в блок LEAVE первый из заблокированных транзактов сможет войти в блок ENTER.
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
ENTER STO2
ADVANCE 160,FN$EXP
LEAVE STO2
TERMINATE 1
Рис. 8
К аппаратным объектам относятся также логические переключатели (ЛП), которые могут находиться в двух состояниях: “включено” и “выключено”. В начале моделирования все ЛП находятся в состоянии “выключено”. Отдельные переключатели могут быть установлены в начальное состояние “включено” с помощью оператора INITIAL (инициализировать), имеющего следующий формат:
INITIAL LS$ имя
INITIAL LSj
Здесь имя и j - соответственно имя и номер ЛП, устанавливаемого в начальное состояние “включено”.
Для включения, выключения и инвертирования логических переключателей в процессе моделирования служит блок LOGIC (установить ЛП), имеющий следующий формат:
имя LOGIC X A
В поле A указывается имя или номер ЛП. Вспомогательный операнд X указывает вид операции, которая производится с логическим переключателем при входе транзакта в блок: S — включение, R — выключение, I — инвертирование. Например:
LOGIC S 9
LOGIC R FLAG
Логические переключатели имеют единственный СЧА с названием LS. Значение СЧА равно 1, если ЛП включен, и 0, если он выключен.
