**2. Preliminaries**

In this section, we present some definitions and notations to be necessary in the following sections.

**Definition 1.** Let PN=(P, T, I, O, M0) be a marked Petri net. P={p1, p2, …, pn} is the finite set of places. T={t1, t2, …, tm} is the finite set of transitions. I is the input function. O is the output function. M0 is the initial marking.

A PN is an ordinary Petri net iff I(p, t)→{0, 1} and O(t, p)→{0, 1} for any p∈P and t∈T. **A**=**O**-**I** is the incidence matrix, where **O** and **I** are the output and input function matrices [16]. Let **X**=[x1 x2 … xm]T be a column vector. If **X** is the firing count vector of S(**X**), the sequence S(**X**) is called the transition sequence associated with **X.** The transition set T(**X**) is called the support of **X** if it is composed of transitions associated with positive elements of **X**, i.e. T(**X**)={ti|xi>0}. p is the set of output transitions of p, p is the set of input transitions of p, t is the set of output places of t, and t is the set of input places of t.

**Definition 2.** Ci=<p, Tci> is called a conflict structure [17] if it satisfies the following condition: Tci={t|t∈p} and |Tci|≥2, where |Tci| is the cardinality of Tci. We note that C={C1, C2, …} is the set of all Ci and Tc=Tc1∪Tc2∪…. is the set of all conict transitions.

**Definition 3.** For transition tj and **X**, the sub-vector **H(**tj|**X**) is defined as: **H(**tj|**X**)=*e*[tj]xj. *e*[tj] is the unit m-vector which is zero everywhere except in the j-th element.

**Definition 4.** For the conflict structure Ci=<p, Tci> and **X**, the sub-vector **H(**Ci|**X**) is defined as follows:

$$\mathbf{H(C\_i \mid X)} = \sum\_{\mathbf{t}\_i \in \mathrm{Tci}} \mathbf{H(t \mid X)} \tag{1}$$

**Definition 5.** Ci=<p, Tci> is in a spurious conflict state for **X** under **M** if there exists a firing sequence S(**H(**Ci|**X**)) under **M**, i.e. the mathematic criterion is **M**≥**IH(**Ci|**X**).

Otherwise, Ci is in an effective conflict state for **X** under **M**, and the transition in Tci is called the effective conflict transition for **X** under **M**.

**Notation 1.** N(tj|S(**X**))=xj is the number of occurrence times of tj in S(**X**).

**Notation 2.** If q=min{**M**(pi), pi∈tj}, we call tj q-enabled under marking **M.** This q is denoted as E(tj|**M**).

**Definition 6. F**=[f1 f2 … fm]T is called an actual firing vector whose j-th element is fj=min{N(tj|S(**X**)), E(tj|**M**)}. **F** can be partitioned into two parts as follows: **F**=**F**o+**F**c, where **F**c=[fc1 fc2 … fcm]T is associated with effective conflict transitions, **F**o =[fo1 fo2 … fom]T is associated with the other transitions. **F**o and **F**c satisfy the following conditions:


424 Petri Nets – Manufacturing and Computer Science

utilized to find a reachable marking [15].

that is a firing sequence under **M**0.

solutions are spurious, then **M**d is not reachable.

and to enumerate the associated firing sequence is presented.

illustrative examples are given in Section 3, Section 4, and Section 5.

set X={**X**1, **X**2, …}.

**2. Preliminaries** 

function. M0 is the initial marking.

output places of t, and t is the set of input places of t.

sections.

**M**d is reachable from the initial marking **M**0, it is significant to find a firing sequence, which is an ordered sequence of transitions that lead **M**0 to **M**d. The following method can be

i. Solve the equation **AX**=**M**d-**M**0 to ascertain all the solutions **X**1, **X**2, … and construct the

ii. Test if **X**i in X is an executable solution from **M**0, i.e. there is at least one sequence S(**X**i)

iii. If an executable solution exists, then **M**d is reachable. On the contrary, if X=Ф or all

However, this approach is theoretic rather than practical, because there are two problems: One is that the solution of the fundamental equation **AX**=**M**d-**M**0 is infinite in some cases. In that case, it is impossible to test all solution **X**i. The other is that the computation complexity

In this chapter, the above two problems will be solved as follows: First, we construct a sufficient test space to include at least one executable solution within set X. An approach is secondly proposed to test whether there is an executable solution within the sufficient test space or not. A systematic method to search an executable solution in a sufficient test space

The remainder of the chapter is arranged as follows: Definitions and notations required in this chapter are given in Section 2. Section 3 describes how to determine the sufficient test space for the reachability problem. In Section 4, an algorithm is developed to determine if **X**<sup>i</sup> is a executable solution under **M**0 and gives the associated firing sequence S(**X**i). The

In this section, we present some definitions and notations to be necessary in the following

**Definition 1.** Let PN=(P, T, I, O, M0) be a marked Petri net. P={p1, p2, …, pn} is the finite set of places. T={t1, t2, …, tm} is the finite set of transitions. I is the input function. O is the output

A PN is an ordinary Petri net iff I(p, t)→{0, 1} and O(t, p)→{0, 1} for any p∈P and t∈T. **A**=**O**-**I** is the incidence matrix, where **O** and **I** are the output and input function matrices [16]. Let **X**=[x1 x2 … xm]T be a column vector. If **X** is the firing count vector of S(**X**), the sequence S(**X**) is called the transition sequence associated with **X.** The transition set T(**X**) is called the support of **X** if it is composed of transitions associated with positive elements of **X**, i.e. T(**X**)={ti|xi>0}. p is the set of output transitions of p, p is the set of input transitions of p, t is the set of

**Definition 2.** Ci=<p, Tci> is called a conflict structure [17] if it satisfies the following condition: Tci={t|t∈p} and |Tci|≥2, where |Tci| is the cardinality of Tci. We note that C={C1,

C2, …} is the set of all Ci and Tc=Tc1∪Tc2∪…. is the set of all conict transitions.

of testing **X**i increases at least exponentially as the length of S(**X**i) increases.

#### **3. Determination of the sufficient test space**

If all the solutions of the equation **AX**=**M**d-**M**0 are tested, It can be found whether Md is reachable or not. But in some case, the solutions are infinite. Therefore, the tested range is determined in order to keep the method practical. This range must be finite and include at least one executable solution if it exists. This section will discuss how to determine the tested range.

**Definition 7.** Given the initial marking **M**0 and the destination marking **M**d of a PN, **X** is a solution of **AX**=**M**d-**M**0. If **M**d is reachable from **M**0 under **X**, then **X** is called an executable solution. Otherwise, **X** is called a spurious solution.

**Definition 8.** X={**X**1, **X**2, … } is the set of a solution **X**, the subset Xe={**X**e1, **X**e2, … **}** of X is called the sufficient test space if it satisfies following conditions:


**Definition 9.** The vector **X** which is a solution of **AX**=0 is known as a T-invariant [18]. A solution **X** is called positive if every element of **X** is nonnegative.

**Definition 10.** The positive T-invariant solution **U** of **AU**=**0** is minimal if it satisfies the following condition: for any other T-invariant **U**i, at least one element of **U**-**U**i is negative. The set of minimal T-invariant solutions is U={**U**1, **U**2, …, **U**s}.

**Definition 11.** The positive particular solution **V** of **AV**=**M**d-**M**0 is minimal if it satisfies the following condition: for any T-invariant **U** of PN, there must be at least one element in **V**-**U** which is negative, i.e. {**U**|**V**-**U**≥0, **U** is a T-invariant}=Ф. The set of minimal particular solutions is V={**V**1, **V**2, …, **V**q}.

The general solution of **AX**=**M**d-**M**0 must be expressed by the form of one minimal particular solution and the arbitrary linear combination of the T-invariant solutions as follows:

$$\mathbf{X} = \mathbf{V}i + \sum\_{j=1}^{r} \mathbf{k}j\mathbf{U}j \tag{2}$$

Reachability Criterion with Sufficient Test Space for Ordinary Petri Net 427

Add **B**i+k**U**j, k=1, 2, … β, to Xtemp

**Step 5.** If Xtemp= Ф, then end.

possible executable solutions.

**U**1=(1,1,1,1,0,0,0,0).

**Step 4-1.** For (**V**, **U**1),

8

r 1

V={**V**}=(0,0,0,0,1,1,1,1)

**Step 3.** Initialization: Let Xe=V, Xtemp= Ф, B=Xe

r 1

Therefore, Xtemp={**V**+**U**1, **V**+2**U**1, **V**+3**U**1}

( (r) {p|p t T( ) } )

Go to Step4 in Algorithm 1.

**<sup>W</sup> <sup>U</sup>** =3.

If T(**U**1) T(**V**), then **D**=**V**-max(**V**)**U**1, **W**(r)=f(**D**(r)),

Then add **V**+**U**1, **V**+2**U**1, **V**+3**U**1 to the set of Xtemp,

**Step 5-1.** If Xtemp≠Φ, then let B=Xtemp={**V**+**U**1, **V**+2**U**1, **V**+3**U**1}

Xe=XeB={**V**, **V**+**U**1, **V**+2**U**1, **V**+3**U**1}, Xtemp=Φ.

it exists.

When all pairs of (**B**i, **U**j) have been tested, go to Step 5.

Otherwise, Let B=Xtemp, Xe=XeB, Xtemp= Ф, go to Step 4.

are represented as the initial and destination markings respectively.

Step 1 and Step 2 are to determine all the positive integer solutions **X** for equation **AX**=**M**d-**M**0. The firing count vector of any firing sequence from **M**0 to **M**d belongs to **X**. In Step 4, if **B**<sup>i</sup> is not an executable solution, then there must be some transitions in T(**B**i) which aren't enable it, i.e. some places in T(**B**i) are lack of tokens. In this case, if {p|p∈T(**B**i)∩T(**U**j) and T(**U**j) T(**B**i)}≠ Ф, then T(**U**j) may provide tokens for t, where t∈T(**B**i). Consequently, **B**i+k**U**<sup>j</sup> may be an executable solution, where k=1, 2, … β. Since the number of places and transitions in PN is finite, Step 4 and Step 5 only add finite elements to Xe. Since the number of minimal T-invariants is finite, the finishing condition Xtemp= Ф, i.e. |{p|p∈T(**B**i)∩T(**U**j) and T(**U**j) T(**B**i)}|= Ф, is satisfied after all the related T-invariants have been considered. As a result of the iterative process of Step 4→Step 5→Step 4, Xe includes at least one executable solution if

The following examples show how to implement the computation algorithm. These examples illustrate that suppressing any ki in **B**i+k**U**j, k=1, 2, … β, may eliminate some

**Example 1.** When the initial marking is **M**0=(1,0,0,0,0,1,0,0,0) and the destination marking is **M**d=(1,0,0,0,0,0,0,0,1) in Figure 1, calculate the sufficient test space Xe. The ● and ○ symbols

**Step 1.** Solve the equation **AX**=0, get the positive integer minimal T-invariant

**Step 2.** Solve the equation **AX**=**M**d-**M**0, get the positive integer minimal particular solution

where **V**i∈V, kj is nonnegative integer.

**Algorithm 1.** Interpretation of the computation for Xe.


If V= Ф, **M**d is not reachable, then end.

**Step 3.** Initialization: Let Xe=V={**V**1, **V**2 …, **V**q} and Xtemp= Ф.

If U= Ф, then end.

Otherwise, for every **V**i, if T(**V**i)T(**U**j), then **V**iB. If T(**V**i)T(**U**j), then **V**iB.

Go to Step 4.

**Step 4.** For each pair of (**B**i, **U**j), where i=1, 2, … |B|, j=1, 2, … s, and |B| is the cardinality of set B, carry out the following operations:

If T(**B**i)∩T(**U**j) = Ф, choose the next pair of (**B**i, **U**j).

If T(**B**i)∩T(**U**j) ≠ Ф and T(**U**j) T(**B**i), choose the next pair of (**B**i, **U**j).

If T(**B**i)∩T(**U**j) ≠ Ф and T(**U**j) T(**B**i), then **D**i=**B**i-max(**B**i)**U**j, where max(**B**i) is the maximum value of elements in **B**i.

Let **D**i(r) be the r-th elememt of **D**i.

**W**i(r)=f(**D**i(r)), where i i i (r), if (r) 0 f(x) 0, if (r) 0 **D D D** , r=1, 2, … m.

m i rj r 1 ( (r) {p|p t T( ) } ) **<sup>W</sup> <sup>U</sup>** <sup>=</sup>β, where **W**i(r) is the r-th element of **W**i, m=|T|. Add **B**i+k**U**j, k=1, 2, … β, to Xtemp

When all pairs of (**B**i, **U**j) have been tested, go to Step 5.

**Step 5.** If Xtemp= Ф, then end.

426 Petri Nets – Manufacturing and Computer Science

solutions is V={**V**1, **V**2, …, **V**q}.

**B**n} is a subset of V.

If U= Ф, then end.

Go to Step 4.

m

r 1

where **V**i∈V, kj is nonnegative integer.

**Algorithm 1.** Interpretation of the computation for Xe.

where each **U**j (1js) is a minimal T-invariant.

**Step 3.** Initialization: Let Xe=V={**V**1, **V**2 …, **V**q} and Xtemp= Ф.

If V= Ф, **M**d is not reachable, then end.

set B, carry out the following operations:

maximum value of elements in **B**i. Let **D**i(r) be the r-th elememt of **D**i.

**W**i(r)=f(**D**i(r)), where i i

i rj

( (r) {p|p t T( ) } )

If T(**B**i)∩T(**U**j) = Ф, choose the next pair of (**B**i, **U**j).

The set of minimal T-invariant solutions is U={**U**1, **U**2, …, **U**s}.

**Definition 10.** The positive T-invariant solution **U** of **AU**=**0** is minimal if it satisfies the following condition: for any other T-invariant **U**i, at least one element of **U**-**U**i is negative.

**Definition 11.** The positive particular solution **V** of **AV**=**M**d-**M**0 is minimal if it satisfies the following condition: for any T-invariant **U** of PN, there must be at least one element in **V**-**U** which is negative, i.e. {**U**|**V**-**U**≥0, **U** is a T-invariant}=Ф. The set of minimal particular

The general solution of **AX**=**M**d-**M**0 must be expressed by the form of one minimal particular

r i jj j=1

**Step 1.** Solve the equation **AX**=**0**, get all the positive integer solutions U={**U**1, **U**2, …, **U**s},

**Step 2.** Solve the equation **AX**=**M**d-**M**0, get all the positive integer particular solutions V={**V**1, **V**2, …, **V**q}, where each **V**i (1iq) is a minimal particular solution. B={**B**1, **B**2, …,

Otherwise, for every **V**i, if T(**V**i)T(**U**j), then **V**iB. If T(**V**i)T(**U**j), then **V**iB.

If T(**B**i)∩T(**U**j) ≠ Ф and T(**U**j) T(**B**i), choose the next pair of (**B**i, **U**j).

(r), if (r) 0 f(x) 0, if (r) 0 **D D**

i

**<sup>W</sup> <sup>U</sup>** <sup>=</sup>β, where **W**i(r) is the r-th element of **W**i, m=|T|.

**D**

**Step 4.** For each pair of (**B**i, **U**j), where i=1, 2, … |B|, j=1, 2, … s, and |B| is the cardinality of

If T(**B**i)∩T(**U**j) ≠ Ф and T(**U**j) T(**B**i), then **D**i=**B**i-max(**B**i)**U**j, where max(**B**i) is the

, r=1, 2, … m.

**X V** k U (2)

solution and the arbitrary linear combination of the T-invariant solutions as follows:

Otherwise, Let B=Xtemp, Xe=XeB, Xtemp= Ф, go to Step 4.

Step 1 and Step 2 are to determine all the positive integer solutions **X** for equation **AX**=**M**d-**M**0. The firing count vector of any firing sequence from **M**0 to **M**d belongs to **X**. In Step 4, if **B**<sup>i</sup> is not an executable solution, then there must be some transitions in T(**B**i) which aren't enable it, i.e. some places in T(**B**i) are lack of tokens. In this case, if {p|p∈T(**B**i)∩T(**U**j) and T(**U**j) T(**B**i)}≠ Ф, then T(**U**j) may provide tokens for t, where t∈T(**B**i). Consequently, **B**i+k**U**<sup>j</sup> may be an executable solution, where k=1, 2, … β. Since the number of places and transitions in PN is finite, Step 4 and Step 5 only add finite elements to Xe. Since the number of minimal T-invariants is finite, the finishing condition Xtemp= Ф, i.e. |{p|p∈T(**B**i)∩T(**U**j) and T(**U**j) T(**B**i)}|= Ф, is satisfied after all the related T-invariants have been considered. As a result of the iterative process of Step 4→Step 5→Step 4, Xe includes at least one executable solution if it exists.

The following examples show how to implement the computation algorithm. These examples illustrate that suppressing any ki in **B**i+k**U**j, k=1, 2, … β, may eliminate some possible executable solutions.

**Example 1.** When the initial marking is **M**0=(1,0,0,0,0,1,0,0,0) and the destination marking is **M**d=(1,0,0,0,0,0,0,0,1) in Figure 1, calculate the sufficient test space Xe. The ● and ○ symbols are represented as the initial and destination markings respectively.


**Step 4-1.** For (**V**, **U**1),

If T(**U**1) T(**V**), then **D**=**V**-max(**V**)**U**1, **W**(r)=f(**D**(r)),

$$\sum\_{\mathbf{r}=1}^{8} (\mathbf{W}(\mathbf{r}) \cdot \left| \mathbf{\dot{p}} \mid \mathbf{p} \in \,^\circ \mathbf{t}\_{\mathbf{r}} \cap \mathbf{T}(\mathbf{U}\_{1}) \,^\circ \right| \,^\circ = 3.1$$

Then add **V**+**U**1, **V**+2**U**1, **V**+3**U**1 to the set of Xtemp,

Therefore, Xtemp={**V**+**U**1, **V**+2**U**1, **V**+3**U**1}

**Step 5-1.** If Xtemp≠Φ, then let B=Xtemp={**V**+**U**1, **V**+2**U**1, **V**+3**U**1}

Xe=XeB={**V**, **V**+**U**1, **V**+2**U**1, **V**+3**U**1}, Xtemp=Φ.

Go to Step4 in Algorithm 1.

**Step 4-2.** For any pair of (**B**i, **U**1), T(**U**1) T(**B**i) is satisfied. Therefore, Xtemp=Φ

**Step 5-2.** If Xtemp=Φ, then end.

As a result of above sequence, **M**d is reachable from **M**0. The firing sequence is t5\*t1\*t2\*t6\*t7\*t3\*t4\*t8. Its firing count vector corresponds to **V**+**U**1=(1,1,1,1,1,1,1,1) in the sufficient test space Xe. This example shows that suppressing **B**i+k**U**j (k=1) in Xe may eliminate some possible executable solution.

Reachability Criterion with Sufficient Test Space for Ordinary Petri Net 429

**Step 1.** Solve the equation **AX**=0, two positive integer minimal T-invariants are obtained:

**Step 2.** Solve the equation **AX**=**M**d-**M**0, get the positive integer minimal particular solutions

**X** (1,1,1,0,0,0,0,1,0,0) k (0,0,0,1,1,1,1,0,0,0) k (0,0,0,0,0,0,0,0,1,1) 1 2

**U**1=(0,0,0,1,1,1,1,0,0,0), **U**2=(0,0,0,0,0,0,0,0,1,1)

The general solution can be expressed as follows:

If T(**U**1) T(**V**), then **D**=**V**-max(**V**)**U**1, **W**(r)=f(**D**(r)),

Then add **V**+**U**1, **V**+2**U**1 to Xtemp. So Xtemp={**V**+**U**1, **V**+2**U**1}

If T(**U**2) T(**V**), then **D**=**V**-max(**V**)**U**2, **W**(r)=f(**D**(r)),

Then add **V**+**U**2 to Xtemp. So Xtemp={**V**+**U**1, **V**+2**U**1, **V**+**U**2}

**Step 5-1.** If Xtemp≠Φ, then let B=Xtemp={**V**+**U**1, **V**+2**U**1, **V**+**U**2},

Xe=XeB={**V**, **V**+**U**1, **V**+2**U**1, **V**+**U**2}. Let's put Xtemp=Φ.

**Step 4-2.** For (**V**+**U**1, **U**1), because T(**U**1)T(**V**+**U**1), choose the next pair.

If T(**U**2) T(**V**+**U**1), then **D**1=(**V**+**U**1)-max(**V**+**U**1)**U**2, **W**1(r)=f(**D**1(r)),

For (**V**+2**U**1, **U**1), because T(**U**1)T(**V**+2**U**1), choose the next pair.

If T(**U**2) T(**V**+2**U**1), then **D**2=(**V**+2**U**1)-max(**V**+2**U**1)**U**2, **W**2(r)=f(**D**2(r)),

Then add **V**+**U**1+**U**2 and **V**+**U**1+2**U**2 to Xtemp. So Xtemp={**V**+**U**1+**U**2, **V**+**U**1+2**U**2}

V={**V}**={(1,1,1,0,0,0,0,1,0,0)}

**Step 4-1.** For (**V**, **U**1),

For (**V**, **U**2),

10

r 1

10

r 1

10

r 1

k1 and k2 are nonnegative integer.

**Step 3.** Initialization: Let Xe=V, Xtemp=Φ, B=Xe

r 1

r 2

( (r) {p|p t T( ) } )

( (r) {p|p t T( ) } )

Go to Step 4 in Algorithm 1.

1 r2

( (r) {p|p t T( ) } )

**<sup>W</sup> <sup>U</sup>** =2.

For (**V**+**U**1, **U**2),

For (**V**+2**U**1, **U**2),

**<sup>W</sup> <sup>U</sup>** =1.

**<sup>W</sup> <sup>U</sup>** =2.

**Example 2.** Consider the PN of Figure 2, given the initial marking **M**0=(1,0,0,0,0,0,0,0,1,0) and the destination marking **M**d=(0,0,0,1,0,0,0,0,1,0), calculate the sufficient test space Xe.

**Figure 1.** Petri net structure

**Figure 2.** Petri net structure


The general solution can be expressed as follows:

**X** (1,1,1,0,0,0,0,1,0,0) k (0,0,0,1,1,1,1,0,0,0) k (0,0,0,0,0,0,0,0,1,1) 1 2

k1 and k2 are nonnegative integer.

**Step 3.** Initialization: Let Xe=V, Xtemp=Φ, B=Xe **Step 4-1.** For (**V**, **U**1),

If T(**U**1) T(**V**), then **D**=**V**-max(**V**)**U**1, **W**(r)=f(**D**(r)),

$$\sum\_{\mathbf{r}=1}^{10} \left( \mathbf{W}(\mathbf{r}) \cdot \left| \left\| \mathbf{p} \right\| \mathbf{p} \in \prescript{\circ}{}{\mathbf{t}}\_{\mathbf{r}} \cap \mathbf{T}(\mathbf{U}\_{1}) \prescript{\circ}{}{\mathbf{0}} \right| \right) = \mathbf{2}.$$

Then add **V**+**U**1, **V**+2**U**1 to Xtemp. So Xtemp={**V**+**U**1, **V**+2**U**1}

For (**V**, **U**2),

428 Petri Nets – Manufacturing and Computer Science

eliminate some possible executable solution.

t2

p1

t1

p2

t2

p4

**Figure 2.** Petri net structure

t3

p3

**Step 5-2.** If Xtemp=Φ, then end.

p6

**Figure 1.** Petri net structure

**Step 4-2.** For any pair of (**B**i, **U**1), T(**U**1) T(**B**i) is satisfied. Therefore, Xtemp=Φ

As a result of above sequence, **M**d is reachable from **M**0. The firing sequence is t5\*t1\*t2\*t6\*t7\*t3\*t4\*t8. Its firing count vector corresponds to **V**+**U**1=(1,1,1,1,1,1,1,1) in the sufficient test space Xe. This example shows that suppressing **B**i+k**U**j (k=1) in Xe may

**Example 2.** Consider the PN of Figure 2, given the initial marking **M**0=(1,0,0,0,0,0,0,0,1,0) and

p1

t6

t7

t9

t10

t5

t4

p5

p8

p9

p10 t8

t7

t5 p9 p7 t8

t4

t6

p7

p6

p4

p8

t3

p5

the destination marking **M**d=(0,0,0,1,0,0,0,0,1,0), calculate the sufficient test space Xe.

p2

p3

t1

If T(**U**2) T(**V**), then **D**=**V**-max(**V**)**U**2, **W**(r)=f(**D**(r)),

$$\sum\_{\mathbf{r}=1}^{10} \mathsf{(W(r) \cdot} \left| \left\| \mathbf{p} \right\| \mathbf{p} \in \prescript{\circ}{}{\mathbf{t}\_{\mathbf{r}} \cap \mathsf{T}(\mathbf{U}\_{2})} \overset{\circ}{\mathbf{0}} \right| = 1.$$

Then add **V**+**U**2 to Xtemp. So Xtemp={**V**+**U**1, **V**+2**U**1, **V**+**U**2}

**Step 5-1.** If Xtemp≠Φ, then let B=Xtemp={**V**+**U**1, **V**+2**U**1, **V**+**U**2},

Xe=XeB={**V**, **V**+**U**1, **V**+2**U**1, **V**+**U**2}. Let's put Xtemp=Φ.

Go to Step 4 in Algorithm 1.

**Step 4-2.** For (**V**+**U**1, **U**1), because T(**U**1)T(**V**+**U**1), choose the next pair.

For (**V**+**U**1, **U**2),

If T(**U**2) T(**V**+**U**1), then **D**1=(**V**+**U**1)-max(**V**+**U**1)**U**2, **W**1(r)=f(**D**1(r)),

$$\sum\_{\mathbf{r}=1}^{10} (\mathbf{W}\_1(\mathbf{r}) \cdot \left| \{ \mathbf{p} \mid \mathbf{p} \in \prescript{\circ}{}{\mathbf{t}}\_{\mathbf{r}} \cap \mathbf{T}(\mathbf{U}\_2) \overset{\circ}{} \right|) = 2.1$$

Then add **V**+**U**1+**U**2 and **V**+**U**1+2**U**2 to Xtemp. So Xtemp={**V**+**U**1+**U**2, **V**+**U**1+2**U**2}

For (**V**+2**U**1, **U**1), because T(**U**1)T(**V**+2**U**1), choose the next pair.

For (**V**+2**U**1, **U**2),

If T(**U**2) T(**V**+2**U**1), then **D**2=(**V**+2**U**1)-max(**V**+2**U**1)**U**2, **W**2(r)=f(**D**2(r)),

$$\sum\_{\mathbf{r}=1}^{10} (\mathbf{W}\_2)(\mathbf{r}) \cdot \left| \{ \mathbf{p} \mid \mathbf{p} \in \,^\circ \mathbf{t}\_\mathbf{r} \cap \mathbf{T}(\mathbf{U}\_2)^\circ \} \right| = 3.1$$

Then add **V**+2**U**1+**U**2, **V**+2**U**1+2**U**2, and **V**+2**U**1+3**U**2 to Xtemp. So Xtemp={**V**+**U**1+**U**2, **V**+**U**1+2**U**2, **V**+2**U**1+**U**2, **V**+2**U**1+2**U**2, **V**+2**U**1+3**U**2}

Reachability Criterion with Sufficient Test Space for Ordinary Petri Net 431

**Step 2.** Initialization: Let *M*=**M**0, *X*=**X**ei, *S*=λ (λ is the sequence of length zero)

S(**F**o) can be fired. The reachable marking is calculated by **M**'=*M*-**AF**o,

**Step 4.** If **F**o≠0, then there exists an S(**F**o) that has a firing sequence under *M*. Therefore,

**Step 5. F**o =0 and **F**c≠0 means that all transitions in S(**F**c) are effective conflict transitions. Therefore, branching occurs and the number of branches is |T(**F**c)|. From here, the

Let *M*=**M**', *X*=*X*–**F**o, *S*=*S*\*S(**F**o), where \* is concatenation operation and *S*\*S(**F**o) means *S*

After selecting a transition tj∈T(**F**c), fire it, then the reachable marking is calculated by

**Step 6.** If *X*=0, then **M**d is reachable from **M**0 and *S*=S(**X**ei) is one of the firing sequences,

**Step 7.** If all the branches in Step 5 have been implemented, then **M**d is not reachable, end.

Base: Let **X** be a solution of **AX**=**M**d-**M**0. The actual firing vector **F**=**F**o+**F**c is obtained with **M**

Case 1: If **F**o≠**0** and **F**c=**0**, then multiple firing of S(**F**o) doesn't affect a firing sequence associated with **X** under **M**0, for the input places of T(**F**o) don't affect the enabling condition

Case 2: If **F**o=**0** and **F**c≠**0**, then the firing of each transition in S(**F**c) is considered as a branch and implemented with respect to all branches. It means that all possibilities are involved. So,

Case 4: If **F**o≠**0** and **F**c≠**0**, then the multiple firing of S(**F**o) can be implemented before S(**F**c). It doesn't eliminate any probability of finding a firing sequence associated with **X** under **M**0. It

**Proposition 1.** If σ∈S(**X**) is a firing sequence under **M**0, then (S(**F**o)\*σ')∈S(**X**) is a firing

Otherwise, go to Step 5 and implement the remaining branches. The validity of the above algorithm is proved as the following four cases:

**Step 3.** Under *M* and *X*, calculate **F**=**F**o+**F**c from Definition 6.

computation has to consider all |T(**F**c)| branches.

Let *M*=**M**', *X*=*X*–*e*[tj], *S*=*S*\*tj.Go to Step 3

of other transitions in T(**X**) except transitions in T(**F**o).

Case 3: If **F**o=**0** and **F**c=**0**, then no transition is enabled.

Algorithm 2 doesn't eliminate any possible firing sequence.

end. Otherwise, go to Step 7.

and **X**. Let to∈T(**F**o) and tc∈T(**F**c).

is proven in Proposition 1.

sequence under **M**0 for any sequence σ'.

If **F**o≠**0**, go to Step 4.

If **F**=**0**, go to step 6.

**M**'=*M*-**A***e*[tj].

If **F**o =**0** and **F**c≠0, go to Step 5.

followed by S(**F**o). Go to Step 3.

For (**V**+**U**2, **U**2), because T(**U**2)T(**V**+**U**2), choose the next pair.

For (**V**+**U**2, **U**1),

If T(**U**1) T(**V**+**U**2), then **D**3=(**V**+**U**2)-max(**V**+**U**2)**U**1, **W**3(r)=f(**D**3(r)),

$$\sum\_{\mathbf{r}=1}^{10} (\mathbf{W}\_3(\mathbf{r}) \cdot \left| \{ \mathbf{p} \mid \mathbf{p} \in \prescript{\circ}{}{\mathbf{t}}\_{\mathbf{r}} \cap \mathbf{T}(\mathbf{U}\_1)^{\circ} \} \right| = 3.$$

Then add **V**+**U**2+**U**1, **V**+**U**2+2**U**1, and **V**+**U**2+3**U**1 to Xtemp. So Xtemp={**V**+**U**1+**U**2, **V**+**U**1+2**U**2, **V**+2**U**1+**U**2, **V**+2**U**1+2**U**2, **V**+2**U**1+3**U**2, **V**+**U**2+3**U**1}

**Step 5-2.** If Xtemp≠Φ, then let B=Xtemp={**V**+**U**1+**U**2, **V**+**U**1+2**U**2, **V**+2**U**1+**U**2, **V**+2**U**1+2**U**2, **V**+2**U**1+3**U**2, **V**+**U**2+3**U**1}.

So, Xe=Xe+B={**V**, **V**+**U**1, **V**+2**U**1, **V**+**U**2, **V**+**U**1+**U**2, **V**+**U**1+2**U**2, **V**+2**U**1+**U**2, **V**+2**U**1+2**U**2, **V**+2**U**1+3**U**2, **V**+**U**2+3**U**1}. Let's put Xtemp=Φ.

Go to Step 4 in Algorithm 1.

**Step 4-3.** For any pair of (**B**i, **U**j), because T(**U**j) T(**B**i), Xtemp=Φ **Step 5-3.** If Xtemp=Φ, then end

**M**d is reachable from **M**0. The firing sequence is t9\*t7\*t4\*t1\*t5\*t6\*t7\*t2\*t4\*t5\*t6\*t10\*t3\*t8. Its firing count vector corresponds to **V**+2**U**1+**U**2=(1,1,1,2,2,2,2,1,1,1) in the sufficient test space Xe. This example illustrates that suppressing **B**i+k**U**j (k=β) in Xe may eliminate some possible executable solution.
