sources in order to enforce the liveness without the
reduction of the concurrency of the system. Neverthe-
less, in order to propose a solution independent of the
number of customers, a new type of resource is intro-
duced (as in the case of the monitors) is such a way
that the original siphons are broken and then disap-
pear solving the structural defect of the original Petri
Net. In essence, the steps to be done are:
1. Identification of a resource belonging to a bad
siphon that can give rise to the appearing of a
deadlock state.
2. Classification of the holder places of the selected
resources in two disjoint groups. That is, the
method proceeds increasing the number of re-
sources but these new resources will be used in
a private way by only one of the classified groups.
This is the idea of specialization of the new re-
sources.
3. Definition of two new resource places and remov-
ing the old one. Each one of these new resource
places has one the previous sets of holder places
and they are connected to the input and output
transitions of the holder places in the same way
than the original resource place. Observe that now
there exist two different types of resources where
previously existed only one type of resources. The
copies of each type of resource are used in a
private way by the corresponding set of holder
places.
4. Introduction of the same number of tokens in each
new resource place than the number of copies of
resources in the original resource place.
The method can be considered as structural be-
cause the splitting of the original resource place into
two new places is done in such a way that the siphon is
broken or at least, in what concerns to the considered
resource place the siphon has been reduced. There-
fore, proceeding with all bad siphons in the same way
we can obtain a net without bad siphons and then by
the non-liveness theorem of S
3
PR nets, the admissibly
marked net must be live: the method enforces live-
ness.
Observe, that the method increases the number of
resources although they are used in a private way with
respect to the way they are used in the original net.
This means that the method does no cut bad markings,
the method introduces new states allowing to go out
from the old deadlock states. That is, the old deadlock
states are reached but now there are enough resources
(that they are used in a private way) to go out to a new
state saving the bad scenario. In classical control the-
ory, probably, this strategy is unsatisfactory because
the strategy there is to forbid all bad states and all
states that inevitably lead to a bad state. Nevertheless,
in other application domains as in the hospital logis-
tics the important goal is to reach a complete treat-
ment for the patient, adding all needed resources to
reach this goal.
For this new approach of liveness enforcing we
need an algorithm which describes how the splitting
is done in the S
3
PR. The splitting is needed in the
S
3
PR so there will appear new resources. With these
resources the deadlock state is avoided. The idea is
that after the construction of the initial Pruning Graph
of the S
3
PR, we need to find and eliminate all circuits
from the net. An elimination in the Pruning Graph
will be equivalent with a new resource in the S
3
PR
(resource added by splitting an existing resources).
Next, an algorithm of splitting the siphon will be
presented. For this algorithm we consider r ∈ P
R
is
the resource we are working on.
Algorithm 1: The splitting of a resource.
Input: resource r which belongs at least to one cir-
cuit, N, the Pruning Graph of N;
Output: N
0
, r is substituted with r
1
and r
2
;
1. Delete r and all arcs between r and the transitions
t
i
, t
i
∈ {r
•
∪
•
r};
2. Add places r
1
and r
2
in S
3
PR;
3. Connect place r
1
with the net such that all the in-
puts of v
i
are the inputs of v
1
i
: ∀(s, r) ∈ E and
∀p ∈ P
S
such that (t, p) ∈ L((s, r)) add an arc from
r
1
to all t ∈
•
p and an arc from each t ∈ p
•
to r
1
;
4. Connect place r
2
with the net such that all the out-
puts of v
i
are the outputs of v
2
i
: ∀(r, s) ∈ E and
∀p ∈ P
S
such that (t, p) ∈ L((r, s)) add an arc from
r
2
to all t ∈
•
p and an arc from each t ∈ p
•
to r
2
;
For the Algorithm 2 we use the fact that the multi-
plicity of the arcs from the Pruning Graph will be the
same. Using this algorithm, all strongly connected
components will be eliminated. One way for a graph
to became acyclic is to use reversed edges. The prob-
lem of finding a set of smallest number of feedback
edges is a problem called minimum feedback arc set
problem. This is used in our algorithm when we com-
pute the minimal set of arcs.
From the the two algorithms above, it can be seen
that if the pruning graph is acyclic then the S
3
PR net
is live. But in the most cases the pruning graph has
cycles(Strongly Connected Components) which have
to disappear. This can be done by removing(or change
the direction) arcs from the pruning graph. Once the
pruning graph is modified, some changes have to be
done in the S
3
PR net according to Algorithm 1.
ICORES2013-InternationalConferenceonOperationsResearchandEnterpriseSystems
172