Sieci Petriego Źródła wykładu: 1. http://www.ia.pw.edu.pl/~sacha/petri.html 2.M. Szpyrka: Sieci Petriego w modelowaniu i analizie systemów współbieżnych, WNT 2008
Definicja sieci Sieć Petriego jest czwórką C = ( P, T, I, O ), gdzie: P = { p 1, p 2,, p n } T = { t 1, t 2,, t m } I : T P* O : T P* P T = {} zbiór miejsc zbiór tranzycji funkcja wejściowa funkcja wyjściowa I ( t j ) kolekcja miejsc wejściowych tranzycji t j # ( p i, I ( t j ) ) liczba wystąpień p i w I ( t j ) O ( t j ) kolekcja miejsc wyjściowych tranzycji t j # ( p i, O ( t j ) ) liczba wystąpień p i w O ( t j ) kolekcja = multi-zbiór 2
Reprezentacja graficzna p 1 t 1 t 2 p 2 p 3 P = { p 1, p 2, p 3, p 4 } T = { t 1, t 2, t 3 } I ( t 1 ) = { p 1 } I ( t 2 ) = { p 1 } I ( t 3 ) = { p 2, p 3 } p 4 t 3 O ( t 1 ) = { p 1, p 2 } O ( t 2 ) = { p 3, p 3 } O ( t 3 ) = { p 3, p 4 } # ( p i, I ( t j ) ) liczba łuków od miejsca p i do tranzycji t j # ( p i, O ( t j ) ) liczba łuków od tranzycji t j do miejsca p i 3
Znakowanie Znakowanie sieci jest funkcją µ : P N p 2 p 1 t 1 t 2 µ ( p 2 ) = 2 µ ( p 1 ) = 1 p 3 µ ( p 3 ) = 0 µ ( p 4 ) = 0 t 3 p 4 Definicja alternatywna Znakowanie sieci jest wektorem: µ = ( µ ( p 1 ), µ ( p 2 ),, µ ( p n ) ) Zbiór wszystkich możliwych znakowań: N n 4
Znakowana sieć Petriego jest parą Z = ( C,µ 0 ), gdzie: C sieć Petriego µ 0 : P N znakowanie początkowe Tranzycja jest wzbudzona w znakowaniu µ jeśli: p i P # ( p i, I ( t j ) ) µ( p i ) Wynikiem odpalenia wzbudzonej tranzycji t j w znakowaniu µ jest nowe znakowanie µ, takie że: p i P µ ( p i ) =µ( p i ) # ( p i, I ( t j ) ) + # ( p i, O ( t j ) ) 5
Sieć Petriego jako maszyna abstrakcyjna Znakowana sieć Petriego tworzy maszynę abstrakcyjną : przestrzeń stanów: N n funkcja przejścia: δ : N n T N n, gdzie: 1. Wartość δ ( µ, t j ) jest określona wtw. gdy: p i P # ( p i, I ( t j ) ) µ( p i ) Warunek wzbudzenia t j 2. Jeśli δ ( µ, t j ) jest określona, to δ ( µ, t j ) =µ, gdzie: p i P µ ( p i ) =µ( p i ) # ( p i, I ( t j ) ) + # ( p i, O ( t j ) ) Wynik odpalenia t j 6
Wykonanie sieci to odpalenie sekwencji wzbudzonych tranzycji zaczynając od znakowania początkowego t j0 t j1 t jk µ 0 µ 1 µ 2 µ k µ k+1 gdzie: t jk wzbudzona w znakowaniu µ k µ k+1 = δ ( µ k, t jk ) 7
Osiągalność znakowań Znakowanie µ k jest bezpośrednio osiągalne z µ l wtw., gdy: t j T µ k = δ ( µ l, t j ) Znakowanie µ k jest osiągalne z µ l wtw., gdy istnieje sekwencja znakowań µ l, µ l+1,..., µ l+n =µ k, taka że: i = l,..., l + n 1 µ i+1 jest bezpośrednio osiągalne z µ i Zbiór znakowań osiągalnych R ( C,µ 0 ) jest najmniejszym zbiorem, takim że: µ 0 R ( C, µ 0 ) jeśli µ l R ( C, µ 0 ) oraz istnieje tranzycja t j T taka,że µ k = δ ( µ l, t j ), to µ k R ( C, µ 0 ) 8
Zastosowania sieci Petriego Modelowanie przepływu sterowania w systemach współbieżnych Modelowanie zdarzeń złożonych Modelowanie konfliktów przy dostępie do zasobów 9
Bezpieczeństwo Właściwości sieci Miejsce p i P jest bezpieczne, jeśli: µ k R ( C, µ 0 ) µ k ( p i ) 1 Sieć ( C, µ 0 ) jest bezpieczna, jeśli wszystkie jej miejsca są bezpieczne Ograniczoność Miejsce p i P jest q-ograniczone, jeśli: µ k R ( C, µ 0 ) µ k ( p i ) q Sieć ( C, µ 0 ) jest ograniczona, jeśli wszystkie jej miejsca są q-ograniczone dla pewnego q 10
Zachowawczość Sieć ( C, µ 0 ) jest ściśle zachowawcza, jeśli: µ k R ( C, µ 0 ) i = 1.. n µ k ( p i ) = i = 1..n µ 0 ( p i ) Sieć ( C, µ 0 ) jest zachowawcza, jeśli istnieje taki dodatni wektor w = ( w 1, w 2,..., w n ), że: µ k R ( C, µ 0 ) i = 1.. n w i µ k ( p i ) = i = 1..n w i µ 0 ( p i ) 11
Żywotność Tranzycja t jest żywa, jeśli: µ k R ( C, µ 0 ) µ R ( C, µ k ) ( µ, t ) Dom ( δ ) Z dowolnego znakowania osiągalnego można dojść do takiego znakowania, w którym t będzie mogła odpalić Brak martwego kodu w każdym stanie wykonania programu Sieć ( C, µ 0 ) jest żywa, jeśli każda jej tranzycja jest żywa 12
Zakleszczenie Sieć ma zakleszczenie, jeśli: µ R ( C, µ 0 ) t T ( µ, t ) Dom ( δ ) Istnieje znakowanie, w którym żadna tranzycja nie jest wzbudzona Zawieszenie się wszystkich procesów programu Sieć jest wolna od zakleszczeń, jeśli: µ R ( C, µ 0 ) t T ( µ, t ) Dom ( δ ) 13
Osiągalność znakowania 1. Problem osiągalności: Czy dla danego µ k, µ k R ( C, µ 0 )? 2. Problem pokrycia: Porównanie wektorów Czy dla danego µ k istnieje µ l R ( C, µ 0 ) takie, że µ l µ k? 3. Osiągalność znakowania częściowego: Czy dla danego µ k określonego na zbiorze P x P istnieje µ l R ( C, µ 0 ) takie, że µ k ( p ) =µ l ( p ) dla p P x? 14
Drzewo osiągalności węzły znakowania łuki odpalenia tranzycji korzeń znakowanie początkowe liście znakowania końcowe lub powtórzone znakowanie graniczne znakowanie wewnętrzne znakowanie końcowe znakowanie powtórzone nowe, czekające na analizę znakowanie już poddane analizie bez wzbudzonych tranzycji już wcześniej analizowane Jeśli w gałęzi µ 0,..., µ k,..., µ l,... zachodzi: µ l jest większe od µ k p P µ l ( p ) µ k ( p ) oraz p i P µ l ( p i ) >µ k ( p i ), to przyjmuje się: µ l ( p i ) =ω 15
Algorytm konstrukcji drzewa osiągalności 1. Utwórz korzeń drzewa jako znakowanie graniczne µ 0 2. Dla każdego znakowania granicznego µ x : a. jeśli brak tranzycji wzbudzonych w µ x, to µ x jest znakowaniem końcowym (liść) b. jeśli w drzewie istnieje już znakowanie µ y, które nie jest znakowaniem granicznym i µ y =µ x, to µ x jest znakowaniem powtórzonym (liść) c. jeśli µ x nie jest ani końcowe ani powtórzone, to dla każdej wzbudzonej tranzycji t oblicz δ ( µ x, t ) i utwórz µ z : jeśli dla pewnego p Pµ x ( p ) =ω, to również µ z ( p ) =ω jeśli w drodze od korzenia do µ x istnieje znakowanie µ y takie, że δ ( µ x, t ) µ y oraz δ ( µ x, t )( p ) >µ y ( p ), to µ z ( p ) =ω w każdym innym przypadku µ z ( p ) = δ ( µ x, t )( p ) Znakowanie µ x staje się teraz wewnętrznym, a µ z granicznym 16