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

Podobne dokumenty