Generalized nets

Generalized nets (GNs) constitute a discrete tool for universal description of adaptable, flexible, structured and reusable models of complex systems with many different and interacting components, not necessarily of the homogeneous structure and origin, usually involved in parallel, simultaneous activities. Generalized nets represent a significant extension and generalization of the concept of Petri nets, as well as of other Petri nets extensions and modifications.

Components of a generalized net


A generalized net consists of:
 * a static structure,
 * a dynamic structure,
 * temporal components.

The static structure consists of objects called transitions, which have input and output places. Two transitions can share a place, but every place can be an input of at most one transition and can be an output of at most one transition.

The dynamic structure consists of tokens, which act as information carriers and can occupy a single place at every moment of the GN execution. The tokens pass through the transition from one input to another output place; such an ordered pair of places is called transition arc. The tokens' movement is governed by conditions (predicates), contained in the predicate matrix of the transition.

The information carried by a token is contained in its characteristics, which can be viewed as an associative array of characteristic names and values. The values of the token characteristics change in time according to specific rules, called characteristic functions. Every place possesses at most one characteristic function, which assigns new characteristics to the incoming tokens. Apart from movement in the net and change of the characteristics, tokens can also split and merge in the places.

The temporal components describe the time scale of GN execution. Temporal conditions control the transitions' moments of activation and duration of active state. Various other tools for fine tuning of the GN functioning are provided in the form of priorities of separate transitions, places and tokens, as well as capacities of places and transitions arcs.

Formal description
Formally described, the generalized net is represented by the following four-tuple:

$$ < \underbrace{ }_{1.\ Static \ structure}, \underbrace{ }_{2. \ Dynamic \ structure}, \underbrace{ }_{3. \ Time}, \underbrace{ }_{4. \ Memory} > $$

where:
 * 1. Static structure
 * $$A$$ is a set of transitions (see the formal definition of a transition)
 * $$\pi_{A}$$ is a function giving the priorities of the transitions, i.e. $$\pi_{A} : A \rightarrow N$$ where N = {0, 1, 2, ...} ∪ {∞}
 * $$\pi_{L}$$ is a function giving the priorities of the places, i.e. $$\pi_{L} : L \rightarrow N$$
 * $$c$$ is a function giving the place capacities, i.e. $$c : L \rightarrow N$$
 * $$c$$ is a function giving the truth value of the predicates. In the basic case, it may obtain values "true" (1) and "false" (0). In fuzzy generalized nets its domain is the [0;1] interval (see fuzzy set) and in the intuitionistic fuzzy generalized nets its domain is the set [0;1]×[0;1] (see intuitionistic fuzzy set).
 * $$\theta_{1}$$ is a function giving the next time moment when a given transition will be fired (will become active). Hence, $$\theta_{1}(t) = t'$$ where $$t, t' \in [T, T+t^*]; t \le t'$$. The value of this function is being recalculated in the moment when the transition's active state ceases.
 * $$\theta_{2}$$ is a function giving the duration of the transition's active state. Hence, $$\theta_{2}(t) = t'$$ where $$t, t' \in [T, T+t^*]; t' \ge 0$$. The value of this function is calculated in the moment when the transition's active state begins.


 * 2. Dynamic structure
 * $$K$$ is the set of tokens of the generalized net. In certain cases it is more convenient to denote this set as $$K = \bigcup_{l \in Q^I} K_{l} $$ where $$K_{l}$$ is the set of all GN tokens which are waiting to enter place $$l$$ and $$Q^I$$ is the set of all input places in the net.
 * $$\pi_K$$ is a function giving the priorities of the tokens, i.e. $$\pi_{K} : K \rightarrow N$$
 * $$\theta_K$$ is a function giving the moment of time when a given token may enter the GN, i.e. $$\theta_K (\alpha)=t$$ where $$\alpha \in K, t \in [T; T+t^*]$$


 * 3. Time
 * $$T$$ is the moment of time when the generalized net starts functioning. This moment is determined according to a fixed global timescale.
 * $$t^0$$ is the elementary time step of the fixed global timescale (the interval with which time increments in the timescale).
 * $$t^*$$ is the total duration of functioning of the net.


 * 4. Memory
 * $$X$$ is the set of initial characteristics, which tokens may exhibit when they enter the net for first.
 * $$\Phi$$ is a characteristic function, which assigns a new characteristic to each token when it makes the transfer from an input to an output place of a given transition.
 * $$b$$ is a function giving the maximal number of characteristics, which a given token may obtain during its movement throughout the net, i.e. $$b : K \rightarrow N$$. In general, $$b$$ may possess four different values: 0, 1, $$s$$ or $$\infty$$ meaning that the token keeps, respectively: none of its characteristics, its last characteristic, its last $$s$$ characteristics, or all of its characteristics obtained during its movement in the net.

Algorithms related to generalized nets
In a Petri net implementation, parallelism is reduced to a sequential firing of the net transitions and in general the order of their activation is probabilistic or dependent on the transitions' priorities, if any. The respective algorithms for generalized nets enable a more detailed modelling of the described process.

In the the book "Generalized Nets" from 1991 year, there were formulated two major algorithms, related to generalized nets:
 * Algorithm for transition functioning, which is to some extent equivalent to the tokens transfer algorithm in Petri nets, and
 * Algorithm for generalized net functioning.

The algorithm for transition functioning was later modified in 2007.

Theorem 20 in the book "On Generalized Nets Theory" from 2007 year states that the functioning and the results of the work of a given GN transition are equal for both algorithms, yet the difference between both algorithms is that in almost any case the modified algorithm yields results more quickly.

Functional aspect

 * Global operators
 * Local operators
 * Hierarchical operators
 * Reducing operators
 * Extending operators
 * Dynamic operators