Кіріспе
Бөлінген жүйелерді сипаттау моделі Петри желісі, сонымен қатар орын/өтпелі желі (PT желісі) деп аталады, бұл бөлінген жүйелерді сипаттау үшін қолданылатын бірнеше математикалық модельдеу тілдерінің бірі. Бұл дискретті оқиғалардың динамикалық жүйесінің класы. Петри желісі – екі түрлі элементтен тұратын бағытталған екіжақты граф: орындар мен өтпелер. Орындар ақ шеңберлермен, ал өтпелер тіктөртбұрыштармен бейнеленеді. Орынға қара шеңберлер түрінде белгілер орналаса алады. Егер оған кіріс ретінде қосылған барлық орындарда кем дегенде бір белгі болса, өтпел іске қосылады. Кейбір дереккөздерде Петри желілерін 1939 жылдың тамызында 13 жасар Карл Адам Петри химиялық процестерді сипаттау үшін ойлап тапқан делінеді. UML белсенділік диаграммалары, Бизнес-процесс моделі және нотациясы, сондай-ақ оқиға басқарылатын процесс тізбектері сияқты салалық стандарттармен салыстырғанда, Петри желілері таңдау, қайталау және параллель орындалуды қамтитын қадамдық процестерді графикалық түрде бейнелеуге мүмкіндік береді. Бұл стандарттардан өзгешелігі, Петри желілерінің орындалу семантикасының нақты математикалық анықтамасы бар және процестерді талдау үшін жақсы дамыған математикалық теорияға ие.
A Petri net, also known as a place/transition net (PT net), is one of several mathematical modeling languages for the description of distributed systems. It is a class of discrete event dynamic system. A Petri net is a directed bipartite graph that has two types of elements: places and transitions. Place elements are depicted as white circles and transition elements are depicted as rectangles. A place can contain any number of tokens, depicted as black circles. A transition is enabled if all places connected to it as inputs contain at least one token. Some sources state that Petri nets were invented in August 1939 by Carl Adam Petri—at the age of 13—for the purpose of describing chemical processes. Like industry standards such as UML activity diagrams, Business Process Model and Notation, and event driven process chains, Petri nets offer a graphical notation for stepwise processes that include choice, iteration, and concurrent execution. Unlike these standards, Petri nets have an exact mathematical definition of their execution semantics, with a well developed mathematical theory for process analysis.
Тарихи негіздер
Неміс компьютер ғалымы Карл Адам Петри, осы құрылымдар оның атымен аталған, 1962 жылы жазған «Коммуникация мит автомат» атты диссертациясында Петри желілерін жан-жақты талдаған.
Петри желісінің негіздері
Петри желісі орындардан, өтулерден және доғалардан тұрады. Доғалар бір орыннан өтуге немесе керісінше жүреді, ешқашан орындардың арасында немесе өтулердің арасында болмайды. Өтуге қарай доғасы бар орындар өтудің кіріс орындары деп аталады; өтуден доғасы бар орындар өтудің шығыс орындары деп аталады. Графикалық тұрғыдан алғанда, Петри желісіндегі орындар дискретті санды белгілер, яғни токендерді қамтуы мүмкін. Токендердің орындарға таралуы желінің конфигурациясын көрсетеді, бұл таңбалау деп аталады. Петри желісінің диаграммасына қатысты абстрактілі түрде, өту, егер ол қосылған болса, яғни оның барлық кіріс орындарында жеткілікті токендер болса, іске қосылуы мүмкін; өту іске қосылғанда, ол қажетті кіріс токендерін пайдаланады және оның шығыс орындарында токендерді жасайды. Іске қосылу атомдық, яғни бір, үзілмейтін қадам. Егер орындау саясаты (мысалы, өтулердің қатаң реті, басымдық сипаттамасы) анықталмаса, Петри желісін орындау детерминистік емес: бірнеше өту бір уақытта қосылған кезде, олар кез келген ретпен іске қосылады. Іске қосылу детерминистік емес болғандықтан және желіде бірнеше токендер кез келген жерде болуы мүмкін (тіпті бір орында да), Петри желілері үлестірілген жүйелердің бір мезгілдегі әрекеттерін модельдеуге өте ыңғайлы.
Ресми анықтама және негізгі терминология
Петри торлары – элементар торлар деп аталатын торлар класын кеңейтетін күйдегі ауысу жүйелері. 1-анықтама. Тор – бұл түпл, онда P және T тиісінше орын мен өтпелердің ажыратылған шекті жиынтығы. F – (бағытталған) доғалар (немесе ағын қатынастары) жиынтығы. 2-анықтама. N = (P, T, F) берілген жағдайда конфигурация – C жиынтығы, сондықтан C ⊆ P. 3-анықтама. Элементар тор – EN = (N, C) түріндегі тор, онда N = (P, T, F) тор. C – C ⊆ P конфигурациясы. 4-анықтама. Петри торы – PN = (N, M, W) формасындағы тор, ол элементар торды кеңейтеді, мұнда N = (P, T, F) тор. M: P → Z – орындық көптік, мұнда Z – саналатын жиын. M конфигурация ұғымын кеңейтеді және әдетте Петри торларының диаграммаларына сілтеме жасай отырып, таңбалау ретінде сипатталады. W: F → Z – доғалық көптік, сондықтан әр доғаның саны (немесе салмағы) доғаның көптілігінің өлшемі болып табылады. Егер Петри торы элементар торға тең болса, онда Z {0,1} саналатын жиынтығы болуы мүмкін және M астында P-дегі 1-ге сәйкес келетін элементтер конфигурацияны құрайды. Сол сияқты, егер Петри торы элементар тор болмаса, онда M көптігі конфигурациялардың бірлік емес жиынтығын білдіреді деп түсіндіруге болады. Осыған байланысты M элементар торлардың конфигурациясы туралы түсінікті Петри торларына дейін кеңейтеді. Петри торының диаграммасында (оң жақтағы жоғарғы суретті қараңыз) орындар әдетте шеңберлермен, өтпелер – ұзын, тар төртбұрыштармен, ал доғалар – бір бағытты жебелермен бейнеленеді, олар орындардың өтпелермен немесе өтпелердің орындармен байланысын көрсетеді. Егер диаграмма элементар тор болса, онда конфигурациядағы орындар әдетте шеңберлер ретінде суреттеледі, онда әрбір шеңберде бір нүкте болады, ол – белгі. Петри торының берілген диаграммасында (оң жақта қараңыз) орын шеңберлері бір конфигурацияда орынның қанша рет пайда болғанын көрсету үшін бірден көп белгілерді қамтуы мүмкін. Бүкіл Петри торының диаграммасында бөлінген белгілердің конфигурациясы таңбалау деп аталады. Жоғарыдағы суретте (оң жақта қараңыз) p1 орны t өтпесінің кіріс орны, ал p2 орны – сол өтпесінің шығыс орны. PN0 (жоғарғы сурет) – M0 таңбалау конфигурациясы бар Петри торы, ал PN1 (төменгі сурет) – M1 таңбалау конфигурациясы бар Петри торы. PN0 конфигурациясы t өтпесіне өтуді барлық кіріс орындарында жеткілікті сандағы белгілердің (суреттерде нүктелер ретінде көрсетілген) болуымен мүмкін етеді, бұл белгілердің саны тиісті доғаларындағы көбею санынан кем емес. Бұл мысалда t өтпесін іске қосу M0 кескінінде M1 таңбалауын құрастыратын бейнелеуді жасайды және төменгі суретте көрсетілген PN1 Петри торына әкеледі. Диаграммада өтпе үшін іске қосу ережесін тиісті кіріс доғаларының көбею санына тең белгілерді кіріс орындарынан алып тастау және тиісті шығыс доғаларының көбею санына тең жаңа белгілерді шығыс орындарында жинақтау арқылы сипаттауға болады. 1-ескертпе. "Кем емес" деген сөздің нақты мағынасы Z-ге қосылудың нақты алгебралық қасиеттеріне байланысты болады, онда алгебралық қасиеттердің шағын өзгерістері Петри торларының басқа кластарына әкелуі мүмкін; мысалы, алгебралық Петри торлары. Келесі ресми анықтама көптеген баламалы анықтамаларға негізделген.
and are disjoint finite sets of places and transitions, respectively. is a set of (directed) arcs (or flow relations). Definition 2. Given a net N = (P, T, F), a configuration is a set C so that C ⊆ P.
Definition 3. An elementary net is a net of the form EN = (N, C) where
N = (P, T, F) is a net. C is such that C ⊆ P is a configuration. Definition 4. A Petri net is a net of the form PN = (N, M, W), which extends the elementary net so that
N = (P, T, F) is a net. M : P → Z is a place multiset, where Z is a countable set. M extends the concept of configuration and is commonly described with reference to Petri net diagrams as a marking. W : F → Z is an arc multiset, so that the count (or weight) for each arc is a measure of the arc multiplicity. If a Petri net is equivalent to an elementary net, then Z can be the countable set {0,1} and those elements in P that map to 1 under M form a configuration. Similarly, if a Petri net is not an elementary net, then the multiset M can be interpreted as representing a non singleton set of configurations. In this respect, M extends the concept of configuration for elementary nets to Petri nets. In the diagram of a Petri net (see top figure right), places are conventionally depicted with circles, transitions with long narrow rectangles and arcs as one way arrows that show connections of places to transitions or transitions to places. If the diagram were of an elementary net, then those places in a configuration would be conventionally depicted as circles, where each circle encompasses a single dot called a token. In the given diagram of a Petri net (see right), the place circles may encompass more than one token to show the number of times a place appears in a configuration. The configuration of tokens distributed over an entire Petri net diagram is called a marking. In the top figure (see right), the place p1 is an input place of transition t; whereas, the place p2 is an output place to the same transition. Let PN0 (top figure) be a Petri net with a marking configured M0, and PN1 (bottom figure) be a Petri net with a marking configured M1. The configuration of PN0 enables transition t through the property that all input places have sufficient number of tokens (shown in the figures as dots) "equal to or greater" than the multiplicities on their respective arcs to t. Once and only once a transition is enabled will the transition fire. In this example, the firing of transition t generates a map that has the marking configured M1 in the image of M0 and results in Petri net PN1, seen in the bottom figure. In the diagram, the firing rule for a transition can be characterised by subtracting a number of tokens from its input places equal to the multiplicity of the respective input arcs and accumulating a new number of tokens at the output places equal to the multiplicity of the respective output arcs. Remark 1. The precise meaning of "equal to or greater" will depend on the precise algebraic properties of addition being applied on Z in the firing rule, where subtle variations on the algebraic properties can lead to other classes of Petri nets; for example, algebraic Petri nets. The following formal definition is loosely based on Many alternative definitions exist.
Анықтамадағы өзгерістер
Жалпы вариация – доғалардың көптігіне тыйым салу және W доғалар жиынын ағыс қатынасы деп аталатын қарапайым жиынмен алмастыру. Бұл өрнектей алу мүмкіндігін шектемейді, себебі екеуі де бір-бірін бейнелей алады. Тағы бір кең таралған нұсқа, мысалы, Desel және Juhás (2001) еңбегінде, орындарға сыйымдылықтарды анықтауға рұқсат ету. Бұл төмендегі кеңейтулер бөлімінде талқыланады.
Категориялық-теориялық тұжырымдама
Мезегуер мен Монтанари Петри категориялары деп аталатын симметриялық моноиділдік категориялардың бір түрін қарастырды.
Петри торларының математикалық қасиеттері
Петри желілерін қызықты ететін бір нәрсе – олар модельдеу мүмкіндігі мен талдауға болатындығы арасындағы тепе-теңдікті ұсынады: бір уақытта жұмыс істейтін жүйелер туралы білуге ниеттенген көптеген мәселелер Петри желілері үшін автоматты түрде шешіле алады, бірақ олардың кейбіреулерін шешу жалпы жағдайда өте қиынға соғуы мүмкін. Бір уақытта жұмыс істейтін жүйелердің қызықты түрлерін модельдей алатын, сонымен қатар оларды шешу оңай болатын Петри желілерінің бірнеше кіші топтары зерттелді. Мұндай шешімдік мәселелерге шолу, сондай-ақ Петри желілері мен олардың кейбір кіші топтары үшін шешілетіндігі және күрделілігі туралы нәтижелерді Эспарза мен Нильсеннің (1995) еңбегінен табуға болады.
Қолжетімділік
Петри торлары үшін қолжетімділік мәселесі – бұл Петри торы N және белгілеме M берілген кезде, жоғарыда анықталған қолжетімділік графигін, қажетті белгілемеге жетуге немесе оны табу мүмкін болмайтынына дейін жүру мәселесін шешу болып табылады. Бұл көрінетіннен қиын: қолжетімділік графигі әдетте шексіз болады және қашан тоқтату қауіпсіз екенін анықтау оңай емес. Шындығында, бұл мәселе шешімді таба алатыны дәлелденгенге дейін көп жыл бұрын өте қиын екені көрсетілді (Mayr, 1981). Оны тиімді қалай шешу туралы мақалалар жариялануда. 2018 жылы Czerwiński және авторлар төменгі шекараны жақсартты және мәселенің ЭЛЕМЕНТАРЛЫ емес екенін көрсетті. 2021 жылы бұл мәселенің примитивті емес рекурсивті екені Jerome Leroux және Wojciech Czerwiński мен Łukasz Orlikowski дербес түрде көрсетті. Осылайша, бұл нәтижелер ұзақ жылдар бойы сақталған күрделілік айырмашылығын жабады. Қолжетімділік қателікті күйлерді табу үшін жақсы құрал болғанымен, практикалық мәселелер үшін құрастырылған графтың көбінесе есептеуге тым көп күйлері болады. Бұл мәселені жеңілдету үшін, сызықтық уақыт логикасы әдетте таблицалық әдіспен бірге қолданылады, бұл осындай күйлерге жету мүмкін емес екенін дәлелдеуге мүмкіндік береді. Сызықтық уақыт логикасы жартылай шешімді қолданады, егер белгілі бір күйге жету мүмкін болса, онда осы күйге жету үшін қажетті шарттар жиынтығын тауып, содан кейін осы шарттардың орындалмауын дәлелдейді.
It is a matter of walking the reachability graph defined above, until either the requested marking is reached or it can no longer be found. This is harder than it may seem at first: the reachability graph is generally infinite, and it isn't easy to determine when it is safe to stop. In fact, this problem was shown to be EXPSPACE hard years before it was shown to be decidable at all (Mayr, 1981). Papers continue to be published on how to do it efficiently. In 2018, Czerwiński et al. improved the lower bound and showed that the problem is not ELEMENTARY. In 2021, this problem was shown to be non primitive recursive, independently by Jerome Leroux
and by Wojciech Czerwiński and Łukasz Orlikowski. These results thus close the long standing complexity gap. While reachability seems to be a good tool to find erroneous states, for practical problems the constructed graph usually has far too many states to calculate. To alleviate this problem, linear temporal logic is usually used in conjunction with the tableau method to prove that such states cannot be reached. Linear temporal logic uses the semi decision technique to find if indeed a state can be reached, by finding a set of necessary conditions for the state to be reached then proving that those conditions cannot be satisfied.
Тіршілік
Петри желілерін әртүрлі деңгейдегі тіршілікке ие деп сипаттауға болады. Петри желісі тірі деп аталады, егер және тек егер оның барлық өтулері тірі болса, онда өту өлі болып есептеледі, егер ол ешқашан іске қосылмаса, яғни ол тірі желіде ешқандай орындалу тізбегінде болмаса. Өту тірі болып есептеледі, егер және тек егер ол іске қосылуы мүмкін болса, яғни ол кейбір орындалу тізбегінде болса. Өту кездейсоқ жиілікпен іске қосыла алатын болса, яғни әрбір оң бүтін сан k үшін, ол тірі желідегі кейбір орындалу тізбегінде кем дегенде k рет кездессе, онда ол тірі болып есептеледі. Егер ол шексіз жиілікпен іске қосыла алатын болса, яғни егер белгілі бір тұрақты (қажетті түрде шексіз) орындалу тізбегі болса, онда әрбір оң бүтін сан k үшін, өту кем дегенде k рет кездеседі, онда ол тірі болып есептеледі. Өту әрқашан іске қосыла алатын болса, яғни ол әр қолжетімді белгіде тірі болса, онда ол тірі болып есептеледі. Бұл талаптардың қатаңдығы арта түседі: тіршілік, күшті тіршіліктен туындайды. Бұл анықтамалар Мюратаның шолуына сәйкес келеді, ол сонымен қатар өлі терминін де қолданады.
dead, if it can never fire, i. e. it is not in any firing sequence in
live (potentially fireable), if and only if it may fire, i. e. it is in some firing sequence in
live if it can fire arbitrarily often, i. e. if for every positive integer k, it occurs at least k times in some firing sequence in
live if it can fire infinitely often, i. e. if there is some fixed (necessarily infinite) firing sequence in which for every positive integer k, the transition occurs at least k times,
live (live) if it may always fire, i. e. it is live in every reachable marking in
Note that these are increasingly stringent requirements: liveness implies liveness, for
These definitions are in accordance with Murata's overview, which additionally uses live as a term for dead.
Шектелу
Петри торындағы орын, егер барлық қолжетімді белгілерде, бастапқы белгіні қоса алғанда, k белгіден артық болмаса, k-шекті деп аталады; егер ол 1-шекті болса, қауіпсіз деп аталады; егер ол k-шекті болса, шекті деп аталады. (Белгіленген) Петри торы, егер оның барлық орындары k-шекті, қауіпсіз немесе шекті болса, солай аталады. Петри желісі (графигі), егер ол кез келген мүмкін бастапқы белгілеу үшін шекті болса, (құрылымдық) шекті деп аталады. Петри желісі шекті, және тек қана оның қолжетімділік графигі шекті болса. Шектілік жабу арқылы анықталады, Карп-Миллер ағашын құрастыру арқылы. Берілген желідегі орындарға нақты шек қою пайдалы болуы мүмкін. Бұл жүйе ресурстарының шектеулі болуын модельдеу үшін қолданылуы мүмкін. Петри желілерінің кейбір анықтамалары мұны синтаксистік мүмкіндік ретінде ашық түрде рұқсат етеді. Формальды түрде, орындық сыйымдылығы бар Петри желілері түпкілікті жиын ретінде анықталуы мүмкін, онда – Петри желісі, ал – (кейбір немесе барлық) орындарға сыйымдылықтарды тағайындау, ал көшу қатынасы – әдеттегісі, бірақ әрбір орынның сыйымдылығы бар белгілердің саны осы сыйымдылықтан аспайтын белгілерге ғана шектелген. Мысалы, егер N желісінде екі орынға да 2 сыйымдылық берілсе, онда біз орындық сыйымдылығы бар Петри желісін аламыз, мысалы N2; оның қолжетімділік графигі оң жақта көрсетілген. Сондай-ақ, орындарды желіні кеңейту арқылы шектеуге болады. Нақтырақ айтқанда, орынды k-шекті ету үшін, орынға қарама-қарсы ағыны бар «кері орын» қосып, екі орында да k белгіні жасау үшін белгілерді қосу керек.
A (marked) Petri net is called k bounded, safe, or bounded when all of its places are. A Petri net (graph) is called (structurally) bounded if it is bounded for every possible initial marking. A Petri net is bounded if and only if its reachability graph is finite. Boundedness is decidable by looking at covering, by constructing the Karp–Miller Tree. It can be useful to explicitly impose a bound on places in a given net. This can be used to model limited system resources. Some definitions of Petri nets explicitly allow this as a syntactic feature. Formally, Petri nets with place capacities can be defined as tuples , where is a Petri net, an assignment of capacities to (some or all) places, and the transition relation is the usual one restricted to the markings in which each place with a capacity has at most that many tokens. For example, if in the net N, both places are assigned capacity 2, we obtain a Petri net with place capacities, say N2; its reachability graph is displayed on the right. Alternatively, places can be made bounded by extending the net. To be exact,
a place can be made k bounded by adding a "counter place" with flow opposite to that of the place, and adding tokens to make the total in both places k.
Дискретті, үздіксіз және гибридті Петри торлары
Дискретті оқиғалармен қатар, үздіксіз және гибридті үздіксіз процестер үшін, сондай-ақ дискретті, үздіксіз және гибридті автоматтармен байланысты Петри желілері де бар.