русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Анализ сетей Петри на основе матричных уравнений


Дата добавления: 2013-12-23; просмотров: 1531; Нарушение авторских прав


 

Матричный подход основывается на представлении сети двумя матрицами Д- и Д+, представляющими входную и выходную функции сети. Каждая матрица имеет 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) определяющей новую маркировку М’:

 

δ(M,tj)=M - e(j) Д- + e(j) Д+ = M+ e(j)(- Д- + Д+) = M + e(j)Д,

 

где Д = Д+ - Д- - составная матрица изменений состояний сети.

Тогда для последовательности запусков переходов 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’, где:

-1 -1
+2 +1 -1
-1 +1

 

M’=(1,0,1,0)+(0,0,1) =(1,0,1,0)+(0,0, 1,1)=(1,0,0,1)

 

Последовательность G={t­­3, t­­2, t­­3, t­­2, t­­1}представляется вектором запусков f(G)=(1,2,2) и получает маркировку M’:

 

-1 -1
+2 +1 -1
-1 +1

 

M’ = (1,0,1,0) + (1,2,2) =(1,0,1,0)+(0,3,-1,0)=(1,3,0,0)

 

 

Для определения того, является ли маркировка (1, 8, 0, 1) достижимой из маркировки (1, 0, 1, 0), имеем уравнение:

 

-1 -1
+2 +1 -1
-1 +1

 

(1, 8, 0, 1) = (1, 0, 1, 0) + X или

 

-1 -1
+2 +1 -1
-1 +1

 

(0,8,-1,1)=X ,

 

 

которое имеет решение X=(0, 4, 5). Это соответствует последовательности G= {t3, t2, t3, t2, t3, t2, t3, t2, t3}.

Можно показать, что маркировка (1, 7, 0, 1) недостижима из маркировки (1, 0, 1, 0) поскольку матричное уравнение :

-1 -1
+2 +1 -1
-1 +1

 

(1,7,0,1)=(1,0,1,0) + X или

 

 

-1 -1
+2 +1 -1
-1 +1

 

(0,7,-1,1)= X ,

 

 

не имеет решения.

 

 



<== предыдущая лекция | следующая лекция ==>
Методы анализа на основе дерева достижимости | Пример взаимодействия двух узлов сети ЭВМ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.