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

14
Paralēlu sistēmu modelēšanas valoda – Petri tīkli Datorzinātnes pamati

description

Paralēlu sistēmu modelēšanas valoda – Petri tīkli. Datorzinātnes 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. Tradicionāls definīcijas veids (var definēt arī citādi): - PowerPoint PPT Presentation

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

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

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

Datorzinātnes pamati

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

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.

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ērs

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, O: T P, pāreju izejas funkcija,

#(pi, I(tj)) – šķautnes no pi uz tj

#(pi, O(tj)) – šķautnes no tj uz pi

Piemē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ķējums

Petri 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 N

Marķēts tīkls: < C, >

Piemērs:

(p1) = 1, (p2) = 0, (p3) = 1, (p4) = 2, (p5) = 0

Saī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 izpilde

Petri tīkls: C = < P, T, I, O >

Marķējums: : P N

Marķē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āk

p1 – uzdevums gaida

p4 – procesors gaida

t1 – apstrāde tiek uzsākta

p2 – apstrāde notiek (procesors strādā)

t2 – apstrāde tiek pabeigta

p3 – uzdevums izpildīts

t3 – izpildīts uzdevums atstāj sistēmu

Iespē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āk

p1 – uzdevums gaida

p4, p6 – procesors gaida

t1, t4 – apstrāde tiek uzsākta

p2, p5 – apstrāde notiek (procesors strādā)

t2, t5 – apstrāde tiek pabeigta

p3 – uzdevums izpildīts

t3 – izpildīts uzdevums atstāj sistēmu

Katru 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ācija

Kā panākt, lai pāreja t2 pirmajā procesā un pāreja t5 otrajā procesā tiktu izpildītas tikai vienlaicīgi?

p1

p2

p3

t1

t2

t3

p4

p5

p6

t4

t5

t6

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

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: analīzes jautājumi

Petri 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, ).

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 12: Paralēlu sistēmu modelēšanas valoda – Petri tīkli

Petri tīkli: marķējuma pārklājamība

Petri 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 13: Paralēlu sistēmu modelēšanas valoda – Petri tīkli

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

p1p2

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>

t3t5t1

<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 14: Paralēlu sistēmu modelēšanas valoda – Petri tīkli

Par marķējuma pārklājamības algoritmu

A. 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 - ?