<!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>SYNOPS - Generation of Partial Languages and Synthesis of Petri Nets ?</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Robert Lorenz</string-name>
          <email>robert.lorenz@informatik.uni-augsburg.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Markus Huber</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Christoph Etzel</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Dan Zecha</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Computer Science University of Augsburg</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2008</year>
      </pub-date>
      <fpage>237</fpage>
      <lpage>252</lpage>
      <abstract>
        <p>We present the command line tool SYNOPS. It allows the term-based construction of partial languages consisting of different kinds of causal structures representing runs of a concurrent system: labeled directed acyclic graphs (LDAGs), labeled partial orders (LPOs), labeled stratified directed acyclic graphs (LSDAGs) and labeled stratified order structures (LSOs). It implements region based algorithms for the synthesis of place/transition nets and general inhibitor nets from behavioural specifications given by such partial languages.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Synthesis of Petri nets from behavioral descriptions has been a successful line of
research since the 1990s. There is a rich body of nontrivial theoretical results and
there are important applications in industry, in particular in hardware design
[
        <xref ref-type="bibr" rid="ref12 ref9">9,12</xref>
        ], in control of manufacturing systems [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] and recently also in workflow
design [
        <xref ref-type="bibr" rid="ref1 ref10 ref22 ref23 ref4">23,22,1,10,4</xref>
        ].
      </p>
      <p>The synthesis problem is the problem to construct, for a given behavioral
specification, a Petri net such that the behavior of this net coincides with the
specified behavior (if such a net exists). There are many different methods which
are presented in literature to solve this problem for different classes of Petri
nets. They differ mainly in the Petri net class and the model for the behavioral
specification considered. On the other hand, all these methods are based on
one common theoretical concept, the notion of a region of the given behavioral
specification.</p>
      <p>In this paper, we present a new tool for the region based synthesis of Petri
nets from behavioral specifications given by so called partial languages. A partial
language is a set of finite causal structures, where a causal structure represents
causal relationships between events of a finite run of a concurrent system. If
the concurrent system is given by a Petri net, events represent transition
occurrences. Expressible causal relationships are for example direct and indirect
causal dependency, concurrency and synchronicity of events. The tool supports
different kinds of causal structures, describing different semantics of different
Petri net classes and having different expressiveness and interpretation:
– Labelled acyclic graphs (LDAG): LDAGS represent runs underlying process
nets of place/transition-nets. They are used to specify all direct causal
dependencies caused by token flow between transitions occurrences.
– Labelled partial orders (LPO): LPOs represent non-sequential runs of
place/transition-nets. They are used to specify all ”earlier than”-relations (which we
call indirect causal dependencies) between transitions occurrences. Unrelated
events are called concurrent. LPOs are transtively closed LDAGs.
– LDAGs extended by synchronicity (LSDAG): LSDAGs represent runs
underlying process nets of general inhibitor nets according to the
a-priorisemantics. They are DAGs extended by ”not later than”-relations between
events. A cycle of ”not later than”-relations between events represents a
synchronous step of events, i.e. it is possible to distinguish between concurrency
and synchronicity.
– Labelled stratified order structures (LSO): LSOs represent non-sequential
runs of general inhibitor nets according to the a-priori-semantics. LSOs are
transitively closed LSDAGs.</p>
      <p>
        This means, by a partial language the set of runs of a Petri net for different
Petri net classes and different net semantics can be specified. It depends on the
application area, which Petri net class and which kind of causal structures are
appropriate or available for solving a concrete synthesis problem. In [
        <xref ref-type="bibr" rid="ref10 ref4">10,4</xref>
        ] case
studies are presented illustrating the applicability and usefulness of synthesis
from partial languages in practise.
      </p>
      <p>Infinite behaviour can be represented by an infinite set of finite runs, i.e. an
infinite partial language (where one finite run can be the prefix of another finite
run).</p>
      <p>
        The tool allows to construct finite partial languages (allowing to specify
finite behaviour) of the mentioned types via command line using a term-based
notation. This term based notation allows to compose runs from a set of basic
runs by several composition operators (sequential and parallel composition and
iteration). For the synthesis of nets the tool implements algorithms based on a
technique using so called token flows developed in the project SYNOPS [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. Up
to now, only an algorithm for the synthesis of place/transiton nets from finite
sets of LPOs is supported.
      </p>
      <p>The paper is organized as follows. In section 2 we briefly recall some basic
mechanism of region-based synthesis. In section 3 we present some new technical
developments for the synthesis of place/transition nets from finite sets of LPOs.
In section 4 we describe the architcture and the components of the tool. In
particular we describe how to specify finite sets of LPOs, LDAGs, LSDAGs and
LSOs via command line. In section 5 we present some case studies involving the
implemented algorithm for the synthesis of place/transition nets from finite sets
of LPOs. In section 6 we briefly compare the tool to other synthesis tools. In
section 7 we give a brief outlook onto current and further developments and in
section 8 we give some hints for downloading and testing the tool.
In this section, we denote the set of runs of a net N by L(N ). L(N ) is called the
language generated by N . We formally consider the following synthesis problem
w.r.t. different Petri net classes and different types of partial languages:</p>
      <sec id="sec-1-1">
        <title>Given: A prefix-closed partial language names T . Searched: A Petri net N with set of transitions T and L(N ) = L.</title>
      </sec>
      <sec id="sec-1-2">
        <title>L over a finite alphabet of transition</title>
        <p>That means, we search for an exact solution of the problem. Such an exact
solution may not exist, i.e. not each language L is a net language.</p>
        <p>The classical idea of region-based synthesis is as follows: First consider the
net N having an empty set of places and set of transitions T . This net generates
each run in L (i.e. L ⊆ L(N )), because there are no places restricting transition
occurrences. But it generates much more runs. Since we are interested in an
exact solution, we restrict L(N ) by adding places.</p>
        <p>There are places p, which restrict the set of runs too much in the sense that
L \ L(N ) 6= ∅, if p is added to N . Such places are called non-feasible (w.r.t. L).
We only add so called feasible places p satisfying L ⊆ L(N ), if p is added to N
(Figure 1). The idea of region-based synthesis is to add all feasible places to N .
The resulting net Nsat is called the saturated feasible net. On the one hand, Nsat
has by construction the following very nice property: L(Nsat) is the smallest
net language satisfying L ⊆ L(Nsat). This is clear, since L(Nsat) could only be
further restricted by adding non-feasible places. This property directly implies
that there is an exact solution of the synthesis problem if and only if Nsat is
such an exact solution. Moreover, if there is no exact solution, Nsat is the best
approximation to such a solution ”from above”.</p>
        <p>On the other hand, this result is only of theoretical value, since the set of
feasible places is in general infinite (Figure 2). Therefore, for a practical solution,
a finite subset of the set of all feasible places is defined, such that the net Nfin
defined by this finite subset fulfills L(Nfin) = L(Nsat). Such a net Nfin is called
finite representation of Nsat. In order to construct such a finite representation,
in an intermediate step a feasible place is defined through a so called region of
the given language L.</p>
        <sec id="sec-1-2-1">
          <title>Language L</title>
        </sec>
        <sec id="sec-1-2-2">
          <title>Regions (finite repr.)</title>
        </sec>
        <sec id="sec-1-2-3">
          <title>Petri net N with</title>
        </sec>
        <sec id="sec-1-2-4">
          <title>L⊆L(N), L(N) minimal</title>
        </sec>
        <sec id="sec-1-2-5">
          <title>Feasible places (finite repr.)</title>
          <p>
            The described approach is common to all known region-based synthesis
methods (see Figure 3) and can be applied to all kinds of partial languages. In
particular, this approach can be applied to different notions of regions (of a partial
language) and of finite representations Nfin. There are two types of definitions of
regions and two types of definitions of finite representations, covering all known
region-based synthesis methods [
            <xref ref-type="bibr" rid="ref16">16</xref>
            ].
          </p>
          <p>
            Experiments in the first phase of the project SYNOPS showed that the so
called separation representation produces Petri nets which are simpler and more
compact, especially having less places [
            <xref ref-type="bibr" rid="ref2">2</xref>
            ]. Moreover, it turned out that so called
token flow regions can be computed more efficiently in the presence of much
concurrency. Therefore, the first synthesis algorithm implemented in SYNOPS
computes a place/transition net from a finite set of LPOs using the separation
representation of the set of all token flow regions. Note that this variant is not
yet implemented in other tools.
          </p>
          <p>
            For computing the separation representation, first all so called wrong
continuations of L are constructed. The set of wrong continuations represents the
behaviour which is not specified. Briefly, a wrong continuation consists of a
prefix of some specified run together with a follower step of transition occurrences
extending a specified run by one additional event. Figure 4 shows examples of
wrong continuations. For every wrong continuation, the synthesis algorithm tries
to compute a place prohibiting the wrong continuation (for details on how to
compute such a place we refer to [
            <xref ref-type="bibr" rid="ref16">16</xref>
            ]. The synthesized Petri net is an exact
solution (does not have runs which are not specified) if and only if each wrong
continuation can be prohibited by some place. Figure 5 shows the result of the
synthesis algorithm. The wrong continuations shown in Figure 4 are forbidden
by the places p3, p2 and p1 (from left to right).
          </p>
          <p>The synthesized Petri net depends on the considered order of wrong
continuations, since places often prohibit more than one wrong continuation. It is
advantageous to compute such places first, which prohibit much wrong
continuations. Therefore several new methods were implemented for constructing an
appropriate order of wrong continuations. In the next Section 3 some technical
details of the implemented synthesis algorithm are described.
3</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Newly developed Techniques</title>
      <p>In this section we briefly introduce wrong continuations formally and describe
some newly developed ideas optimizing the synthesis procedure.</p>
      <p>A multiset over a set T is a function m : T → N. A step T is a multiset
over T . Addition + on multisets is defined by (m + m0)(a) = m(a) + m0(a). We
write Pa∈T m(a)a to denote a multi-set m. The relation ≤ between multiset is
defined through m ≤ m0 ⇐⇒ ∀a ∈ T (m(a) ≤ m0(a)). An LPO over a set T
is a tuple (V, &lt;, l) where V is the finite set of events, &lt;⊆ V × V is a partial
order, and l : V → T is a labelling function. For W ⊆ V we define the multiset
l(W )(a) = |{v ∈ W | l(v) = a}|. An LPO (W, &lt;, l) is a prefix of an LPO (V, &lt;, l)
if W ⊆ V and (w ∈ W ) ∧ (v &lt; w) ⇒ (v ∈ W ). A step sequence w = α1 . . . αn can
be represented by an LPO, where each step αi corresponds to a set of pairwise
unordered events and events from different steps are ordered according to the
step sequence. A step sequence σ is a step linearization of an LPO (V, &lt;, l), if
the partial order representing σ contains &lt;. For example, the step sequences
a(b + c)a(b + c), ab(a + c)(b + c) and aba(b + 2c) are step linearizations of the
LPO shown in Figure 5.</p>
      <p>Throughout this section, let L be a prefix closed partial language of LPOs.
We denote Lstep the set of all step-linearizations of LPOs in L. Since lpo ∈ L is
a run of a net N if and only if each step linearization of lpo is a step execution
of N , wrong continuations are defined formally as step sequences which extend
elements from Lstep by one event as follows:
Definition 1 (Wrong Continuation). Let σ = α1 . . . αn−1αn ∈ Lstep and
t ∈ T such that wσ,t = α1 . . . αn−1(αn + t) 6∈ Lstep, where αn is allowed to be the
empty step. Then wσ,t is called wrong continuation of L.</p>
      <p>We call α1 . . . αn−1 the prefix and αn + t the follower step of the wrong
continuation.</p>
      <p>To prohibit a wrong continuation, one needs to find a feasible place p such
that after occurrence of its prefix there are not enough tokens to fire its follower
step. A prefix α1 . . . αn−1 of a wrong continuation stepwise linearizes a prefix of
an LPO in L. A follower step of such a LPO-prefix can constructed by taking
a subset of its direct successor in the LPO and add an event with a new label.
This means, a wrong continuation can be represented on the level of LPOs,
where wrong continuations having the same follower step and whose prefixes
stepwise linearize the same LPO-prefix need not be distinguished. For example
a(b + c)a(b + c)a, aba(2b + c) and aba(a + c) are wrong continuations of the LPO
shown in Figure 5. Their representations on the level ofs LPOs are shown in
Figure 4 (from left to right).</p>
      <p>Since the follower marking after the occurrence of a prefix of a wrong
continuation only depends on the number of occurrences of each transition (but not
on their ordering), the following statement holds:
Proposition 1. Let wσ,t = α1 . . . αn−1(αn + t) be a wrong continuation and
σ0 = α10 . . . αm0−1αn ∈ Lstep satisfying α1 + . . . + αn−1 = α10 + . . . + αm0−1. Then
wσ,t can be prohibited it and only if wσ0,t can be prohibited.</p>
      <p>That means in particular, for storing the set of all wrong continuations it
is enough to construct all pairs (l(W ), l(S)), where (W, &lt;, l) is a prefix of some
LPO in L and S is a subset of direct successors of (W, &lt;, l) extended by an
additional event. For example, the wrong continuation a(b + c)a(b + c)a is stored
in the form (2a + 2b + 2c, a). Moreover, the follower steps of wrong continuations
with equivalent prefixes need to be merged.</p>
      <p>We now define an order on the set of wrong continuations.</p>
      <p>Definition 2 (More restrictive wrong Continuation). A wrong
continuation wσ,t is more restrictive than a wrong continuation wσ0,t0 , if the following
holds: If wσ,t is not a step execution of a place/transition net N , then wσ0,t0 is
not a step execution of N .</p>
      <p>If it is possible to forbid a wrong continuation, then automatically all less
restrictive wrong continuations are forbidden, too. This means, if one considers
more restrictive wrong continuations first, then less places are computed and
runtime is faster.</p>
      <p>If two wrong continuations have equivalent prefixes and the follower step
of the first is included in the follower step of the second, then the first wrong
continuation is more restrictive than the second one, since its follower step needs
less tokens. For example a(b + c)a(2b) is more restrictive than a(b + c)a(2b + c)
in this sense.</p>
      <p>Proposition 2. Let wσ,t = α1 . . . αn−1(αn+t) and wσ00,t0 = α10 . . . αm0−1(αm0+t0)
be wrong continuations of L satisfying α1 + . . . + αn−1 = α10 + . . . + αm0−1 and
(αn + t) ≤ (αm0 + t0). Then wσ,t is more restrictive than wσ0,t0 .</p>
      <p>If the last step of a wrong continuation is sequenzialized by several terminal
steps of a second wrong continuation, then the second wrong continuation is more
restrictive than the first one, since a step is not enabled, if a sequentialization of
the step is not enabled in a marking. For example a(b + c)aa is more restrictive
than a(b + c)(2a) in this sense.</p>
      <p>Proposition 3. Let wσ,t = α1 . . . αn−1(αn+t) and wσ0,t0 = α10 . . . αm0−1(αm0+t0)
be wrong continuations of L satisfying α1 + . . . + αn−1 + (αn + t) = α10 + . . . +
αm0−1 + (αm0 + t0) and α1 + . . . + αn−1 ≥ α10 + . . . + αm0−1. Then wσ,t is more
restrictive than wσ0,t0 .</p>
      <p>According to these oberservations, wrong continuations are ordered in the
following way: Wrong continuations with longer prefixes are considered first and
if two wrong continuations have equal prefix, then the wrong continuation with
the shorter follower step is considered first.
4.1</p>
    </sec>
    <sec id="sec-3">
      <title>Architecture and Functionality</title>
      <p>Overview
The SYNOPS tool is implemented strictly following advanced object oriented
paradigms using a classical 3-tier-architecture:
- The client tier is realized as a command line interface (CLI). In the meanwhile
we also provide a graphical user interface (GUI) which additionally visualizes
Petri net synthesis results. The CLI (resp. GUI) and the middle tier are loosly
coupled, such that an easy and fast change is possible.
- The middle tier (SynCore) encapsulates data types for the supported kinds
of runs, sets of such runs and Petri nets and basic operations for creating,
manipulating and destroying such objects. It can only be accessed via a
facade (SynShell).
- Sets of runs and synthesized Petri nets are stored in text files. For Petri nets
the PNML-standard is used, such that synthesis results can be visualized by
many Petri net editors. For storing sets of runs we use a simple self-created
text format which lists runs, events and edges.
A run consists of a finite set of events labelled by action names and a finite set
of directed edges between events. A run can be represented through the four
different causal structures previously mentioned.</p>
      <p>The object of interest are sets of runs, since synthesis algorithms are operating
on such sets. Every event has an ID which is unique within a run. Every run has
an ID which is unique within a set of runs. Sets have global unique IDs. This
way, each object can be identified by a combination of IDs in the usual way. For
example, the identifier set1.lpo5.event3 represents the event with ID event3
in the run with ID lpo5 belonging to the set with ID set1.</p>
      <p>
        There are several useful operations for manipulation of these data structures,
for example operations testing consistency properties of runs specified by the
user (such as cycle-freeness), operations computing the transitive closure of runs
specified by the user, operations computing all prefixes of a run (based on a
modified version of the algorithm of Warshall [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]) and operations computing
the direct successors of a prefix of a run.
      </p>
      <p>A Petri net consists of places, transitions and two kinds of edges between
places and transitions (flow edges and inhibitor edges). Places have a unique ID,
a name, a number of tokens and a maximum capacity of tokens (which can be
infinity). Transitions have a unique ID and a name. Edges have a weight. This
way several low level Petri net classes can be represented such as place/transition
nets and inhibitor nets. Moreover, there are several restrictions available such
as a bound of 1 for arc weights in order to represent elementary Petri nets.
Such restrictions are realized by overwriting methods in specialized classes. This
modular construction makes it easy to extend the framework by other net classes
in future.
4.3</p>
      <p>Synthesis algorithms
So far, there is only one synthesis algorithm implemented in the download version
of the tool: The algorithm syn-tf-sep computes place/transition nets from finite
sets of LPOs using the separation representation of the set of token flow regions.
4.4</p>
      <p>Command line interface CLI
The CLI allows easy construction of long runs and sets of runs using a term-based
notation. Currently, each command may only contain one operation.
Complicated terms are constructed stepwise command by command.</p>
      <p>A set (of runs) is opened by ’set ID’. After opening a set, runs of the set
can be specified. Runs can only be specified within a set. Finally, a set is closed
by ’tes’.</p>
      <p>A run is opened by ’dag ID’ (for LDAGs), ’lpo ID’ (for LPOs), ’sdag
ID’ (for LSDAGs) or ’lso ID’ (for LSOs). After opening a run, events and
edges of the run can be specified. Events and edges can only be specified within
a run. A run is closed by ’gad’, ’opl’, ’gads’ or ’osl’. After closing a run,
consistency of the user input is checked. Moreover, in case of LPOs and LSOs,
the transitive closure is constructed (that means, it is not necessary to specify
all transitive edges). Finally, all prefixes of the run are computed, preparing the
synthesis computation.</p>
      <p>An event is specified by ’event ID LABEL’. An edge in a LDAG or an LPO
between two events with IDs e1 and e2 is specified by ’et e1 e2’. A ”not later
than” edge is specified by ’nlt e1 e2’. Using these operations, simple runs can
be constructed such as LPO lpo1 shown in Figure 7. Figure 8 shows the syntax
for specifying lpo1.</p>
      <sec id="sec-3-1">
        <title>There are several operations for combining existing runs:</title>
        <p>- If run1 and run2 are runs, then by ’append ID run1 run2’ the sequential
composition of run1 and run2 is stored in a run with ID ID. Sequential
composition means, that from each event in run1 to each event in run2 an
LPO-edge is drawn.
- If run1 and run2 are runs, then by ’compose ID run1 run2’ the parallel
composition of run1 and run2 is stored in a run with ID ID. Parallel
composition means, that between event in run1 and run2 there are no edges.
- If run is a run, then by ’iterate ID run N’ the run is N times sequentially
composed with itself (iterated) and the result is stored in a run with ID ID.</p>
        <p>Using these operations, longer runs can be construced such as LPO lpo2
shown in Figure 7. Figure 9 shows the syntax for specifying lpo2.</p>
        <p>It is also possible to apply sequential composition and iteration only partially
w.r.t. a so called interface. An interface specifies explicitly, which events of the
1 set set1
2 lpo a
3 event a a
4 opl
5 lpo b
6 event b b
7 opl
8 iterate lpo1 b 3
9 compose lpo2 a lpo1
10 tes
previous run are in direct causal dependency with which events of the
subsequent run. Only between such events an edge is drawn. An interface is specified
as an option of the operations append and iterate of the form ’-interface
EDGELIST’, where an edge in EDGELIST between events with IDs e1 and e2 is
specified by ’e1 &lt; e2’ and edges are separated by a space. An interface can be
used to specify LPO lpo3 shown in Figure 7. Figure 10 shows the syntax for
specifying lpo3.</p>
        <p>It is possible to use a run specified in a certain set within another set by
using its fully qualified ID. The same holds for events.</p>
        <p>A run or a set of runs with ID ID can be stored by ’save ID FILE’ at
location FILE. A run or set of runs stored at location FILE can be be loaded by
’load FILE’. A run can be loaded only within an opened set of runs.</p>
        <p>At each stage of the input, by ’state all’ all objects constructed so far
are printed in form of text. The notation used here is the same as in the case of
saving objects. If the GUI is used, by ’plot ID’ the run with ID ID is visualized.</p>
        <p>A synthesis algorithm ALG can be applied to a set of runs with ID ID by ’ALG
ID [OPTIONS]’. The synthesized Petri net is stored in PNML format, such that
it can be visualized by Petri net editors. If the GUI is used instead of the CLI, the
Petri net is also visualized. The user is noticed, if the synthesized net is an exact
solution or not. If the algorithms uses the separation representation and the net
is not an exact solution, all wrong continuations which could not be prohibited
are returned as a tuple (pref ix, step), where pref ix and step are given by their
Parikh-vector (counting the number of transition occurrences in the prefix and
in the follower step). As already mentioned, only the algorithm syn-tf-sep is
available in the download version. This algorithm has no options, so far.</p>
        <p>The program is exited by ’exit’.
4.5</p>
        <p>
          Storing Petri nets and sets of runs
Synthesized Petri nets are stored in the Petri Net Markup Language (PNML)
[
          <xref ref-type="bibr" rid="ref20">20</xref>
          ], version 2009. Runs are stored in a simple text format listing events and
edges. As an example, Figure 11 shows the text file storing LPO lpo3 from
Figure 7.
1 lpo lpo3
2 event a a
3 event b b
4 event c c
5 event a_1 a
6 event b_1 b
7 event c_1 c
8 &lt; a b
9 &lt; a c
10 &lt; a_1 b_1
11 &lt; a_1 c_1
12 &lt; b a_1
13 &lt; a a_1
14 &lt; a b_1
15 &lt; a c_1
16 &lt; b b_1
17 &lt; b c_1
18 opl
We tested the algorithm syn-tf-sep w.r.t. two aspects: Performance, and
compactness and simplicity of the synthesized net.
        </p>
        <p>For testing compactness, we constructed several simple Petri nets with
different initial markings having a finite set of runs, synthesized a net from this set
of runs and compared the result with the initial net. Figure 12 shows two of the
considered Petri nets with parametrized initial marking allowing different
numbers of iterations. The complete set of considered sets of runs can be downloaded
with the tool. In all cases the synthesized net and the initial net coincided.</p>
        <p>
          For testing performance we considered the following examples used in [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]
for comparing performance and number of places of the synthesized net of two
algorithms implemented in VIPTOOL (which also can be downloaded with the
tool):
– LPOs for testing performance in presence of non-determinism (all LPOs are
given in the form of step sequences): lpo1 = b, lpo2 = a(a + b), lpo3 = c(2a),
lpo4 = cb and lpo5 = cc.
– LPOs for testing performance in presence of concurrency (the notion uses
iteration of events of the form an and a parallel composition operator k):
lpo6,n = an k bn k cn.
        </p>
        <p>
          Algorithm basis computes place/transition nets from finite sets of LPOs using
the basis representation of the set of token flow regions. Algorithm classic
computes place/transition nets from finite sets of LPOs using the separation
representation of the set of transition regions of the step language corresponding
to the set of LPOs. It turned out in [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] that algorithm basis performed much
better in case of much concurrency and little nondeterminism (test series lpo6,n)
and the other way round that algorithm classic performed much better in case
of little concurrency and much nondeterminism (test series with combinations
of lpo1 - lpo5). Moreover, algorithm classic computed smaller nets.
        </p>
        <p>Our experimental results show, that algorithm syn-tf-sep computes as
small nets as algorithm classic, since it also uses the separation representation.
Concerning performance on the other side, algorithm syn-tf-sep performes
much better than algorithm classic and little worse than algorithm basis for
the test series lpo6,n (for example runtimes 13 ms for the LPO-set {lpo6,2} and
132 ms for {lpo6,3}). Concerning the test series with combinations of lpo1 - lpo5,
it performs as fast as algorithm classic (for example runtimes 5 ms for the
LPO-set {lpo1, lpo2} and 6 ms for {lpo1, lpo2, lpo3, lpo4, lpo5}). Altogether, it is
able to cope with nondeterminism and concurrency (since we ran the algorithms
basis and classic several years ago on another system at another institut as
syn-tf-sep, it does not make sense to compare absolute runtimes).</p>
        <p>Currently we are working on a more efficient implementation concerning
concurrency. In particular, it is possible to significantly reduce the number of
prefixes, which need to be computed, by considering a more compact representation
of iterations (which is currently implemented in the context of infinite iterations,
see Section 7).
6</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Comparison to other Tools</title>
      <p>
        Up to our best knowledge, the only tool which also supports synthesis from
partial languages is the graphical Petri net editor VIPTOOL [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. In VIPTOOL
many synthesis algorithms for languages of LPOs of the first phase 2008 - 2010 of
the project SYNOPS are implemented [
        <xref ref-type="bibr" rid="ref15 ref16 ref2 ref3 ref5">5,2,3,16,15</xref>
        ]. VIPTOOL concentrates on
business process modelling and has also verification and simulation capabilities.
VIPTOOL currently is further developed and maintained at Distance
University in Hagen (Germany), while the project and tool SYNOPS is developed at
Augsburg University (Germany). In contrast to VIPTOOL, the SYNOPS tool
supports more kinds of causal structures and Petri net classes and more general
classes of infinite partial languages (see section 7). It only concentrates on
synthesis capabilities and is text based. It mainly serves for rapid implementation
and evaluation of newly developed term based representations of infinite
partial languages and synthesis algorithms. For such term based representation and
synthesis algorithms, which turn out to be stable, an integration into VIPTOOL
is planned.
      </p>
      <p>
        There is is another tool-supported line of research considering transition
systems instead of languages as behavioral specification. The tool [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] computes
distributable bounded Petri nets from such specifications. In [
        <xref ref-type="bibr" rid="ref7 ref8">8,7</xref>
        ] tools are
described which synthesize labelled Petri nets with non-unique transition names
(here the techniques are different to the presented ones).
      </p>
      <p>
        One application of synthesis algorithms is process mining. There is a big
tool frame work called PROM [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] which integrates many different mining and
analysis capabilities concerning process modells and event logs. The mining tools
are based on descriptions of the sequential behavior of systems (which cannot
directly represent concurrency).
7
      </p>
    </sec>
    <sec id="sec-5">
      <title>Outlook</title>
      <p>
        Currently, an analoguous algorithm is implemented for the synthesis of general
inhibitor nets from finite sets of LSOs [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] based on results in [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. For this,
some new ideas concerning wrong continuation were developed (which are not
presented here due to lack of space). Within another bachelor thesis, operations
for the specification of infinite sets of LPOs and a corresponding synthesis
algorithm are implemented at the time of writing [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] based on results in [
        <xref ref-type="bibr" rid="ref14 ref5">5,14</xref>
        ]. In
[
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] a synthesis algorithm which computes place/transition nets from finite sets
of LDAGs is described. This algorithm still needs some improvements which are
currently implemented.
      </p>
      <p>The presented set of operations is currently extended by the following
operations allowing fast generation of large sets of runs: Alternative composition of
runs, sequential composition, parallel composition and iteration of sets of runs,
and standard operations on sets (of runs) like union, intersection, difference.</p>
      <p>In order to increase usability, we plan to implement shortcuts for all
operations (such a ’a&lt;b’ instead of ’et a b’ or ’lpo1 a&lt;b’ instead of ’append lpo1
a b’) and the possibility to use more than one operation in a command (such
as ’lpo1 a&lt;(b|c)’ instead of the sequence ’compose lpo0 b c’ and ’append
lpo1 a lpo0’).</p>
      <p>Further steps are: Adapting the algorithms to restriced net classes such as
elementary nets and workflow nets and to the use of additional information such
as predefined places or undesired runs.
8</p>
    </sec>
    <sec id="sec-6">
      <title>Download</title>
      <p>
        The tool can be downloaded from the project webpage [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. There are executable
program files for 32 Bit and 64 Bit Windows systems, with and without GUI.
On the webpage you also find the example sets of runs we used to evaluate the
tool.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>R.</given-names>
            <surname>Bergenthum</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Desel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Lorenz</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Mauser</surname>
          </string-name>
          .
          <source>Process Mining Based on Regions of Languages</source>
          . In G. Alonso,
          <string-name>
            <given-names>P.</given-names>
            <surname>Dadam</surname>
          </string-name>
          , and M. Rosemann, editors,
          <source>BPM</source>
          , volume
          <volume>4714</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>375</fpage>
          -
          <lpage>383</lpage>
          . Springer,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>R.</given-names>
            <surname>Bergenthum</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Desel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Lorenz</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Mauser</surname>
          </string-name>
          .
          <source>Synthesis of Petri Nets from Finite Partial Languages. Fundam. Inform.</source>
          ,
          <volume>88</volume>
          (
          <issue>4</issue>
          ):
          <fpage>437</fpage>
          -
          <lpage>468</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>R.</given-names>
            <surname>Bergenthum</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Desel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Lorenz</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Mauser</surname>
          </string-name>
          .
          <article-title>Synthesis of Petri Nets from Scenarios with Viptool</article-title>
          . In
          <string-name>
            <surname>K. M. van Hee</surname>
            and
            <given-names>R</given-names>
          </string-name>
          . Valk, editors,
          <source>Petri Nets</source>
          , volume
          <volume>5062</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>388</fpage>
          -
          <lpage>398</lpage>
          . Springer,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>R.</given-names>
            <surname>Bergenthum</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Desel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Mauser</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Lorenz</surname>
          </string-name>
          .
          <article-title>Construction of Process Models from Example Runs</article-title>
          .
          <source>T. Petri Nets and Other Models of Concurrency</source>
          ,
          <volume>2</volume>
          :
          <fpage>243</fpage>
          -
          <lpage>259</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>R.</given-names>
            <surname>Bergenthum</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Desel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Mauser</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Lorenz</surname>
          </string-name>
          .
          <article-title>Synthesis of Petri Nets from Term Based Representations of Infinite Partial Languages</article-title>
          . Fundam. Inform.,
          <volume>95</volume>
          (
          <issue>1</issue>
          ):
          <fpage>187</fpage>
          -
          <lpage>217</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>B.</given-names>
            <surname>Caillaud.</surname>
          </string-name>
          Synops-Homepage.,
          <year>2002</year>
          . http://www.informatik.uniaugsburg.de/lehrstuehle/ inf/projekte/synops/.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>J.</given-names>
            <surname>Carmona</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Cortadella</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Kishinevsky</surname>
          </string-name>
          .
          <article-title>Genet: A Tool for the Synthesis and Mining of Petri Nets</article-title>
          .
          <source>In ACSD</source>
          , pages
          <fpage>181</fpage>
          -
          <lpage>185</lpage>
          . IEEE Computer Society,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>J.</given-names>
            <surname>Cortadella</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kishinevsky</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kondratyev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Lavagno</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Yakovlev</surname>
          </string-name>
          .
          <article-title>Petrify: A Tool for Manipulating Concurrent Specifications and Synthesis of Asynchronous Controllers</article-title>
          .
          <source>IEICE Trans. of Informations and Systems</source>
          , E80-D(3):
          <fpage>315</fpage>
          -
          <lpage>325</lpage>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>J.</given-names>
            <surname>Cortadella</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kishinevsky</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kondratyev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Lavagno</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Yakovlev</surname>
          </string-name>
          . Hardware and Petri Nets:
          <article-title>Application to Asynchronous Circuit Design</article-title>
          .
          <source>In ICATPN</source>
          <year>2000</year>
          ,
          <article-title>LNCS 1825</article-title>
          , pages
          <fpage>1</fpage>
          -
          <lpage>15</lpage>
          . Springer,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>J.</given-names>
            <surname>Desel</surname>
          </string-name>
          .
          <article-title>From Human Knowledge to Process Models</article-title>
          . In R. Kaschek,
          <string-name>
            <given-names>C.</given-names>
            <surname>Kop</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Steinberger</surname>
          </string-name>
          , and G. Fliedl, editors,
          <source>UNISCON, volume 5 of Lecture Notes in Business Information Processing</source>
          , pages
          <fpage>84</fpage>
          -
          <lpage>95</lpage>
          . Springer,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>J.</given-names>
            <surname>Desel.</surname>
          </string-name>
          VipTool-Homepage.,
          <year>2010</year>
          . http://www.fernunihagen.de/se/viptool.html.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>M. B. Josephs</surname>
            and
            <given-names>D. P.</given-names>
          </string-name>
          <string-name>
            <surname>Furey</surname>
          </string-name>
          .
          <article-title>A Programming Approach to the Design of Asynchronous Logic Blocks</article-title>
          .
          <source>In Concurrency and Hardware Design</source>
          <year>2002</year>
          , LNCS
          <volume>2549</volume>
          , pages
          <fpage>34</fpage>
          -
          <lpage>60</lpage>
          . Springer,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>R.</given-names>
            <surname>Lorenz</surname>
          </string-name>
          . Synops-Homepage.,
          <year>2010</year>
          . http://www.informatik.uniaugsburg.de/lehrstuehle/ inf/projekte/synops/.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>R.</given-names>
            <surname>Lorenz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Desel</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Juhas</surname>
          </string-name>
          .
          <article-title>Models from scenarios</article-title>
          .
          <source>In Proccedings of ”Advanced Course on Petri Nets</source>
          <year>2010</year>
          ”,
          <source>T. Petri Nets and Other Models of Concurrency, Lecture Notes in Computer Science</source>
          . Springer, to appear in
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>R.</given-names>
            <surname>Lorenz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Mauser</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Bergenthum</surname>
          </string-name>
          .
          <article-title>Theory of Regions for the Synthesis of Inhibitor Nets from Scenarios</article-title>
          .
          <source>In J. Kleijn and A</source>
          . Yakovlev, editors,
          <source>ICATPN</source>
          , volume
          <volume>4546</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>342</fpage>
          -
          <lpage>361</lpage>
          . Springer,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>R.</given-names>
            <surname>Lorenz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Mauser</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Juhás</surname>
          </string-name>
          .
          <article-title>How to synthesize Nets from Languages: a Survey</article-title>
          . In S. G. Henderson,
          <string-name>
            <given-names>B.</given-names>
            <surname>Biller</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.-H. Hsieh</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Shortle</surname>
            ,
            <given-names>J. D.</given-names>
          </string-name>
          <string-name>
            <surname>Tew</surname>
            , and
            <given-names>R. R</given-names>
          </string-name>
          . Barton, editors,
          <source>Winter Simulation Conference</source>
          , pages
          <fpage>637</fpage>
          -
          <lpage>647</lpage>
          . WSC,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>17. Process Mining Group Eindhoven Technical University: ProM-Homepage. http://www.promtools.org/prom5/.</mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>J.</given-names>
            <surname>Robl</surname>
          </string-name>
          .
          <article-title>Synthese von Petrinetzen aus unendlichen Mengen beschrifteter partieller Ordnungen, to be finished july 2012</article-title>
          .
          <article-title>Bachelor thesis</article-title>
          , Universität Augsburg.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <given-names>K.</given-names>
            <surname>Rüschenbaum</surname>
          </string-name>
          .
          <article-title>Synthese von Petrinetzen aus endlichen Mengen beschrifteter</article-title>
          , gerichteter,
          <source>azyklischer Graphen</source>
          ,
          <year>2011</year>
          . Bachelor thesis, Universität Augsburg.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20. P. team.
          <source>PNML.org: The Petri Net Markup Language home page</source>
          , 8
          <year>2011</year>
          . http: //www.pnml.org/.
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <given-names>M.</given-names>
            <surname>Urban</surname>
          </string-name>
          .
          <article-title>Synthese von Inhibitornetzen aus endlichen Mengen beschrifteter</article-title>
          , geschichteter Ordnungen, to be finished march
          <year>2012</year>
          .
          <article-title>Bachelor thesis</article-title>
          , Universität Augsburg.
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>W. M. P. van der Aalst</surname>
            and
            <given-names>C. W.</given-names>
          </string-name>
          <string-name>
            <surname>Günther</surname>
          </string-name>
          .
          <article-title>Finding Structure in Unstructured Processes: The Case for Process Mining</article-title>
          .
          <source>In ACSD</source>
          , pages
          <fpage>3</fpage>
          -
          <lpage>12</lpage>
          . IEEE Computer Society,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>W. M. P. van der Aalst</surname>
            ,
            <given-names>B. F. van Dongen</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Herbst</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Maruster</surname>
          </string-name>
          ,
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>Schimm, and</article-title>
          <string-name>
            <given-names>A</given-names>
            .
            <surname>J. M. M. Weijters</surname>
          </string-name>
          .
          <article-title>Workflow Mining: A Survey of Issues and Approaches</article-title>
          . Data Knowl. Eng.,
          <volume>47</volume>
          (
          <issue>2</issue>
          ):
          <fpage>237</fpage>
          -
          <lpage>267</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <given-names>S.</given-names>
            <surname>Warshall</surname>
          </string-name>
          .
          <article-title>A Theorem on Boolean Matrices</article-title>
          .
          <source>Journal of the ACM 9</source>
          , (
          <issue>1</issue>
          ):
          <fpage>11</fpage>
          -
          <lpage>12</lpage>
          ,
          <year>1962</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>M. Zhou</surname>
            and
            <given-names>F. D.</given-names>
          </string-name>
          <string-name>
            <surname>Cesare</surname>
          </string-name>
          .
          <source>Petri Net Synthesis for Discrete Event Control of Manufacturing Systems</source>
          . Kluwer,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>