• Nie Znaleziono Wyników

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].