Матричный подход основывается на представлении сети двумя матрицами Д- и Д+, представляющими входную и выходную функции сети. Каждая матрица имеет m строк (по одной на переход) и n столбцов (по одному на позицию). Определим матрицы Д-(j,i)=K(Pi,I(tj)) и Д+(j,i)=K(Pi,O(tj)). Д- описывает входы в переходы, Д+ - выходы из переходов, K – кратность позиции по входам и выходам.
Введём m - вектор e(j), содержащий нули везде, за исключением j-й компоненты. Переход tj представляется m - вектором e(j).
Тогда переход tj в маркировке М разрешён, если М≥e(j)Д-, а результат запуска перехода tj в маркировке М обозначим функцией δ(M,tj) определяющей новую маркировку М’:
где Д = Д+ - Д- - составная матрица изменений состояний сети.
Тогда для последовательности запусков переходов G={tj1,tj2,…,tjk}имеем:
δ(M,G) =δ(M, tj1, tj2,…, tjk) =
= M + e(j1)Д + e(j2)Д + … + e(jk)Д =
= M +[ e(j1) + e(j2) + … + e(jk)]Д = M + f(G)Д.
Вектор f(G) = e(j1)+e(j2) …..+e(jk) называется вектором запуска последовательности tj1,tj2,…,tjk. i-й элемент вектора f(G), f(G)i - это число запусков перехода tj в последовательности tj1,tj2,…,tjk. Вектор запусков, следовательно, является вектором с неотрицательными целыми компонентами.
Рассмотрим задачу сохранения при известном векторе взвешивания меток W. Если M0 - начальная маркировка, а M’ - произвольная достижимая маркировка, необходимо, чтобы M0W = M’W. Тогда существует последовательность запусков переходов G, которая переводит сеть из M0 в M’. Поэтому,
M’ = δ(M0,G) = M0 + f(G)Д.
Следовательно, M0W = M’W = (M0 + f(G) Д) W = M0W + f(G) ДW. Исходя из условия сохранения, имеем: f(G)ДW = 0.
Поскольку это должно быть верно для всех f(G), имеем ДW = 0.
Таким образом, сеть Петри является сохраняющей тогда и только тогда, когда существует такой положительный вектор W, что ДW = 0. Это обеспечивает простой алгоритм проверки сохранения, а также позволяет получать вектор взвешивания W для сохраняющей сети. Для этого нужно решить систему Д W=0 относительно W.
Матричная теория является инструментом для решения проблемы достижимости. Пусть маркировка M’ достижима из M0, тогда существует последовательность (возможно пустая) запусков переходов G, которая приводит из M0 к M’. Это означает, что f(G) является неотрицательным целым решением следующего матричного уравнения для X:
M’ = M0 + X Д. (*)
Следовательно, если M’ достижима из M0, тогда уравнение (*) имеет решение в неотрицательных целых. Если уравнение не имеет решения, тогда M’ недостижима из M0.
Покажем возможности применения уравнения (*) для анализа сети, приведённой на рис. 5.16.
Д- =
Д+=
-1
-1
+2
+1
-1
-1
+1
Д = Д+ - Д- =
Рис. 5.16. Пример сети и построения матрицы Д
В начальной маркировке M0=(1,0,1,0) переход t3 разрешён и приводит к маркировке M’, где: