Национальный исследовательский университет "Высшая Школа Экономики"
Опубликован: 19.11.2012 | Доступ: свободный | Студентов: 12624 / 7808 | Длительность: 29:54:00
Специальности: Менеджер, Преподаватель
Лекция 8:

Обработка данных

< Лекция 7 || Лекция 8: 123456 || Лекция 9 >

Матричный метод анализа сетей Петри

Матричный метод основан на выражении (8.5), связывающим разметки сети, которые были до и после срабатывания некоторого перехода и матрице D, описывающей работу сети.

Пусть начальная разметка сети равна M_0. Если в сети допустима последовательность срабатывания переходов t_{i_1}, t_{i_2}, \dots, t_{i_k}, то выполняются следующие соотношения

M_1 =M_0+D*t_k\\
M_1=M_l + D*t_{i_2}=M_0 + D*t_{i_1}+D*t_{i_2}\\
M_3=M_2+D*t_{i_3}=M_1+D*t_{i_2}+D*t_{i_3}=M_0+D*t_{i_1}+D*t_{i_2}+D*t_{i_3}\\
\dots \dots \dots \dots\\
M_k=M_0+D*t_{i_1}+D*t_{i_2}+\dots+D*t_{i_k}=M_0+D(t_{i_1}+t_{i_2}+\dots +t_{}i_k)

Обозначив \tau=t_{i_1}+t_{i_2}+\dots+t_{i_k},получим

M_k=M_0+D* \tau\\
M_k-M_0=D* \tau ( 8.7)

Из-за того, что вектор тявляется суммой векторов вида (8.2) он должен быть целочисленным неотрицательным вектором. Выполнение соотношения (8.6) для некоторого целочисленного неотрицательного вектора \tau является необходимым условием достижимости разметки М_к из началь-ной разметки М_0.

Выражение (8.7) является системой линейных неоднородных уравнений относительно неизвестных компонент вектора \tau. Следует заметить, что целочисленное неотрицательное решение уравнения (8.7), как правило, не определяет однозначно порядок срабатывания переходов, потому что от порядка суммирования векторов t_{i_k} вида (8.2) сумма \tau=t_{i_1}+t_{i_2}+\dots+t_{i_k} не зависит. Для нахождения требуемого порядка срабатывания переходов необходимо проводить дополнительные исследования.

Сеть Петри

Рис. 8.9. Сеть Петри

Рассмотрим пример решения матричным методом задачи о достижимости. Спрашивается, достижима ли разметка M_k=(1\; 1\; 2\; 2)^T для сети Петри, изображенной на рис.8.9?

Если разметка достижима, то указать последовательность срабатываний переходов, приводящую к данной разметке.

Матрица D для данной сети Петри имеет вид

D=\begin{pmatrix}0&0&0\\
1&0&-1\\
0&1&0\\
0&0&1\end{pmatrix}

Матричное уравнение (8.6) для определения последовательности срабатываний переходов имеет вид \begim{pmatrix}0&0&0\\1&0&-1\\0&1&0\\0&0&1\end{pmatrix}*\begin{pmatrix}x_1\\x_2\\x_3\end{pmatrix}=\begin{pmatrix}1\\2\\2\end{pmatrix}

Без первого уравнения, которое тривиально выполняется, имеем систему трех уравнений с тремя неизвестными \begim{pmatrix}1&0&-1\\0&1&0\\0&0&1\end{pmatrix}*\begin{pmatrix}x_1\\x_2\\x_3\end{pmatrix}=\begin{pmatrix}0\\1\\2\\2\end{pmatrix}

Из второго и третьего уравнений получаем x_2=2, x_3=2, а из первого -x_1=3. Таким образом, в качестве решения имеем целочисленный неотрицательный вектор

x=\begin{pmatrix}3\\2\\2\end{pmatrix}

Этот вектор не определяет порядок срабатывания переходов. Среди последовательностей срабатывания есть невыполнимые, например, t_1t_1t_1t_3t_3t_2t_2. Среди последовательностей срабатывания переходов, удовлетворяющих вектору, необходимо искать допустимые. Допустимых после-довательностей может быть много, а может и не быть вовсе. Для данного примера допустимой последовательностью является последовательность t_1t_2t_1t_2t_1t_3t_3 или последовательность t_1t_2t_3t_2t_1t_3t_1.

Наличие неотрицательного положительного решения у линейного уравнения для определения последовательности срабатывания является только необходимым условием и не гарантирует реального существова-ния такой последовательности. Например, решая задачу о достижимости разметки M_k=(1\;1\;0\;2)^T для описанной выше сети Петри, в качестве решения мы получим неотрицательный целочисленный вектор

X=\begin{pmatrix}3\\2\\2\end{pmatrix}

Однако реальной последовательности, приводящей к требуемой разметке, не существует, так как для срабатывания перехода t_3 необходимо наличие в месте p_3 маркера. Но фишка, попавшая в p_3, не может покинуть эту позицию.

Пример 2 (решение матричным методом задачи о достижимости).

Рассмотрим сеть


Рис. .

и исследуем достижимость разметки \begin{pmatrix}1\\7\\0\\1\end{pmatrix} из начальной разметки \begin{pmatrix}1\\0\\1\\0\end{pmatrix}

Матрица D имеет вид

D=\begin{pmatrix}0&0&0\\-1&1&0\\-1&1&-1\\0&-1&1\end{pmatrix}

Матричное уравнение для определения последовательности срабатываний переходов имеет вид

\begim{pmatrix}0&0&0\\-1&1&0\\-1&1&1\\0&-1&1
\end{pmatrix}*\begin{pmatrix}x_1\\x_2\\x_3\end{pmatrix}=\begin{pmatrix}0\\7\\-1\\1\end{pmatrix}

Без первого уравнения, которое тривиально выполняется, имеем систему

\begim{pmatrix}-1&1&0\\-1&1&-1\\0&-1&1
\end{pmatrix}*\begin{pmatrix}x_1\\x_2\\x_3\end{pmatrix}=\begin{pmatrix}7\\-1\\1\end{pmatrix}

Складывая второе и третье уравнения, получим x_1=0. Из первого уравнения получаем x_2=7, а из третьего -x_3=8. Таким образом, в качестве решения имеем целочисленный неотрицательный вектор

x=\begin{pmatrix}0\\7\\8\end{pmatrix}

Этот вектор не определяет порядок срабатывания переходов. Среди последовательностей срабатывания есть невыполнимые, например

\overbrace{t_2t_2\dots t_2}^{7раз}\overbrace{t_3t_3 \dots t_3}^{8 раз}

Среди последовательностей срабатывания переходов, удовлетворяющих вектору, необходимо искать допустимые. Допустимых последовательностей может быть много, а может и не быть вовсе. Для данного примера допустимой последовательностью является последовательность t_3t_2t_3t_2t_3t_2t_3t_2t_3t_2t_3t_2t_3t_2t_3.

Матричный подход может быть использован для вектора весов, относительно которого сеть Петри является сохраняющей (консервативной). Пусть \аlpha=(\alpha_1, \alpha_2, \dots , \alpha_n) - вектор-строка искомых весов. В соответствии с приведенным выше определением консервативность сети заключается в выполнении равенства (8.6). Обе части этого равенства можно рассматривать как скалярные произведения вектора \alpha на векторы любых двух достижимых разметок. Если в качестве одной из разметок взять начальную разметку M_0, а в качестве второй - любую достижимую разметку, то из (8.6) следует, что \alpha*M-\alpha -M_0=\alpha (M-M_0)=0. Из формулы (8.5) следует, что M-M_0=D*\tau. В результате получаем, что \alpha*D*\tau=0 для всех векторов \tau, соответствующих достижимым разметкам. Равенство выполняется, если \alpha*D=0. Это матричное выражение представляет собой линейное однородное уравнение относительно весов, составляющих вектор \аlpha.

Для сети, изображенной на рис.8.10, найдем матричным методом вектор весов \alpha, относительно которого она является сохраняющей. Эта сеть моделирует два взаимодействующих процесса обработки, использующих общий ресурс (описывается местом p_5).

Модель двух процессов, использующих неделимый ресурс

Рис. 8.10. Модель двух процессов, использующих неделимый ресурс

Матрица D для данной сети имеет вид

D=\begin{pmatrix}-1&0&1&0\\0&-1&0&1\\1&0&-1&0\\0&1&0&-1\\-1&-1&1&1\end{pmatrix}

Легко заметить, что эта матрица имеет ранг 2 (третий столбец равен первому, умноженному на -1, а четвертый столбец равен второму, умноженному на -1). Поэтому система уравнений \alpha*D=0 для вектора весов \alpha=(\alpha_1, \alpha_2, \alpha_3 \alpha_4, \alpha_5) включает в себя только два уравнения

\begin{cases}-\alpha_1+\alpha_3-\alpha_5=0\\\alpha_2+\alpha_4-\alpha_5=0\end{cases}

Существует бесконечно много решений этой системы, которые могут быть получены из выражений

\begin{cases}\alpha_1=\alpha_3-\alpha_5\\\alpha_2=\alpha_4-\alpha_5\end{cases}

при произвольном задании весов \alpha_3, \alpha_4, \alpha_5. Из этих выражений видно, что сеть не является строго сохраняющей, т. к. вектор (1, 1, 1, 1, 1) не является решением системы. В качестве вектора весов, относительно которого сеть является сохраняющей, нас интересуют только неотрицательные решения. Задавая \alpha_5 = 0, \alpha_3 =1, \alpha_4=1, , получим \alpha_1=1, \alpha_2=1. Вектор весов (1, 1, 1, 1, 0), являющийся решением системы, означает, что сеть сохраняет суммарное количество фишек во всех местах, за исключением места p_5 (количество фишек в месте p_5 не учитывается при подсчете обще-го числа в сети). Еще одно решение (1, 1, 2, 2, 1) соответствует случаю, когда фишки в местах p_3 и p_4 учитываются при подсчете взвешенной суммы фишек в сети с коэффициентом 2.

< Лекция 7 || Лекция 8: 123456 || Лекция 9 >
Фахруддин хемракулыев
Фахруддин хемракулыев
Шерхон Давлатов
Шерхон Давлатов

Почему тесты (1,2,3..) не работают. Хочу пройти тест но не получается