Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций Моделирование систем.doc
Скачиваний:
52
Добавлен:
15.04.2019
Размер:
1.38 Mб
Скачать

4.3.Моделирующий алгоритм

Для расположения событий в хронологическом порядке необходимо вести запись2 событий, подлежащих последующей обработке. Это осуществляется путем фиксирования моментов наступления будущих событий. Сравнение этих моментов определяет затем выбор одного из событий для обработки. События выполняются в упорядоченной по времени последовательности, при этом имитационное время продвигается от одного события к другому.

Продвижение имитационного времени и порядок обработки событий контролируется управляющей программой (исполнительной программой, монитором моделирования, процессором). Пользователю необходимо только запланировать возникновение события, а управляющая программа сама определит порядок обработки каждого события в соответствующие моменты имитационного времени.

Уточним некоторые термины. В процессе имитации объекты чередуют занятие делом с бездействием или ожиданием в очереди, и наоборот. Когда объекты заняты, говорят, что они связаны активностью. События, которые определяют начало активностей, часто зависят от некоторых условий (например, от доступности ресурса). Это условные (conditional, contingent) события. Назначенные (bound, scheduled, occurrence-predictable) события, определяющие конец активностей, безусловно, расписаны к выполнению в соответствующие моменты времени. Диаграммы активностей показывают потоки или жизненные циклы объектов. Язык проектирования программ (псевдокод) используется для записи алгоритмов.

Рассмотрим псевдокод управляющей программы. Подход, ориентированный на активности, по существу, состоит из трех этапов:

a: <установить значение текущего имитационного

времени равным моменту наступления

следующего назначенного события>;

b: <для всех назначенных событий, происходящих

в это время>

<извлечь первый объект из календаря>;

<обработать событие>;

c: <сканировать условия для каждого действия>.

Основное отличие между подходом сканирования активностей и событийным подходом заключается в обработке условных событий. В подходе, ориентированном на активности, условные события рассматриваются как отдельные подпрограммы, тогда как в событийном подходе они дополняют планируемые (scheduled) события.

В моделях, ориентированных на описание процессов, подпрограммы кодируются для каждого процесса и должен использоваться свой вариант управляющей программы. Псевдокод, представленный ниже, основывается на управляющей программе, заложенной в gpss. Здесь объект всегда находится либо в календаре, либо в цепи приостановленных процессов. Сканирование условных событий заменено сканированием цепи приостановленных процессов:

a: <установить значение текущего имитационного

времени равным моменту наступления

следующего события>;

b: <для всех событий, происходящих в это время>

<извлечь первый объект из календаря>;

<активировать соответствующий процесс>;

if <процесс завершен>

then <избавиться от объекта>

else

if <объект вне календаря> then

<поместить его в конец

цепи приостановленных процессов>;

c: repeat

for <каждого объекта в цепи>

<активировать соответствующий процесс>;

if <объект продвинут> or <в календаре>

then <извлечь его из цепи>;

if <процесс завершен>

then <избавиться от объекта>

else

if <объект вне календаря> and

<продвинут>

then <поместить его в конец цепи

приостановленных процессов>

until <цепь сканирована> and

<все процессы активированы>.

Дискретно-событийная имитация прекращается при выполнении одного из следующих условий: имитационное время больше (или равно) времени окончания имитационного прогона, в календаре не осталось ни одного события для обработки.

Такова в общих чертах схема имитации дискретно-событийных моделей.

Можно, таким образом, сделать вывод, что для разработки программы дискретно-событийной имитационной модели необходимо написать управляющую программу, подпрограмму инициализации3, а также сами подпрограммы событий для описания изменений, происходящих в модели в моменты наступления этих событий. Необходимо также наличие в моделях механизмов обработки очередей, сбора статистики и выдачи отчетов, генерации псевдослучайных чисел.