Алгоритмы управления временем разделяют на два основных типа: так называемые пособытийный и пошаговый (в англоязычной литературе next event и time mapping соответственно).
При использовании пошагового метода отсчет системного времени ведется через фиксированные интервалы времени, называемые шагом. События, произошедшие на этом интервале времени, считаются наступившими в момент окончания интервала.
Погрешность в измерении временных характеристик системы зависит в этом случае от величины шага интегрирования. В общем виде алгоритм моделирования с постоянным шагом представлен на рис.6.8, где обозначено – текущее значение модельного времени, - конечное время интервала моделирования, - постоянный шаг по времени.
Выбор величины шага моделирования существенным образом влияет как на точность получаемых результатов, так и на машинное время имитационного прогона. Уменьшение шага ведет к повышению точности имитации, но и требует повышенных затрат временных ресурсов.
Универсальной методики решения этой проблемы не существует, но во многих случаях можно использовать одни из следующих подходов:
- принимать величину шага равной средней интенсивности возникновения событий различных типов;
- выбирать величину равной среднему интервалу между наиболее частыми (или наиболее важными) событиями.
В пособытийных методах системное время каждый раз изменяется на максимально возможную величину, равную интервалу времени до наступления очередного события.
В этом случае события обрабатываются в порядке их наступления, а одновременно наступившими являются только те из них, которые являются одновременными в действительности.
Метод моделирования по особым состояниям сложен в реализации, так как для него требуется разработка специальной процедуры планирования событий (так называемого календаря событий). Обобщенная схема алгоритма пособытийного моделирования представлена на рис.6.9, где обозначен прогнозируемый момент наступления будущего события.
Таким образом при использовании пособытийного метода длина шага выбирается оптимальной, но затраты времени увеличиваются за счет обработки списков событий.
В случае пошагового метода положение обратное: списки событий содержат характеристики только текущих событий, длина шага постоянна.
В тех случаях, когда в течение каждого шага по времени наступает лишь одно событие, пошаговый метод более целесообразен, так как преимущество пособытийного метода – большая длина шага – при этом не используются, а необходимость в обработке списков событий отпадает.
Применение пособытийного метода предпочтительно в случае, если частота наступления событий невелика, тогда большая длина шага позволяет ускорить ход модельного времени, а обработка короткого календаря событий не занимает много машинного времени. Для выбора метода продвижения модельного времени можно воспользоваться следующими рекомендациями.
Метод постоянного шага предпочтительнее, если:
- события появляются регулярно, их распределение во времени достаточно равномерно;
- число событий велико и моменты их появления близки;
- невозможно заранее определить моменты появления событий.
Методы пособытийного моделирования целесообразно использовать, если:
- события распределяются во времени неравномерно или интервалы между ними велики;
- предъявляются повышенные требования к точности определения взаимного расположения событий во времени.