#### Abstract

In automated manufacturing systems (AMSs), deadlocks problems can arise due to limited shared resources. Petri nets are an effective tool to prevent deadlocks in AMSs. In this paper, a simulation based on existing deadlock prevention policies and different Petri net models are considered to explore whether a permissive liveness-enforcing Petri net supervisor can provide better time performance. The work of simulation is implemented as follows. (1) Assign the time to the controlled Petri net models, which leads to timed Petri nets. (2) Build the Petri net model using MATLAB software. (3) Run and simulate the model, and simulation results are analyzed to determine which existing policies are suitable for different systems. Siphons and iterative methods are used for deadlocks prevention. Finally, the computational results show that the selected deadlock policies may not imply high resource utilization and plant productivity, which have been shown theoretically in previous publications. However, for all selected AMSs, the iterative methods always lead to structurally and computationally complex liveness-enforcing net supervisors compared to the siphons methods. Moreover, they can provide better behavioral permissiveness than siphons methods for small systems. For large systems, a strict minimal siphon method leads to better behavioral permissiveness than the other methods.

#### 1. Introduction

Effectively designing and operating an automated manufacturing system can be of assistance to manufacturers to adapt the variety in the market in order to maintain and confirm competitiveness. Different types of parts in AMS enter the system at discrete points of time and are produced concurrently; these parts have to share some common resources, such as robots, machine tools, buffers, automated guided vehicles, and fixtures. The deadlocks can occur in an AMS during its operation by shared resources competition, which are highly unwanted phenomena that often cause low use of some expensive and critical resources and long downtime and can lead to calamitous results in automated manufacturing systems. Therefore, it is required to develop a successful AMS control policy to prevent deadlocks occurrence in AMS.

There are several mathematical tools to solve deadlock problems in AMSs including automata, graph theory, and Petri nets. Recently, Petri nets have been known as one of the most robust mathematical tools for modelling, analyzing, and controlling deadlocks in resource allocation systems including AMS [1]. To overcome the deadlocks in AMS, there are methods which have been derived from a Petri net tool either to forbid the deadlock occurrences by preventing some necessary condition or to detect and resolve a deadlock when it occurs. In general, these methods can be classified into three strategies: deadlock detection and recovery, deadlock avoidance, and deadlock prevention [1, 2].

The researchers proposed three criteria for designing and evaluating a supervisor for a manufacturing system to be controlled. These criteria include behavioral permissiveness, which leads to increase in the resources utilization of system, structural complexity that leads to design supervisor with a few number of monitors to decrease the software and hardware costs, and computational complexity that means a deadlock control policy can be implemented in huge systems [1]. Therefore, the objectives of many researchers are to develop deadlock prevention policies which can provide liveness-enforcing supervisors with maximal permissiveness, a structural complexity, and computational complexity [1].

From previous studies, there are mainly two techniques of analysis for deadlock prevention in AMSs using Petri net: structural analysis [3, 4] and reachability graph analysis [5–7]. Oftentimes structural analysis is applied for structural objects of Petri nets, such as resource transition circuits and siphons. In this case, control steps are simple, and each empty minimal siphon requires a monitor to be added to prevent itself from being not emptied, but the disadvantages of this technique are the fact that the resulting controlled system can be suboptimal and linearly the number of control places is dependent on the size of a net [8].

The reachability graph analysis suffers from a state explosion problem because it requires listing of all or a part of reachable markings. The reachability graph of a Petri net has been classified into two zones: live zone (LZ) and deadlock zone (DZ). In DZ, there is first-met bad markings (FBMs) which are extracted from it; the FBMs are representing the very first entry from LZ to DZ. In this case, a control place is designed and added to forbid the FBM from being reached. This process requires iterations to forbid all FBMs and single out each FBM. The process is terminated if the resulting net is a live [9]. There are several methods and algorithms used for deadlocks prevention; some of them are siphon control methods, a theory of region, and iterative methods [4, 6, 9–11].

Most of the researchers have used structural analysis and reachability graph analysis to design deadlocks prevention policies for different scales of AMSs under three criteria that are maximal permissiveness, structural complexity, and computational complexity. The comparison between these policies has been done according to the three aforementioned criteria. It is taken for granted in the literature that a maximally permissive supervisor in the logical level usually leads to the better time performance in an AMS such as productivity and resource utilization, which looks intuitive, as an optimal supervisor will permit more permissive behavior. However, there is a shortage in the quantitative evaluation of time performance of these policies in terms of maximal permissiveness and productivity. Simulation is a powerful tool for performance analysis of complex manufacturing systems.

The contribution of this paper is using a simulation tool based on existing deadlock prevention policies and different types of Petri net models to explore whether a permissive liveness-enforcing Petri net supervisor can provide better time performance (maximal permissiveness).

The work of simulation is implemented in the following steps. (1) Assign the time to the controlled Petri net models, which leads to timed Petri nets. (2) Build the Petri net model using MATLAB software (Petri Net Toolbox (PN Toolbox)). (3) Run and simulate the model to obtain the system time performance. (4) Finally, the simulation results will be analyzed to determine which existing deadlock prevention policies are convenient for different types of manufacturing systems. Different control methods (siphon control methods and iterative methods) are used for deadlocks prevention. Moreover, this paper aims to evaluate the performance of the selected methods such as utilization of resources, plant throughput, the number of monitors, the number of arcs, and the number of reachable states. This paper focuses on the performance evaluation of automated manufacturing systems by using Petri nets under different deadlock prevention policies. The considered Petri net models belong to -nets [12] that are a general class of manufacturing-oriented net models in the literature. In an -net, there are a number of structural properties thanks to its definition [12].

Including this introductory section, the paper is organized as follows. Section 2 provides a literature review of previous researchers works related to deadlock prevention. The basics of Petri nets are discussed in Section 3. The deadlock prevention methods and policies are presented in Section 4. Sections 5 and 6 show the analysis of the selected methods for four different automated manufacturing systems. Finally, Section 7 presents the conclusion and future work.

#### 2. Literature Review

Deadlock prevention policies have been widely achieved for AMS and led to a huge number of results [1, 11]. In this section, deadlock prevention strategies are reviewed by using Petri nets and developed based on different techniques such as structural analysis and reachability graph analysis.

##### 2.1. Structural-Analysis Methods

Ezpeleta et al. [13] used a class of Petri nets, called System of Simple Sequential Processes with Resources (S^{3}PR) and proposed an algorithm for resource allocation in flexible manufacturing systems (FMSs). The proposed algorithm added new places to the net to impose certain restrictions that forbid the presence of unmarked siphons. The works of Huang et al. [14] and Huang et al. [15] present a new deadlock prevention policy for the class of Petri nets, where deadlocks are related to unmarked siphons. Two types of control places are added to the original model for flexible manufacturing system called ordinary control place and weighted control place to prevent siphons from being unmarked.

The study by Li and Zhou [11] presents a Petri net model which consists of 26 places, 20 transitions, and 18 strict minimal siphons. In [16], elementary siphons concept is introduced to design a liveness-enforcing Petri net supervisor for the same Petri net model, and six elementary siphons are obtained; therefore, only six monitors are added to control the 18 strict minimal siphons. Nevertheless, the proposed algorithm by Ezpeleta et al. [13] adds monitors for all 18 strict minimal siphons.

A new methodology is proposed by Huang [17] to synthesize supervisors for resource allocation in FMSs; the class of Petri net, namely, S^{3}PR, is considered, where deadlocks are related to unmarked minimal siphons; all minimal siphons should be controlled by adding control places. In this study, the number of control places is reduced by using the concept of the elementary siphon. Based on elementary siphons and -invariants concepts in Petri nets, a deadlock prevention algorithm is introduced by Li and Wei for a specific class of Petri nets which can properly model several FMSs [16], siphons in a Petri net model are classified into dependent and elementary siphons, and control places are added for all elementary siphons, so that the siphons are invariant-controlled. Therefore, the controllability of dependent siphons is guaranteed by adjusting the control requirements of its related elementary siphons. A novel deadlock prevention algorithm is presented by Chen et al. [1], and the concept of siphon extraction is used to compute unmarked siphons for the Petri net model. First, a siphon extraction algorithm obtains a maximal unmarked siphon, divides the places in it, and determines a necessary siphon from the divided places; this process is carried out for all unmarked siphons. Then, the proposed deadlock prevention algorithm designs a convenient monitor for each necessary siphon to be marked until the controlled Petri net model is a live.

Most of the deadlock control algorithms have been developed for reliable automated manufacturing systems (AMSs). Liu et al. [18] proposed a variety of deadlock control algorithms for AMSs with unreliable resources, monitors and recovery subnets are designed for strict minimal siphons (emptied siphon) and unreliable resources, respectively, and two types of arcs which are normal and inhibitor are used to connect monitors with recovery subnets. In order to obtain a supervisor with structural complexity, elementary siphons extracted from all strict minimal siphons are obviously controlled. The problems of structural complexity, behavioral permissiveness, and computational complexity are considered in the study of Wang et al. [19] to design liveness-enforcing supervisors for a class of Petri nets, namely, S^{3}PR, without -resources. They used two steps to obtain a supervisor for the model. In the first step, an algorithm is proposed to extract unmarked strict minimal siphons from a given unmarked siphon by using loop resource subsets. In the second step, a siphon-based deadlock prevention algorithm is introduced to provide a maximally permissive liveness-enforcing supervisor with small numbers and no weighted monitors.

##### 2.2. Reachability Graph-Based Approaches

Viswanadham et al. [20] presented static resource allocation methods for eliminating deadlocks; in this study, a reachability graph of the Petri net (PN) model is used to reach static resource allocation method. A deadlock prevention algorithm is implemented for a small size manufacturing system consisting of a machine and an automated guided vehicle (AGV). The authors observed that the proposed algorithm can be applied effectively only for small size manufacturing systems. The forbidden state problem of Petri nets (PN) with uncontrollable transitions and liveness requirement is addressed by Ghaffari et al. [5]. An approach is presented to compute a maximally permissive Petri net controller that consists of two steps. In the first step, an ordinary Petri net is used to build the system model. In the second step, control places are designed and added to the original model by using a theory of regions method. The work of Uzam [7, 9] proposes and improves method based on a theory of regions to design an optimal Petri net supervisor. The size of the reachability graph of Petri net model is a major problem to apply the deadlock prevention policy to very large Petri net model. Therefore, they proposed a reduction algorithm to simplify very large Petri nets models in order to make necessary computation easily. Based on the theory of regions, Uzam and Zhou [6] developed an iterative deadlock prevention policy for FMS. In their study, the reachability graph of a Petri net model is divided into two parts: deadlock-free zone (live zone, LZ) and the deadlock zone (DZ). The live zone is developed since the maximal strongly connected component contains the initial marking. The deadlock zone contains markings from which the initial marking is unreachable. FBM is defined as a marking in the deadlock zone. The deadlocks can be eliminated by forbidding the firing of the enabled transitions at FBM. In their work, the presented approach has two problems. First, an optimal supervisor cannot be guaranteed in general even if such an optimal supervisor exists. Second, at each iteration full reachability graph computation is required to check whether the markings in the deadlock zone are reachable. This approach is easy to use and simple if the reachable graph of a system is small but cannot ensure the supervisor behavioral optimality. The redundant monitors in Petri net supervisor may exist when the supervisor is designed by an iterative siphon control approach. Therefore, Uzam et al. [21] introduced an approach to identify and eliminate the redundant monitors by computing the reachability graph of a controlled Petri net model. If the controlled Petri net model does not lose liveness when removing redundant monitors, then the redundant monitors can be eliminated from the supervisor. The reachability graph and liveness check are the major problems in designing liveness-enforcing supervisor. To overcome a full state enumeration, Li and Hu [22] proposed two approaches to eliminating control places from a Petri net supervisor. The first approach is based on the concept of implicit places [23, 24]. The implicity of a monitor is computed by solving a linear programming problem (LPP) that can be implemented in polynomial time. The second approach is extracted from the Mixed Integer Programming- (MIP-) based deadlock detection approach. If the optimal solution to an MIP problem does not lose optimality when removing control place, then the control place is implicit and may provide permissive behavior while liveness is guaranteed. Chen et al. [1] developed a novel and computationally effective approach to design optimal monitors and an iterative approach that can compute the reachability graph to get an optimal supervisor of the flexible manufacturing system, which is demonstrated by a set of control places. The vector covering approach is used to compute the minimal sets of FBMs and legal markings. Iteratively, an FBM is selected from the minimal set of FBMs, an integer linear programming problem (ILPP) is used to design a place invariant (PI) that prevents the FBM from being reached, and all minimal sets of legal markings are not forbidden. The process is terminated if all FBMs cannot be reached and the resulting net is a live. This study is improved in its computational efficiency in [25], and the objective function of the ILPP is maximizing the number of FBMs that are prohibited by the PI; in other words, a control place is designed such that as many FBMs as possible are forbidden and all minimal sets of legal markings are not prohibited. If the ILPP has no solution, it means that there is no maximally permissive Petri net supervisor for the Petri net model.

#### 3. Basics of Petri Nets

Petri nets are a mathematical and graphical tool suitable for several systems. It is a major tool for studying and describing manufacturing system operations that are characterized as being asynchronous, concurrent, parallel, and distributed.

A Petri net or place/transition net can be defined as a four-tuple , where is a finite nonempty set of places, is a finite nonempty set of transitions, and are disjoint, are called nodes with and , and and are represented by circle and bar, respectively. is called a flow relation or directed arcs of the net that can be represented by arcs with arrows from places (transitions) to transitions (places). is a mapping that assigns a weight to an arc: if ; otherwise, , where and . is called an ordinary net, if , . Consider a node , and is a preset of . Postset of is . A marking of is a mapping from . denotes the number of tokens in place . Usually, markings and vectors can be described using formal sum. Therefore, vector is denoted by . For example, a marking that puts two tokens in place , five tokens in place , and no tokens in other places in a net is denoted by . () is a net system or marked net and is denoted by , where is an initial marking of . For a Petri net modeling represents the different raw parts that are to be synchronously processed in the system, and the state of resources, such as machines and robots. A net is self-loop free or pure if for all , and . Incidence matrix [] in a net is an integer matrix that consists of rows and columns with . The enabled rule for each at marking if , . As a result, enabled rule is denoted by . When a transition fires, it removes tokens from each place and deposits tokens in each place . Therefore, it yields a new marking , denoted by , where . is reachable from if there exists a fireable finite transition sequence , and markings , and so that , which can be denoted by and satisfied the state equation , where is a mapping in to the number of occurrences of in , called a Parikh vector or a firing count vector. Obviously, is the set of all reachable markings of a net from initial marking and is denoted by . The reachable markings can be involved in the enumeration of all reachable markings of a net and graphically expressed by a reachability tree. The reachability tree is denoted by , which is a directed graph and consists of nodes and arcs, nodes are markings in the reachable markings , and arcs are labeled by the transitions of a net . For instance, an arc from to is labeled by if . A net with initial marking is to be -bounded if, for all , . In other words, for each reachable marking “” from the initial marking , the number of tokens in each place “” never exceeds a finite number “” A net is called safe if all its places are safe, and the number of tokens in each place “” does not exceed one. In other words, a net is -safe if it is 1-bounded. A Petri net with is a live if all its transitions are a live at . A transition is a live if, for all , , there is a firing sequence . A transition is dead at if , . -vector (place vector) and -vector (transition vector) are column vectors. The former is catalogued by and called a -invariant or place invariant if and . The latter is catalogued by and called a -invariant or transition invariant if and , where is the integers set. If each element of is nonnegative the -invariant is called a -semiflow or place semiflow. Suppose that is a place invariant of a Petri net with () and is a reachable marking from the initial marking . Then, . Let be a support of place invariant and it can be classified into three parts. Firstly, is a positive support of place invariant , and . Secondly, is a negative support of place invariant , and . Finally, is a minimal place invariant if is not a superset of the support of any other one and its components are mutually prime. Let ’s be the coefficients of place invariant if, for all , .

#### 4. Deadlock Prevention Methods and Policies

##### 4.1. Siphon Control Methods

This section presents two methods that are motivated by Ezpeleta et al. [13] and Li and Zhou [11]. These methods are called a strict minimal siphons control method and an elementary siphons control method, respectively.

###### 4.1.1. Strict Minimal Siphons (SMSs) Control Method

A siphon in a Petri net is a set of places . The very important property of siphon is that, for a given marking, the siphon is unmarked.

*Definition 1. *Let be a net. Any set , with is called a siphon. If a siphon does not properly contain another siphon is called a minimal siphon. A minimal siphon is called a strict if .

Siphons play a significant role in the liveness analysis of a Petri net, especially in ordinary ones. If a siphon in a net has no tokens, then no transitions in are enabled and all the transitions connected to cannot be fired; as a result, the transitions are dead leading to the loss of liveness of the Petri net. In [13], a monitor is added to each strict minimal siphon in order to achieve the liveness of the system. The proposed approach is simple and ensures a success. Nevertheless, it leads to a complex Petri net model than the originally model because the added places are equal to the strict minimal siphons in the target net model and the added arcs are larger than that of places added.

The SMS control based on complementary sets of siphons is used to design the control places. A complementary set of a siphon is a set of operation places which are the holders of the resources in but do not belong to . In addition, is the support of a place invariant, which means the operation places in will compete for the resources in with the operation places belonging to . will be unmarked when all tokens in flow into . The following notation will be used in the establishment of the control policy.(1) denotes the set of strict minimal siphons which does not contain the support of any place semiflow (i.e., siphons that can be emptied).(2)Given the fact that is a siphon we have , , , where is the operation places and is the resource places. denotes the following set of state places: , where , indicates the positive support of place invariant , , . For a given siphon , is the set of holders, corresponding to resources in that do not belong to . is called ’s complementary set.(3)Given the fact that is a complementary set of , add a control place for and the initial marking of control place is .

Based on the concept of strict minimal siphon, the proposed deadlock prevention algorithm developed by Ezpeleta et al. [13] is stated as follows.

*Algorithm 2 (SMS based policy). *
*Input*. Petri net model () of an AMS, where .*Step **1*. For a given Petri net (), compute all SMSs.*Step **2.* For each siphon SMS, add a monitor such that(i)the output arcs are connected to the source transitions leading to the sink transitions of and all arcs weights are ones;(ii)the input arcs are connected from the stealing places of and all arcs weights are ones;(iii), where is an initial marking of a monitor.*Step **3*. Repeat Step 2 until all existing SMSs are covered. *Step **4*. Add all monitors into () and the resulting net is denoted by (). *Step **5*. Output (). *Step **6*. End.

For instance, consider the AMS shown in Figure 1(a). Its Petri net model is shown in Figure 1(b). It consists of one robot R1 that can hold a part at a time, two machines M1 and M2, where each machine can process a part at a time, two loading buffers (I1 and I2), and unloading buffers (O1 and O2). Two parts types are considered in the system: PA and PB. PA moves to M1 and PB moves to M2. The robot R1 reaches the machine that finishes its operation first and grips and loads the part to the next machine 1 or machine 2. The Petri net model consists of 11 places and 8 transitions. The places have the following set partition: , , and , where is the input places, is the resources places, and is the operation places. It has 8 minimal siphons, 3 of which are strict minimal siphons and 20 reachable markings. The three SMSs are , , and . Table 1 shows the required monitors using Algorithm 2 for Figure 1(b). Figure 2 illustrates the controlled system of the Petri net model in Figure 1(b) after adding monitors by using Algorithm 2.

**(a)**

**(b)**

###### 4.1.2. Elementary Siphons Control Method

The strict minimal siphons (SMSs) are classified into elementary and dependent ones. Π is used to denote the set of strict minimal siphons while and denote the sets of elementary and dependent (redundant) ones, respectively. Otherwise, when a strict minimal one is mentioned, it can be called a siphon.

*Definition 3. *Let an ordinary Petri net () and is a siphon, . Place vector is said to be the characteristic place vector of if for all , ; otherwise, .

*Definition 4. *Let be an ordinary Petri net with , , and we suppose that has SMS, , and Let be the characteristic place (transition) vector of siphon , . We define and are said to be the characteristic place vector and transition vector matrices of the siphons of , respectively.

Proposition 5. *Let be an ordinary Petri net and let be the characteristic transition vector matrix of the siphons of it. The set of elementary siphons in can be defined as a rank of .*

From Proposition 5, it can easily enumerate all elementary siphons in a Petri net system () given all siphons. First, compute matrices and . Then independent linear vectors can be determined in . Finally, the siphons that correspond to these independent linear vectors are called the elementary siphons in the Petri net (). Li and Zhou [11] introduced some results and theorems as follows.

Theorem 6. *Let be a marked ordinary Petri net and be a siphon in . Monitor is added to , and the new net system can be denoted by , such that (a) is a place invariant of and (b) , where is said to be the control depth variable of siphon , which states the least number of tokens that siphon can hold. Evidently is greater than or equal to to fulfil purpose of control , and (c) for all , , where is the set of operation places of , such that can be called invariant-controlled.*

Theorem 7. *Let be an ordinary Petri net and let be a generally dependent siphon on elementary siphons , and that means . If ,…, and are invariant-controlled by adding monitors , and , where , is called controlled. Based on the concept of elementary siphons, the proposed deadlock prevention algorithm developed by Li and Zhou [11] is stated as follows.*

*Algorithm 8 (elementary siphon-based policy). *
*Input*. Petri net model () of an AMS, where .*Step **1*. For a given Petri net (), compute all SMSs.*Step **2*. Compute the transition vector matrix of the SMS.*Step **3*. Compute the elementary siphons of Petri net . The remaining are the dependent siphons.*Step **4*. For each siphon elementary siphon, add a monitor such that(i)the output arcs are connected to the source transitions leading to the sink transitions of and all arcs weights are ones;(ii)the input arcs are connected from the stealing places of and all arcs weights are ones;(iii), where is an initial marking of a monitor and .*Step **5*. Repeat Step 4 until all elementary siphons are covered.*Step **6*. Adjust , such that each dependent siphon is controlled.*Step **7*. Add all monitors to () and the resulting net is denoted by (). *Step **8*. Output (). *Step **9*. End.

For example, there are three SMSs in the Petri net model shown in Figure 1(b), which are , , and . One can obtain that , , and . Hence, , , and . The transition vector matrix for the Petri net model in Figure 1(b) is as follows. Obviously, the rank of is 2 since the first row can be linearly represented by the second and third rows, and we can see that . As a result, the siphons that correspond to the second and third rows and are elementary siphons. Thus, is a dependent siphon:The dependent siphons and their elementary siphons, the initial marking relationships between dependent and elementary siphons, and the controllability of dependent siphons due to Theorem 7 are shown in Table 2. Table 3 shows the required monitors using Algorithm 8 for Figure 1(b). Figure 3 presents the controlled system of the Petri net model in Figure 1(b) after adding monitors by using Algorithm 8.

##### 4.2. Iterative Methods

This section presents two techniques that are motivated and developed by [25]. These techniques are used to design a place invariant (PI) that can prohibit as many forbidden bad markings (FBMs) as possible. First, the vector covering method is used to find the minimal covering sets of legal markings and FBMs (see Chen et al. [1]). Then, solving the integer linear programming problem (ILPP) can obtain the coefficients of the place invariant and monitors. An iterative monitor design process is executed. At each iteration, a place invariant is designed to prohibit as many FBMs as possible. All FBMs that are prohibited by the place invariant are eliminated from the minimal covered set of FBMs. This process is terminated when all the minimal covered sets of FBMs are forbidden.

###### 4.2.1. Maximal Number of Forbidding FBM Problem 1

The Maximal number of Forbidding FBM Problem 1 (MFFP1) is a technique used to design a monitor synthesis for FBMs. This technique used ILPP to obtain the coefficients of the place invariant that prohibit as many FBMs as possible. The MFFP1 is shown in the following mathematical model.

MFFP1 iswhere and are the minimal covering sets of legal markings and FBMs, respectively. The objective function is used to maximize the number of FBMs that are forbidden by place invariant. If , we have , for all ( is used to denote ): that is to say, no FBMs in can be prohibited by place invariant. In (2), let be a place invariant, where ’s () are the coefficients of , is a positive integer variable, and are the number of tokens in minimal covering set of legal markings.

All legal markings should be kept after a monitor is added, implying that every marking cannot be forbidden from being reached, and coefficients ’s () should satisfy (2) that is called the reachability condition.

In (3), is a positive integer constant number that must be large enough, are the number of tokens in minimal covering set of FBMs, and ’s () are a set of variables. Moreover, in (3), implies that is prohibited by and implies that this constraint is redundant and cannot be prohibited by .

Based on the concept of MFFP1, the proposed deadlock prevention algorithm developed in [25] is stated as follows.

*Algorithm 9 (MFFP1 based policy). *
*Input*. Petri net model () of an AMS, where .*Step **1*. For a given Petri net (), find the sets of FBMs and legal markings . *Step **2*. Find the minimal covered sets of FBMs and legal markings .*Step **3*. . is used to indicate the set of monitors to be found. *Step **4*. While , do the following.(i)Design MFFP1.(ii)Solve MFFP1. Let ’s () and be the solution if . Otherwise, exit, as the solution does not exist.(iii)Design a place invariant and a monitor .(iv) and . is covered endwhile.*Step **5*. Add all monitors in to () and the resulting net is denoted by (). *Step **6*. Output (). *Step **7*. End.

For the Petri net model shown in Figure 1(b), we have and . Algorithm 9 is considered. At the first iteration, let be the place invariant to be calculated. should satisfy (2) for the two legal markings in : that is, and . Therefore, we have the following two constraints:We introduce three variables , , and () to represent whether forbids , , and , respectively. Therefore, we have the following three constraints: that is,Finally, MFFP1 is defined as follows.

MFFP1 isThe optimal solution of the above MFFP1 is , , , , , and , and all the remaining variables are equal to zero. Then, a monitor is designed for . As a result, we have , , and . FBM_{1} and FBM_{3} are prohibited by : that is, . Therefore, we have : that is, .

At the next iteration, let place invariant be calculated. The new MFFP1 can be easily obtained by eliminating constraints that related to FBM_{1} and FBM_{3} from the first MFFP1. Therefore, the new MFFP1 is stated as follows.

MFFP1 isThe optimal solution of the above MFFP1 is , , , and and all the remaining variables are equal to zero. Then, a monitor is designed for . As a result, we have , , and . Only FBM_{2} is prohibited by : that is, . Therefore, we have : that is, .

Algorithm 9 is terminated. Totally, there are two monitors computed for this net. Adding the two monitors to the original Petri net model, the controlled system after addition is as shown in Figure 4. Table 4 shows the two required monitors by using Algorithm 9.

###### 4.2.2. Maximal Number of Forbidding FBM Problem 2

The Maximal number of Forbidding FBM Problem 1 has been modified to improve its efficiency and its number of variables and constraints are slightly reduced. The modified technique is called a Maximal number of Forbidding FBM Problem 2 (MFFP2). The MFFP1 is shown in the following mathematical model.

MFFP2 isThe objective function is maximizing the number of FBMs that are prohibited by place invariant. If no solution has been obtained from MFFP2 for an FBM, then there are not any FBMs in that can be forbidden by that place invariant.

In (8), ’s () are the coefficients of , are the number of tokens in minimal covering set of legal markings, and are the number of tokens in selected . In (9), is a positive integer constant number that must be large enough, are the number of tokens in minimal covering set of FBMs, and ’s () are a set of variables. In (9), implies that is prohibited by and implies that this constraint is redundant and cannot be prohibited by .

Based on the concept of MFFP2, the proposed deadlock prevention algorithm developed in [25] is stated as follows.

*Algorithm 10 (MFFP2 based policy). *
*Input*. Petri net model () of an AMS, where .*Step **1*. For a given Petri net (), find the sets of FBMs and legal markings .*Step **2*. Find the minimal covered sets of FBMs and legal markings .*Step **3*. . is used to indicate the set of monitors to be found. *Step **4*. While , do the following.(i)Design MFF2.(ii)Solve MFFP2. Let ’s () and be the solution if . Otherwise, exit, as the solution does not exist.(iii)Design a place invariant and a monitor and . is covered endwhile.*Step **5*. Add all monitors in to () and the resulting net is denoted by (). *Step **6*. Output (). *Step **7*. End.

Consider the Petri net model shown in Figure 1(b) by Algorithm 10. At the first iteration, is chosen. Let be the place invariant to prohibit FBM_{1}, whose coefficients are ’s (). should satisfy (8) that is called the reachability condition and does not prohibit any marking in . Therefore, should satisfy two constraints:for the two legal markings and in , respectively. After simplifying the two constraints, we haveTwo variables are introduced and to represent whether forbids and , respectively. Therefore, we have the two constraints: that is, and , where is a positive integer constant that must be big enough and () implies that FBM_{2} (FBM_{3}) is forbidden by and () implies that FBM_{2} (FBM_{3}) cannot be forbidden by . After simplifying the two constraints, we haveFinally, from the above constrains MFFP2 for FBM_{1} is stated as follows.

MFFP2 isThe optimal solution of the above MFFP2 is , , , and , and all the remaining variables are equal to zero. Then, a monitor is designed for . As a result, we have , , and . FBM_{1} and FBM_{2} are prohibited by : that is, . Therefore, we have : that is, . At the second iteration, the last FBM is considered, that is, FBM_{3}. Let be the place invariant to prohibit FBM_{3}. First, the coefficients of should fulfill the reachability conditions: that is,Since FBM_{3} is the last marking in , no other FBMs in the set require to be prohibited by . By solving the above integer linear system, we have a solution with , , and all the remaining variables are equal to zero. Then, a monitor is designed for . As a result, we have , , and . Only FBM_{3} is prohibited by : that is, . Therefore, we have : that is, .

Algorithm 10 is terminated. Totally, there are two monitors computed for this net. We add the two monitors to the original Petri net model. The controlled system after addition is as shown in Figure 5. Table 5 shows the two required monitors by using Algorithm 10.

#### 5. Case Studies

This section presents four case studies and the applications of the proposed applied algorithms.

(a) The production sequence of the first AMS case study is shown in Figure 6(a). It consists of two robots (R1 and R2; each one can hold a part at a time) and five machines (Ml, M2, M3, M4, and M5; each one can process one part at a time). There are three loading buffers I1–3 and three unloading buffers O1–3. Three types of parts are considered in the system: PA, PB, and PC. The model of Petri net for this case study is shown in Figure 6(b).

**(a)**

**(b)**

(b) The production sequence of the second AMS case study is shown in Figure 7(a) and several studies have been done in this case study (see Elzpeleta et al. [13] and Chen et al. [25]). The system consists of three robots (Rl, R2, and R3; each one can hold a part at a time) and four machines (Ml, M2, M3, and M4; each machine can process two parts at a time). There are three loading buffers I1–3 and three unloading buffers O1–3. Three types of parts are considered in the system: PA, PB, and PC. The model of Petri net for this case study is shown in Figure 7(b).

**(a)**

**(b)**

(c) Next, the production sequence of the third AMS case study is shown in Figure 8(a). The cell consists of two robots (R1 and R2; each one can hold a part at a time) and four machines (M1, M2, and M3; each machine can process a part at a time; M4 can process two products at a time) and, for loading and unloading the cell, two loading buffers (I1 and I2) and two unloading buffers (O1 and O2). Two types of parts are considered in the cell: PA and PB. The model of Petri net for this case study is illustrated in Figure 8(b).

**(a)**

**(b)**

(d) Finally, the production sequence of the fourth AMS case study is shown in Figure 9(a) and several studies have been achieved in this case study (see Uzam [9], Chen et al. [25], Piroddi et al. [26], and Piroddi et al. [27]). The system is composed of two robots (R1 and R2; each robot can hold a part at a time) and four machines (M1, M2, M3, and M4; each machine can process one part at a time). There are two loading buffers (I1 and I2) and two unloading buffers (O1 and O2). PA and PB are considered in the system. The model of Petri net for this case study is shown in Figure 9(b).

**(a)**

**(b)**

The main parameters of all case studies are presented in Table 6 such as number of places, number of transitions, set partition, SMS, dependent siphons, elementary siphons, reachable markings, FBMs, legal markings, , and . Table 7 illustrates the supervisor performance of applied algorithms for all case studies with respect to the numbers of monitors, arcs, and reachable states.

From Table 7, Algorithms 9 and 10 obtain fewer numbers of monitors than Algorithms 2 and 8 for all case studies while Algorithm 9 provides less or equal number of arcs than the other algorithms in case studies 1, 2, and 3. In case study 4, Algorithm 10 obtains less number of arcs than the other algorithms. As for the reachable states, all algorithms provide the same number of reachable states in case study 1, which is 1072 while both Algorithms 2 and 8 have the same number of reachable states, which is 6287 in case study 2. Moreover, in case study 2, both Algorithms 9 and 10 provide the same number of reachable states, which is 21581. Moreover, in case study 3, both Algorithms 9 and 10 outperform Algorithms 2 and 8 in number of reachable states, which have 656 reachable states. Finally, in case study 4, Algorithms 8, 9, and 10 provide better reachable states than Algorithm 2, which is 205. The required monitors using applied algorithms for all case studied are shown in Tables 8, 9, 10, and 11.

#### 6. Computational Results and Analysis

This section presents that the computational results and analysis of the applied methods are conducted for four AMSs case studies. All cases have been modeled using MATLAB software. The simulation is done for 24 time units. After running and simulating the case studies, the results of MATLAB simulation in terms of the utilization resources and throughput can be summarized as follows. For case study 1, Figures 10 and 11 show the resources utilization and throughput of case study 1, respectively. From the figures, it can be found that all applied Algorithms 8, 9, and 10 obtain the same utilization for all resources, while Algorithm 2 obtains utilization better than Algorithms 8, 9, and 10 at M1, M2, M5, and R1, and same utilization at M4 and R2. For the throughput, Algorithm 2 obtains greater produced number of part A and part C than Algorithms 8, 9, and 10. Moreover, Algorithms 8, 9, and 10 provide the same throughput for all part types. For case study 2, Figures 12 and 13 show the resources utilization and throughput of the case study 2, respectively.

The figures indicate that both applied Algorithms 9 and 10 have the same utilization for all resources and have better results than Algorithms 2 and 8 at M1, M2, M4, R1, and R2. Algorithm 2 obtains utilization better than Algorithms 8, 9, and 10 at M3 and R3. For the throughput, Algorithm 2 obtains greater produced number of part C than Algorithms 8, 9, and 10, while Algorithms 9 and 10 have greater produced number of part A than Algorithms 2 and 8. Moreover, Algorithm 8 obtains a greater produced number of part B than Algorithms 2, 9, and 10. For case study 3, Figures 14 and 15 show the resources utilization and throughput of case study 3, respectively. The figures indicate that both applied Algorithms 9 and 10 have the same utilization of all resources and obtain better results than Algorithms 2 and 8 at M1, M3, and R2. Both Algorithms 2 and 8 obtain the same utilization for all resources and provide utilization better than Algorithms 9 and 10 at M2, M4, and R1. For the throughput, Algorithms 2 and 8 have greater produced number of part B than Algorithms 9 and 10, while Algorithms 9 and 10 obtain greater produced number of part A than Algorithms 2 and 8. Finally, for case study 4, Figures 16 and 17 show the resources utilization and throughput of case study 4, respectively. From the figures, it can be found that both applied Algorithms 9 and 10 obtain the same utilization of all resources and obtain better results than Algorithms 2 and 8 at M1, M2, R1, and R2. Both Algorithms 2 and 8 obtain the same utilization of all resources and obtain utilization better than Algorithms 9 and 10 at M3 and M4. For the throughput, Algorithms 9 and 10 obtain greater produced number of parts A and B than Algorithms 2 and 8.

Based on the above computational results for all case studies, it is shown that four applied deadlock prevention policies may not imply high resource utilization and plant productivity which has been shown theoretically in previous publications, since the utilization of any resource at case studies does not exceed 50% and there are several resources that have utilization less than 20%. Moreover, it is found that the resource utilization and plant productivity are different for case studies by using applied policies. The main reason of the occurrence of this difference is a conflict situation in places. When a control place enables more than one transition at the same time, only one transition can fire. For instance, in case study 1, the number of control places using Algorithm 2 are 11 and more than one transition is enabled at the same time; that is, several transitions can be fired. While Algorithm 10 reduces the control places into 3 places and enables more than one transition at the same time, few transitions can be fired compared with Algorithm 2. Therefore, the performance is different for different cases by using applied policies. However, we can introduce the comparison between applied policies based on the above computational results, from the viewpoint of behavior permissiveness. Both Algorithms 9 and 10 can provide better behavioral permissiveness than Algorithms 2 and 8 for small size systems (case studies 3 and 4). For the large systems size (case studies 1 and 2), Algorithm 2 leads to better behavioral permissiveness than the other algorithms. The supervisor performance of applied algorithms such as the number of monitors, arcs, and reachable states as averages values is summarized. Figures 18, 19, and 20 show the summarized supervisor performance of all algorithms. From the figures, both Algorithms 9 and 10 obtain a supervisor with structural complexity and computational complexity compared to Algorithms 2 and 8.

#### 7. Conclusion and Future Work

This paper presents four applied deadlock prevention policies, two and two of which are iterative methods and siphon control methods, respectively. Four applied deadlock control methods are used to design a liveness-enforcing supervisor for four automated manufacturing system case studies. The controlled case studies are modeled and simulated using MATLAB software (Petri net toolbox) to analyze and evaluate the performance of selected methods such as utilization of resources and throughput; the computational results can be summarized as follows.

The applied deadlock prevention policies may not imply high resource utilization and plant productivity which has been shown theoretically in previous publications. Moreover, it is found that the resource utilization and plant productivity are different for case studies by using applied policies. The main reason for this difference is a conflict situation in places. When a control place enables more than one transition at the same time, only one transition can fire. For instance, in case study 1, the number of control places using Algorithm 2 are 11 and more than one transition is enabled at the same time; that is, several transitions can be fired. While Algorithm 10 reduces the control places into 3 places and enables more than one transition at the same time, few transitions can be fired compared with Algorithm 2. Therefore, the performance is different for different cases by using applied policies. However, for all automated manufacturing systems, with respect to structural complexity and computational complexity, the selected iterative methods can always lead to structurally complicated and computationally expensive liveness-enforcing net supervisors compared to the siphon control methods. From the aspect of behavioral permissiveness, the selected iterative methods can provide better behavioral permissiveness than siphon control methods for small size systems. For large systems size, strict minimal siphons control method leads to better behavioral permissiveness than the other methods.

Real-world AMSs can suffer from impacts of unreliable resources (resources with failures) under the supervisory control of deadlocks. Therefore, the need for new effective deadlock control policies based on Petri nets becomes increasingly more important. Thus, the future research direction involves designing new effective deadlock prevention policies for automated manufacturing systems with unreliable resources [8]. Then, a simulation will be used to measure the performance of these policies. Different and complex automated manufacturing systems are required and should be considered as a benchmark for these deadlock prevention policies under a variety of control specifications. Optimal deadlock-free scheduling with high time performance will also be interesting.

#### Conflict of Interests

The authors declare that there is no conflict of interests regarding the publication of this paper.

#### Acknowledgment

This work was funded by the National Plan for Science, Technology and Innovation (MARRIFAH), King Abdulaziz City for Science and Technology, Kingdom of Saudi Arabia, Award no. 12-ELE2506-02.