Please check our Instructions to Authors and send your manuscripts to nifs.journal@gmail.com. Next issue: September/October 2024.
Deadline for submissions: 16 November 2024.
Help:Sandbox
Мрежите на Петри (Template:Lang-en), още наричани позиционно-преходни мрежи (place-transition nets) задават един от няколкото езика за математическо моделиране и описание на дискретни разпределени системи. Мрежата на Петри е ориентиран двуделен (двуцветен) граф, чиито възли представляват:
- преходи (transitions), т.е. дискретни събития, които могат да се случат,
- позиции (places), т.е. условия, и
- насочени (ориентирани) дъги, които описват кои позиции за кои преходи са пред- и/или пост-условия.
Мрежите на Петри са дефинирани през 1962 година от Карл Адам Петри.
Подобно на индустриални стандарти като UML-диаграмите, Business Process Modeling Notation и Event-driven process chain,появили се доста по-късно, мрежите на Петри предлагат графична нотация на постъпкови процеси, съдържащи избор, итерация и паралелно изпълнение. За разлика от тези стандарти, мрежите на Петри имат точна математическа дефиниция на семантиката на изпълнението си, с добре разработена математическа теория за анализ на процесите.
Неформално описание
Една мрежа на Петри се състои от позиции, преходи и насочени дъги. Една дъга свързва една позиция и един преход, но не и двойка позиции или двойка дъги. Позиция, от която започва дъга, се нарича входна позиция за прехода; а такава, в която влиза започнала от преход дъга, се нарича изходна позиция.
Позициите могат да съдържат произволен неотрицателен брой ядра (tokens). Разпределението на ядрата по позиции на мрежата се нарича маркировка (marking). Маркировката отразява състоянието на системата във фиксиран момент от време. Тя се променя в някой следващ момент, в резултат от активиране на поне един преход. Един преход в мрежата на Петри се активира, когато се появи ядро в някоя от входните му позиции; когато преход се активира, ядрата от входните позиции на прехода преминават към изходните му позиции. Преминаването на ядра през прехода се извършва на една неделима стъпка.
Мрежите на Петри са подходящ инструмент за моделиране на паралелни процеси и конкурентното поведение на разпределени системи.
Формално определение
Синтаксис
Граф на мрежата на Петри е тройката [math]\displaystyle{ (S,T,W)\! }[/math], при която
- [math]\displaystyle{ S }[/math] е крайно непразно множество от позиции,
- [math]\displaystyle{ T }[/math] е крайно непразно множество от преходи,
- сечението на множествата [math]\displaystyle{ S }[/math] и [math]\displaystyle{ T }[/math] е празното множество, т.е. никой от обектите в графа не може да е едновременно и позиция, и преход.
- [math]\displaystyle{ W: (S \times T) \cup (T \times S) \to \mathbb{N} }[/math] е мултимножество от насочени дъги, т.е. дефинира дъгите и им присвоява по едно неотрицателно цяло число .
The flow relation е множество от дъги: [math]\displaystyle{ F = \{ (x,y) \mid W(x,y) \gt 0 \} }[/math]. In many textbooks, arcs can only have multiplicity 1, and they often define Petri nets using [math]\displaystyle{ F }[/math] instead of [math]\displaystyle{ W }[/math].
Графът на мрежата на Петри е двуделен мултиграф [math]\displaystyle{ (S \cup T, F) }[/math] с възли [math]\displaystyle{ S }[/math] и [math]\displaystyle{ T }[/math].
Множеството от входните позиции на преход е [math]\displaystyle{ {}^{\bullet}t = \{ s \in S \mid W(s,t) \gt 0 \} }[/math]; множеството от изходните позиции на преход е: [math]\displaystyle{ t^{\bullet} = \{ s \in S \mid W(t,s) \gt 0 \} }[/math]
Маркировка на графа на мрежата на Петри е мултимножество от своите позиции, т.е. изображение от вида [math]\displaystyle{ M: S \to \mathbb{N} }[/math]. Казваме, че маркировката присвоява на всяка позиция определен брой ядра.
Мрежа на Петри е четворката [math]\displaystyle{ (S,T,W,M_0)\! }[/math], при която
- [math]\displaystyle{ (S,T,W) }[/math] е графът на мрежата на Петри;
- [math]\displaystyle{ M_0 }[/math] е началната маркировка на графа.
Семантика на изпълнението
Поведението на една мрежа на Петри се дефинира като релация на нейните маркировки, по следния начин:
Маркировки могат да се добавят като към всяко мултимножество: [math]\displaystyle{ M + M' \ \stackrel{D}{=}\ \{ s \to M(s) + M'(s) \mid s \in S \} }[/math]
Изпълнението на графа на мрежата на Петри [math]\displaystyle{ G = (S,T,W)\! }[/math] може да се определи като релацията преход [math]\displaystyle{ \to_{G} }[/math] между нейните маркировки по следния начин:
- за всяко [math]\displaystyle{ t }[/math] от [math]\displaystyle{ T }[/math]: [math]\displaystyle{ M \to_{G,t} M' \ \stackrel{D}{\Leftrightarrow}\ \exists M'': S \to \mathbb{N}: M = M'' + \textstyle\sum_{s \in S} W(s,t) \ \wedge\ M' = M'' + \textstyle\sum_{s \in S} W(t,s) }[/math]
- [math]\displaystyle{ M \to_{G} M' \ \stackrel{D}{\Leftrightarrow}\ \exists t \in T: M \to_{G,t} M' }[/math]
С други думи,
- активирането на преход [math]\displaystyle{ t }[/math] в една маркировка [math]\displaystyle{ M }[/math] поглъща [math]\displaystyle{ W(s,t) }[/math] ядра от всеки от неговите входни позиции [math]\displaystyle{ s }[/math], и генерира [math]\displaystyle{ W(t,s) }[/math] ядра във всяка от изходните му позиции [math]\displaystyle{ s }[/math]
- преходът е в готовност (още се казва, че е достъпен, т.е. може да бъде активиран) в [math]\displaystyle{ M }[/math], ако всичките му входни позиции съдържат ядра, т.е. само тогава когато [math]\displaystyle{ \forall s: M(s) \geq W(s,t) }[/math], и всичките му изходни позиции са празни.
Интересуваме се най-вече какво може да се случи когато преходите могат продължително време да се активират в произволен ред.
Казваме, че една маркировка [math]\displaystyle{ M' }[/math] е достижима от маркировката [math]\displaystyle{ M }[/math] на един такт ако [math]\displaystyle{ M \to_G M' }[/math]; казваче, че е достижима от [math]\displaystyle{ M }[/math] ако [math]\displaystyle{ M {\to_G}^* M' }[/math], където [math]\displaystyle{ {\to_G}^* }[/math] е транзитивно затваряне на [math]\displaystyle{ \to_G }[/math]; т.е. ако е достижима за 0 или повече такта (стъпки).
За една (маркирана) мрежа на Петри [math]\displaystyle{ (S,T,W,M_0)\! }[/math], се интересуваме от активациите, които могат да настъпят при дадена начална маркировка [math]\displaystyle{ M_0 }[/math]. Множеството от достижимите маркировки е множеството [math]\displaystyle{ R(N) \ \stackrel{D}{=}\ \{ M' \mid M_0 {\to_{(S,T,W)}}^* M' \} }[/math]
Графът на достижимостта на [math]\displaystyle{ N }[/math] е релацията на прехода [math]\displaystyle{ \to_G }[/math], ограничена върху своите достижими маркировки [math]\displaystyle{ R(N) }[/math].
Последователността от активациите за една мрежа на Петри с граф [math]\displaystyle{ G }[/math] и начална маркировка [math]\displaystyle{ M_0 }[/math] е последователността от преходи [math]\displaystyle{ \vec \sigma = \langle t_{i_1} \ldots t_{i_n} \rangle }[/math], за която [math]\displaystyle{ M_0 \to_{G,t_{i_1}} M_1 \wedge \ldots \wedge M_{n-1} \to_{G,t_{i_n}} M_n }[/math]. Множеството от последователности на активациите се означава с [math]\displaystyle{ L(N) }[/math].
Формулировка чрез вектори и матрици
Маркировките на една мрежа на Петри [math]\displaystyle{ (S,T,W,M_0)\! }[/math] могат да бъдат разгледани като вектори от неотрицателни цели числа с дължина [math]\displaystyle{ |S| }[/math].
Релацията на прехода на мрежата може да се опише като двойка матрици с размери [math]\displaystyle{ |S| }[/math] на [math]\displaystyle{ |T| }[/math]:
- [math]\displaystyle{ W^- }[/math], определена с [math]\displaystyle{ \forall s,t: W^-[s,t] = W(s,t) }[/math]
- [math]\displaystyle{ W^+ }[/math], определена с [math]\displaystyle{ \forall s,t: W^+[s,t] = W(t,s). }[/math]
Тогава, тяхната разлика
- [math]\displaystyle{ W^T = W^+ - W^- }[/math]
може да се използва за описание на достижимите маркировки в термините на умножението на матрици. За всяка последователност от преходи [math]\displaystyle{ w }[/math], с [math]\displaystyle{ o(w) }[/math] се означава векторът, който прави съответствието между всеки преход и броя на срещанията му в [math]\displaystyle{ w }[/math]. Тогава,
- [math]\displaystyle{ R(N) = \{ M \mid \exists w: M = M_0 + W^T \cdot o(w) \wedge w \! }[/math] е последователността от активации на [math]\displaystyle{ N \}\! }[/math].
За отбелязване е изискването, че [math]\displaystyle{ w }[/math] е определена последователност от активации, понеже разрешаването на произволни последонателности от преходи ще генерира по-голямо множество.
[math]\displaystyle{ W^{+}=\begin{bmatrix} * & t1 & t2 \\ p1 & 0 & 1 \\ p2 & 1 & 0 \\ p3 & 1& 0 \\ p4 & 0 & 1 \end{bmatrix} }[/math]
[math]\displaystyle{ W^{-}=\begin{bmatrix} * & t1 & t2 \\ p1 & 1 & 0 \\ p2 & 0 & 1 \\ p3 & 0 & 1 \\ p4 & 0 & 0 \end{bmatrix} }[/math]
[math]\displaystyle{ W^T=\begin{bmatrix} * & t1 & t2 \\ p1 & -1 & 1 \\ p2 & 1 & -1 \\ p3 & 1 & -1 \\ p4 & 0 & 1 \end{bmatrix} }[/math]
[math]\displaystyle{ M_{0}=\begin{bmatrix} 1 & 0 & 2 & 1 \end{bmatrix} }[/math]