Sieci Petriego
Transkrypt
Sieci Petriego
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 { p1 , p2 , … , p n } T { t1 , t2 , … , tm } I : T → P* O : T → P* P T {} I ( tj ) # ( pi , I ( tj ) ) O ( tj ) # ( pi , O ( tj ) ) ( P, T , I , O ) , gdzie: – zbiór miejsc – zbiór tranzycji – funkcja wejściowa – funkcja wyjściowa – kolekcja miejsc wejściowych tranzycji tj – liczba wystąpień pi w I ( tj ) – kolekcja miejsc wyjściowych tranzycji tj – liczba wystąpień pi w O ( tj ) kolekcja = multi-zbiór 2 Reprezentacja graficzna P { p1 , p2 , p3 , p4 } T { t1 , t2 , t3 } p1 t1 t2 p2 p3 t3 p4 # ( pi , I ( tj ) ) # ( pi , O ( tj ) ) I ( t1 ) I ( t2 ) I ( t3 ) O ( t1 ) O ( t2 ) O ( t3 ) { p1 } { p1 } { p2 , p3 } { p1 , p2 } { p3 , p3 } { p3 , p 4 } – liczba łuków od miejsca pi do tranzycji tj – liczba łuków od tranzycji tj do miejsca pi 3 Znakowanie Znakowanie sieci jest funkcją μ : P → N p1 t1 t2 p2 p3 μ ( p1 ) μ ( p2 ) μ ( p3 ) μ ( p4 ) 1 2 0 0 t3 p4 Definicja alternatywna Znakowanie sieci jest wektorem: μ ( μ ( p1 ) , μ ( p2 ) , … , μ ( pn ) ) Zbiór wszystkich możliwych znakowań: N n 4 Znakowana sieć Petriego jest parą Z C μ0 : P → N ( C , μ0 ) , gdzie: – sieć Petriego – znakowanie początkowe Tranzycja jest wzbudzona w znakowaniu μ jeśli: pi P · # ( pi , I ( tj ) ) μ ( pi ) Wynikiem odpalenia wzbudzonej tranzycji tj w znakowaniu μ jest nowe znakowanie μ’, takie że: pi P · μ’ ( pi ) μ ( pi ) # ( pi , I ( tj ) ) # ( pi , O ( tj ) ) 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ść ( μ , tj ) jest określona wtw. gdy: pi 2. Jeśli pi P · # ( pi , I ( tj ) ) Warunek wzbudzenia tj μ ( pi ) ( μ , tj ) jest określona, to P · μ’ ( pi ) μ ( pi ) ( μ , tj ) # ( pi , I ( tj ) ) μ’ , gdzie: # ( pi , O ( tj ) ) Wynik odpalenia tj 6 Wykonanie sieci to odpalenie sekwencji wzbudzonych tranzycji zaczynając od znakowania początkowego tj0 μ0 tj1 μ1 tjk μ2 … μk μk 1 … gdzie: tjk wzbudzona w znakowaniu μk μk 1 ( μk , tjk ) 7 Osiągalność znakowań Znakowanie μk jest bezpośrednio osiągalne z μl wtw., gdy: tj T · μk ( μl , tj ) Znakowanie μk jest osiągalne z μl wtw., gdy istnieje sekwencja znakowań μk , μk 1 , ... , μk n μl , taka że: i k, ... , k 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 tj μk ( μl , tj ) , to μk R ( C , μ0 ) T taka, że 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 Właściwości sieci Bezpieczeństwo Miejsce pi P jest bezpieczne, jeśli: μk R ( C , μ0 ) · μk ( pi ) 1 Sieć ( C , μ0 ) jest bezpieczna, jeśli wszystkie jej miejsca są bezpieczne Ograniczoność Miejsce pi P jest q-ograniczone, jeśli: μk R ( C , μ0 ) · μk ( pi ) 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 ( pi ) i 1 . .n μ 0 ( pi ) Sieć ( C , μ0 ) jest zachowawcza, jeśli istnieje taki dodatni wektor w ( w1 , w2 , ... , wn ) , że: μk R ( C , μ0 ) · i 1 .. n w i μ k ( pi ) i 1 . .n w i μ 0 ( pi ) 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 ) ? Porównanie wektorów 2. Problem pokrycia: 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 Px μl R ( C , μ0 ) takie, że μk ( p ) μl ( p ) dla p P istnieje Px ? 14 Drzewo osiągalności węzły łuki korzeń liście – znakowania – odpalenia tranzycji – znakowanie początkowe – 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: p P · μl ( p ) μk ( p ) oraz to przyjmuje się: μl ( pi ) pi P · μ l ( pi ) μl jest większe od μk μ k ( pi ) , ω 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