Мережі Петрі: відмінності між версіями
[неперевірена версія] | [неперевірена версія] |
м робот додав: id:Petri net |
Немає опису редагування |
||
Рядок 1: | Рядок 1: | ||
[[ |
[[Зображення:Detailed petri net.png|right|thumb|300px|Приклад мережі Петрі.]] |
||
'''Мережа Петрі''' |
'''Мережа Петрі''' — математична абстакція для представлення дискретних розподілених систем. Графічно представляється у вигляді дводольного [[граф|орієнтованого мультиграфу]] з маркерами («фішками») (маркований орієнтований [[граф]]), який має дві групи [[Вершина графа|вершин]]: [[вузол (граф)|позиції]] та [[перехід|переходи]]. [[Вузол (граф)|Позиції]] можуть бути [[Пустий вузол|пустими]] або маркованими та визначають <стан> мережі. [[Перехід|Переходи]] визначають дії. Орієнтовані [[Ребро графа|ребра графу]] задають зв'язки між [[Вузол|позиціями]] та [[Перехід|переходами]]. Процес функціонування мережі Петрі полягає в послідовному «виконанні» переходів, та відповідному перерахункові кількості «фішок» у позиціях. Дуги можуть бути кратними, коли два вузли з'єднані більше ніж однією дугою однакового напрямку. Альтернативно, для відображення кратності дуг може використовуватися функція «ваги» дуг. |
||
== Визначення == |
== Визначення == |
||
Мережа Петрі задається у вигляді [[Мічений граф|маркованого]] [[Двудольний граф|дводольного]] [[Орієнтований граф|орієнтованого]] [[Граф (математика)|графу]]. Розрізняють два види вершин: |
Мережа Петрі задається у вигляді [[Мічений граф|маркованого]] [[Двудольний граф|дводольного]] [[Орієнтований граф|орієнтованого]] [[Граф (математика)|графу]]. Розрізняють два види вершин: |
||
* Позиції. '''P''' |
* Позиції. '''P''' — множина позицій, |
||
* Переходи. '''T''' |
* Переходи. '''T''' — множина переходів. |
||
[[Ребро графа|Ребра]] називають ''дугами''. [[Петля в графі|Петлі]] в графі мереж Петрі неможливі, оскільки дуги можуть з'єднувати лише вершини різних типів (позиції та переходи). Позиції що з'єднані дугами з переходом називають вхідними та вихідними для цього переходу, відповідно до напрямку цих дуг. |
[[Ребро графа|Ребра]] називають ''дугами''. [[Петля в графі|Петлі]] в графі мереж Петрі неможливі, оскільки дуги можуть з'єднувати лише вершини різних типів (позиції та переходи). Позиції що з'єднані дугами з переходом називають вхідними та вихідними для цього переходу, відповідно до напрямку цих дуг. |
||
Кожній позиції приписують деяке ціле додатнє число<br> |
Кожній позиції приписують деяке ціле додатнє число<br /> |
||
:<math>\mu_p \in \mathbb{N} \cup \{0\}</math><br> |
: <math>\mu_p \in \mathbb{N} \cup \{0\}</math><br /> |
||
що називається маркуванням. Сукупність маркувань всіх позицій можна записувати у вигляді [[Вектор|вектора]]. |
що називається маркуванням. Сукупність маркувань всіх позицій можна записувати у вигляді [[Вектор|вектора]]. |
||
Таким чином, для того щоб задати мережу Петрі, необхідно задати пару<br> |
Таким чином, для того щоб задати мережу Петрі, необхідно задати пару<br /> |
||
:<math>\left\langle\mathbf N, \mu_0 \right\rangle</math><br> |
: <math>\left\langle\mathbf N, \mu_0 \right\rangle</math><br /> |
||
де <math>\mu_0 = \left\{\mu(p_1),\mu(p_2),...\mu(p_n)\right\}</math> |
де <math>\mu_0 = \left\{\mu(p_1),\mu(p_2),...\mu(p_n)\right\}</math> — вектор маркування позицій, <math>\mathbf N</math> — структура мережі Петрі:<br /> |
||
:<math>\mathbf N = \left\langle\mathbf P, \mathbf T, \mathbf I, \mathbf O \right\rangle</math>.<br> |
: <math>\mathbf N = \left\langle\mathbf P, \mathbf T, \mathbf I, \mathbf O \right\rangle</math>.<br /> |
||
де <math>\mathbf P</math> |
де <math>\mathbf P</math> — [[множина|множина]] позицій, <math>\mathbf T</math> — [[множина|множина]] переходів, <math>\mathbf I</math> — вхідна функція, <math>\mathbf O</math> — вихідна функція.<br /> |
||
Вхідна та вихідна функції задаються у вигляді [[множина|множин]] комлектів позицій, які є вхідними та вихідними для заданого переходу: |
Вхідна та вихідна функції задаються у вигляді [[множина|множин]] комлектів позицій, які є вхідними та вихідними для заданого переходу: |
||
:<math>\mathbf I = \left\{\mathbf I(t_j)\right\}</math>, <math>\mathbf \mathbf I(t_j) = \left\{p_k\right\}</math>.<br> |
: <math>\mathbf I = \left\{\mathbf I(t_j)\right\}</math>, <math>\mathbf \mathbf I(t_j) = \left\{p_k\right\}</math>.<br /> |
||
:<math>\mathbf O = \left\{\mathbf O(t_j)\right\}</math>, <math>\mathbf \mathbf O(t_j) = \left\{p_k\right\}</math>.<br> |
: <math>\mathbf O = \left\{\mathbf O(t_j)\right\}</math>, <math>\mathbf \mathbf O(t_j) = \left\{p_k\right\}</math>.<br /> |
||
Комплект |
Комплект — узагальнення [[множина|множини]], в якому допускається багаторазове включення однакових елементів. Для комплектів визначається операція кратності. Для запису функції кратності використовується символ #. Кратність вхідної (вихідної) позиції <math>p_i</math> для переходу <math>t_j</math> це кількість появ позиції <math>p_i</math> у вхідному (вихідному) комплекті переходу <math>t_j</math>: |
||
:<math>\#(p_i, \mathbf I(t_j))</math>.<br> |
: <math>\#(p_i, \mathbf I(t_j))</math>.<br /> |
||
Альтернативною формою представлення вхідної та вихідної функції є задання множини дуг та окремого вектору кратності (ваги) дуг.<br> |
Альтернативною формою представлення вхідної та вихідної функції є задання множини дуг та окремого вектору кратності (ваги) дуг.<br /> |
||
Виконання переходу можливе лише за наявності достатньої кількості |
Виконання переходу можливе лише за наявності достатньої кількості «фішок» у його вхідних позиціях. Умова можливості виконання переходу <math>t_j</math>:<br /> |
||
:<math>\mu(p_i) \ge \;\#\left(p_i, \mathbf I(t_j)\right) \forall p_i\in\mathbf P</math>.<br> |
: <math>\mu(p_i) \ge \;\#\left(p_i, \mathbf I(t_j)\right) \forall p_i\in\mathbf P</math>.<br /> |
||
Результатом виконання переходу є зміна кількості |
Результатом виконання переходу є зміна кількості «фішок» у вхідних та вихідних позиціях цього переходу, тобто зміна маркування (стану) мережі Петрі. Нове маркування <math>\mu^{i+1}</math> визначається таким співвідношенням:<br /> |
||
:<math>\mu^{i+1}(p_i) = \mu^i(p_i) - \#(p_i, \mathbf I(t_j)) + \#(p_i, \mathbf O(t_j))</math>,<br> |
: <math>\mu^{i+1}(p_i) = \mu^i(p_i) - \#(p_i, \mathbf I(t_j)) + \#(p_i, \mathbf O(t_j))</math>,<br /> |
||
де <math>t_j</math> |
де <math>t_j</math> — перехід що виконується <math>\mu^{i+1}(p_i)</math> — попереднє маркування.<br /> |
||
Цей вираз дозволяє записати векторну функцію наступного стану, яка виражає наступне маркування мережі Петрі через попереднє маркування та перехід що виконується: |
Цей вираз дозволяє записати векторну функцію наступного стану, яка виражає наступне маркування мережі Петрі через попереднє маркування та перехід що виконується: |
||
:<math>\mu^{i+1} = \delta\left(\mu^i, t_j\right)</math>.<br> |
: <math>\mu^{i+1} = \delta\left(\mu^i, t_j\right)</math>.<br /> |
||
Для заданої послідовності виконання переходів <math>\sigma = \left\langle t_{j1}, t_{j2},... ,t_{jl}\right\rangle</math> використовується розширена функція наступного стану: |
Для заданої послідовності виконання переходів <math>\sigma = \left\langle t_{j1}, t_{j2},... ,t_{jl}\right\rangle</math> використовується розширена функція наступного стану: |
||
:<math>\mu^{i+l} = \delta\left(\mu^i, \sigma\right) = \delta\left(... \delta\left(\delta\left(\mu^i, t_{j1}\right), t_{j2}\right),... ,t_{jl}\right)</math>.<br> |
: <math>\mu^{i+l} = \delta\left(\mu^i, \sigma\right) = \delta\left(... \delta\left(\delta\left(\mu^i, t_{j1}\right), t_{j2}\right),... ,t_{jl}\right)</math>.<br /> |
||
Виконання переходів є атомарним, тобто перехід змінює стан всіх вхідних та вихідних позицій [[транзакція|однією дією]], яка не може бути перервана виконанням іншого переходу. |
Виконання переходів є атомарним, тобто перехід змінює стан всіх вхідних та вихідних позицій [[транзакція|однією дією]], яка не може бути перервана виконанням іншого переходу. |
||
Виконання мереж Петрі в цілому є недетермінованим: |
Виконання мереж Петрі в цілому є недетермінованим: |
||
:# відразу декілька переходів можуть бути дозволеними, і кожен з них може бути виконаний |
:# відразу декілька переходів можуть бути дозволеними, і кожен з них може бути виконаний |
||
:# дозволені переходи не обов'язково виконуються. Дозволений перехід '''може''' бути виконаний. |
:# дозволені переходи не обов'язково виконуються. Дозволений перехід '''може''' бути виконаний. |
||
Взагалі, мережі Петрі не розглядають поняття |
Взагалі, мережі Петрі не розглядають поняття «часу» виконання переходу, а лише послідовність виконань. За допомогою мереж Петрі можна моделювати такі якості як: |
||
* [[Асинхронність|асинхронність]], |
* [[Асинхронність|асинхронність]], |
||
* [[Конфліктність|конфліктнісь]], |
* [[Конфліктність|конфліктнісь]], |
||
Рядок 52: | Рядок 53: | ||
Взагалі, мережі Петрі досліджують на такі властивосі: |
Взагалі, мережі Петрі досліджують на такі властивосі: |
||
# Безпечність |
# Безпечність — досліджує виконання умови що кількість «фішок» в позиції не перевищує 1; |
||
# Обмеженість |
# Обмеженість — досліджує виконання умови що кількість «фішок» в позиції не перевищує заданого числа, |
||
# Зберігальність |
# Зберігальність — досліджує виконання умови що кількість «фішок» в мережі не змінюється, |
||
# Оберненість |
# Оберненість — для довільного досяжного стану досліджується існування послідовності виконань переходів яка повертає мережу в початковий стан), |
||
# Активність переходів |
# Активність переходів — досліджує можливість виконання певних переходів та наявність тупиків — станів у яких переходи не дозволені та для яких неможливо досягти стану в якому ці переходи дозволені, |
||
# Досяжність маркування |
# Досяжність маркування — досліджує існування послідовності виконань переходів при якій можна досягнути задане маркування, |
||
# Покриття |
# Покриття — досліджує існування послідовності виконань переходів при якій можна досягнути маркування що покриває (є більшим) за задане маркування. |
||
Умова зберігальності може бути послаблена, для чого вводять поняття функції ваги:<br> |
Умова зберігальності може бути послаблена, для чого вводять поняття функції ваги:<br /> |
||
:<math> |
: <math> |
||
\mathbf W:\qquad(\mathbf T \times \mathbf P) \cup (\mathbf P \times \mathbf T) \to \mathbb N \cup \{0\}</math><br> |
\mathbf W:\qquad(\mathbf T \times \mathbf P) \cup (\mathbf P \times \mathbf T) \to \mathbb N \cup \{0\}</math><br /> |
||
яка залишається постійною під час роботи. |
яка залишається постійною під час роботи. |
||
Більшість досліджень мереж Петрі можна звести до побудови дерева |
Більшість досліджень мереж Петрі можна звести до побудови дерева досяжності. |
||
== Дивіться також == |
|||
{{Портал математика}} |
|||
* [[Теорія графів]], |
|||
* [[Розподілена система]]. |
|||
=== Література === |
|||
* {{Cite book | author=Reisig, Wolfgang; Rozenberg, Grzegorz | title=Lectures on Petri Nets I--basic models: advances in Petri Nets | date=1998 | publisher=Springer | location=Berlin | isbn=3-540-65306-6}} |
|||
* {{Cite book | author=Reisig, Wolfgang; Rozenberg, Grzegorz | title=Lectures on Petri nets II--applications: advances in Petri nets | date=1998 | publisher=Springer | location=Berlin | isbn=3-540-65307-4}} |
|||
{{Math-stub}} |
{{Math-stub}} |
Версія за 21:19, 5 грудня 2008
Мережа Петрі — математична абстакція для представлення дискретних розподілених систем. Графічно представляється у вигляді дводольного орієнтованого мультиграфу з маркерами («фішками») (маркований орієнтований граф), який має дві групи вершин: позиції та переходи. Позиції можуть бути пустими або маркованими та визначають <стан> мережі. Переходи визначають дії. Орієнтовані ребра графу задають зв'язки між позиціями та переходами. Процес функціонування мережі Петрі полягає в послідовному «виконанні» переходів, та відповідному перерахункові кількості «фішок» у позиціях. Дуги можуть бути кратними, коли два вузли з'єднані більше ніж однією дугою однакового напрямку. Альтернативно, для відображення кратності дуг може використовуватися функція «ваги» дуг.
Визначення
Мережа Петрі задається у вигляді маркованого дводольного орієнтованого графу. Розрізняють два види вершин:
- Позиції. P — множина позицій,
- Переходи. T — множина переходів.
Ребра називають дугами. Петлі в графі мереж Петрі неможливі, оскільки дуги можуть з'єднувати лише вершини різних типів (позиції та переходи). Позиції що з'єднані дугами з переходом називають вхідними та вихідними для цього переходу, відповідно до напрямку цих дуг.
Кожній позиції приписують деяке ціле додатнє число
що називається маркуванням. Сукупність маркувань всіх позицій можна записувати у вигляді вектора.
Таким чином, для того щоб задати мережу Петрі, необхідно задати пару
де — вектор маркування позицій, — структура мережі Петрі:
- .
де — множина позицій, — множина переходів, — вхідна функція, — вихідна функція.
Вхідна та вихідна функції задаються у вигляді множин комлектів позицій, які є вхідними та вихідними для заданого переходу:
- , .
- , .
Комплект — узагальнення множини, в якому допускається багаторазове включення однакових елементів. Для комплектів визначається операція кратності. Для запису функції кратності використовується символ #. Кратність вхідної (вихідної) позиції для переходу це кількість появ позиції у вхідному (вихідному) комплекті переходу :
- .
Альтернативною формою представлення вхідної та вихідної функції є задання множини дуг та окремого вектору кратності (ваги) дуг.
Виконання переходу можливе лише за наявності достатньої кількості «фішок» у його вхідних позиціях. Умова можливості виконання переходу :
- .
Результатом виконання переходу є зміна кількості «фішок» у вхідних та вихідних позиціях цього переходу, тобто зміна маркування (стану) мережі Петрі. Нове маркування визначається таким співвідношенням:
- ,
де — перехід що виконується — попереднє маркування.
Цей вираз дозволяє записати векторну функцію наступного стану, яка виражає наступне маркування мережі Петрі через попереднє маркування та перехід що виконується:
- .
Для заданої послідовності виконання переходів використовується розширена функція наступного стану:
- .
Виконання переходів є атомарним, тобто перехід змінює стан всіх вхідних та вихідних позицій однією дією, яка не може бути перервана виконанням іншого переходу. Виконання мереж Петрі в цілому є недетермінованим:
- відразу декілька переходів можуть бути дозволеними, і кожен з них може бути виконаний
- дозволені переходи не обов'язково виконуються. Дозволений перехід може бути виконаний.
Взагалі, мережі Петрі не розглядають поняття «часу» виконання переходу, а лише послідовність виконань. За допомогою мереж Петрі можна моделювати такі якості як:
Дослідження мережі Петрі
Основні методи дослідження мереж Петрі:
- Дерево досягальності,
- Графічний,
- Аналітичний,
- За допомогою еквівалентних перетвореннь.
Взагалі, мережі Петрі досліджують на такі властивосі:
- Безпечність — досліджує виконання умови що кількість «фішок» в позиції не перевищує 1;
- Обмеженість — досліджує виконання умови що кількість «фішок» в позиції не перевищує заданого числа,
- Зберігальність — досліджує виконання умови що кількість «фішок» в мережі не змінюється,
- Оберненість — для довільного досяжного стану досліджується існування послідовності виконань переходів яка повертає мережу в початковий стан),
- Активність переходів — досліджує можливість виконання певних переходів та наявність тупиків — станів у яких переходи не дозволені та для яких неможливо досягти стану в якому ці переходи дозволені,
- Досяжність маркування — досліджує існування послідовності виконань переходів при якій можна досягнути задане маркування,
- Покриття — досліджує існування послідовності виконань переходів при якій можна досягнути маркування що покриває (є більшим) за задане маркування.
Умова зберігальності може бути послаблена, для чого вводять поняття функції ваги:
яка залишається постійною під час роботи.
Більшість досліджень мереж Петрі можна звести до побудови дерева досяжності.
Дивіться також
Література
- Reisig, Wolfgang; Rozenberg, Grzegorz (1998). Lectures on Petri Nets I--basic models: advances in Petri Nets. Berlin: Springer. ISBN 3-540-65306-6.
- Reisig, Wolfgang; Rozenberg, Grzegorz (1998). Lectures on Petri nets II--applications: advances in Petri nets. Berlin: Springer. ISBN 3-540-65307-4.
Це незавершена стаття з математики. Ви можете допомогти проєкту, виправивши або дописавши її. |