В таких сетях приоритетность необходимо определять и по отношению к меткам. Для этого задают отношения приоритетности на множестве цветов и сопоставляют их определённым дугам (Pitj). Правила возбуждения перехода tj реализуют приоритетный выбор метки для возбуждения перехода на основе значения соответствующего атрибута-приоритета (цвета) метки.
Приоритетные раскрашенные сети адекватно представляют приоритетное обслуживание процессов.
Например, спецификация правил приоритетного обслуживания для модели мультипрограммного выполнения алгоритма (рис 5.20) включает определение отношения порядка (приоритетности) на множестве номеров задач a = {1, 2, 3}. Сопоставление этого правила дугам (P1t0) и (P3t3) указывает на приоритетность выбора процесса для выполнения процессором и объектом управления.
Аналогично задаётся отношение порядка на множестве признаков {●,○}, представленных на рис. 5.21 графически. Правило выбора сопоставляется дуге (P5t3) этой модели.
В приведённых примерах внимание акцентировано на моделировании различных элементов ВС. Вместе с тем, полностью аналогичны им особенности моделей дискретных производственных систем, где необходимо представлять потоки материалов, инструмента, управляющих данных и их взаимодействия с ресурсами управляемого объекта.
Динамика сети описывается следующим рекуррентным уравнением:
Mk = Mk-1+A*Uk, k=1, 2, 3,…. (5.1)
Для вычисления управляющего вектора Uk необходимо определить те переходы tj, которые срабатывают при маркировании Mk-1. Если tj срабатывает, то uj=1 и произведение A*Uk даёт число меток, добавляемых в позицию Pi в каждом такте.
Условие срабатывания перехода tj и выработки uj=1 представляется логическим уравнением:
i [m(Pi) ≥ I(tj,Pi)](uj=1),(5.2)
которое управляет действиями tj.
Для генерирования диаграммы состояний сети Петри достаточно использовать (5.1), (5.2). В теории сетей Петри иногда исходят из того, что не указывают порядок срабатывания переходов, если вектор U задаёт возбуждение нескольких из них в одном и том же такте k. Так в примере при построении дерева достижимости в состоянии M0 вектор управления U1*=(1,0,1), что указывает на возбуждение первого и третьего переходов. При срабатывании t1 сеть перейдёт в состояние M1=(0,1,1,1), при t3 в состояние M5=(2,2,0,0). Однако, если следовать (5.1), то диаграмма состояний сети имеет вид рис. 5.22в. Итак, если полагать, что все возбуждённые переходы срабатывают вместе, то динамику сети можно представить уравнением (5.1). Если исходить из того, что возбуждённые переходы могут срабатывать только порознь, то уравнение состояний сети будет иметь
в)
б)
a)
другой вид.
P
P
t
t
t
P
-1
A:
-1
-1
I:
O:
I: T x P → {0,1} - функция следования;
O: P x T → {0,1} - функция предшествования.
Рис. 5.22. Построение диаграммы состояний сети
Совмещение первого и второго способов срабатывания одновременно возбуждаемых переходов даст третью диаграмму состояний, являющуюся наложением двух приведённых на рисунке.
Свободное движение сети.В реальных ВС имеется вполне определённый способ управления сменой состояний и присутствует такой фактор как время, что позволяет уточнить уравнение (5.2). Если времена срабатывания переходов одинаковы, то динамика системы моделируется уравнениями (5.1), (5.2), поскольку такая сеть является синхронной. Этих уравнений недостаточно для моделирования асинхронных процессов, для которых времена срабатывания различны.
В этом случае процедуру продвижения меток в сети следует производить в асинхронном времени, введя в модель часы. Если в синхронных системах достаточно вести отсчёт тактов, то в асинхронных необходимо в каждом из тактов определять момент наступления очередного. Интервал времени между тактами k и k+1 определяется временем наступления срабатывания одновременно одного или нескольких переходов.
Вынужденное движение сети.Уравнение (5.1) отражает свободное движение сети из начального состояния M0. Вынужденное движение сети определяется вектором-функцией W(t), компоненты которого Wi(t) описывают приход меток в позиции Pi во времени; W(t) может задаваться в моменты дискретного времени k, наступление которых устанавливается моментами переключения состояния сети или внутренними часами.
Уравнение вынужденного движения сети Петри имеет вид:
Mk = Mk-1+A*Uk + Wk(5.3)
Таким образом, введённая здесь последовательность Wk описывает внешний источник меток, представленных входной лентой.
Перемещение ленты для считывания следующей группы меток и ввода их в соответствующие позиции выполняется в асинхронном времени по командам от часов или по сигналам перемещения ленты из самой системы.
Последовательность Wk предназначена для отображения взаимодействий в структурированных сетях, она может отображать последовательные наборы данных, управляющих команд и т. д. Очевидно, что в любом состоянии системы компоненты вектора маркировки не могут быть отрицательными, то есть Mk≥0, Vk. Учитывая последнее, из (5.1) получаем Mk-1+A*Uk≥0.
Последовательность маркирований (5.1) можно выразить через начальную маркировку M0 и вектор счёта срабатываний:
S = { } ; j = 1, 2, 3, …, m. (5.4)
Элемент sj указывает, какое число раз срабатывает переход t в последовательности маркирований, ведущей от M0 к Мк.
Учитывая уравнение (5.4), из выражения (5.1) получаем:
Mk = M0 + A*S. (5.5)
Введя вектор изменения маркирования ΔM = Mk – M0, из уравнения (6) получим:
A*S = ΔM. (5.6)
К нахождению решений данного уравнения сводятся различные задачи практики. Все его возможные решения можно получить одним из методов решения задач целочисленного программирования.