Wisniewski Karatkevich Adamski Costa Gomes 18 07920333

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

IEEE TRANSACTIONS ON CONTROL SYSTEMS TECHNOLOGY, VOL. 26, NO.

2, MARCH 2018 575

Prototyping of Concurrent Control Systems


With Application of Petri Nets and
Comparability Graphs
Remigiusz Wiśniewski, Andrei Karatkevich, Marian Adamski,
Anikó Costa, Member, IEEE, and Luís Gomes, Senior Member, IEEE

Abstract— This paper shows a novel prototyping technique for Moreover, most of the known methods extract all possible
concurrent control systems described by interpreted Petri nets. components of decomposition; thus, a subsequent selection
The technique is based on the decomposition of an interpreted from the obtained components is required [58].
Petri net into concurrent sequential automata. In general, min-
imum decomposition requires runtime that is exponential in A new prototyping method for the concurrent control
the number of Petri net places. We show that in many cases, systems described by the Petri nets is presented in this
including the real-life ones, the minimum decomposition problem paper. The proposed method includes decomposition of a
can be solved in polynomial time. The proposed method allows system into concurrently executed sequential automata, called
implementing a concurrent control system using minimal number state machine components (SMCs) [38], [50]. Such an oper-
of sequential components, which requires polynomial time and
can be applied to most of the considered cases. The presented ation is performed with application of the perfect graph
concept is illustrated by a real-life industrial example of a theory [28], [45]. In most cases, the presented technique
beverage production and distribution machine implemented in makes it possible to obtain a state machine decomposition in
a field programmable gate array. polynomial time.
Index Terms— Comparability graphs, concurrent control sys- This paper is organized as follows. Section II introduces the
tems, field-programmable gate array (FPGA), Petri nets. preliminaries regarding comparability graphs and Petri nets.
Section III describes the role of decomposition in prototyping
I. I NTRODUCTION of the concurrent control systems. The main idea of the pro-

D IFFERENT kinds of concurrent control systems surround


us in everyday life. They can be met with transpo-
rtation [59], [62], medical care [1], [15], manufacturing [16],
posed method is shown in Section IV, while a supplementary
example is presented in Section V. Section VI presents the
results of experiments, and Section VII concludes this paper.
[34], [56], artificial intelligence and robotics [22], [48], secu-
rity and safety [25], [47], or even banking [23], [57]. Petri II. M AIN D EFINITIONS
nets are one of the popular forms of graphical representation Let us introduce the notations and definitions necessary
and specification of such systems [7], [35]. They turn out to to explain the idea of the proposed method. The notion of
be especially effective in the area of analysis, design, and a comparability graph and related notions will be presented.
verification of logic controllers [31], [54], [74]. Unique features of the comparability graphs are a key element
One of the most important steps in designing a logic of the prototyping method shown in this paper. Furthermore,
controller specified by a Petri net is the parallel decomposition Petri nets and related notions are presented in this section.
of the system [20]–[22], [48], [64]. Such decomposition is
not necessary when the reachability graph of a net is small A. Graphs and Comparability Graphs
enough to be implemented as a single state machine, but Definition 1 (Graph): A graph or undirected graph is
it turns to be important even for the relatively small nets defined by a pair [24]
with many parallel transitions, because of the state explosion.
G = (V, E) (1)
Unfortunately, the whole decomposition process in the general
case has exponential worst case time complexity [46], [68]. where
V = {v 1 , . . . , v n } nonempty set of vertices;
Manuscript received May 19, 2016; revised December 31, 2016 and
March 24, 2017; accepted April 1, 2017. Date of publication May 5, 2017; E = {E 1 , . . . , E m } set of unordered pairs of vertices, called
date of current version February 8, 2018. Manuscript received in final form edges.
April 2, 2017. Recommended by Associate Editor K. Rudie. (Corresponding An undirected edge incident with vertex u and vertex v is
author: Remigiusz Wiśniewski.)
R. Wiśniewski and A. Karatkevich are with the Institute of Electrical denoted by uv. Two vertices u and v are adjacent (neighbors)
Engineering, University of Zielona Góra, 65-417 Zielona Góra, Poland if they are connected by an edge. Ad j (v) denotes the set of
(e-mail: r.wisniewski@iee.uz.zgora.pl). all vertices adjacent to vertice v.
M. Adamski was with the University of Zielona Góra, 65-417 Zielona Góra,
Poland. Definition 2 (Digraph): A digraph (directed graph) is
A. Costa and L. Gomes are with the Faculty of Sciences and Technology, defined by a pair [5]
Nova University of Lisbon, 2829-516 Lisbon, Portugal.
Digital Object Identifier 10.1109/TCST.2017.2692204 D = (V, F) (2)
1063-6536 © 2017 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission.
See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
576 IEEE TRANSACTIONS ON CONTROL SYSTEMS TECHNOLOGY, VOL. 26, NO. 2, MARCH 2018

where Definition 11 (Incidence Matrix): For a Petri net N=


V ={v 1 , . . . , v n } finite, nonempty set of vertices; (P, T, B, M0 ) with n transitions and m places, the incidence
F={F1 , . . . , Fm } finite set of ordered pairs of vertices. matrix A = [aij] is an n × m matrix of integers, entries of
A directed edge is denoted by − →
uv, where u is the first vertex which are given by
and v is the second vertex of an edge. ⎧

⎨1, if (ti , p j ) ∈ B and ( p j , ti ) ∈
/ B
Definition 3 (Orientation): An orientation of an undirected
graph is an assignment of a direction to each edge, turning aij = −1, if ( p j , ti ) ∈ B and (ti , p j ) ∈ / B (4)


the initial graph into a digraph. Formally, an orientation is a 0, otherwise.
set of oriented edges.
Definition 12 (S-Invariant): An m-vector x is an
Definition 4 (Transitive Digraph): The digraph D =
(V, F) is transitive if, whenever − →
uv ∈ F and − →
vz ∈ F, − → S-invariant of Petri net N with incidence matrix A if
uz
Ax = 0. The set of places corresponding to nonzero entries
∈ F [32].
in an S-invariant such that x ≥ 0 is called support of the
Definition 5 (Graph Coloring): A graph coloring is an
invariant.
assignment of a color to each vertex, such that no two neighbor
Definition 13 (SM-Net): A state machine net (SM-net) is a
vertices share the same color. Minimum coloring is a graph
Petri net, such that each of its transitions has at most one
coloring using the minimal possible number of colors [24].
input place and at most one output place, i.e., ∀t ∈ T :
Definition 6 (Comparability Graph): An undirected graph
(| • t| ≤ 1) ∧ (|t • | ≤ 1).
G = (V, E) is a comparability graph if there exists an
If an SM-net has only one token in its initial marking, then
orientation of G, such that the resulting digraph D = (V, F)
it has one token in every reachable marking and can be seen
is transitive. Such orientation is called a transitive orienta-
as a Petri net without concurrency.
tion (TRO) of G [28].
Definition 14 (Strongly Connected Net): A Petri net
B. Petri Nets, Interpreted Petri Nets, and S=(P, T, B, M0 ) is strongly connected, if its underlying
Concurrency Relations graph [i.e., digraf D = (P ∪ T, B)] is strongly connected.
Definition 7: A Petri net is a four-tuple [50] Definition 15 (SM-Component): A Petri net S=
(P , T , B , M0 ) is an SMC of a Petri net N = (P, T, B, M0 ),
N = (P, T, B, M0 ) (3) if and only if the following holds.
where 1) S is an SM-net.
1) P finite, nonempty set of places; 2) P ⊆ P.
2) T finite, nonempty 3) T ={x|x ∈ T, ∃ p ∈ P : (( p, x) ∈ B ∨ (x, p) ∈ B)}.
 set of transitions; 4) ∀x∈(P ∪ T ), ∀y∈(P ∪ T ) :((x, y)∈B ⇔ (x, y)∈B ).
3) B ⊆ (P × T ) (T × P) finite set of arcs (directed
edges); 5) S is strongly connected.
4) M0 initial marking. 6) |M0 | = 1; M0 ⊆ M0 .
A union P ∪ T is a set of nodes of a Petri net. An SM-component is a strictly sequential subnet of a given
Sets of input and output places of a transition (according to net. If a net can be covered by a set of SM-components,
the relation B) are defined, respectively, as follows: •t = { p ∈ it means that it can be represented as a system of locally
P : ( p, t) ∈ B}, t• = { p ∈ P : (t, p) ∈ B}. Analogously, synchronized sequential processes.
the sets of input and output transitions of a place are denoted: Definition 16 (Concurrency Relation): Two places are con-
• p = {t ∈ T : (t, p) ∈ B}, p• = {t ∈ T : ( p, t) ∈ B}. current if they are both marked on some reachable marking.
A generalized denotation for the input and output elements The behavioral concurrency relation (or just concurrency rela-
of the sets is used: •S = {∀u : s ∈ S ∧ ∃ u : (u, s) ∈ B}, tion) || on the set of places P of a Petri net N=(P, T, B, M0 )
S• = {∀u : s ∈ S ∧ ∃ u : (s, u) ∈ B}. is the relation such that ( p, p ) ∈ || if there is a reachable
Definition 8 (Marking, Marked Place): The state of a marking M such that { p, p } ⊆ M. We use p|| p as a
Petri net can be seen as a distribution of tokens in the net shortened notation that means ( p, p ) ∈ ||.
places and is called marking. A marked place is such a place Definition 17 (Structural Concurrency Relation): The
that contains one or more tokens. A marking is changed by structural concurrency relation || A on the set of places P of
the firing of a transition (see Definition 10). Since only safe a Petri net N=(P, T, B, M0 ) is the smallest relation, such
nets are considered in this paper (see Definition 19), a marking that [40]
M is understood as a set of the marked places. 1) ∀ p, p ∈ P : ( p ∈ M0 ∧ p ∈ M0 ∧ p = p ) ⇒ ( p, p ) ∈
Definition 9 (Reachable Marking): A marking M is reach- || A ;
able from marking M, if M can be reached from M by 2) ∀t ∈ T ∀ p ∈ t • ∀ p ∈ t• : p = p ⇒ ( p, p ) ∈ || A ;
a sequence of transition firings. If M is not specified explicitly, 3) ∀ p ∈ P ∀t ∈ T : ((∀ p ∈ •t : ( p, p ) ∈ || A ) ⇒
a reachable marking of the net is understood as a marking that ⇒ (∀ p ∈ t• : ( p, p ) ∈ || A )).
can be reached from M0 . Structural concurrency between two places { pi , p j }∈P is
Definition 10 (Transition Firing): If every input place of a denoted as pi || A p j .
transition t contains a token, then t can be fired. Transition The structural concurrency relation is a superset of behav-
firing adds a token to each of its output places and removes a ioral concurrency relation, which, unlike the latter, can be com-
token from each of its input places. puted in polynomial time in the general case [39]. The intuition
WIŚNIEWSKI et al.: PROTOTYPING OF CONCURRENT CONTROL SYSTEMS 577

behind it is as follows: 1) all the places marked in the initial can be described by a separate parallel module (process),
marking are mutually concurrent; 2) every two places being which leads to a complex and difficult to manage description.
output for the same transition are concurrent, if the transition Alternatively, each sequential component can be described
can ever fire; and 3) if a place is concurrent with every by single process, which provides a more understandable
input place of a transition, it is structurally concurrent with description and which is relatively easy for analysis and
all of its output places. It is shown in [39] that every two implementation [31]. Apart from the above-mentioned reasons,
places, which are behaviorally concurrent, are also structurally decomposition is used in some methods of state encoding [14].
concurrent (but not always vice versa). Most of the Petri net decomposition methods are based
According to [39, Lemma 3.3], if || A is reflexive, the Petri on the preservation of properties and focus on net analysis.
net cannot be covered by SM-components. For example in [18], a decomposition method is presented
Definition 18 (Concurrency Graph): A concurrency graph based on shared places or shared transitions, demonstrating
(structural concurrency graph) of a Petri net that place invariants of the global model are the same as of
N = (P, T, B, M0 ) is a graph G C =(V, E), such that the decomposed model. However, the resulting subnets cannot
V = P and E = || (E = || A , correspondingly). be executed in a distributed way.
Definition 19 (Well-Formed Net): A Petri net N is live if Aybar and Iftar [3] propose a decomposition method based
for every reachable marking M and transition t of N, t can be on net structure analysis identifying overlapped sections. Over-
fired in M or in a marking reachable from M. A net is safe lapped places and transitions are repeated in all resulting
if there is no marking M, such that a place p ∈ P contains subnets.
more than one token. Other decomposition methods use input and output places
A Petri net is well formed if it is live and safe. for communication between the decomposed models [13],
Definition 20 (Interpreted Petri Net): An interpreted Petri [51], [72]. In [21], a functional decomposition method is
net is a well-formed Petri net, defined as a six-tuple [2], [53] proposed, based on the definition of a cutting set. The main
concern of this method is to maintain the same behavior
N = (P, T, B, M0 , X, Y ) (5) before and after decomposition. The interface between the
where decomposed components is always composed by transitions,
1) P finite, nonempty set of places; which communicate through output and input events. Common
2) T finite, nonempty firing rules are also preserved.
 set of transitions; An SM-decomposition of a Petri net N = (P, T, B, M0 )
3) B ⊆ (P × T ) (T × P) finite set of arcs;
4) M0 initial marking; can be obtained by means of a calculation of its binary
5) X={x 1 , x 2 , . . . , x m } finite set of logic inputs; S-invariants and by finding a cover of set P by their supports.
6) Y ={y1 , y2 , . . . , yn } finite set of logic outputs. The invariants can be obtained directly by finding the (0, 1)
solutions of the system of linear equations Ax = 0, where
Logic inputs and logic outputs are connected to the net as
A is the incidence matrix of N [50], or more efficiently,
follows. A Boolean function of the inputs is associated with
for example, using the Martinez–Silva algorithm [46]. Both
every transition of the net, and value 1 of the function is
approaches are easy to implement, but since the number of
a necessary condition of the transition firing. A subset of
S-invariants can be exponential in the number of Petri net
outputs (maybe empty) is associated with every place, and
places, generation of all SM-components requires exponential
an output has value 1, if and only if at least one of the
time and space in the worst case.
corresponding places is marked in the current marking.
However, it is not necessary to generate all SM-components
Note that as far as the prototyping process presented in this
to obtain an SM-decomposition. Indeed, it is enough to get
paper is based on the interpreted Petri nets, we suppose that
a set of the modified SM-components, such that each of
the considered nets are well formed.
them covers some places of the given Petri net and may
also contain the so-called nonoperational places (NOPs) [31],
III. D ECOMPOSITION IN D ESIGN OF C ONCURRENT [43], [69]. Such decomposition can be obtained by col-
C ONTROL S YSTEMS oring the concurrency graph of the Petri net [4]. Then,
The design process of a parallel control system specified by an SM-component can be constructed from the places, which
an interpreted Petri net usually includes its decomposition into obtain the same color, the transitions incident to them and,
sequential components [4], [30]. It may be required for several when necessary, the NOPs (a way of adding NOPs is explained
reasons. One of them is the situation in which a concurrent in Algorithm 4).
algorithm has to be executed by several microcontrollers or Given that minimum coloring of a graph is an NP-hard
processors, where each of them executes a sequential sub- problem, no known polynomial-time algorithm can calculate
process [21], [66]. This is not the case when the controller the coloring of a graph using the smallest possible number
is implemented in a field-programmable gate array (FPGA), of colors in the general case. Hence, it is reasonable to
since a parallel logical control algorithm can usually be apply the approximation coloring algorithms [24]. However,
implemented in a single FPGA device. However, configuration as shown in the following, in many practical cases, mini-
of an FPGA is usually specified using a hardware description mum decomposition of a concurrent control system and the
language (HDL), such as very high speed integrated circuits whole prototyping process can be performed in polynomial
HDL (VHDL) or Verilog. In those languages, a Petri net place time.
578 IEEE TRANSACTIONS ON CONTROL SYSTEMS TECHNOLOGY, VOL. 26, NO. 2, MARCH 2018

IV. I DEA OF THE P ROPOSED M ETHOD Algorithm 1 Computation of the Structural Concur-
The proposed method of prototyping of the concurrent rency Graph
control systems consists of the following steps.
1) Specification of the concurrent control system:
a) Specification by an interpreted Petri net N.
b) Optional: formal verification of the system.
c) Optional: reduction of the net N.
2) Decomposition of the Petri net N:
a) Computation of the structural concurrency graph
G C of N.
b) Obtaining a TRO of G C if it exists.
c) Minimum (optimal) coloring of G C if a TRO
exists (otherwise, another approach has to be
used, such as coloring using an approximation
algorithm).
d) Formation of the set S of decomposed components.
3) Modeling, validation, logic synthesis, and final imple-
mentation of the system in a programmable device.
We shall explain each of the above-mentioned stages in in [41] that for every Petri net, || ⊆ || A , and that for the well-
more detail. formed Extended Free-Choice-nets || = || A .
2) Obtaining a Transitive Orientation of the Structural
A. Specification of the System by an Interpreted Petri Net Concurrency Graph: This step is one of the essential stages
of the whole decomposition process. Existence of a TRO
Initially, the concurrent control system is specified by an in G C means that such a graph can be optimally colored
interpreted Petri net N. Such a specification allows further in polynomial time. Otherwise, the proposed method cannot
decomposition and implementation of the system in program- guarantee obtaining optimal decomposition and a different
mable devices. decomposition method ought to be selected.
At this stage, the Petri net model of concurrent controller The best known recognition algorithm uses a depth-first
can be additionally formally verified with the use of a model search (DFS). The set of graph vertices is split into the
checking technique [19], [26], [29]. Such a verification ensures subsets called implication classes by a recursive orientation
that the final system meets all the user-defined requirements. of subsequent edges [27]. At the beginning, an initial edge
Different aspects of formal verification are widely described is selected arbitrarily. Another idea is shown in [32], where
in the literature [9], [11], [17], [33], [44], [52], [55], [60]. lexicographic breadth-first search (BFS) is used. The algorithm
Reduction of the Petri net [8], [35], [50] can be used as a also partitions the set of vertices into the implication classes.
step simplifying its SM-decomposition [4]. Some details on Let us introduce an alternative version of recognition of a
this topic will be presented in Section V. comparability graph. The method shown in Algorithm 2 finds
the TRO F of an undirected graph G=(V, E). The algorithm
B. Decomposition of the Interpreted Petri Net explores further edges with the use of the BFS method. The
The decomposition process allows splitting the initial set F is supplied by the subsequent TROs, while an additional
net into the concurrent modules (SM-components). Each set X (a copy of E) holds unexplored edges. Let us point out
of the obtained components is further modeled indepen- that in contrast to the known methods, the proposed one does
dently (see Section IV-C). Note that at this stage of prototyping not split the set of graph vertices into implication classes, and
of a concurrent control system, input and output signals (sets it just retrieves a TRO of G C .
X and Y ) are not considered. An estimation of the computational complexity of
The proposed decomposition method consists of five steps. Algorithm 2 is as follows. Clearly, both outer loops (while..do
Let us describe each of them. and repeat..until) are executed |E| times for each edge of the
1) Computation of the Structural Concurrency Graph: graph. Each of the inner for each loops is executed for all
Based on the initial Petri net N, a structural concurrency graph the neighbor vertices. Therefore, their complexity is at most
G C is formed. Such a structure is obtained by the consecutive O(δ(G)), where δ(G) means the maximum degree of vertices
application of three rules presented in Definition 17. in G. Summarizing, we can formulate the following statement.
The method for obtaining the structural concurrency graph Statement 1: Comparability graph recognition and finding
G C for a Petri net N is shown in Algorithm 1. The idea is a TRO by Algorithm 2 can be done in O(|E|δ(G)) time.
taken from [39]. According to [39], computation of the struc- 3) Coloring of the Structural Concurrency Graph: Since the
tural concurrency relation || A of Petri net N = (P, T, B, M0 ) graph G C can be transitively oriented, its minimum coloring
is bounded by O((|P| + |T |)5 ). can be obtained in linear time [27]. Algorithm 3 uses the ideas
Note that a structural concurrency relation does not always of coloring of already oriented comparability graphs presented
coincide with a behavioral concurrency relation. It is shown in [27] and [45]. The algorithm recursively calls an additional
WIŚNIEWSKI et al.: PROTOTYPING OF CONCURRENT CONTROL SYSTEMS 579

Algorithm 2 Finding of a TRO in an Undirected Graph 4) Formation of the Set of the Decomposed Components:
Based on the colored graph, the set of components is formed.
Each set of places, which obtain the same color during
coloring of G C , refers to an SM-net S ∈ S, where S is a set
of components covering all the places of the Petri net. Such
set of places P ⊆ P of net N = (P, T, B, M0 ) generates
an SM-net S = (P , T , B , M0 ) as follows: T = {t ∈ T :
∃ p ∈ P : (t, p) ∈ B ∨ ( p, t) ∈ B}, B = {( p, t) : p ∈
P ∧ t ∈ T ∧ ( p, t) ∈ B} ∪ {(t, p) : p ∈ P ∧ t ∈ T ∧
(t, p) ∈ B}, M0 = M0 .
Note that there is a possibility that a particular component
S contains unconnected input or output transitions. Such
a situation is caused by the fact that some places of the
decomposed system are common to more than one component.
Coloring of a concurrency graph just groups vertices (places)
into separate sets, but does not assure common places for
different components. Therefore, additional NOPs ought to be
supplied to the components with unconnected input or output
transitions (we shall explain such a situation in more detail by
an example in Section V).
Algorithm 4 presents a method that supplements the com-
ponents with the NOPs. In addition, the algorithm verifies
whether the net can be properly decomposed and whether the
NOPs can be supplied.
Let us briefly explain the functionality of Algorithm 4.
The proposed method uses DFS, considering the structural
concurrency relation. Initially, strong connectedness of each
of the obtained components is checked. The method searches
for the unconnected transition outputs and the unconnected
Algorithm 3 Coloring of a Comparability Graph transition inputs. If there are such transitions in component S,
then S should be supplemented with the NOPs. For each
unconnected transition output, an adequate unconnected tran-
sition input is searched. If a proper input cannot be found,
then the net cannot be decomposed by means of the proposed
technique [such a situation may be caused by the differ-
ence between real and structural concurrency relations (see
Section IV-B1)].
Finally, an NOP is supplied to the component. Note that if
an NOP replaces at least one initially marked place, then it
should also be initially marked.
Let us estimate the computational complexity of
Algorithm 4. The outer for each loop is executed at
most |P| times, because each place p ∈ P belongs to only
function Coluor. Such a function simply orders all the graph one component S ∈ S. Executions of the inner for each
vertices by their height. The height of vertices strictly refers and while..do loops are disjoint; thus, we shall analyze their
to the TRO of a graph. Thus, it can be directly used for complexity separately.
the minimum coloring of a graph. At the bottom level (with The inner for each loop (lines 5–8) is executed at most
height/coluor equal to 1), there are sink vertices (vertices that |P| times and checks every transition at most twice; hence, its
have no outgoing arcs in relation F). The largest value of execution time is bounded by O(|P|+|T |). The while..do loop
height (color) is assigned to the vertices that have no incoming involves inner repeat..until and two for each loops. Clearly,
arcs. the for each loops (lines 37 and 38) are executed at most |T |
Clearly, the number of the recursive calls of function Color times. The repeat..until loop is performed at most |T | times,
is equal to |V |, and every arc is checked twice. There- since V holds all the transitions to be visited. It performs
fore, the computational complexity of the presented coloring a DFS with additional checking of the structural concurrency
method is bounded by O(|V | + |E|). relation, which can be executed in O((|P| + |T |)|P|) time.
If the structural concurrency graph is not a comparability Finally, the outer while..do loop is repeated for all the transi-
graph, then one of the approximation coloring algorithms tions in the set O; thus, it is bounded by O(|T |). Therefore,
should be used [42]. the execution of the whole while..do loop is bounded by
580 IEEE TRANSACTIONS ON CONTROL SYSTEMS TECHNOLOGY, VOL. 26, NO. 2, MARCH 2018

Algorithm 4 Supplementation of Components by NOPs 3) coloring of G C : O(|P|δ(G));


4) formation of the set S: O(|P|2 |T |2 (|P| + |T |)).
Let us conclude from the partial results the final statement
regarding computational complexity and applicability of the
proposed decomposition method.
Statement 3: Decomposition of a concurrent control system
specified by an interpreted Petri net based on the application
of comparability graphs can be done in O((|P| + |T |)5 ) time
if the following conditions are satisfied.
1) The structural concurrency graph of the net is transi-
tively orientable (see Section IV-B2).
2) The obtained components can be supplemented by
NOPs.
Analysis of numerous benchmarks demonstrates that most
of the parallel logical control algorithms satisfy the mentioned
conditions (see Section VI).

C. Modeling, Validation, Synthesis, and Final Implementation


After the system is decomposed, it should be modeled in
a HDL, such as Verilog [61] or VHDL [12], [75]. Each of the
achieved SMCs forms a separate finite state machine (FSM).
Therefore, each component is described independently. Please
note that proper synchronization of SMCs must be assured by
additional internal signals [21], [31], [48], [49], [66]. There are
no restrictions regarding language or style used to describe
the components; thus, they can be modeled as traditional
FSMs [6], or as microprogrammed controllers [67], depending
on the designer needs [65].
The decomposed system described in an HDL can be vali-
dated using a software simulation. Finally, the system is syn-
thesized and implemented in order to create a bit stream (that
is, a portion of data to be sent to configure an FPGA).

V. E XAMPLE
Let us illustrate the whole prototyping process by an
industrial example. We shall use a modified version of a
real-life concurrent control system, initially described in [63],
i.e., a beverage production and distribution machine presented
in Fig. 1.
The system works as follows. Initially, the machine remains
in an idle state. Pressing of a button on the operator console
(illustrated as input signal x 1 ) starts the production process.
Two valves (y1 and y2 ) are opened. Two containers (Con-
tainer 1 and Container 2) are filled with the liquid ingredients.
When the upper limit of Container 1 is reached (which
is signalized by sensor x 2 ), the liquid in this container is
warmed up (y4 ). Similarly, reaching of the upper bounds of
O(|P||T 2 |(|P| + |T |)). Now, we can formulate the following Container 2 (signalized by x 3 ) initializes the warm-up process
statement. of the second container (y5 ).
Statement 2: Supplementation of the decomposed compo- Simultaneously to the above-mentioned procedure, a cup is
nents with NOPs by Algorithm 2 takes time O(|P|2 |T |2 (|P|+ placed on the cart (y3 ), which is signalized by sensor x 4 . When
|T |)). the cup is placed, the cart moves to the left, until reaching the
From the above-mentioned analysis, the total computational leftmost position, indicated by sensor x 7 . The cup on the cart
complexity of the whole decomposition process can be calcu- is being warmed up (y11 ), waiting until the beverage is ready
lated. Let us recall all the partial results and their complexities: for distribution.
1) formation of the graph G C : O((|P| + |T |)5 ); When the liquid reaches the required temperature in any
2) TRO of G C : O(|E|δ(G)); of the containers (signalized by sensor x 5 for Container 1
WIŚNIEWSKI et al.: PROTOTYPING OF CONCURRENT CONTROL SYSTEMS 581

Fig. 1. Beverage production and distribution concurrent control system.

and x 6 for Container 2), the output valve of this container


is opened (outputs y8 and y9 , respectively). The ingredients
from both containers are mixed (output y7 ) in the third
one (Container 3). The process is controlled by a clock. When
the remaining time has elapsed (x 7 ) and additionally both
upper containers are empty (x 8 and x 9 ), the production is Fig. 2. Interpreted net N1 (beverage production and distribution system).
finished and the beverage is ready for distribution.
Finally, the output valve of Container 3 is opened (y10 )
and the liquid is poured to the cup located on the cart. When
the upper level of the cup is reached (sensor x 11 ), the cart
moves to the right (y12). The moment when the cart reaches
the appropriate position is signalized by the sensor x 12 . Then,
the cup is taken from the cart and the system returns to the
initial state.
An interpreted Petri net that specifies the described concur-
rent control system is shown in Fig. 2. There are 16 places
and 13 transitions in the net. There are 12 input signals and
13 output signals. The net is live and safe; therefore, it is well
formed.
To clarify the explanation of the proposed prototyping idea,
we shall use the reduction technique called fusion of series of
places [50]. Such an action simply joins the series of places Fig. 3. Reduced net N1 (left) and its concurrency graph G C1 (right).
into single macroplace, as presented in Fig. 3 (left). In the
presented example, there are eight macroplaces (denoted by Let us decompose N1 with the use of the proposed method.
the consecutive letters of the alphabet): macroplace a joins Initially, the structural concurrency graph G C1 is formed. Such
places p2 , p5 , and p8 , macroplace b includes p3, p6 , and p9, a graph is obtained according to Algorithm 1. The structural
and so on. The reduced net (denoted as N1 ) preserves the concurrency graph for the net N1 is shown in Fig. 3 (right).
properties of the initial net N; therefore, it is well formed. There are eight vertices in G C1 that refer to the places of N1 .
Note that reduction of N1 does not affect the results of After the structural concurrency graph is obtained,
decomposition. However, such a technique reduces the number Algorithm 2 is applied, which searches for a TRO F of the
of structural concurrency graph vertices and edges. More graph. We shall use the alphabetical order of the vertices to
general cases of the sets of places, which can be replaced clarify the presentation. Algorithm 2 starts with the edge ab,


by the macroplaces for simplifying analysis of the Petri nets, which is transitively oriented as ab. Further orientation of edge

− −

are described in [36] and [37]. ac forces orientation bc. Similarly, orientation of edges − →
ae
582 IEEE TRANSACTIONS ON CONTROL SYSTEMS TECHNOLOGY, VOL. 26, NO. 2, MARCH 2018

However, set S2 contains the unconnected arcs to transition


t7 and from t11 . Similarly, S3 also contains the unconnected
arcs (a gap between transitions t9 and t6 ), and so does S4
(a gap between transitions t8 and t1 ). At the beginning,
Algorithm 4 searches for such unconnected transitions. Two
sets are formed. The first one O={t8 , t10 , t11 } holds the
transitions with unconnected outgoing arcs. The second set
I ={t1 , t1 , t7 } contains the transitions with unconnected incom-
ing arcs. Note that t1 occurs twice in the set I . In the further
steps, the algorithm tries to pair the transitions, by matching
an output from O with an input from I . In our example,
Fig. 4. TRO of G C1 (left) and its minimum coloring (right). t8 is associated with t1 , t10 with t1 , and t11 with t7 . The
additional NOPs are inserted between the unconnected arcs,
as shown in Fig. 5 (right). Note that all three NOPs are
initially marked. Since all the elements from the set O have
been associated with the proper input transitions from I ,
Algorithm 4 finishes successfully. This means that the net has
been properly decomposed.
When the decomposition process is finished, all the
macroplaces in the obtained components are replaced by the
original places. This operation is a reversal of the reduction
process. The set of decomposed components consists of four
SMCs S={S1 , . . . , S4 } that contain the following places.
1) S1 ={ p1, p4 , p7 , p14 , p15, p16 }.
2) S2 ={ p12 , p13, NOP1 }.
3) S3 ={ p3, p6 , p9 , p10 , p11, NOP2 }.
4) S4 ={ p2 , p5 , p8 , NOP3 }.
Fig. 6 presents the results obtained during the decomposition
process. Let us briefly analyze them. The obtained components
split the concurrent system into four modules. Each of them
forms a sequential automaton. The first component (S1 ) mainly
controls the cart (its movement, warming-up of the cup placed
on the cart, and loading and unloading of the cup). The second
Fig. 5. Decomposed net N1 before and after execution of Algorithm 4. one is in charge of proper transferring of the liquid from
Container 3 to the cup on the cart. The two remaining

→ →

and a f forces orientation e f , and so on. Fig. 4 (left) presents modules are in response of proper functionality of Container 2
the final TRO of G C1 . (component S3 ) and Container 1 (S4 ). In addition, S3 controls
Since there exists a TRO in G C1 , such a graph can be mixing of the ingredients.
optimally colored by means of Algorithm 3. Let us present Next, each of the obtained SMCs is modeled independently
the coloring process in more detail. There are three sink in an HDL. In the presented example, Verilog language
vertices in the graph: c, f , and h. According to the proposed was used. All four modules were described as synchronous
algorithm, these sink vertices have the height equal to 1; automata. The clock signal (active high) synchronizes all the
thus, they receive the first color. Further computation assigns components, while reset returns them to the initial state (cor-
the second color to vertices e and g, since their height is equal responding to the initially marked places). The schema of the
to 2. Consequently, vertices d and b are colored by the third decomposed system is shown in Fig. 7. Note that decomposed
color, while the remaining vertex a achieves the last, fourth modules are synchronized by internal signals, according to the
color. In summary, coloring of G C1 results in four colors, algorithms presented in [66]. Such signals are left out of the
as presented in Fig. 4 (right). figures and diagrams in order to clarify the presentation of
The obtained colors split the set of vertices into four sets the proposed idea.
that correspond to the SMCs S={S1 , . . . , S4 }: S1 ={c, f, h}, The results of simulation of the system, performed by the
S2 ={e, g}, S3 ={b, d}, S4 ={a}. Fig. 5 (left) shows the current tool Active-HDL from Aldec, Inc., are shown in Fig. 8. The
step. Note that some of the input and output arcs of the behavior of the controller is represented by output signals
transitions in three of the components remain unconnected y1 , . . . , y13 , which are stimulated by the inputs x 1 , . . . , x 12 .
[Fig. 5(b)–(d) (left)]. The values of the signals are represented in a graphical
Let us now apply Algorithm 4 to finalize the decomposition form, as they change in time. For example, pressing of the
process. Clearly, the first net, shown in Fig. 5(a) (left), button (active signal x 1 ) starts the process and runs three
does not require any changes, since it forms a proper SMC. operations (y1 , y2 , and y3 ). After reaching the upper level
WIŚNIEWSKI et al.: PROTOTYPING OF CONCURRENT CONTROL SYSTEMS 583

Fig. 6. Decomposed interpreted net N1 .

Fig. 8. Simulation results of the decomposed system.


TABLE I
U TILIZATION OF THE FPGA R ESOURCES

was used. The device was selected due to its integration with
the board Nexys 4 DDR. The input values of the prototyped
beverage production machine (set X) were specified by the
integrated switches, while outputs (set Y ) were assigned to
the LEDs of the board. The clock signal was connected
to the internal source (450 MHz). The logic synthesis and
implementation were performed by the tool Xilinx ISE 14.7.
Table I shows the utilization of the implemented system.
Particular components were realized as FSMs according to
the Xilinx recommendations [70]. In addition, internal states
of FSMs were encoded using the gray code to optimize the
number of used logic blocks. Indeed, the number of occupied
Fig. 7. Schema of the system (the synchronization signals are not shown). slices was reduced by one element in comparison to the
traditional natural binary encoding.
of a particular container (x 2 and x 3 ), the warming-up of the
ingredients is launched (y4 and y5 ). Meanwhile, the cart is VI. R ESULTS OF E XPERIMENTS
moving to the left (y3) until reaching the required position (x 4 ), The effectiveness of the proposed idea has been veri-
and so on. fied experimentally. To perform this, 111 benchmarks were
Finally, the system was implemented in a programmable checked. The library of test modules contains safe Petri nets
device. The XC7A100T FPGA (Artix-7 family) from Xilinx that describe hypothetical and real devices, processes, and
584 IEEE TRANSACTIONS ON CONTROL SYSTEMS TECHNOLOGY, VOL. 26, NO. 2, MARCH 2018

TABLE II is, the execution time of the whole process, presented


R ESULTS OF E XPERIMENTS in Section IV-B.
Table II shows the results of performed experiments (only
benchmarks containing at least ten places are listed). The
particular columns contain the following values.
1) Benchmark is the name of a net (sometimes truncated).
2) |P| is the number of places in the net.
3) |T | is the number of transitions in the net.
4) Number of SMCs is the number of components in the
decomposition.
5) Number of NOPs is the number of supplied NOPs.
6) Time is the runtime of the whole process.
If the concurrency graph of the net is not a comparability
graph, the proposed method cannot decompose the net, so in
such cases, the number of SMCs is undetermined (−−).
The obtained results indicate that the structural concurrency
graph belongs to the class of comparability graphs in case of
94 benchmarks (out of 111). Furthermore, the NOPs cannot be
supplied for only two benchmarks. Such a situation was caused
by a difference between structural and behavioral concurrency
relations. Summarizing, 92 of the examined nets (83%) can
be prototyped with the use of the proposed method. In the
rest of the considered cases (17%), the concurrency graphs do
not belong to the class of comparability graphs; in such cases,
one of the known methods should be applied (e.g., described
in [10], [20]–[22], [31], [64], and [73]).
VII. C ONCLUSION
An idea for prototyping of concurrent control systems
specified by the interpreted Petri nets is presented in this paper.
The main advantage of the presented method is the obtaining
of minimum decomposition of a net into the sequential com-
ponents in polynomial time. The computational complexity of
the whole method is bounded by O((|P| + |T |)5 ).
The proposed technique applies comparability graph theory
and includes new algorithms. The method can be applied to the
nets with a concurrency graph belonging to the class of compa-
rability graphs. The performed experiments show that most of
the examined concurrent control systems satisfy this condition.
The main original contributions and results presented in this
paper can be summarized as follows:
1) the formulation of a novel algorithm for recognition of
comparability graphs (Algorithm 2), supplemented by
its computational complexity analysis;
2) the formulation of a novel supplementation algo-
rithm (Algorithm 4) of SMCs by NOPs and its com-
putational complexity analysis;
actions, such as a controller of a volumetric feeder, a sys- 3) the formulation of a novel polynomial time decomposi-
tem for a chemical reactor, a concrete mixer, a process for tion method of concurrent control systems specified by
picture frame manufacturing, a control system for a speed- the interpreted Petri nets and its computational complex-
way tournament, and so on. All the verified nets can ity analysis.
be found at: www.hippo.iee.uz.zgora.pl and gres.uninova.pt/ Future work is going to be directed to the application
IOPT-Tools/ (username: models and password: models), of the obtained results to prototyping of concurrent systems
where the source (reference), short description, inci- implemented as reconfigurable controllers. The newest FPGA
dence matrix, and graphical representation are presented devices offer a mechanism called partial reconfiguration that
for every net. The aim of the experiments was to allows reprogramming of selected portions of the system,
check the effectiveness of the proposed method, that without stopping the execution of the entire device [65], [71].
WIŚNIEWSKI et al.: PROTOTYPING OF CONCURRENT CONTROL SYSTEMS 585

Such a process requires decomposition of the controller, which [24] R. Diestel, Graph Theory, 4th ed. New York, NY, USA: Springer-Verlag,
can be handled by the method proposed in this paper. 2010.
[25] A. Ellis, “System and method for maintaining n number of simultaneous
ACKNOWLEDGMENT cryptographic sessions using a distributed computing environment,”
U.S. Patent 6 484 257, Nov. 19, 2002.
The authors would like to thank the Associate Editor and [26] E. A. Emerson, “The beginning of model checking: A personal perspec-
anonymous reviewers for their constructive comments and tive,” in 25 Years of Model Checking: History, Achievements, Perspec-
tives, O. Grumberg and H. Veith, Eds. Berlin, Germany: Springer-Verlag,
helpful suggestions. 2008, pp. 27–45.
R EFERENCES [27] M. C. Golumbic, “The complexity of comparability graph recognition
and coloring,” Computing, vol. 18, no. 3, pp. 199–208, 1977.
[1] P. S. Andrews and J. Timmis, “Inspiration for the next generation [28] M. C. Golumbic, Algorithmic Graph Theory and Perfect Graphs.
of artificial immune systems,” in Artificial Immune Systems. Berlin, New York, NY, USA: Academic Press, 1980.
Germany: Springer, 2005, pp. 126–138. [29] I. Grobelna, “Formal verification of embedded logic controller specifica-
[2] M. Augin, F. Boeri, and C. Andre, “Systematic method of realization of tion with computer deduction in temporal logic,” Przeglad Elektrotech-
interpreted Petri nets,” Digit. Process., no. 6, vol. 1, pp. 55–68, 1980. niczny, vol. 87, no. 12, pp. 47–50, 2011.
[3] A. Aybar and A. Iftar, “Overlapping decompositions and expansions of
[30] I. Grobelna, M. Wiśniewska, R. Wiśniewski, M. Grobelny, and P. Mróz,
Petri nets,” IEEE Trans. Autom. Control, vol. 47, no. 3, pp. 511–515,
“Decomposition, validation and documentation of control process spec-
Mar. 2002.
ification in form of a Petri net,” in Proc. 7th Int. Conf. Human Syst.
[4] Z. Banaszak, J. Kuś, and M. Adamski, Petri Nets: Modeling, Control
Interact. (HSI), Lisbon, Portugal, 2014, pp. 232–237.
and Synthesis of Discrete Systems, (in Polish). Zielona Góra, Poland:
Higher School of Engineering Publishing House, 1993. [31] I. Grobelna, R. Wiśniewski, M. Grobelny, and M. Wiśniewski, “Design
[5] J. Bang-Jensen and G. Z. Gutin, Digraphs: Theory, Algorithms and and verification of real-life processes with application of Petri nets,”
Applications, 1st ed. New York, NY, USA: Springer, 2007. IEEE Trans. Syst., Man, Cybern., Syst., pp. 1–14, Mar. 2016. [Online].
[6] A. Barkalov and L. Titarenko, Logic Synthesis for FSM-Based Con- Available: http://dx.doi.org/10.1109/TSMC.2016.2531673
trol Units (Lecture Notes in Electrical Engineering), vol. 53. Berlin, [32] M. Habib, R. McConnell, C. Paul, and L. Viennot, “Lex-BFS and
Germany: Springer, 2009. partition refinement, with applications to transitive orientation, interval
[7] F. Basile and P. Chiacchio, “On the implementation of supervised control graph recognition and consecutive ones testing,” Theor. Comput. Sci.,
of discrete event systems,” IEEE Trans. Control Syst. Technol., vol. 15, vol. 234, nos. 1–2, pp. 59–84, 2000.
no. 4, pp. 725–739, Jul. 2007. [33] R. Hadjidj and H. Boucheneb, “On-the-fly TCTL model checking for
[8] G. Berthelot, “Checking properties of nets using transformation,” in time Petri nets,” Theor. Comput. Sci., vol. 410, no. 42, pp. 4241–4261,
Advances in Petri Nets (Lecture Notes in Computer Science), vol. 222. 2009.
London, U.K.: Springer-Verlag, 1986, pp. 19–40. [34] H. Hu, M. Zhou, and Z. Li, “Supervisor design to enforce production
[9] B. Berthomieu, F. Peres, and F. Vernadat, “Model checking bounded ratio and absence of deadlock in automated manufacturing systems,”
prioritized time Petri nets,” in Proc. 5th Int. Conf. Autom. Technol. IEEE Trans. Syst., Man, Cybern. A, Syst. Humans, vol. 41, no. 2,
Verification Anal. (ATVA), 2007, pp. 523–532. pp. 201–212, Mar. 2011.
[10] K. Bilinski, M. Adamski, J. M. Saul, and E. L. Dagless, “Petri-net-based [35] A. Karatkevich, Dynamic Analysis of Petri Net-Based Discrete Systems
algorithms for parallel-controller synthesis,” IEE Proc.-Comput. Digit. (Lecture Notes in Control and Information Sciences), vol. 356. Berlin,
Techn., vol. 141, no. 6, pp. 405–412, Nov. 1994. Germany: Springer-Verlag, 2007.
[11] B. Bérard, F. Cassez, S. Haddad, D. Lime, and O. Roux, “The expressive [36] A. Karatkevich, “On macroplaces in Petri nets,” in Proc. IEEE East-West
power of time Petri nets,” Theor. Comput. Sci., vol. 474, pp. 1–20, Design Test Symp. (EWDTS), Lviv, Ukraine, Oct. 2008, pp. 418–422.
Feb. 2013. [37] A. Karatkevich, “Reduction of SM-components in Petri nets,” (in
[12] S. Brown and Z. Vernesic, Fundamentals of Digital Logic With VHDL Polish), Przega˛d Telekomunikacyjny i Wiadomości Telekomunikacyjne,
Design. New York, NY, USA: McGraw-Hill, 2000. vol. 6. Warsaw, 2008, pp. 806–808.
[13] G. Bruno, R. Agarwal, A. Castella, and M. P. Pescarmona, “CAB: [38] A. Karatkevich and R. Wiśniewski, “Relation between SM-covers and
An environment for developing concurrent application,” in Proc. 16th SM-decompositions of Petri nets,” in Proc. 11th Int. Conf. Comput.
ICATPN, Jun. 1995, pp. 141–160. Methods Sciences Eng. (ICCMSE), Athens, Greece, 2015, pp. 1–4.
[14] J. Carmona and J. Cortadella, “State encoding of large asynchronous [39] A. Kovalyov, “Concurrency relation and the safety problem for Petri
controllers,” in Proc. 43rd ACM/IEEE Design Autom. Conf., Jul. 2006, nets,” in Proc. 13th Int. Conf. Appl. Theory Petri Nets, Jun. 1992,
pp. 939–944. pp. 299–309.
[15] M. Chen and R. Hofestädt, “Quantitative Petri net model of gene [40] A. Kovalyov, “A polynomial algorithm to compute the concurrency
regulated metabolic networks in the cell,” Silico Biol., vol. 3, no. 3, relation of a regular STG,” in Hardware Design and Petri Nets. Boston,
pp. 347–365, 2003. MA, USA: Springer, 2000, pp. 107–126.
[16] Y. Chen, Z. Li, and A. Al-Ahmari, “Nonpure Petri net supervisors [41] A. Kovalyov and J. Esparza, “A polynomial algorithm to compute the
for optimal deadlock control of flexible manufacturing systems,” IEEE concurrency relation of free-choice signal transition graphs,” in Proc.
Trans. Syst., Man, Cybern., Syst., vol. 43, no. 2, pp. 252–265, Mar. 2013. Int. Workshop WODES, 1995, pp. 1–6.
[17] C.-N. Chou, Y.-S. Ho, C. Hsieh, and C.-Y. Huang, “Symbolic model
[42] M. Kubale, Discrete Optimization: Models and Methods of Graph Col-
checking on SystemC designs,” in Proc. 49th ACM/EDAC/IEEE Design
oring, (in Polish). Warsaw, Poland: Wydawnictwa Naukowo Techniczne,
Autom. Conf. (DAC), Jun. 2012, pp. 327–333.
2002.
[18] S. Christensen and L. Petrucci, “Modular analysis of Petri nets,” Comput.
J., vol. 43, no. 3, pp. 224–242, Apr. 2000. [43] G. Łabiak, M. Adamski, M. Doligalski, J. Tkacz, and A. Bukowiec,
[19] E. M. Clarke, O. Grumberg, and D. Peled, Model Checking. Cambridge, “UML modelling in rogorous design methodology for discrete con-
MA, USA: MIT Press, 1999. trollers,” Int. J. Electron. Telecommun., vol. 58, no. 1, pp. 27–34, 2012.
[20] A. Costa, P. Barbosa, L. Gomes, F. Ramalho, J. Figueiredo, and [44] M. Ma, “Model checking for protocols using verds,” in Proc. 5th Int.
A. Junior, “Properties preservation in distributed execution of Petri nets Symp. Theor. Aspects Softw. Eng. (TASE), 2011, pp. 231–234.
models,” in Emerging Trends in Technological Innovation, vol. 314. [45] F. Maffray, “On the coloration of perfect graphs,” in Recent Advances in
Berlin, Germany: Springer, 2010, pp. 241–250. Algorithms and Combinatorics (CMS Books in Mathematics), vol. 11,
[21] A. Costa and L. Gomes, “Petri net partitioning using net splitting B. Reed and C. Sales, Eds. New York, NY, USA: Springer-Verlag, 2003,
operation,” in Proc. 7th IEEE Int. Conf. Ind. Inform. (INDIN), Cardiff, pp. 65–84.
U.K., Jun. 2009, pp. 24–26. [46] J. Martínez and M. Silva, “A simple and Fast Algorithm to Obtain all
[22] H. Costelha and P. Lima, “Petri net robotic task plan represen- invariants of a generalised Petri net,” in Application and Theory of Petri
tation: Modelling, analysis and execution,” in Autonomous Agents, Nets. London, U.K.: Springer-Verlag, 1982, pp. 301–310.
V. Kordic, Ed. Rijeka, Croatia: InTech, 2010, pp. 65–89. [47] T. Miyamoto et al., “Autonomous distributed secret sharing storage
[23] L. Dai and W. Guo, “Concurrent subsystem-component development system,” Syst. Comput. Jpn., vol. 37, no. 6, pp. 55–63, 2006.
model (CSCDM) for developing adaptive E-commerce systems,” in [48] L. Montano, F. J. García, and J. L. Villarroel, “Using the time Petri net
Computational Science and Its Applications, Berlin, Germany: Springer, formalism for specification, validation, and code generation in robot-
2007, pp. 81–91. control applications,” Int. J. Robot. Res., vol. 19, pp. 59–76, Jan. 2000.
586 IEEE TRANSACTIONS ON CONTROL SYSTEMS TECHNOLOGY, VOL. 26, NO. 2, MARCH 2018

[49] F. Moutinho and L. Gomes, “Asynchronous-channels within Petri net- [74] R. Zurawski and M. Zhou, “Petri nets and industrial applications:
based gals distributed embedded systems modeling,” IEEE Trans. Ind. A tutorial,” IEEE Trans. Ind. Electron., vol. 41, no. 6, pp. 567–583,
Informat., vol. 10, no. 4, pp. 2024–2033, Nov. 2014. Dec. 1994.
[50] T. Murata, “Petri nets: Properties, analysis and applications,” Proc. [75] M. Zwolinski, Digital System Design With VHDL. Boston, MA, USA:
IEEE, vol. 77, no. 4, pp. 548–580, Apr. 1989. Addison-Wesley, 2000.
[51] T. Nishi and R. Maeno, “Petri net modeling and decomposition method
for solving production scheduling problems,” J. Adv. Mech. Design, Remigiusz Wiśniewski received the Ph.D. degree
Syst., Manuf., vol. 1, no. 2, pp. 262–271, 2007. in computer science from the University of Zielona
[52] W. Penczek and A. Pólrola, Advances in Verification of Time Petri Nets Góra, Zielona Góra, Poland, in 2008.
and Timed Automata: A Temporal Logic Approach. Berlin, Germany: From 2000 to 2003, he was with Aldec, Inc.,
Springer, 2006. Henderson, NV, USA, where he conducted spe-
[53] A. Ramirez-Trevino, I. Rivera-Rangel, and E. Lopez-Mellado, “Observ- cialized trainings for companies, such as Xilinx,
ability of discrete event systems modeled by interpreted Petri nets,” IEEE San Jose, CA, USA, and Intel, Santa Clara, CA,
Trans. Robot. Autom., vol. 19, no. 4, pp. 557–565, Aug. 2003. USA. He is currently an Assistant Professor with
[54] A. Ramirez-Trevino, E. Ruiz-Beltran, I. Rivera-Rangel, and the Institute of Electrical Engineering, University of
E. Lopez-Mellado, “Online fault diagnosis of discrete event systems: A Zielona Góra. He is a Co-Founder and a Coordinator
Petri net-based approach,” IEEE Trans. Autom. Sci. Eng., vol. 4, no. 1, of the research project Hippo. His current research
pp. 31–39, Jan. 2007. interests include design of the concurrent systems, graphs, and hypergraphs,
[55] O. Ribeiro and J. Fernandes, “Translating synchronous Petri nets into cryptology, and field programmable gate arrays.
PROMELA for verifying behavioural properties,” in Proc. Int. Symp.
Ind. Embedded Syst. (SIES), 2007, pp. 266–273. Andrei Karatkevich received the M.Sc. and Ph.D.
[56] I. Rivera-Rangel, A. Ramírez-Treviño, and E. López-Mellado, “Building degrees in computer science from the Belarusian
reduced Petri net models of discrete manufacturing systems,” Math. State University of Informatics and Radioelectronics,
Comput. Model., vol. 41, nos. 8–9, pp. 923–937, Apr. 2005. Minsk, Belarus, in 1998, and the D.Sc. degree in
[57] A. Santone, V. Intilangelo, and D. Raucci, “Application of equiva- computer science from the Ilmenau University of
lence checking in a loan origination process in banking industry,” in Technology, Ilmenau, Germany.
Proc. Enabling Technol., Infrastruct. Collaborative Enterprises, 2013, He is currently a professor with the Faculty of
pp. 292–297. Computer, Electrical and Control Engineering, Uni-
[58] L. Stefanowicz, M. Adamski, and R. Wisniewski, “Application of an versity of Zielona Góra, Zielona Góra, Poland. His
exact transversal hypergraph in selection of SM-components,” in Tech- current research interests include formal analysis of
nological Innovation for the Internet of Things, Heidelberg, Germany: Petri nets and other parallel discrete systems, and
Springer, 2013, pp. 250–257. applications of the graph theory in logical design and Boolean algebra.
[59] J. Suk, Y. Lee, S. Kim, H. Koo, and J. Kim, “System identification and
stability evaluation of an unmanned aerial vehicle from automated flight Marian Adamski received the M.Sc. degree in
tests,” KSME Int. J., vol. 17, no. 5, pp. 654–667, 2003. electrical engineering from Poznań Technical Uni-
[60] M. Szpyrka, A. Biernacka, and J. Biernacki, “Methods of translation of versity, Poznań, Poland, the Ph.D. degree in control
Petri nets to NuSMV language,” in Proc. Int. Workshop Concurrency, and computer engineering from Silesian Technical
Specification Program. (CS&P), 2014, pp. 245–256. University, Gliwice, Poland, and the D.Sc. degree in
[61] D. Thomas and P. Moorby, The Verilog Hardware Description Language, computer engineering from the Warsaw University
5th ed. Norwell, MA, USA: Kluwer, 2002. of Technology, Warsaw, Poland.
[62] A. Tzes, S. Kim, and W. R. McShane, “Applications of Petri networks He is currently a Professor of Computer Engi-
to transportation network modeling,” IEEE Trans. Veh. Technol., vol. 45, neering. His current research interests include math-
no. 2, pp. 391–400, May 1996. ematical logic and Petri nets in digital systems
[63] R. Valette, “Comparative study of switching representation tool with design, and formal development of logic controller
GRAFCET and Petri nets,” Nouv. Autom., vol. 23, no. 12, pp. 377–382, programs, very high speed integrated circuits hardware description language,
Dec. 1978. Field Programmable Logic Device, and field programmable gate array in
industrial applications.
[64] W. van der Aalst, “Decomposing Petri nets for process mining: A generic
approach,” Distrib. Parallel Databases, vol. 31, no. 4, pp. 471–507,
Anikó Costa (M’08) received the Engineering
2013.
degree in electrical engineering from Czech Tech-
[65] R. Wiśniewski, Synthesis of Compositional Microprogram Control Units nical University in Prague, Prague, Czech Republic,
for Programmable Devices, vol. 14. Zielona Góra, Poland: Univ. Zielona in 1992, and the M.Sc. degree in informatics and the
Góra Press, 2009. Ph.D. degree in electrical engineering from the Nova
[66] R. Wiśniewski, Prototyping of Concurrent Control Systems Implemented University of Lisbon, Lisbon, Portugal, in 2003 and
in FPGA Devices (Advances in Industrial Control). Cham, Switzerland: 2010, respectively.
Springer, 2017. She is currently an Assistant Professor with the
[67] R. Wiśniewski, A. Barkalov, L. Titarenko, and W. Halang, “Design Faculty of Science and Technology, Nova University
of microprogrammed controllers to be implemented in FPGAs,” Int. J. of Lisbon. Her current research interests include
Appl. Math. Comput. Sci., vol. 21, no. 2, pp. 401–412, 2011. model-based development of embedded systems
[68] R. Wiśniewski, Ł. Stefanowicz, A. Bukowiec, and J. Lipiński, “The- using Petri nets and statechart, digital system design, and hardware–software
oretical aspects of Petri nets decomposition based on invariants and codesign.
hypergraphs,” in Multimedia and Ubiquitous Engineering (Lecture Notes
in Electrical Engineering), vol. 308. Berlin, Germany: Springer, 2014, Luís Gomes (SM’06) received the Electrotech.Eng.
pp. 371–376. degree from the Universidade Técnica de Lisboa,
[69] R. Wiśniewski, Ł. Stefanowicz, M. Wiśniewska, and D. Kur, “Exact Lisbon, Portugal, in 1981, and the Ph.D. degree in
cover of states in the discrete state-space system,” in Proc. AIP Conf., digital systems from the Nova University of Lisbon,
vol. 1702. 2015, p. 100007. Lisbon, in 1997.
[70] Xilinx FSM Style Implementation, accessed on Feb. 27, 2016. [Online]. From1984 to 1987, he was with EID, Charneca
Available: http://www.xilinx.com/support/docu-mentation/university/ise- de Caparica, Portugal, a Portuguese medium enter-
teaching/hdl-design/14x/nexys3/verilog/docs-pdf/lab10.pdf prise in the area of electronic system design. He is
[71] Xilinx Partial Reconfiguration Tutorial, accessed on Apr. 12, 2017. currently an Associate Professor with the Electrical
[Online]. Available: www.xilinx.com/support/documentation/sw_ Engineering Department, Faculty of Sciences and
manuals/xilinx14_1/ug702.pdf Technology, Nova University of Lisbon, and also
[72] D. A. Zaitsev, “Compositional analysis of Petri nets,” Cybern. Syst. a Researcher with the Uninova-Instituto Desenvolvimento De Novas Tec-
Anal., vol. 42, no. 1, pp. 126–136, 2006. nologias, Caparica, Portugal. His current interests include the usage of Petri
[73] A. Zakrevskij, Y. Pottosin, and L. Cheremisinova, Design of Logical nets and other concurrency models applied to reconfigurable and embedded
Control Devices. Moscow, Russia: TUT Press, 2009. systems codesign.

You might also like