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

Podobne dokumenty