Мережі Петрі: відмінності між версіями

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
[неперевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
м робот додав: id:Petri net
Немає опису редагування
Рядок 1: Рядок 1:
[[Image:Detailed petri net.png|right|thumb|300px|Приклад мережі Петрі.]]
[[Зображення:Detailed petri net.png|right|thumb|300px|Приклад мережі Петрі.]]

'''Мережа Петрі''' - математична абстакція для представлення дискретних розподілених систем. Графічно представляється у вигляді дводольного [[граф|орієнтованого мультиграфу]] з маркерами ("фішками") (маркований орієнтований [[граф]]), який має дві групи [[Вершина графа|вершин]]: [[вузол (граф)|позиції]] та [[перехід|переходи]]. [[Вузол (граф)|Позиції]] можуть бути [[Пустий вузол|пустими]] або маркованими та визначають <стан> мережі. [[Перехід|Переходи]] визначають дії. Орієнтовані [[Ребро графа|ребра графу]] задають зв'язки між [[Вузол|позиціями]] та [[Перехід|переходами]]. Процес функціонування мережі Петрі полягає в послідовному "виконанні" переходів, та відповідному перерахункові кількості "фішок" у позиціях. Дуги можуть бути кратними, коли два вузли з'єднані більше ніж однією дугою однакового напрямку. Альтернативно, для відображення кратності дуг може використовуватися функція "ваги" дуг.
'''Мережа Петрі'''&nbsp;— математична абстакція для представлення дискретних розподілених систем. Графічно представляється у вигляді дводольного [[граф|орієнтованого мультиграфу]] з маркерами («фішками») (маркований орієнтований [[граф]]), який має дві групи [[Вершина графа|вершин]]: [[вузол (граф)|позиції]] та [[перехід|переходи]]. [[Вузол (граф)|Позиції]] можуть бути [[Пустий вузол|пустими]] або маркованими та визначають <стан> мережі. [[Перехід|Переходи]] визначають дії. Орієнтовані [[Ребро графа|ребра графу]] задають зв'язки між [[Вузол|позиціями]] та [[Перехід|переходами]]. Процес функціонування мережі Петрі полягає в послідовному «виконанні» переходів, та відповідному перерахункові кількості «фішок» у позиціях. Дуги можуть бути кратними, коли два вузли з'єднані більше ніж однією дугою однакового напрямку. Альтернативно, для відображення кратності дуг може використовуватися функція «ваги» дуг.


== Визначення ==
== Визначення ==
Мережа Петрі задається у вигляді [[Мічений граф|маркованого]] [[Двудольний граф|дводольного]] [[Орієнтований граф|орієнтованого]] [[Граф (математика)|графу]]. Розрізняють два види вершин:
Мережа Петрі задається у вигляді [[Мічений граф|маркованого]] [[Двудольний граф|дводольного]] [[Орієнтований граф|орієнтованого]] [[Граф (математика)|графу]]. Розрізняють два види вершин:
* Позиції. '''P''' &mdash; множина позицій,
* Позиції. '''P'''&nbsp; множина позицій,
* Переходи. '''T''' &mdash; множина переходів.
* Переходи. '''T'''&nbsp; множина переходів.


[[Ребро графа|Ребра]] називають ''дугами''. [[Петля в графі|Петлі]] в графі мереж Петрі неможливі, оскільки дуги можуть з'єднувати лише вершини різних типів (позиції та переходи). Позиції що з'єднані дугами з переходом називають вхідними та вихідними для цього переходу, відповідно до напрямку цих дуг.
[[Ребро графа|Ребра]] називають ''дугами''. [[Петля в графі|Петлі]] в графі мереж Петрі неможливі, оскільки дуги можуть з'єднувати лише вершини різних типів (позиції та переходи). Позиції що з'єднані дугами з переходом називають вхідними та вихідними для цього переходу, відповідно до напрямку цих дуг.


Кожній позиції приписують деяке ціле додатнє число<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>\mathbf N</math> - структура мережі Петрі:<br>
де <math>\mu_0 = \left\{\mu(p_1),\mu(p_2),...\mu(p_n)\right\}</math>&nbsp;— вектор маркування позицій, <math>\mathbf N</math>&nbsp;— структура мережі Петрі:<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 T</math> - [[множина|множина]] переходів, <math>\mathbf I</math> - вхідна функція, <math>\mathbf O</math> - вихідна функція.<br>
де <math>\mathbf P</math>&nbsp;— [[множина|множина]] позицій, <math>\mathbf T</math>&nbsp;— [[множина|множина]] переходів, <math>\mathbf I</math>&nbsp;— вхідна функція, <math>\mathbf O</math>&nbsp;— вихідна функція.<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>:
Комплект&nbsp;— узагальнення [[множина|множини]], в якому допускається багаторазове включення однакових елементів. Для комплектів визначається операція кратності. Для запису функції кратності використовується символ #. Кратність вхідної (вихідної) позиції <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>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}</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>\mu^{i+1}(p_i)</math> - попереднє маркування.<br>
де <math>t_j</math>&nbsp;— перехід що виконується <math>\mu^{i+1}(p_i)</math>&nbsp;— попереднє маркування.<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;
# Безпечність&nbsp;— досліджує виконання умови що кількість «фішок» в позиції не перевищує 1;
# Обмеженість - досліджує виконання умови що кількість "фішок" в позиції не перевищує заданого числа,
# Обмеженість&nbsp;— досліджує виконання умови що кількість «фішок» в позиції не перевищує заданого числа,
# Зберігальність - досліджує виконання умови що кількість "фішок" в мережі не змінюється,
# Зберігальність&nbsp;— досліджує виконання умови що кількість «фішок» в мережі не змінюється,
# Оберненість - для довільного досяжного стану досліджується існування послідовності виконань переходів яка повертає мережу в початковий стан),
# Оберненість&nbsp;— для довільного досяжного стану досліджується існування послідовності виконань переходів яка повертає мережу в початковий стан),
# Активність переходів - досліджує можливість виконання певних переходів та наявність тупиків - станів у яких переходи не дозволені та для яких неможливо досягти стану в якому ці переходи дозволені,
# Активність переходів&nbsp;— досліджує можливість виконання певних переходів та наявність тупиків&nbsp;— станів у яких переходи не дозволені та для яких неможливо досягти стану в якому ці переходи дозволені,
# Досяжність маркування - досліджує існування послідовності виконань переходів при якій можна досягнути задане маркування,
# Досяжність маркування&nbsp;— досліджує існування послідовності виконань переходів при якій можна досягнути задане маркування,
# Покриття - досліджує існування послідовності виконань переходів при якій можна досягнути маркування що покриває (є більшим) за задане маркування.
# Покриття&nbsp;— досліджує існування послідовності виконань переходів при якій можна досягнути маркування що покриває (є більшим) за задане маркування.


Умова зберігальності може бути послаблена, для чого вводять поняття функції ваги:<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. відразу декілька переходів можуть бути дозволеними, і кожен з них може бути виконаний
  2. дозволені переходи не обов'язково виконуються. Дозволений перехід може бути виконаний.

Взагалі, мережі Петрі не розглядають поняття «часу» виконання переходу, а лише послідовність виконань. За допомогою мереж Петрі можна моделювати такі якості як:

Дослідження мережі Петрі

Основні методи дослідження мереж Петрі:

  1. Дерево досягальності,
  2. Графічний,
  3. Аналітичний,
  4. За допомогою еквівалентних перетвореннь.

Взагалі, мережі Петрі досліджують на такі властивосі:

  1. Безпечність — досліджує виконання умови що кількість «фішок» в позиції не перевищує 1;
  2. Обмеженість — досліджує виконання умови що кількість «фішок» в позиції не перевищує заданого числа,
  3. Зберігальність — досліджує виконання умови що кількість «фішок» в мережі не змінюється,
  4. Оберненість — для довільного досяжного стану досліджується існування послідовності виконань переходів яка повертає мережу в початковий стан),
  5. Активність переходів — досліджує можливість виконання певних переходів та наявність тупиків — станів у яких переходи не дозволені та для яких неможливо досягти стану в якому ці переходи дозволені,
  6. Досяжність маркування — досліджує існування послідовності виконань переходів при якій можна досягнути задане маркування,
  7. Покриття — досліджує існування послідовності виконань переходів при якій можна досягнути маркування що покриває (є більшим) за задане маркування.

Умова зберігальності може бути послаблена, для чого вводять поняття функції ваги:


яка залишається постійною під час роботи.

Більшість досліджень мереж Петрі можна звести до побудови дерева досяжності.

Дивіться також

Шаблон:Портал математика

Література

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