
- •Введение
- •1. Концептуальные модели
- •2. Языки моделирования
- •3. Способы дискретного моделирования
- •4. Событийное моделирование
- •4.1. Общие положения
- •4.2. Алгоритм дискретно-событийной имитации
- •4.3. Пример событийной модели
- •5. Сканирование активностей
- •6. Процессно-ориентированный подход
- •7. Непрерывное имитационное моделирование
- •7.1. Общие положения
- •7.2. Алгоритм интегрирования рунге-кутта-фелберга
- •7.3. Пример непрерывно-дискретной модели
- •8.1. Стохастические системы и процессы
- •8.2. Вероятность
- •8.3. Законы распределения
- •8.4. Генерация псевдослучайных чисел
- •8.5. Основные понятия математической статистики
- •9. Системы имитационного моделирования
- •9.1. Gpss
- •9.2. Слам II
- •9.3. Matlab
- •9.4. BpSimulator
- •9.5. Uml
- •9.6. Rational Rose
- •9.7. AnyLogic
- •10. Технология имитационного моделирования
4.2. Алгоритм дискретно-событийной имитации
После запуска модели производится инициализация переменных в главном модуле и в процедуре INTLC.
Поскольку алгоритм имитации ориентирован на обработку вызываемых из календаря событий, необходимо перед первым обращением к календарю запланировать хотя бы одно событие. Это делается последним оператором в модуле INTLCпутем вызова процедуры планированияSCHDL.
Модуль SCHDLпередает в календарь все сведения о будущем событии: его атрибуты, код классаKEVNTи время свершенияTSOB(содержит две части - известное время и приращениеDTIME, рассчитываемое в зависимости от события. Поскольку известная часть обычно является текущим временемTNOW, планировать можно не само времяTSOB, а только его приращениеDTIME. Учитывая важность понятия "времени свершения", в дальнейшем будем оперировать в основном его символическим эквивалентомTSOB).
Смысловой аспект планирования событий относится к информационным технологиям (алгоритмам), используемым в модели, поскольку в реальном объекте данный момент может отсутствовать в принципе. Непосредственная имитация самих процессов в объекте начинается с выбора из календаря первого события с минимальным временем свершения TSOB. Информация об извлеченном событии используется для проведения ряда операций. Так, например,TSOBдает возможность обновить системное время (TNOW=TSOB). Код классаKEVNTнеобходим для поиска соответствующего алгоритма реализации события. Атрибуты события используются для определения других действий при имитации.
Поиск программы реализации события осуществляет специализированная процедура EVENT, в которую при ее вызове передается код события. По коду события программаEVENTлибо вызывает саму подпрограмму реализации, либо ищет у себя внутри встроенный блок алгоритма свершения события.
После реализации события проверяются условия окончания прогона. Если прогон можно продолжить, идет обращение в календарь для извлечения очередного ближайшего по времени события. Если прогон должен быть завершен, то накопленная в процессе прогона информация обрабатывается и формируется отчет по прогону. Затем проверяются условия окончания всех прогонов. Если прогоны продолжаются, управление передается процедуре INTLCдля выполнения очередного прогона. При завершении всех прогонов составляется итоговый отчет по всей имитации.
Нетрудно заметить, что все основные шаги по дискретно-событийной имитации будут повторяться для любых моделируемых процессов. Поэтому управление ходом имитации (информационный технологический алгоритм) независимо от задачи поручают отдельной процедуре системного типа - процессору имитации СЛАМ, вызываемому из главного модуля перед первым прогоном (рис. 4.1).
Как показывает анализ, всегда в модели часть процедур может быть
Главный модуль
Вызов INTLC
Извлечение первого
события
Обновление TNOW
Вызов EVENT
Отчет по прогону
Итоговый отчет
Нет
Да
Да
Нет
Рис. 4.1. Блок-схема
алгоритма управления событийной
моделью
использована в различных задачах, а часть прорабатывается с учетом конкретной ситуации. Первая группа модулей является системной, вторая –пользовательской (объектной).