Способ просмотра активностей имеет существенный недостаток, связанный с тем, что для каждой активности используются свои условия инициализаций, и в ряде случаев это приводит к неэффективной работе такой модели за счет многократного обращения к циклам при выполнении условий инициализаций активностей. В способе квазипараллелизма по событиям этот недостаток значительно устраняется, т.к. условия инициализации проверяются по событиям, т.е. в данном способе активностями модели являются события. Этот способ желательно использовать в том случае, когда различные компоненты K i реальной системы могут выполнять одни и те же ФД i j , которые смогут приводить к одним и тем же событиям С i j , т.е. некоторая группа таковых ФДi j может приводить к одному событию, которое и будет являться активностью.
Пусть ФД11, ФД12, ФД13 приводят к событию С11,
ФД21, ФД22, ФД23 приводят к событию С12,
ФД31, ФД32, ФД33 приводят к событию С13,
ФД14 приводит к событию С14.
В результате выполнения одних и тех же ФД i j происходят в системе одинаковые события С i j , которые между различными ФД не имеют связи, т.е. каждое функциональное действие ФДi j выполняется независимо друг от друга. Имитационные модели в этом способе исследователем описываются в двух частях:
1 часть. {AK i j} и набор проверки появления событий.
2 часть. Связана с инициализацией соответствующих активностей. При этом каждая активность имитирует выполнение некоторой группы ФД. В нашем примере АК 11 {ФД11, ФД12, ФД13} - активность состоит из группы функциональных действий.
Аналогично, активность АК 12 {ФД21, ФД22, ФД23} и т.д. Инициализация представленных активностей АК i j имеет тот же смысл, что и в предыдущем способе и выполняется с помощью УПМ. В процедурах проверки появление события Сi j реализуется зависимость выполнения ФД i j в зависимости от конкретных ситуаций, происходящих в реальной системе. Выполнение алгоритма АЛ i j в УПМ также называется обслуживанием активности АК i j . Завершение этого обслуживания связано с модификацией временной координаты, обслуживающей группу одинаковых ФД (Мt i j -> ФД i j ) у разных компонент Кi. По выполнении данного оператора, выполняется возвращение к УПМ. Обслуживание групповых активностей принято называть процедурами обслуживания событий. Таким образом, имитационная модель этого способа состоит из двух процедур:
1) Проверка выполнимости событий Сi j .
2) Обслуживание событий.
Выполнение вышеназванных процедур синхронизируется в модельном времени с помощью списка планирования в УПМ. Каждый элемент этого списка определяется моментом времени t i j и свершением события С i j , а также в этот список входят имя или номер той процедуры обслуживания события, которое должно выполняться после завершения свершившегося события. Схема взаимодействия вышеназванных процедур имитационной модели с УПМ имеет следующий вид:
ППО - подпрограммы обслуживания событий
УСС- условие совершения событий
ММСС - модификация момента свершения событий
Перед началом имитации подпрограмма начала имитации устанавливает все исходные значения параметров, определяющих условия инициализации групп активностей АК i j .
Примечание. Для событийного способа возможна группировка ФД i j по видам событий С i j , к которым они приводят, поэтому стремятся, чтобы эти активности АК i j аппроксимировали соответствующую группу ФД i j с одинаковой точностью, т.е. с одинаковым t i j (средним временем обслуживания). Множество событий С i j и является программой обслуживания, т.е. подпрограммой проверки условий и их выполнения.
Принцип проверки выполнимости условий появления в имитационной модели событий С i j тот же, что и в предыдущем способе. Алгоритм инициализации УПМ процедур обслуживания событий состоит в следующем: по первому циклу, где параметром цикла является максимальное число событий С i j происходит последовательная проверка выполнимости условий появления событий, при выполнимости которых заполняется список инициализированных событий, в который заносятся имена событий. По завершению этого цикла проверяется условие, при котором осуществляется новый прогон. Если список не пуст - второй цикл. Параметром второго цикла является число инициализированных событий в первом цикле. По второму циклу последовательно осуществляется передача управления на выполнение процедуры обслуживания событий. Обслуживание событий реализуется с помощью алгоритма соответствующей групповой активности и завершается алгоритм оператором модификации Мt i j . Этот оператор модифицирует значение момента свершения данного события в будущем и возвращает управление второму циклу. С помощью оператора ММССt i j формируется список будущих событий. Для того, чтобы учесть появление новых событий во время обслуживания списка свершившихся событий по окончании цикла два (переход 1) устанавливается начальное значение параметра цикла 1 и повторяется просмотр условий свершения событий, т.е. программа опять работает по первому циклу. Как только список свершившихся событий окажется пуст, производится корректировка модельного времени с помощью подпрограммы календаря, которая ищет в списке запланированных событий минимальное значение момента инициализации:
t 0 ‘ = t 0 + t i j min .
Новое модельное время t 0 ‘ является первоначальным при переходе к установке параметров цикла 1. Если t 0 ‘ < t М опять закладываются параметры первого цикла и все повторяется. При невыполнении условия завершения имитации управление передается на установку цикла 1 и программа повторяется. Когда t 0 ‘ ³ t М , моделирование завершается.
Выводы: объединение нескольких активностей в группы существенно сокращает размеры циклов 1, 2, а значит и имитации УПМ. Поэтому этот способ имитации считается более экономичным, чем способ, осуществляемый с помощью активностей, при этом имеется существенный недостаток, связанный с объединением активностей различных компонент в составе процедур обслуживания событий. Такое объединение может привести к созданию имитационной модели с плохими признаками ее сходства с реальной системой.
0 коммент.:
Отправить комментарий