Flexible Nets: a modeling formalism for dynamic systems with uncertain parameters
 175 Downloads
Abstract
The modeling of dynamic systems is frequently hampered by a limited knowledge of the system to be modeled and by the difficulty of acquiring accurate data. This often results in a number of uncertain system parameters that are hard to incorporate into a mathematical model. Thus, there is a need for modeling formalisms that can accommodate all available data, even if uncertain, in order to employ them and build useful models. This paper shows how the Flexible Nets (FNs) formalism can be exploited to handle uncertain parameters while offering attractive analysis possibilities. FNs are composed of two nets, an event net and an intensity net, that model the relation between the state and the processes of the system. While the event net captures how the state of the system is updated by the processes in the system, the intensity net models how the speed of such processes is determined by the state of the system. Uncertain parameters are accounted for by sets of inequalities associated with both the event net and the intensity net. FNs are not only demonstrated to be a valuable formalism to cope with system uncertainties, but also to be capable of modeling different system features, such as resource allocation and control actions, in a facile manner.
Keywords
Flexible nets Modeling formalisms Petri nets Dynamic systems Uncertain parameters Performance analysis1 Introduction
The development of appropriate models is crucial for the design, analysis and control of dynamic systems. The usefulness of a model depends on both its capacity to capture the relevant features of the system, and its capacity for mathematical analysis. These capacities of the model largely rely on the adopted modeling formalism, i.e. on the set of modeling principles and rules that are used to build the model. The task of modeling is often hindered by the lack of detailed system information.
This paper exploits the particular features of Flexible Nets (FNs), a modeling formalism introduced in Júlvez et al. (2018) to study Wilson disease, to model and analyze dynamic systems with uncertain parameters, to account for partially observable systems and, to compute the control actions that optimize a given control objective. Roughly speaking, a dynamic system can be seen as a set of state variables that are modified by means of processes (by process, we mean any event, operation or activity whose occurrence has the potential to change the state of the system). These two basic entities, state and process, are mutually related: on the one hand, the execution of the processes determines how the state changes; on the other hand, the state determines the speed of the processes. These relationships between state and processes are clear, for instance, in a chemical system where the state is given by the amount of molecules and the processes are the reactions taking place in the system. On the one hand, the occurrence of reactions produces a change in the amount of molecules that satisfies the stoichiometry of these reactions. On the other hand, the rate of the reactions depends on the amount of molecules. FNs capture these relationships between state and processes by means of two different nets: the event net and the intensity net.
The event net of an FN is a graph with three different types of vertices: places, transitions and event handlers. While places and transitions are used to model the state and the processes of the system, respectively, event handlers are used to determine the quantities by which the state is changed when given processes occur. Each place is associated with a state variable, and the value of that variable at a given instant is called marking, or number of tokens, in that place. Similarly, each transition is associated with a process, and the number of times the process has taken place is the number of actions in the transition. Each event handler connects a set of transitions to a set of places, and is associated with a set of linear inequalities that relates actions to marking. Given a number of actions in the connected transitions, any solution of the set of linear inequalities can be used to update the number of tokens in the connected places. Thus, the amount by which the marking changes is allowed to be nondeterministic. This feature of event nets allows the model to account for the different system evolutions that can arise as a consequence of uncertainty in the system. In Fig. 1, the event net is composed of the places, transitions, event handlers and arcs and edges in green.
Let us further assume that the rate of reaction R_{1} is uncertain, but constrained to the interval [4.5,5.5], i.e. the number of reactions that occur per time unit is in [4.5,5.5], and the rate R_{2} satisfies 0.9[A] ≤ rate(R_{2}) ≤ 1.1[A], i.e. it is proportional to [A] with an uncertainty of 10%. These reaction rates are modeled in the FN by the inequality associated with R_{1} and the inequality associated with the dot labelled s_{1} (which will be denoted intensity handler).
Similarly to event nets, an intensity net is a graph with three different types of vertices: places, transitions and intensity handlers. Places and transitions have the same role as in event nets. Each intensity handler connects a set of places to a set of transitions, and is associated with a set of linear inequalities that relates the number of tokens with the speed of the transitions, i.e. of the processes modeled by the transitions. The intensity, or speed, of a transition determines the rate at which actions are created in the transition. As in event nets, any solution of the inequalities can be used to determine the speed of transition, thus, linear inequalities can be used to model uncertainties in the dynamics of the system. In Fig. 1, the intensity net is composed by the places, transitions, intensity handlers and arcs and edges in blue.
An FN is the result of combining an event net and an intensity net, i.e. an FN is a graph with four types of vertices: places, transitions, event handlers and intensity handlers. While the intensity net establishes the speeds at which actions are generated as a function of the marking, the event net specifies how the generated actions are executed and how a new marking is computed. Thus, although FNs are inspired by Petri nets (Murata 1989), their structure is different, since in addition to places and transitions, FNs have handlers which are connected to places and transitions by arcs and edges. FNs offer both high modeling power and appealing analysis possibilities that aim to make use of all the information provided by the available uncertain parameters. Namely, FNs can accommodate uncertainties in the initial marking, in the marking change produced by the firing of the transitions, in the default speeds of transitions, and in the speed of transitions produced by the marking.
A number of different formalisms can be found in the literature that can, to some extend, incorporate uncertain parameters in their models. Depending on the domain of their state variables, these formalisms can be roughly classified as those whose variables are integer numbers, and those whose variables are real numbers (hybrid approaches combine both types of variables).
In the discrete domain, extensions of the most popular modeling formalisms exist that can handle uncertain parameters. For instance, in the Petri nets arena, uncertain knowledge of the marking is particularly well handled by fuzzy (Looney 1988) and possibilistic Petri nets (Cardoso et al. 1999), uncertainty in the firing of transitions can be accounted for by labeled (Cabasino et al. 2010) and interpreted (RamirezTrevino et al. 2003) Petri nets, and uncertain firing times can be modeled by time Petri nets (Merlin and Faber 1976) and stochastic Petri nets (Ajmone Marsan et al. 1995). Other discrete formalisms that include extensions to account for uncertain parameters are probabilistic Boolean networks (Shmulevich et al. 2002), which are an extension of Boolean networks (Wang et al. 2012), and influence diagrams (Detwarasiti and Shachter 2005), which are generalizations of Bayesian networks (Needham et al. 2007) that can solve decision problems under uncertainty. Stochastic extensions of timed automata (Alur and Dill 1994) also exist in which delays and discrete choices are made randomly (Bertrand et al. 2014). In a similar vein, stochastic extensions of process algebras (Priami et al. 2001; Ciocchetta and Hillston 2008) have been proposed to describe components with uncertain behaviour (Clark et al. 2007).
A major difference of the above mentioned approaches with respect to FNs is that the state variables of FNs are real numbers. This implies that genuinely discrete systems cannot be modeled by FNs. Nevertheless, the use of real variables facilitates, in general, the use of more efficient analysis methods since the state explosion problem inherent to large discrete systems is avoided, and linear programming techniques can be applied. Moreover, large discrete populations can be approximated reasonably well in many cases by means of real variables (Bortolussi et al. 2013). With respect to the existing stochastic approaches and extensions, it should be said that they offer the possibility to perform useful statistical analyses, which usually require information about the probability distributions of the system, and often involve a significant computational cost. In contrast, FNs do not require information about probability distributions, just about the intervals in which the uncertain parameters lay. This results in efficient analysis techniques based on linear programming.
The most popular modeling approaches in the continuous domain are based on differential equations (Braun et al. 1983; Tyson et al. 2011; van den Berg et al. 2008). In particular, the relaxation of the integrality constraint in a discrete formalism usually leads to models that are governed by differential equations. For instance, the evolution of continuous Petri nets (Silva et al. 2011), which can be seen as a relaxation of Petri nets (Murata 1989), is determined by a set of ordinary differential equations. Another popular modeling formalism that can graphically represent systems in different domains and that can be easily converted to state space representation is bond graphs (Borutzky 2010). However, it should be emphasised that a potential difficulty in the design of models based on differential equations is that exhaustive and accurate information about the system dynamics is required, i.e. uncertain parameters cannot be easily handled. Note that the time trajectory of a system modeled by ordinary differential equations is continuous and deterministic. On the other hand, constraintbased models, which are popular in systems biology (Varma and Palsson 1994; Orth et al. 2011), can incorporate uncertain dynamic information but their analysis capabilities are limited to the steady state.
An important feature of FNs is that they can bridge the gap between deterministic models and constraintbased models by allowing the incorporation of uncertain parameters. Thus, on the one hand and similarly to continuous Petri nets which are deterministic (Jiménez et al. 2004), FNs can model positive linear systems; on the other hand and similarly to constraintbased models (Varma and Palsson 1994), FNs can model systems with uncertain initial state and uncertain process speeds. In contrast to Petri nets, the timing of transitions and the marking changes in places are explicitly separated in FNs: the timing is handled by the intensity handlers, and the marking changes by the event handlers. This can lead to a clearer and more concise graphical representation of the system. Moreover, efficient computational methods exist to analyse the transient state of FNs.
The rest of the paper is organized as follows: Section 2 introduces event nets and shows how a partially observable system can be modeled. Intensity nets are presented in Section 3. The combination of these nets leads to FNs, which are defined in Section 4. Section 5 shows how FNs can handle systems with uncertain parameters and analyze them. Section 6 concludes the paper.
2 Event nets
In the following, the reader is assumed to be familiar with Petri nets (see Murata1989 for a gentle introduction).
2.1 Definition and state equations
This section introduces event nets, which can be denoted as TVP nets, i.e. actions in transitions T produce and consume tokens in places P through event handlers V. Event handlers connect places and transitions, and determine the marking changes according to the actions in the transitions. In contrast to Petri nets, the net elements that produce changes in the marking are the event handlers, and such changes are allowed to be nondeterministic.
Definition 1 (Event net)
An event net is a tuple \({{\mathcal {N}}}_{V}=(P,T,V,E_{V},A,B)\) where (P, T, V, E_{V}) is a tripartite graph determining the net structure and (A, B) are matrices determining the potential evolutions of the marking.

P = {p_{1},…,p_{i},…} is a set of P places.

T = {t_{1},…,t_{j},…} is a set of T transitions.

V = {v_{1},…,v_{k},…} is a set of V  event handlers.
The places, depicted as circles, model the different types of components or elements in the system, e.g. resources, products, items, etc. The transitions, depicted as rectangles, model the different types of operations, activities or processes in the system. Such operations require time to be performed and have the potential to change, i.e. produce and consume, the amount of components, i.e. the marking. The event handlers, depicted as dots, model the different ways in which the transitions can change the marking.

Every \(e\in {E_{V}^{P}}\) is either an arc e = (p_{i},v_{k}) from a place p_{i} to a handler v_{k}, or an arc e = (v_{k},p_{i}) from a handler v_{k} to a place p_{i}.

Every \(e\in {E_{V}^{T}}\) is an edge e = {t_{j},v_{k}} connecting a transition t_{j} and a handler v_{k}.

^{p}v_{k} denotes the input places of v_{k}, i.e. \(^{p}v_{k}=\{p_{i}(p_{i},v_{k})\in {E_{V}^{P}}\}\)

\({v_{k}^{p}}\) denotes the output places of v_{k}, i.e. \({v_{k}^{p}}=\{p_{i}(v_{k},p_{i})\in {E_{V}^{P}}\}\)

^{v}p_{i} denotes the input handlers of p_{i}, i.e. \(^{v}p_{i}=\{v_{k}(v_{k},p_{i})\in {E_{V}^{P}}\}\)

\({p_{i}^{v}}\) denotes the output handlers of p_{i}, i.e. \({p_{i}^{v}}=\{v_{k}(p_{i},v_{k})\in {E_{V}^{P}}\}\)

^{t}v_{k} denotes the transitions connected to v_{k}, i.e. \(^{t}v_{k}=\{t_{j}\{t_{j},v_{k}\}\in {E_{V}^{T}}\}\)

\({t_{j}^{v}}\) denotes the handlers connected to t_{j}, i.e. \({t_{j}^{v}}=\{v_{k}\{t_{j},v_{k}\}\in {E_{V}^{T}}\}\)
Example 1
In an event net, each place contains a number of tokens (or marking), and each transition contains a number of actions that represent the potential of the system to carry out the associated process. In contrast to tokens, actions require time to be produced (the production rate of actions is determined by the intensity net, see Section 3). The state of an event net accounts not only for the marking and the number of actions, but also for the marking changes and the execution of actions:
Definition 2 (State)

\(\sigma \in \mathbb {R}^{T}_{\geq 0}\) is a vector indexed by T where σ[t_{j}] is the number of actions produced in t_{j}.

\(a_{T}\in \mathbb {R}^{T}_{\geq 0}\) is a vector indexed by T where a_{T}[t_{j}] is the number of actions available in t_{j}.

\(a_{E}\in \mathbb {R}^{{E_{V}^{T}}}_{\geq 0}\) is a vector indexed by \({E_{V}^{T}}\) where a_{E}[{t_{j},v_{k}}] is the number of actions of t_{j} executed by v_{k}.

\({\Delta }m\in \mathbb {R}^{{E_{V}^{P}}}_{\geq 0}\) is a vector indexed by \({E_{V}^{P}}\) where Δm[(p_{i},v_{k})] is the number of tokens in p_{i} consumed by v_{k}, and Δm[(v_{k},p_{i})] is the number of tokens in p_{i} produced by v_{k}.

\(m\in \mathbb {R}^{P}_{\geq 0}\) is the marking, i.e. a vector indexed by P where m[p_{i}] is the number of tokens in p_{i}.
Thus, every net element (except for the event handlers) is associated with at least one nonnegative real variable. Since actions need time to be produced, at the initial state it holds σ = 0, a_{T} = 0 and a_{E} = 0. Notice that dealing with real state variables instead of discrete ones allows the model to incorporate real quantities and to approximate large discrete quantities as in continuous Petri nets (Silva et al. 2011). In any case, the state variables can be constrained to the nonnegative integers if required, see Section 2.2.
Each event handler v_{k} ∈ V is associated with a set of linear inequalities that relate the number of actions executed in the connected transitions to the marking changes in the connected places. The coefficients of such a set of inequalities can be expressed by two matrices (A_{k},B_{k}) of real numbers and the same number of rows that are associated with each handler v_{k} ∈ V. The number of actions executed by v_{k}, a_{f}, and the produced marking changes, Δm_{f}, is given by A_{k}Δm_{f}≤B_{k}a_{f}. The columns of A_{k} are indexed by the arcs connecting v_{k} to places. The columns of B_{k} are indexed by the edges connecting transitions to v_{k}. Matrix A(B) is obtained by arranging all the matrices A_{k}(B_{k}) diagonally.
Example 2
The inequalities associated with the event handlers of the net in Fig. 2a are: v_{1}:a=b and \(v_{2}{:}\left \{\begin {array}{cc}a{=}x\\ x{\leq } b{\leq } 2x \end {array}\right .\), where ’a’, ’b’ and ’x’ are used to label arcs and edges. More precisely, in v_{1}:a=b, ’a’ denotes the number of tokens in p_{1} consumed by v_{1}, and ’b’ denotes the number of tokens in p_{2} produced by v_{1}. In the inequalities associated with v_{2}, ’a’ and ’b’ denote the number of tokens in p_{1} consumed by v_{2} and the number of tokens in p_{3} in produced by v_{2} respectively, and ’x’ denotes the number of actions in t_{1} executed by v_{2}. The equality v_{1}:a=b means that the number of tokens in p_{1} consumed by v_{1} is equal to the number of tokens in p_{2} produced by v_{1}. In other words, for every token in p_{1} consumed by v_{1}, a token is produced in p_{2} by v_{1}, this can be interpreted as tokens moving from p_{1} to p_{2} through v_{1}.
The equation a=x associated with v_{2} means that the number of tokens in p_{1} consumed by v_{2} is equal to the number of actions in t_{1} executed by v_{2}, e.g. if one action is executed then one token is consumed. Moreover, the inequality x≤b≤ 2x means that the execution of one action in t_{1} by v_{2}, i.e. x = 1, produces a nondeterministic quantity b ∈ [1,2] of tokens in p_{3} (each execution of an action can produce a different amount b ∈ [1,2] of tokens in p_{3}).
Definition 3 (Enabling)
Inequality (3) guarantees that enough actions are available, (4) makes use of the matrices A_{k} and B_{k} to relate the number of executed actions to the marking changes, (5) guarantees that enough tokens are available in the input places to be consumed, (6) guarantees that the overall state change is not null. Notice that the inequalities (4) allow the modeling of uncertainty in the marking changes produced by the execution of actions.
Definition 4 (Firing)
Notice that an enabled handler is not forced to fire, and that the state reached by the firing of an event handler is allowed to be nondeterministic (see inequality (4)). Moreover, the firing does not force the execution of a minimum number of actions nor the consumption or production of a minimum number of tokens. In fact, the equations in Definition 4 are trivially satisfied with a_{f} = 0 and Δm_{f} = 0. Thus, such equations also hold for every nonenabled handler with a_{f} = 0 and Δm_{f} = 0.
The overall change in the state produced by several firings is the result of adding the changes produced by each firing. This leads to a set of equations that are satisfied by the states that can be reached from the initial state.
Proposition 1 (State equations)

Y_{σ} is a matrix with rows indexed by T, columns indexed by \({E_{V}^{T}}\), and such that \(Y_{\sigma }[t_{j},\{t_{j},v_{k}\}]=1\ \forall \ \{t_{j},v_{k}\}\in {E_{V}^{T}}\) and the rest of the elements in Y_{σ} are 0,

Z_{m} is a matrix with rows indexed by P, columns indexed by \({E_{V}^{P}}\), and such that \(Z_{m}[p_{i},(p_{i},v_{k})]=1\ \forall \ (p_{i},v_{k}) \in {E_{V}^{P}}\), \(Z_{m}[p_{i},(v_{k},p_{i})]=1\ \forall \ (v_{k},p_{i}) \in {E_{V}^{P}}\) and the rest of the elements in Z_{m} are 0,
Proof
Let us show that equations (7) necessarily hold for every state (σ, a_{T},a_{E},Δm, m) reachable from (σ, σ,0,0,m_{0}). Equation σ = a_{T} + Y_{σ}a_{E} in (7) states that the number of actions produced, σ, is equal to the number of actions executed, a_{E}, plus the number of actions available, a_{T}. This is equivalent to (1) expressed in matrix form, and thus necessarily holds. Equation AΔm ≤ Ba_{E} in (7) is the matrix form of (4) and accounts for all the actions executed and all the marking changes produced by the firing of all the event handlers. That is, it captures all the cumulative marking changes, Δm, produced by all the executed actions, a_{E}, and, hence, must necessarily hold. Finally, equation m = m_{0} + Z_{m}Δm in (7) which updates the number of tokens, m, in all the places according to the cumulative marking changes, Δm, is the matrix form of (2) and, hence, must also hold. □
Roughly speaking, the role of matrix Y_{σ} is to distribute the actions in transitions among the handlers connected to them, see (1). The role of Z_{m} is to collect and add the marking changes produced by the firings, see (2).
Example 3
Let us assume that the marking of the net in Fig. 2a is m[p_{1}]= 2, m[p_{2}]= 0, m[p_{3}]= 0, that one action was produced in t_{1}, i.e. σ[t_{1}]= 1, and it is available, i.e, a_{T}[t_{1}]= 1, and no event handler has fired. This corresponds to the state (σ[t_{1}]= 1, a_{T}[t_{1}]= 1, a_{E}[{t_{1},v_{2}}]= 0, (Δm[(p_{1},v_{1})]= 0,Δm[(v_{1},p_{2})]= 0,Δm[(p_{1},v_{2})]= 0, Δm[(v_{2},p_{3})]= 0), (m[p_{1}]= 2,m[p_{2}]= 0,m[p_{3}]= 0)). At this state, both event handlers, v_{1} and v_{2}, are enabled and can fire. If v_{2} fires in an amount of 1, i.e. x= 1, then: a_{T}[t_{1}] and m[p_{1}] are decreased by 1; a_{E}[{t_{1},v_{2}}] and Δm[(p_{1},v_{2})] are increased by one; and Δm[(v_{2},p_{3})] and m[p_{3}] are increased by a nondeterministic quantity in the interval [1,2] (the value of σ[t_{1}] remains unaltered as no actions are produced).
The graph in Fig. 2b shows the potential evolutions of the net under the assumption that event handlers fire in discrete amounts, i.e. all markings and actions are integers. The components of the vectors of states in the graph correspond to the variables (m[p_{1}] m[p_{2}] m[p_{3}] a_{T}[t_{1}]). The arcs are labeled with the event handler that is fired. Remark that while the firing of v_{1} produces a deterministic change (one token consumed from p_{1} and one token produced in p_{2}), the state change produced by the firing of v_{2} is nondeterministic (either one or two tokens can be produced in p_{3}).
Notice that equations (7) account for the cumulative effect, and not the sequence, of the firings. In particular, the availability of tokens and actions consumed by the sequence of firings is not checked. This can lead to spurious solutions (Silva et al. 1998) in the state equations. Hence, equations (7) represent a necessary condition for the reachability of (σ, a_{T},a_{E},Δm, m).
2.2 Partial observability
In an event net, the marking change produced by the execution of an action is allowed to be nondeterministic. This is the case when there are several event handlers connected to a transition, or if the connected event handler has appropriate inequalities associated with it. The nondeterministic effect of the execution of actions can be used to develop nondeterministic models and, in particular, to model partially observable systems. The state equations (9) account for all the states that can be reached after the firing of event handlers. In the context of partial observability, these equations characterize the set of states that are consistent with a given observation of a partially observable system. The following example shows how a partially observable system can be modeled by an event net.
Thus, the observation of t_{1} corresponds to the firing of v_{1}; the firing of v_{2} is unobservable (silent event) because it is not connected to a transition; the observation of t_{2} corresponds either to the firing of v_{3} or v_{4} because both handlers use the actions in t_{2} (in other words, t_{2} models events that cannot be distinguished by an observer); the observation of t_{3} corresponds to the firing of v_{5}.
The graph in Fig. 3b shows the potential evolutions of the net with m_{0} = (1 0 0 0 0 0) and σ = (2 1 1), the components of the vectors in the graph correspond to the marking of places (p_{1}p_{2}p_{3}p_{4}p_{5}p_{6}). Initially, only v_{1} can fire and, hence, the execution of actions in t_{1} is the only event that can be observed. The observation of t_{1} means that a token was consumed from p_{1} and a token was produced in p_{2}. Since p_{2} is the input place of v_{2} whose firing cannot be observed, a token in p_{2} can remain in p_{2} or move silently to p_{3}. Thus, the set of markings consistent with the observation of t_{1} is {(0 1 0 0 0 0),(0 0 1 0 0 0)}, see second row of the graph. Assume that t_{2} is now observed, i.e. either v_{3} or v_{4} has fired. If the marking was (0 0 1 0 0 0), then v_{3} (the only enabled handler) has fired and that leads to marking (0 0 0 1 0 0). Otherwise, v_{4} has fired and that leads either to (0 0 0 0 1 0) or (0 0 0 0 2 0) because one firing of v_{4} can produce one or two tokens in p_{5}. Thus, the set of markings consistent with the observation of the sequence of events t_{1} and t_{2} is {(0 0 0 0 1 0),(0 0 0 0 2 0),(0 0 0 1 0 0)}, see third row of the graph. Assume that t_{3} is now observed, i.e. v_{5} has fired. Notice that the firing of v_{5} requires two tokens in p_{5}, thus, after the observation of t_{1} and t_{2}, (0 0 0 0 2 0) is the only consistent marking at which v_{5} can fire. Consequently, the only sequence of markings consistent with the observation of t_{1}, t_{2} and t_{3} is (1 0 0 0 0 0), (0 1 0 0 0 0), (0 0 0 0 2 0) and (0 0 0 0 0 1).
3 Intensity nets
3.1 Definition and state equations
This section introduces intensity nets, which can be denoted as PST nets, i.e. tokens in places P produce and consume intensities in transitions T through intensity handlers S. The intensity of a transition t_{j} is the speed at which actions are produced in t_{j}. In other words, the number of actions produced at t is given by the integral over time of the intensity of t_{j}. Intensity nets and event nets operate in a similar fashion. In fact, the changes in the intensities are produced by tokens in the intensity net in the same way that changes in the marking are produced by actions in the event net.
Definition 5 (Intensity net)
An intensity net is a tuple \({{\mathcal {N}}}_{S}=(P,T,S,E_{S},C,D)\) where (P, T, S, E_{S}) is a tripartite graph determining the net structure and (C, D) are matrices determining the potential intensity changes produced by the marking.

S = {s_{1},…,s_{l},…} is a set of S intensity handlers.
Places and transitions model the same system features as in the event net. The intensity handlers are depicted as dots and model the different ways in which the tokens can generate intensities in the transitions.

Every \(e\in {E_{S}^{T}}\) is either an arc e = (t_{j},s_{l}) from a transition t_{j} to a handler s_{l}, or an arc e = (s_{l},t_{j}) from a handler s_{l} to a transition t_{j}.

Every \(e\in {E_{S}^{P}}\) is an edge e = {p_{i},s_{l}} connecting a place p_{i} and a handler s_{l}.

^{t}s_{l} denotes the input transitions of s_{l}, i.e. \(^{t}s_{l}=\{t_{j}(t_{j},s_{l})\in {E_{S}^{T}}\}\)

\({s_{l}^{t}}\) denotes the output transitions of s_{l}, i.e. \({s_{l}^{t}}=\{t_{j}(s_{l},t_{j})\in {E_{S}^{T}}\}\)

^{s}t_{j} denotes the input handlers of t_{j}, i.e. \(^{s}t_{j}=\{s_{l}(s_{l},t_{j})\in {E_{S}^{T}}\}\)

\({t_{j}^{s}}\) denotes the output handlers of t_{j}, i.e. \({t_{j}^{s}}=\{s_{l}(t_{j},s_{l})\in {E_{S}^{T}}\}\)

^{p}s_{l} denotes the places connected to s_{l}, i.e. \(^{p}s_{l}=\{p_{i}\{p_{i},s_{l}\}\in {E_{S}^{P}}\}\)

\({p_{i}^{s}}\) denotes the handlers connected to p_{i}, i.e. \({p_{i}^{s}}=\{s_{l}\{p_{i},s_{l}\}\in {E_{S}^{P}}\}\)
As in the event net, the places in the intensity net contain tokens. These tokens can be used by the intensity handlers to produce intensities. A token is active if it is being used by an intensity handler, otherwise it is idle. While idle tokens are associated with places, active tokens are associated with edges. An intensity handler determines how much intensity is produced in its arcs as a function of the number of active tokens in its edges.
The state of the net is given by the variables associated with the net elements. Formally:
Definition 6 (State)

\(m\in \mathbb {R}^{P}_{\geq 0}\) is the marking, i.e. a vector indexed by P where m[p_{i}] is the number of tokens in p_{i},

\(\mu _{P}\in \mathbb {R}^{P}_{\geq 0}\) is a vector indexed by P where μ_{P}[p_{i}] is the number of idle tokens in p_{i},

\(\mu _{E}\in \mathbb {R}^{{E_{S}^{P}}}_{\geq 0}\) is a vector indexed by \({E_{S}^{P}}\) where μ_{E}[{p_{i},s_{l}}] is the number of active tokens of p_{i} being used by s_{l},

\({\Delta }\lambda \in \mathbb {R}^{{E_{S}^{T}}}_{\geq 0}\) is a vector indexed by \({E_{S}^{T}}\) where Δλ[(t_{j},s_{l})] is a decrease of intensity in t_{j} produced by s_{l}, and Δλ[(s_{l},t_{j})] is an increase of intensity in t_{j} produced by s_{l},

\(\lambda \in \mathbb {R}^{T}_{\geq 0}\) is a vector indexed by T where λ[t_{j}] is the intensity in t_{j}.
An intensity handler is said to be working when it is producing intensities. When an intensity handler s_{l} ∈ S starts working, the number of idle tokens in ^{p}s_{l} decreases, the number of active tokens in its edges increases (such tokens start being used by the handler), and intensities are produced in its arcs. Conversely, when an intensity handler s_{l} stops working, the number of idle tokens in ^{p}s_{l} increases (i.e. they are released by the handler), the number of active tokens becomes 0, and no intensities are produced in its arcs. Thus (in contrast to the firing of event handlers whose firing cannot be reversed once it has occurred) intensity handlers are allowed to start and stop working (or to increase and decrease their working rates), thus allocating tokens as active tokens and releasing them as idle tokens over time.
The relation between the number of active tokens and the intensities produced are given by a set of inequalities associated with each intensity handler s_{l} ∈ S. The coefficients of these inequalities can be captured by two matrices (C_{l},D_{l}) of real numbers and same number of rows. The columns of C_{l} are indexed by the arcs connecting s_{l} to transitions. The columns of D_{l} are indexed by the edges connecting places to s_{l}. Matrix C(D) is obtained by arranging all the matrices C_{l}(D_{l}) diagonally.
If 1μ_{w} + 1Δλ_{w} > 0, then s_{l} is said to be working. Similarly to event handlers, intensity handlers are not forced to work. When a number of intensity handlers work simultaneously, they share the tokens in places and collaborate in the production of intensities. In a similar way to (4), the inequalities (13) allow the modeling of uncertainty in the intensity changes produced by the active tokens.
Similarly to (7), the state equations of the intensity net determine the potential states of the net for a given marking m and default intensities λ_{0}:
Proposition 2 (State equations)

Y_{m} is a matrix with rows indexed by P, columns indexed by \({E_{S}^{P}}\), and such that \(Y_{m}[p_{i},\{p_{i},s_{l}\}]=1\ \forall \{p_{i},s_{l}\}\in {E_{S}^{P}}\) and the rest of the elements in Y_{m} are 0,

Z_{λ} is a matrix with rows indexed by T, columns indexed by \({E_{S}^{T}}\), and such that \(Z_{\lambda }[t_{j},(t_{j},s_{l})]=1\ \forall (t_{j},s_{l}) \in {E_{S}^{T}}\), \(Z_{\lambda }[t_{j},(s_{l},t_{j})]=1\ \forall (s_{l},t_{j}) \in {E_{S}^{T}}\) and the rest of the elements in Z_{λ} are 0,
Similarly to (7), the equations m=μ_{P} + Y_{m}μ_{E}, CΔλ≤Dμ_{E}, λ=λ_{0} + Z_{λ}Δλ in (14) are the matrix forms of (11), (13) and (12) respectively, and thus, must hold at every state (m, μ_{P},μ_{E},Δλ, λ) reachable from (m, m,0,0,λ_{0}). As in (7), equations (14) account for the cumulative intensities produced by the handlers, and hence, \(SE_{{{\mathcal {N}}}_{S}}(m,\lambda _{0})\) can contain spurious solutions.
3.2 Modeling capabilities
The intensity net in Fig. 4a has one place p_{1}, one transition t_{1} and one intensity handler s_{1}. The inequality associated with s_{1} establishes that the intensity Δλ[(s_{1},t_{1})] produced in the arc (s_{1},t_{1}) by s_{1} must satisfy 2μ_{E}[{p_{1},s_{1}}]≤Δλ[(s_{1},t_{1})]≤ 3μ_{E}[{p_{1},s_{1}}] where μ_{E}[{p_{1},s_{1}}] is the number of active tokens in {p_{1},s_{1}} (notice that given that m[p_{1}]= 2, the number of active tokens is upper bounded by 2). The actual value of Δλ[(s_{1},t_{1})] is selected nondeterministically in this interval. Since the default intensity of t_{1} is 0 and (s_{1},t_{1}) is the only arc connected to t_{1}, it holds λ[t_{1}]=Δλ[(s_{1},t_{1})] what establishes the rate at which actions will be produced in t_{1}.
The intensity handler s_{1} in Fig. 4b makes use of the active tokens in p_{1} to decrease the intensity in t_{1} and increase the intensity in t_{2}. This can be seen as an intensity transfer from one transition to the other. According to the equations associated with s_{1}, which can be rewritten as μ_{E}[{p_{1},s_{1}}] = Δλ[(t_{1},s_{1})] = Δλ[(s_{1},t_{2})], the amount of this transfer is equal to the number of active tokens, μ_{E}[{p_{1},s_{1}}], which in this case is at most 2 given that m[p_{1}] = 2. Thus, if there is one active token, i.e. μ_{E}[{p_{1},s_{1}}] = 1, according to the state equations (14) the resulting intensities will be λ[t_{1}] = λ_{0}[t_{1}] −Δλ[(t_{1},s_{1})] = λ_{0}[t_{1}] − μ_{E}[{p_{1},s_{1}}] = 5 − 1 = 4 and λ[t_{2}] = λ_{0}[t_{2}] + Δλ[(s_{1},t_{2})] = λ_{0}[t_{2}] + μ_{E}[{p_{1},s_{1}}] = 0 + 1 = 1.
The net in Fig. 4c shows how the intensity of one transition, t_{1}, can be used to produce intensity in other transitions, t_{2} and t_{3}. For this net, the state equations (14) become λ[t_{1}] = λ_{0}[t_{1}]−Δλ[(t_{1},s_{1})]−Δλ[(t_{1},s_{2})], λ[t_{2}] = λ_{0}[t_{2}]+Δλ[(s_{1},t_{2})], λ[t_{3}] = λ_{0}[t_{3}]+Δλ[(s_{2},t_{3})], Δλ[(t_{1},s_{1})] = Δλ[(s_{1},t_{2})], Δλ[(t_{1},s_{2})] = Δλ[(s_{2},t_{3})]. Given that λ_{0}[t_{1}] = 6 and λ_{0}[t_{2}] = λ_{0}[t_{3}] = 0, these state equations reduce to λ[t_{1}]+λ[t_{2}]+λ[t_{3}] = 6 what summarizes the potential intensities of the net.
The net in Fig. 4d models a choice in place p_{1}, i.e. each token in p_{1} can be used either to produce an intensity within the interval [1,2] in t_{1}, or synchronize with a token in p_{2} to produce an intensity within the interval [3,5] in t_{2}.
4 Flexible nets
This section introduces Flexible Nets (FNs), which can be denoted as PHT nets, i.e. places P and transitions T are connected by event and intensity handlers. Roughly, an FN consists of an event net and an intensity net that have the same set of places and the same set of transitions.
Definition 7 (Flexible net)
A Flexible Net (FN) is a tuple \(\mathcal {N}\) = (P, T, V, E_{V},A, B, S, E_{S},C, D) where (P, T, V, E_{V},A, B) is an event net and (P, T, S, E_{S},C, D) is an intensity net.
In an FN, the event net determines the way actions produce marking changes, and the intensity net determines the way tokens produce intensity changes. The inequalities associated with handlers allow the modeler to cover a range of relationships between “actions and tokens” and “tokens and intensities”. Thus, handlers can be seen as a flexible layer between places and transitions that offers the possibility to model uncertainties in both the way actions produce marking changes, and the way tokens produce intensity changes.
In addition to the state variables of the event and intensity net, Δσ is included in the tuple of variables defining the state of the FN.
Definition 8 (State)
The state x of an FN is given by the tuple x = (m, μ_{P},μ_{E},Δλ, λ, Δσ, σ, a_{T},a_{E},Δm).
All the state variables are time dependent. For the sake of clarity, the time dependency will be omitted when it is clear from the context, e.g. m(τ) is shortened to m. At time 0 it holds Δσ = 0, σ = 0, a_{T} = 0, a_{E} = 0, Δm = 0, i.e. the initial state can be written as: (m, μ_{P},μ_{E},Δλ, λ,0,0,0,0,0).
By making use of \(SE_{{{\mathcal {N}}}_{V}}(\sigma ,J_{m},K_{m})\) in (9), \(SE_{{{\mathcal {N}}}_{S}}(m,J_{\lambda },K_{\lambda })\) in (16), (18) and (19), it is possible to write a set of equations that any potential state at time τ must satisfy.
Proposition 3 (State equations)
This way, an FN is a continuous time model where time, denoted as τ, is the independent variable and all the state variables are nonnegative reals.
Equations (20) can be interpreted as follows: at a given time τ, some of the produced actions (σ) are available (a_{T}), and the rest (a_{E}) were executed before τ. The executed actions produced marking changes (Δm) which resulted in the marking m in places at τ. Some of the tokens in m are active (μ_{E}) and the rest are idle (μ_{P}). Active tokens produce intensity changes (Δλ) which result in overall intensities (λ) in transitions at τ. The integral of the intensity changes and overall intensities over time after τ will produce more actions (σ), i.e. σ is produced as time elapses. This behavior repeats over time: when a new marking is reached, intensities are updated, which can lead to the production and execution of new actions, which consequently results in a new marking.
As in the event and intensity nets, constraints (10) and (17) can be added to (20) to force the execution of actions and the activity of places.
5 Exploiting uncertainty
 1.
The first method consists of developing a unique set of necessary reachability conditions that combines the reachability conditions of each interval [0,τ_{1}], [τ_{1},τ_{2}],[τ_{2},τ_{3}],…, in such a way that all the states that satisfy the constraints at the end of a given interval are taken as potential initial states for the next interval (see Júlvez et al. 2018 for details). Once this set of constraints is obtained, a particular trajectory of the FN can be computed by adding an objective function to such a set of constraints, and by solving the resulting programming problem.
 2.
The second method follows a model predictive control (MPC) (Kouvaritakis and Cannon 2016) approach. According to this approach, the programming problem described in the first method is solved over the intervals [0,τ_{1}],[τ_{1},τ_{2}],…,[τ_{n− 1},τ_{n}] where τ_{n} is the prediction horizon. Then, the state obtained at τ_{1} is taken as the initial state and a programming problem over the intervals [τ_{1},τ_{2}],[τ_{2},τ_{3}],…,[τ_{n},τ_{n+ 1}] is defined and solved. This procedure can be repeated with the subsequent intervals.
It should be noted that solving convex quadratic programming problems is required by both methods above. Given that the computational complexity required to solve such problems is polynomial, the proposed computational methods can be applied to large FNs. The following subsections present some of the modeling, analysis and control capabilities of FNs by modeling a linear system with uncertain parameters, a resource allocation system and a system with control actions.
5.1 Linear system with uncertain parameters
Let the initial marking be m_{0}[p_{1}]= 4, m_{0}[p_{2}]= 0, and m_{0}[p_{3}]= 0. Figure 7 shows the time trajectories of the marking and the intensities of t_{1} and t_{3} under different objective functions (notice that the intensity of t_{2} is equal to m[p_{2}], and the intensity of t_{4} is constant and equal to 2). The trajectories have been obtained by an MPC approach with a sample time (or interval) of 0.1 time units and a prediction horizon of one sample time. This means that initially, i.e. at time 0.0, the programming problem (Júlvez et al. 2018) is defined and solved over the time interval [0.0, 0.1]. The solution of the problem is taken as the state of the system at time 0.1. Then, the programming problem is defined and solved over the interval [0.1, 0.2], and the procedure is repeated.
The trajectory in Fig. 7b is obtained by the objective function “maxm[p_{3}]”. For such an objective, the solution of the programming problem sets λ_{0}[t_{1}]= 1.0 and r= 1.1a (which results in λ[t_{3}] = 1.1m[p_{1}]). This setting maximizes the flow directed from p_{1} to the branch composed of v_{3} and v_{4}.
5.2 Resource allocation
While the event handlers, v_{1}, v_{2} and v_{3} determine the relationship between the input and output material of the production lines, the intensity handlers specify the speed of these lines according to the number of active tokens assigned to each line. In particular, the intensity edges {p_{a},s_{1}} and {p_{a},s_{2}} model the fact that the active tokens of p_{a} can be used either by s_{1} or s_{2}. In a similar way, the fact that the active tokens of p_{b} can be used either by s_{2} or s_{3} is modeled by the intensity edges {p_{b},s_{2}} and {p_{b},s_{3}}. This way, s_{2} is the intensity handler responsible for the synchronization of resources for t_{2}. The actions of all transitions are forced to be executed in order to model the active tokens to make the production lines work. Note that the graphical representation of the system by an FN is reasonably clear and compact. If the system were modeled by a classical Petri net, each transition would have to be split into several transitions that would each model the acquisition and release of the resources and the speed of the production lines. This would lead to a more complex graphical notation and, potentially, to more involved analysis methods.
Let the initial marking of the net be m_{0}[p_{1}]= 3, m_{0}[p_{2}]= 0, m_{0}[p_{3}]= 2, m_{0}[p_{4}]= 0, m_{0}[p_{5}]= 0, m_{0}[p_{a}]= 2 and m_{0}[p_{b}]= 1, i.e. there are two copies of resource type p_{a} and one copy of resource type p_{b}. Assume that the goal is to compute how the resources must be allocated over time so that the objective function \(\bar {m}[p_{2}]{+}0.5\bar {m}[p_{4}]{+}0.25\bar {m}[p_{5}]\), where \(\bar {m}[p_{i}]\) denotes the average marking of p_{i}, is maximized. In words, this objective function implies that the goal is to maximize the production of all items giving priority to the products of type p_{2}, then p_{4} and finally p_{5}.
This resource allocation problem can be solved by a single programming problem (see first method in Section 5) that makes use of the reachability constraints in Júlvez et al. (2018) and the mentioned objective function. More precisely, in order to obtain time trajectories, 90 intervals, each of 0.05 time units, will be considered.
5.3 Control actions
Control actions can be modeled in FNs by means of default intensities. This section demonstrates the ability of FNs to model and solve a control problem in which the control action is dynamically constrained.
Consider the objective function min (m[p_{1}] − 1)^{2} + (m[p_{2}] − 4)^{2}. Notice that in this system the invariant m[p_{1}] + m[p_{2}] + m[p_{3}] = 9 holds, then, the control objective is to drive the system to a marking that is as close as possible to the target marking (1,4,4). Figure 10b and c show the trajectories obtained by MPC with a sample time of 0.1 time units and a prediction horizon of one step. Initially, the value of λ_{0}[t_{4}] is low as it is constrained by m[p_{2}], which initially is 0. Then, λ_{0}[t_{4}] increases so that m[p_{2}] increases and m[p_{1}] decreases. At time 1.0, λ_{0}[t_{4}] hits the constraint 1.5 where it is kept constant for 0.4 time units. Then, λ_{0}[t_{4}] decreases in order to approach further the target marking. At steady state, the average intensities of t_{1}, t_{2} and t_{3} are the same and equal to 2.73, and the value of the control action is λ_{0}[t_{4}] = 0.81. The steady state marking reached is (1.93,4.35,2.73). It is important to note that the target marking (1,4,4) cannot be an achievable steady state marking with the proposed single control action.
All the trajectories in this paper have been obtained by the tool fnyzer (https://bitbucket.org/Julvez/fnyzer.git). This tool makes use of the modeling language Pyomo (Hart et al. 2017; Hart et al. 2011) and solvers, such as Gurobi (Gurobi Optimization 2015) and CPLEX (IBM ILOG CPLEX Optimizer 2010), to solve the programming problems associated with the FNs. The CPU time (Intel i7, 2.00 GHz, 8 GiB, Ubuntu 14.04 LTS) to solve one step of the MPC approach for the FNs in Figs. 6 and 10 was 1.81s and 5.93s respectively. The CPU time to solve the only programming problem associated with Fig. 8 was 1.27s.
6 Conclusions
FNs consist of two nets, an event net and an intensity net, that make an explicit distinction between the parts of the system involved in updating the marking in places, i.e. the event net, and the parts of the system involved in the determination of the speeds of transitions, i.e. the intensity net. Both the event and the intensity net are tripartite graphs in which places and transitions are connected by event and intensity handlers, respectively. This way, handlers act as an intermediate layer between places and transitions, which results in a significant modeling power. For instance, a transition in an event net can consume tokens from different sets of places, and a place in an intensity net can regulate the speed of different transitions. The tripartite net structure of event and intensity nets has demonstrated to be useful to model partial observability and resource allocation.
Different types of system uncertainties can be accommodated by FNs through sets of linear inequalities associated with places, transitions, event handlers and intensity handlers. Namely, these inequalities allow the modeling of uncertainty in: a) the initial marking (8); b) the default intensities (15); c) the marking change produced by the execution of actions (4); and d) the intensity change produced by the active tokens (13). FNs account for the potential system trajectories arising as a result of uncertainties by means of a set of constraints that represent necessary reachability conditions. The combination of these constraints with an objective function can be used to obtain a system trajectory that optimizes a given criterion. This approach was successfully used to compute trajectory bounds, for instance, in the presented linear system with uncertain parameters, or to obtain a control law in a system whose control action is modeled by a transition with uncertain default intensity.
Notes
Acknowledgments
This work was supported by the European Commission through a 7^{th} Framework Program BIOLEDGE Contract No: 289126 to SGO, and a Marie Curie Intra European Fellowship to JJ (FormalBio Contract No: 623995, Call reference: FP7PEOPLE2013IEF). Further support came from the Biotechnology & Biological Sciences Research Council (UK) grant no. BB/N02348X/1 as part of the IBiotech Program, and by the Industrial Biotechnology Catalyst (Innovate UK, BBSRC, EPSRC) to support the translation, development and commercialisation of innovative Industrial Biotechnology processes.
References
 Ajmone Marsan M, Balbo G, Conte G, Donatelli S, Franceschinis G (1995) Modelling with Generalized Stochastic Petri Nets. Wiley, New YorkzbMATHGoogle Scholar
 Alur R, Dill DL (1994) A theory of timed automata. Theor Comput Sci 126 (2):183–235MathSciNetCrossRefGoogle Scholar
 Bertrand N, Bouyer P, Brihaye T, Menet Q, Baier C, Größer M, Jurdziński M (2014) Stochastic timed automata. Logical Methods in Computer Science 10(4). https://doi.org/10.2168/LMCS10(4:6)
 Bortolussi L, Hillston J, Latella D, Massink M (2013) Continuous approximation of collective system behaviour A tutorial. Perform Eval 70(5):317–349CrossRefGoogle Scholar
 Borutzky W (2010) Bond Graph Methodology – Development and Analysis of Multidisciplinay Dynamic System Models. Springer, London. ISBN : 9781848828810Google Scholar
 Braun M, Lucas W, Coleman C, Drew D (1983) Differential equation models. Modules in Applied Mathematics. Springer, BerlinCrossRefGoogle Scholar
 Cabasino MP, Giua A, Seatzu C (2010) Fault detection for discrete event systems using Petri nets with unobservable transitions. Automatica 46(9):1531–1539MathSciNetCrossRefGoogle Scholar
 Cardoso J, Valette R, Dubois D (1999) Possibilistic Petri nets. 29:573–82, 02Google Scholar
 Ciocchetta F, Hillston J (2008) BioPEPA An Extension of the Process Algebra PEPA for Biochemical Networks. Electron Notes Theor Comput Sci 194(3):103–117CrossRefGoogle Scholar
 Clark A, Gilmore S, Hillston J, Tribastone M (2007) Stochastic Process Algebras. Springer, Berlin, pp 132–179zbMATHGoogle Scholar
 Detwarasiti A, Shachter RD (2005) Influence Diagrams for Team Decision Analysis. Decis Anal 2(4):207–228CrossRefGoogle Scholar
 Gurobi Optimization, Inc. (2015) Gurobi Optimizer Reference ManualGoogle Scholar
 Hart WE, Laird CD, Watson JP, Woodruff DL, Hackebeil GA, Nicholson BL, Siirola JD (2017) Pyomo–optimization modeling in Python, vol 67, 2nd edn. Springer Science & Business Media, BerlinCrossRefGoogle Scholar
 Hart WE, Watson JP, Woodruff DL (2011) Pyomo: modeling and solving mathematical programs in Python. Math Programm Comput 3(3):219–260MathSciNetCrossRefGoogle Scholar
 IBM ILOG CPLEX Optimizer (2010) .Google Scholar
 Jiménez E, Júlvez J, Recalde L, Silva M (2004) Relaxed continuous views of discrete event systems: considerations on F,orrester diagrams and Petri nets. In: 2004 IEEE International Conference on Systems, Man and Cybernetics (IEEE Cat. No.04CH37583), vol 5, pp 4897–4904Google Scholar
 Júlvez J, Dikicioglu D, Oliver SG (2018) Handling variability and incompleteness of biological data by flexible nets: a case study for Wilson disease. npj Syst Biol Appl 4(1):7,1CrossRefGoogle Scholar
 Kouvaritakis B, Cannon M (2016) Model Predictive Control. Classical, Robust and Stochastic. Springer International PublishingGoogle Scholar
 Looney CG (1988) Fuzzy Petri nets for rulebased decisionmaking. IEEE Trans Syst Man Cybern 18(1):178–183CrossRefGoogle Scholar
 Merlin P, Faber DJ (1976) Recoverability of communication protocols. IEEE Trans Commun 24(9):1036–1043CrossRefGoogle Scholar
 Murata T (1989) Petri Nets: Properties, Analysis and Applications. Procs IEEE 77(4):541–580CrossRefGoogle Scholar
 Needham CJ, Bradford JR, Bulpitt AJ, Westhead DR (2007) A Primer on Learning in Bayesian Networks for Computational Biology. PLOS Comput Biol 3 (8):1–8, 08CrossRefGoogle Scholar
 Orth JD, Conrad TM, Na J, Lerman JA, Nam H, Feist AM, Palsson BØ (2011) A comprehensive genomescale reconstruction of Escherichia coli metabolism. Mol Syst Biol 7:1–9Google Scholar
 Priami C, Regev A, Shapiro E, Silverman W (2001) Application of a stochastic namepassing calculus to representation and simulation of molecular processes. Inf Process Lett 80(1):25–31. Process AlgebraMathSciNetCrossRefGoogle Scholar
 RamirezTrevino A, RiveraRangel I, LopezMellado E (2003) Observability of discrete event systems modeled by interpreted Petri nets. IEEE Trans Robot Autom 19(4):557–565CrossRefGoogle Scholar
 Shmulevich I, Dougherty ER, Kim S, Zhang W (2002) Probabilistic Boolean networks: a rulebased uncertainty model for gene regulatory networks. Bioinformatics 18(2):261–274CrossRefGoogle Scholar
 Silva M, Teruel E, Colom JM (1998) Linear Algebraic and Linear Programming Techniques for the Analysis of Net Systems. Lect Notes Comput Sci 1491:309–373CrossRefGoogle Scholar
 Silva M, Júlvez J, Mahulea C, Vázquez CR (2011) On fluidization of discrete event models: observation and control of continuous Petri nets. Discret Event Dyn Syst: Theory Appl 21(4):427–497MathSciNetCrossRefGoogle Scholar
 Tyson JJ, Baumann WT, Chen C, Verdugo A, Tavassoly I, Wang Y, Weiner LM, Clarke R (2011) Dynamic modelling of oestrogen signalling and cell fate in breast cancer cells. Nat Rev Cancer 11(7):523–32CrossRefGoogle Scholar
 van den Berg R, Lefeber E, Rooda K (2008) Modeling and control of a manufacturing flow line using partial differential equations. IEEE Trans Control Syst Technol 16:130–136, 02CrossRefGoogle Scholar
 Varma A, Palsson BØ (1994) Metabolic Flux Balancing: Basic Concepts, Scientific and Practical Use. Nat Biotechnol 12(10):994–998CrossRefGoogle Scholar
 Wang RS, Saadatpour A, Albert R (2012) Boolean modeling in systems biology: an overview of methodology and applications. Phys Biol 9(5):055001CrossRefGoogle Scholar
Copyright information
Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.