This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

Membrane Systems and Petri Net Synthesis
(Invited Paper)

Jetty Kleijn LIACS
Leiden University
Leiden, The Netherlands kleijn@liacs.nl School of Computing Science
Newcastle University
Newcastle upon Tyne, UKSchool of Computing Science
Newcastle University
Newcastle upon Tyne, UKLIACS
Leiden University
Leiden, The Netherlands
and
Department of Computer Science
University of Colorado at Boulder
Boulder, Colorado, USA
   Maciej Koutny School of Computing Science
Newcastle University
Newcastle upon Tyne, UK maciej.koutny@ncl.ac.uk School of Computing Science
Newcastle University
Newcastle upon Tyne, UKLIACS
Leiden University
Leiden, The Netherlands
and
Department of Computer Science
University of Colorado at Boulder
Boulder, Colorado, USA
   Marta Pietkiewicz-Koutny School of Computing Science
Newcastle University
Newcastle upon Tyne, UK marta.koutny@ncl.ac.uk LIACS
Leiden University
Leiden, The Netherlands
and
Department of Computer Science
University of Colorado at Boulder
Boulder, Colorado, USA
   Grzegorz Rozenberg LIACS
Leiden University
Leiden, The Netherlands
and
Department of Computer Science
University of Colorado at Boulder
Boulder, Colorado, USA rozenber@liacs.nl
Abstract

Automated synthesis from behavioural specifications is an attractive and powerful way of constructing concurrent systems. Here we focus on the problem of synthesising a membrane system from a behavioural specification given in the form of a transition system which specifies the desired state space of the system to be constructed. We demonstrate how a Petri net solution to this problem, based on the notion of region of a transition system, yields a method of automated synthesis of membrane systems from state spaces.

1 Introduction

Membrane systems ([20, 21, 22, 23]) are a computational model inspired by the functioning of living cells and their architecture and in particular, the way chemical reactions take place in cells divided by membranes into compartments. The reactions are abstracted to rules that specify which and how many molecules can be produced from given molecules of a certain kind and quantity. As a result, membrane systems are essentially multiset rewriting systems. The dynamic aspects of the membrane system model including potential behaviour (computations), derive from such evolution rules.

Petri nets (see, e.g., [6, 24, 26]) are a well-established general model for distributed computation with an extensive range of tools and methods for construction, analysis, and verification of concurrent systems. Their diverse applications areas include computational and operational foundations for problems and issues arising in biology; see for example, [16], for a recent comprehensive overview of applications of Petri nets in systems biology.

There are intrinsic similarities between Petri nets and membrane systems. In particular, there exists a canonical way of translating membrane systems into Petri nets. This translation is faithful in the sense that it relates computation steps at the lowest level and induces in a natural way (sometimes new) extensions and interpretations of Petri net structure and behaviour (e.g., inhibitor arcs, localities, and maximal concurrency). More details on the relationship between Petri nets and membrane systems can be found in, e.g.,  [10, 15].

The strong semantical link between the two models invites to extend where necessary and possible existing Petri net techniques and bring them to the domain of membrane systems. An example is the process semantics of Petri nets that can help to understand the dynamics and causality in the biological evolutions represented by membrane systems [9, 13]. In this paper, we focus on the synthesis problem, that is, the problem of automated construction of a system from a specification of its (observed or desired) behaviour.

Automated synthesis from behavioural specifications is an attractive and powerful way of constructing correct concurrent systems [2, 3, 5, 7, 8, 19, 25]. Here we will re-visit the problem of synthesising a Petri net from a behavioural specification given in the form of a transition system. The latter specifies the desired state space of the Petri net to be constructed. We will recall a solution to this problem based on the notion of region of a transition system. We will then demonstrate how this solution leads to a method of automated synthesis of basic membrane systems from state spaces. We also discuss how the proposed method could be extended to cope with more complicated kinds of membrane systems.

2 Preliminaries

Multisets.

A multiset over a finite set XX is a function θ:X={0,1,2,}\theta:X\to{\mathbb{N}}=\{0,1,2,\ldots\}. θ\theta may be represented by listing its elements with repetitions, e.g., θ={y,y,z}\theta=\{y,y,z\} is such that θ(y)=2\theta(y)=2, θ(z)=1\theta(z)=1, and θ(x)=0\theta(x)=0 otherwise. θ\theta is said to be empty (and denoted by \varnothing) if there are no xx such that xθx\in\theta by which we mean that xXx\in X and θ(x)1\theta(x)\geq 1.

For two multisets θ\theta and θ\theta^{\prime} over XX, the sum θ+θ\theta+\theta^{\prime} is the multiset given by (θ+θ)(x)=θ(x)+θ(x)(\theta+\theta^{\prime})(x)=\theta(x)+\theta^{\prime}(x) for all xXx\in X, and for kk\in{\mathbb{N}} the multiset kθk\cdot\theta is given by (kθ)(x)=kθ(x)(k\cdot\theta)(x)=k\cdot\theta(x) for all xXx\in X. The difference θθ\theta-\theta^{\prime} is given by (θθ)(x)=max{θ(x)θ(x),0}(\theta-\theta^{\prime})(x)=\max\{\theta(x)-\theta^{\prime}(x),0\} for all xXx\in X. We denote θθ\theta\leq\theta^{\prime} whenever θ(x)θ(x)\theta(x)\leq\theta^{\prime}(x) for all xXx\in X, and θ<θ\theta<\theta^{\prime} whenever θθ\theta\leq\theta^{\prime} and θθ\theta\neq\theta^{\prime}. The restriction θ|Z\theta|_{Z} of θ\theta to a subset ZXZ\subseteq X is given by θ|Z(x)=θ(x)\theta|_{Z}(x)=\theta(x) for xZx\in Z, and θ|Z(x)=0\theta|_{Z}(x)=0 otherwise. The size |θ||\theta| of θ\theta is given by xXθ(x)\sum_{x\in X}\theta(x). If f:XYf:X\to Y is a function then f(θ)f(\theta) is the multiset over YY such that f(θ)(y)=xf1(y)θ(x)f(\theta)(y)=\sum_{x\in f^{-1}(y)}\theta(x), for every yYy\in Y.

Step transition systems.

A step transition system over a finite set (of actions) AA is a triple 𝑇𝑆=(Q,𝒜,q0)\mathit{TS}=(Q,\mathcal{A},q_{0}), where: QQ is a set of nodes called states; 𝒜\mathcal{A} is the set of arcs, each arc being a triple (q,α,q)(q,\alpha,q^{\prime}) such that q,qQq,q^{\prime}\in Q are states and α\alpha is a multiset over AA; and q0Qq_{0}\in Q is the initial state. We may write q𝛼qq\xrightarrow{\alpha}q^{\prime} whenever (q,α,q)(q,\alpha,q^{\prime}) is an arc, and denote by

𝑡𝑠𝑆𝑡𝑒𝑝𝑠q={ααq:q𝛼q}\mathit{tsSteps}_{q}=\{\alpha\mid\alpha\neq\varnothing~\wedge~\exists q^{\prime}:~q\xrightarrow{\alpha}q^{\prime}\}

the set of nonempty steps enabled at a state qq in 𝑇𝑆\mathit{TS}. We additionally assume that:

  • if q𝛼qq\xrightarrow{\alpha}q^{\prime} and q𝛼q′′q\xrightarrow{\alpha}q^{\prime\prime} then q=q′′q^{\prime}=q^{\prime\prime} (i.e., 𝑇𝑆\mathit{TS} is deterministic);

  • for every state qQq\in Q, there is a path from q0q_{0} leading to qq;

  • for every action aAa\in A, there is an arc q𝛼qq\xrightarrow{\alpha}q^{\prime} in 𝑇𝑆\mathit{TS} such that aαa\in\alpha; and

  • for every state qQq\in Q, we have qqq\xrightarrow{\varnothing}q^{\prime} iff q=qq=q^{\prime}.

Let 𝑇𝑆=(Q,𝒜,q0)\mathit{TS}=(Q,\mathcal{A},q_{0}) be a step transition system over a set of actions AA, and 𝑇𝑆=(Q,𝒜,q0)\mathit{TS}^{\prime}=(Q^{\prime},\mathcal{A}^{\prime},q^{\prime}_{0}) be a step transition system over a set of actions AA^{\prime}. 𝑇𝑆\mathit{TS} and 𝑇𝑆\mathit{TS}^{\prime} are isomorphic if there are two bijections, ϕ:AA\phi:A\to A^{\prime} and ν:QQ\nu:Q\to Q^{\prime}, such that ν(q0)=q0\nu(q_{0})=q^{\prime}_{0} and, for all states q,qQq,q^{\prime}\in Q and multisets α\alpha over AA:

(q,α,q)𝒜(ν(q),ϕ(α),ν(q))𝒜.(q,\alpha,q^{\prime})\in\mathcal{A}~~~\Longleftrightarrow~~~(\nu(q),\phi(\alpha),\nu(q^{\prime}))\in\mathcal{A}^{\prime}\;.

We denote this by 𝑇𝑆ϕ,ν𝑇𝑆\mathit{TS}\sim_{\phi,\nu}\mathit{TS}^{\prime} or 𝑇𝑆𝑇𝑆\mathit{TS}\sim\mathit{TS}^{\prime}.

Petri nets.

A Place/Transition net (or pt-net) is specified as a tuple 𝑃𝑇=(P,T,W,M0)\mathit{PT}=(P,T,W,M_{0}), where: PP and TT are finite disjoint sets of respectively places and transitions; W:(T×P)(P×T)W:(T\times P)\cup(P\times T)\rightarrow{\mathbb{N}} is the arc weight function; and M0:PM_{0}:P\rightarrow{\mathbb{N}} is the initial marking (in general, any multiset of places is a marking). We assume that, for each transition tt, there is at least one place pp such that W(p,t)>0W(p,t)>0. In diagrams, such as that in Figure 1, places are drawn as circles, and transitions as boxes. If W(x,y)1W(x,y)\geq 1, then (x,y)(x,y) is an arc leading from xx to yy. An arc is annotated with its weight if the latter is greater than one. A marking MM is represented by drawing in each place pp exactly M(p)M(p) tokens (small black dots).

𝚙1a\mathtt{p}^{a}_{1}𝚙1b\mathtt{p}^{b}_{1}𝚙1c\mathtt{p}^{c}_{1}𝚝1𝚛13\mathtt{t}^{\mathtt{r}_{13}}_{1}𝚝1𝚛11\mathtt{t}^{\mathtt{r}_{11}}_{1}𝚝1𝚛12\mathtt{t}^{\mathtt{r}_{12}}_{1}𝚙2a\mathtt{p}^{a}_{2}  𝚙2b\mathtt{p}^{b}_{2}  𝚙2c\mathtt{p}^{c}_{2}𝚝2𝚛21\mathtt{t}^{\mathtt{r}_{21}}_{2}𝚝2𝚛22\mathtt{t}^{\mathtt{r}_{22}}_{2}𝚙3a\mathtt{p}^{a}_{3}𝚙3b\mathtt{p}^{b}_{3}𝚙3c\mathtt{p}^{c}_{3}𝚝3𝚛31\mathtt{t}^{\mathtt{r}_{31}}_{3}2\mathit{2}
Figure 1: A pt-net.

A step UU of 𝑃𝑇\mathit{PT} is a multiset of transitions. Its pre-multiset and post-multiset of places, Phys.Rev.EU{\rm Phys.~Rev.~E}{U} and U{{U}}^{\bullet}, are respectively given by

Phys.Rev.EU(p)=tUU(t)W(p,t)andU(p)=tUU(t)W(t,p),{\rm Phys.~Rev.~E}{U}(p)=\sum_{t\in U}U(t)\cdot W(p,t)~~~\mbox{and}~~~{{U}}^{\bullet}(p)=\sum_{t\in U}U(t)\cdot W(t,p)\;,

for each place pp. For the pt-net in Figure 1 we have:

Phys.Rev.E{𝚝1𝚛11,𝚝1𝚛11,𝚝3𝚛31}={𝚙1b,𝚙1b,𝚙3a}and{𝚝1𝚛11,𝚝1𝚛11,𝚝3𝚛31}={𝚙1a,𝚙1a,𝚙1c,𝚙3a,𝚙3a,𝚙3c}.{\rm Phys.~Rev.~E}{\{\mathtt{t}^{\mathtt{r}_{11}}_{1},\mathtt{t}^{\mathtt{r}_{11}}_{1},\mathtt{t}^{\mathtt{r}_{31}}_{3}\}}=\{\mathtt{p}^{b}_{1},\mathtt{p}^{b}_{1},\mathtt{p}^{a}_{3}\}~\mbox{and}~{{\{\mathtt{t}^{\mathtt{r}_{11}}_{1},\mathtt{t}^{\mathtt{r}_{11}}_{1},\mathtt{t}^{\mathtt{r}_{31}}_{3}\}}}^{\bullet}=\{\mathtt{p}^{a}_{1},\mathtt{p}^{a}_{1},\mathtt{p}^{c}_{1},\mathtt{p}^{a}_{3},\mathtt{p}^{a}_{3},\mathtt{p}^{c}_{3}\}.

We distinguish two basic modes of execution of pt-nets. To start with, a step of transitions UU is free-enabled at a marking MM if Phys.Rev.EUM{\rm Phys.~Rev.~E}{U}\leq M. We denote this by M[U𝑓𝑟𝑒𝑒M[U\rangle_{\mathit{free}}, and then say that a free-enabled UU is max-enabled at MM if UU cannot be extended by a transition to yield a step which is free-enabled at MM, i.e., there is no tTt\in T such that M[U+{t}𝑓𝑟𝑒𝑒M[U+\{t\}\rangle_{\mathit{free}}. We denote this by M[U𝑚𝑎𝑥M[U\rangle_{\mathit{max}}. In other words, UU is free-enabled at MM if in each place there are sufficiently many tokens for the specified multiple occurrence of each of its transitions. Maximal concurrency (max-enabledness) means that extending UU would demand more tokens than MM supplies. For the pt-net in Figure 1 we have that, at the given marking M0M_{0}, the step {𝚝1𝚛12,𝚝2𝚛21}\{\mathtt{t}^{\mathtt{r}_{12}}_{1},\mathtt{t}^{\mathtt{r}_{21}}_{2}\} is free-enabled but not max-enabled, and {𝚝1𝚛11,𝚝1𝚛12,𝚝2𝚛21,𝚝2𝚛22}\{\mathtt{t}^{\mathtt{r}_{11}}_{1},\mathtt{t}^{\mathtt{r}_{12}}_{1},\mathtt{t}^{\mathtt{r}_{21}}_{2},\mathtt{t}^{\mathtt{r}_{22}}_{2}\} is max-enabled.

For each mode of execution 𝔪{𝑓𝑟𝑒𝑒,𝑚𝑎𝑥}\mathfrak{m}\in\{\mathit{free},\mathit{max}\}, a step UU which is 𝔪\mathfrak{m}-enabled at a marking MM can be 𝔪\mathfrak{m}-executed leading to the marking MM^{\prime} given by M=MPhys.Rev.EU+UM^{\prime}=M-{\rm Phys.~Rev.~E}{U}+{{U}}^{\bullet}. We denote this by M[U𝔪MM[U\rangle_{\mathfrak{m}}M^{\prime}. For the pt-net in Figure 1 we have

M0[{𝚝1𝚛12,𝚝2𝚛21}𝑓𝑟𝑒𝑒{𝚙1b,𝚙1b,𝚙2b,𝚙2b,𝚙2c,𝚙2c,𝚙3a}.M_{0}[\{\mathtt{t}^{\mathtt{r}_{12}}_{1},\mathtt{t}^{\mathtt{r}_{21}}_{2}\}\rangle_{\mathit{free}}\{\mathtt{p}^{b}_{1},\mathtt{p}^{b}_{1},\mathtt{p}^{b}_{2},\mathtt{p}^{b}_{2},\mathtt{p}^{c}_{2},\mathtt{p}^{c}_{2},\mathtt{p}^{a}_{3}\}\;.

Petri nets with localities.

pt-nets are a general model of concurrent computation. To capture the compartmentisation of membrane systems, [13] adds explicit localities to transitions. Though not necessary from a modelling point of view, we associate in this paper — only for notational convenience — also each place with a locality.

A pt-net with localities (or ptl-net) is a tuple 𝑃𝑇𝐿=(P,T,W,,M0){\mathit{PTL}}=(P,T,W,\ell,M_{0}) such that (P,T,W,M0)(P,T,W,M_{0}) is a pt-net, and \ell is a location mapping for the transitions and places. Whenever (x)=(z)\ell(x)=\ell(z), we call xx and zz co-located. In diagrams, nodes representing co-located transitions and/or places will be shaded in the same way, as shown in Figure 2.

𝚙1a\mathtt{p}^{a}_{1}𝚙1b\mathtt{p}^{b}_{1}𝚙1c\mathtt{p}^{c}_{1}𝚝1𝚛13\mathtt{t}^{\mathtt{r}_{13}}_{1}𝚝1𝚛11\mathtt{t}^{\mathtt{r}_{11}}_{1}𝚝1𝚛12\mathtt{t}^{\mathtt{r}_{12}}_{1}𝚙2a\mathtt{p}^{a}_{2}  𝚙2b\mathtt{p}^{b}_{2}  𝚙2c\mathtt{p}^{c}_{2}𝚝2𝚛21\mathtt{t}^{\mathtt{r}_{21}}_{2}𝚝2𝚛22\mathtt{t}^{\mathtt{r}_{22}}_{2}𝚙3a\mathtt{p}^{a}_{3}𝚙3b\mathtt{p}^{b}_{3}𝚙3c\mathtt{p}^{c}_{3}𝚝3𝚛31\mathtt{t}^{\mathtt{r}_{31}}_{3}2\mathit{2}
Figure 2: A ptl-net corresponding to a basic membrane system, where (xiz)=i\ell(x^{z}_{i})=i, for each node of the form xizx^{z}_{i}. Note that, e.g., transitions 𝚝1𝚛11\mathtt{t}^{\mathtt{r}_{11}}_{1}, 𝚝1𝚛12\mathtt{t}^{\mathtt{r}_{12}}_{1} and 𝚝1𝚛13\mathtt{t}^{\mathtt{r}_{13}}_{1} are co-located.

Co-locating transitions leads to one more way of enabling for steps of transitions. We say that a step UU of 𝑃𝑇𝐿{\mathit{PTL}} is lmax-enabled at a marking MM if M[U𝑓𝑟𝑒𝑒M[U\rangle_{\mathit{free}} and UU cannot be extended by a transition co-located with a transition in UU to yield a step which is free-enabled at MM; i.e., there is no tTt\in T such that (t)(U)\ell(t)\in\ell(U) and M[U+{t}𝑓𝑟𝑒𝑒M[U+\{t\}\rangle_{\mathit{free}}. We denote this by M[U𝑙𝑚𝑎𝑥M[U\rangle_{\mathit{lmax}}, and then denote the lmax-execution of UU by M[U𝑙𝑚𝑎𝑥MM[U\rangle_{\mathit{lmax}}M^{\prime}, where M=MPhys.Rev.EU+UM^{\prime}=M-{\rm Phys.~Rev.~E}{U}+{{U}}^{\bullet}. Note that locally maximal (lmax) concurrency is similar to maximal concurrency, but now only active localities111 By active localities of a step UU we mean the localities of transitions present in UU. cannot execute further transitions. For the ptl-net in Figure 2 we have that {𝚝1𝚛11,𝚝1𝚛12}\{\mathtt{t}^{\mathtt{r}_{11}}_{1},\mathtt{t}^{\mathtt{r}_{12}}_{1}\} is lmax-enabled at the given marking, but {𝚝1𝚛11}\{\mathtt{t}^{\mathtt{r}_{11}}_{1}\} is not.

Let 𝔪{𝑓𝑟𝑒𝑒,𝑚𝑎𝑥,𝑙𝑚𝑎𝑥}\mathfrak{m}\in\{\mathit{free},\mathit{max},\mathit{lmax}\} be a mode of execution of a ptl-net 𝑃𝑇𝐿{\mathit{PTL}}. Then an 𝔪\mathfrak{m}-step sequence is a finite sequence of 𝔪\mathfrak{m}-executions starting from the initial marking, and an 𝔪\mathfrak{m}-reachable marking is any marking resulting from the execution of such a sequence. Moreover, the 𝔪\mathfrak{m}-concurrent reachability graph of 𝑃𝑇𝐿{\mathit{PTL}} is the step transition system:

𝐶𝑅𝐺𝔪(𝑃𝑇𝐿)=([M0𝔪,{(M,U,M)M[M0𝔪M[U𝔪M},M0),\mathit{CRG}_{\mathfrak{m}}({\mathit{PTL}})=\Big{(}~[M_{0}\rangle_{\mathfrak{m}}~,~\big{\{}(M,U,M^{\prime})\mid M\in[M_{0}\rangle_{\mathfrak{m}}\;\wedge\;M[U\rangle_{\mathfrak{m}}M^{\prime}\big{\}}~,~M_{0}~\Big{)}\;,

where [M0𝔪[M_{0}\rangle_{\mathfrak{m}} is the set of all 𝔪\mathfrak{m}-reachable markings which are the nodes of the graph; M0M_{0} is the initial node; and the arcs between the nodes are labelled by 𝔪\mathfrak{m}-executed steps of transitions. Concurrent reachability graphs provide complete representations of the dynamic behaviour of ptl-nets evolving according to the chosen mode of execution.

Membrane structures.

A membrane structure μ\mu (of degree m1m\geq 1) is given by a rooted tree with mm nodes identified with the integers 1,,m1,\ldots,m. We will write (i,j)μ(i,j)\in\mu or i=𝑝𝑎𝑟𝑒𝑛𝑡(j)i=\mathit{parent}(j) to indicate that there is an edge from ii (parent) to jj (child) in the tree of μ\mu, and iμi\in\mu means that ii is a node of μ\mu. The nodes of a membrane structure represent nested membranes which in turn determine compartments (compartment ii is enclosed by membrane ii and lies in-between ii and its children, if any), as shown in Figure 3.

We will say that a ptl-net 𝑃𝑇𝐿=(P,T,W,,M0){\mathit{PTL}}=(P,T,W,\ell,M_{0}) is spanned over the membrane structure μ\mu if :PTμ\ell:P\cup T\to\mu and the following hold, for all pPp\in P and tTt\in T:

  • if W(p,t)>0W(p,t)>0 then (p)=(t)\ell(p)=\ell(t); and

  • if W(t,p)>0W(t,p)>0 then (p)=(t)\ell(p)=\ell(t) or ((p),(t))μ(\ell(p),\ell(t))\in\mu or ((t),(p))μ(\ell(t),\ell(p))\in\mu.

The ptl-net of Figure 2 is spanned over the membrane structure depicted in Figure 3.

1  2  3
𝟏\mathbf{1}𝟐\mathbf{2}𝟑\mathbf{3}
Figure 3: A membrane structure (m=3m=3) and its compartments with 1 being the root node, (1,2)μ(1,2)\in\mu and 1=𝑝𝑎𝑟𝑒𝑛𝑡(3)1=\mathit{parent}(3).

Basic membrane systems.

Let VV be a finite alphabet of names of objects (or molecules) and let μ\mu be a membrane structure of degree mm. A basic membrane system (over VV and μ\mu) is a tuple

𝐵𝑀𝑆=(V,μ,w10,,wm0,R1,,Rm){\mathit{BMS}}=(V,\mu,w_{1}^{0},\ldots,w_{m}^{0},R_{1},\ldots,R_{m})

such that, for every membrane ii, wi0w_{i}^{0} is a multiset of objects from VV, and RiR_{i} is a finite set of evolution rules associated with membrane (compartment) ii. Each evolution rule rRir\in R_{i} is of the form r:𝑙ℎ𝑠r𝑟ℎ𝑠rr:\mathit{lhs}^{r}\to\mathit{rhs}^{r}, where 𝑙ℎ𝑠r\mathit{lhs}^{r} (the left hand side of rr) is a nonempty multiset over VV, and 𝑟ℎ𝑠r\mathit{rhs}^{r} (the right hand side of rr) is a multiset over

V{a𝑜𝑢𝑡aV}{ainjaVand(i,j)μ}.V\cup\{a_{\mathit{out}}\mid a\in V\}\cup\{a_{{in}_{j}}\mid a\in V~and~(i,j)\in\mu\}\;.

Here a symbol ainja_{{in}_{j}} represents an object aa that is sent to a child node (compartment) jj and a𝑜𝑢𝑡a_{\mathit{out}} means that aa is sent to the parent node. If ii is the root of μ\mu then no indexed object of the form a𝑜𝑢𝑡a_{\mathit{out}} belongs to 𝑟ℎ𝑠r\mathit{rhs}^{r}. A configuration of 𝐵𝑀𝑆{\mathit{BMS}} is a tuple

C=(w1,,wm)C=(w_{1},\ldots,w_{m})

of multisets of objects, and C0=(w10,,wm0)C_{0}=(w_{1}^{0},\ldots,w_{m}^{0}) is the initial configuration. Figure 4 shows a basic membrane system over the membrane structure depicted in Figure 3.

𝟏\mathbf{1}𝟐\mathbf{2}𝟑\mathbf{3}{a,b}𝚛11:{b}{a}𝚛12:{a}{b,c𝑖𝑛2,a𝑖𝑛3}𝚛13:{b}{c,a𝑖𝑛3}\mbox{\Large$\{a,b\}$}~~~~~~~\begin{array}[]{l}\mbox{\small$\mathtt{r}_{11}:~\{b\}\rightarrow\{a\}$}\\ \mbox{\small$\mathtt{r}_{12}:~\{a\}\rightarrow\{b,c_{\mathit{in}_{2}},a_{\mathit{in}_{3}}\}$}\\ \mbox{\small$\mathtt{r}_{13}:~\{b\}\rightarrow\{c,a_{\mathit{in}_{3}}\}$}\end{array}{a,b,c,c}𝚛21:{a,c}{b}𝚛22:{b}{a}\begin{array}[]{l}\mbox{\hskip-8.5359pt\Large$\{a,b,c,c\}$}\\[5.69054pt] \mbox{\small$\mathtt{r}_{21}:~\{a,c\}\rightarrow\{b\}$}\\ \mbox{\small$\mathtt{r}_{22}:~\{b\}\rightarrow\{a\}$}\end{array}𝚛31:{a}{a,a,c,c𝑜𝑢𝑡}\begin{array}[]{l}\mbox{\hskip-8.5359pt\Huge$\varnothing$}\\[5.69054pt] \mbox{\small$\mathtt{r}_{31}:~\{a\}\rightarrow\{a,a,c,c_{\mathit{out}}\}$}\end{array}
Figure 4: Basic membrane system 𝐵𝑀𝑆0{\mathit{BMS}}_{0}.

A membrane system evolves from configuration to configuration as a consequence of the application of evolution rules. There are different execution modes ranging from fully synchronous — as many applications of rules as possible — to sequential — a single application of a rule at a time. Here, similarly as in the case of ptl-nets, we distinguish three modes, all based on the notion of a vector multi-rule.

A vector multi-rule of 𝐵𝑀𝑆{\mathit{BMS}} is a tuple 𝐫=𝐫1,,𝐫m\mathbf{r}=\langle\mathbf{r}_{1},\ldots,\mathbf{r}_{m}\rangle where, for each membrane ii of μ\mu, 𝐫i\mathbf{r}_{i} is a multiset of rules from RiR_{i}. For such a vector multi-rule, we denote by 𝑙ℎ𝑠i𝐫\mathit{lhs}_{i}^{\mathbf{r}} the multiset

rRi𝐫i(r)𝑙ℎ𝑠r\sum_{r\in R_{i}}\mathbf{r}_{i}(r)\cdot\mathit{lhs}^{r}

in which all objects in the left hand sides of the rules in 𝐫i\mathbf{r}_{i} are accumulated, and by rhsi𝐫rhs_{i}^{\mathbf{r}} the multiset

rRi𝐫i(r)𝑟ℎ𝑠r\sum_{r\in R_{i}}\mathbf{r}_{i}(r)\cdot\mathit{rhs}^{r}

of all (indexed) objects in the right hand sides. The first multiset specifies how many objects are needed in each compartment for the simultaneous execution of all the instances of evolution rules in 𝐫\mathbf{r}.

A vector multi-rule 𝐫\mathbf{r} of 𝐵𝑀𝑆{\mathit{BMS}} is

  • free-enabled at a configuration CC if 𝑙ℎ𝑠i𝐫wi\mathit{lhs}_{i}^{\mathbf{r}}\leq w_{i}, for each ii.

Moreover, a free-enabled vector multi-rule 𝐫=𝐫1,,𝐫m\mathbf{r}=\langle\mathbf{r}_{1},\ldots,\mathbf{r}_{m}\rangle is:

  • max-enabled if no 𝐫i\mathbf{r}_{i} can be extended to a vector multi-rule which is free-enabled at CC; and

  • lmax-enabled if no nonempty 𝐫i\mathbf{r}_{i} can be extended to a vector multi-rule which is free-enabled at CC.

For example, in Figure 4,

  • ,,{𝚛31}\langle\varnothing,\varnothing,\{\mathtt{r}_{31}\}\rangle is not free-enabled;

  • {𝚛11,𝚛12},,\langle\{\mathtt{r}_{11},\mathtt{r}_{12}\},\varnothing,\varnothing\rangle is lmax-enabled but not max-enabled; and

  • {𝚛11,𝚛12},{𝚛21,𝚛22},\langle\{\mathtt{r}_{11},\mathtt{r}_{12}\},\{\mathtt{r}_{21},\mathtt{r}_{22}\},\varnothing\rangle is max-enabled.

If 𝐫\mathbf{r} is free-enabled (𝑓𝑟𝑒𝑒\mathit{free}) at a configuration CC, then CC has in each membrane ii enough copies of objects for the application of the multiset of evolution rules 𝐫i\mathbf{r}_{i}. Maximal concurrency (𝑚𝑎𝑥\mathit{max}) requires that adding any extra rule makes 𝐫\mathbf{r} demand more objects than CC can provide. Locally maximal concurrency (𝑙𝑚𝑎𝑥\mathit{lmax}) is similar but in this case only those compartments which have rules in 𝐫\mathbf{r} cannot enable any more rules; in other words, each compartment either uses no rule, or uses a maximal multiset of rules.

The effect of the rules is independent of the mode of execution 𝔪{𝑓𝑟𝑒𝑒,𝑚𝑎𝑥,𝑙𝑚𝑎𝑥}\mathfrak{m}\in\{\mathit{free},\mathit{max},\mathit{lmax}\}. A vector multi-rule 𝐫\mathbf{r} which is 𝔪\mathfrak{m}-enabled at CC can 𝔪\mathfrak{m}-evolve to a configuration C=(w1,wm)C^{\prime}=(w^{\prime}_{1},\ldots w^{\prime}_{m}) such that, for each ii and object aa:

wi(a)=wi(a)𝑙ℎ𝑠i𝐫(a)+𝑟ℎ𝑠i𝐫(a)+𝑟ℎ𝑠𝑝𝑎𝑟𝑒𝑛𝑡(i)𝐫(aini)+i=𝑝𝑎𝑟𝑒𝑛𝑡(j)𝑟ℎ𝑠j𝐫(a𝑜𝑢𝑡)w^{\prime}_{i}(a)=w_{i}(a)-\mathit{lhs}_{i}^{\mathbf{r}}(a)+\mathit{rhs}_{i}^{\mathbf{r}}(a)+\mathit{rhs}_{\mathit{parent}(i)}^{\mathbf{r}}(a_{{in}_{i}})+\!\!\!\!\!\!\sum_{i=\mathit{parent}(j)}\!\!\!\!\!\!\mathit{rhs}_{j}^{\mathbf{r}}(a_{\mathit{out}})

where 𝑟ℎ𝑠𝑝𝑎𝑟𝑒𝑛𝑡(i)𝐫=\mathit{rhs}_{\mathit{parent}(i)}^{\mathbf{r}}=\varnothing if ii is the root of μ\mu. We denote this by C𝔪𝐫CC\stackrel{{\scriptstyle\mathbf{r}}}{{\longrightarrow}}_{\mathfrak{m}}C^{\prime}. Moreover, an 𝔪\mathfrak{m}-computation is a finite sequence of 𝔪\mathfrak{m}-evolutions starting from the initial configuration; any configuration which can be obtained through such a computation is called 𝔪\mathfrak{m}-reachable. For the basic membrane system depicted in Figure 4 we have, for example:

C0{𝚛11,𝚛12},,𝑙𝑚𝑎𝑥({a,b},{a,b,c,c,c},{a}),{𝚛21,𝚛22},𝑙𝑚𝑎𝑥({a,b},{a,b,c,c},{a}).C_{0}\xrightarrow{\langle\{\mathtt{r}_{11},\mathtt{r}_{12}\},\varnothing,\varnothing\rangle}_{\mathit{lmax}}(\{a,b\},\{a,b,c,c,c\},\{a\})\xrightarrow{\langle\varnothing,\{\mathtt{r}_{21},\mathtt{r}_{22}\},\varnothing\rangle}_{\mathit{lmax}}(\{a,b\},\{a,b,c,c\},\{a\})\;.

Let 𝔪{𝑓𝑟𝑒𝑒,𝑚𝑎𝑥,𝑙𝑚𝑎𝑥}\mathfrak{m}\in\{\mathit{free},\mathit{max},\mathit{lmax}\} be a mode of execution of a basic membrane system 𝐵𝑀𝑆{\mathit{BMS}}. Then the 𝔪\mathfrak{m}-concurrent reachability graph of 𝐵𝑀𝑆{\mathit{BMS}} is given by:

𝐶𝑅𝐺𝔪(𝐵𝑀𝑆)=([C0𝔪,{(C,𝐫1++𝐫m,C)C[C0𝔪C𝐫1,,𝐫m𝔪C},C0),\mathit{CRG}_{\mathfrak{m}}({\mathit{BMS}})=\Big{(}~[C_{0}\rangle_{\mathfrak{m}}~,~\big{\{}(C,\mathbf{r}_{1}+\ldots+\mathbf{r}_{m},C^{\prime})\mid C\in[C_{0}\rangle_{\mathfrak{m}}\;\wedge\;C\xrightarrow{\langle\mathbf{r}_{1},\ldots,\mathbf{r}_{m}\rangle}_{\mathfrak{m}}C^{\prime}\big{\}}~,~C_{0}~\Big{)}\;,

where [C0𝔪[C_{0}\rangle_{\mathfrak{m}} is the set of all 𝔪\mathfrak{m}-reachable configurations which are the nodes of the graph; C0C_{0} is the initial node; and the arcs between the nodes are labelled by multisets of evolution rules involved in the 𝔪\mathfrak{m}-executed vector multi-rules.222 Though it may be that rules from different membranes are the same in terms of the multisets defining their left hand and right hand sides, we assume here that evolution rules associated with different membranes can be distinguished, e.g., by giving them each their own name (an injective label). Similarly as in the case of ptl-nets, concurrent reachability graphs capture completely the dynamic behaviour of basic membrane system evolving according to the chosen mode of execution.

3 Membrane Systems and Petri Nets

There is a natural way of translating a basic membrane system 𝐵𝑀𝑆=(V,μ,w10,,wm0,R1,,Rm){\mathit{BMS}}=(V,\mu,w_{1}^{0},\ldots,w_{m}^{0},R_{1},\ldots,R_{m}) over a membrane structure μ\mu into a behaviourally equivalent ptl-net 𝑃𝑇𝐿(𝐵𝑀𝑆)=(P,T,W,,M0){\mathit{PTL}}({\mathit{BMS}})=(P,T,W,\ell,M_{0}) spanned over the same membrane structure. In the constructed net, places represent objects present inside compartments, and transitions represent evolution rules. Both places and transitions are associated with membranes and this information is represented by the location mapping.

The constructed ptl-net 𝑃𝑇𝐿(𝐵𝑀𝑆){\mathit{PTL}}({\mathit{BMS}}) has a separate place 𝚙ja\mathtt{p}_{j}^{a} with (𝚙ja)=j\ell(\mathtt{p}_{j}^{a})=j, for each object aa and membrane jj, and a separate transition 𝚝ir\mathtt{t}_{i}^{r} with (𝚝ir)=i\ell(\mathtt{t}_{i}^{r})=i, for each rule rr in compartment ii.

The initial marking inserts wj0(a)w_{j}^{0}(a) tokens into each place 𝚙ja\mathtt{p}_{j}^{a}. The connectivity between transition t=𝚝irt=\mathtt{t}_{i}^{r} and place p=𝚙jap=\mathtt{p}_{j}^{a} is given by:

W(p,t)={𝑙ℎ𝑠r(a)if i=j0otherwise,W(p,t)=\makebox[140.0pt][l]{$\left\{\begin{array}[]{ll}\mathit{lhs}^{r}(a)&\mbox{if $i=j$}\\ 0&\mbox{otherwise}\;,\end{array}\right.$}

as well as:

W(t,p)={𝑟ℎ𝑠r(a)if i=jrhsr(a𝑜𝑢𝑡)if j=𝑝𝑎𝑟𝑒𝑛𝑡(i)𝑟ℎ𝑠r(ainj)if i=𝑝𝑎𝑟𝑒𝑛𝑡(j)0otherwise.W(t,p)=\makebox[140.0pt][l]{$\left\{\begin{array}[]{ll}\mathit{rhs}^{r}(a)&\mbox{if $i=j$}\\ rhs^{r}(a_{\mathit{out}})&\mbox{if $j=\mathit{parent}(i)$}\\ \mathit{rhs}^{r}(a_{{in}_{j}})&\mbox{if $i=\mathit{parent}(j)$}\\ 0&\mbox{otherwise}\;.\end{array}\right.$}

Figure 2 shows the result of the above translation for the basic membrane system in Figure 4. Note that it immediately follows from the construction that the ptl-net 𝑃𝑇𝐿(𝐵𝑀𝑆){\mathit{PTL}}({\mathit{BMS}}) is spanned over μ\mu.

The ptl-net 𝑃𝑇𝐿(𝐵𝑀𝑆){\mathit{PTL}}({\mathit{BMS}}) provides a faithful representation of the behaviour of the basic membrane system 𝐵𝑀𝑆{\mathit{BMS}}. To capture this very close relationship, we define two bijective mappings, ν\nu and ρ\rho, which allow us to move between 𝐵𝑀𝑆{\mathit{BMS}} and 𝑃𝑇𝐿(𝐵𝑀𝑆){\mathit{PTL}}({\mathit{BMS}}):

  • for every marking MM of 𝑃𝑇𝐿(𝐵𝑀𝑆){\mathit{PTL}}({\mathit{BMS}}), ν(M)=(w1,,wm)\nu(M)=(w_{1},\ldots,w_{m}) is the configuration of 𝐵𝑀𝑆{\mathit{BMS}} given by wi(a)=M(𝚙ia)w_{i}(a)=M(\mathtt{p}_{i}^{a}), for every object aa and every ii.

  • for every step UU of 𝑃𝑇𝐿(𝐵𝑀𝑆){\mathit{PTL}}({\mathit{BMS}}), ρ(U)=𝐫1,,𝐫m\rho(U)=\langle\mathbf{r}_{1},\ldots,\mathbf{r}_{m}\rangle is the vector multi-rule of 𝐵𝑀𝑆{\mathit{BMS}} given by 𝐫i(r)=U(𝚝ir)\mathbf{r}_{i}(r)=U(\mathtt{t}_{i}^{r}), for every rule rRir\in R_{i} and every ii.

It is then possible to establish a direct relationship between (the operation of) the original membrane system and the ptl-net resulting from the above translation at the system level:

C𝔪𝐫Cν1(C)[ρ1(𝐫)𝔪ν1(C)M[U𝔪Mν(M)𝔪ρ(U)ν(M)\begin{array}[]{lcl}C\stackrel{{\scriptstyle\mathbf{r}}}{{\longrightarrow}}_{\mathfrak{m}}C^{\prime}&\Longrightarrow&\nu^{-1}(C)\;[\rho^{-1}(\mathbf{r})\rangle_{\mathfrak{m}}\;\nu^{-1}(C^{\prime})\\[5.69054pt] M[U\rangle_{\mathfrak{m}}M^{\prime}&\Longrightarrow&\nu(M)\;\stackrel{{\scriptstyle\rho(U)}}{{\longrightarrow}}_{\mathfrak{m}}\;\nu(M^{\prime})\end{array} (1)

for all modes of execution 𝔪{𝑓𝑟𝑒𝑒,𝑚𝑎𝑥,𝑙𝑚𝑎𝑥}\mathfrak{m}\in\{\mathit{free},\mathit{max},\mathit{lmax}\}, configurations CC of 𝐵𝑀𝑆{\mathit{BMS}} and markings MM of 𝑃𝑇𝐿(𝐵𝑀𝑆){\mathit{PTL}}({\mathit{BMS}}). Together with ν(M0)=C0\nu(M_{0})=C_{0}, this result means that the 𝔪\mathfrak{m}-step sequences of 𝑃𝑇𝐿(𝐵𝑀𝑆){\mathit{PTL}}({\mathit{BMS}}) faithfully represent 𝔪\mathfrak{m}-computations of 𝐵𝑀𝑆{\mathit{BMS}}, and the same applies to markings and configurations. Crucially, we obtain

Theorem 1

For each 𝔪{𝑓𝑟𝑒𝑒,𝑚𝑎𝑥,𝑙𝑚𝑎𝑥}\mathfrak{m}\in\{\mathit{free},\mathit{max},\mathit{lmax}\},

𝐶𝑅𝐺𝔪(𝑃𝑇𝐿(𝐵𝑀𝑆))ϕ,ν𝐶𝑅𝐺𝔪(𝐵𝑀𝑆),\mathit{CRG}_{\mathfrak{m}}({\mathit{PTL}}({\mathit{BMS}}))\sim_{\phi,\nu}\mathit{CRG}_{\mathfrak{m}}({\mathit{BMS}})\;,

where the mapping ν\nu is defined as above, and ϕ(𝚝ir)=r\phi(\mathtt{t}_{i}^{r})=r, for every transition 𝚝ir\mathtt{t}_{i}^{r} of 𝑃𝑇𝐿(𝐵𝑀𝑆){\mathit{PTL}}({\mathit{BMS}}).

The above theorem captures the very tight behavioural correspondence between 𝐵𝑀𝑆{\mathit{BMS}} and 𝑃𝑇𝐿(𝐵𝑀𝑆){\mathit{PTL}}({\mathit{BMS}}), allowing to apply analytical techniques developed for Petri nets in the analysis of membrane systems. For example, one can employ the invariant analysis based on linear algebra [27], or use the causality semantics approach of Petri nets based on occurrence nets, as first outlined in [13]. In this paper, we show how techniques used to synthesise Petri nets could be employed in order to construct basic membrane systems from their intended behaviours as represented by step transition systems. First, however, we provide a translation from ptl-nets spanned over membrane structures to basic membrane systems.

Let 𝑃𝑇𝐿=(P,T,W,,M0){\mathit{PTL}}=(P,T,W,\ell,M_{0}) be a ptl-net spanned over a membrane structure μ\mu. For such a ptl-net, we construct the corresponding basic membrane system 𝐵𝑀𝑆(𝑃𝑇𝐿){\mathit{BMS}}({\mathit{PTL}}) over μ\mu in the following way:

  • PP is the set of objects;

  • the initial configuration is ν(M0)\nu^{\prime}(M_{0}) where, for every marking MM of 𝑃𝑇𝐿{\mathit{PTL}},

    ν(M)=(M|1(1)P,,M|1(m)P);\nu^{\prime}(M)=(M|_{\ell^{-1}(1)\cap P},\ldots,M|_{\ell^{-1}(m)\cap P})\;;
  • each transition tTt\in T with t={p1,,pk}{{t}}^{\bullet}=\{p^{1},\ldots,p^{k}\} has a corresponding evolution rule ϕ(t)\phi^{\prime}(t) of the form t:Phys.Rev.Et{a1,,ak}t:{\rm Phys.~Rev.~E}{t}\to\{a_{1},\ldots,a_{k}\} where, for i=1,,ki=1,\ldots,k,

    ai={piif (pi)=(t)p𝑜𝑢𝑡iif (pi)=𝑝𝑎𝑟𝑒𝑛𝑡((t))p𝑖𝑛(pi)iif (t)=𝑝𝑎𝑟𝑒𝑛𝑡((pi))a_{i}=\left\{\begin{array}[]{ll}p^{i}&\mbox{if }\ell(p^{i})=\ell(t)\\[2.84526pt] p^{i}_{\mathit{out}}&\mbox{if }\ell(p^{i})=\mathit{parent}(\ell(t))\\[2.84526pt] p^{i}_{\mathit{in}_{\ell(p^{i})}}&\mbox{if }\ell(t)=\mathit{parent}(\ell(p^{i}))\end{array}\right.
  • for each membrane iμi\in\mu, the set of evolution rules is given by Ri={ϕ(t)(t)=i}R_{i}=\{\phi^{\prime}(t)\mid\ell(t)=i\}.

Again, the translation results in a very close behavioural correspondence.

Theorem 2

For each 𝔪{𝑓𝑟𝑒𝑒,𝑚𝑎𝑥,𝑙𝑚𝑎𝑥}\mathfrak{m}\in\{\mathit{free},\mathit{max},\mathit{lmax}\},

𝐶𝑅𝐺𝔪(𝑃𝑇𝐿)ϕ,ν𝐶𝑅𝐺𝔪(𝐵𝑀𝑆(𝑃𝑇𝐿)),\mathit{CRG}_{\mathfrak{m}}({\mathit{PTL}})\sim_{\phi^{\prime},\nu^{\prime}}\mathit{CRG}_{\mathfrak{m}}({\mathit{BMS}}({\mathit{PTL}}))\;,

where the mappings ϕ\phi^{\prime} and ν\nu^{\prime} are defined as above.

It follows from Theorems 1 and 2 that the problem of synthesis of basic membrane systems from step transition systems is equivalent to the problem of synthesis of ptl-nets spanned over membrane structures. It therefore suffices to solve the latter, and in the next section we describe a solution based on the notion of a region of a step transition system.

4 Synthesising nets corresponding to membrane systems

The Petri net synthesis problem we consider is formulated as follows.

Problem 1

Given are a finite set TT, a membrane structure μ\mu, a mapping :Tμ\ell:T\to\mu, 𝔪{𝑓𝑟𝑒𝑒,𝑚𝑎𝑥,𝑙𝑚𝑎𝑥}\mathfrak{m}\in\{\mathit{free},\mathit{max},\mathit{lmax}\}, and 𝑇𝑆=(Q,𝒜,q0)\mathit{TS}=(Q,\mathcal{A},q_{0}) which is a finite step transition system over TT.
Construct a ptl-net 𝑃𝑇𝐿=(P,T,,M0){\mathit{PTL}}=(P,T,\ell,M_{0}) spanned over μ\mu such that 𝐶𝑅𝐺𝔪(𝑃𝑇𝐿)𝑇𝑆\mathit{CRG}_{\mathfrak{m}}({\mathit{PTL}})\sim\mathit{TS}, and \ell is an extension of the mapping defined for TT.

As demonstrated in [5], synthesis problems like Problem 1 can be solved using techniques coming from the theory of regions of transition systems (see, e.g., [2, 8, 19]). Intuitively, a region represents a single place in a hypothetical net generating the given transition system. Regions are used both to check whether a net satisfying the conditions can be constructed and, if the answer turns out to be positive, to construct such net.

In this particular case, a region of the step transition system 𝑇𝑆\mathit{TS} consists of three mappings

𝑟𝑒𝑔=(σ:Q,ı:T,ω:T)\mathit{reg}=\big{(}~\sigma:Q\rightarrow{\mathbb{N}}~,~\imath:T\rightarrow{\mathbb{N}}~,~\omega:T\rightarrow{\mathbb{N}}~\big{)} (2)

such that, for every arc q𝛼qq\xrightarrow{\alpha}q^{\prime} of 𝑇𝑆\mathit{TS},

σ(q)ω(α)andσ(q)=σ(q)ω(α)+ı(α).\sigma(q)\geq\omega(\alpha)~~~\mbox{and}~~~\sigma(q^{\prime})=\sigma(q)-\omega(\alpha)+\imath(\alpha)\;. (3)

Here ω(α)=tTα(t)ω(t)\omega(\alpha)=\sum_{t\in T}\alpha(t)\cdot\omega(t) and similarly ı(α)=tTα(t)ı(t)\imath(\alpha)=\sum_{t\in T}\alpha(t)\cdot\imath(t). In a region of the form (2) representing a place pp, σ(q)\sigma(q) is the number of tokens in pp in the marking corresponding to the node qq, ω(t)\omega(t) represents the weight of the arc from pp to transition tt, and ı(t)\imath(t) represents the weight of the arc from tt to pp. It is then natural to require in (3) that pp contains enough tokens not to block a step α\alpha executed at qq, and also to ensure that the number of tokens in pp before and after executing α\alpha is consistent with the total arc weight of the step α\alpha in relation to pp.

In the case of Problem 1, one also needs to take into account the fact that the target ptl-net must be spanned over μ\mu. This imposes additional constraints on allowed regions (places) and the location mapping \ell. We call a region 𝑟𝑒𝑔\mathit{reg} as in (2) with a location (𝑟𝑒𝑔)μ\ell(\mathit{reg})\in\mu compatible with the membrane structure μ\mu if the following hold, for every tTt\in T:

  • if ω(t)>0\omega(t)>0 then (t)=(𝑟𝑒𝑔)\ell(t)=\ell(\mathit{reg}); and

  • if ı(t)>0\imath(t)>0 then (t)=(𝑟𝑒𝑔)\ell(t)=\ell(\mathit{reg}) or ((t),(𝑟𝑒𝑔))μ(\ell(t),\ell(\mathit{reg}))\in\mu or ((𝑟𝑒𝑔),(t))μ(\ell(\mathit{reg}),\ell(t))\in\mu.

The set of all such regions will be denoted by 𝐏μ\mathbf{P}_{\mu}. Note that if 𝑟𝑒𝑔\mathit{reg} is such that ω(t)>0\omega(t)>0, for at least one tTt\in T, then (𝑟𝑒𝑔)\ell(\mathit{reg}) is uniquely determined; otherwise we always choose (𝑟𝑒𝑔)\ell(\mathit{reg}) to be the membrane which is higher up in the tree structure of μ\mu than any other suitable candidate. As a result, we can leave (𝑟𝑒𝑔)\ell(\mathit{reg}) implicit.

Finally, Problem 1 should be feasible in the sense that the transition system 𝑇𝑆\mathit{TS} can be realised by a suitable net. There are two necessary and sufficient conditions for realisability (see [5, 18]):

  • state separation: for every pair of distinct states of the transition system there is a region (a marked place) distinguishing between them; and

  • forward closure: there are sufficiently many places defined by regions of the transition system to disallow steps not present in the transition system.

First we describe how all places can be found that potentially provide a solution to Problem 1; in other words, all the regions (2) of the transition system 𝑇𝑆\mathit{TS} which are compatible with μ\mu.

Finding compatible regions.

Let TT, μ\mu, :Tμ\ell:T\to\mu and 𝑇𝑆=(Q,𝒜,q0)\mathit{TS}=(Q,\mathcal{A},q_{0}) be as in Problem 1. Assume that Q={q0,,qh}Q=\{q_{0},\ldots,q_{h}\} and T={t1,,tn}T=\{t_{1},\ldots,t_{n}\}. We use three vectors of non-negative variables:

𝐱\displaystyle\mathbf{x} =x0xh\displaystyle=x_{0}\ldots x_{h} 𝐲\displaystyle\mathbf{y} =y1yn\displaystyle=y_{1}\ldots y_{n} 𝐳\displaystyle\mathbf{z} =z1zn.\displaystyle=z_{1}\ldots z_{n}\;.

We also denote 𝐩=𝐱𝐲𝐳\mathbf{p}=\mathbf{x}\mathbf{y}\mathbf{z} and define a homogeneous linear system

𝒫:{xiα𝐳xj=xi+α(𝐲𝐳)for all qi𝛼qj in 𝑇𝑆\mathcal{P}~:~\left\{\begin{array}[]{ll}x_{i}\geq\alpha\cdot\mathbf{z}\\ x_{j}=x_{i}+\alpha\cdot(\mathbf{y}-\mathbf{z})\end{array}\mbox{for all $q_{i}\xrightarrow{\alpha}q_{j}$ in $\mathit{TS}$}\right.

where α𝐳\alpha\cdot\mathbf{z} denotes α(t1)z1++α(tn)zn\alpha(t_{1})\cdot z_{1}+\cdots+\alpha(t_{n})\cdot z_{n} and similarly for α(𝐲𝐳)\alpha\cdot(\mathbf{y}-\mathbf{z}).

The regions (2) of 𝑇𝑆\mathit{TS} are then determined by the integer solutions 𝐩\mathbf{p} of the system 𝒫\mathcal{P} assuming that, for 0ih0\leq i\leq h and 1jn1\leq j\leq n,

σ(qi)\displaystyle\sigma(q_{i}) =xi\displaystyle=x_{i} ı(tj)\displaystyle\imath(t_{j}) =yj\displaystyle=y_{j} ω(tj)\displaystyle\omega(t_{j}) =zj\displaystyle=z_{j}

The set of rational solutions of 𝒫\mathcal{P} forms a polyhedral cone in h+2n+1\mathbb{Q}^{h+2n+1}. As described in [4], one can effectively compute finitely many integer generating rays 𝐩1,,𝐩k\mathbf{p}^{1},\ldots,\mathbf{p}^{k} of this cone such that any integer solution 𝐩\mathbf{p} of 𝒫\mathcal{P} can be expressed as a linear combination of the rays with non-negative rational coefficients:

𝐩=l=1kcl𝐩l.\mathbf{p}=\sum_{l=1}^{k}c_{l}\cdot\mathbf{p}^{l}\;.

Such rays 𝐩l\mathbf{p}^{l} are fixed and (some of them) turned into net places if Problem 1 has a solution. More precisely, if 𝐩l\mathbf{p}^{l} is included in the constructed net, then

M0(𝐩l)\displaystyle M_{0}(\mathbf{p}^{l}) =x0l\displaystyle=x^{l}_{0} W(𝐩l,ti)\displaystyle W(\mathbf{p}^{l},t_{i}) =zil\displaystyle=z^{l}_{i} W(ti,𝐩l)\displaystyle W(t_{i},\mathbf{p}^{l}) =yil,\displaystyle=y^{l}_{i}\;, (4)

where M0M_{0} is the initial marking of the target net, and tiTt_{i}\in T.

Clearly, not all such rays can be considered for the inclusion in the net being constructed, as the corresponding regions have to be compatible with μ\mu. We therefore ensure through a simple check that the generating rays 𝐩1,,𝐩k\mathbf{p}^{1},\ldots,\mathbf{p}^{k} are compatible with μ\mu, deleting in the process those which are not. Note that any 𝐩𝐏μ\mathbf{p}\in\mathbf{P}_{\mu} is a non-negative linear combination of rays compatible with μ\mu.

Having found the generating rays compatible with μ\mu, we proceed to check whether Problem 1 has any solutions at all.

Checking state separation.

Let 𝑇𝑆=(Q,𝒜,q0)\mathit{TS}=(Q,\mathcal{A},q_{0}) be as in Problem 1. We take in turn each pair of distinct states, qiq_{i} and qjq_{j}, of QQ and decide whether there exists 𝐩=(σ,ı,ω)𝐏μ\mathbf{p}=(\sigma,\imath,\omega)\in\mathbf{P}_{\mu} with coefficients c1,,ckc_{1},\ldots,c_{k} such that σ(qi)=xixj=σ(qj)\sigma(q_{i})=x_{i}\neq x_{j}=\sigma(q_{j}). Since the latter is equivalent to

l=1kclxill=1kclxjl,\sum_{l=1}^{k}c_{l}\cdot x_{i}^{l}\neq\sum_{l=1}^{k}c_{l}\cdot x_{j}^{l}\;,

one can simply check whether there exists at least one 𝐩l\mathbf{p}^{l} (called a witness [7]) such that xilxjlx_{i}^{l}\neq x_{j}^{l}.

Checking forward closure.

Again, let 𝑇𝑆=(Q,𝒜,q0)\mathit{TS}=(Q,\mathcal{A},q_{0}) be as in Problem 1, and 𝔪{𝑓𝑟𝑒𝑒,𝑚𝑎𝑥,𝑙𝑚𝑎𝑥}\mathfrak{m}\in\{\mathit{free},\mathit{max},\mathit{lmax}\}. First, we take in turn each state qiq_{i} of QQ, and calculate the set of region enabled steps, denoted by 𝑟𝑒𝑔𝑆𝑡𝑒𝑝𝑠qi\mathit{regSteps}_{q_{i}}. Intuitively, region enabled steps are those that cannot be disabled (or blocked) by compatible regions.

To build 𝑟𝑒𝑔𝑆𝑡𝑒𝑝𝑠qi\mathit{regSteps}_{q_{i}} one only needs to consider nonempty steps α\alpha with |α|m𝑀𝑎𝑥|\alpha|\leq m\cdot\mathit{Max}, where 𝑀𝑎𝑥\mathit{Max} is the maximum size of steps labelling arcs in 𝑇𝑆\mathit{TS}, and mm is the number of membranes of μ\mu. The reason is that, for each membrane iμi\in\mu there exists a compatible region (σ,ı,ω)𝐏μ(\sigma,\imath,\omega)\in\mathbf{P}_{\mu} (called a witness) such that σ(Q)={𝑀𝑎𝑥}\sigma(Q)=\{\mathit{Max}\} and, for every tTt\in T,

ω(t)=ι(t)={1if (t)=i0otherwise.\omega(t)=\iota(t)=\left\{\begin{array}[]{ll}1&\mbox{if }\ell(t)=i\\ 0&\mbox{otherwise}\;.\end{array}\right.

Taken together, all such regions block any step α\alpha with |α|>m𝑀𝑎𝑥|\alpha|>m\cdot\mathit{Max}.

For each nonempty step α\alpha with |α|m𝑀𝑎𝑥|\alpha|\leq m\cdot\mathit{Max} it is the case that α𝑟𝑒𝑔𝑆𝑡𝑒𝑝𝑠qi\alpha\notin\mathit{regSteps}_{q_{i}} iff for some 𝐩𝐏μ\mathbf{p}\in\mathbf{P}_{\mu} with coefficients c1,,ckc_{1},\ldots,c_{k} we have xi<α𝐳x_{i}<\alpha\cdot\mathbf{z}. Since the latter is equivalent to

l=1kcl(xilα𝐳l)<0,\sum_{l=1}^{k}c_{l}\cdot(x_{i}^{l}-\alpha\cdot\mathbf{z}^{l})<0\;,

one simply checks whether there exists at least one 𝐩l\mathbf{p}^{l} (again called a witness) such that xilα𝐳l<0x_{i}^{l}-\alpha\cdot\mathbf{z}^{l}<0.

Having determined the region enabled steps, in order to establish forward closure we need to verify that, for every state qQq\in Q,

𝑡𝑠𝑆𝑡𝑒𝑝𝑠q={𝑟𝑒𝑔𝑆𝑡𝑒𝑝𝑠qif 𝔪=𝑓𝑟𝑒𝑒{α𝑟𝑒𝑔𝑆𝑡𝑒𝑝𝑠q¬tT:α+{t}𝑟𝑒𝑔𝑆𝑡𝑒𝑝𝑠q}if 𝔪=𝑚𝑎𝑥{α𝑟𝑒𝑔𝑆𝑡𝑒𝑝𝑠q¬tT:α+{t}𝑟𝑒𝑔𝑆𝑡𝑒𝑝𝑠q(t)(α)}if 𝔪=𝑙𝑚𝑎𝑥.\mathit{tsSteps}_{q}=\left\{\begin{array}[]{ll}\mathit{regSteps}_{q}&\mbox{if }\mathfrak{m}=\mathit{free}\\[2.84526pt] \{\alpha\in\mathit{regSteps}_{q}\mid\neg\exists t\in T:~\alpha+\{t\}\in\mathit{regSteps}_{q}\}&\mbox{if }\mathfrak{m}=\mathit{max}\\[2.84526pt] \{\alpha\in\mathit{regSteps}_{q}\mid\neg\exists t\in T:~\alpha+\{t\}\in\mathit{regSteps}_{q}~\wedge~\ell(t)\in\ell(\alpha)\}&\mbox{if }\mathfrak{m}=\mathit{lmax}\;.\end{array}\right.

Constructing the solution net.

If the above checks for the feasibility of Problem 1 are successful, one can construct a solution ptl-net spanned over μ\mu by taking all the witness rays and regions, and treating them as places in the way indicated in (4). The resulting net 𝑃𝑇𝐿{\mathit{PTL}} satisfies

𝐶𝑅𝐺𝔪(𝑃𝑇𝐿)𝑇𝑆.\mathit{CRG}_{\mathfrak{m}}({\mathit{PTL}})\sim\mathit{TS}\;.

5 Concluding remarks

We have described how one can adapt a solution to the Petri net synthesis problem based on regions of step transition systems, so that the resulting method can be used to construct basic membrane systems with a specific behaviour. Moreover, there are other synthesis results developed for Petri nets which can be employed to extend the proposed solution in several directions, two of which are briefly mentioned below.

In Problem 1 it is assumed that the association of transitions with membranes is given. This can be relaxed and one can aim at synthesising membrane systems without such an association, or even without being given a membrane structure (in such a case, the synthesis procedure should construct a membrane structure as well). For such a modification, there already exist results which can be used to develop a solution. More precisely, the method of ‘discovering’ localities in [18] works for ptl-nets with localised conflicts (where transitions which share an input place are co-located). Since all ptl-nets spanned over membrane structures have localised conflicts, the result in [18] can be adapted to work for basic membrane systems.

Evolution rules of membrane systems are often equipped with promoters and inhibitors. Both features have direct counterparts in Petri nets in the form of activator and inhibitor arcs, and suitable translations between membrane systems and Petri nets can be developed as described in [10, 15]. Moreover, the synthesis technique based on regions of step transition systems works also for ptl-nets extended with activator and inhibitor arcs [17]. In fact, there is a general setting of so-called τ\tau-nets and corresponding τ\tau-regions [2, 5]. Here the parameter τ\tau is a general and convenient way of capturing different types of connections (arcs and their combinations) between places and transitions, removing the need to re-state and re-prove the key results every time a new kind arcs is introduced. Note that the recently introduced set-nets [14, 15] (with qualitative rather than quantitative resource management) and set membrane systems [11] can be treated within the general theory of τ\tau-net synthesis based on regions of transition systems [12].

Acknowledgements

This paper is based on an invited talk presented at the 6th Workshop on Membrane Computing and Biologically Inspired Process Calculi (MeCBIC), 8th September 2012, Newcastle upon Tyne, United Kingdom. The reported research was supported by the Epsrc Gaels project.

References

  • [1]
  • [2] E.Badouel and Ph.Darondeau: Theory of Regions. In: Reisig, W., Rozenberg, G. (eds.): Lectures on Petri Nets I: Basic Models, Advances in Petri Nets. Lecture Notes in Computer Science 1491. Springer-Verlag, Berlin Heidelberg New York (1998) 529–586, 10.1007/3-540-65306-6_22
  • [3] L.Bernardinello: Synthesis of Net Systems In: Marsan, M.A. (ed.): Application and Theory of Petri Nets 1993. Lecture Notes in Computer Science 691. Springer-Verlag, Berlin Heidelberg New York (1993) 89–105, 10.1007/3-540-56863-8_42
  • [4] N.Chernikova: Algorithm for Finding a General Formula for the Non-negative Solutions of a System of Linear Inequalities. USSR Computational Mathematics and Mathematical Physics 5 (1965) 228–233
  • [5] P.Darondeau, M.Koutny, M.Pietkiewicz-Koutny and A.Yakovlev: Synthesis of Nets with Step Firing Policies. Fundamenta Informaticae 94 (2009) 275–303
  • [6] J.Desel and G.Juhas: What Is a Petri Net? Lecture Notes in Computer Science 2128, Springer-Verlag (2001) 1–25, 10.1007/3-540-45541-8_1
  • [7] J.Desel and W.Reisig: The Synthesis Problem of Petri Nets. Acta Informatica 33 (1996) 297–315, 10.1007/s002360050046
  • [8] A.Ehrenfeucht and G.Rozenberg: Partial 2-structures; Part I: Basic Notions and the Representation Problem, and Part II: State Spaces of Concurrent Systems. Acta Informatica 27 (1990) 315–368, 10.1007/BF00264611, 10.1007/BF00264612
  • [9] J.Kleijn and M.Koutny: Processes of Membrane Systems with Promoters and Inhibitors. Theoretical Computer Science 404 (2008) 112–126, 10.1016/j.tcs.2008.04.006
  • [10] J.Kleijn and M.Koutny: Petri Nets and Membrane Computing. In: [23] (2010) 389–412
  • [11] J.Kleijn and M.Koutny: Membrane Systems with Qualitative Evolution Rules. Fundamenta Informaticae 110 (2011) 217–230, 10.3233/FI-2011-539
  • [12] J.Kleijn, M.Koutny, M.Pietkiewicz-Koutny and G.Rozenberg: Step Semantics of Boolean Nets. Acta Informatica (2012), 10.1007/s00236-012-0170-2
  • [13] J.Kleijn, M.Koutny and G.Rozenberg: Process Semantics for Membrane Systems. Journal of Automata, Languages and Combinatorics 11 (2006) 321–340
  • [14] J.Kleijn, M.Koutny and G.Rozenberg: Modelling Reaction Systems with Petri Nets. BioPPN 2011, CEUR Workshop Proceedings, 724 2011 36–52
  • [15] J.Kleijn, M.Koutny and G.Rozenberg: Petri Nets for Biologically Motivated Computing. Scientific Annals of Computer Science 21 (2011) 199–225
  • [16] I.Koch, W.Reisig and F.Schreiber: Modeling in Systems Biology — The Petri Net Approach. Springer Verlag (2010)
  • [17] M.Koutny and M.Pietkiewicz-Koutny: Synthesis of Elementary Net Systems with Context Arcs and Localities. Fundamenta Informaticae 88 (2008) 307–328
  • [18] M.Koutny and M.Pietkiewicz-Koutny: Synthesis of Petri Nets with Localities. Scientific Annals of Computer Science 19 (2009) 1–23
  • [19] M.Mukund: Petri Nets and Step Transition Systems. International Journal of Foundations of Computer Science 3 (1992) 443–478, 10.1142/S0129054192000231
  • [20] G.Păun: Computing with Membranes. J. Comput. Syst. Sci. 61 (2000) 108–143, 10.1006/jcss.1999.1693
  • [21] G.Păun: Membrane Computing, An Introduction. Springer-Verlag, Berlin Heidelberg New York (2002)
  • [22] G.Păun and G.Rozenberg: A Guide to Membrane Computing. Theoretical Computer Science 287 (2002) 73–100, 10.1016/S0304-3975(02)00136-6
  • [23] G.Păun, G.Rozenberg and A.Salomaa: The Oxford Handbook of Membrane Computing. Oxford University Press (2010)
  • [24] C.A.Petri: Kommunikation mit Automaten. PhD Thesis (1962)
  • [25] M.Pietkiewicz-Koutny: The Synthesis Problem for Elementary Net Systems with Inhibitor Arcs. Fundamenta Informaticae 40 (1999) 251–283
  • [26] W.Reisig and G.Rozenberg (eds.): Lectures on Petri Nets. Lecture Notes in Computer Science 1491,1492 (1998), 10.1007/3-540-65306-6_19
  • [27] M.Silva, E.Teruel and J.M.Colom: Linear Algebraic and Linear Programming Techniques for the Analysis of Place/Transition Net Systems. Lecture Notes in Computer Science, Springer-Verlag 1491 (1998) 309–373, 10.1007/3-540-65306-6_19