Известно, что большую роль в имитационных моделях играет фактор
времени. По определению имитационное моделирование является методом
исследования динамических систем, в котором реальный объект
(система) заменяются имитационной моделью. Процесс моделирования
сопровождается отображением реального объекта (системы) в модель,
которая выполняется, изменяя свое состояние с течением времени,
причём время необратимо, оно не замедляется и не ускоряется.
Состояние системы определяется состоянием её элементов, а каждый
элемент обладает набором свойств (характеристик).
Прежде всего, следует определить, что следует понимать под термином
«время» в имитационном моделировании. В работе Fujimoto и других
работах по имитационному моделированию различают: физическое
(physical), модельное (system time) и процессорное (wallclock
time). Рассмотрим более подробно все эти 3 разновидности:
- Физическоевремя (physical-Tp) – это время, которое используется в
реальной (физической) системе, которую моделируют. Например, мы
моделируем работу некоторого предприятия в течение рабочего дня с
8.00 до 17.00.
- Модельное время (simulation time - Ts) – это представление
физического времени в модели. Так работу предприятия в модельном
времени можно представить отрезком времени [8.00,17.00], за единицу
модельного времени (h) можно принять временной интервал в 1 минуту,
в 10 минут, в 30 минут, в один час и т.д. Ts = Tp/h.
- Процессорное время (wallclock time - Tw) – время работы
симулятора на компьютере. Так, например, моделирование предприятия
может занять 1 час работы на компьютере.
Моделирование должно выполняться как можно скорее
(as-fast-as-possible), т.е. модельное время продвигается с гораздо
большей скоростью, чем процессорное. Например, работа некоторого
физического процесса длится несколько суток, единицу модельного
времени выбирают равной одному часу, а процесс моделирования на
компьютере выполняется за 30 минут.
Иногда (при использовании тренажёров) продвижение модельного
времени должно быть синхронизировано с процессорным. Такое
моделирование называют моделированием в реальном времени (real
time). Действительно, при использовании тренажёров человек
погружается с виртуальную среду, которая должна выглядеть как можно
более реалистичной.
Итак, одной из важнейших задач системы имитации является
продвижение модельного времени. Вначале кратко рассмотрим алгоритм
продвижения модельного времени в последовательном
моделировании.
Известно, что существуют различные виды имитационных моделей, в
основе которых лежит та или иная концепция:
- События (events).
- Процессы (processes).
- Объекты (objects) или агенты (agents).
- Непрерывные (continues) модели (системная динамика).
Событие – это изменение состояния системы, причём событие
происходит мгновенно. В промежутке между двумя событиями модель
остаётся неизменной. Процесс – это последовательность активностей,
а активность – это элементарная работы по переводу системы из
одного состояния в другое. Активность начинается и завершается
событием.
Как уже говорилось ранее, система моделирования, управляющая
выполнением модели, должна уметь продвигать модель из одного
состояния в другое. Продвижение модели из одного состояния в другое
выполняется по определённым правилам, эти правила определяют
сценарий поведения модели во времени, причинно-следственные связи
между активностями. Управляющая программа, которая выполняет
продвижение времени называется симулятором.
В зависимости от того, какая концепция лежит в основании
имитационной модели, системы моделирования делятся
процессо-ориентированные, событийно-ориентированные,
объектно-ориентированные, агентные.
Рассмотрим более подробно событийно-ориентированное
моделирование
В событийно-ориентированных системах моделирования приняты
следующие соглашения:
- модель продвигается во времени от события ei к событию ej,
которые изменяют состояние модели,
- логика наступления событий определяет последовательность смены
состояний модели, которые связаны с наступлением этих событий;
- время продвигается от события к событию;
Пусть время – частично упорядоченное множество T ={t1, t2,…,tn}.
Пусть существует множество событий ei Î E, i = 1,2..,n. Любое
событие может включать преобразование Sch: E ´ T ´ E, т.е. событие
ei (выполняющееся в момент времени ti) может планировать выполнение
другого события ej в момент времени tj и размещать его в календаре
событий. Календарь событий состоит из элементов, каждый из которых
содержит два поля:
- ссылку на запланированное событие (ei);
- модельное время, на которое запланировано событие (ti).
Таким образом, можно сказать, что календарь событий (обозначим его
SE) – это список элементов li, где каждый элемент li представляет
собой пару (ei , ti).
Управляющая программа (симулятор) должна выбрать из календаря
событий событие с минимальным временем.Это время становитсятекущим
модельным временем. Симулятор присваивает системной переменной с
текущим модельным временем (назовём эту переменную именем
Systemtime) минимальное значение времени, на которое запланировано
событие из календаря событий, т.е. Systemtime = min (ti). Далее
симулятор передаёт управление событию ei (с минимальным
временем).
Цель: Необходимо выбрать очередное событие в календаре событий и
передать ему управление: