280 likes | 499 Views
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.
E N D
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. 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
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
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.
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>
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.
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.
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.
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).
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.
p4 p1 t4 t1 p5 p2 t2 t5 p6 p3 t6 t3 Petri tīkli: vairāku resursu gadījums 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ā. Var 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.
Petri tīkli: Pusdienojošo filozofu problēma 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. Ēdamistaba, uz galda 5 šķīvji, 5 dakšiņas un bļoda ar spagetti.
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.
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).
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.
t2 t3 t1 t0 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ējama 1- eksistē sasniedzams marķējums, no kura šīpāreja izpildāma 1 reizi 2 – katram n eksistē tāda izpildāma pāreju virkne,kurā šī pāreja ieiet n reizes 3 – eksistē bezgalīga pāreju virkne, kurā šī pārejatiek izpildīta bezgalīgi bieži 4 – no katra sasniedzama marķējuma eksistē pārejuvirkne, kurā šī pāreja tiek izpildīta.(piemērā šāda pāreja nav uzrādīta).
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.
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? 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) p7
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 = . …
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 - ?
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.
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.
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.
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.
Krāsainie Petri tīkli: definīcija Krā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.
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.
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ā M2pP 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.
x TakeL x x x l(x) x r(x), l(x) Put Forks r(x), l(x) r(x), l(x) Put Take Forks r(x) x x x x x Phils TakeR Phils Krāsainie Petri tīkli: pusdienojošie filozofi Piemērā: Phils = {ph1, …, phn}, Forks = {f1, …, fn}r, l: Phils Forks, r(phi) = fi, l(phi) = fj, kur j = (i + 1) mod n Tālāki piemēri un teorija: sk. K.Jensen rakstu ‘A Brief Introduction to Colored Petri Nets’