<!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>Deadlocks and livelocks in resource constrained workflow nets</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Gabriel Juhás</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ana Juhásová</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tomáš Kováčik</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Faculty of Electrical Engineering and Information Technology, Slovak University of Technology in Bratislava</institution>
          ,
          <addr-line>Ilkovičova 3, 812 19 Bratislava</addr-line>
          ,
          <country country="SK">Slovakia</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The paper is presenting a method for detection of locks (both deadlocks and livelocks) in discrete event systems with shared resources and multiple instances modeled by resource constrained workflow nets. We consider that multiple instances with determined initial state and a correct final state are running in workflow nets. We consider workflow processes, in which instances can share several types of resources, with instances neither creating nor destroying shared resources. It means, that instances can use resources but the used resources are returned at the latest by the correct finish of the instance. Such resources are said to be durable. Examples of durable resources include resources of information systems, such as memory and processors or employees in roles in an organizational structure. We consider processes, which have enough resources to execute a single instance, such processes are said to be sound. A lock is a state of the process, where several instances are running but because of the lack of shared resources not all running instances can finish properly. The main result of the paper is the theorem stating that in sound workflow processes with several types of shared durable resources for given initial number of resources and an arbitrary unbounded number of running instances it is enough to test locks for a finite bounded number of instances, with the upper bound indicated.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Petri net</kwd>
        <kwd>Deadlock</kwd>
        <kwd>Livelock</kwd>
        <kwd>Resource constrained workflow net</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        In [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] authors work with workflow processes with instances, in which instances share common
resources. The processes are modeled by resource constrained workflow nets, where shared
resources are modeled by so called static places. Except shared resources, instances are
independent. Shared resources considered in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] are durable, i.e. the resources are neither created
nor destroyed by instances. Resources in information systems, such as memory, processors,
i/o ports are typical examples of durable resources. Similarly, employees in particular roles
considered by workflow processes can represent an example of durable resources.
      </p>
      <p>
        The main problem solved in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is the problem of correct finish of all instances of a workflow
process with shared durable resources. The problem is solved for processes with one type of
durable resources. The method from [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] decides whether there is a number of shared resources
such that for this number of resources and any greater number of resources any number of
instances can be correctly finished. If the answer is true, then the workflow process is according
to [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] called sound.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] authors solve the soundness problem for several subclasses of resource constrained
workflow nets. In [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] four necessary conditions of soundness of resource constrained workflow
nets based on structural analysis are presented.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
        ] we defined a technique based on a constructor and a runtime net to detect instance
deadlocks of resource constrained workflow nets (called workflow nets with static places) for
a fixed number of durable resources and an arbitrary number of instances. However, method
from [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] did not work for livelocks.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref6 ref7">6, 7</xref>
        ] authors using a technique based on constructor and using a transformed net from
[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] (called production net in [
        <xref ref-type="bibr" rid="ref6 ref7">6, 7</xref>
        ]) proved that the soundness problem for resource constrained
workflow nets which are sound for one instance, is decidable even for the case where resources
are not durable. The proof is based on the reduction to the home space problem of Petri nets,
which was proved to be decidable in [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. At the same time, the papers [
        <xref ref-type="bibr" rid="ref6 ref7">6, 7</xref>
        ] prove that in general,
i.e. if the soundness for one instance is not required and the resources does not necessarily need
to be durable, the problem of soundness in resource constrained workflow nets is undecidable.
In [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] authors using the constructor from [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] proved, that if the nets are sound for one case, then
the soundness problem is decidable even if the instances are not independent (the investigated
net corresponding to our runtime net is not serializable). For more about serializability see
e.g. [
        <xref ref-type="bibr" rid="ref10 ref11">10, 11</xref>
        ]. Paper [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] extends an unsuccessful attempt to prove decidability of soundness for
resource constrained workflow nets presented in [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. In the proof of results from [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] authors
again used reduction to home space problem of Petri nets. As it is written at the end of the
paper [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], soundness of resource constrained workflow nets is decidable, but up to now there
is no efective algorithm, because the algorithm proposed in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] requires the test of general
reachability in possibly unbounded Petri nets [
        <xref ref-type="bibr" rid="ref13 ref14 ref15 ref16 ref17">13, 14, 15, 16, 17</xref>
        ]. The similar argument can be
found at the end of original paper solving home space problem [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>
        There are workflow processes, which for some fixed initial number of shared resources can
correctly finish any number of instances, but for some greater number of shared resources
the same process cannot finish for some number of instances running in parallel. Thus, such
processes are not sound according to the definition of [
        <xref ref-type="bibr" rid="ref1 ref9">1, 9</xref>
        ]. An example of such a not sound
process is on Figure 1, which can finish any number of instances for the given number of shared
resources in static places free key, free memory, free processor. However, adding any number of
resources to the static place free key will cause that the process may deadlock for the number
of instances greater than 3. In general, once the number of resources in the place free key is
smaller than the sum of free resources in places free memory and free processor, then the process
will have no deadlock, otherwise it will contain a deadlock for any number of instances greater
of equal the sum of shared resources in places free memory and free processor.
      </p>
      <p>In this work we will prove, that in order to decide, whether the workflow process with
arbitrary finite number of resource types and arbitrary unbounded number of instances with
ifxed initial number of durable shared resources will contain a lock (i.e. a deadlock or a liveclock),
it sufices to check the existence of locks for bounded number of instances. We also will show
how to compute such upper bounds.</p>
      <p>free key</p>
      <p>key
free memory
free processor</p>
    </sec>
    <sec id="sec-2">
      <title>2. Labelled transition systems</title>
      <p>
        As a basic model of process behaviour we will use labelled transition systems [
        <xref ref-type="bibr" rid="ref18 ref19">18, 19</xref>
        ].
      </p>
      <sec id="sec-2-1">
        <title>Definition 1 (Labelled transition system).</title>
        <p>A labelled transition system is an ordered triple (, , →−
•  is a set of states,
•  is a set of events,
• →−⊆  ×  ×  is a transition relation.</p>
        <p>The fact, that (, , ′) belongs to →−</p>
        <p>is referred as  →− ′.</p>
        <p>We will use labelled transition systems that have determined an initial state from which any
other state is reachable.</p>
        <p>To define reachability of states, we first define the notion of a sequence and the notion of an
index set.</p>
      </sec>
      <sec id="sec-2-2">
        <title>Definition 2 (Index set).</title>
        <p>Index set I is a subset of positive integers satisfying: if a positive integer  belongs to the index set I,
then any positive integer smaller than  belongs to the index set I. If I is a finite nonempty set with
the maximum , then the number  is referred as I. If I is the empty set, then I = 0.
Definition 3 (Sequence).</p>
        <p>Let I be an index set and  be a set. Then a function  : I →  associating an element  () from
the set  to each index  from the index set I, is called a sequence of elements from the set . If I is
a finite set, then we say that  is finite sequence with length I. Especially, if I is the empty set,
then we say that  is the empty sequence. If I is equal to the set of all positive integers, then we say
that  is an infinite sequence.</p>
        <p>For illustration, consider a sequence of characters  =  from the set of characters
 = {, }. Intuitively, we understand that it is a finite sequence with length 4. In accordance
with Definition 2 we use the index set I = {1, 2, 3, 4}. The sequences  is formalized as follows:
 (1) = ,  (2) = ,  (3) =  a  (4) = , i.e. the first element of the sequence  is character
, the second element is , the third element is again  a the fourth element is character .</p>
      </sec>
      <sec id="sec-2-3">
        <title>Definition 4 (Occurrence sequence, reachability).</title>
        <p>Let (, , →− ) be a labelled transition systems. Let  ∈  be a state and let  : I →  be a finite
sequence of events. Sequence  can occur in state  if there exists a function  : I ∪ {0} → 
such that  (0) =  and for each positive integer  ∈ I:  ( − 1) →() −  (). The occurrence of the
sequence  in the state  leads to the state  (I).</p>
        <p>A state ′ ∈  is reachable from a state  if there is an occurrence sequence  , which leads from
 to ′.</p>
        <p>The fact that a finite sequence  can occur in  and its occurrence leads to ′ is referred as
 →− ′.</p>
        <p>Remember, that according to Definition 4 for any state  we have: the empty sequence can
occur in  and its occurrence leads to , i.e.  is self-reachable by occurrence of the empty
sequence.</p>
      </sec>
      <sec id="sec-2-4">
        <title>Definition 5 (Pointed labelled transition system).</title>
        <p>A pointed labelled transitions system is an ordered quadruple (, , →− , ), where (, , →− ) is
a labelled transition system and  ∈  is its initial state, while for each state  ∈  there holds
that  is reachable from .</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Petri nets</title>
      <p>
        In this section we briefly introduce the basic definition of Petri nets [
        <xref ref-type="bibr" rid="ref20 ref21 ref22 ref23 ref24 ref25">20, 21, 22, 23, 24, 25</xref>
        ].
      </p>
      <sec id="sec-3-1">
        <title>Definition 6 (Petri net).</title>
        <p>A Petri net is an ordered quadruple (, , , ), where:
•  is a set of places
•  is a set of transitions
•  ∩  = ∅
•  :  ×  → N is an input function, where N stands for the set of non-negative integers.
•  :  ×  → N is an output function.</p>
        <p>A state of a Petri net is given by a marking.</p>
        <p>Definition 7 (Marking).</p>
        <p>Let   = (, , , ) be a Petri net. A function  :  → N attaching a non-negative integer to
each place is called a marking of Petri net   . The value () defines the number of tokens in a
place  ∈  . A marking will be written in form of a sum of marking of places, i.e. ∑︀∈ ().
The set of places, for which () is greater than zero, is called the support of marking  and is
denoted by (), formally for each  ∈  there holds that  belongs to () if () &gt; 0.</p>
        <p>Places can be understood as types of tokens. As an example, if a set of places is given by
 = {, , }, we have three types of tokens, tokens of type , tokens of type  and tokens of
type . Consider a marking  :  → N such that () = 2, () = 0 and finally () = 1. It
means, that the marking expresses a state with two tokens of type , no tokens of type  and
one token of type , which will be expressed by expression 2 + 0 + 1, or more simply by
expression 2 +  (i.e. two tokens of type  and a token of type ), generally by expression
∑︀∈ ().</p>
        <sec id="sec-3-1-1">
          <title>The fact, that for markings  and ′ there holds () ≤ ′() for each  ∈  , is denoted</title>
          <p>by  ≤ ′. Further,  &lt; ′, respectively ′ &gt;  denotes the fact that  ≤ ′ and there
exists  ∈  such that () &lt; ′(). If  &lt; ′, we say that  is smaller than ′, and ′ is
greater than , respectively. The sum of two markings  a ′ is marking  + ′ such that
( + ′)() = () + ′() for each  ∈  . If  ≤ ′, then the diference of markings ′ a
 is given by marking ′ −  such that (′ − )() = ′() − () for each  ∈  .</p>
          <p>Dynamics of a Petri net is given by firing of transitions.</p>
          <p>Definition 8 (Transition firing).</p>
          <p>Let   = (, , , ) be a Petri net. Let  :  → N be a marking and  ∈  be a transition
of the net   . Transition  is enabled to fire in marking  if for each  ∈  there holds:
() ≥ (, ).</p>
          <p>If transition  is enabled to fire in marking , then its firing in  leads to marking ′ such that
for each  ∈  there holds: ′() = () − (, ) + (, ).</p>
          <p>We will consider that a Petri net has initial marking. A Petri net together with an initial
marking will be referred as marked Petri net.</p>
          <p>Definition 9 (Marked Petri net).</p>
          <p>A marked Petri net is an ordered quintuple    = (, , , , 0), where   = (, , , )
is a Petri net and 0 is a marking of   called initial marking.</p>
          <p>Graphically places are depicted as circles, markings of places by number of tokens inside
of places, transitions are depicted as squares. Enabled transitions are filled (by green color).
Non-zero value of input function (, ) is expressed by an arrow from place  to transition
, while the value greater than one is written by the arc. Non-zero value of output function
(, ), is expressed by an arrow from transition  to place , while the value greater than one is
written by the arc. These non-zero values will be referred as weights of arcs. All Petri nets used
in this work where modelled in an online Petri net editor, accessible at www.petriflow .com.</p>
          <p>Petri nets defines a labelled transition system in a natural way by firing enabled transitions.
Definition 10 (Reachability graph of a Petri net).</p>
          <p>Let   = (, , , ) be a Petri net. A labelled transition system (, , →−
•  is the set of all markings, i.e. the set of all functions from  to non-negative integers N,
•  =  ,</p>
          <p>•  →− ′ if transition  is enabled to fire in marking  and firing of  in  leads to
marking ′,
is called reachability graph of Petri net   .</p>
          <p>We also define reachability graphs of marked Petri nets.</p>
          <p>Definition 11. (Reachability graph of a marked Petri Net)
Let    = (, , , , 0) be a marked Petri net. Let (, , →− ) be reachability graph
of Petri net   = (, , , ). Let [0⟩ denote the set of all markings reachable from 0
in reachability graph of Petri net   . Then pointed labelled transition system ([0⟩, , →−
∩([0⟩ ×  × [0⟩), 0) is called reachability graph of marked Petri net    . If sequence
 can occur in  and its occurrence in  leads to ′ in the reachability graph of    , then
we say that sequence  is enabled to fire in marking  in net    and its firing in  leads to
the marking ′ in net    . We also say that marking ′ is reachable from marking  in the
marked Petri net    .</p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>Definition 12 (Boundedness).</title>
        <p>A marked Petri net    = (, , , , 0) is bounded if there exists a function  :  → N,
such that for each marking  reachable from 0 in    there holds:  ≤ . Function  is
called the bound of net    .</p>
        <p>
          In the case that a marked Petri net has finitely many places is the boundedness equivalent
with the finiteness of the number of reachable markings. For more results on boundedness see
e.g. [
          <xref ref-type="bibr" rid="ref26 ref27 ref28">26, 27, 28</xref>
          ].
        </p>
        <p>Corollary 1. A marked Petri net    = (, , , , 0) with finite set of places is bounded
if the number of markings reachable from 0 in    is finite.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Workflow nets</title>
      <p>
        We focus on processes, where instances has a unique start and unique correct finish. In literature,
such systems are modeled by workflow nets [
        <xref ref-type="bibr" rid="ref29 ref30 ref31 ref32">29, 30, 31, 32</xref>
        ].
      </p>
      <sec id="sec-4-1">
        <title>Definition 13 (Workflow net).</title>
        <p>A workflow net is a Petri net   = (, , , ) with finite number of places and transitions in
which there exists a unique place  ∈  and a unique place  ∈  such that
• for each  ∈  there holds (, ) = 0 and there exists such  ∈  that (, ) ̸= 0,
• for each  ∈  there holds (, ) = 0 and there exists such  ∈  that (, ) ̸= 0.
Place  is called input place of workflow net   and place  is called output place of workflow
net   .</p>
        <p>A marked workflow net is a workflow net with a special initial marking, in which only the
input place is marked.</p>
      </sec>
      <sec id="sec-4-2">
        <title>Definition 14 (Marked workflow net).</title>
        <p>A marked workflow net is a marked Petri net    = (, , , , 0), where   = (, , , )
is a workflow net and 0 = , i.e. 0() = 1 and 0() = 0 for each  ∈  diferent from .</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Petri nets and workflow nets with static places</title>
      <p>
        Processes with instances and shared resources will be modeled by Petri nets with static places
[
        <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
        ]. Static places inspired by static variables in Java will model shared resources. Petri nets
with static places were inspired by workflow nets with static places originally defined in papers
[
        <xref ref-type="bibr" rid="ref1 ref3 ref33">33, 1, 3</xref>
        ] under the name resource constrained workflow nets.
      </p>
      <sec id="sec-5-1">
        <title>Definition 15 (Petri net with static places).</title>
        <p>Petri net with static places is a quintuple    = (, , , , ), where
•  is a set of dynamic places
•  is a set of static places
•  ∩  = ∅
•   = ( =  ∪ , , , ) is a Petri net.</p>
        <p>Static places will be depicted by dashed circles.</p>
      </sec>
      <sec id="sec-5-2">
        <title>Definition 16. (Marked Petri net with static places)</title>
        <p>Marked Petri net with static places is a sextuple     = (, , , , , 0), where
•    = (, , , , ) is a Petri net with static places
•    = ( =  ∪ , , , , 0) is marked Petri net.</p>
        <p>We say that a transition is enabled to fire in a marked Petri net with static places     if it is
enabled to fire in marked Petri net    . A reachability graph of a marked Petri net with static
places     is the reachability graph of marked Petri net    . All notion defined for marked
Petri net    will analogously used for marked Petri net with static places    .
Definition 17. (Workflow net with static places/resource constrained workflow net)
workflow net with static places, also called resource constrained workflow net, is a Petri net with
static places  = (, , , , ), where   = ( =  ∪ , , , ) is a workflow net such
that  ∈  and  ∈ .</p>
        <p>A</p>
        <p>Initial marking of a marked workflow net with static places contains one token in the input
place, no tokens in dynamic places diferent from the input place and any number of tokens
representing shared resources in static places.</p>
        <p>Definition 18. (Marked workflow net with static places)
A marked workflow net with static places is a sextuple   = (, , , , , 0), where
•  = (, , , , ) is a workflow net with static places
• 0 is initial marking such that () = 1 and () = 0 for each dynamic place  ∈ ,
which is diferent from .</p>
        <p>
          In comparison with [
          <xref ref-type="bibr" rid="ref1 ref3 ref33">33, 1, 3</xref>
          ] we formalize durable resources via (weak) complementary
places [
          <xref ref-type="bibr" rid="ref34">34</xref>
          ] of static places.
        </p>
        <p>Definition 19. (Remembering workflow net with static places)
Let  = (, , , , ) be such workflow net with static places, that for each places  ∈  there
exists a unique (weak)complementary place  ∈  diferent from  and , which for each
 ∈  satisfies (, ) − (, ) = (, ) − (, ). Workflow net  is called remembering
workflow net with static places. The set of all complementary places of static places is denoted by
.</p>
        <p>The equality (, ) − (, ) = (, ) − (, ) in a marked remembering workflow net
with static places implies that in case that (, )− (, ) = 0, we also have (, )− (, ) =
0. It means, that firing any transition may create a token in a complementary place  of a
static place  if it consumes a token from the static place . Because in any initial marking
the complementary place  is empty, we get that the sum of tokens in a static place  and its
complementary place  equals 0().</p>
        <p>Corollary 2. Let   = (, , , , , 0) be a marked remembering workflow net with static
places. Let  ∈  be a static place and let  ∈  be its complementary place. Then for each
marking  reachable from 0 there holds: () + () = 0() and therefore () ≤ 0().</p>
        <p>
          1-soundness of a marked workflow net with static places is defined analogously to soundness
of workflow nets in [
          <xref ref-type="bibr" rid="ref32">32</xref>
          ] as the ability to finish correctly a single instance.
        </p>
        <p>Definition 20. (Final marking of marked workflow net with static places)
Let   = (, , , , , 0) be a marked workflow net with static places. A marking 
of net   reachable from 0 is called a final marking of   if there holds:  () = 1,
 () = 0 for each  ∈  diferent from .</p>
        <p>Definition 21. ( 1-soundness of marked workflow net with static places)
Let   = (, , , , , 0) be a marked workflow net with static places and let  ∈ 
denote the output place. Marked workflow net with static places   is 1-sound if for each
marking  reachable from 0 there holds:
• there exists a final marking  of net   , which is reachable from marking ,
• if () ≥ 1 then  is a final marking of net   .</p>
        <p>For marked remembering workflow nets with static places we have:
Corollary 3. Let   = (, , , , , 0) be a marked remembering workflow net with static
places and let  be a final marking of   . Then  () = 0() for each  ∈  and therefore
 is a unique final marking of   .</p>
        <p>For 1-sound marked remembering workflow nets with static places we get:
Lemma 1. If a marked remembering workflow net with static places is 1-sound then the number
of its reachable markings is finite, i.e. the net is bounded.</p>
        <p>
          Proof. Let the number of markings reachable from 0 is not finite. According to Dickson’s
lemma [
          <xref ref-type="bibr" rid="ref35">35</xref>
          ], let  and ′ are markings reachable from 0 such that  &lt; ′. From definition
of 1-soundness we get that ′() = 1 or ′() = 0 and () = 1 or () = 0.
Because  &lt; ′, we also get () ≤ ′() for each  ∈ .
        </p>
        <p>• The combination ′() = 1 and () = 1 means that ′ =  = , what
contradicts that  &lt; ′.
• The combination ′() = 0 and () = 1 is in contradiction with  &lt; ′.
• The combination ′() = 1 and () = 0 means that ′ =  . Assuming that
 &gt;  we get () = 0 for each  ∈ ). From first item of 1-soundness we further
get that  is reachable from  by firing of a sequence of transitions. From definition of
transition firing it is clear that whenever a sequence is enabled to fire from a marking, it
is enabled to fire from any greater marking, and therefore also from  . Because firing
of that sequence leads from  to  , its firing from  leads to the marking ′′ such
that ′′() =  () + ( () − ()), i.e. ′′() = 1 + (1 − 0)) = 2,
what contradicts with the second item of 1-soundness implying that for each marking
′′ reachable from 0 there holds ′′() ≤ 1.
• The combination ′() = 0 a () = 0 means by assumption  &lt; ′, that there
exists  ∈  diferent from  such that ′() &gt; (). At the same time from the
ifrst item of 1-soundness we get that  is reachable from  by firing a sequence of
transitions. From definition of transition firing it is clear that whenever a sequence
is enabled to fire from a marking, it is enabled to fire from any greater marking, and
therefore also from ′. Because firing of that sequence leads from  to  , its firing from
′ leads to the marking ′′ = ′ + ( − ). Because ′() = 0 and () = 0,
we get ′′() = 1. At the same time ′() &gt; (). If  ∈ , we get ′′() &gt; 0,
what contradicts the second item of 1-soundness. If  ∈ , we get ′′() &gt;  (), what
contradicts Corollaries 2 a 3.</p>
        <p>It means that if a marked remembering workflow net with static places is 1-sound, then the
number of its reachable markings is finite and therefore the net is bounded. □</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>6. Reachability nets</title>
      <p>In order to investigate the ability to finish properly arbitrary number of instances running in
parallel, we need to find a net, which will simulate the runtime environment with copies of a
dynamic part of a workflow net for each instance sharing just static places. Such a net should
prohibit the mixing of tokens from diferent copies. In other words, the net simulating the
runtime environment should separate reachable markings of dynamic places of instances. One
possible way to reach this goal is to use the reachability graph of the original workflow net as
an inspiration.</p>
      <p>First we will define some basic notions which will be further used to define such so called
reachability net.</p>
      <sec id="sec-6-1">
        <title>Definition 22 (Notation).</title>
        <p>Let  be a set, let  be a set and let  be a set such that  ⊆  . Let  :  →  be a function.
Let | denote restriction of  to , i.e. | :  →  such that |() = () for each
 ∈ . Let  be a set such that  ⊆  , and let  ∩  = ∅ ( a  are disjoint), then we denote
| ∪ | = |( ∪ ). Let us denote by  ∖  the set diference  and , as a set satisfying
 ∩ ( ∖ ) = ∅ and ( ∖ ) ∪  =  (we define the set diference only for the case that  is a
subset of  ). Let [ → ] denote the set of all functions from  to . For  being a finite set, let
|| denote the number of elements of .</p>
      </sec>
      <sec id="sec-6-2">
        <title>Definition 23 (Set of reachable D-markings).</title>
        <p>Let    = (, , , , 0) be a marked Petri net. Let  be a subset of places, i.e.  ⊆  .
Let  be a marking of    . Then function | is called a D-marking. By symbol [0⟩| we
denote the set of all D-markings  satisfying:  ∈ [0⟩| if there exists such  ∈ [0⟩ that
 = |. It means that symbol [0⟩| denotes the set of all D-markings | such that  is
reachable from 0. We also say that [0⟩| denote the set of all D-markings reachable from
initial D-marking 0| in    .</p>
        <p>Each reachable D-marking | from [0⟩| of the original workflow net will become to be
a place in reachability net. In addition, static places of the original workflow net will be static
places of reachability net. Elements of transition relation (, , ′) z →− of the reachability
graph of original workflow net will be used to create transitions of the reachability net. A
triple (|, , ′|) ∈ ([0⟩|) ×  × ([0⟩|) will be a transition of the reachability net if
 →− ′. A transition (|, , ′|) of the reachability net will consume exactly one token
from the place | of the reachability net and it will produce exactly one token in place ′| of
the reachability net. Arcs and their weights between static places and transition (|, , ′|)
of the reachability net will be identical with arcs between static places and transition  of the
original net. Finally, we add a constructor consisting of two transitions {, } and one
place {source}.</p>
        <sec id="sec-6-2-1">
          <title>In graphical expression of reachability nets, we will label transition (|, , ′|) of the</title>
          <p>reachability net only by the name of transition  of the original net.</p>
        </sec>
      </sec>
      <sec id="sec-6-3">
        <title>Definition 24 (Reachability net).</title>
        <p>Let   = (, , , , , 0) be a marked workflow net with static places and let , 
and  denote elements satisfying {, , } ∩ ( ∪  ∪  ) = ∅. Reachability
net of the net   is the marked Petri net    = ( ,  , , , 0), where
•   = ([0⟩|) ∪  ∪ {}.
waiting for memory
•   =   ∪ {, }, where   is the set of all triples (, , ) ∈ ([0⟩|) ×  ×
([0⟩|), for which there exists a triple (, , ′) ∈ [0⟩ ×  × [0⟩, such that  = |,
 = ′| and  →− ′, i.e. the transitions of the reachability net are  a  and
such triples (, , ), where  a  are D-markings and  is enabled to fire in marking  in
  and its firing leads to ′ in   , while  = | and  = ′|.
• (, (, , )) = 1 for each (, , ) ∈  
• (, ) = 1 and (, ) = 1, i.e. constructor  is enabled to fire
only in a marking with a token in place , similarly 
• (, (, , )) = (, ) for each  ∈ , (, , ) ∈  , i.e. arcs from static places to copies
of transitions are copied
• ((, , ), ) = 1 for each (, , ) ∈  
• (, ) = 1 and (, ) = 1, i.e. firing of constructor  creates a token
in place  and returns a token to place  (remember that from Definition 18 we get
 = 0|)
• (, (, , )) = (, ) for each  ∈ , (, , ) ∈  , i.e. arcs from copies of transitions
to static places are copied
• (, ) = 0 a (, ) = 0 for each other pairs (, ) ∈ (  ×  )
• 0() = 1, 0| = 0| a 0() = 0 for each  ∈ [0⟩|, i.e. in the initial
marking is one token in place , tokens in static places are copied and places of the
reachability net equal to reachable D-markings of the net   are empty.</p>
        <p>To illustrate a reachability net, we will consider the net in Figure 2</p>
        <p>Existence of the complementary places of static places in remembering workflow net implies
following result:
Corollary 4. Let   = (, , , , , 0) be a marked remembering workflow net with static
places. Then for each two markings  and ′ from [0⟩ there holds: if | = ′| then  = ′.
Corollary 5. Let   = (, , , , , 0) be a 1-sound marked remembering workflow net
with static places. Then its reachability net    = ( ,  , , , 0) has a finite number of
places   and a finite number of transitions  .</p>
        <p>Places in the reachability net of remembering net represent states of the instance, including
information how many tokens from static places are used by the instance. Each token in a place
of the reachability net represent an instance in the corresponding state. The number of tokens
in a place of the reachability net determine how many instances are in that state. Thus, marking
of the reachability net determines how many instances are in states represented by single places
of the reachability net.</p>
      </sec>
      <sec id="sec-6-4">
        <title>Definition 25 (Final marking of a reachability net).</title>
        <p>Let   = (, , , , , 0) be a marked workflow net with static places and let a marked
Petri net    = ( ,  , , , 0) be the reachability net of the net   . A marking  of
the reachability net    reachable from 0, is called a final marking of    , if  () = 0
for each  ∈   ∖ ( ∪ {}) (where  denotes in accordance with the introduced notation the
reachable D-marking given by function 1 ·  from  to N).</p>
        <p>A lock of the reachability net is defined as a marking, from which no final marking is reachable.
Definition 26. (Lock, deadlock and livelock of a reachability net)
Let   = (, , , , , 0) be a marked workflow net with static places and let a marked
Petri net    = ( ,  , , , 0) be the reachability net of the net   . A marking 
of the reachability net    reachable from the initial marking 0, is called a lock, if from 
no final marking of the reachability net    is reachable. If no transition of the reachability net
   is enabled to fire in a lock , then it is called a deadlock of    , otherwise it is called a
livelock of    .</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>7. Basic locks of a reachability net</title>
      <p>Following result, which is implied directly by the construction of the reachability net is important
for detection of locks of reachability nets.</p>
      <p>Lemma 2. Let   = (, , , , , 0) be a 1-sound marked remembering workflow net
with static places and let a marked Petri net    = ( ,  , , , 0) be the reachability
net of the net   . Let marking 1 be reachable from 0 in the reachability net    . Then
for arbitrary marking  : (  ∖ ) → N satisfying 1|(  ∖ ) &gt;  there exists such marking
2 reachable from 0 in    , that 2|(  ∖ ) = .</p>
      <p>In the following definition we will divide the places of the reachability net according to the
fact, whether they represent states, in which resources from static places are used.
Definition 27 (Places with resources).</p>
      <p>Let   = (, ,  ,  , , 0) be a 1-sound marked remembering workflow net with static places
and let a marked Petri net    = ( ,  ,  , , 0 ) be the reachability net of the net   .
• A place  ∈   ∖  of the reachability net is called a place without resource  for  ∈ 
if either  =  or for the complementary places  ∈  of place  there holds
() = 0.
• The set of all places without resource  is denoted by .
• If place  ∈   ∖  of the reachability net is a place without resource for each  ∈ , we
call it simply a place without resources.
• The set of all places without resources is denoted by .
• A place  ∈   ∖  of the reachability net is called place with resource  for  ∈  if for
the complementary place  ∈  of  there holds () &gt; 0. The set of all places with
resource  is denoted by .
• If for a place  ∈   ∖  of the reachability net there is  ∈  such that  is a place with
resource , then we call it simply a place with resources.
• The set of all places with resources is denoted by .
• For a place  ∈  of the reachability net we denote by symbol () the set of such  ∈ ,
for which  ∈ .</p>
      <p>Similarly as states, we divide the transitions of the reachability net for those, that need tokens
from static places to be enabled to fire and those, that do not need tokens from static places. We
will divide the places according to the fact, whether there is a transition, which moves a token
from a place with resources and at the same time it requires resources.</p>
      <p>Definition 28. (Transitions requiring resources, critical places)
Let   = (, ,  ,  , , 0) be a 1-sound marked remembering workflow net with static places
and let a marked Petri net    = ( ,  ,  , , 0 ) be the reachability net of the net   .
• A transition (, , ) ∈   is called a transition requiring resources if  (, ) &gt; 0 for some
 ∈ .
• If for a place with resources  ∈  there holds that there is a transition (, , ) ∈  
requiring resources, then is called a critical place of the reachability net    .
• The set of all critical places is denoted by .</p>
      <p>On Figure 3 there is the reachability net of the 1-sound marked remembering workflow net
with static places from Figure 2.</p>
      <p>The set of places without resources  in the reachability net on Figure 3 is given by six
places: by place source, by place in, by place waiting for memory + waiting for processor + settings
ready, by place waiting for memory + waiting for processor + settings, by place memory disposed
+ processor disposed and by the place out.</p>
      <p>The set of places with resources  is given by ten places, two of which are critical.</p>
      <p>First critical place of the reachability net is its place waiting for memory + processor allocated
+ settings ready + processor. Second critical place of the reachability net is its place memory
allocated + waiting for processor + settings ready + memory.</p>
      <p>On Figure 4 there is a livelock of the process for ten instances.</p>
      <p>Corollary 6. Let   = (, , , , , 0) be a 1-sound marked remembering workflow net
with static places and let a marked Petri net    = ( ,  , , , 0) be the reachability
net of the net   . Let  ∈  be a static place and let  ∈  be its complementary place. Then
for each marking  reachable from 0 there holds () + ∑︀∈ () · () = 0(),
and therefore () ≤ 0() = 0().</p>
      <p>Another important result is given as follows:
Lemma 3. Let   = (, , , , , 0) be a 1-sound marked remembering workflow net
with static places and let a marked Petri net    = ( ,  , , , 0) be the reachability
net of the net   . Then for arbitrary marking 1 reachable from 0 in the reachability net
there exists a marking 2 reachable from 1 such that 2() = 0 for each  ∈  ∖ .
Proof. We show, that if a token is in a place  ∈  ∖ , we can move that token to a
places without resources from , or to a critical place from . Repeating the procedure we
can set to zero all places  ∈  ∖ . Because the original remembering workflow net is
1-sound, from each  ∈  ⊆ [0⟩| is in original workflow net reachable a final marking
 ∪ 0|. It means, that for each place  ∈  ∖  there exists a finite sequence  : I →  a
 : I ∪ {0} → [0⟩| such that  (0) = , ( ( − 1),  (),  ()) ∈   for each positive integer
 ∈ I and  (I) = . Let  : I →   be a sequence of transitions from   such that
 () = ( ( − 1),  (),  ()) for  ∈ I.</p>
      <p>• Let no transition  (), where  ∈ I, is a transition requiring resources. Then sequence  is
enabled to fire in any marking of the reachability net 1 ∈ [0⟩ satisfying 1() &gt; 0 and
its firing leads to marking 2, such that 2() = 1()− 1 and 2() = 1()+1,
i.e. firing of sequence  moves a token from a place with resources  of the reachability
net to the place without resources  of the rechability net.
• Let there is an  ∈ I such that transition  () is a transition requiring resources. Let  be
the smallest index, for which  () is a transitions requiring resources. Because  is not a
critical place,  ≥ 2.</p>
      <p>– Let  ( − 1) ∈ , i.e.  ( − 1) is a place without resources. Then sequence
 |{1, . . . ,  − 1} is enabled to fire in each marking of the reachability net 1 ∈ [0⟩
satisfying 1() &gt; 0 and its firing leads to marking 2, such that 2() =
1() − 1 and 2( ( − 1)) = 1( ( − 1)) + 1, i.e. firing of sequence  moves
a token from place  of the reachability net to a place without resources  ( − 1) of
the reachability net.
– Let  ( − 1) ∈ , i.e.  ( − 1) is a place with resources. Because  () = ( ( −
1),  (),  ()) is a transition requiring resources,  ( − 1) ∈ , i.e.  ( − 1) is a
critical place. Then sequence  |{1, . . . ,  − 1} is enabled to fire in each marking of
the rechability net 1 ∈ [0⟩ satisfying 1() &gt; 0 and its firing leads to marking
2, such that 2() = 1() − 1 and 2( ( − 1)) = 1( ( − 1)) + 1, i.e. firing
of sequence  moves a token from place  of the reachability net to a critical place
 ( − 1) of the reachability net.
□</p>
      <p>If we apply the result of Lemma 3 to locks, we get that from each lock of the reachability net
we can reach a lock, in which from all places with resources only critical places are marked.
These locks are called critical locks.</p>
      <sec id="sec-7-1">
        <title>Definition 29 (Critical locks of a reachability net).</title>
        <p>Let   = (, , , , , 0) be a 1-sound marked remembering workflow net with static
places and let a marked Petri net    = ( ,  , , , 0) be the reachability net of the net
  . Then a lock , such that () = 0 for each  ∈  ∖ , is called a critical lock of the
reachability net.</p>
        <p>Corollary 7. Let   = (, , , , , 0) be a 1-sound marked remembering workflow net
with static places and let a marked Petri net    = ( ,  , , , 0) be the reachability
net of the net   . Then there holds: if an arbitrary marking 1 reachable from 0 in the
reachability net is a lock, then there exists a critical lock 2 reachable from 1.</p>
        <p>The lock in Figure 4 is not a critical lock, because the place with resources waiting for memory
+ processor allocated + settings + processor and the place with resources memory allocated +
waiting for processor + settings + memory are not empty. These places with resources are not
critical places of the reachability net.</p>
        <p>From marking in Figure 4 the marking in Figure 5 is reachable. The marking in Figure 5 is a
critical lock.</p>
        <p>A special set of critical lock are those locks, for which no other places except critical places
and static places are marked. Such lock are called basic locks.</p>
      </sec>
      <sec id="sec-7-2">
        <title>Definition 30 (Basic locks of a reachability net).</title>
        <p>Let   = (, , , , , 0) be a 1-sound marked remembering workflow net with static places
and let a marked Petri net    = ( ,  , , , 0) be the reachability net of the net   .
Then a critical lock , such that () = 0 for each place without resources  ∈ , is called a
basic lock of the reachability net.</p>
        <sec id="sec-7-2-1">
          <title>The following results states, that if 1 is a critical lock, then marking 2 created from 1</title>
          <p>by removing all tokens from all places without resources, is reachable from z 0 and therefore
it is a basic lock of the reachability net.</p>
          <p>Lemma 4. Let   = (, , , , , 0) be a 1-sound marked remembering workflow net
with static places and let a marked Petri net    = ( ,  , , , 0) be the reachability
net of the net   . Then there holds: if an arbitrary marking 1 reachable from 0 in the
reachability net is a critical lock but not a basic lock, then 2, such that 2() = 1() for each
place with resources  ∈  and 2() = 0 for each place without resources  ∈ , is a basic
lock of the reachability net.</p>
        </sec>
        <sec id="sec-7-2-2">
          <title>Proof. According to Lemma 2, 2 is reachable from 0. Assume, that 2 is not a basic lock.</title>
          <p>Because 1 is a critical lock, 2() = 0 for each  ∈  ∖ , i.e. 2 satisfies the condition of
critical locks. Because 2() = 0 for each place without resources  ∈ , 2 satisfies also the
condition of basic locks. It means, that 2 is not a lock. Then there is a sequence of transitions
 enabled to fire in 2, such that its firing leads to a final marking  , where  | = 0|.
Because 2() = 1() for each place with resources  ∈ , i.e. in non-static places of
the reachability net difer 2 and 1 only in marking of places without resources, there also
holds that 2| = 1|, i.e. the markings of static places of 2 and 1 are equal. Then the
sequence  is enabled to fire also in 1 and its firing leads to 3 such that 3| = 0 and
3| = 0|.</p>
          <p>Because original net   is 1-sound, (similarly as in the proof of Lemma 3) from each
 ∈  ⊆ [0⟩| is in   reachable the final marking  ∪ 0| of   . It means, that
for each place  ∈  there is a finite sequence  : I →  a  : I ∪ {0} → [0⟩| such that
 (0) = , ( ( − 1),  (),  ()) ∈   for each finite positive integer  ∈ I and  (I) = .
Let  : I →   be the sequence of transitions from   such that  () = ( ( − 1),  (),  ()) for
 ∈ I. Sequence  is enabled to fire in each marking of the reachability net 1 ∈ [0⟩ satisfying
1() &gt; 0 and 1| = 0| and its firing leads to marking 4, where 4() = 1()− 1 and
4() = 1() + 1, i.e. firing of sequence  moves a token from a place without resources
 of the reachability net to a place without resources  of the reachability net, and also
4| = 0, 4| ∖ {, } = 1| ∖ {, } a 4| = 1| = 0|. By repeating the
ifring of sequence  we get marking 5, where 5() = 0 and 5() = 1() + 1(),
i.e. 1()-times repeated firing of sequence  moves all 1() tokens from place without
resources  of the reachability net to the place without resources  of the reachability net,
and also 5| = 0, 5| ∖ {, } = 1| ∖ {, } and 5| = 1| = 0|. By
repeating the procedure for such  ∈  that marking of  is not zero, we get a marking 
such that  |(( ∖ {}) ∪ ) = 0 and  | = 0|, i.e. we get a final marking of the
reachability net. This contradicts with the assumption that 1 is a critical lock. □</p>
          <p>Theorem 1. Let   = (, , , , , 0) be a 1-sound marked remembering workflow net
with static places and let a marked Petri net    = ( ,  , , , 0) be the reachability
net of the net   . Then there holds: if there exists a lock 1, then there exists a basic lock 2.</p>
          <p>We also get:
Corollary 8. Let   = (, , , , , 0) be a 1-sound marked remembering workflow net
with static places and let a marked Petri net    = ( ,  , , , 0) be the reachability
net of the net   . If the reachability net has no critical places, then it has no locks.</p>
          <p>Critical places are bounded in the reachability net, and therefore basic locks are bounded, i.e.
there are finitely many basic locks.</p>
        </sec>
      </sec>
      <sec id="sec-7-3">
        <title>Definition 31 (Simple bound of critical places).</title>
        <p>Let   = (, , , , , 0) be a 1-sound marked remembering workflow net with static
places and let a marked Petri net    = ( ,  , , , 0) be the reachability net of the
net   . Let  ∈  be a critical place. Let  ∈ () and let  ∈  be the complementary
place of . Denote (, ) = 0() ÷ (), where symbol ÷ denotes integer division. Denote
() = min∈() (, ) the minimum of values (, ) for  ∈ (). The values
() is called the simple bound of a critical place . The sum of values
() = ∑︁ ()</p>
        <p>∈
is called the simple bound of critical places .</p>
        <p>Corollary 9. Let   = (, , , , , 0) be a 1-sound marked remembering workflow net
with static places and let a marked Petri net    = ( ,  , , , 0) be the reachability
net of the net   . Let  be an arbitrary marking of the reachability net reachable from 0.
For each critical place  ∈  there holds () ≤ (), i.e. the number of tokens in
any reachable marking  does not exceed the simple bound of a critical place. There holds that
∑︀∈ () ≤ (). In addition, () ≥ 1.</p>
        <p>More exact upper bound of the number of tokens in critical places can be computed as a
solution of the following integer linear programming problem.</p>
      </sec>
      <sec id="sec-7-4">
        <title>Definition 32 (Bound of critical places).</title>
        <p>Let   = (, , , , , 0) be a 1-sound marked remembering workflow net with static places
and let a marked Petri net    = ( ,  , , , 0) be the reachability net of the net   .
Let  :  → N be an integer solution of the linear inequality system
which maximizes the objective function
This maximal value
is called the bound of critical places .</p>
        <p>∑︁ () · () ≤ 0()    ∈ 
∈
() ≥ 0    ∈ 
∑︁ () · ()
∈
() = ∑︁ () · ()</p>
        <p>∈</p>
        <p>From the formulation of the integer linear programming problem we get the following result.
Corollary 10. Let   = (, , , , , 0) be a 1-sound marked remembering workflow net
with static places and let a marked Petri net    = ( ,  , , , 0) be the reachability
net of the net   . Let  be an arbitrary marking of the reachability net reachable from
0. Then there holds ∑︀∈ () ≤ (). Moreover, there holds that () ≥
().</p>
        <p>
          Methods for solving the integer linear programming problems can be found e.g. in [
          <xref ref-type="bibr" rid="ref36">36</xref>
          ].
        </p>
        <p>For the reachability net in Figure 4 of the 1-sound marked remembering workflow net with
static places from Figure 2 we get () = () = 4.</p>
        <p>From definition of the reachability net we get the following result.</p>
        <p>Lemma 5. Let   = (, , , , , 0) be a 1-sound marked remembering workflow net
with static places and let a marked Petri net    = ( ,  , , , 0) be the reachability
net of the net   . Let 1 be an arbitrary marking of the reachability net reachable from 0.
Then for each marking 2 reachable from 1 there holds:
If 1() = 0 then there holds:</p>
        <p>∑︁
∈[0⟩|</p>
        <p>∑︁
∈[0⟩|
1() ≤
1() =</p>
        <p>∑︁
∈[0⟩|</p>
        <p>∑︁
∈[0⟩|
2()
2()</p>
        <sec id="sec-7-4-1">
          <title>Consider a constrained reachability net for a given positive integer  ∈ Z by adding a place,</title>
          <p>let us call it a bufer , from which firing of transition  consumes just one token, while in the
initial marking this place get  number of tokens, i.e. 0(bufer ) = .</p>
          <p>Such constrained reachability net preserves all the reachable markings for which the sum of
tokens in places from [0⟩| does not exceed . It also preserves the firing of all transitions
from   in these markings. The transition  is enabled to fire in such a net exactly -times.
Such net is bounded and represent the running of at most  instances in parallel. Basic locks in
such a constrained net can be defined analogously as for the reachability net without constraints,
just allowing non zero marking of   .</p>
          <p>If one set the initial value 0(bufer ) = () or 0(bufer ) = () one can
guarantee that whenever the reachability net has a basic lock then the constrained net has
the basic lock difering at most in the marking of the added place bufer . The constrained
reachability net with 0(bufer ) = () = () = 4 for the reachability net
from Figure 3 is in Figure 7.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>8. Conclusion</title>
      <p>We have investigated workflow processes with independent instances, which share durable
resources. We have considered the fixed number of resources and arbitrary number of instances.
We modeled such nets by so called 1-sound marked remembering workflow nets with static
places, which are in fact resource constrained workflow nets sound for one instance. We have
shown that detection of deadlocks and livelocks of such processes can be reduced to detection
of basic locks of the constrained bounded reachability nets of 1-sound marked remembering
workflow nets with static places.</p>
      <p>One of the main aims of the further research is to find out how to synthesize a minimally
restrictive completion of a net which has deadlocks or livelock in order to avoid them. Another
aim of the further research is to determine the set of initial markings of static places, i.e. to
determine the number of resources, needed to avoid the deadlock and livelocks.
stop
new
task begin
waiting for memory+processor allocated+settings+processor
memory allocated+waiting for processor+settings+memory
memory allocated+processor allocated+settings+memory+processor
settings save
memory allocated+processor allocated+settings ready+memory+processor
free processor
free memory
computation begin
computation end
task end</p>
      <p>out
processor dispose
memory to disposee+processor to dispose+memory+processor
stop
new
task begin
waiting for memory+waiting for processor+settings
waiting for memory+processor allocated+settings ready+processor
memory allocated+waiting for processor+settings ready+memory
waiting for memory+processor allocated+settings+processor
memory allocated+waiting for processor+settings+memory
memory allocated+processor allocated+settings+memory+processor
settings save
memory allocated+processor allocated+settings ready+memory+processor
free processor
free memory
computation begin
computation end
task end</p>
      <p>out
processor dispose
memory to disposee+processor to dispose+memory+processor
memory to dispose+processor disposed+memory
memory disposed+processor to dispose+processor
memory dispose
memory disposed+processor disposed
stop
new
task begin
waiting for memory+waiting for processor+settings
waiting for memory+processor allocated+settings ready+processor
memory allocated+waiting for processor+settings ready+memory
waiting for memory+processor allocated+settings+processor
memory allocated+waiting for processor+settings+memory
memory allocated+processor allocated+settings+memory+processor
settings save</p>
      <p>settings open
memory allocation
processor allocation
memory allocated+processor allocated+settings ready+memory+processor
free processor
free memory
computation begin
computation end
task end</p>
      <p>out
processor dispose
memory to disposee+processor to dispose+memory+processor
memory to dispose+processor disposed+memory
memory disposed+processor to dispose+processor
memory dispose
memory disposed+processor disposed
stop
new
task begin
waiting for memory+waiting for processor+settings
waiting for memory+processor allocated+settings ready+processor
memory allocated+waiting for processor+settings ready+memory
waiting for memory+processor allocated+settings+processor
memory allocated+waiting for processor+settings+memory
memory allocated+processor allocated+settings+memory+processor
settings save</p>
      <p>settings open
memory allocation
processor allocation
memory allocated+processor allocated+settings ready+memory+processor
free processor
free memory
computation begin
computation end
task end</p>
      <p>out
processor dispose
memory to disposee+processor to dispose+memory+processor
memory to dispose+processor disposed+memory
memory disposed+processor to dispose+processor
memory dispose
memory disposed+processor disposed
processor dispose
stop
new
processor allocation
memory allocated+processor allocated+settings+memory+processor
memory allocated+processor allocated+settings ready+memory+processor
free processor
free memory
computation begin
computation end
memory to disposee+processor to dispose+memory+processor
memory dispose
memory to dispose+processor disposed+memory
memory disposed+processor to dispose+processor
memory dispose
memory disposed+processor disposed
processor dispose</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>K.</given-names>
            <surname>Hee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Serebrenik</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Sidorova</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Voorhoeve</surname>
          </string-name>
          ,
          <article-title>Soundness of resource-constrained workflow nets, in: Applications and Theory of Petri nets</article-title>
          ,
          <source>LNCS</source>
          , volume
          <volume>3536</volume>
          , Springer, Berlin, Heidelberg,
          <year>2005</year>
          , pp.
          <fpage>250</fpage>
          -
          <lpage>267</lpage>
          . doi:
          <volume>10</volume>
          .1007/11494744_
          <fpage>15</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>K.</given-names>
            <surname>Barkaoui</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. Ben</given-names>
            <surname>Ayed</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Sbai</surname>
          </string-name>
          ,
          <article-title>Workflow soundness verification based on structure theory of Petri nets</article-title>
          ,
          <source>International Journal of Computing and Information Sciences</source>
          <volume>5</volume>
          (
          <year>2007</year>
          )
          <fpage>51</fpage>
          -
          <lpage>61</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>K.</given-names>
            <surname>Hee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Sidorova</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Voorhoeve</surname>
          </string-name>
          ,
          <article-title>Resource-constrained workflow nets</article-title>
          .,
          <source>Fundamenta Informaticae</source>
          <volume>71</volume>
          (
          <year>2006</year>
          )
          <fpage>243</fpage>
          -
          <lpage>257</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>G.</given-names>
            <surname>Juhás</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Kazlov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Juhásová</surname>
          </string-name>
          ,
          <article-title>Instance deadlock: A mystery behind frozen programs</article-title>
          ,
          <source>in: Applications and Theory of Petri Nets, LNCS</source>
          , volume
          <volume>6128</volume>
          , Springer, Berlin, Heidelberg,
          <year>2010</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>17</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>642</fpage>
          -13675-
          <issue>7</issue>
          _
          <fpage>1</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>A.</given-names>
            <surname>Juhásová</surname>
          </string-name>
          , G. Juhás,
          <article-title>Soundess of resource constrained workflow nets is decidable</article-title>
          .,
          <source>Petri Net Newsletter</source>
          . (
          <year>2009</year>
          )
          <fpage>3</fpage>
          -
          <lpage>6</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>M.</given-names>
            <surname>Martos-Salgado</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Rosa-Velardo</surname>
          </string-name>
          ,
          <article-title>Dynamic soundness in resource-constrained workflow nets, in: Formal Techniques for Distributed Systems</article-title>
          , LNCS, volume
          <volume>6722</volume>
          , Springer, Berlin, Heidelberg,
          <year>2011</year>
          , pp.
          <fpage>259</fpage>
          -
          <lpage>273</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>642</fpage>
          -21461-5_
          <fpage>17</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>M. R.</given-names>
            <surname>Martos</surname>
          </string-name>
          <string-name>
            <surname>Salgado</surname>
          </string-name>
          ,
          <article-title>Verification of priced and timed extensions of Petri Nets with multiple instances</article-title>
          .,
          <source>Ph.D. thesis</source>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>D. F.</given-names>
            <surname>Escrig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Johnen</surname>
          </string-name>
          ,
          <article-title>Decidability of home space property</article-title>
          ,
          <source>in: LRI Report</source>
          , volume
          <volume>503</volume>
          , Université Paris-Sud,
          <year>1989</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>25</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>N.</given-names>
            <surname>Sidorova</surname>
          </string-name>
          ,
          <string-name>
            <surname>C.</surname>
          </string-name>
          <article-title>Stahl, Soundness for resource-constrained workflow nets is decidable</article-title>
          ,
          <source>IEEE Transactions on Systems, Man, and Cybernetics: Systems</source>
          <volume>43</volume>
          (
          <year>2013</year>
          )
          <fpage>724</fpage>
          -
          <lpage>729</lpage>
          . doi:
          <volume>10</volume>
          .1109/ TSMCA.
          <year>2012</year>
          .
          <volume>2210415</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>K.</given-names>
            <surname>Hee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Sidorova</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Voorhoeve</surname>
          </string-name>
          ,
          <article-title>Soundness and separability of workflow nets in the stepwise refinement approach, in: Applications and Theory of Petri nets</article-title>
          ,
          <source>LNCS</source>
          , volume
          <volume>2679</volume>
          , Springer, Berlin, Heidelberg,
          <year>2003</year>
          , pp.
          <fpage>337</fpage>
          -
          <lpage>356</lpage>
          . doi:
          <volume>10</volume>
          .1007/3-540-44919-1_
          <fpage>22</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>E.</given-names>
            <surname>Best</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Darondeau</surname>
          </string-name>
          , Separability in persistent petri nets,
          <source>Fundamenta Informaticae</source>
          <volume>113</volume>
          (
          <year>2011</year>
          )
          <fpage>179</fpage>
          -
          <lpage>203</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>F. L.</given-names>
            <surname>Tiplea</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Bocaneala</surname>
          </string-name>
          ,
          <article-title>Decidability results for soundness criteria of resourceconstrained workflow nets</article-title>
          ,
          <source>IEEE Transactions on Systems, Man, and Cybernetics - Part A: Systems and Humans</source>
          <volume>42</volume>
          (
          <year>2012</year>
          )
          <fpage>238</fpage>
          -
          <lpage>249</lpage>
          . doi:
          <volume>10</volume>
          .1109/TSMCA.
          <year>2011</year>
          .
          <volume>2147310</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>E.</given-names>
            <surname>Mayr</surname>
          </string-name>
          ,
          <article-title>Persistence of vector replacement systems is decidable</article-title>
          ,
          <source>Acta Informatica</source>
          <volume>15</volume>
          (
          <year>1981</year>
          )
          <fpage>309</fpage>
          -
          <lpage>318</lpage>
          . URL: https://doi.org/10.1007/BF00289268. doi:
          <volume>10</volume>
          .1007/BF00289268.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>S. R.</given-names>
            <surname>Kosaraju</surname>
          </string-name>
          ,
          <article-title>Decidability of reachability in vector addition systems (preliminary version)</article-title>
          ,
          <source>in: Proceedings of the Fourteenth Annual ACM Symposium on Theory of Computing</source>
          , STOC '82,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery, New York, NY, USA,
          <year>1982</year>
          , p.
          <fpage>267</fpage>
          -
          <lpage>281</lpage>
          . doi:
          <volume>10</volume>
          .1145/800070.802201.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>E. W.</given-names>
            <surname>Mayr</surname>
          </string-name>
          ,
          <article-title>An algorithm for the general Petri net reachability problem</article-title>
          ,
          <source>SIAM Journal on computing 13</source>
          (
          <year>1984</year>
          )
          <fpage>441</fpage>
          -
          <lpage>460</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>J.</given-names>
            <surname>Lambert</surname>
          </string-name>
          ,
          <article-title>A structure to decide reachability in Petri nets</article-title>
          ,
          <source>Theoretical Computer Science</source>
          <volume>99</volume>
          (
          <year>1992</year>
          )
          <fpage>79</fpage>
          -
          <lpage>104</lpage>
          . doi:https://doi.org/10.1016/
          <fpage>0304</fpage>
          -
          <lpage>3975</lpage>
          (
          <issue>92</issue>
          )
          <fpage>90173</fpage>
          -
          <lpage>D</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>J.</given-names>
            <surname>Leroux</surname>
          </string-name>
          ,
          <article-title>Vector addition system reachability problem: A short self-contained proof</article-title>
          ,
          <source>ACM SIGPLAN Notices</source>
          <volume>46</volume>
          (
          <year>2011</year>
          )
          <fpage>307</fpage>
          -
          <lpage>316</lpage>
          . doi:
          <volume>10</volume>
          .1145/1925844.1926421.
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18] R. Keller,
          <article-title>Formal verification of parallel programs</article-title>
          ,
          <source>Communications of the ACM</source>
          <volume>19</volume>
          (
          <year>1976</year>
          )
          <fpage>371</fpage>
          -
          <lpage>384</lpage>
          . doi:
          <volume>10</volume>
          .1145/360248.360251.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>G.</given-names>
            <surname>Winskel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Nielsen</surname>
          </string-name>
          ,
          <source>Models for Concurrency</source>
          , Oxford University Press, Inc., USA,
          <year>1995</year>
          , p.
          <fpage>1</fpage>
          -
          <lpage>148</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>R. M. Karp</surname>
            ,
            <given-names>R. E.</given-names>
          </string-name>
          <string-name>
            <surname>Miller</surname>
          </string-name>
          ,
          <article-title>Parallel program schemata</article-title>
          ,
          <source>Journal of Computer and System Sciences</source>
          <volume>3</volume>
          (
          <year>1969</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>T.</given-names>
            <surname>Murata</surname>
          </string-name>
          ,
          <article-title>Petri nets: Properties, analysis and applications</article-title>
          ,
          <source>Proceedings of the IEEE</source>
          <volume>77</volume>
          (
          <year>1989</year>
          )
          <fpage>541</fpage>
          -
          <lpage>580</lpage>
          . doi:
          <volume>10</volume>
          .1109/5.24143.
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>J. L.</given-names>
            <surname>Peterson</surname>
          </string-name>
          ,
          <article-title>Petri nets</article-title>
          ,
          <source>ACM Computing Surveys</source>
          <volume>9</volume>
          (
          <year>1977</year>
          )
          <fpage>223</fpage>
          -
          <lpage>252</lpage>
          . doi:
          <volume>10</volume>
          .1145/ 356698.356702.
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>W.</given-names>
            <surname>Reisig</surname>
          </string-name>
          , A Primer in Petri Net Design, Springer, Berlin, Heidelberg,
          <year>1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>J.</given-names>
            <surname>Desel</surname>
          </string-name>
          , W. Reisig, Place/transition Petri nets,
          <source>in: Lectures on Petri Nets I: Basic Models: Advances in Petri Nets, LNCS</source>
          , volume
          <volume>1491</volume>
          , Springer, Berlin, Heidelberg,
          <year>1998</year>
          , pp.
          <fpage>122</fpage>
          -
          <lpage>173</lpage>
          . doi:
          <volume>10</volume>
          .1007/3-540-65306-6_
          <fpage>15</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>J.</given-names>
            <surname>Desel</surname>
          </string-name>
          , G. Juhás,
          <article-title>What is a Petri net? An informal answer for an informed reader</article-title>
          , in: Unifying Petri Nets, Advances in Petri Nets, LNCS, volume
          <volume>2128</volume>
          , Springer, Berlin, Heidelberg,
          <year>2001</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>25</lpage>
          . doi:
          <volume>10</volume>
          .1007/3-540-45541-
          <issue>8</issue>
          _
          <fpage>1</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>R.</given-names>
            <surname>Lipton</surname>
          </string-name>
          ,
          <article-title>The reachability problem is exponential-space hard</article-title>
          ,
          <source>in: Technical Report</source>
          , volume
          <volume>62</volume>
          , Department of Computer Science, Yale University,
          <year>1976</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>C.</given-names>
            <surname>Rackof</surname>
          </string-name>
          ,
          <article-title>The covering and boundedness problems for vector addition systems</article-title>
          ,
          <source>Theoretical Compututer Science</source>
          <volume>6</volume>
          (
          <year>1978</year>
          )
          <fpage>223</fpage>
          -
          <lpage>231</lpage>
          . doi:
          <volume>10</volume>
          .1016/
          <fpage>0304</fpage>
          -
          <lpage>3975</lpage>
          (
          <issue>78</issue>
          )
          <fpage>90036</fpage>
          -
          <lpage>1</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>L. E.</given-names>
            <surname>Rosier</surname>
          </string-name>
          , H.
          <string-name>
            <surname>-C. Yen</surname>
          </string-name>
          ,
          <article-title>A multiparameter analysis of the boundedness problem for vector addition systems</article-title>
          ,
          <source>Journal of Computer and System Sciences</source>
          <volume>32</volume>
          (
          <year>1986</year>
          )
          <fpage>105</fpage>
          -
          <lpage>135</lpage>
          . doi:https: //doi.org/10.1016/
          <fpage>0022</fpage>
          -
          <lpage>0000</lpage>
          (
          <issue>86</issue>
          )
          <fpage>90006</fpage>
          -
          <lpage>1</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <surname>W. M. P. van der Aalst</surname>
          </string-name>
          ,
          <article-title>Three good reasons for using a Petri-net-based workflow management system</article-title>
          ,
          <source>in: Information and Process Integration in Enterprises</source>
          , Springer US, Boston, MA,
          <year>1998</year>
          , pp.
          <fpage>161</fpage>
          -
          <lpage>182</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-1-
          <fpage>4615</fpage>
          -5499-8_
          <fpage>10</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <surname>W. M. P. van der Aalst</surname>
          </string-name>
          ,
          <article-title>Verification of workflow nets</article-title>
          ,
          <source>in: Application and Theory of Petri Nets</source>
          <year>1997</year>
          , Springer Berlin Heidelberg, Berlin, Heidelberg,
          <year>1997</year>
          , pp.
          <fpage>407</fpage>
          -
          <lpage>426</lpage>
          . doi:
          <volume>10</volume>
          .1007/3-540-63139-9_
          <fpage>48</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <surname>W. M. P. van der Aalst</surname>
          </string-name>
          ,
          <article-title>The application of Petri nets to workflow management</article-title>
          ,
          <source>Journal of Circuits, Systems, and Computers</source>
          <volume>8</volume>
          (
          <year>1998</year>
          )
          <fpage>21</fpage>
          -
          <lpage>66</lpage>
          . doi:
          <volume>10</volume>
          .1142/S0218126698000043.
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>W.</given-names>
            <surname>Van Der Aalst</surname>
          </string-name>
          ,
          <string-name>
            <surname>K. M. Van Hee</surname>
            ,
            <given-names>K. van Hee</given-names>
          </string-name>
          ,
          <article-title>Workflow management: models, methods, and systems</article-title>
          , The MIT Press, Cambridge, Massachusetts,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [33]
          <string-name>
            <given-names>K.</given-names>
            <surname>Barkaoui</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Petrucci</surname>
          </string-name>
          ,
          <article-title>Structural analysis of workflow nets with shared ressources</article-title>
          ,
          <source>in: Workflow Management: Net-based Concepts</source>
          ,
          <source>Models, Techniques and Tools (WFM'98)</source>
          .
          <article-title>Computing science reports</article-title>
          , volume
          <volume>9807</volume>
          ,
          <string-name>
            <given-names>TU</given-names>
            <surname>Eindhoven</surname>
          </string-name>
          ,
          <year>1998</year>
          , pp.
          <fpage>82</fpage>
          -
          <lpage>95</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [34]
          <string-name>
            <given-names>R.</given-names>
            <surname>Devillers</surname>
          </string-name>
          ,
          <article-title>The semantics of capacities in P/T nets</article-title>
          ,
          <source>in: Advances in Petri Nets</source>
          <year>1989</year>
          , Springer, Berlin, Heidelberg,
          <year>1990</year>
          , pp.
          <fpage>128</fpage>
          -
          <lpage>150</lpage>
          . doi:
          <volume>10</volume>
          .1007/3-540-52494-0_
          <fpage>28</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          [35]
          <string-name>
            <given-names>D.</given-names>
            <surname>Figueira</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Figueira</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Schmitz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Schnoebelen</surname>
          </string-name>
          ,
          <article-title>Ackermannian and primitive-recursive bounds with Dickson's lemma</article-title>
          ,
          <source>in: 2011 IEEE 26th Annual Symposium on Logic in Computer Science</source>
          ,
          <year>2011</year>
          , pp.
          <fpage>269</fpage>
          -
          <lpage>278</lpage>
          . doi:
          <volume>10</volume>
          .1109/LICS.
          <year>2011</year>
          .
          <volume>39</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          [36]
          <string-name>
            <given-names>A.</given-names>
            <surname>Schrijver</surname>
          </string-name>
          ,
          <source>Theory of Linear and Integer Programming</source>
          , John Wiley,
          <year>1986</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>