<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>When Graffiti Brings Order?</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Alban Linard</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Didier Buchs</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Université de Genève, Centre Universitaire d'Informatique 7 route de Drize</institution>
          ,
          <addr-line>1227 Carouge</addr-line>
          ,
          <country country="CH">Suisse</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2011</year>
      </pub-date>
      <fpage>81</fpage>
      <lpage>95</lpage>
      <abstract>
        <p>Most researchers use Petri nets as a formal notation with mathematically defined semantics. Their graphical part is usually only seen as a notation, that does not carry semantics. Contrary to this tradition, we show in this article that, when created by a human, there is inherent semantics in the positions of places, transitions and arcs. We propose to use the full definition of Petri nets: whereas they have been deteriorated to their mathematically defined part only, their graphical information should be considered in their definition.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <sec id="sec-1-1">
        <title>Left0</title>
      </sec>
      <sec id="sec-1-2">
        <title>Right0</title>
      </sec>
      <sec id="sec-1-3">
        <title>Think0 Eat0 Eat1</title>
      </sec>
      <sec id="sec-1-4">
        <title>Think1</title>
      </sec>
      <sec id="sec-1-5">
        <title>Fork0</title>
      </sec>
      <sec id="sec-1-6">
        <title>Right1</title>
      </sec>
      <sec id="sec-1-7">
        <title>Left1</title>
        <sec id="sec-1-7-1">
          <title>Places</title>
          <p>Think0, Think1 = 1
Fork0 , Fork1 = 1
Left0, Right0, Eat0 = 0</p>
          <p>Left1, Right1, Eat1 = 0
Transitions</p>
          <p>Think0 + Fork0 ! Left0</p>
          <p>Think0 + Fork1 ! Right0
Fork1 Left0 + Fork1 ! Eat0</p>
          <p>Right0 + Fork0 ! Eat0
Eat0 ! Fork0 + Fork1 + Think0
Think1 + Fork1 ! Left1
Think1 + Fork0 ! Right1
Left1 + Fork0 ! Eat1
Right1 + Fork1 ! Eat1</p>
          <p>Eat1 ! Fork0 + Fork1 + Think1
PN = hP;TAi</p>
          <p>P =
(Think0;Left0;Right0;Eat0;Fork0)</p>
          <p>Think1;Left1;Right1;Eat1;Fork1
T = (r0;s0;t0;u0;v0)
r1;s1;t1;u1;v1
kT L0 tghR0 taE0 rkoF0 ikhnT1 fteL1 itghR1 taE1 rkoF1
0
ihn fte i
kT L0 tghR0 taE0 rkoF0 ikhnT1 fteL1 itghR1 taE1 rkoF1
0
ihn fte i
nets. This semantics is unclear, as it depends on the modeler and the model.
Thus, we check that the extracted semantics can be useful to improve model
checking performance of the Petri nets.</p>
          <p>Section 2 presents the methodology of this work: how semantics extracted
from the graphical information is used to improve model checking performance.
Then we propose to use alignments of places and transitions in Section 3. As
this only information is not always sufficient to improve model checking
performance, we also propose to use graphical distances in Section 3. Then we propose
in Section 4 to use surfaces delimited by arcs, for models with no alignments.
The approach is generalized to colored Petri nets in Section 5. As we cannot
give semantics to graphical information of all models, two counter-examples are
provided in Section 6. Section 7 discusses about when and how graphical
information can be used, before conclusion in Section 8.
2</p>
          <p>
            How do we assess the quality of semantics extracted
from graphical information?
The Software Modeling and Verification Group has developed the Algebraic
Petri Net Analyzer (AlPiNA) [
            <xref ref-type="bibr" rid="ref2">2</xref>
            ], a model checker for Algebraic Petri nets.
For efficient state space computation, this tool is based on Decision Diagrams
(DDs) [
            <xref ref-type="bibr" rid="ref3 ref4">3,4</xref>
            ]. In this approach, a Decision Diagram, which is a particular kind of
Directed Acyclic Graph, represents the state space. A node in the graph, called
“variable”, represents the marking of each color for each place. When using DDs,
the efficiency highly depends on the variable order in the graph [
            <xref ref-type="bibr" rid="ref5">5</xref>
            ].
          </p>
          <p>
            By default, AlPiNA has rather good computation times [
            <xref ref-type="bibr" rid="ref6">6</xref>
            ], but its efficiency
can be improved by orders of magnitude when the user provides “clustering”
information, to group related variables. It is given in a textual notation. For
instance, Listing 1 shows a clustering for the Philosophers model1. Variables for
the black token in places Think0 .. Eat0 are put in the same cluster (group of
variables) c0. The same applies for in Think1 .. Eat1, put in cluster c1.
          </p>
        </sec>
        <sec id="sec-1-7-2">
          <title>Clusters c0 , c1 ;</title>
          <p>Rules
c l u s t e r o f
in Think0 , Left0 , Right0 , Fork0 , Eat0
i s c0 ;
c l u s t e r o f
in Think1 , Left1 , Right1 , Fork1 , Eat1
i s c1 ;
c0 &lt; c1 ;</p>
          <p>Listing 1: Example of clustering</p>
          <p>
            Several articles already give heuristics to infer variable orders from Petri
nets [
            <xref ref-type="bibr" rid="ref7">7</xref>
            ]. Clustering is less precise, as it only defines groups of variables, and
1 This is not the exact syntax used in AlPiNA, but a very near one.
groups order. It does not define the order of variables within each group.
However, AlPiNA also allows to define an order over places.
          </p>
          <p>In this article, we propose to use the graphical information of Petri nets to
define the clustering, together with ordering of the variables in the clusters. We
try to group together tokens and places that belong to the same process.</p>
          <p>
            To assess the inferred clustering, we check if it improves the model checker
performances. Instead of using AlPiNA, we use PNXDD [
            <xref ref-type="bibr" rid="ref8">8</xref>
            ]. It is another Decision
Diagram-based model checker that provides several clustering and ordering
algorithms, contrary to AlPiNA. By using it, we can easily compare our approach
with these algorithms. Because they are simpler, we begin our experiments with
Place/Transition Petri nets and then use a Symmetric Petri net.
          </p>
          <p>All the examples in this article are taken from the Model Checking Contest of
the SUMo 2011 workshop. Choosing models that were not created by our group
allows us to avoid a possible bias that may be introduced if we had too much
knowledge about the models.</p>
          <p>For each model, we compare the efficiency of our graphical clustering and
ordering with fully random ones (500 random clusterings and orderings for each
clustering proposed in this article). This benchmark shows the experimental
probability of obtaining clustering and ordering with the same efficiency. Then
we compare our graphical clustering and ordering with all the algorithms
implemented in PNXDD. It shows how we perform against several existing algorithms.</p>
          <p>
            The results are not intended to show that our approach is more efficient
than other ordering algorithms, for instance those used by [
            <xref ref-type="bibr" rid="ref9">9</xref>
            ]. We provide them
primarily to assess how much semantics is put in the graphical information of
Petri nets, and also to assess if the semantics we extract makes sense. Therefor,
we propose throughout this article informal ways to extract semantics from the
graphical representation of Petri nets, instead of well defined algorithms.
          </p>
          <p>We provide a VirtualBox image of the tools and scripts used
in the benchmarks at http://smv.unige.ch/members/dr-alban-linard/
sumo2011-when-graffiti-brings-order-image (use login/pass: sumo2011
for the Linux session).
3</p>
          <p>Using alignment of places and transitions
We start the exploration of usual graphical semantics in Petri nets with the
Flexible Manufacturing System (FMS) model. It is a Place/Transition Petri net
represented in Figure 2. Initial marking is not shown as it is irrelevant in our
approach. Note that this model is parameterized by its initial marking. The full
model is presented in the SUMo 2011 workshop.
3.1</p>
          <p>Alignment only</p>
          <p>Even with absolutely no knowledge of the modeled system, it is obvious
that the PN has vertically aligned places and transitions, linked by arcs in the
alignment. Alignment, either vertical or horizontal, is one usual way for the
modelers to show graphically the processes. Figure 2a shows the four vertical
(a) Aligned places and transitions
(b) With places added to nearest group
alignments of places and transitions, and one horizontal alignment. Thus,
maximal non-overlapping chains of consecutive and aligned places and transitions
define groups. All the places of each group can be put in a same cluster. From
this example, we can state Assumption 1:
Assumption 1 Aligned places and transitions may correspond to a process.
3.2 Alignment with graphical distance</p>
          <p>After applying Assumption 1, some places do not belong to any group.
Usually, the modelers use them either to represent shared data or for local data.
In Figure 2a, the horizontal alignment shows a shared data. The remaining
marked places are each near the middle of a cluster, and thus are likely to
represent local data. On the contrary, the remaining unmarked places are found at
the extremity of the clusters, and thus they can either represent the processes or
local data. So, after defining the groups, we extend them using Assumption 2:
Assumption 2 Local data of a process is more likely to be near its process.</p>
          <p>We also define ordering of the places inside the clusters and ordering of the
clusters. Inside each cluster, the places are ordered from top to bottom or from
left to right. The local data places are put randomly before or after the nearest
process place. To order the clusters, we also chose graphical distance. In the FMS
model, and are next to each other. is far from all other
clusters, but its nearest neighbor is . As is between and
, we get the following order for the clusters:
&lt;
&lt;
&lt;
&lt;</p>
          <p>
            The results of the benchmarks for the FMS 50, i.e., with initial marking
parameter set to 50. All random clusters and orders were too slow, and thus could
not finish computation. Graphical clustering and ordering gives better results
than all algorithms implemented in PNXDD. We give only the number of the
algorithm, instead of its name, for a concise diagram. The corresponding algorithm
names are found in [
            <xref ref-type="bibr" rid="ref9">9</xref>
            ] and in the documentation of the tool [
            <xref ref-type="bibr" rid="ref8">8</xref>
            ].
0
4
)
6
,
2
lca ,(1
i
raph xndd
g p
)
1
1 )
, 2
(8 (1
d d
d d
x x
n n
p p
Using surfaces
Unlike the fms model, the kanban model shown in Figure 3 contains almost no
alignments. The modeler has used different graphical semantics for this model.
          </p>
          <p>For the human eye, the kanban model is composed of four components, each
one with four places. All components have rather similar shapes. They differ by
some arcs and also by a symmetry. Detecting these small differences is not a
trivial task.</p>
          <p>The components are visible because the arcs draw the shapes of the
components. For instance, the modeler used arcs with two inflexion points where he
could have drawn a direct arc. From this example, we can deduce Assumption 3:
Assumption 3 Arcs may draw shapes, the surface of which may contain related
places.</p>
          <p>We investigate different ways to use the shapes. First, Figure 3a identifies
three different components in the model. Each one is found by searching maximal
surfaces in the graphical Petri net. When two surfaces are linked by a place, they
are merged, as one place can only belong to one cluster.</p>
          <p>The maximal surfaces approach can lead to huge clusters. The worst case
is when the whole Petri net is enclosed by arcs, and thus all its places are in
the same cluster. We thus propose a second way to search surfaces. Instead of
identifying maximal surfaces, we can use minimal surfaces. They are defined
(a) Maximal surfaces
(b) Minimal surfaces
(c) Minimal connected surfaces
with nearest remaining places
as the surfaces that do not enclose another surface. Figures 3b and 3c show the
Kanban model with minimal surfaces. In Figure 3b, the choice of minimal surfaces
to consider leads to four clusters, whereas in Figure 3c another choice leads to
three clusters. As the surfaces that touch the same place must be merged, we
have to choose either Figure 3b or Figure 3c. Otherwise, the three surfaces in the
middle block are merged, and the clustering is equivalent to the one of Figure 3a.</p>
          <p>We compare Figure 3a and Figure 3b in the benchmarks. Places are ordered
inside the clusters by following the boundaries of minimal surfaces. Clusters are
ordered by graphical proximity, giving the clusters below:
&lt;
&lt;</p>
          <p>&lt;
&lt;
&lt;
(Figure 3a)
(Figure 3b)</p>
          <p>The results of the benchmarks for the Kanban model are given below. All
random clusters and orders were again too slow, and thus could not finish
computation. The same applies to some algorithms of PNXDD (1,2,6,12,21). Whereas
graphical clustering shows a small improvement over existing algorithms for the
FMS model, it gives here huge improvements over algorithms in PNXDD.
()3a ()3b
la la
ic ic
h h
p p
rga rag
5</p>
          <p>Extension to colored Petri nets
The Shared Memory model of the SUMo 2011 workshop is given in Figure 4.
It is a Symmetric Petri net, which is a particular kind of colored Petri net. Of
course, our approach can be extended to the unfolded Place/Transition Petri net
equivalent to a colored Petri net, when this equivalence exists. But the unfolding
must then generate positions (possibly in three or more dimensions) to avoid
superposition of unfolded places and transitions.</p>
          <p>Without unfolding, we can still in some cases use graphical information to
define clusters. Clusters for colored Petri nets are groups of unfolded places, i.e.,
places together with colors. Two policies can coexist:
– Grouping in the same cluster all colors for one place,
– Distributing in its own cluster each color for one place.</p>
          <p>The first policy works usually well for places representing shared data, whereas
the second one leads usually to good results for places representing processes or
data local to a process. Assumptions 4 and 5 describe these two policies.
Assumption 4 One place related to other places using different variables may
represent a shared data.</p>
          <p>Assumption 5 Several places related to each other using the same variable, or
equal ones, may represent a process.</p>
          <p>In the Shared Memory model, both Assumption 1 and Assumption 3 can be
applied, as we find both aligned places and transitions and surfaces.
5.1 Using surfaces</p>
          <p>To consider surfaces, we use Assumption 3. Its clustering is given in Figure 4a.
We divided the model in four minimal surfaces. As there are places common to
several surfaces, we obtain two groups. All places (a; b; c; e) in the group
have the same domain, except one (e) that is not colored (shown using ).
We create one cluster for each color 1 , 2 , 3 , or 4 , as shown in Listing 2. Place e
can only belong to one cluster, as its domain is the black token . Thus, we also
create its own separate cluster.</p>
          <p>Clusters c , c1 , c2 , c3 , c4 ;
Rules
c l u s t e r o f in e i s c ;
c l u s t e r o f 1 in a; b; c i s c1 ;
c l u s t e r o f 2 in a; b; c i s c2 ;
c l u s t e r o f 3 in a; b; c i s c3 ;
c l u s t e r o f 4 in a; b; c i s c4 ;</p>
          <p>Listing 2: Clustering using surfaces for places a; b; c; e</p>
          <p>The group contains two places: d and f . Place f has domain
f 1 ; 2 ; 3 ; 4 g, whereas the domain of the place d is a couple of colors. For each
color, we create one cluster. Listing 3 completes Listing 2 with the new clusters.
(a) Minimal surfaces and Identity, with nearest Identity
y
y
x
c
x
x 6= m x; m</p>
          <p>x; y
c
x
x x 6= m x; m</p>
          <p>x; y
m
m
m
m
m
m
x
x
Each token in place f is put in the cluster of its color. In place d, each token is
a couple of colors. We have to choose which component of the couple
predominates. Here, there is no obvious choice, so we choose the first element. Thus all
tokens in place d are put in the cluster of the color of the first component.</p>
          <p>Clusters d1 , d2 , d3 , d4 ;
Rules
c l u s t e r of 1 in f i s d1 ;
c l u s t e r of 2 in f i s d2 ;
c l u s t e r of 3 in f i s d3 ;
c l u s t e r of 4 in f i s d4 ;
c l u s t e r of f 1 g f 1 , 2 , 3 , 4 g in d i s d1 ;
c l u s t e r of f 2 g f 1 , 2 , 3 , 4 g in d i s d2 ;
c l u s t e r of f 3 g f 1 , 2 , 3 , 4 g in d i s d3 ;
c l u s t e r of f 4 g f 1 , 2 , 3 , 4 g in d i s d4 ;
c &lt; c1 &lt; d1 &lt; c2 &lt; d2 &lt; c3 &lt; d3 &lt; c4 &lt; d4 ;</p>
          <p>Listing 3: Clustering using surfaces for places d; f
5.2</p>
          <p>Using alignments</p>
          <p>Using Assumption 1 gives a totally different result. It is shown in Figure 4b.
Listing 4 shows the clustering obtained using Assumption 1.</p>
          <p>We first identify aligned places and transitions: places b; c; d belong to one
group. Places b and c have the same colored domain, whereas the tokens of
place d are couples of colors.</p>
          <p>We then try to add to the group what seems local data or part of the
processes. All places a; f; e are near the group. Place a is linked to the group using
only variable x. This clearly shows that an identity is passed along the arcs. So,
this place is added to the group.</p>
          <p>Place e contains black tokens. Because of this domain, it cannot be added in
the clusters of colors, so we create its own cluster, as in Listing 2.</p>
          <p>The last place is f . The variables that relate this place to d are used in the
second part of the couple, whereas the variables that relate d to the places in
its group are in the first part. So, f probably represents a shared data. We thus
put place f in its own cluster, for all colors.</p>
          <p>Clusters c , c1 , c2 , c3 , c4 , f;
Rules
c l u s t e r of in e i s c;
c l u s t e r of 1 in a; b; c i s c1 ;
c l u s t e r of 2 in a; b; c i s c2 ;
c l u s t e r of 3 in a; b; c i s c3 ;
c l u s t e r of 4 in a; b; c i s c4 ;
c l u s t e r of 1 in f i s f;
c l u s t e r of 2 in f i s f;
c l u s t e r of 3 in f i s f;
c l u s t e r of 4 in f i s f;
c l u s t e r of f 1 g f 1 , 2 , 3 , 4 g in d i s c1 ;
c l u s t e r of f 2 g f 1 , 2 , 3 , 4 g in d i s c2 ;
c l u s t e r of f 3 g f 1 , 2 , 3 , 4 g in d i s c3 ;
c l u s t e r of f 4 g f 1 , 2 , 3 , 4 g in d i s c4 ;
c &lt; c1 &lt; c2 &lt; c3 &lt; c4 &lt; f;</p>
          <p>Listing 4: Clustering using alignment</p>
          <p>When we fail at understanding the model
The Model Checking Contest of SUMo 2011 workshop uses seven models, three of
which are Place/Transition Petri nets and the four others Symmetric Petri nets.
In this article, we provide clustering for Flexible Manufacturing System, Kanban
and Shared Memory. Two models are not discussed: Philosophers and Token Ring.
The Philosophers model has been studied a lot for use with Decision Diagrams.
Before writing this article, we already knew that the best order is when each
philosopher and its left (or right) fork is put in its own cluster. Because of this
knowledge, trying to find graphical information would be biased. The Token Ring
model does not contain enough places (1) and transitions (2).</p>
          <p>The two remaining models are MAPK (Figure 5) and Peterson’s algorithm
(Figure 6). For them, we did not find how to give semantics to the graphical
information. Note that these two models are considered as hard to understand
by humans. This might be an explanation: because their modelers could not
find a good disposition of places and transitions, we cannot give semantics to
graphical information, and thus the models are hard to understand.
7</p>
          <p>Discussion on the approach
We propose in this article to extract semantics from the graphical part of a Petri
net. It works on some models, but does not work on some others. Moreover,
all people do not always agree on how to identify the processes in the Petri
net. This approach is thus fragile. We provide in this section some remarks on
its applicability, and on other techniques that could be used along graphical
information to improve clustering.
7.1</p>
          <p>This approach depends on the school of modeling.</p>
          <p>Depending on where we have studied, and where we work, we may not create
models in the same way. The most obvious difference is putting aligned processes
horizontally or vertically. But some people can also prefer to show processes using
surfaces instead of alignments. We should investigate which representations are
used, and where they are modeled.</p>
          <p>
            A side effect is that every Petri net should define an author and the
institutes where the author has studied and workse Using this information, giving
semantics to graphical information could be enhanced. The “author” field is
already present in the Petri Net Markup Language [
            <xref ref-type="bibr" rid="ref10">10</xref>
            ], but there is currently no
traceability of the author’s institutions, nor of the school of modeling for this
Petri net.
7.2
          </p>
          <p>Graphical information cannot be processed easily</p>
          <p>
            The Petri Net Markup Language handles absolute positions for the Petri net
elements (places, transitions, labels. . . ). The problem with absolute positioning
is that analysis of the graphical information is not easy. Some other positioning
schemes exist. For instance, TikZ [
            <xref ref-type="bibr" rid="ref11">11</xref>
            ] provides a way to define a position relative
to another one (above, below, . . . ). Such positions can be processed more easily.
7.3
          </p>
          <p>Labels can also be used to detect components.</p>
          <p>We use only graphical information on Place/Transition Petri nets in this
article. For Symmetric Petri nets, we also use domains and variables on the arcs.
Another interesting information to compute clustering is the labels of places
and transitions. In Place/Transition Petri nets, they are often composed of a
textual prefix, a textual suffix, and some numbers in the middle. These numbers
correspond to colors in an equivalent colored Petri nets. Extracting the naming
patterns of places can greatly enhance the clustering.</p>
          <p>This approach may be redundant with graph analysis.</p>
          <p>
            Ordering the Decision Diagrams used during the model checking of a Petri
net has been explored for a long time. We can cite again [
            <xref ref-type="bibr" rid="ref7">7</xref>
            ], which is a survey
of existing algorithms.
          </p>
          <p>Instead of using the graphical information, they are usually based on the
graph structure of the Petri net. These techniques, from the structural analysis
field, can lead to very good results. Note that combining them with graphical
information and naming analysis is often possible.</p>
          <p>
            First, traps and siphons [
            <xref ref-type="bibr" rid="ref12">12</xref>
            ] are a way to detect components, and thus
clusters. They can be computed efficiently, for instance in [
            <xref ref-type="bibr" rid="ref13">13</xref>
            ]. Invariants are another
way to define clusters, but they show both processes and data. A good point is
that they can even be computed in colored Petri net [
            <xref ref-type="bibr" rid="ref14">14</xref>
            ].
8
          </p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Conclusion</title>
      <p>Throughout this article, we show Petri nets from the Model Checking Contest
of SUMo 2011 workshop. For each one, we try to understand how their modelers
put semantics in their graphical information. Whereas we cannot identify such
information in some models (MAPK and Peterson’s algorithm), it provides really
good results for the others.</p>
      <p>We extract semantics from several kinds of graphical information: the
alignment of places and transition, the graphical proximity of places and groups, and
the surfaces delimited by arcs. This semantics is used to define clustering and
ordering of the places and tokens.</p>
      <p>For all these examples, we use the graphical information to improve symbolic
model checking of the Petri net. To do so, we extract clustering and ordering
from the graphical part of each model. Using them, we compare the time taken to
generate the state space with several clustering and ordering algorithms
implemented in PNXDD, and with fully random clusters and orders. In all models where
graphical clustering could be defined, we obtain improvements over PNXDD. No
random clusters and orders could run in the time and memory limits, which
shows that the semantics extracted from graphical information makes sense.</p>
      <p>At the beginning of this work, we were only hoping to obtain improvements
over some of the algorithms in PNXDD. Prior the benchmarks, we did no selection
of the models, and of the inferred graphical semantics. Thus, the good results
seem promising.</p>
      <p>From these examples, two conclusions arise: (1) in education, Petri nets are
always introduced as a graphical formalism. In research, they have been
deteriorated into a mathematical only formalism, by losing graphical information; (2)
graphical information in Petri nets has semantics, but unclear one.</p>
      <p>We believe that, contrary to their usual presentation in scientific publications,
Petri nets are truly a graphical formalism, and their mathematical representation
is only a projection.</p>
      <p>Further work should identify more graphical semantics, and the cases in
which they apply. We may not be able to create algorithms to extract always
semantics from graphical information. But when it is possible, a study with fully
automatic algorithms should check that the inferred semantics can be used with
no user knowledge of the models.</p>
      <p>K 9 K
ER 1k R 1</p>
      <p>E 2</p>
      <p>k
6
3
e
s
a 6
h
P</p>
      <p>P
K
R
E
8
2
k
P
P
K
E
M
6
1
k
2
e
s 3
a 1
h k
P
4
5
2 R 6
k E 2</p>
      <p>k
K 0
R 3</p>
      <p>k
E
3
e
s
a
h
P
_
P
P
K
3
e
s
a
h
P
_
P
P
P
K
E
M
_</p>
      <p>4
2 1
se k
a
h
P
_
P
P
K
E
M
2
e 7
7
2
k
9
2
k
0
2
k
5
1
k
2
2
k
4
2
k</p>
      <p>P
P
K
R
E</p>
      <p>P
P
K
E
M
_
P
K
R
E
3
2
k
P
f 9
a k
R
_</p>
      <p>K
7 E
k M</p>
      <p>P
K
E 0</p>
      <p>1
M k
8
k
1
e
s
a 6
h
P 4</p>
      <p>k
P 1</p>
      <p>k
T
sG 2
a
R
5
k
2
1
k
1
1
k
P
f
a
R
1
e
s
a
h
P
_
P
f
a
R
8
R
_
P
6
k
f
a 2
R k
R
_ 3
fa k
R
e
d
a
k
s
a
k
e
s
a
n
i
k
n
i
e
t
o
r
p
d
e
t
a
v
i
t
c
a
n
e
g
o
t
i
M
:
K
P
A
M
:
5
CLASS
Process is 0..N;
Tour is 0..N-1;
Bool is [T, F];
DOMAIN
ProcTour is &lt;Process, Tour&gt;;
TourProc is &lt;Tour, Process&gt;;
ProcTourProc is &lt;Process, Tour, Process&gt;;
ProcBool is &lt;Process, Bool&gt;;
VAR
i in Process;
k in Process;
j in Tour;
WantSection
&lt;Process.all, F&gt;</p>
      <p>ProcBool
&lt;i, T&gt;</p>
      <p>&lt;i, F&gt;
&lt;i, j&gt;
ContinueLoop</p>
      <p>TestIdentity
ProcTourProc
NoIdentity
[i &lt;&gt; k]
&lt;i, j, k&gt;</p>
      <p>Alone1
&lt;k, F&gt;
ProcTourProc</p>
      <p>TestAlone
&lt;k, T&gt;
&lt;k, T&gt;</p>
      <p>NotAlone
&lt;k, F&gt;</p>
      <p>Idle</p>
      <p>Process
Ask</p>
      <p>&lt;i&gt;</p>
      <p>AccessCS
CS</p>
      <p>Process</p>
      <p>EndLoop
TurnEqual</p>
      <p>BeginLoop
Identity</p>
      <p>&lt;i, j , i&gt;
&lt;i, j ,k&gt;
&lt;i, j, k&gt;
&lt;i, j++1&gt;</p>
      <p>&lt;i, j&gt;
Loop</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Sun</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gray</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Langer</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wimmer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>White</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>A WYSIWYG Approach for Configuring Model Layout using Model Transformations</article-title>
          . In: DSM'10: Workshop on Domain-Specific Modeling @ Splash. (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2. SMV Group:
          <article-title>Algebraic Petri Nets Analyzer (</article-title>
          <year>2010</year>
          ) http://alpina.unige.ch.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Bryant</surname>
          </string-name>
          , R.E.:
          <article-title>Graph-Based Algorithms for Boolean Function Manipulation</article-title>
          .
          <source>IEEE Transactions on Computers</source>
          <volume>35</volume>
          (
          <issue>8</issue>
          ) (
          <year>1986</year>
          )
          <fpage>677</fpage>
          -
          <lpage>691</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Couvreur</surname>
            ,
            <given-names>J.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Encrenaz</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paviot-Adet</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Poitrenaud</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wacrenier</surname>
            ,
            <given-names>P.A.</given-names>
          </string-name>
          :
          <article-title>Data Decision Diagrams for Petri Net analysis</article-title>
          .
          <source>In: ICATPN '02: 23rd International Conference on Applications and Theory of Petri Nets</source>
          . (
          <year>2002</year>
          )
          <fpage>101</fpage>
          -
          <lpage>120</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Bollig</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wegener</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Improving the variable ordering of obdds is np-complete</article-title>
          .
          <source>IEEE Transactions on Computers</source>
          <volume>45</volume>
          (
          <issue>9</issue>
          ) (
          <year>1996</year>
          )
          <fpage>993</fpage>
          -
          <lpage>1002</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Buchs</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hostettler</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Marechal</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Risoldi</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>AlPiNA: A symbolic model checker</article-title>
          .
          <source>In: Petri Nets '10: International Conference on Theory and Applications</source>
          of Petri nets. (
          <year>2010</year>
          )
          <fpage>287</fpage>
          -
          <lpage>296</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Rice</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kulhari</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>A survey of static variable ordering heuristics for efficient BDD/MDD construction</article-title>
          .
          <source>Technical report</source>
          , UC riverside (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Hong</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paviot-Adet</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kordon</surname>
            ,
            <given-names>F.: PNXDD</given-names>
          </string-name>
          <string-name>
            <surname>Model</surname>
          </string-name>
          Checkers - https://srcdev.lip6. fr/trac/research/neoppod/ https://srcdev.lip6. fr/trac/research/NEOPPOD/.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Hong</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kordon</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paviot-Adet</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Evangelista</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Computing a Hierarchical Static Order for Decision Diagram-Based Representation from</article-title>
          P/T Nets.
          <article-title>ToPNoC: Transactions on Petri Nets and Other Models of Concurrency (submitted) (</article-title>
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Hillah</surname>
            ,
            <given-names>L.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kindler</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kordon</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Petrucci</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Trèves</surname>
          </string-name>
          , N.:
          <article-title>A primer on the Petri Net Markup Language and ISO/IEC 15909-2</article-title>
          .
          <source>Petri Net Newsletter</source>
          <volume>76</volume>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Tantau</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Feuersaenger</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          : TikZ ist kein Zeichenprogramm http://www.ctan.org/tex-archive/graphics/pgf/.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Murata</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Petri nets: Properties, analysis and applications</article-title>
          .
          <source>Proceedings of the IEEE 77(4)</source>
          (
          <year>1989</year>
          )
          <fpage>541</fpage>
          -
          <lpage>580</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Barkaoui</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lemaire</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>An Effective Characterization of Minimal Deadlocks and Traps in Petri nets Based on Graph Theory</article-title>
          .
          <source>In: 10th Int. Conf. on Application and Theory of Petri Nets ICATPN'89. (January</source>
          <year>1989</year>
          )
          <fpage>1</fpage>
          -
          <lpage>21</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Couvreur</surname>
            ,
            <given-names>J.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Haddad</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Peyre</surname>
            ,
            <given-names>J.F.</given-names>
          </string-name>
          :
          <article-title>Computation of generative families of positive semi-flows in two types of coloured nets</article-title>
          .
          <source>International Conference on Theory and Applications of Petri Nets</source>
          (
          <year>1991</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>