Algorithm for generalized net functioning

Below we will describe the most general algorithm for the generalized net functioning.

For this purpose, we will introduce the concept of Abstract Transition (AT). This is a GN transition represented as the union of all active GN-transitions at a given time-moment. For its construction the operation "union" of transitions is used (see Operations and relations over generalized nets).

The algorithm
This algorithm helps us to realize the different subprocesses (which exist in the frames of the most global modelled process) on the level of places, while analogous processes in other nets are modelled on the level of transitions. Moreover, the places are sorted by their priorities while in other nets this is not the case. Therefore, the sequence of the process realization by generalized nets is performed on the level of places (from different active transitions). Furthermore, when some places have equal priority, the tokens' transfer is related to the tokens' priorities, which is difficult to achieve in other nets.

This algorithm was described in the "Generalized Nets" from 1991 year and "On Generalized Nets Theory" from 2007 year.

Conclusions
The algorithm guarantees that no conflict situations may occur during the functioning of the generalized net, due to the preliminary prioritization of the transitions and the places, and the predicates.

However, a condition may be formulated for which a given GN will not have the possibility to continue functioning, but will have to wait. This condition is represented as a double sum of products.

The process of GN functioning will temporarily stop, if

$$\sum_{i=1}^m \sum_{j=1}^n f(r_{i,j}). m_{i,j}(TIME). \overline{c}(l_i, TIME). (c(l_j) - \overline{c}(l_j, TIME)) = 0$$

where:
 * $$m_{i,j}$$ is the capacity of this arc, which decrements with 1 for each token that passes during the transfer at the current moment $$TIME$$. When it reaches zero, the arc capacity will be fully utilized and no more tokens may pass at this time.
 * $$\overline{c}(l_i, TIME)$$ is the number of tokens, which at moment TIME stay in the input place $$l_i$$. When there are no tokens in the input place, no transfer may occur and the process will stop.
 * $$(c(l_j) - \overline{c}(l_j, TIME))$$ is the number of vacancies in the output place $$l_j$$ at current moment $$TIME$$, formed as a difference between the standard maximal number of tokens $$c(l_j)$$ and the current number of tokens there $$\overline{c}(l_j, TIME)$$. If there are no vacancies in the output place, no tokens from the input place may transfer.
 * $$(c(l_j) - \overline{c}(l_j, TIME))$$ is the number of vacancies in the output place $$l_j$$ at current moment $$TIME$$, formed as a difference between the standard maximal number of tokens $$c(l_j)$$ and the current number of tokens there $$\overline{c}(l_j, TIME)$$. If there are no vacancies in the output place, no tokens from the input place may transfer.