1 / 14

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

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):

larya
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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

  3. t1 p2 p1 t2 t4 t5 p3 t3 p4 p5 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

  4. t1 p2 p1 t2 t4 t5 p3 t3 p4 p5 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.

  5. t1 p2 p1 t2 t4 t5 p3 t3 p4 p5 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) ’. 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>

  6. 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.

  7. t0 p1 t1 p4 p2 t2 p3 t3 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.

  8. t0 p1 t1 t4 p6 p4 p2 p5 t2 t5 p3 t3 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.

  9. p1 p4 t1 t4 p2 p5 t2 t5 p3 p6 t3 t6 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? Ideja: savienot šīs pārejas vienā pārejā (apvienot abu pāreju ieejas pozīciju multikopas un abu pāreju izejas pozīciju multikopas).

  10. p4 p1 t4 t1 p5 p2 t5 t2 p6 p3 t6 t3 Petri tīkli: kopēja resursa izmantošana Ja 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.

  11. 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.

  12. 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.

  13. t1 p2 p1 t2 t4 t5 <1,0,1,2,0> p3 t3 t5 t3 p4 t1 <0,0,1,3,0> <0,1,1,2,0> <1,0,0,1,1> p5 t4 … … … <2,1,1,1,0> t5 … <1,1,1,2,0> <1,,1,2,0> t2 <1,,2,2,0> … <1,,,2,0> Petri tīkli: marķējumu pārklājamības grafs 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 .  - varam iegūt šajā pozīcijā cik patīk daudz (atkārtojot kokā redzamās pārejas no ’ uz ). Tālāk -a = , +a = . …

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

More Related