# Mixed Integer Programming-Based Liveness Test for FMS with Full Routing Flexibility

Authors: Lida Dong; Tianyang Chi; Chengcheng Zhu; Jun Yin
Journal: Journal of Applied Mathematics
 (2014)

---

## Abstract

Mixed integer programming (MIP) is an important technique to verify the liveness property of sequential flexible manufacturing systems (FMS) modeled by Petri nets. When there are some fully flexible routings in FMS, the existing MIP-based methods are not suitable for testing their liveness. This paper defines a subclass of S*PR nets firstly, namely, OSC-S*PR nets, and concludes that an OSC-S*PR net is live if there exist no non-max′-controlled siphons. Accordingly, determining whether or not an OSC-S*PR net is live can also be realized by using standardized mixed integer programming (MIP) tools. Furthermore, the liveness property of S*PR nets can be tested in two steps: first, for a given S*PR net, constructing an OSC-S*PR net to ensure that if the latter is live then the former must be live; second, testing liveness of the constructed OSC-S*PR net by the aforementioned MIP-based algorithm. In the end, the performance of the method is demonstrated by an application of FMS.


---

## Body

## 1. Introduction

Flexible manufacturing systems (FMS) utilize computers and shared resources (such as robots, machines, and automated guided vehicles) to automatically produce products [1]. Owing to the competition of shared resources, there may be some processes in FMS, which once started cannot be finished, that is, deadlocks [2]. Hence, it should be ensured that no deadlocks will occur in FMS; in other words, all working processes should be live. Usually, liveness property of FMS might be tested by analyzing their models (such as Petri nets) before using. Since the model complexity will increase with job shop flexibility (alternative machines, alternative operation sequences, and full routing flexibility) [3], the work for detecting liveness of FMS will also increase correspondingly.At present, there are two categories of techniques for liveness test: one category is relied on the classic state enumeration analysis of Petri nets, which grows exponentially with the size of the net [4]; the other one is based on standardized tools of mixed integer programming (MIP), which is originally proposed by Chu and Xie [5] and is more efficient than the former. The basic idea of the latter is that if there does not exist any siphon becoming empty in a Petri net, then the net is deadlock free. It has been verified that for some subclasses of ordinary Petri nets such as ES2PR nets [6], S3PR nets [7], LS3PR [8] nets, and ES3PR [9] nets the net is live if and only if it is deadlock free. So, the liveness of these subclasses of ordinary Petri nets can be tested by MIP-based algorithms [10, 11]. The natural thing is to extend MIP-based method of liveness test for general Petri nets. Park and Reveliotis [12] introduced an MIP-based algorithm for testing the weakly liveness of FMS with alternative machines flexibility modeled by S3PGR2 nets, which is in view of the conclusion that a net is weakly live if there exist no dead marked siphons (DMS). Shih et al. [13] has obtained some similar results for S3PGR2 nets, in which DMS is found on the grounds of the conception of max′-controlled siphons. Moreover, Liu and Li [14] provided a general MIP algorithm of liveness test for S3PGR2 nets, which is based on the result that a net is live if there is no extended deadly marked siphons (EDMS). Owing to the shortage of liveness conditions of S*PR nets, which can model FMS with full routing flexibility [15, 16], there is no MIP-based method of liveness test for S*PR net. The liveness of Gadara nets [17] (a subclass of S*PR nets) may be detected by the original MIP approach [5], because of the conclusion that a Gadara net is live if and only if there does not exist any empty siphons [17, 18].This paper defined a subclass of S*PR nets firstly, namely, OSC-S*PR nets, in which all output transitions of each choice working place are restricted to use the same type and quantity of resources. The main structure characteristic of OSC-S*PR nets is that an OSC-S*PR net is live if there exists no non-max′-controlled siphons. Accordingly, an MIP-based algorithm is proposed to determine whether or not an OSC-S*PR net is live. It is worth to say that OSC-S*PR nets are an extension of Gadara nets, which are usually used to model multithreaded programs [17]. Considering the structure complexity of S*PR nets, it is difficult to develop an MIP-based algorithm for testing their liveness directly. So, an indirect method is given here, which comprises two steps as follows: first, for a given S*PR net, constructing an OSC-S*PR net to ensure that if the latter is live then the former must be live; second, testing liveness of the constructed OSC-S*PR net by the aforementioned MIP-based algorithm. In order to verify the performance of our method, a typical case of FMS is taken as example.This paper is organized as follows. Section2 introduces the basic knowledge about Petri nets. Section 3 presents OSC-S*PR nets and their structure characteristics. Section 4 proposes an MIP-based algorithm for testing liveness of OSC-S*PR nets. Section 5 discusses an indirect method for testing liveness of S*PR nets. A typical example is presented in Section 6.


## 2. Preliminaries

This section, we briefly introduce the basic definitions and notations of a Petri net, which will be discussed in the rest of this paper. More details can be found in [4, 19].A generalized Petri net is a four-tupleN
=
(
P
,
T
,
F
,
W
), where P and T are finite, nonempty and disjoint sets. P denotes the set of places and T denotes the set of transitions with P
⋃
T
≠
ϕ and P
⋂
T
=
ϕ. F
⊆
(
P
×
T
)
⋃
(
T
×
P
) is called a flow relation of the net, represented by arcs with arrows from places to transitions or from transitions to places. W
:
(
P
×
T
)
⋃
(
T
×
P
)
→
N is a mapping that assigns a weight to an arc: W
(
x
,
y
)
>
0 if and only if (
x
,
y
)
∈
F, and W
(
x
,
y
)
=
0 otherwise, where x
,
y
∈
P
⋃
T and N denotes the set of natural numbers.A markingM of a Petri net N is a mapping from P to N. M
(
p
) denotes the number of tokens in the place p. We usually describe markings and vectors using a multiset (bag) or formal sum notation for economy of space. As a result, ∑
p
∈
P
M
(
p
)
p is used to denote vector M. For instance, a marking that puts four tokens in place p
2 and two tokens in place p
4 only in a net with P
=
{
p
1
-
p
6
} is denoted by 4
p
2
+
2
p
4 instead of (
0,4
,
0,2
,
0,0
). A place p is marked by marking M if and only if M
(
p
)
>
0. A subset S
⊆
P is marked by M if and only if at least one place in S is marked by M. The sum of tokens of all places in S is denoted by M
(
S
); that is, M
(
S
)
=
∑
p
∈
S
M
(
p
). S is said to be empty at M if and only if M
(
S
)
=
0. (
N
,
M
0
) is called a net system or marked net and M
0 is called an initial marking of N. In general, (
N
,
M
0
) is directly called a net where there is no confusion.Letx
∈
P
⋃
T be a node of net N
=
(
P
,
T
,
F
,
W
). x
•
=
{
y
∈
P
⋃
T
∣
(
y
,
x
)
∈
F
} denotes the preset of x, while x
•
=
{
y
∈
P
⋃
T
∣
(
x
,
y
)
∈
F
} denotes its postset of x. Furthermore, this notation can be extended to a set of nodes. For example, given X
⊆
P
⋃
T, X
•
=
⋃
x
∈
X
x
• and X
•
=
⋃
x
∈
X
x
•. Given a place p, we denote max
⁡
{
W
(
p
,
t
)
∣
t
∈
p
•
} by ma
x
p
• and min
⁡
{
W
(
t
,
p
)
∣
t
∈
p
•
} by mi
n
p
•.A transitiont
∈
T is enabled at marking M if and only if for all p
∈
t
•, M
(
p
)
≥
W
(
p
,
t
). This fact is denoted by M
[
t
〉. Firing it yields a new marking M
′ such that for all p
∈
P, M
′
(
p
)
=
M
(
p
)
-
W
(
p
,
t
)
+
W
(
t
,
p
), as denoted by M
[
t
〉
M
′. M
′ is called a immediately reachable marking from M. Marking M
′ is said to be reachable from M if there exists a sequence of transitions σ
=
t
0
t
1
⋯
t
n and markings M
1
,
M
2
,
…, and M
n such that M
[
t
0
〉
M
1
[
t
1
〉
M
2
⋯
M
n
[
t
n
〉
M
′ holds. The set of markings reachable from M in N is called the reachability set of Petri net (
N
,
M
) and denoted by R
(
N
,
M
).LetN
=
(
P
,
T
,
F
,
W
) be a Petri net. N is pure (self-loop free) if and only if for all x
∈
P
⋃
T, x
•
⋂
x
•
=
ϕ. N is called an ordinary net, denoted by N
=
(
P
,
T
,
F
) if for all f
∈
F, W
(
f
)
=
1. N
=
(
P
,
T
,
F
) is called a state machine if for all t
∈
T, |
t
•
|
=
|
t
•
|
=
1. It is strongly connected if for all x
,
y
∈
P
⋃
T, there is a sequence of nodes x
,
a
,
b
,
…
,
c
,
y such that (
x
,
a
)
,
(
a
,
b
)
,
…
,
(
c
,
y
)
∈
F, where {
a
,
b
,
…
,
c
}
⊆
P
⋃
T. An extended free-choice net is an ordinary Petri net such that for all t
1
,
t
2
∈
T, t
1
•
⋂
t
2
•
≠
ϕ
⇒
t
1
•
=
t
2
•. A pure net N
=
(
P
,
T
,
F
,
W
) can be represented by its incidence matrix [
N
], where [
N
] is a |
P
|
×
|
T
| integer matrix with [
N
]
(
p
,
t
)
=
W
(
t
,
p
)
-
W
(
p
,
t
). For a place p (transition t), its incidence vector, a row (column) in [
N
], is denoted by [
N
]
(
p
,
•
)
,
(
[
N
]
(
•
,
t
)
). The structural bound of a place p is defined as B
(
p
)
=
max
⁡
{
M
(
p
)
∣
M
=
M
0
+
[
N
]
·
Y
,
M
≥
0
,
Y
≥
0
}.AP-invariant Y is a P-dimensional vector which satisfies Y
≠
0, Y
T
·
[
N
]
=
0
T. For any reachable marking M
′
∈
R
(
N
,
M
) and aP-invariant Y of N, M
T
·
Y
=
M
′
T
·
Y. ∥
Y
∥
=
{
p
∣
Y
(
p
)
≠
0
} is called the support of Y. ∥
Y
∥
+
=
{
p
∣
Y
(
p
)
>
0
} denotes the positive support of P-invariant Y and ∥
Y
∥
-
=
{
p
∣
Y
(
p
)
<
0
} denotes the negative support ofP-invariant Y. Y is said to be minimal if ∥
Y
∥ is not a superset of the support of any other one and its components are mutually prime. If for all p
∈
∥
Y
∥, Y
(
p
)
>
0, then Y is aP-semiflow.LetS be a nonempty subset of places in N. S is a siphon (trap) if and only if S
•
⊆
S
• (S
•
⊆
S
•). A siphon S is said to be minimal if and only if it contains no other siphons as its proper subset. A minimal siphon is strict if it does not contain a trap (SMS for short).Given a net(
N
,
M
0
), a transition t
∈
T is live under M
0 if and only if for all M
∈
R
(
N
,
M
0
), ∃
M
′
∈
R
(
N
,
M
) such that M
′
[
t
〉. A transition t
∈
T is said to be dead under marking M
∈
R
(
N
,
M
0
) if and only if ∄
M
*
∈
R
(
N
,
M
) such that M
*
[
t
〉. (
N
,
M
0
) is quasi-live under M
0 if and only if for all t
∈
T, ∃
M
∈
R
(
N
,
M
0
) such that M
[
t
〉. (
N
,
M
0
) is live if and only if for all t
∈
T, t is live. In this paper, we will denote the set of live transition under M by T
L and the set of dead transition for marking M by T
D. From the definition above, it can be known that a live transition can be fired infinitely in R
(
N
,
M
0
). A dead transition for marking M can never be fired in R
(
N
,
M
).A number of nodesn
1
,
n
2
,
…
,
n
k is called a path of N if for all i
∈
{
1,2
,
…
,
k
-
1
}, n
i
+
1
∈
n
i
•. An simple path (not a circuit) from n
1 to n
k is a path whose nodes are all different, which can be denoted as SP
(
n
1
,
n
k
). A circuit is an simple path with n
1
=
n
k.


## 3. Definitions and Properties of OSC-S*PR Nets

In order to model FMS with full routing flexibility and multiple copies of different resources, S*PR nets are proposed by Ezpeleta et al. [15], which are defined as follows.Definition 1 (see [15]).
LetI
N
=
{
1,2
,
…
,
m
} be a finite set of indexes. An S*PR net is a connected generalized self-loop-free Petri net N
=
(
P
,
T
,
F
,
W
) where(i)
P
=
P
A
⋃
P
0
⋃
P
R is a partition such that (a) P
A
=
⋃
i
∈
I
N
P
A
,
i is called the set of operation places, where P
A
,
i
≠
ϕ and P
A
,
i
⋂
P
A
,
j
=
ϕ for all i
≠
j; (b) P
0
=
⋃
i
∈
I
N
{
p
0
,
i
} is called the set of idle places; (c) P
R
=
⋃
i
∈
I
N
P
R
,
i
=
{
r
1
,
r
2
,
…
,
r
m
} is called the set of resource places;
(ii)
T
=
⋃
i
∈
I
N
T
i, T
i
≠
ϕ; for all j
≠
i, T
i
⋂
T
j
=
ϕ;
(iii)
W
=
W
A
⋃
W
R, where
W
A
:
(
(
P
A
⋃
P
0
)
×
T
)
⋃
(
T
×
(
P
A
⋃
P
0
)
)
→
{
0,1
} and
for allj
≠
i, W
A
:
(
(
P
A
,
j
⋃
{
p
0
,
j
}
)
×
T
i
)
⋃
(
T
i
×
(
P
A
,
j
⋃
{
p
0
,
j
}
)
)
→
{
0
};
W
R
:
(
P
R
×
T
)
⋃
(
T
×
P
R
)
→
N, where N is the set of natural number;
(iv)
for alli
∈
I
N, the subnet N
i generated by P
A
i
⋃
{
p
0
i
}
⋃
T
i is a strongly connected state machine;
(v)
for allr
∈
P
R, there exists a unique minimal P-semiflow I
r, such that ∥
I
r
∥
⋂
P
R
=
{
r
}, ∥
I
r
∥
⋂
P
0
=
ϕ, ∥
I
r
∥
⋂
P
A
≠
ϕ and I
r
(
r
)
=
1;
(vi)
P
A
=
⋃
r
∈
P
R
(
∥
I
r
∥
∖
P
R
);
(vii)
N is pure and strongly connected.Definition 2 (see [15]).
A well-marked S*PR net(
N
,
M
0
) is a marked Petri net N
=
(
P
,
T
,
F
,
W
) with initial marking M
0 such that for all p
∈
P
A, M
0
(
p
)
=
0; for all r
∈
P
R, M
0
(
r
)
≥
ma
x
p
∈
∥
I
r
∥
I
r
(
p
); and M
0
(
r
)
≥
ma
x
p
∈
∥
I
r
∥
I
r
(
p
), M
0
(
p
0
,
i
)
≥
1.
Due to the structure complexity of S*PR nets, the liveness problem usually relies on the classic state enumeration analysis. Obviously, it is time-consuming due to the state explosion problem. Fortunately, Gadara nets, a subclass of S*PR nets, may utilize some efficient methods such as MIP-based approach for testing their liveness. In fact, Gadara nets are a simplified subclass of S*PR nets with the restriction that no resources are required in all branches and quantity of the same type of resources equals one. The definition is shown as follows.Definition 3 (see [10]).
LetI
N
=
{
1,2
,
…
,
m
} be a finite set of indexes. A Gadara net is an ordinary, self-loop-free Petri net N
=
(
P
,
T
,
F
,
M
0
) where(i)
P
=
P
A
⋃
P
0
⋃
P
R is a partition such that (a) P
A
=
⋃
i
∈
I
N
P
A
,
i is called the set of operation places, where P
A
,
i
≠
ϕ and P
A
,
i
⋂
P
A
,
j
=
ϕ for all i
≠
j; (b) P
0
=
⋃
i
∈
I
N
{
p
0
,
i
} is called the set of idle places; (c) P
R
=
⋃
i
∈
I
N
P
R
,
i
=
{
r
1
,
r
2
,
…
,
r
m
} is called the set of resource places;
(ii)
T
=
⋃
i
∈
I
N
T
i, T
i
≠
ϕ; for all j
≠
i, T
i
⋂
T
j
=
ϕ;
(iii)
for alli
∈
I
N, the subnet N
i generated by P
A
i
⋃
{
p
0
i
}
⋃
T
i is a strongly connected state machine;
(iv)
for allp
∈
P
A, if |
p
•
|
>
1, then for all t
∈
p
•,t
•
⋂
P
R
=
ϕ;
(v)
for allr
∈
P
R, there exists a unique minimal P-semiflow I
r, such that ∥
I
r
∥
⋂
P
R
=
{
r
} (for all p
∈
∥
I
r
∥, I
r
(
p
)
=
1), ∥
I
r
∥
⋂
P
0
=
ϕ, ∥
I
r
∥
⋂
P
A
≠
ϕ, and I
r
(
r
)
=
1;
(vi)
P
A
=
⋃
r
∈
P
R
(
∥
I
r
∥
∖
P
R
);
(vii)
For allr
∈
P
R, M
0
(
r
)
=
1. For all p
∈
P
A, M
0
(
p
)
=
0. For all p
0
∈
P
0, M
0
(
p
0
)
≥
1.
In most cases, the modeling ability of Gadara nets is not enough. Here, a new subclass of S*PR nets, namely, OSC-S*PR nets, is introduced as follows.Definition 4.
Let(
N
,
M
0
) be a well-marked S*PR net. A place p is said to be a choice operation place if and only if p
∈
P
A and |
p
•
|
≥
2. The set of choice operation places in (
N
,
M
0
) is denoted by P
C; that is, P
C
=
{
p
∈
P
A
∣
|
p
•
|
≥
2
}.Definition 5.
Let(
N
,
M
0
) be a well-marked S*PR net. A choice operation place p
∈
P
C is said to be satisfied operation symmetry choice condition (OSC-Condition) if and only if
(1)
∀
t
1
,
t
2
∈
p
•
,
t
1
•
=
t
2
•
,
∀
p
′
∈
t
1
•
=
t
2
•
,
w
(
p
′
,
t
1
)
=
w
(
p
′
,
t
2
)
.
(
N
,
M
0
) is said to be a well-marked OSC-S*PR net if and only if for all p
∈
P
C, p satisfies OSC-Condition.
The OSC-Condition confirms that each output transition of each choice operation place must use the same kind and quantity of resources. From Definition5, it is apparent that OSC-S*PR nets are a subclass of S*PR nets. Since any branch in a Gadara net cannot be associated with any resource [17], it satisfies OSC-Condition as well; that is, Gadara nets are a special case of OSC-S*PR nets.Example 6.
Consider the net shown in Figure1. For the choice operation places p
3 and p
7, all output transitions t
v
1, t
v
2, t
v
3, and t
v
4 use none of resources. So it is an OSC-S*PR net but is not a Gadara net because initial tokens in r
1, r
2, r
3, r
A, and r
B are greater than one.
Similar to the technique in [20, 21], the definition of max′-controlled siphon of S*PR nets is introduced as follows.Figure 1
An OSC-S*PR net.Definition 7.
LetS be a siphon of a S*PR net (
N
,
M
0
), where S
=
S
R
⋃
S
A, S
R
=
S
⋂
P
R
≠
⌀, and S
A
=
S
⋂
P
A
≠
⌀. The holder of resource r is defined as the difference of two sets ∥
I
r
∥ and {
r
}: H
(
r
)
=
∥
I
r
∥
-
{
r
}, and [
S
]
=
∥
⋃
r
∈
S
R
H
r
∥
∖
S is the complementary set of siphon S.Definition 8.
LetS be a siphon of a well-marked S*PR net (
N
,
M
0
). S is said to be max′-marked at marking M
∈
R
(
N
,
M
0
) if and only if ∃
p
∈
S
A such that M
(
p
)
≥
1 or ∃
r
∈
S
R such that M
(
r
)
≥
ma
x
t
∈
r
•
⋂
[
S
]
•
W
(
r
,
t
). S is said to be max′-controlled if and only if it is max′-marked under any reachable marking. (
N
,
M
0
) is said to be max′-controlled if and only if each siphon of it is max′-controlled.
Before proving the liveness condition of OSC-S*PR nets, some lemmas are established first.Lemma 9.
Letp be a choice operation place in a well-marked OSC-S*PR net (
N
,
M
0
). For all M
∈
R
(
N
,
M
0
), the following conclusions hold.(i)
If∃
t
1
∈
p
• such that M
[
t
1
〉, then for all t
2
∈
p
• we have M
[
t
2
〉.
(ii)
If∃
t
1
∈
p
• such that t
1 is disabled under M, then for all t
2
∈
p
• we have that t
2 is disabled under M.Proof.
This is trivial. Because from Definition5, for all t
1
,
t
2
∈
p
•, t
1
•
=
t
2
• and for all p
∈
t
1
•, w
(
p
,
t
1
)
=
w
(
p
,
t
2
). Therefore, all of them are enabled for making M if one of them is enabled and all of them are disabled for making M if one of them is disabled.Lemma 10.
Let(
N
,
M
0
) be a well-marked S*PR net. For all p
i
∈
P
A
i, there must exist a simple path S
P
(
p
i
,
p
i
0
) from p
i to p
i
0.Proof.
This is trivial, since by condition (iv) in Definition1, N
i generated by P
A
i
⋃
{
p
i
0
}
⋃
T
i is strongly connected.Lemma 11.
Let(
N
,
M
0
) be a well-marked S*PR net. Then, N is quasi-live under M
0.Proof.
FromM
0, by Definition 2, for all t
0
∈
P
0
•, t
0 is enabled. For the transition t
j
,
i
∈
T
i
∖
P
0
•, since (
N
,
M
0
) is well-marked, we can construct a trivial firing sequence s
=
t
0
,
i
,
t
1
,
i
,
…
,
t
(
j
-
1
)
,
i from M
0 by only allowing the execution of only one sequential process i and only one token flowing into process i, reaching a marking M such that M
[
t
j
,
i
〉. This is valid for each t
∈
T.Lemma 12.
Let(
N
,
M
0
) be a well-marked S*PR net, and let M
∈
R
(
N
,
M
0
) be a reachable marking so that t
∈
T is a dead transition under M. Then, M
0
∉
R
(
N
,
M
).Proof.
Assume thatM
0
∈
R
(
N
,
M
). By Lemma 11, ∃
M
′
∈
R
(
N
,
M
) such that M
′
[
t
〉. This contradicts the hypothesis that t
∈
T is a dead transition under M. Thus, Lemma 12 holds.Similar to the method in [7], Lemma 13 is proposed which means that if there is a reachable marking such that a transition is dead, then there exists a set of processes where some tokens cannot evolve any more.Lemma 13.
Let(
N
,
M
0
) be a well-marked OSC-S*PR net. M
∈
R
(
N
,
M
0
) and t
*
∈
T is a dead transition under M; then there exist M
′
∈
R
(
N
,
M
) and two subsets J
,
H
∈
I
N such that I
N
=
J
⋃
H, I
N
=
{
1,2
,
…
,
n
}, J
⋂
H
=
⌀, J
≠
⌀, and (i) for all h
∈
H, M
′
(
p
h
0
)
=
M
0
(
p
h
0
); (ii) for all j
∈
J, M
′
(
p
j
0
)
<
M
0
(
p
j
0
), and Ω
=
{
p
•
∣
p
∈
P
A
,
M
′
(
p
)
>
0
} is a set of dead transitions.Proof.
By condition (ii) of Definition1, for all i
∈
I
N and for all M
′
∈
R
(
N
,
M
′
), M
′
(
p
i
0
)
≤
M
0
(
p
i
0
). Therefore, there must exist M
′
∈
R
(
N
,
M
) and two subsets J
,
H
∈
I
N such that I
N
=
J
⋃
H, I
N
=
{
1,2
,
…
,
n
}, J
⋂
H
=
⌀ and (i) for all h
∈
H, M
′
(
p
h
0
)
=
M
0
(
p
h
0
); (ii) for all j
∈
J, M
′
(
p
j
0
)
<
M
0
(
p
j
0
).
First, proveJ
≠
⌀. Assume that J
=
⌀. Then, it can be concluded that H
=
I
N. Therefore, for all h
∈
I
N, we have M
′
(
p
h
0
)
=
M
0
(
p
h
0
), M
′
=
M
0. Since (
N
,
M
0
) is a well-marked OSC-S*PR net, by Lemma 11, it is quasi-live. Therefore, for all t
′′
∈
T, ∃
M
′′
∈
(
N
,
M
′
), such that M
′′
[
t
′′
〉. This contradicts the condition that t
*
∈
T is a dead transition. Thus, J
≠
⌀.
Then, prove∃
M
′
∈
R
(
N
,
M
) such that for all j
∈
J, Ω
=
{
p
•
∣
p
∈
P
A
,
M
′
(
p
)
>
0
} is a set of dead transitions. From the marking M
′ mentioned before and move all processes one by one corresponding to indexes in J as follows approach. By Lemma 10, for all p
j
∈
P
A
j there must exist a simple path SP
(
p
j
,
p
j
0
) from p
j to p
j
0. Then, for all p
j
∈
{
p
∈
P
A
j
,
M
′
(
p
)
>
0
}, moving the process along SP
(
p
j
,
p
j
0
), the process will be either dead (since by Lemma 9, all the transitions in the postset of a choice place are disabled as long as one of them is disabled) or back to initial state, in which the tokens in p
j will flow back to p
j
0. Repeat this for each process corresponding to indexes in J. The net reaches a marking M
′′
∈
R
(
N
,
M
′
) verifying condition (ii) in the hypothesis, because, on the contrary, all process corresponding to indexes in J will get back to the initial state; that is, M
0
∈
R
(
N
,
M
′
) which is in contradiction with Lemma 12. Let M
′
:
=
M
′′; Lemma 13 holds.From these lemmas, the main theorems can be obtained as follows.Theorem 14.
Let(
N
,
M
0
) be a well-marked OSC-S*PR net, M
∈
R
(
N
,
M
0
), and t
∈
T is a dead transition for M. Then ∃
M
′
∈
R
(
N
,
M
), ∃
S is a siphon such that S is nonempty and non-max′-marked.Proof.
Consider the makingM
′ given in Lemma 13.
Let(2)
S
R
′
=
{
r
∈
P
R
∣
∃
t
∈
r
•
,
M
′
(
r
)
<
w
(
r
,
t
)
,
p
∈
P
A
⋂
t
•
,
M
′
(
p
)
>
0
}
;
S
P
′
=
{
p
∈
H
(
r
)
∣
r
∈
S
R
,
M
′
(
p
)
=
0
}
.
S
R
′ is the set of resource places which have at least one disabled output transition and this transition is disabled only because of the lack of this resource. S
P
′ is the set of nonmarked places in H
(
r
). It is apparent that S
≠
ϕ (otherwise S
R
′
=
ϕ, then for all p
∈
P
A
⋂
{
p
∣
M
′
(
p
)
>
0
}, it is true that for all t
′
∈
p
•
,
M
′
[
t
′
〉, which contradicts the condition that Ω is a set of dead transitions).
Now we prove thatS
=
S
R
′
⋃
S
P
′ is a non-max′-marked siphon under M
′.
First, we prove thatS is a siphon; that is, for all t
′
∈
S
•, t
′
∈
S
•. Then, two cases should be considered.
Case 1. t
′
∈
r
•, where r
∈
S
R
′. By Definition 1, the subnet of an S*PR net is a state machine. Thus, |
t
′
•
⋂
P
A
|
=
1. Let t
′
•
⋂
P
A
=
{
p
′
}. Since t
′
∈
r
•, it can be obtained that p
′
∈
H
(
r
). Then, two subcases should be considered as follows.
Subcase 1.1. If M
′
(
p
′
)
=
0, by the definition of S
P
′, it can be obtained that p
′
∈
S
P
′. Therefore, t
′
∈
S
P
′
•
⊆
S
•.
Subcase 1.2. If M
′
(
p
′
)
≠
0, by the definition of Ω in Lemma 13, t
′
∈
Ω. By Lemma 13, t
′ is a dead transition for M
′. Therefore, ∃
r
′
∈
t
′
•
⋂
P
R satisfies M
′
(
r
′
)
<
W
(
r
′
,
t
′
). By the definition of S
R
′, it can be obtained that r
′
∈
S
R. Thus, t
′
∈
S
R
′
•
⊆
S
•.
Case 2. t
′
∈
p
•, where p
∈
S
p
′. By the definition of S
P
′
,
∃
r
∈
S
R
′, such that p
∈
H
(
r
). If t
′
∈
r
•, then t
′
∈
S
R
′
•
⊆
S
•. If t
′
∉
r
•, since p
∈
H
(
r
), there must exist p
′
∈
H
(
r
)
⋂
P
A, such that t
′
∈
(
p
′
)
•. Similarly, the two following subcases should be considered.
Subcase 2.1. If M
(
p
′
)
=
0, by definition of S
P
′, it can be obtained that p
′
∈
S
P
′. Therefore, t
′
∈
S
P
′
•
⊆
S
•.
Subcase 2.2. If M
(
p
′
)
≠
0, similar to the proof in Subcase 1.2, t
′
∈
S
R
′
•
⊆
S
• holds.
In conclusion,∀
t
′
∈
S
•
,
t
′
∈
S
•. Thus, S is a siphon.
Then, we prove siphonS is non-max′-marked under M
′. ∀
p
∈
S
p
′, by definition of S
P
′, M
′
(
p
)
=
0. ∀
r
∈
S
R
′, by definition of S
R
′, ∃
t
∈
r
• such that M
′
(
r
)
<
w
(
r
,
t
). Thus, by Definition 8, siphon S is non-max′-marked under M
′.
In summary,∃
M
′
∈
R
(
N
,
M
) and ∃
S is a siphon such that S is nonempty and non-max′-marked.Theorem 15.
Let(
N
,
M
0
) be a well-marked OSC-S*PR net. (
N
,
M
0
) is live if all siphons of (
N
,
M
0
) are max′-controlled.Proof.
Assume that each siphon in(
N
,
M
0
) is max′-controlled while (
N
,
M
0
) not live. Then, ∃
M
∈
R
(
N
,
M
0
) and ∃
t
∈
T is a dead transition under M. By Theorem 14, ∃
M
′
∈
R
(
N
,
M
), ∃
S is a siphon which is non-max′-marked under M
′. This contradicts the assumption that (
N
,
M
0
) is max′-controlled. Thus (
N
,
M
0
) is live.It should be noticed that Theorem15 is a sufficient liveness condition for OSC-S*PR nets. Thus, there may be some live OSC-S*PR nets which are not max′-controlled.


## 4. Liveness Test Algorithm for OSC-S*PR Nets

In this section, an MIP-based liveness test algorithm is proposed, which is based on Theorem15 in Section 3. The operators set of an operation place is introduced here, which is similar to [14].Definition 16.
LetN be an S*PR net. For p
∈
P
A, R
p
=
{
r
∣
r
∈
P
R
,
p
∈
H
r
} the resource places that are required by p are called the set of operators of p.According to Theorems14 and 15, the following theorem can be obtained, which is also a liveness test algorithm for testing liveness of OSC-S*PR nets.Theorem 17 (Algorithm 1).
Let(
N
,
M
0
) be a well-marked S*PR net. Then, the minimal non-max′-marked siphon S under M is determined by S
=
{
p
∈
P
∣
s
p
=
1
}, where s
p and M are obtained by the following MIP formulation:
(3)
min
⁡
∑
p
∈
P
∖
P
0
s
p
such that
(4)
|
t
•
|
∑
p
∈
t
•
s
p
≥
∑
p
∈
t
•
s
p
,
t
∈
T
,
p
∈
P
(5)
M
=
M
0
+
[
N
]
·
Y
,
M
≥
0
,
Y
≥
0
(6)
∑
p
∈
P
0
s
p
=
0
(7)
∑
p
∈
P
A
s
p
≥
1
(8)
∑
p
∈
P
R
s
p
≥
1
p
∈
P
A, t
∈
p
•
(9)
e
t
≥
M
(
p
)
B
(
p
)
(10)
M
(
p
)
≥
e
t
(11)
s
p
+
e
t
≤
1
r
∈
P
R, t
∈
r
•, p
∈
P
A
⋂
t
•, r
′
∈
R
p
(12)
(
2
s
r
-
1
)
·
M
(
r
)
≤
(
2
s
r
-
1
)
·
{
max
⁡
t
∈
r
•
⁡
[
s
r
·
(
1
-
s
p
)
·
(
max
⁡
r
′
∈
R
p
⁡
s
r
′
)
·
W
(
r
,
t
)
]
-
s
r
}
(13)
s
p
,
e
t
∈
{
0,1
}
(14)
Y
(
p
)
∈
N
,
where M
∈
R
(
N
,
M
0
), B
(
p
) is the structural bound of place p.
Then, the minimal non-max′-marked siphon is the set of places withs
p
=
1.Proof.
LetS be a non-max′-marked siphon. By Definition 8, the following conclusions hold:(i)
for allp
∈
S
A, M
(
p
)
=
0;
(ii)
for allr
∈
S
R, M
(
r
)
<
ma
x
t
∈
r
•
⋂
[
S
]
•
W
(
r
,
t
).
Then, let us explain the meaning of the constraints one by one.
Objective (3) ensures that the siphon is a minimal siphon.
Constraint (4) ensures that s
p is the characteristic vector of the siphon [22].
Constraint (5) ensures that M
∈
R
(
N
,
M
0
). This is trivial.
Constrains (6)–(8) ensure that the siphon contains no idle place and has one operation place and one resource place at least.
In constrains (9)–(11), p
∈
P
A, t
∈
p
•. e
t means whether transition t is disabled by the operation place p which is in the preset of it. If t is disabled by the operation place p, e
t
=
0. Otherwise, e
t
=
1. This comes from the following facts. If M
(
p
)
≥
1, then transition t is enabled by the operation place p. From constraint (9) and definition of structural bound B
(
p
) in Section 2, it can be obtained that e
t
≥
M
(
p
)
/
B
(
p
)
>
0. Since e
t
∈
{
0,1
}, we have e
t
=
1, which follows the meaning of e
t; if M
(
p
)
=
0, then transition t is disabled by the operation place p. From constraints (9) and (10), it can be obtained that e
t
≥
M
(
p
)
/
B
(
p
)
=
0 and e
t
≥
M
(
p
)
=
0. Thus, e
t
=
1 which follows the meaning of e
t.
Then, constraint (11) ensures that in the siphon S condition (i) holds. This comes from the following fact: for all p
∈
S
A, by the meaning of s
p, we have s
p
=
1. By constraint (11), it can be obtained that e
t
≤
1
-
s
p
=
0. Since s
p
,
e
t
∈
{
0,1
}, we have e
t
=
0. By the conclusions above, it can be obtained that transition t is disabled by the operation place p and M
(
p
)
=
0. This follows condition (i).
Constraint (12) ensures that in siphon S condition (ii) will hold. Since s
p
∈
{
0,1
}, the following two cases should be considered.
Case 1. If s
r
=
0, that is, r is not an element of siphon S, then ma
x
t
∈
r
•
[
s
r
·
(
1
-
s
p
)
·
(
ma
x
r
′
∈
R
p
s
r
′
)
·
W
(
r
,
t
)
]
-
s
r
=
0. Constrain (10) is equivalent to M
(
r
)
≥
0 which is trivial and will not add extra constraints to the formulations.
Case 2. If s
r
=
1, that is, r is an element of siphon S, then constrain (10) is equivalent to
(15)
M
(
r
)
≤
max
⁡
t
∈
r
•
⁡
[
(
1
-
s
p
)
(
max
⁡
r
′
∈
R
p
⁡
s
r
′
)
·
W
(
r
,
t
)
]
-
1
.
Then we explain that constraint (15) indicates condition (ii). Two cases should be considered. If p
∈
[
s
], that is, t
∈
r
•
⋂
[
S
]
•, then we can obtain that p
∉
S and p
∈
H
(
r
′
). Since p
∉
S, (
1
-
s
p
)
=
1. By Definition 16 and p
∈
H
(
r
′
), it can be obtained that (
ma
x
r
′
∈
R
p
s
r
′
)
=
1. Thus, (15) can be transferred into M
(
r
)
≤
ma
x
t
∈
r
•
W
(
r
,
t
)
-
1, which means M
(
r
)
<
ma
x
t
∈
r
•
⋂
[
S
]
•
W
(
r
,
t
). If p
∉
[
s
], that is, t
∉
r
•
⋂
[
S
]
•, then we can obtain that p
∈
S or p
∉
H
(
r
′
). Similarly, it can be obtained that (
1
-
s
p
)
=
0 or (
ma
x
r
′
∈
R
p
s
r
′
)
=
0. Then, (
1
-
s
p
)
(
ma
x
r
′
∈
R
p
s
r
′
)
·
W
(
r
,
t
)
=
0, this kind of transitions will not be taken into comparison [14].
Therefore, constraint (12) ensures that in the siphon S condition (ii) holds.
In conclusion, constraints (11) and (12) ensure that the obtained siphon satisfies conditions (i) and (ii), that is, is a non-max′-marked siphon.
In summary, if the MIP formulation has a feasible solution, the obtained siphon is the minimal non-max′-marked siphon.Thus, Theorem17 can find a non-max′-controlled siphon at a bad marking. It utilizes some MIP tools to find non-max′-controlled siphons rather than traverse the state space of the net. Following Theorem 17, Corollary 18 can be obtained.Corollary 18.
Let(
N
,
M
0
) be a well-marked OSC-S*PR net. It is live if Algorithm 1 has no feasible solution.Proof.
For a well-marked OSC-S*PR net, Algorithm 1 having no feasible solution means that all siphons of this net are max′-controlled. By Theorem15, it is live.Example 19.
Applying Algorithm 1 to the OSC-S*PR net in Figure1 and solving by Lingo [23] no feasible solution can be found. By Corollary 18, it is live, which follows the fact that it is a live net.


## 5. Liveness Test for S*PR Nets

In order to test liveness of the S*PR nets, an indirect method is given in this section, which comprises two steps as follows: first, for a given S*PR net, constructing an OSC-S*PR net to ensure that if the latter is live then the former must be live; second, testing liveness of the constructed OSC-S*PR net by the aforementioned MIP-based algorithm.Remark 20.
In the following sections, we assume that for allp
0
i
∈
P
0, |
p
0
i
•
|
=
1.
Remark20 restricts that each process in the net can only have one start action.
In the following, the constructing algorithm is proposed.Insertion 1.
Let(
N
,
M
0
) be a well-marked S*PR net. For all p
∈
P, t
∈
p
•, a pair of virtual place and virtual transition {
p
v
,
t
v
} is inserted into (
p
,
t
) as follows:(i)
F
=
(
F
⋃
(
p
,
t
v
)
⋃
(
t
v
,
p
v
)
⋃
(
p
v
,
t
)
)
/
(
p
,
t
);
(ii)
P
A
=
P
A
⋃
{
p
v
}, T
=
T
⋃
{
t
v
};
(iii)
w
(
p
,
t
v
)
=
1, w
(
t
v
,
p
v
)
=
1, w
(
p
v
,
t
)
=
1;
(iv)
M
0
(
p
v
)
=
0.
Then, for a given S*PR net, an OSC-S*PR net can be constructed by the following algorithm.Algorithm 2Input. S*PR net (
N
,
M
0
).Output. A constructed net (
N
^
,
M
^
0
).Step 1. Ω
:
=
P
C, P
v
:
=
ϕ, T
v
:
=
ϕ, (
N
′
,
M
0
′
)
:
=
(
N
,
M
0
);Step 2.while
Ω
≠
ϕ, for the net (
N
′
,
M
0
′
) do the following:Step 2.1. P
o
s
t
:
=
p
•:Step 2.2.while
P
o
s
t
≠
ϕ, do the following:Step 2.1.1. for all t
∈
P
o
s
t, insert {
p
v
i
,
t
v
i
} to (
p
,
t
) by Insertion 1 and obtain (
N
′′
,
M
0
′′
);Step 2.1.2. P
o
s
t
=
P
o
s
t
/
{
t
}, P
v
=
P
v
⋃
{
p
v
i
}, T
v
=
T
v
⋃
{
t
v
i
}, i
+
=
1, (
N
′
,
M
0
′
)
:
=
(
N
′′
,
M
0
′′
);endwhileStep 2.3. Ω
:
=
Ω
/
{
p
};endwhileStep 3. (
N
^
,
M
^
0
)
:
=
(
N
′
,
M
0
′
);Step 4. Output the constructed net (
N
^
,
M
^
0
).SinceP
C and p
• are finite sets, it can be obtained that Algorithm 2 will end in finite steps. What is more, (
N
^
,
M
^
0
)
=
(
P
⋃
P
v
,
T
⋃
T
v
,
F
^
,
W
^
,
M
^
0
) is called the constructed net of (
N
,
M
0
), and (
N
,
M
0
) is called original S*PR net of (
N
^
,
M
^
0
).Remark 21.
By Algorithm 2 and Insertion1, it is trivial that for all p
∈
P
v, M
^
0
(
p
)
=
0 and for all p
∈
P, M
^
0
(
p
)
=
M
0
(
p
); that is, M
^
0
(
p
)
=
∑
p
∈
P
M
0
(
p
)
p.Lemma 22.
Let(
N
,
M
0
) be a well-marked S*PR net and (
N
^
,
M
^
0
) is the constructed net obtained by Algorithm 2. Then, (
N
^
,
M
^
0
) is a well-marked OSC-S*PR net.Proof.
First, we prove that(
N
^
,
M
^
0
) is a well-marked S*PR net. By Insertion 1, the virtual places are considered as operation places. Thus, it is apparent that (
N
^
,
M
^
0
) satisfies conditions (i), (ii), (iii), (iv), and (v) in Definition 1. Then, we prove that it satisfies conditions (vi) and (vii). Without loss of generality, assume that p
1
∈
P
C and t
1
∈
p
1
• in (
N
,
M
0
). Then by Insertion 1, p
v and t
v will be inserted to (
p
1
,
t
1
). Since t
v
•
=
{
p
1
}, t
v
•
=
{
p
v
} and p
v
•
=
{
t
1
}, it can be obtained that no self-loop is inserted to (
N
^
,
M
^
0
) by Insertion 1. This is valid for each insertion in Algorithm 2. Therefore, it can be concluded that no self-loop will be inserted to (
N
^
,
M
^
0
); that is, (
N
^
,
M
^
0
) will still be a pure net. What is more, p
1 and t
1 are still connected by the path p
1
,
t
v
,
p
v
,
t
1. This is also valid for all the insertions in Algorithms. Hence, (
N
^
,
M
^
0
) will still be strongly connected; that is, (
N
^
,
M
^
0
) satisfy condition (vii) in Definition 1. Since t
v do not attach to any resources, p
v will use the resources that p
∈
P
C
⋂
t
v
• has used. Therefore, (
N
^
,
M
^
0
) satisfies condition (vi) of Definition 1. Henceforth, (
N
^
,
M
^
0
) is an S*PR net. What is more, by Remark 21, the initial marking of virtual place is zero and the initial marking of other places stays the same. Thus, regarding virtual places as members of operation places, (
N
^
,
M
^
0
) satisfies Definition 2 as well; that is, (
N
^
,
M
^
0
) is a well-marked S*PR net.
Second, we prove that(
N
^
,
M
^
0
) is an OSC-S*PR net. Considering Step 2.1 in Algorithm 2 with Remark 20, it is guaranteed that for all p
∈
P
A if |
p
•
|
≥
2, then for all t
∈
p
•, t
•
=
{
p
} and t
∈
T
v. Thus (
N
^
,
M
^
0
) satisfies Definition 5; that is, (
N
^
,
M
^
0
) is an OSC-S*PR net.
In summary,(
N
^
,
M
^
0
) is a well-marked OSC-S*PR net.Example 23.
The Petri net plant in Figure2 is an S*PR. Since p
3
•
=
{
t
3
,
t
5
}, t
3
•
≠
t
5
• and p
7
•
=
{
t
8
,
t
9
}, t
8
•
≠
t
9
•, it does not satisfy the OSC-Condition. By Algorithm 2, the constructed net is shown as Figure 1, and it is an OSC-S*PR net.
Then, we will prove that the original S*PR net must be live if its constructed net is live.Figure 2
An S*PR net.Theorem 24.
Let(
N
,
M
0
) be an S*PR net and let (
N
^
,
M
^
0
) be its constructed net. If (
N
^
,
M
^
0
) is live, (
N
,
M
0
) is live.Proof.
The liveness of Petri nets is determined by the firing sequence of transitions and the number of tokens consumed and produced by transitions. If the each firing sequence of(
N
,
M
0
) has a corresponding firing sequences of (
N
^
,
M
^
0
) and the number of tokens consumed and produced by those firing sequences is the same, then it can be obtained that if (
N
^
,
M
^
0
) is live, (
N
,
M
0
) is live. In other words, (
N
,
M
0
) must retain the number or direction of flow of tokens in (
N
^
,
M
^
0
). What is more, by Remark 21, the initial making of (
N
,
M
0
) and (
N
^
,
M
^
0
) satisfies M
^
0
(
p
)
=
∑
p
∈
P
M
0
(
p
)
p
+
∑
p
v
∈
P
v
0
*
p
v
=
∑
p
∈
P
M
0
(
p
)
p. Thus, this theorem could be proved by checking whether each firing sequence of (
N
,
M
0
) has a corresponding firing sequence in (
N
^
,
M
^
0
) which consumes and produces the same number of tokens in the same places.
The only difference between an S*PR net and its constructed net is the virtual transitions and virtual places that are inserted by Algorithm 2. Without loss of generality, we could assume that in(
N
,
M
0
), p
∈
P
C, t
∈
p
• and in (
N
^
,
M
^
0
), t
v
•
=
{
p
}, t
v
•
=
{
p
v
} and p
v
•
=
{
t
}. In the firing sequence of transitions, the insertion means a replacement of the firing of t by a subfiring sequence t
v
t. From the viewpoint of token number, the subfiring sequence produces tokens to each p
′
∈
t
• by the weight of w
(
t
,
p
) and it demands tokens from r
∈
t
•
⋂
P
R and p by the weight of w
(
r
,
t
) and w
(
p
,
t
v
) (the token in p
v remains zero). Since in (
N
^
,
M
^
0
), w
(
p
,
t
v
)
=
1 which is equal to w
(
p
,
t
)
=
1 in (
N
,
M
0
), the number of tokens demand and produced by the subfiring sequence is equal to that number of transition t. Therefore, the number of tokens in each place changed by firing t
v
t is the same as that of firing t. This is valid for each t
∈
P
C
•. Therefore, for any firing sequence σ of (
N
,
M
0
), each transition t
i (which satisfies t
i
∈
(
P
C
)
•) in σ is replaced by the subfiring sequence t
v
i
t
i, a new firing sequence σ
^ will be obtained for (
N
^
,
M
^
0
), and the token in each place changed by firing σ
^ must be the same to that of firing σ (the token in p
v remains zero). Thus, it can be obtained that if (
N
^
,
M
^
0
) is live, then (
N
,
M
0
) is live.So, the liveness of an S*PR net(
N
,
M
0
) can be tested the algorithm shown as follows.Algorithm 3Input. S*PR net (
N
,
M
0
).Output. a non-max′-marked siphon S.Step 1. Construct an OSC-S*PR (
N
^
,
M
^
0
) from (
N
,
M
0
) by Algorithm 2;Step 2. Obtain a non-max′-marked siphon S of (
N
^
,
M
^
0
) by Algorithm 1;Step 3. Output S of (
N
^
,
M
^
0
).Theorem 25.
Let(
N
,
M
0
) be a well-marked S*PR net. If Algorithm 3 has no feasible solution, then (
N
,
M
0
) is live.Proof.
By Algorithm 3,(
N
,
M
0
) will be transformed to its constructed (
N
^
,
M
^
0
). By Lemma 22, (
N
^
,
M
^
0
) is an OSC-S*PR net. By Step 2 and Step 3, Algorithm 3 has no feasible solution which means that applying Algorithm 1 to (
N
^
,
M
^
0
) there is no feasible solution obtained. Then, by Corollary 18, (
N
^
,
M
^
0
) is live. Therefore, by Theorem 24, it can be obtained that (
N
,
M
0
) is live.Example 26.
The Petri net model in Figure2 is an S*PR net, but not an OSC-S*PR net. The choice places p
3 and p
7 dissatisfy the OSC-Condition. By Algorithm 2, {
t
v
1
,
p
v
1
} and {
t
v
2
,
p
v
2
} are inserted at the rear of p
3, and {
t
v
3
,
p
v
3
} and {
t
v
4
,
p
v
4
} are inserted at the rear of p
7. The constructed net is obtained as Figure 1. Then, by Algorithm, it can be obtained that the constructed net is live. By Theorem 24, the original in Figure 2 is live.


## 6. Examples

In this section, a typical example (shown as Figure3) is quoted to illustrate Algorithm 2, which is a classic FMS cell with 2 buffers, 4 machines, and 3 robots [15]. And it can be modeled as Figure 4.Figure 3
Layout of a manufacturing cell.Figure 4
An S*PR net modeling the system in Figure3.Since the choice operation placesP
1
R
1, P
1
R
2, and P
2
R
2 dissatisfy the OSC-Condition, the net in Figure 4 is not an OSC-S*PR net. By the Step 2.1 of Algorithm 2, pairs of virtual transitions and places should be inserted at the rear of each branch of choice places; in other words, {
T
V
1
,
P
1
R
1
V
1
}, {
T
V
2
,
P
1
R
1
V
2
}, {
T
V
3
,
P
1
R
2
V
1
}, {
T
V
4
,
P
1
R
2
V
2
}, {
T
V
5
,
P
2
R
2
V
1
}, and {
T
V
6
,
P
2
R
2
V
2
} are inserted. Then, the constructed net is shown as Figure 5.Figure 5
the constructed net of Figure4.After applying the MIP formulation in Theorem17 to Figure 5 and solving it with LINGO [23] we obtain a minimal non-max′-marked siphon S
=
P
1
R
3
+
P
2
M
4
+
H
4
+
R
3, which follows the fact that the net is nonlive.Generally, some structural controllers can be added to enforce the liveness of the net (referring to [9, 10, 15, 21]). Here, four controllers V
S
1, V
S
2, V
S
3, and V
S
4 are added into the net in Figure 5, and the resulted S*PR net is shown as Figure 6. Then, the constructed net in Figure 7 can be obtained by Algorithm 2. It can be verified that the net in Figure 7 is live. By Algorithm 3, the net in Figure 6 must be live.Figure 6
A controlled S*PR Net of Figure5.Figure 7
The constructed net of Figure6.


## 7. Conclusions

It is well-known that S3PR nets and S4PR nets can model sequential FMS, while full routine flexibilities can be modeled by S*PR nets. As a subclass of S*PR nets, OSC-S*PR nets have some modeling abilities about routine flexibilities with the restriction of each choice operation using the same type and quantity of resources. Obviously, Gadara nets [17] are a special case of OSC-S*PR nets satisfying no resources needed in all choice operations. Henceforth, their modeling capabilities can be illustrated as Figure 8 approximately.Figure 8
Modeling capabilities of some subclasses of S*PR nets.It is worth to say that Theorem15 is just a sufficient condition, and some live OSC-S*PR nets may contain non-max′-controlled siphons. In other words, sometimes Theorem 15 is a little strict though, so there maybe exist ways to loosen the sufficient condition. Moreover, the liveness property of S*PR nets still cannot be tested directly by using standardized mixed integer programming (MIP) tools in this paper. And we should make great efforts to develop more efficient algorithms for testing liveness of S*PR nets.



---

*Source: 319281-2014-08-07.xml*