Sieci Petriego
Definicja 6.8. Macierz sąsiedztwa sieci Petriego
Niech Np = (P, T, A, W, M0) będzie siecią Petriego. Macierzą sąsiedztwa sieci Np na-zywamy macierz CNp : P × T → Z (zbiór P jest reprezentowany przez wiersze, a zbiór T przez kolumny) taką, że wartość komórki dla wiersza p i kolumny t odpo-wiada bilansowi tokenów w miejscu p ∈ P po uruchomieniu tranzycji t ∈ T , tj.
CNp(p, t) = W ((t, p)) − W ((p, t)).
Na rysunku6.4przedstawiony jest przykład prostej sieci Petriego, a tabela6.1 przed-stawia jej macierz sąsiedztwa.
Każde znakowanie może być reprezentowane jako wektor M ∈ N|P |. Podobnie można oznaczyć tranzycje, które uczestniczą w zmianie stanu sieci jako x ∈ N|T | (wektor zliczeń uruchamianych tranzycji ). Wektor ten zwany jest też wektorem Parikha [68], tj. wekto-rem, który reprezentuje zliczenia wystąpień elementów w pewnym ciągu z danego zbioru z pominięciem ich kolejności. Każdy element takiego wektora jest liczbą naturalną, która odpowiada liczbie uruchomień danej tranzycji.
Sieci Petriego 85
Rysunek 6.3: Przykładowy model automatu do napojów. Automat przyjmuje monety 1, 2 i 5zł oraz wydaje resztę w złotówkach. Kawa kosztuje 2 złote, a herbata złotówkę.
Znakowanie początkowe zapewnia gotowość automatu oraz możliwość wyboru pomiędzy kawą, herbatą i rezygnacją. Po zakończeniu całego procesu odtwarzane jest znakowanie
początkowe. Na czerwono zaznaczony jest jeden z t-niezmienników.
p0
p1
p2
p3
p4 t0
t1
t2
t3
t4
p5
t5
t6 p6
t7 t8
Rysunek 6.4: Przykładowa sieć Petriego dla przedstawienia reprezentacji macierzowej (tabela 6.1) oraz analizy strukturalnej. Sieć zawiera tranzycje wejściowe t0, t1, t2 oraz tranzycję wyjściową t8. Miejsce p3 posiada znakowanie początkowe 1 umożliwiające
uruchomienie tranzycji t5.
Dysponując powyższą reprezentacją macierzową oraz wektorową reprezentacją zna-kowania oraz tranzycji uczestniczących w zmianie stanu, można alternatywnie zapisać zmianę stanu sieci Petriego z Mi na Mi+1 jako następujące równanie macierzowe:
Mi+ CNp· x = Mi+1
Przykładowo dla sieci z rysunku 6.4 niech zbiorem aktywnych tranzycji będzie {t1, t3, t5, t6, t7}, tj. wektor x = (0 1 0 1 0 1 1 1 0)T), oraz M0 = (0 0 0 0 0 1 0)T bę-dzie znakowaniem początkowym. Łatwo zauważyć, że uruchamiając wszystkie tranzycje z wektora x osiągniemy znakowanie M1 takie, że w miejscu p6 pojawi się jeden token, a
Sieci Petriego 86
Tabela 6.1: Macierz sąsiedztwa sieci Petriego z rysunku 6.4.
t0 t1 t2 t3 t4 t5 t6 t7 t8
token w miejscu p5 zostanie bez zmian. Ten sam efekt można obliczyć zgodnie z powyż-szym rozumowaniem:
Można zauważyć, że powyższa reprezentacja nie uwzględnia sytuacji, gdy w sieci wy-stępują cykle o długości 2, czyli tzw. łuki odczytu (read arcs). Można je interpretować jako stany, które regulują możliwość zachodzenia innych procesów np. katalizatory re-akcji.
Łuki odczytu dają zerowy bilans zmiany tokenów po uruchomieniu tranzycji, wskutek czego reprezentowane są przez wartość zerową w macierzy. Jednak tranzycja powiązana z miejscem łukiem odczytu jest aktywna tylko przy obecności tokenu w tym miejscu, w związku z czym badanie zmian stanów takiej sieci na podstawie powyższego równania może prowadzić do nadzbioru stanów osiągalnych w rzeczywistości (wynik uzyskany z powyższego równania macierzowego mógłby być nieosiągalny w rzeczywistości).
Łuki te nie miałyby wpływu na analizę dynamiki sieci tylko w przypadku takiej kon-strukcji sieci i znakowania początkowego, które gwarantowałaby istnienie tokenu w każ-dym miejscu powiązanym łukiem odczytu dla dowolnej sekwencji zmian stanów.
Łuki odczytu nie przeszkadzają jednak w dowodzeniu na podstawie równania macie-rzowego, że znakowanie Mi+1nie jest osiągalne ze znakowania Mi. W szczególności, jeśli równanie, w którym niewiadomą jest x:
Mi+ CNp· x = Mi+1
nie posiada rozwiązań w liczbach naturalnych, to znakowanie Mi+1 nie jest osiągalne ze znakowania Mi.
Notacja. Niech M będzie znakowaniem w sieci Petriego Np = (P, T, A, W, M0). Wtedy:
– R(M ) oznacza zbiór wszystkich znakowań osiągalnych ze znakowania M ,
Sieci Petriego 87
– L(M ) oznacza zbiór wszystkich ciągów przejść (które odpowiadają odpowiednim wektorom zliczeń tranzycji), które mogą być zastosowane dla znakowania M .
6.4 Analiza sieci
Istnieją dwa zasadnicze rodzaje analiz sieci Petriego:
– strukturalna (analiza statyczna) - obejmuje zakres własności sieci, które nie są związane z aktualnym znakowaniem sieci (są prawdziwe dla każdego znakowania, dotyczą struktury sieci),
– behawioralna (analiza dynamiczna) - obejmuje zakres własności sieci, które zależą od znakowania.
6.4.1 Analiza strukturalna
Poniżej zdefiniowano własności strukturalne sieci Petriego Np= (P, T, A, W, M0):
1. Sieć jest zwykła (ordinary), jeśli waga każdego łuku jest równa 1, tj. W : A → {1}.
2. Sieć jest homogeniczna (homogenous), jeśli dla każdego miejsca wagi jego łuków wyjściowych są równe, tj. ∀p∈P∀(p,t1),(p,t2)∈AW (p, t1) = W (p, t2).
3. Sieć jest czysta (pure), jeśli nie zawiera tzw. łuków odczytu, czyli cykli od długości 2, tj. ∀(p,t)∈(P ∪T )2(p, t) /∈ A ∨ (t, p) /∈ A. Zgodnie z rozważaniami z poprzedniego podrozdziału, sieć która nie jest czysta nie gwarantuje osiągalności znakowań uzy-skanych w wyniku zastosowania równania macierzowego.
4. Sieć jest zachowawcza (conservative), jeśli dla każdej tranzycji suma wag łuków wejściowych jest równa sumie wag łuków wyjściowych, tj.
∀t∈T X
(p,t)∈A
W (p, t) = X
(t,p)∈A
W (t, p)
5. Sieć jest połączona (connected), jeśli (P ∪ T, A) jest skierowanym grafem spójnym.
6. Sieć jest silnie połączona (strongly connected), jeśli między dowolną parą wierz-chołków istnieje ścieżka skierowana.
7. Sieć jest ograniczona (bounded), jeśli dla każdego możliwego znakowania sieci liczba tokenów w każdym miejscu jest nie większa niż pewna skończona wartość k ∈ N.
8. Sieć jest strukturalnie ograniczona (structurally bounded), jeśli jest ograniczona dla dowolnego znakowania początkowego.
9. Sieć jest strukturalnie wolna od konfliktów (structurally conflict free), jeśli nie ist-nieją tranzycje mające wspólnego poprzednika, tj. ∀t1,t2∈TN−(t1) ∩ N−(t2) = ∅.
10. Sieć ma osiągalny martwy stan (dead state reachable), jeśli możliwe jest znakowa-nie, dla którego wszystkie tranzycje są nieaktywne.
11. Sieć ma nieblokujące wagi (non-blocking multiplicity), jeśli dla każdego miejsca minimalna waga łuku wchodzącego jest niemniejsza niż maksymalna waga łuku wychodzącego, tj. ∀p∈P min
(t,p)∈A{W (t, p)} max
(p,t)∈A{W (p, t)}.
Sieci Petriego 88
Powyższe własności należy uzupełnić o własności związane z analizą niezmienników tranzycji (t-niezmienniki) i miejsc (p-niezmienniki), które z uwagi na znaczenie dla ana-lizy strukturalnej zostaną omówione bardziej szczegółowo. T-niezmienniki mają szcze-gólne znaczenie dla analizy strukturalnej sieci biologicznych, gdyż reprezentują zbiory tranzycji w sieci, które są pewnymi elementarnymi podprocesami zachodzącymi w sieci.
W ogólności zarówno p- jak i t-niezmienniki mogą być wektorami spełniającymi pewne równania macierzowe, więc mogą zawierać wartości ujemne lub niecałkowite, które jed-nak nie mają znaczenia z punktu widzenia analizy sieci. Z uwagi na ten fakt rozważane są tylko niezmienniki semipozytywne, których wartości należą wyłącznie do zbioru liczb naturalnych. Poniżej przedstawiono definicje niezmienników:
Definicja 6.9 ([64,82]). Niezmiennik miejsc (p-niezmiennik)
Niech Np = (P, T, A, W, M0) będzie siecią Petriego reprezentowaną przez macierz CNp (CNT
p jest macierzą transponowaną). Niezmiennikiem miejsc nazywamy każdy wektor y ∈ N|P | spełniający równanie CNT
p · y = 0. Zbiorem niezmienników miejsc nazywamy zbiór wszystkich takich wektorów, tj.:
Y =ny ∈ N|P |: CNT
p· y = 0o
Każdy p-niezmiennik odpowiada zbiorowi miejsc, w ramach których suma liczb to-kenów nie zmienia się po aktywacji dowolnej tranzycji. Przykładowo sieć z rysunku 6.4 posiada jednoelementowy zbiór p-niezmienników Y = {(0 0 0 1 1 1 0)} (tj. miejsca p3, p4, p5). Łatwo zauważyć, że bez względu na zmiany stanów sieci suma liczby tokenów występujących w tych miejscach będzie równa 1 (będzie jeden token zawsze w jednym z tych trzech miejsc).
Powyższa własność p-niezmienników wynika z następującego rozumowania. Niech M1 będzie znakowaniem osiągalnym ze znakowania M0 z wektorem zliczeń tranzycji x, tj.
M1 = M0 + CNpx, a y niech będzie p-niezmiennikiem. Zachodzi wówczas następująca zależność:
M1Ty = M0+ CNpxT y = M0Ty + CNpxT y = M0Ty + xTCNTpy = M0Ty.
W ujęciu biologicznym p-niezmienniki oznaczają zwykle pewne podprocesy cyklicz-nej przemiany, na którą nie wpływają czynniki zewnętrzne. Zatem aby p-niezmiennik mógł mieć wpływ na zachowanie całej sieci, znakowanie początkowe powinno umożli-wiać uruchomienie przynajmniej jednej tranzycji, która znajduje się między miejscami występującymi w p-niezmienniku.
Definicja 6.10 ([64,82]). Niezmiennik tranzycji (t-niezmiennik)
Niech Np = (P, T, A, W, M0) będzie siecią Petriego reprezentowaną przez macierz CNp. Niezmiennikiem tranzycji nazywamy każdy wektor x ∈ N|T | spełniający równanie CNp· x = 0. Zbiorem niezmienników tranzycji nazywamy zbiór wszystkich takich wek-torów, tj.:
X =nx ∈ N|T | : CNp· x = 0o.
Każdy t-niezmiennik jest zatem wektorem zliczeń uruchamianych tranzycji, który nie zmienia znakowania sieci. W ujęciu biologicznym t-niezmienniki odpowiadają więc pewnym podprocesom cyklicznym lub otwartym (np. przyjmującym pewne substraty, które są przetwarzane w produkty), których przejście przywraca znakowanie sprzed ich uruchomienia.
Sieci Petriego 89
Poniżej zdefiniowano wsparcia p- oraz t-niezmienników, które będą istotne dla dal-szych rozważań (w tych definicjach jeśli y jest wektorem to yi oznacza wartość i-tego elementu wektora). Podobne definicje można znaleźć m. in. w pracach [15,80].