28
Paralēlu sistēmu modelēšanas valoda – Petri tīkli Specifikāciju valodu pamati

Paralēlu sistēmu modelēšanas valoda – Petri tīkli

  • Upload
    weston

  • View
    56

  • Download
    11

Embed Size (px)

DESCRIPTION

Paralēlu sistēmu modelēšanas valoda – Petri tīkli. Specifikāciju valodu pamati. Petri tīkli: definīcijas. Petri tīkls: bipartīts grafs. Virsotnes – pozīcijas un pārejas . Šķautnes – tikai no pozīcijas uz pāreju un no pārejas uz pozīciju. - PowerPoint PPT Presentation

Citation preview

Page 1: Paralēlu sistēmu modelēšanas valoda – Petri tīkli

Paralēlu sistēmu modelēšanas valoda – Petri tīkli

Specifikāciju valodu pamati

Page 2: Paralēlu sistēmu modelēšanas valoda – Petri tīkli

Petri tīkli: definīcijasPetri tīkls: bipartīts grafs. Virsotnes – pozīcijas un pārejas.Šķautnes – tikai no pozīcijas uz pāreju un no pārejas uz pozīciju.Tradicionāls definīcijas veids (var definēt arī citādi):Petri tīkls: C = < P, T, I, O >

P = {p1, p2, …, pn} – galīga pozīciju kopaT = {t1, t2, …, tm} – galīga pāreju kopaI: T P, pāreju ieejas funkcija, katrai pārejai piekārto to pozīciju multikopu, no kurām ir šķautnes uz šo pārejuO: T P, pāreju izejas funkcija, katrai pārejai piekārto to pozīciju multikopu, uz kurām ir šķautnes no šīs pārejas

I, O – apraksta šķautnes grafā.#(pi, I(tj)) – cik šķautnes iet no pozīcijas pi uz pāreju tj#(pi, O(tj)) – cik šķautnes iet no pārejas tj uz pozīciju pi

Page 3: Paralēlu sistēmu modelēšanas valoda – Petri tīkli

Petri tīkli: piemērsPetri tīkls: C = < P, T, I, O >

P = {p1, p2, …, pn} – galīga pozīciju kopaT = {t1, t2, …, tm} – galīga pāreju kopaI: T P, pāreju ieejas funkcija,

O: T P, pāreju izejas funkcija,

#(pi, I(tj)) – šķautnes no pi uz tj#(pi, O(tj)) – šķautnes no tj uz piPiemērā:

I(t1) = { p1 }I(t4) = { p2, p4 }O(t4) = { p1, p1, p2 }#(p1, O(t4)) = 2#(p2, O(t4)) = 1#(p3, O(t4)) = 0

p1

p2

p3p

4p5

t5

t1

t2

t3

t4

Page 4: Paralēlu sistēmu modelēšanas valoda – Petri tīkli

Petri tīkli: marķējumsPetri tīkls: C = < P, T, I, O > -

spēļu galdiņš, uz kura var tikt izvietoti kauliņi.

Kauliņi izvietojami pozīcijās – vienā pozīcijā 0, 1 vai vairāki kauliņi, potenciāli neierobežots skaits.

Kauliņu izvietojums: tīkla marķējums.

Marķējums: : P NMarķēts tīkls: < C, >Piemērs: (p1) = 1, (p2) = 0, (p3) = 1,

(p4) = 2, (p5) = 0Saīsināti rakstīsim: = < 1, 0, 1, 2, 0 >Tālāk – kauliņu pārvietošana pa

galdiņu.

p1p2

p3p4

p5

t5

t1

t2

t3

t4

Page 5: Paralēlu sistēmu modelēšanas valoda – Petri tīkli

Petri tīkli: pāreju izpildePetri tīkls: C = < P, T, I, O >Marķējums: : P NMarķēts tīkls: < C, >Piemērs: 1 = < 1, 0, 1, 2, 0 >Definīcija: Pāreja tj ir iespējama

marķējumā , ja katrai pozīcijai pi: (pi) #(pi,I(tj)).

Piemērā iespējamas pārejas:t1, t3, t5.

Iespējamas pārejas tj izpilde no marķējuma - jauns marķējums ’, kuram katram pi:

’(pi) = (pi) - #(pi,I(tj)) + #(pi,O(tj)).Kauliņi “aiziet” pa šķautnēm uz

pāreju, un tad “atnāk” pa šķautnēm no pārejas. Rakstam -(tj) ’.

p1p2

p3p4

p5

t5

t1

t2

t3

t4

Piemērs: pēc pārejas t5 izpildes jaunais marķējums: <2,0,1,1,0>

Pēc pārejas t3 izpildes (no sākuma marķējuma): <1,0,0,1,1>

Page 6: Paralēlu sistēmu modelēšanas valoda – Petri tīkli

Petri tīkli sistēmu modelēšanāProgramma (blokshēma) kā Petri tīkls: pozīcijas – iezīmes

programmā, pārejas – programmas veicamās darbības starp iezīmēm.

Kādas darbības – to Petri tīkls nespēj modelēt. Abstrakcija no konkrēto darbību satura, līdzīgi kā galīgos automātos.

Petri tīkli ar konkrētajām darbībām – krāsainie Petri tīkli (katram kauliņam sava identitāte, sava “krāsa”, attiecīgi komplicētākas attiecības pārejas notikšanas situācijā).

Programmas izpilde – viena kauliņa pārvietošanās pa blokshēmu.Petri tīkli – nav nekādu grūtību veidot paralēlas aktivitātes: ieliekam

vairākus kauliņus, kas pārvietojas katrs pa savu, vai arī abi pa vienu blokshēmu.

Petri tīkli – spēcīgāka valoda, nekā galīgie automāti: dabiskas iespējas aprakstīt paralēlu izpildi, resursu piesaisti, u.c. Arī matemātiski – potenciāli neierobežota stāvokļu kopa.

Page 7: Paralēlu sistēmu modelēšanas valoda – Petri tīkli

Petri tīkli sistēmu modelēšanā (2)Piemērs: uzdevumu apstrādes sistēma:t0 – uzdevums ienākp1 – uzdevums gaidap4 – procesors gaidat1 – apstrāde tiek uzsāktap2 – apstrāde notiek (procesors strādā)t2 – apstrāde tiek pabeigtap3 – uzdevums izpildītst3 – izpildīts uzdevums atstāj sistēmuIespējams, ka pārejas t3 izpildes gaitā

iegūtie rezultāti tiek nodoti nākamajam apstrādes etapam – nākamajām veicamajām darbībām.

p1

p4 p2

t0

p3

t1

t2

t3

Page 8: Paralēlu sistēmu modelēšanas valoda – Petri tīkli

Petri tīkli sistēmu modelēšanā (3)Uzdevumu izpilde uz diviem paralēli

strādājošiem procesoriem:t0 – uzdevums ienākp1 – uzdevums gaidap4, p6 – procesors gaidat1, t4 – apstrāde tiek uzsāktap2, p5 – apstrāde notiek

(procesors strādā)t2, t5 – apstrāde tiek pabeigtap3 – uzdevums izpildītst3 – izpildīts uzdevums atstāj sistēmuKatru uzdevumu apstrādā viens no

abiem procesoriem.

p1

p4 p2

t0

p3

t1

t2

t3

p5

t4

t5

p6

Page 9: Paralēlu sistēmu modelēšanas valoda – Petri tīkli

Petri tīkli: procesu sinhronizācijaKā panākt, lai pāreja t2 pirmajā procesā un pāreja t5 otrajā

procesā tiktu izpildītas tikai vienlaicīgi?

Ideja: savienot šīs pārejas vienā pārejā (apvienot abu pāreju ieejas pozīciju multikopas un abu pāreju izejas pozīciju multikopas).

p1

p2

p3

t1

t2

t3

p4

p5

p6

t4

t5

t6

Page 10: Paralēlu sistēmu modelēšanas valoda – Petri tīkli

Petri tīkli: kopēja resursa izmantošanaJa divi procesi abi pretendē uz vienu resursu, ko tie var izmantot tikai

atsevišķi, kā šo izmantošanas disciplīnu attēlot ar Petri tīklu?

Ideja: attēlot šo resursu kā atsevišķu pozīciju ar kauliņu tajā. Katrs no procesiem resursu piesaistot kauliņu paņem, un resursu atbrīvojot, kauliņu noliek atpakaļ.

Ja resursi vairāki – svarīga resursu piesaistes secība.

Iespējami arī citi modelēšanas piemēri.

p4

p5

p6

t4

t5

t6

p1

p2

p3

t1

t2

t3

Page 11: Paralēlu sistēmu modelēšanas valoda – Petri tīkli

Petri tīkli: vairāku resursu gadījumsVar būt situācijas, kurās procesiem izpildei ir vajadzīgi vairāk par vienu

resursu. Šādos gadījumos jāuzmanās ar resursu piesaistes secību.

Kreisās puses process var piesaistīt resursu A, labās puses process var piesaistīt resursu B, tad var izrādīties, ka abi gaida, kamēr otrs atbrīvos savu piesaistīto resursu.

Sistēmā nav iespējama tālāka darbība, iestājies dedloks.

Vispārēja metode kā izvairīties no dedlokiem: sanumurēt visus resursus un katram procesam nepieciešamos resursus piesaistīt numuru pieaugšanas secībā.

p4

p5

p6

t4

t5

t6

p1

p2

p3

t1

t2

t3

Page 12: Paralēlu sistēmu modelēšanas valoda – Petri tīkli

Petri tīkli: Pusdienojošo filozofu problēmaĒdamistaba, uz galda 5 šķīvji, 5 dakšiņas un bļoda ar spagetti.

5 filozofi. Katrs filozofs: ēd vai domā.

Ja filozofs domā, un viņam sagribas ēst, viņš nāk pie galda, apsēžas savā vietā, ņem dakšiņu, kas no viņa pa labi, tad dakšiņu, kas no viņa pa kreisi, un paēd.

Kad filozofs paēdis, viņš noliek abas dakšiņas un iet atkal domāt.

Page 13: Paralēlu sistēmu modelēšanas valoda – Petri tīkli

Petri tīkli: analīzes jautājumiPetri tīkls: C = < P, T, I, O >Marķējums: : P NMarķēts tīkls: < C, >Marķējums ’ ir sasniedzams tīklā C no marķējuma , ja eksistē tāda pāreju

virkne, kuru izpildot no iegūstams ’.Rakstam ’ Re(C, ).Jautājums (sasniedzamības problēma): vai eksistē algoritms, kas pēc dotiem

C, , ’ nosaka, vai ’ Re(C, ).Ievērojam: Katrā Petri tīkla pozīcijā var tikt uzglabāts potenciāli neierobežots

kauliņu skaits, tādēļ visa Petri tīkla marķējumu kopa var būt potenciāli bezgalīga.

Fakts. Eksistē algoritms, kas risina marķējuma sasniedzamības problēmu Petri tīkliem.

Pierādījums: ārpus šī kursa iespējām. Bija neatrisināta matemātiska problēma vairāk, nekā 15 gadus.

Petri tīklu sasniedzamības problēma ir ekvivalenta ar sasniedzamības problēmu t.s. vektoru saskaitīšanas sistēmās.

Page 14: Paralēlu sistēmu modelēšanas valoda – Petri tīkli

Papildmateriāls: Vektoru saskaitīšanas sistēmas

Vektoru saskaitīšanas sistēma V n-dimensiju telpā ir pāris V = (B,s), kur B = {s1, …, sm} ir bāzes vektoru kopa un s ir sākuma vektors. Gan vektors s, gan visi vektori si ir n-dimensiju vektori ar veselām koordinātēm, turklāt vektoram s visas koordinātes ir nenegatīvas.

Sasniedzamības kopa R(V) vektoru saskaitīšanas sistēmā V tiek definēta kā mazākā n-dimensiju vektoru kopa, kurai:1) s R(V), un2) ja x R(V) un x + si 0, tad (x + si) R(V).

Fakts. x R(V) tad un tikai tad, ja eksistē bāzes vektoru virkne s(i1), …, s(ip), kurai x = s + s(i1) + … + s(ip) un katram r, s + s(i1) + … + s(ir) 0.

Vektoru saskaitīšanas sistēmas tieši atbilst Petri tīkliem bez paš-cikliem. Pozīcijas atbilst VSS dimensijām, pārejas – vektoriem si.

Var pierādīt, ka sasniedzamības problēma Petri tīkliem bez paš-cikliem ir ekvivalenta sasniedzamības problēmai Petri tīkliem vispār.

Fakts. Vektoram x atbilstošs marķējums nav sasniedzams, ja lineārai vienādojumu sistēmai x = s + s(i1) + … + s(ip) nav atrisinājuma veselos skaitļos.

(iespēja konstatēt atrisinājuma neesamību, atsakoties no pozitivitātes nosacījuma).

Page 15: Paralēlu sistēmu modelēšanas valoda – Petri tīkli

Petri tīkli: marķējuma pārklājamībaPetri tīkls: C = < P, T, I, O > Marķējums: : P N Marķēts tīkls: < C, >Marķējums ’ ir sasniedzams tīklā C no marķējuma , ja eksistē tāda pāreju

virkne, kuru izpildot no iegūstams ’.Rakstam ’ Re(C, ).Jautājums (sasniedzamības problēma): vai eksistē algoritms, kas pēc dotiem

C, , ’ nosaka, vai ’ Re(C, ).Saistīta problēma, vienkāršāks risinājums: marķējuma pārklājamības

problēma.Marķējums ’ ir pārklājams tīklā C ar sākuma marķējumu , ja eksistē tāds ’’

Re(C, ), kuram ’ ’’. (Definējam ’ ’’, ja ’(pi) ’’(pi) katrai tīkla pozīcijai pi).Teorēma. Eksistē algoritms, kas pēc dota tīkla C un dotiem sākuma un beigu

marķējumiem un ’, nosaka, vai ’ ir pārklājams tīklā C ar sākuma marķējumu .

Pierādījuma ideja: veidojam tīklam C marķējumu pārklājamības koku – analoģisku marķējumu sasniedzamības kokam (kurš var būt bezgalīgs), pielietojot papildus metodes koka “apgriešanai” – ja redzam, ka pa konkrēto zaru mēs neko jaunu vairs pārklāt nevarēsim.

Page 16: Paralēlu sistēmu modelēšanas valoda – Petri tīkli

Petri tīkli: pāreju aktivitāte

Petri tīkls: C = < P, T, I, O > Marķējums: : P N Marķēts tīkls: < C, >

Pārejām: dažādi aktivitātes līmeņi.0 – pāreja nekad nav iespējama1- eksistē sasniedzams marķējums, no kura šī

pāreja izpildāma 1 reizi2 – katram n eksistē tāda izpildāma pāreju virkne,

kurā šī pāreja ieiet n reizes3 – eksistē bezgalīga pāreju virkne, kurā šī pāreja

tiek izpildīta bezgalīgi bieži4 – no katra sasniedzama marķējuma eksistē pāreju

virkne, kurā šī pāreja tiek izpildīta.(piemērā šāda pāreja nav uzrādīta).

t0

t1

t2t3

Page 17: Paralēlu sistēmu modelēšanas valoda – Petri tīkli

Petri tīkli: drošība, saglabāšana, konservativitāte

Petri tīkls: C = < P, T, I, O > Marķējums: : P N Marķēts tīkls: < C, >Pozīcija pi marķētā Petri tīklā ir k – droša ( = k – ierobežota), ja kauliņu

skaits tajā nevienā sasniedzamā marķējumā nepārsniedz k.Marķēts Petri tīkls ir k – drošs, ja tajā visas pozīcijas ir k - drošas.Pozīcija Petri tīklā (resp. Petri tīkls) ir droša, ja tā ir 1 – droša.Petri tīkls ir stingri saglabājošs (stingri konservatīvs), ja kauliņu skaits tajā

izpildes laikā nemainās: { ’ (pi) | pi P } = { (pi) | pi P } visiem sasniedzamiem marķējumiem ’ .

Petri tīkls ir saglabājošs (konservatīvs), ja katrai pozīcijai pi var noteikt svaru wi, ka { wi ’ (pi) | pi P } = { wi (pi) | pi P }

Var būt tīkls, kas ir saglabājošs, bet nav stingri saglabājošs (piemērs nākamajā slaidā, redzēts jau arī iepriekš).

Drošība, saglabāšana – būtiskas Petri tīklu īpašības. Vai pēc dota Petri tīkla var noteikt, vai tas ir drošs, saglabājošs? Atbildi sniedz marķējumu pārklājamības grafs.

Page 18: Paralēlu sistēmu modelēšanas valoda – Petri tīkli

Petri tīkli: kopēja resursa izmantošanaJa divi procesi abi pretendē uz vienu resursu, ko tie var izmantot tikai

atsevišķi, kā šo izmantošanas disciplīnu attēlot ar Petri tīklu?

Pozīcijām p2 un p5 jāpiešķir svaru 2, tad šis tīkls būs saglabājošs.

Svaru vektors:(1, 2, 1, 1, 2, 1, 1)

p4

p5

p6

t4

t5

t6

p1

p2

p3

t1

t2

t3

p7

Page 19: Paralēlu sistēmu modelēšanas valoda – Petri tīkli

Petri tīkli: marķējumu pārklājamības grafsp1

p2

p3p4

p5

t5

t1

t2

t3

t4

- varam iegūt šajā pozīcijā cik patīk daudz (atkārtojot kokā redzamās pārejas no ’ uz ).

Tālāk -a = , +a = .

Uzmanību – cits piemērs!Koka “nogriešana” – ja sastopam

, par kuru lielāks jau sastapts- Ja sastopam , par kuru mazāks

’ ir kokā virs viņa (rakstam attiecīgajās pozīcijās .

<0,0,1,3,0>

<1,0,1,2,0>

<1,0,0,1,1><0,1,1,2,0>

t3t5 t1

<2,1,1,1,0>

<1,1,1,2,0>

t4

t5

<1,,1,2,0>

<1,,2,2,0>t2

<1,,,2,0>…

… ……

Page 20: Paralēlu sistēmu modelēšanas valoda – Petri tīkli

Par marķējuma pārklājamības algoritmuA. Algoritma korektība: algoritms tiešām risina marķējuma pārklājamības

problēmu: marķējums ’ ir pārklājams grafā tad un tikai tad, ja tas ir pārklājams Petri tīklā.

Pierādījums: Pēc marķējuma pārklājamības grafa konstrukcijas, ievērojot (1) monotonitātes principu: ja -(tj) ’ un 1 ’, tad eksistē 1’ ’, kam 1 -(tj) 1’ (un 1’ - ’ = 1 - , atņemšana tiek veikta pa pozīcijām), un(2) iespēju tīklā atkārtot marķējumu pārklājamības grafā ietvertās “palielinošās” pāreju virknes.

B. Algoritma apstāšanās. Dažādo iespējamo marķējumu pārklājamības grafā vienalga, ir bezgalīgs skaits.

Lemma. Katram n, katrai naturālu skaitļu kortežu garumā n virknei x1, x2, …, xi, … (katrs no xi – kortežs garumā n) eksistē tādi i un j, ka i < j un xi xj (salīdzināšana tiek veikta pa komponentēm).

Secinājums: Marķējumu pārklājamības kokā neviens zars nav bezgalīgs (agri vai vēlu tiks palielināts skaits kārtējā marķējumā).

Tā kā kokā katrai virsotnei ir ne vairāk kā galīgs skaits “bērnu”, tad arī pats koks ir galīgs (pierādījums - ?)

Lemmas pierādījums - ?

Page 21: Paralēlu sistēmu modelēšanas valoda – Petri tīkli

Par marķējuma pārklājamības algoritmu (2)Lemma. Ja katram i x(i) ir naturālu skaitļu kortežs garumā n, tad virknei x(1),

x(2), … eksistē bezgalīga apakšvirkne x(i1), x(i2), …, kurai x(ik) x(ip), ja k p.

Pierādījums. Ar matemātisko indukciju pēc n.Bāze. n=1. x(1), x(2), … ir naturālu skaitļu virkne. Ir 2 iespējas:

(a) šajā virknē ir lielākais skaitlis N (katram i x(i) N), vai arī(b) katram skaitlim A eksistē tāds x(i), ka x(i) a.

Gadījums (a). Tā kā virknē ir bezgalīgi daudz elementu, un katrs no tiem ir vienāds ar kādu no skaitļiem no galīgas kopas {0,1, …, N}, tad vismaz viens no šīs kopas elementiem virknē ieiet bezgalīgi daudz reižu. Kā bezgalīgo nedilstošo apakšvirkni varam ņemt tos elementus, kas vienādi ar šo skaitli.

Gadījums (b). Ņemam i1 = 1. Ja esam ieguvuši ip, tad apzīmējam ap = max{ x(j) | j ip }. Dotajā virknē eksistē skaitlis, kas lielāks par ap, ņemam vienu no tiem par x(i(p+1)) (skaidrs, ka i(p+1) > ip).

Pāreja: 1, k -> k+1. Dotajai virknei ar kortežiem garumā n aplūkojam apakšvirkni, kas ir nedilstoša pēc pirmās pozīcijas. Šai apakšvirknei paņemam apakšvirkni, kas ir nedilstoša pēc pēdējām k pozīcijām. Iegūtā apakšvirkne ir bezgalīga sākotnējās virknes apakšvirkne, kas ir nedilstoša visās pozīcijās.

Page 22: Paralēlu sistēmu modelēšanas valoda – Petri tīkli

Par marķējuma pārklājamības algoritmu (3)Lemma. Ja kokā

1) katrai virsotnei ir ne vairāk, kā galīgs skaits bērnu, un2) nav bezgalīgu ceļu, tad koks pats arī ir galīgs.

Pierādījums. Pieņemsim pretējo, ka koks ir bezgalīgs. Apzīmējam koka sākuma virsotni (sakni) ar a0. Zem a0 ir bezgalīgi daudz koka virsotņu. Tā kā a0 ir tikai galīgs skaits bērnu, tad zem viena no tiem būs bezgalīgi daudz koka virsotņu. Apzīmējam šo virsotni ar a1.

Ja esam ieguvuši virsotni ai, zem kuras kokā ir bezgalīgi daudz virsotņu, tad kā a(i+1) ņemam to no ai bērniem, zem kura arī ir bezgalīgi daudz koka virsotņu.

Šādā veidā esam ieguvuši bezgalīgu koka ceļu:a0, a1, a2, …Iegūta pretruna, tātad sākotnējais pieņēmums, ka koks ir

bezgalīgs, ir aplams.

Page 23: Paralēlu sistēmu modelēšanas valoda – Petri tīkli

Papildmateriāls: Petri tīkli un automāti ar skaitītājiem

Katra tīkla pozīcija – skaitītājs: iespēja pārejas izpildes gaitā kauliņu skaitu palielināt par 1, samazināt par 1.

Petri tīkls – automāts ar n skaitītājiem.Teorēma. Automātam ar 2 skaitītājiem apstāšanās (virsotnes

sasniedzamības) problēma nav algoritmiski atrisināma.Petri tīkliem – marķējuma sasniedzamības un marķējuma

pārklājamības problēmas ir algoritmiski atrisināmas.Kā izskaidrojama šāda neatbilstība?Petri tīkliem – monotonitātes princips: jo vairāk kauliņu pozīcijās, jo

vairāk iespējamu pāreju.Automātos ar skaitītājiem – iespēja izdarīt kādu pāreju, ja kāda no

skaitītāja vērtībām ir 0 (šī pāreja nav iespējama, ja skaitītāja vērtība ir lielāka par 0).

Iespēja pārbaudīt skaitītāja vērtību uz 0 – būtisks faktors, kas nosaka algoritma neesamību automātiem ar skaitītājiem.

Page 24: Paralēlu sistēmu modelēšanas valoda – Petri tīkli

Krāsainie Petri tīkli: ideja“Krāsa”: Petri tīkla kauliņa individualitāte. Vienā pozīcijā var tikt uzglabāti kauliņi ar dažādām

individualitātēm.Katrs kauliņš var nest sevī patvaļīgi sarežģītu datu struktūru.Pārejas: nosaka ne tikai cik, bet arī kādi kauliņi tiks pārvietoti:

- pārejas notikšanai nepieciešams kauliņu komplekts, kas atbilst noteiktam šablonam, - jaunie kauliņi tiek veidoti, ņemot vērā ienākošo kauliņu īpašības un pārejas definēto šablonu).

Krāsainie Petri tīkli, var būt dažādas formalizācijas, seko šai idejai.

Page 25: Paralēlu sistēmu modelēšanas valoda – Petri tīkli

Krāsainie Petri tīkli: definīcijaKrāsainais Petri tīkls: CPN = ( , P, T, A, N, C, G, E, I ), kur

- galīga tipu kopa (tips – “krāsu”, datu vērtību kopa)P – galīga pozīciju kopaT – galīga pāreju kopa, T P = A – galīga šķautņu kopa (katra šķautne būs P T vai T P, sk. N)N – šķautnes incidences pāris: N: A P T T P C – virsotņu tipu funkcija: C: P , kāda tipa kauliņi katrā pozīcijāG – pāreju iespējamības funkcija, katrai pārejai tT, G(t) ir t iespējamības predikāts, var saturēt mainīgos, kas atbilst tipiem no : Type(G(t)) = Bool, Type(Var(G(t))) E – šķautņu izteiksmju funkcija, katrai aA, E(a) ir šķautnes a izteiksme, kurai Type(E(a)) = C(p)MS , Type(Var(E(a)) , kur p ir N(a) iesaistītā pozīcija (Piezīme: XMS kopai X ir multi-kopu kopa pār X).I – inicializācijas funkcija, katrai pozīcijai p, I(p) ir izteiksme bez mainīgajiem, kam Type(I(p)) = C(p)MS.

Page 26: Paralēlu sistēmu modelēšanas valoda – Petri tīkli

Krāsainie Petri tīkli: pārejas (1)CPN = ( , P, T, A, N, C, G, E, I ), kur - galīga tipu kopa,

P – galīga pozīciju kopa, T – galīga pāreju kopa, T P = A – galīga šķautņu kopa, N: A P T T P C: P , kauliņu tips virsotnei, G – tT, G(t) ir t iespējamības predikāts, E – katrai aA, E(a) ir šķautnes a izteiksme, I – inicializācijas funkcija.

Pārejai t, virsotņu pārim (x1,x2) P T T P A(t) = { aA | N(a) P {t} {t} P }Var(t) = { v | vG(t) aA(t) : vVar(E(a)) }A(x1,x2) = { a A | N(a) = (x1,x2) }E(x1,x2) = { E(a) | a A(x1,x2) } - multikopu summa (apvienojums)

Pārejas t piesaiste (binding): funkcija b, definēta uz v Var(t), ar īpašībām:(i) vVar(t): b(v) Type(v), (ii) G(t) <b> - predikāts G(t) ir patiess, ja Var(t) saņem vērtības no b.

b – konkrētu vērtību piešķiršana visiem ar pāreju saistītajiem mainīgajiem. B(t) visu pārejas t piesaistu kopa.

Page 27: Paralēlu sistēmu modelēšanas valoda – Petri tīkli

Krāsainie Petri tīkli: pārejas (2)CPN = ( , P, T, A, N, C, G, E, I ), kur - galīga tipu kopa,

P – galīga pozīciju kopa, T – galīga pāreju kopa, T P = A – galīga šķautņu kopa, N: A P T T P C: P , kauliņu tips virsotnei, G – tT, G(t) ir t iespējamības predikāts, E – katrai aA, E(a) ir šķautnes a izteiksme, I – inicializācijas funkcija.

Pārejai t, virsotņu pārim (x1,x2) P T T P A(t) ={aA | N(a) P{t} {t}P}, Var(t) = {v| vG(t) aA(t) : vVar(E(a))}A(x1,x2) = { a A | N(a) = (x1,x2) }, E(x1,x2) = { E(a) | a A(x1,x2) }

Pārejas t piesaiste (binding): funkcija b, definēta uz v Var(t), ar īpašībām:(i) vVar(t): b(v) Type(v), (ii) G(t) <b>. B(t) - visu pārejas t piesaistu kopa.

Kauliņa elements: (p,c), kur pP, cC(p). Piesaistes elements: (t,b), kur tT, bB(t).Marķējums: kauliņa elementu multikopa. Solis: piesaistes elementu multikopa.Solis Y ir iespējams marķējumā M, ja pP { E(p,t)<b> | (t,b) Y } M(p).Piezīme. Solis var ietvert vairākus piesaistes elementus, t.sk. piesaistes elementus,

kas atbilst dažādām pārejām.Ja solis Y ir iespējams marķējumā M1, tad rezultējošā marķējumā M2

pP M2(p) = M1(p) - { E(p,t)<b> | (t,b) Y } + { E(t,p)<b> | (t,b) Y } M2 ir tieši sasniedzams no M1, rakstam M1 [Y> M2.

Page 28: Paralēlu sistēmu modelēšanas valoda – Petri tīkli

Krāsainie Petri tīkli: pusdienojošie filozofiPiemērā:

Phils = {ph1, …, phn}, Forks = {f1, …, fn}r, l: Phils Forks, r(phi) = fi, l(phi) = fj, kur j = (i + 1) mod n

Phils

Forks

TakeR

TakeL

Put

x

x

x

x

x

xr(x)

l(x)r(x), l(x)

Phils

Forks Put

x

x x

x

r(x), l(x)Take r(x), l(x)

Tālāki piemēri un teorija: sk. K.Jensen rakstu ‘A Brief Introduction to Colored Petri Nets’