
- •Москва, 2004
- •Введение
- •1. Основные понятия теории моделирования
- •1.1 Понятие модели. Виды моделей
- •Цель (человека)
- •1.2. Общие вопросы моделирования систем
- •1.3. Основные требования к моделям
- •1.4. Принципы моделирования
- •1.5 Вопросы для самоконтроля
- •5. Основные требования к моделям.
- •6. Принципы моделирования.
- •2. Компьютерное моделирование
- •2.1 Этапы моделирования
- •2.2 Определение цели моделирования.
- •Определение типа системы;
- •Описание рабочей нагрузки;
- •Декомпозиция системы.
- •2.3 Определение типа системы
- •2.4 Описание рабочей нагрузки.
- •2.5 Декомпозиция системы
- •2.6 Выбор между имитационной или аналитической моделью
- •2.7 Вопросы для самоконтроля
- •6. Декомпозиция системы.
- •3.Формализация модели.
- •3.1 Классификация схем построения имитационной модели
- •3.2. Представление динамики системы
- •3.3. Генераторы случайных чисел
- •3.4 Моделирование случайных факторов
- •3.5 Управление модельным временем
- •3.5.1 Виды представления времени в модели
- •3.5.2 Изменение времени с постоянным шагом
- •3.5.3 Моделирование по особым состояниям
- •3.6. Моделирование параллельных процессов
- •3.6.1. Виды параллельных процессов
- •3.6.2. Механизм реализации параллельных процессов в языках моделирования
- •3.7 Вопросы для самоконтроля
- •8. Виды представления времени в модели.
- •4. Программная реализация модели
- •5.Планирование модельных экспериментов
- •5.1 Задачи планирования экспериментов. Стратегическое и тактическое планирование.
- •5.2. Стратегическое планирование имитационного эксперимента
- •5.2.1. Цель стратегического планирования эксперимента
- •5.2.2. Способы построения стратегического плана
- •5.3. Тактическое планирование экспериментов
- •5.4 Вопросы для самоконтроля
- •6. Обработка и анализ результатов моделирования
- •6.1 Основная идея регрессионного анализа
- •6.2 Общая схема проведения расчетов
- •6.3 Оценка качества имитационной модели
- •6.3.1 Адекватность модели
- •6.3.2 Оценка устойчивости
- •6.3.3 Оценка чувствительности
- •6.4 Калибровка модели
- •6.5 Вопросы для самоконтроля
- •6. Оценка чувствительности.
- •7.1 Основные понятия теории массового обслуживания
- •7.2 Марковский процесс
- •7.2.1 Понятие марковского процесса
- •7.2.2 Потоки событий
- •7.3 Уравнения Колмогорова для вероятностей состояний. Финальные вероятности состояний
- •7.4 Схема гибели/размножения.
- •7.5 Формула Литтла.
- •7.6 Моделирование смо как Марковского процесса
- •7.7. Моделирование смо по событиям
- •Заключение
7.7. Моделирование смо по событиям
Данный алгоритм относится к классу алгоритмов моделирования по событиям. Это означает, что модельное время в процессе моделирования изменяется скачками от одного события к другому. Событиями в рассматриваемой СМО являются моменты прихода заявок извне и моменты освобождения каналов обслуженными заявками. Поэтому модельное время всегда равно моменту прихода очередной заявки или освобождения канала и всегда изменяет свое значение на момент наступления ближайшего события из перечисленных.
Д
ля
упрощения рассмотрим возможный подход
к моделированию одноканальной СМО с
ограниченной очередью (рис.7.12).
Функционирование такой очереди определяется следующими характерными особенностями и предположениями:
1) имеется случайная переменная X, которая определяет время прибытия следующего клиента. Существует несколько возможностей для решения вопроса о времени прибытия клиента. Будем предполагать, что если клиент K прибывает в момент времени t, то клиент K+1 прибывает в момент t+T, где Т – случайная переменная, значение которой лежит между 0 и некоторым фиксированным числом MAXТ, с заданным распределением вероятностей (экспоненциальным).
2) имеется случайная переменная S, определяющая, сколько времени длится обслуживание клиента K. Предполагается, что значение величины S лежит между 0 и некоторым другим фиксированным целым числом MAXC с заданным распределением вероятностей. Если обслуживание начато, оно продолжается до полного завершения, т.е. не допускается прерывание или обслуживание с приоритетом.
3) существует очередь клиентов, обслуживаемая по принципу: первым пришел – первым обслужен (FIFO). Как только клиент встает в очередь, он останется в ней, пока не будет обслужен. Сразу после обслуживания он покидает систему.
4) Все действия в системе описываются дискретными событиями. Говорят, что событие является первичным или независимым, если оно не вызвано другим событием; в противном случае оно называется вторичным или условным событием. Независимыми событиями в системе обслуживания являются: (а) – прибытие клиента и (б) – завершение обслуживания клиента.
5) в начальном состоянии система пуста. В момент времени t=0 обслуживающее устройство не занято и в очереди никого нет.
6) для определения промежутков времени между прибытиями клиентов и продолжительностей их обслуживания применяется датчик случайных чисел. Фактически во всех вычислительных устройствах имеется системный датчик случайных чисел для равномерного распределения на интервале [0,1). Как уже отмечалось выше, это распределение может быть использовано для того, чтобы смоделировать другие распределения случайной переменной.
Большинство систем обслуживания имеют заранее установленный неизменный порядок (правила) очереди. Поэтому для таких систем этот вопрос не входит в задачу разработки имитационного алгоритма. Но в других случаях, таких, как операционные системы ЭВМ, определение оптимальных порядков очереди — важная цель моделирования.
Основное предположение в системах с дискретными событиями заключается в том, что состояние системы изменяется, только когда происходит событие; в противном случае состояние остается неизменным. Таким образом, нет нужды в непрерывном ходе часов, когда ничего не случается. Наиболее общий подход – произвести все изменения, необходимые вследствие совершившегося события, а затем продвинуть имитируемое время ко времени следующего события (моделирование по событиям).
Д
ля
иллюстрации этого подхода на рис.7.13
представлена принципиальная блок-схема
алгоритма моделирования системы
одна очередь/одно обслуживающее
устройство.
Чтобы получить моделирующую программу, необходима некоторая переработка этой блок-схемы. В частности, на рис.7.13 нет условия для остановки (или возвращения). С этой целью вводятся три различные переменные ARР, COMP и TERM, обозначающие соответственно время следующего прибытия, время завершения обслуживания и время окончания моделирования. Также вводится переменная СLОСК для записи текущего времени. Для метода моделирования по событиям, полагаем переменную СLОСК равной времени следующего запланированного события: это или время следующего прибытия, или время завершения обслуживания, или время окончания моделирования. Тогда блоки 2, 3 и 4 становятся такими, как показано на рис. 7.14.
Далее рассмотрим, что должно быть сделано в блоке 5 на рис. 7.13, когда имеет место новое прибытие. Во-первых, можно определить время следующего прибытия в соответствии с правилом вида
ARP=CLOCK+RANARR (0, MAXA)
где RANARR (0 , МАХА) — функция, которая дает случайное целое число между 0 и некоторой фиксированной константой MAXA с определенным распределением вероятностей.
С
ледующая
работа, которую нужно выполнить, когда
прибывает новый клиент, – это или
поставить клиента в очередь, или если
обслуживающее устройство свободно,
то обслужить его. Если очереди нет (длина
очереди определяется переменной
QUEUE), то можно определить время ухода
данного клиента (т. е. время полного
обслуживания) из уравнения
СОМР=СLОСК+
RANСОМ(0, МАХС)
Тогда блок 5 становится таким, как на рис. 7.15.
Для завершения блока 6 также потребуется определить время завершения следующего обслуживания:
COMP=CLOCK+RANCOM (1, MAXC)
Следует, однако, рассмотреть особую ситуацию, когда очередь становится пустой. Конечно, в этом случае время завершения следующего обслуживания не имеет смысла. Поэтому произвольно полагаем СОМР=ТЕRМ+1, чтобы гарантировать, что завершение не является следующим запланированным событием. Тогда блок 6 становится таким, как показано на рис. 7.15.
Ч
то
еще осталось сделать? Во-первых, нужно
задать начальные значения всем переменным,
таким, как АRR, ТЕRМ, QUEUE, QMAX , МАХА, МАХС и
СОМР. Затем нужно определить подпрограммы
для вычисления RANARR и RANCOM. Наконец, нужно
представить какой-то вывод (окружность,
обозначенная Т на рис. 7.15. Эта
блок-схема еще не совсем полна. Например,
неорганизован сбор данных - по существу
регистрируется только QМАХ.