- •Введение
- •Глава 1. Основные понятия теории моделирования
- •1.1. Классификация видов моделирования
- •1.2. Жизненный цикл компьютерной модели
- •1.3. Вычислительный эксперимент
- •1.4. Наиболее известные методологии и системы компьютерного моделирования
- •1.4.1. Универсальные системы моделирования
- •1.4.2.Системы моделирования бизнес-процессов
- •1.5. О моделировании вычислительных систем
- •Глава 2. Введение в сети Петри
- •2.1. Обыкновенные сети Петри
- •2.1.1. Формальное определение
- •2.1.2. Графы сетей Петри
- •2.1.3. Пространство состояний сети Петри
- •2.1.4. Основные свойства сетей Петри
- •2.1.5. Некоторые обобщения сетей Петри
- •Инварианты сетей Петри
- •2.2. Раскрашенные (цветные) сети Петри
- •2.2.1. Мультимножества
- •2 2.2. Формальное определение cpn
- •2.2.3. Функционирование cpn
- •2.2.4. Расширения cpn
- •2.2.5. Сравнение формализмов обыкновенных и раскрашенных сетей Петри
- •2.2.6. О моделирующих возможностях сетей Петри.
- •2.3. Моделирование дискретных систем
- •2.3.1. Моделирование вычислительных систем
- •1. Простейшая система массового обслуживания.
- •2.3.2. Моделирование программ
- •1. Последовательная модель программирования
- •2. Модель параллелизма данных
- •3. Моделирование некоторых структур параллельного программирования. Семафоры
- •4. Метод асинхронного программирования
- •3 Моделирование протоколов передачи данных
- •1. Описание работы протокола
- •3. Временной механизм работы cpn
- •4. Описание работы cpn
- •2.3.4. Об исследовании сетей Петри с помощью эвм
- •Глава 3. Моделирование вычислительных Процессов с помощью цепей Маркова
- •3.1. Определение цепи Маркова
- •3.3. Классификация состояний цепей Маркова
- •3.4. Оценка длительности пребывания процесса в множестве невозвратных состояний
- •3.5. Исследование динамики цепей Маркова при большом числе шагов
- •4.1. Задачи и упражнения по главе 2
- •4.2. Задачи и упражнения по главе 3
- •1. Запуск программы и построение графа сети Петри
- •2. Задание цветовых множеств, переменных и начальной маркировки
- •Библиографический список
- •Глава 1.Основные понятия теории моделирования 5
- •Глава 2 Введение в сети Петри 21
- •Глава 4. Задания для самостоятельной работы 148
- •Глава 5. Лабораторный практикум 162
2 2.2. Формальное определение cpn
Раскрашенная сеть Петри CPN- это кортеж
CPN = {Θ, Σ, P, T, A,N,C,G,E,I}. (2.13)
Рассмотрим элементы определения (2.13).
Θ = {θ = 0,1,2,…} – множество дискретных моментов времени (шагов), в которые происходит функционирование сети. Номер шага есть переменная целого типа:
var teta: Integer;
Σ – конечное множество непустых типов, называемое цветами. Типы имеют общее название color и задаются аналогично тому, как это принято в языках программирования.
Например:
type colorI = Integer; - целый тип;
type colorP = product U * I; - прямое произведение типов.
При описании переменных, используемых в сети, указывают их принадлежность к типу, например:
Var x:colorU; vari:colorI; varj:colorP.
В последнем примере переменная j состоит из пары элементов j=(jU,jI), где элемент jU принадлежит типу colorU, а jI – типу colorI.
P – конечное множество позиций. Это множество может быть представлено перечисляемым типом:
Type P=(p1,p2,…,pn);
а для работы с ним вводится переменная
var p : P.
С каждой позицией может быть связана определенная маркировка, которая учитывает наличие различных типов ресурсов. Маркировка позиции p Є P представляет собой мультимножество, например, следующего вида:
m(p)=(1`x,2`,1`j).
Здесь х, i, j - переменные указанных в п. 2 цветовых типов, определяющие различные виды ресурсов, а цифры , стоящие перед кавычками – количество фишек соотвествующего типа в позиции р Є Р.
Совокупность маркировок всех позиций называется маркировкой сети.
М = {т(р,), т(р2),.. .т(рп)}.
В языке Паскаль мультимножество, определяющее маркировку позиции, может быть представлено, например типом - множество, состоящим из записей вида
type m — record
i: Integer; x:colorU end;
Операции над мультимножествами можно определить соответствующими процедурами. Аналогично определяется мультимножество, задающее маркировку сети.
Т - конечное множество переходов, которое представить перечисляемым типом
type T - (tl,t2,...,tm);
и соответствующей переменной:
var t:T.
Это множество не отличается от множества переходом для обыкновенных сетей Петри, однако правила их срабатывания могут быть более сложными. Эти правила рассмотрены ниже.
А - конечное множество дуг, связывающих между собой позиции и переходы. В отличие от обыкновенных сетей Петри, где дуги задаются матрицами инцидентности Fр и Ft, а на языке CPN ML указываются все дуги с помощью выражения вида р to t и t to p . где рЄ Р, t Є T. Такая нотация введена для того, чтобы можно было пару элементов pi,tj соединить несколькими дугами с различными свойствами.
В этих выражениях первый элемент указывает начало дуги, второй – конец дуги.
Множество А имеет следующую структуру:
А = {a1,a2,…ap},
где дуги аk Є А определяются одним из видов выражений
ak = pi to tj или ak = tj to pi, pi Є P, tj Є T,
П оскольку дуги имеют два вида: от позиции к переходу ( p to t ) и от перехода к позиции ( t to p ), то множество А можно представить в виде суммы непересекающихся множеств:
A = Ap At , Ap At = Ø,
Где множество Apсодержит элементы вида p to t, а множество At – элементы вида t to p.
К ак и в случае обыкновенных сетей Петри, элементы множеств P, T, A не пересекаются:
P T = P A = T A = Ø.
N(a) – узловая функция, которая для каждой дуги a Є A указывает ее исходный и конечный узел. Формально соответствует выражение s to d. Здесь s – имя узла, от которого начинается дуга, d – имя узла, где она заканчивается. Рассмотрим один из способов задания этой функции. Каждая дуга может быть представлена в виде записи. Дуга типа pi to tj задаются записью
Type AP= record (2.14)
p:P; t:T end;
Дуги типа tj to pi задаются аналогично:
Type AT=record (2.15)
t:T p:P; end;
Множества дуг Ap и At могут быть представлены перечисляемыми типами:
Type AP=(ap1,ap2,…,apk); (2.16)
Type AT=(at1,at2,…,atk);
Для работы с дугами вводится переменные соответствующих типов:
Var ap:AP; var at: AT;
C(p) – цветовая функция, определяющая множество типовцветов, разрещенных для каждой позиции. Например, запись
colorU if p {p1,p2,p4},
C (p) =
colorI otherwise
означает, что цвета типа U разрешены для позиций p1,p2,p4, а цвета типа I разрешены для всех остальных позиций из Р.
8. G(t) - блокировочная (спусковая) функция, описывающая дополнительные условия, которые должны быть выполнены для срабатывания перехода t Є T. Эта функция представляет собой предикат, составленный из переменных принадлежащих типов цветов Σ. Например, функции
x = q if t = t1,
G(t)=
true otherwise
Принимает истинное значение для перехода ti, если переменная x = q, а во всех остальных случаях она ложь. Таким образом, для того, чтобы было разрешено срабатывание перехода ti, требуется выполнение дополнительного условия x = q на входной дуге к ti. Если эта функция не определена, то по умолчания предполагается истинной.
Е(а) – функция, задающая выражения на дугах a Є А.Эта функция для каждой дуги a определяет мультимножество, состоящее из элементов, описанных в множестве цветов Σ. Мы будем говорить, что это мультимножество помечает дугу. Введение в CPN функции Е(а) является развитием понятия кратности дуг в формализме обыкновенных СП.
Рассмотрим примеры задания функции Е(а).
Е(а1) = 2’е
- дуга а} помечается двумя фишками типа е;
Е(а2) = case x of p => 2’e | q => 1’e
дуга а2 помечается двумя фишками типа e, если переменная x=pи одной фишкой типа e, если x=q.
Е(а3) = if x=p then 1’e else empty
- дуга а3 помечается одной фишкой типа e, если x=p, иначе не помечается.
Е(а4) = if x=q hten 1’(q?i + 1) else empty
- дуга а4 помечается одной фишкой типа Р (см. пример в п.2), если х=q и не помечается в противном случае.
Отсутствие выражения для какой-либо дуги означает, что дуга не помечена.
I(p) – функция инициализации сети CPN. Эта функция по аналогии с обыкновенными СП задает начальную маркировку (разметку) сети М0, т.е. для каждой позиции р Є Р указывает цветовое мультимножество, обозначаемое m0(p).
Например, m0(p1) = 3’e; m0(p2)=2’(p,0); m0(p3)=Ø – начальные маркировки позиций;
М0 ={3’e;2’(p,0);Ø} – начальная маркировка сети.