
- •Москва, 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. Моделирование смо по событиям
- •Заключение
3.6.2. Механизм реализации параллельных процессов в языках моделирования
Событие – любое перемещение транзакта по системе, а также изменение его состояния (обслуживается, заблокирован, в очереди и т.п.)
События, связанные с транзактом, могут храниться в одном из трех списков.
Список текущих событий. В этом списке находятся события, время наступления которых меньше или равно текущему модельному времени. События с «меньшим» временем связаны с перемещением тех транзактов, которые должны были начать двигаться по системе, но были заблокированы.
Список будущих событий – содержит события, время наступления которых больше текущего модельного, т.е. те события, которые должны произойти в будущем, условия наступления которых уже определены. Например, известно, что транзакт будет обслуживаться 10 единиц времени.
Список прерываний – содержит события, связанные с возобновлением обработки прерванных транзактов. События из этого списка выбираются в том случае, когда сняты условия прерывания.
Рассмотрим использование первых двух списков в динамике, при моделировании параллельных процессов.
В списке текущих событий транзакты располагаются в порядке убывания приоритетов соответствующих событий; при равных приоритетах – в порядке поступления в список.
Каждое событие в списке текущих состояний может находиться либо в активном состоянии, либо в состоянии задержки. Если событие активно, то соответствующий транзакт продвигается по системе; если продвижение невозможно (например, из-за занятости устройства), то событие (и транзакт) переводится в состояние задержки.
Как только завершается обработка (продвижение) очередного активного транзакта, просматривается список задержанных транзактов, и ряд событий из них переводится в активное состояние. Процедура повторяется до тех пор, пока в списке текущих событий не будут обработаны все активные события. После этого просматривается список будущих событий. Модельному времени присваивается значение, равное времени наступления ближайшего из них.
Данное событие заносится в список текущих событий. Затем просматриваются остальные события списка. Те из них, время которых равно текущему модельному, также переписываются в список текущих событий. Просмотр заканчивается, когда в списке остаются события, времена которых больше текущего модельного времени.
Пример. В систему поступают заявки 3-х типов, каждая из которых обслуживается отдельным устройством. Известны законы поступления транзактов и длительность их обслуживания. Т.о. в системе существует 3 независимых параллельных процесса.
Возможный сценарий развития событий приведен на рис.3.7
Р
ис.
3.7 Пример параллельных процессов
Cij—события, относящиеся к соответствующему процессу (i). Для каждого процесса строится своя цепь событий, однако списки событий – общие для модели.
Формирование списка событий начинается со списка будущих событий. Сюда попадают такие события, время наступления которых превышает значение текущего модельного времени. На момент заполнения списка время наступления прогнозируемых событий должно быть известно.
Затем, событие с наименьшим временем переносится в список текущих событий. Если одновременно с ним событий нет, то оно обрабатывается и исключается из списка текущих событий. Процесс формирования и обработки списков приведен в таблице 3.2.
Таблица 3.2 Ведение списков событий
tмод |
0 |
t11 |
t21 |
t31 |
t12 |
t22 |
t32 |
t13 |
t23 |
Список будущих событий |
с11 с21 с31 |
с21 с31 с12 |
с31 с12 с22 |
с12 с22 с32 |
с22 с32 с13 |
с32 с13 с23 |
с13 с23 с33 |
с23 с33 |
--
|
Список текущих событий |
0 |
с11 |
с21 |
с31 |
с12 |
с33 |
с32 |
с13 |
с23 с33 |
( ! На шаге t22 в списке будущих событий нет с33, так как не запущен еще процесс (событие) с32 и неизвестно время его окончания).
Знание механизма ведения списка событий, возможность проследить в динамике цепь происходящих событий, во-первых, повышает уверенность создателя модели в том, что модель работает правильно и, во-вторых, облегчает процесс отладки и модификации модели.