Project:DMEU/Обобщени мрежи

Обобщените мрежи, ОМ (Generalized nets, GNs) са средство за конструиране на адаптивни, гъвкави и структурирани модели на комплексни системи, в които протичат паралелни във времето процеси и са изградени от множество взаимодействащи си компоненти. Обобщените мрежи представляват значително разширение и обобщение на понятието мрежи на Петри, както и на други разширения и модификации на мрежи на Петри.



Обобщената мрежа е изградена от преходи (transitions). Преходът в контекста на обобщените мрежи е обект от статичната структура на мрежата, който съдържа условията за преминаването на ядра (token) от входните в изходните му позиции (places), след като преходът се е активирал. От позиция или в позиция на прехода може да излиза или съответно да влиза не повече от една дъга. Позиция, от която излиза дъга се нарича входна за прехода, а позиция, в която влиза дъга се нарича изходна за прехода. Всеки преход в ОМ има поне една входна и поне една изходна позиция. Входна позиция, в която не влиза дъга се нарича вход на мрежата, а изходна позиция, от която не излиза дъга – изход на мрежата. В позициите може да има ядра. Те се преместват от входните към съответните изходни позиции на преходите. Когато настъпи определения за прехода момент от време, и във входните позиции има достатъчен брой ядра, то ядрата от входните позиции придобиват възможност да се придвижат до изходните позиции. Този процес се нарича активиране на прехода. В началото ядрата, които постъпват в мрежата през входните й позиции имат т.нар. начални характеристики. При всяко преминаване през преход в мрежата те получават нови характеристики и така всяко ядро в мрежата е уникално и има своя история. Всяка позиция има свой капацитет.

Формално описание на преход
Преходът Z в ОМ се представя като наредена последователност от седем компоненти:

$$Z = \langle L', L'', t_1, t_2, r, M, \Box \rangle$$

където: \begin{array}{c|c c c c c} & l_1 & ... & l_j & ... & l''_n \\ \hline l'_1 & &  &  &  & \\ ... &  &  &  &  & \\ l'_i &  &  & r_{i,j}  &  & \\ ... &  &  &  &  & \\ l'_m &  &  &  &  & \\ \end{array} $$ \begin{array}{c|c c c c c} & l_1 & ... & l_j & ... & l''_n \\ \hline l'_1 & &  &  &  & \\ ... &  &  &  &  & \\ l'_i &  &  & M_{i,j}  &  & \\ ... &  &  &  &  & \\ l'_m &  &  &  &  & \\ \end{array} $$
 * $$L'$$ са крайно непразно множество от входните позиции на прехода.
 * $$L''$$ са крайно непразно множество от изходните позиции на прехода.
 * $$t_1$$ е момент време на активиране на прехода.
 * $$t_2$$ задава продължителността на активното състояние на прехода.
 * $$r$$ е условие на прехода. Представлява индексирана матрица от вида:
 * $$ r =
 * където $$r_{i,j}$$ са предикати, $$1 \le i \le m, 1 \le j \le n$$
 * $$M$$ задава капацитетите на дъгите. Представлява индексирана матрица от вида:
 * $$ M =
 * където $$M_{i,j} \ge 0$$ са естествени числа и $$\infty$$, $$1 \le i \le m, 1 \le j \le n$$
 * $$\Box$$ се нарича тип на прехода и представлява булев израз. Ако стойността му е “true” съответният преход може да се активира, а ако е “false” - не. В него участват идентификаторите на всички входни позиции на прехода, свързани с логическите операции "и" $$\land$$ и "или" $$\lor$$:
 * $$\land(l_{i_1}, l_{i_2},...,l_{i_u})$$ - във всяка входна позиция $$l_{i_1}, l_{i_2},...,l_{i_u}$$ трябва да има най-малко по едно ядро,
 * $$\lor(l_{i_1}, l_{i_2},...,l_{i_u})$$ - най-малко в една от входните позиции $$l_{i_1}, l_{i_2},...,l_{i_u}$$ трябва да има най-малко едно ядро.

Формално описание на Обобщена мрежа
Обобщена мрежа е наредената четворка: $$ < \underbrace{ }_{1.\ Static \ structure}, \underbrace{ }_{2. \ Dynamic \ structure}, \underbrace{ }_{3. \ Time}, \underbrace{ }_{4. \ Memory} > $$ където:


 * 1. Статична структура (Static structure)
 * $$A$$ е множеството от всички преходи в мрежата''.
 * $$\pi_{A}$$ е функция, задаваща приоритетите на преходите, т.е. $$\pi_{A} : A \rightarrow N$$ където N = {0, 1, 2, ...} ∪ {∞}.
 * $$\pi_{L}$$ е функция, задаваща приоритетите на позициите, т.е. $$\pi_{L} : L \rightarrow N$$.
 * $$c$$ е функция, задаваща капацитетите на позициите, т.е. $$c : L \rightarrow N$$.
 * $$f$$ е функция, определяща вярностната стойност на предикатите.
 * $$\theta_{1}$$ задава следващия момент, в който може да се активира прехода. Стойността на тази функция се преизчислява в момента, в който завършва активното състояние на прехода. Оттук $$\theta_{1}(t) = t'$$ където $$t, t' \in [T, T+t^*]; t \le t'$$
 * $$\theta_{2}$$ е функция, която задава продължителността на активното състояние на даден преход. Стойността й се изчислява в момента, в който се активира прехода. Оттук $$\theta_{2}(t) = t'$$ където $$t, t' \in [T, T+t^*]; t' \ge 0$$.


 * 2. Динамична структура (Dynamic structure)
 * $$K$$ е множество от ядрата в обобщената мрежа.
 * $$\pi_K$$ е функция, която задава приоритетите на ядрата, т.е. $$\pi_{K} : K \rightarrow N$$
 * $$\theta_K$$ е функция, която задава момента от време, в който определено ядро може да влезе в ОМ, т.е. $$\theta_K (\alpha)=t$$ където $$\alpha \in K, t \in [T; T+t^*]$$


 * 3. Времева компонента (Time)
 * $$T$$ е начален момент от време, в който ОМ започва функционирането си. Моментът Т се определя по фиксирана времева скала.
 * $$t^0$$ е времева стъпка на фиксирана времева скала.
 * $$t^*$$ продължителност на функционирането на ОМ.


 * 4. Компонента памет (Memory)
 * $$X$$ е множество на началните характеристики, с които ядрата влизат в мрежата.
 * $$\Phi$$ е характеристична функция. Тя определя новата характеристика на ядрото при преместването му от входната позиция на даден преход в изходната.
 * $$b$$ е функция, задаваща максималния брой характеристики, които едно ядро може да получи по време на движението си в ОМ, т.e. $$b : K \rightarrow N$$.