spop_petri [tryb zgodności]
Transkrypt
spop_petri [tryb zgodności]
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 = { p1 , p2 , … , pn } T = { t1 , t2 , … , tm } I : T → P* O : T → P* P ∩ T = {} I ( tj ) # ( pi , I ( tj ) ) O ( tj ) # ( pi , O ( tj ) ) – 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 ) = { p1 } I ( t2 ) = { p1 } I ( t3 ) = { p2 , p3 } O ( t1 ) = { p1 , p2 } O ( t2 ) = { p3 , p3 } O ( t3 ) = { p3 , p4 } – 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 ) = 1 µ ( p2 ) = 2 µ ( p3 ) = 0 µ ( p4 ) = 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 ) , gdzie: C µ0 : P → N – 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 ∈ P · # ( pi , I ( tj ) ) ≤ µ ( pi ) Warunek wzbudzenia tj 2. Jeśli δ ( µ , tj ) jest określona, to δ ( µ , tj ) = µ’ , gdzie: ∀ pi ∈ P · µ’ ( pi ) = µ ( pi ) − # ( pi , I ( tj ) ) + # ( 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ń µ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 tj ∈ T taka, że µk = δ ( µl , tj ) , 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 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 wi µk ( pi ) = ∑i = 1 . .n wi µ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 ) ? 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 Px ⊂ P istnieje µl ∈ R ( C , µ0 ) takie, że µk ( p ) = µl ( p ) dla p ∈ 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: µl jest większe od µk ∀ p ∈ P · µl ( p ) ≥ µk ( p ) oraz ∃ pi ∈ P · µl ( pi ) > µk ( pi ) , to przyjmuje się: µl ( 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