Преобразование сетевых моделей в имитационные событийные графы

УДК 519.711.3

ПРЕОБРАЗОВАНИЕ СЕТЕВЫХ МОДЕЛЕЙ В ИМИТАЦИОННЫЕ СОБЫТИЙНЫЕ ГРАФЫ

© 2008 Е. А. Бабкин

доцент кафедры программного обеспечения и администрирования информационных систем, канд. техн. наук, доцент, Ьеа'а,ки1^кпе1. ги

Курский государственный университет

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

Ключевые слова: событие, сетевая модель, событийные графы, ресурс, универсальный имитационный событийный граф.

1.Введение

Для решения экономических задач сетевого планирования и управления обычно используются сетевые модели [Исследование... 1981]. Сетевая модель представляет собой описание комплекса работ, необходимых для выполнения некоторого проекта в терминах событий или работ. Основными элементами сетевой модели являются проект, работа, событие и ресурс.

ПРОЕКТ - логически связанная совокупность работ. Работы могут выполняться параллельно или последовательно, для начала выполнения работы все предыдущие работы должны быть выполнены.

РАБОТОЙ является элементарное действие (операция, шаг) на данном уровне представления проекта. Каждая работа имеет определенную длительность во времени и требует для своего выполнения определенных ресурсов.

СОБЫТИЕМ называется окончание предшествующих работ и начало последующих. Событие характеризуется временем, когда оно происходит. Событие происходит мгновенно, то есть имеет нулевую длительность во времени.

РЕСУРС - это объект (средство, запас), необходимый для выполнения работ и распределяемый между ними. Ресурс может одновременно выделяться нескольким работам.

Сетевая модель представляется в виде ориентированного графа [Экономикоматематические методы. 2001]. Каждая вершина сетевой модели отображает событие, а дуги - работы, которые помечаются временем и ресурсами, необходимыми для выполнения работы.

Наиболее подробно рассмотрены детерминированные модели [Там же]. В действительности предположение о том, что время выполнения каждой работы известно точно, выполнимо редко. Чаще всего продолжительность работ является случайной величиной, которую можно характеризовать минимальным, максимальным и средним значением, законом распределения и дисперсией. Если продолжительность работ не

детерминирована, то мы имеем дело с сетевым планированием в условиях неопределенности. В этом случае используются стохастические сетевые модели.

Если для работ известны только минимальное и максимальное время выполнения, то используются алгоритмы ПЕРТ [Исследование. 1981; Прицкер 1987], по которым рассчитываются наиболее раннее время начала и наиболее позднее время окончания работ в сети ПЕРТ. Однако для более точного анализа, в случае если известны статистические параметры времен выполнения работ и объема необходимых ресурсов, используются сетевые имитационные модели [Исследование. 1981; Экономикоматематические методы. 2001]; на ЭВМ выполняется многократный прогон модели и рассчитываются основные характеристики сетевой модели. Большой объем испытаний позволяет точнее определить закономерности моделируемой сети.

Имитационное моделирование используется для принятия решения: во-первых, для минимизации объема требуемых ресурсов при заданных ограничениях на последовательность работ и на время выполнения проекта и, во-вторых, для минимизации длительности проекта при заданных ограничениях на последовательность работ и на объем требуемых ресурсов. При этом для поиска решения необходимо варьировать объемы и ограничения на выделяемые для выполнения работ ресурсы.

Поскольку сетевые модели описывают параллельные временные процессы выполнения работ в терминах событий, то для их имитационного моделирования могут использоваться событийные графы (см. [Schruben 1983; Бабкин 1988]). Для задач планирования и управления можно использовать качественные имитационные графы, что позволяет разрабатывать достаточно универсальные имитационные модели (см. [Ingalls 1999; Ingalls 2000]). В настоящей работе рассматривается преобразование сетевой модели в имитационный событийный граф на базе подхода, изложенного нами ранее [Бабкин 2005; Бабкин 2005а].

2. Преобразование сетевой модели без ограничений на ресурсы в событийный

граф

Для выполнения имитационного моделирования сетевой модели преобразуем её в модель в виде событийного графа.

СОБЫТИЙНЫЙ ГРАФ G отображает причинно-следственные связи между событиями ei и состоит из четырех типов вершин и двух типов дуг [Бабкин 1988].

Вершина первого типа отображает событие е/, второго типа - условное разветвление по логическому условию Pj, третьего типа A - начало распараллеливания хода процесса, четвертого типа В - конец распараллеливания хода процесса. Вершинам Pj и В ставятся в соответствие функции fPj и fB, которые определяют правила перехода к следующим вершинам.

Дуга первого типа отображает причинно-следственную связь между событиями ei и ej без задержки во времени (Т = 0), то есть это дуга мгновенного следования события ej после события ei. Дуга второго типа - с задержкой во времени (Т > 0), то есть это дуга следования с задержкой. Дуга второго типа помечается величиной задержки Tu.

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

Преобразование сетевой модели в событийный граф состоит из следующих шагов.

Первый шаг - выделение процессов и активностей. Каждой работе/ в сетевой модели ставится в соответствие активность щ, проекту - процесс выполнения работ П. Кроме этого вводится процесс моделирования Пм, включающий многократное выполнение процесса П.

Второй шаг - определение множества событий. На этом шаге по совокупности выделенных динамических объектов определяется множество событий модели. Всем динамическим объектам соответствуют события начала и конца: енпм - событие начала процесса моделирования Пм, екпм - событие конца процесса моделирования Пм; енп - событие начала процесса П, екп - событие конца процесса П; ен^ - событие начала активности а/, екщ - событие конца активности а/.

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

Четвертый шаг - преобразование в макрособытийный граф в программнореализуемой форме. Построенный исходный событийный граф преобразуется в макрособытийный граф в программно-реализуемой форме в виде совокупности макрособытий (событийных секций).

Макрособытие объединяет группу взаимосвязанных событий, то есть является сложным событием [Бабкин 1988]. Макрособытиям соответствуют подграфы событийного графа, которые удовлетворяют следующим условиям [Там же]:

1) все дуги, соединяющие вершины внутри подграфов, являются дугами первого

типа;

2) подграф имеет одну точку входа.

Точкой входа подграфа называется вершина, в которую входят дуги первого или второго типа из других подграфов. Полученные в результате выделения подграфов макрособытия могут соответствовать событиям сетевой модели.

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

Рассмотрим построение событийного графа для сетевой модели на примерах последовательного и параллельного выполнения работ.

Последовательное выполнение работ

В качестве примера рассмотрим сетевую модель последовательного выполнения двух работ (1,2) и (2,3) (рис. 1); здесь 1 - событие начала выполнения проекта и первой работы, 2 - событие окончания выполнения первой работы и начала выполнения второй работы, 3 - событие окончания выполнения второй работы и проекта.

Рис.1. Сетевая модель последовательного выполнения двух работ

В этой сетевой модели можно выделить следующие динамические объекты: активности а1 (работа (1,2)) и а2 (работа (2,3)), процесс выполнения работ П и процесс моделирования Пм, и соответствующие события начала и конца активностей и процессов: ена1, еКа1, ена2, еКа2, ет, екп, енпм и еКпм. Т1 и Т2 - время выполнения активностей а1 и а2 соответственно.

На рисунке 2 приведен соответствующий исходный событийный граф рассматриваемой сетевой модели, в котором:

] - текущее количество прогонов модели;

N - требуемое количество прогонов модели;

Р1 - анализ конца моделирования (/’ =N - конец моделирования, ] ^ - продолжение моделирования).

Рис.2. Исходный имитационный событийный граф последовательного выполнения двух работ

Рядом с вершинами енпм и екп приведены дополнительные операторы формирования текущего количества прогонов модели /

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

В результате выделяются макрособытия: Е0 - начало моделирования, Е1 - начало процесса П и активности а1 , Е2 - конец активности а1, начало активности а2, Е3 -конец активности а2, конец процесса П, анализ конца моделирования Р1, Е4 - конец моделирования.

Рис.3. Имитационный событийный граф последовательного выполнения двух работ в программно-реализуемой форме

Событийный граф на уровне макрособытий приведен на рисунке 4. Причинноследственные связи между событиями с длительностью 0 представлены дугами первого типа.

3 =3+1

Рис. 4. Событийный граф последовательного выполнения двух работ на уровне макрособытий

Полученный имитационный макрособытийный граф структурно совпадает с графом сетевой модели, дополнительно введены только события начала Е0 и конца Е4 моделирования и дуга возврата для многократного прогона модели при условии, что выполненное количество прогонов / меньше заданного N.

Параллельное выполнение работ

Рассмотрим сетевую модель параллельного выполнения двух работ (1,2) и (1,3) (рис. 5.). Для разделения событий окончания работ в сетевой модели вводится фиктивная работа (2,3) со временем 0. Это делается для того, чтобы различные работы имели разное обозначение.

В этой сетевой модели можно выделить следующие динамические объекты: активности а1 (работа (1,2)) и а2 (работа (1,3)), процесс выполнения работ П и процесс моделирования Пм, и соответствующие события начала и конца активностей и процессов: ена1, ека1, ена2, ека2, енп, ет, енпм и екпм. Т1 и Т2 - время выполнения активностей а1 и

а2 соответственно.

Рис.5. Сетевая модель параллельного выполнения двух работ

Соответствующий исходный событийный граф приведен на рис. 6, в котором Р1 - анализ конца моделирования (/ =N - конец моделирования, / ^ - продолжение моделирования); N - количество прогонов модели; А - начало параллельного выполнения процесса; В - конец параллельного выполнения процесса. Вершина В характеризуется функцией /В: следующая вершина - событие екп - выполняется после выполнения всех переходов к вершине В - от вершин-событий ека1 и ека2, то есть переход к вершине екп производится по последнему из двух переходов от вершин-событий ека1 и ека2.

Возможны различные варианты преобразования событийного графа в программно-реализуемую форму в зависимости:

- от вида операций в программной модели соответствующих событиям ека1 и

ека2;

- цели по наблюдению макрособытий на уровне макрособытийного графа. Рассмотрим влияние на преобразование событийного графа первого фактора:

вида операций в программной модели.

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

Если операции, соответствующие событиям ека1 и ека2, различны, то эти события несовместимы. В этом случае событийный граф в программно-реализуемой форме будет содержать следующие макрособытия (рис. 7): Е0 - начало моделирования, Е1 - начало процесса П и активностей а1 и а2, Е2 - конец активности а1, Е3 - конец активности а2, Е4 - конец параллельного выполнения ветвей процесса (вершина В), конец процесса П и анализ конца моделирования P1, Е5 - конец моделирования.

Рис.7. Событийный граф параллельного выполнения двух работ в программно-реализуемой форме: операции для событий ека1 и ека2 различны

Если операции эквивалентны или отсутствуют, то события ека1 и ека2 совместимы: ека1 = ека2 = еш1,2. В Этом случае точки входа подграфа Е2 (рис. 8) по дуге ена1 - ека1,2 и по дуге ена2 - ека1,2 также совмещаются, то есть подграф Е2 имеет одну точку входа I1.

Рис.8. Событийный граф параллельного выполнения двух работ в программно-реализуемой форме: операции для событий ека1 и ека2 эквивалентны или отсутствуют

Таким образом, соответствующий событийный граф в программно-реализуемой форме будет содержать следующие макрособытия: Е0 - начало моделирования, Е1 - начало процесса П и активностей а1 и а2, Е2 - конец активностей а1 и а2, конец параллельного выполнения ветвей процесса (вершина Б), конец процесса П и анализ конца моделирования Р1, Е3 - конец моделирования.

Если операции для события ека1 существуют, а для события ека2 отсутствуют, то в графе можно выделить следующие макрособытия (рис. 9): Е0 - начало моделирования, Е1 - начало процесса П и активностей а1 и а2, Е2 - конец активности а1, Е3 - конец активности а2, конец параллельного выполнения ветвей процесса (вершина Б), конец процесса П и анализ конца моделирования Р1, Е4 - конец моделирования. Так как событие ека2 является пустым событием, макрособытие Е3 имеет одну точку входа 11.

Рис.9. Событийный граф параллельного выполнения двух работ в программно-реализуемой форме: операции для события ека1 существуют, а для события ека2 отсутствуют

Если операции для события ека1 отсутствуют, а для события ека2 существуют, то в графе можно выделить следующие макрособытия (рис. 10): Е0 - начало моделирования, Е1 - начало процесса П и активностей а1 и а2, Е2 - конец активности а2, Е3 - конец активности а1, конец параллельного выполнения ветвей процесса (вершина Б), конец процесса П и анализ конца моделирования Р1, Е4 - конец моделирования. Макрособытие Е3 имеет одну точку входа 11.

Рис.10. Событийный граф параллельного выполнения двух работ в программно-реализуемой форме: операции для события ека1 отсутствуют, а для события ека2 существуют

Таким образом, существуют различные варианты представления событийного графа на уровне макрособытий (рис. 11).

Если требуется определять значения некоторых параметров и после окончания работы (1,2) и после окончания работы (1,3) (см. рис. 7), то граф на уровне макрособытий будет соответствовать рисунку 11а.

Если не требуется в явном виде разделять события конца активности а1 и конца активности а2 (ека1 и ека2) (см. рис. 8), то событийный граф на уровне макрособытий будет соответствовать рисунку 11б.

©Ч3>

і =0

б)

в) г)

Рис. 11. Варианты событийных графов параллельного выполнения двух работ на уровне макрособытий

Если после окончания работы (1,2) (событие ека1) требуется выполнить какие-либо операции (подсчитать, например, ранний срок окончания работы (1,2)), а после окончания работы (1,3) - не требуется (см. рис. 9), то событийный граф на уровне макрособытий будет соответствовать рисугку 11в.

Аналогично если после окончания работы (1,3) (событие ека2) требуется выполнить какие либо операции, а после окончания работы (1,2) - не требуется (см. рис. 10), то событийный граф на уровне макрособытий будет соответствовать рисунку 11г.

Заметим, что граф, изображенный на рисунке 11в, близок к сетевому графу (см. рис. 5).

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

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

Рассмотрим обобщение макрособытия Е/ для сетевой модели без ограничений на ресурсы. На рисунке12 приведен событийный подграф макрособытия Е/ для сетевой модели с раздельными ресурсами, когда операции для событий екУ1, ..., екУЬ эквивалентны или отсутствуют. В этом случае вершине / сетевой модели соответствует вершина макрособытия Е/.

Рис. 12. Событийный подграф вершины / для сетевой модели без ограничений на ресурсы

Содержание макрособытия Е/ - после окончания всех работ У1, ., Уь начинаются работы Ж1, ..., Жк.

В программной модели в соответствующей событийной секции Е{.

- выполняется операция ОкУ, соответствующая событиям екУ1, ..., екУЬ;

- определяется (вершина В/) окончание параллельно выполняющихся работ У1, ., УЬ, для этого выполняется подсчет количества выполнений события Е1 - рг:= рТ1 +1;

- если рг1 = Ь (все работы У1, ., Уь закончены), то выполняются операции ОнЖ1, . ., ОнЖК, соответствующие событиям енЖ1, ..., енЖК, и планируются макрособытия, включающие события екЖ1, ..., екЖК окончаний работ Ж1, ..., Жк через время ТЖ1,

• ••, Тжк.

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

Рис. 13. Событийный подграф вершины / для сетевой модели без ограничений на ресурсы

На рисунке 13 приведен событийный подграф для вершины / сетевой модели без ограничений на ресурсы, когда операции для событий екУ1, ., екУЬ неэквивалентны.

Каждой вершине / сетевой модели в этом случае соответствуют в событийном имитационном графе две группы вершин:

- макрособытия ЕкУ1, ., ЕкУЬ окончания предшествующих работ У1, ., Уь;

- макрособытие Е/ окончания всех работ и начала следующих работ И1, ., Ик.

Содержание макрособытия ЕкУ/ - окончание работы У/. В программной модели в

соответствующей событийной секции ЕкУ1

- выполняется операция ОкУ/ соответствующая событию екУ/;

- вызывается или планируется событийная секция Е/.

Содержание макрособытия Е/ - после окончания всех работ У1, ., Уь начинаются работы И1, ., Ик. В программной модели в соответствующей событийной секции Е/

- определяется (вершина В/) окончание параллельно выполняющихся работ У1, ., УЬ, для этого выполняется подсчет количества выполнений события Е1 - рг:= рТ1 +1;

- если рг/ = Ь (все работы У1, ., Уь закончены), то выполняются операции ОнИ1, ., ОнИК, соответствующие событиям енИ1, ..., енИК, и планируются макрособытия, включающие события екИ1, ., екИК окончаний работ И1, ., Ик через время ТИ1, ., ТИк.

Это наиболее общий случай, позволяющий создавать хотя и избыточные, но мало изменяемые программные модели. Имитационная событийная модель, построенная таким образом, меньше изменяется на уровне макрособытий при изменении целей и задач имитационного эксперимента. При таком подходе вершина / сетевой модели, имеющая один вход, заменяется одним макрособытием Е/ событийного графа. Вершина /, имеющая несколько входов, заменяется группой макрособытий ЕкУ1, ., ЕкУЬ и Е/ событийного графа.

Рассмотрим пример сетевой модели без ограничений на ресурсы (рис.14).

Вершины 1, 2 и 3 имеют не более одного входа, поэтому им в имитационном макрособытийном графе (рис. 15) соответствуют макрособытия Е1, Е2 и Е3. Вершины 4 и 5 имеют по два входа, поэтому им соответствуют макрособытия Ека24, Еказ4, Е4 и Еказ5, Ека45, Е5 соответственно.

без ограничений на ресурсы

3. Преобразование сетевой модели с ограничениями на ресурсы в событийный

граф

В сетевой модели с ограничениями на ресурсы для каждой работы щ указывается, кроме времени выполнения 7), ресурс Яи и его величина Ги), необходимые для выполнения работы а). Таким образом, в модели появляется статический объект - ресурс, и события занятия ресурса езЯи освобождения ресурса еоЯи. Поскольку величина ресурса ограничена ги, перед занятием ресурса необходима проверка возможности выделения требуемого объема ресурса ги). Если ресурса недостаточно, то соответствующая работа должна ожидать его освобождения. Поэтому с каждым ресурсом Яи связан еще один статический объект - очередь работ Qu, и в событийной модели появляются события занятия очереди езци и освобождения очереди еоци.

Для проектов с последовательно выполняемыми работами должно быть ги) < ги, иначе задача не имеет решения (время ожидания бесконечно и время выполнения проекта бесконечно). В этом случае ресурс Яи, очередь Qu и связанные с ними события, как и в событийной модели без ограничений на ресурсы, можно не отображать.

Для параллельно выполняемых работ при занятии ресурса необходимо анализировать его состояние. Если гиз + ги) < ги, где гиз - величина занятого ресурса Яи, то ресурс можно занять. Если гиз + ги) > ги, то работа а) помещается в очередь Qu ресурса Яи.

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

Рассмотрим фрагмент сетевой модели с ограничениями на ресурсы (рис. 16), содержащий вершину / и вершины-предшественники 1, ..., к и вершины-последователи), ., г. Каждая работа (дуга), кроме фиктивных работ, характеризуется парой Ц, Г), где %

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

Рис. 16. Фрагмент сетевой модели, содержащий вершину /

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

На рисунке 17 приведен событийный подграф для вершины / сетевой модели с ограничениями на ресурсы. Здесь

Ен1/ - макрособытие начала работы 1/;

Ек1/, ..., Екы - макрособытия окончания предшествующих работ 1/, ..., к/ соответственно;

Е/ - макрособытие окончания всех предшествующих работ и анализа начала следующих работ;

Ен/), ., Ен) - макрособытия начала следующих работ у, ., /г;

Енги ., Енгм - макрособытия начала работ 21, ., 2^, выполняемых параллельно и конкурирующих за ресурсы с предшествующими работами 1/, ..., к/;

ЕкУ1, ..., ЕкУМ - макрособытия окончания работ У1, ..., УМ, выполняемых параллельно и конкурирующих за ресурсы с работами-последователями у, ., /г.

Рис. 17. Событийный подграф вершины і для сетевой модели с ограничениями на ресурсы

Содержание макрособытия Ек1і - окончание работы 1і. В программной модели в соответствующей событийной секции Ек1і:

- выполняется операция Ок1і, соответствующая событию ек1і;

- освобождается ресурс ги=Яи - событие гоКи;

- выполняется анализ (вершина В1і) окончания параллельно выполняющихся работ 1і, ..., Ні, для этого выполняется подсчет количества окончаний -ргі:=ргі +1;

- если ргі = Ь (все работы 1і, ., Ні закончены), то вызывается или планируется через время 0 событийная секция Еі;

- если ргі < Ь, то работа 1і заканчивается не последней из параллельно выполнявшихся работ 1і, ., Ні, в этом случае (на рис. 17 выход вершины В1і помечен кружочком) анализируется

(условная вершина Р1і) состояние очереди ^ к ресурсу Яи и на основе заданной дисциплины обслуживания выбирается из очереди (событие вдф) одна из работ Z1, ., и вызывается или планируется через время 0 соответствующая событийная секция (Енг1, ., Енгы)-

В событийном графе на рисунке 17 вершина В1і окончания параллельного выполнения работ вынесена и размножена в макрособытия Ек1і, ., ЕкНі. Кроме того, введен второй инверсный выход у этой вершины, помеченный знаком инверсии. Переход, связанный с этим выходом, осуществляется при невыполнении условия окончания /В1і.

Содержание макрособытия Еі - анализ начала следующих работ у, ., іг. В программной модели в соответствующей событийной секции Еі.

- выполняется анализ (условная вершина Рі) состояния ресурсов Я1, ., Яи и очередей к ресурсам Q1, ., Qи и на основе заданной дисциплины обслуживания:

• выбирается из очереди Qu (событие е^и) одна из ожидающих выполнения работ Z1, ..., ^ и выбираются или планируются соответствующие событийные секции (Енги ., Енг^),

• если есть достаточный свободный объем ресурса Яхє{Я1, ..., Яи}, то для работ-последователей у, ..., іг выбираются или планируются соответствующие событийные секции Еніу, ., Еніг,

• если нет достаточного свободного объема ресурса Яхє{Я1, ..., Яи}, то работы-последователи у, ..., іг помещаются в очередь ^ ресурса Ях (события eзQl, ., eзQu).

Содержание макрособытия Еніу - начало работы у. В программной модели в соответствующей событийной секции Еніу.

- занимается ресурс гіу=Ях - событие езЯх;

- выполняется операция Ону, соответствующая событию ену;

- планируется событийная секция Еку.

Таким образом, каждой вершине і сетевой модели при наличии параллельно выполняемых работ с конкуренцией за ресурсы в общем случае соответствует в событийном имитационном графе три группы вершин:

- макрособытия окончания предшествующих работ Ек1і, ., ЕкНі;

- макрособытие окончания всех работ и анализа начала следующих работ Еі;

- макрособытия начала следующих работ Еніу, ., Ену.

Если вершина і сетевой модели при наличии параллельно выполняемых работ с конкуренцией за ресурсы имеет один вход, то в событийном имитационном графе ей соответствует две группы вершин:

- макрособьпие окончания предшествующей работы и анализа начала следующих работ Е;

- макрособытия начала следующих работ Еніу, ., Еніу.

Если для вершины і сетевой модели нет параллельно выполняемых работ с конкуренцией за ресурсы, то преобразование идет по правилам для сетевой модели без ограничения на ресурсы.

Рассмотрим пример сетевой модели с ограничениями на ресурсы (рис.18). Предположим, что всем работам 12, 23, 24, 45, 46 и 56 для выполнения требуется один ресурс в соответствующем объеме г12, г23, г24, г45, г46 и г56.

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

Работа (1,2) выполняется последовательно с остальными работами, поэтому вершина 1 заменяется одним макрособытием Е1.

Параллельно могут выполняться, при наличии соответствующих ресурсов, работы (2,3) и (2,4). В связи с этим вершина 2 имеющая один вход заменяется вершинами

Е2-, Ен23 и Ен24.

Если ресурса недостаточно, то работы (2,3) и (2,4) выполняются последовательно в любом порядке: ((2,3); (2,4)) или ((2,4); (2,3)). Поэтому после окончания этих работ (события Ек23 и Ек24) необходимо освободить соответствующий ресурс, выполнить анализ очереди к этому ресурсу и, если в очереди находится работа, начать эту работу

(события Ен23 и Ен24). В событийном графе этому соответствуют переходы Ек2з ^

Ен24 и Ек24 ^ ЕН23. При п параллельно выполняющихся работах максимальная длина очереди к одному ресурсу может быть п-1.

Вершине 3 не соответствует ни одна вершина в событийном графе, поскольку работа (3,4) является фиктивной.

Вершина 4 имеет два входа и два выхода, причем работы (4,5) и (4,6) могут выполняться параллельно и конкурируют за ресурсы, поэтому она заменяется пятью макрособытиями Ек23, Ек24, Е4, Ен45 и Ен46-

Вершина 5 имеет один вход и один выход, причем работа (5,6) может выполняться параллельно и конкурирует за ресурсы с работой (4,6), поэтому она заменяется двумя макрособытиями Е5 и Ен5б.

Вершина 6 имеет два входа и ни одного выхода, причем предшествующие работы (5,6) и (4,6) могут выполняться параллельно и конкурируют за ресурсы, поэтому она заменяется тремя макрособытиями Ек5б, Ек4б и Е6.

Работа (4,6) может выполняться одновременно с работами (4,5) и (5,6). Поэтому

возможны переходы Ек46 ^ Ен45, Ек46 ^ Ен56, Е5 ^ Ен46 и Ек56 ^ Ен46-

Содержание макрособытия Е1 - начало работы 12. В программной модели в соответствующей событийной секции Е1

- занимается ресурс г12;

- выполняется операция начала работы Он12;

- планируется событийная секция Е2 через время Т12.

Содержание макрособытия Е2 - окончание работы 12 и анализ начала следующих работ 23 и 24. В программной модели в соответствующей событийной секции Е2:

- выполняется операция окончания работы Ок12;

- освобождается ресурс г12;

- выполняется анализ требований к ресурсу Я работ 23 и 24:

• если есть достаточный свободный объем ресурса Я (г23 + г24 < г), то для работ-последователей 23 и 24 выбираются или планируются одновременно соответствующие событийные секции Ен23 и Ен24,

• если нет достаточного свободного объема ресурса Я (г23 + г24 > г), то на основе заданной дисциплины обслуживания выбирается или планируется только одна соответствующая событийная секция - либо Ен23, либо Ен24, а вторая работа помещается в очередь Q ресурса Я.

Содержание макрособытия Ен23 - начало работы 23. В программной модели в соответствующей событийной секции Ен23:

- занимается ресурс г23;

- выполняется операция начала работы Он23;

- планируется событийная секция Ек23 через время Т23.

Аналогично содержание остальных макрособытий начала работ Ен24, Ен45, Ен46 и

Ен56.

Содержание макрособытия Ек23 - окончание работы 23. В программной модели в соответствующей событийной секции Ек23:

- выполняется операция окончания работы Ок23;

- освобождается ресурс г23;

- вызывается или планируется через время 0 событийная секция Е4;

- анализируется состояние очереди Q к ресурсу Я, и если она непуста, то выбирается из очереди работа 24 и вызывается или планируется через время 0 соответствующая событийная секция Ен24.

Содержание макрособытия Ек24 - окончание работы 24. В программной модели в соответствующей событийной секции Ек24:

- выполняется операция окончания работы Ок24;

- освобождается ресурс г24;

- вызывается или планируется через время 0 событийная секция Е4;

- анализируется состояние очереди Q к ресурсу Я и если она непуста, то выбирается из очереди работа 23 и вызывается или планируется через время 0 соответствующая событийная секция Ен23.

Содержание макрособытия Е4 - окончание работ 23 и 24 и анализ начала следующих работ 45 и 46. В программной модели в соответствующей событийной секции Е4:

- выполняется анализ окончания параллельно выполняющихся работ 23 и 24, для этого осуществляется подсчет количества выполнений события Е4 - рг4:=рг4 +1;

- если все работы закончились (рг4 = 2), то выполняется анализ требований к ресурсу Я работ 45 и 46:

• если есть достаточный свободный объем ресурса Я (г45 + г46 < г), то для работ-последователей 45 и 46 выбираются или планируются одновременно соответствующие событийные секции Ен23 и Ен24,

• если нет достаточного свободного объема ресурса Я (г45 + г46 > г), то на основе заданной дисциплины обслуживания выбирается или планируется только одна соответствующая событийная секция - либо Ен23, либо Ен24, а вторая работа помещается в очередь Q ресурса Я.

Содержание макрособытия Е5 - окончание работы 45 и анализ начала следующей работы 56. В программной модели в соответствующей событийной секции Е5:

- выполняется операция окончания работы Ок45;

- освобождается ресурс г45;

- выполняется анализ очереди Q к ресурсу Я:

• если очередь Q пуста, то выбирается или планируется событийная секция Ен56;

• если очередь Q непуста (в очереди находится работа 46) и есть достаточный свободный объем ресурса Я (г56 + г46 < г), то для работ 56 и 46 выбираются или планируются одновременно соответствующие событийные секции Ен56 и Ен46;

• если очередь Q непуста и нет достаточного свободного объема ресурса Я (г56 + г46 > г), то на основе заданной дисциплины обслуживания выбирается или планируется только одна соответствующая событийная секция - либо Ен23, либо Ен24, а вторая работа помещается в очередь Q ресурса Я.

Содержание макрособытия Ек56 - окончание работы 56. В программной модели в соответствующей событийной секции Ек56:

- выполняется операция окончания работы Ок56;

- освобождается ресурс r56;

- вызывается или планируется через время 0 событийная секция Е6;

- анализируется состояние очереди Q к ресурсу R, и если она непуста, то выбирается из очереди работа 46 и вызывается или планируется через время 0 соответствующая событийная секция Ен46.

Содержание макрособытия Ек46 - окончание работы 46. В программной модели в соответствующей событийной секции Ек46:

- выполняется операция окончания работы Ок46;

- освобождается ресурс r46;

- вызывается или планируется через время 0 событийная секция Е6;

- анализируется состояние очереди Q к ресурсу R, и если она непуста (в очереди может быть только одна из работ - либо 45, либо 56), то выбирается из очереди работа 45 или 56 и вызывается или планируется через время 0 одна из соответствующих событийных секций Ен45 или Ен56.

4. Заключение

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

Имитационный событийный граф на уровне макрособытий, в отличие от графа сетевой модели, зависит от целей и задач эксперимента и ограничений на объемы ресурсов. Поэтому рассматривается способ построения универсального имитационного событийного графа, учитывающий все возможные ситуации при использовании ресурсов. Использование универсального имитационного событийного графа позволяет при проведении исследований выполнять перебор вариантов алгоритмов планирования ресурсов с минимальным изменением программной модели.

Библиографический список

1. Исследование операций : В 2 т. Пер.с англ. / Под ред. Дж. Моудера, С. Элмаграби. -М. : Мир, 1981. - 677 с.

2. Экономико-математические методы и прикладные модели: учеб. пособ. для вузов / В.В. Федосеев, А.Н. Гармаш, Д.М. Дайитбегов и др. ; под ред. В.В. Федосеева. - М. : ЮНИТИ, 2001. - 391 с.

3. Прицкер, А. Введение в имитационное моделирование и язык СЛАМ II: Пер. с англ. / А. Прицкер. - М. : Мир, 1987. - 646 с.

4. Schruben, L. W. Simulation Modeling with Event Graphs. Communications of the ACM. 26: 957-963 (1983).

5. Бабкин, Е. А. Методические указания по моделированию вычислительных систем на событийно-ориентированном языке / Е. А. Бабкин. - Курск : КПИ, 1988.- 36 с.

6. Ingalls, R. G. Qualitative Simulation Graph Methodology and Implementation. Ph.D. Dissirtation, The University of Texas at Austin, TX, 1999.

7. Ingalls, R. G., Morrice D.J. PERT scheduling with resources using qualitative simulation graphs. Proceedings of the 2000 Winter Simulation Conference. P. 362-370 (2000).

8. Бабкин, Е. А. Событийные модели дискретных систем / Е. А. Бабкин. - Курск : Курск. гос. ун-т, 2005. - 18 с. Деп. в ВИНИТИ 14.01.05, № 30-В2005.

9. Бабкин, Е. А. Имитационное моделирование сетевых моделей / Е. А. Бабкин, И. Ю. Пикалов // Человек в системе современных финансово-экономических отношений : Ежегодные научные чтения, посвященные памяти А.Н. Пилецкого / Курский институт государственной и муниципальной службы ; под общей ред. В. М. Ермакова. - Курск : Изд-во КИГМС, 2005. С.5-11