Pereiti prie turinio

Petri tinklai

Straipsnis iš Vikipedijos, laisvosios enciklopedijos.
Petri tinklų trajektorija

Petri tinklai – viena iš keleto matematinio modeliavimo kalbų, skirta paskirstytųjų sistemų aprašymui. Petri tinklas yra orientuotas dvidalis grafas, kuriame mazgai atitinka perėjimus (t. y. įvykiai kurie gali įvykti – pažymėti stulpeliais) ir vietas (t. y. sąlygos – pažymėtos apskritimais). Briaunos parodo, kurios vietos yra išankstinės sąlygos ir/ar posąlygos. Petri tinklus išrado Carl Adam Petri 1939 m. rugpjūtį, būdamas 13 metų norėdamas apibūdinti cheminį procesą.

Kaip ir industrijos standartai tokie kaip UML diagramos, BPMN ir EPC, Petri tinklai suteikia galimybes žymėti pažingsninius procesus kaip pasirinkimas, kartojimas ir lygiagretus vykdymas. Kitaip nei minėti standartai, Petri tinklai turi tikslius vykdymo semantikos matematinius apibrėžimus su gerai išvystyta matematine procesų analizės teorija.

Baziniai Petri tinklai

[redaguoti | redaguoti vikitekstą]

Petri tinklai susideda iš vietų, perėjimų ir rodyklių. Rodyklės rodo iš vietos į perėjimą ir atvirkščiai, bet niekados tarp vietų ar tarp perėjimų. Vietos, iš kurių rodyklė eina į perėjimą, vadinamos perėjimo įvesties vietomis; vietos į kurias eina rodyklės iš perėjimų – perėjimo išvesties vietomis.

Vietos gali turėti natūralų skaičių žymių. Žymių pasiskirstymas tinklo vietose yra vadinamas žymėjimu. Petri tinklo perėjimas gali suveikti bet kada kai žymė yra visų įvesties rodyklių pradžioje; kai ji suveikia, ji sunaudoja šias žymes ir perkelia žymes į išvesties rodyklės galą. Veikimas yra atominis, t. y., vientisas nenutraukiamas žingsnis.

Petri tinklų vykdymas yra nedeterministinis: kai keletas perėjimų yra įjungta tuo pačiu metu, bet kuris iš jų gali suveikti. Jeigu perėjimas yra įjungtas jis gali suveikti, bet nebūtinai. Viena žymė vienam perėjimui.

Kadangi veikimas yra nedeterministinis ir keletas žymių gali būti bet kur tinkle (netgi toje pačioje vietoje), Petri tinklai yra tinkami modeliuoti lygiagrečius paskirstytų sistemų elgesius.