Abstract

This paper considers the problem of establishing live resource allocation in workflows with synchronization stages. Establishing live resource allocation in this class of systems is challenging since deciding whether a given level of resource capacities is sufficient to complete a single process is NP-complete. In this paper, we develop two necessary conditions and one sufficient condition that provide quickly computable tests for the existence of process completing sequences. The necessary conditions are based on the sequence of completions of 𝑛 subprocesses that merge together at a synchronization. Although the worst case complexity is O(2𝑛), we expect the number of subprocesses combined at any synchronization will be sufficiently small so that total computation time remains manageable. The sufficient condition uses a reduction scheme that computes a sufficient capacity level of each resource type to complete and merge all 𝑛 subprocesses. The worst case complexity is O(𝑛𝑚), where 𝑚 is the number of synchronizations. Finally, the paper develops capacity bounds and polynomial methods for generating feasible resource allocation sequences for merging systems with single unit allocation. This method is based on single step look-ahead for deadly marked siphons and is O(2𝑛). Throughout the paper, we use a class of Petri nets called Generalized Augmented Marked Graphs to represent our resource allocation systems.

1. Introduction

In recent years, liveness-enforcing supervisory control has been an active area of research for resource allocation systems characterized by processes with highly ordered, linear workflows. This research has been motivated to a large degree by the need to control resource allocation in large, highly automated manufacturing systems, where process workflow is highly sequential and is typically prespecified in a product’s process plan. In brief, a sequential resource allocation system (RAS) consists of a set of resources, each available at a finite level, and a set of processes that progresses through sequences of processing stages, with each stage requiring a predetermined set of the system resources. Furthermore, a process instance is allowed to advance to its next stage only when it has been granted the complete set of required resources and only then will it release the currently held resources that are not required for the following stage.

Because the resource allocation schemes discussed above are embedded in the operation of many technologically advanced systems, a complete understanding of their worst case behaviors is essential when devising operating logic for their control. Indeed, if resource allocation is not properly constrained, the sequential RAS will attain resource allocation states from which additional allocation-deallocation of some subset of resources is not possible. This situation is highly undesirable, because resource allocation stalls, the involved processes and the resources they hold are idle, and outside intervention to resolve and reset the system is required. Liveness enforcing supervision seeks to avoid these situations and maintain completely smooth operation by imposing an appropriate supervisory control policy.

Reveliotis et al. [1] present a taxonomy for sequential RAS based on the structure of the allocation requests associated with various processing stages. This taxonomy includes (i) single-unit (SU) RAS, which admits only linearly ordered process sequences with resource requests corresponding to standard unit vectors, (ii) conjunctive (C) RAS, which admits linearly ordered process flows with arbitrary resource requests, and (iii) disjunctive/conjunctive (D/C) RAS, which allows the process to use alternative workflow sequences. Lower-numbered classes in the taxonomy are specializations of the higher-numbered and therefore present simpler behaviors which are more easily analyzed and controlled. Indeed, many results on RAS liveness and the synthesis of tractable liveness enforcing supervisors (LES) have been developed for the SU-RAS class, see, for example, [2, 3] for seminal papers. Researchers have also addressed the problem in the context of the more general classes of D-RAS, C-RAS, and D/C-RAS, see [4, 5] for early results. An interesting discussion that provides a unifying perspective for many of these results, and also highlights the currently prevailing issues in the area, can be found in [6]. Additional recent reviews are provided in [7, 8].

In [9], Reveliotis et al. extends the taxonomy of [1] to include RAS with process synchronizations, that is, RAS where a process may consist of several subprocesses operating independently until some synchronization stage is attained, at which point subprocesses recombine through merging and splitting and then continue as a new set. We shall refer to this class of RAS as A/D-RAS (assembly/disassembly RAS), since, in the case of manufacturing, this class covers products with both assembly and disassembly in their specified workflow. We notice, however, that synchronization also commonly occurs in project management and business workflow scenarios where finite resources must be allocated to competing tasks, which must eventually merge and spawn successor tasks.

From the perspective of logical analysis and control, a major difference between the A/D-RAS and those addressed in the taxonomy of [1] is that we can no longer quickly be sure that the given level of resource capacities is sufficient to complete even a single process. More specifically, since a single process may consist of several concurrent and independently operating subprocesses, each requesting, using, and holding resources, there is no guarantee that resources are of sufficient capacity to allow these subprocesses to attain required synchronization states. In this paper, we refer to this issue as the “quasi-liveness” problem since, by definition, an underlying Petri net model of the A/D-RAS will be quasi-live if, for every transition of the net (including those representing synchronizations), there exists a sequence of transition firings (resource allocations) that enables that transition. In [9], it is established that the lack of quasi-liveness in the A/D-RAS can be explained by the presence of a particular type of deadly marked siphon in the underlying net dynamics and that testing quasi-liveness, a rather easy task for nets modeling the D/C-RAS, now becomes an NP-complete problem (cf. also [10] for a formal proof on the NP-completeness of the quasi-liveness problem in the considered RAS class). Thus, assessing process quasi-liveness raises important and novel research problems to be addressed for this RAS. For quasi-live processes, an additional issue is identifying sequences of resource allocations that enable the involved process synchronizations. Once such sequences have been identified, standard D/C-RAS deadlock avoidance policies can be implemented to control concurrent allocation of resources across several concurrently operating processes.

We note that in [11], Xie and Jeng also study resource allocation in systems with synchronizations by analyzing a class of ordinary Petri nets called extended resource control nets (ERCN). More specifically, they develop structural characterizations for the ERCN quasi-liveness and liveness that are based on the notion of empty siphons. In other work, Wu et al. [12] model assembly/disassembly processes using resource-oriented Petri nets. Based on the models, a deadlock control policy is proposed and proved to be computationally efficient and less conservative than the existing policies in the literature. Hsieh [13] develops a subclass of Petri net models called nonordinary controlled flexible assembly Petri nets with uncertainties for assembly systems and studies their robustness to resource failure. Hu et al. [14] proposes a class of Petri nets to study automated manufacturing systems with either flexible routes or assembly operations. Using structural analysis, the authors show that liveness of such systems can be attributed to the absence of under-marked siphons.

Our work, on the other hand, places more emphasis on the associated design and control problems, seeking first to find resource levels that guarantee quasi-liveness and then to find resource allocation sequences that enable synchronization transitions. In [15, 16], we model the A/D-RAS using a subclass of Petri nets known as Generalized Augmented Marked Graphs (G-AMG). Based upon the notion of reachability graph, we present an algorithm that determines the quasi-liveness of a process subnet by enumerating all execution sequences that are resource-enabled under the considered resource availability; if the net is quasi-live, there will be at least one sequence that leads to process completion. For a quasi-live process, the reachability graph provides complete information about the resource allocation sequences that can be used. Since the graph is exponential in size, it is generally necessary to select a smaller subset of sequences to use for supervision. Based on the work presented in [15, 16], Choi [17] develops a mixed integer program that selects a small subset of process completing sequences for the development of liveness enforcing supervisors. This defines a manageable set of realizable behaviors the system can exhibit. The subset is selected such that a performance controller, posed as a Markov decision process, has the greatest potential to optimize system performance.

In this paper, we seek to develop more tractable methods of identifying process completing sequences for certain subclasses. More specifically, we define a special case of G-AMG, called G-AMGA, which models a RAS comprising only “assembly” or merging operations. For RAS modeled by G-AMGA’s, we develop two necessary conditions for quasi-liveness which provide quick tests. We also develop a polynomial net reduction algorithm that can be used to compute resource levels sufficient to assure quasi-liveness. We then turn our attention to the more restricted subclass of G-AMGA, G-AMGASU , in which resource allocation is of the single-unit type. For this class, we develop resource bounds that guarantee polynomial quasi-liveness. We also present a polynomial algorithm for computing resource-feasible sequences when the resource bounds are met.

We organize the remainder of the paper as follows. Section 2 presents and discusses our A/D-RAS model. Section 3 develops the necessary conditions, the sufficient condition, and the net reduction algorithm for generating a process completing sequence for the G-AMGA. Section 4 develops sufficient resource bounds along with a polynomial algorithm for generating process completing sequences in assembly systems with single unit resource allocation, G-AMGASU. Finally, Section 5 provides concluding remarks and discusses future research.

2. The G-AMG Model for the A/D-RAS

References [9, 12] formally define the G-AMG structure for the A/D-RAS. For completeness, the Appendix repeats this definition. Figure 1 provides an example of a G-AMG process net.

Note from Figure 1 that the net has an initial place, 𝑝0, marked with a single token. This represents the uninitiated process. The initial transition, 𝑡𝐼, serves as the order release transition, which initiates production of the five subprocesses. The places of 𝑡𝐼•, call this set 𝑃𝐼, hold the released subprocess orders. No resources are allocated to subprocesses in 𝑃𝐼, that is, 𝑡𝐼 merely releases orders for the subprocesses it does not allocate resources. This is indicated by the zero need vector associate with places in 𝑃𝐼.

We use 𝑃𝑆 to represent the set of places that model processing operations, typically those with nonzero resource need, and 𝑇𝑆 to represent those transitions that allocate-deallocate resources. Thus, resource places are only connected to transitions in 𝑇𝑆. Note that the sequential logic underlying the execution of the set of subprocesses is expressed by the induced subnet 𝑃𝑆𝑇𝑆.

Places of 𝑃𝑆 are labeled with resource need for three resource types. We do this to simplify the figure. In fact, each resource type has its own place (the set of resource places is 𝑃𝑅) and is marked with a number of tokens representing its capacity (we will denote the capacity or resource, 𝑟𝑖, as 𝐶𝑖). Consider Figure 2, illustrating the connectivity for resource 𝑟1. The weight 𝑊(𝑟1,𝑡1)=1 represents the number of units of 𝑟1 requested by the subprocess at 𝑡1. The needs of a process place 𝑝𝑃𝑠 with respect to some resource 𝑟𝑖𝑃𝑅, are expressed by the value of 𝑢𝑖(𝑝), where 𝑢𝑖 is the 𝑝-semiflow introduced by item 5 of Definition A.11.

Note that resource types support the execution of the different requesting subprocesses in a reusable fashion, that is, their utilization does not diminish their capacity.

Firing of 𝑡7𝑇𝑆represents the completion of the process. This event deallocates all resources and places a token in the final completion place, 𝑝𝐹𝑃𝐹. When this happens, the final transition, 𝑡𝐹, which signals process completion, is allowed to fire and a new process release is enabled. Only places of 𝑃𝐹 provide input to 𝑡𝐹,𝑡𝐹 is the only input of 𝑝0, and 𝑝0 is the only output of 𝑡𝐹. Also, 𝑝0 is the only input of 𝑡𝐼, and 𝑡𝐼 is the only output of 𝑝0. Finally, 𝑡𝐼 is the only input of places in 𝑃𝐼, and these places connect to transitions in 𝑇𝑆.

Since the process net (without resource places) is a marked graph, each place in {𝑝0}𝑃𝐼𝑃𝑆𝑃𝐹 has exactly one input and one output. This implies that processes can exhibit concurrency and synchronization but not choice. To be well-defined, we require that the process net be strongly connected. Finally, we will say that 𝑃={𝑝0}𝑃𝐼𝑃𝑆𝑃𝐹, 𝑇={𝑡𝐼,𝑡𝐹}𝑇𝑆, 𝑁=𝑃𝑇 and 𝑁𝑅=(𝑃𝑃𝑅)𝑇. To summarize, we have the following notation.𝑝0: Initial process place. The initial marking of 𝑝0 specifies the maximum number of concurrently  executing processes.𝑃𝐼: Places that hold subprocesses ready to begin processing. 𝑃𝑆: Places where processing occurs. These typically have associated resource needs. 𝑃𝐹: Places holding the completed process. 𝑃𝑅: The set of resource places. 𝑃:{𝑝0}𝑃𝐼𝑃𝑆𝑃𝐹, all places except resource places. 𝑡𝐼: The “order release” transition. 𝑇𝑆: Transitions that allocate-deallocate resources and that synchronize, merge, or split subprocesses.𝑡𝐹: The “process completion” transition. 𝑇:{𝑡𝐼,𝑡𝐹}𝑇𝑆 the set of transitions. 𝑊(𝑟,𝑡): The number of units of resource 𝑟 requested at transition 𝑡. 𝑁:𝑃𝑇, the process net without resources. 𝑁𝑅:(𝑃𝑃𝑅)𝑇, the process net with resources.

As previously stated, the Appendix (Definition A.11) provides the formal definition.

As mentioned in the introduction, assessing the quasi-liveness of the G-AMG is NP-complete [10]. Thus, determining whether or not a given process has a sequence of transition firings (resource allocations) that enables 𝑡𝐹 requires super-polynomial computation in the general case. Detailed discussions on quasi-liveness and related issues for the general case can be found in [12, 14].

In this paper, we investigate live resource allocation for assembly systems only; that is, we impose that for all 𝑡𝑇𝑆𝑁𝑅, 𝑡𝑃𝑆 is a singleton. In Section 3, we develop conditions that provide quickly computable tests on quasi-liveness. In Section 4, we develop polynomial methods for resolving quasi-liveness and generating feasible resource allocation sequences for assembly systems with single unit resource allocation.

3. The G-AMGA Model for the A-RAS

This section develops results for the subclass, referred to as G-AMGA, of A/D-RAS systems restricted to assembly only (A-RAS). In other words, systems in G-AMGA G-AMG have subprocess merging but no splitting. For this subclass of systems, 𝑁 is restricted as follows: for all 𝑡𝑇𝑆, |𝑡𝑃𝑆|=1. Thus, a transition (other than 𝑡𝐼) can perform no splitting operation; that is, there is no disassembly. For this subclass, we develop a set of quick tests for quasi-liveness based on necessary conditions and sufficient conditions. The necessary conditions are based on local tests of “place concurrence” for each synchronizing transition. If these conditions are not met, then the net is not quasi-live. If these tests do not indicate lack of quasi-liveness, we then perform a polynomial sufficiency test, that, if met, guarantees quasi-liveness and provides resource enabled execution sequences.

3.1. Necessary Conditions for A-RAS

Consider an 𝑁𝑅. Let 𝑇Synch be the set of transitions that synchronize subprocesses, that is, 𝑇Synch={𝑡𝑇𝑆|𝑡𝑃𝑆|>1}. For example, in Figure 1, 𝑇Synch={𝑡5,𝑡6,𝑡7}. We note that for each 𝑡𝑇Synch, all places in 𝑡𝑃𝑆 must be simultaneously marked for synchronization to occur. Further, there must exist sufficient remaining unallocated resources to fire the synchronization once these places are marked. For example, in Figure 1, for 𝑡5 to be process enabled, it is necessary that the three subprocesses synchronized at 𝑡5 are simultaneously allocated a total of three units of resource type, 𝑟2. To resource enable 𝑡5, one additional unit of 𝑟2 is required. Thus, if the capacity of 𝑟2 is less than three, 𝑡5 cannot be process enabled, and if the capacity of 𝑟2 is less than four, 𝑡5 cannot be both process and resource enabled. Thus, as illustrated by this example, if there exists 𝑡𝑇Synch and resource, 𝑟𝑖, such that 𝑊(𝑟𝑖,𝑡)+𝑝𝑡𝑃𝑆𝑢𝑖(𝑝)>𝐶𝑖, where 𝐶𝑖 is the capacity of 𝑟𝑖, then 𝑁𝑅 cannot be quasi-live.

This is our first necessary condition that resource capacities must be sufficient to be both process enabled and resource enabled 𝑡𝑇Synch.

Further, note that transitions 𝑡5 and 𝑡6 must be fired to process-enable 𝑡7. Since we fire only one transition at a time, these must be fired in some order. Suppose 𝑡6 is fired before 𝑡5. Then the subprocess at place 𝑡6𝑃𝑆 will be assembled and holding two units of 𝑟3 after firing 𝑡6. Then to fire 𝑡5, subprocesses at •𝑡5𝑃𝑆 will need to be holding five units of 𝑟3. Thus, 𝑟3 must have at least seven units of capacity if 𝑡6 fires before 𝑡5.

On the other hand, if 𝑡5 is fired before 𝑡6, then the subprocess at place 𝑡5𝑃𝑆 will be assembled and holding two units of 𝑟3. Then to fire 𝑡6, the subprocess at 𝑡6𝑃𝑆 will need to be holding three units of 𝑟3. Thus, 𝑟3 must have at least five units of capacity if 𝑡5 fires before 𝑡6. Clearly, if 𝑟3 has capacity four, the net is not quasi-live. If 𝑟3 has capacity five or six, 𝑡5𝑡6 is resource enabled but 𝑡6𝑡5 is not. If 𝑟3 has capacity seven or greater, both sequences are resource enabled.

More generally, suppose 𝑡𝑇Synch has 𝐾 subprocess input places, that is,  𝐾=|𝑡𝑃𝑆|. Since 𝑁 is a marked graph, each 𝑝𝑡𝑃𝑆 will have only one input transition. Since 𝑁 is assembly only, each 𝑝𝑡𝑃𝑆 will have a unique input transition. Thus, to process enable 𝑡, these 𝐾 transitions will have to be fired in some order.

Let 𝑡𝑃𝑆 = {𝑝(1),𝑝(2),,𝑝(𝐾)} and let 𝑡={𝑡(1),𝑡(2),,𝑡(𝐾)}, where 𝑝(1)={𝑡(1)}, 𝑝(2)={𝑡(2)}, and so forth. Firing 𝑡(1) marks 𝑝(1), firing 𝑡(2) marks 𝑝(2), and so forth. When {𝑝(1),𝑝(2),,𝑝(𝐾)} are all marked, 𝑡 is process enabled. With unlimited resources, there are 𝐾! possible firing sequences for {𝑡(1),𝑡(2),,𝑡(𝐾)} that process-enable 𝑡 (assuming each is fired only once). However, with finite resource capacities, some (possibly all) of the firing sequences might be infeasible. For example, in Figure 1, if 𝑟3 has capacity six, then the firing sequence 𝑡6𝑡5 is not possible, although 𝑡5𝑡6 is.

Let 𝜎𝑘 be the set of partial firing sequences of {𝑡(1),𝑡(2),,𝑡(𝐾)} of length 𝑘𝐾 (again assuming that each transition will occur at most once in any sequence of 𝜎𝑘). Note that 𝜎𝜎𝑘 marks 𝑘 places of 𝑡𝑃𝑆 and leaves 𝐾𝑘 unmarked. If there exists 𝑘<𝐾 such that for every marked 𝑘-subset of {𝑝(1),𝑝(2),,𝑝(𝐾)}, all input transitions to the unmarked (𝐾𝑘)-complement are resource disabled, then 𝑁𝑅 cannot be quasi-live.

Putting more formally, let 𝑆𝑘 be a 𝑘-subset of {𝑝(1),𝑝(2),,𝑝(𝐾)}, that is, 𝑆𝑘{𝑝(1),𝑝(2),,𝑝(𝐾)} such that |𝑆𝑘|=𝑘. Note that there are |𝑡𝑃𝑆|𝑘 total 𝑘-subsets of 𝑡𝑃𝑆={𝑝(1),𝑝(2),,𝑝(𝐾)}. If 𝑘<𝐾 such that for all 𝑆𝑘𝑡𝑃𝑆, for all 𝑝(S𝑘)𝑐=(𝑡𝑃𝑆)𝑆𝑘, 𝑟𝑖 such that 𝑝𝑆𝑘𝑢𝑖(𝑝)+𝑊(𝑟𝑖,𝑝)>𝐶𝑖, then 𝑁𝑅 cannot be quasi-live.

This is our second necessary condition that resource capacities must be sufficient to fire all the input transitions to subprocess input places of 𝑡𝑇Synch.

Algorithm 1 checks these necessary conditions. The algorithm starts with a For loop that tests every synchronization transition for violations of the two necessary conditions. The first check is for necessary condition 1, where the resources required to process-enable plus the resources required to resource-enable the synchronization are compared to the resource capacities. If a violation is found, then the net cannot be quasi-live, and the algorithm terminates by returning not quasi-live.

For every 𝑡 𝑇 S y n c h
 //Check for violations of the first necessary condition
 Find 𝑟 𝑖 such that 𝑊 ( 𝑟 𝑖 , 𝑡 ) + 𝑝 𝑡 𝑃 𝑆 𝑢 𝑖 ( 𝑝 ) > 𝐶 𝑖
 If successful, return Not Quasi-live
 //Check for violations of the second necessary condition
 Else 𝑘 = 1
  While 𝑘 < 𝐾 = | 𝑡 𝑃 𝑆 |
   subset_count = 0
   For each 𝑆 𝑘 𝑡 𝑃 𝑆
    place_count = 0
    For each 𝑝 ( 𝑆 𝑘 ) 𝑐
     Find 𝑟 𝑖 𝑠 𝑡 𝑝 𝑆 𝑘 𝑢 𝑖 ( 𝑝 ) + 𝑊 ( 𝑟 𝑖 , 𝑝 ) > 𝐶 𝑖
     If successful, place_count + +
    End For
    If place_count = | ( 𝑆 𝑘 ) 𝑐 | , subset_counter + +
   End For
   If subset_count = ( | 𝑡 𝑃 𝑆 | 𝑘 ) , return Not Quasi-live
    𝑘 + +
  End While
 End For
 Return Unknown

If no violation of the first necessary condition is found, then the algorithm initiates a While loop for testing the second condition. The first step is to initialize a subset counter, which, for the given synchronization transition, counts the number of 𝑘-subsets of the process input places that violate the second necessary condition. If it found that all 𝑘-subsets violate the second necessary condition, that is, subset_count = total number of 𝑘-subsets, then the algorithm terminates by returning not quasi-live.

Note that the inner For loop determines whether a given 𝑘-subset violates the second necessary condition or not. It does this by checking all the places in the (𝐾-𝑘)-complement to see if their input transitions are resource enabled. If none is, then none of these places can be marked, and the synchronization cannot be process enabled by first marking the 𝑘-subset and then firing the input transitions of the (𝐾-𝑘)-complement. If this is true for a 𝑘-subset, then that 𝑘-subset violates the second condition and the counter, subset_count, is incremented. Again, if we find 𝑘<𝐾such that all 𝑘-subsets violate the second necessary condition, that is, subset_count = total number of 𝑘-subsets, then the algorithm terminates by returning not quasi-live.

Consider an example assembly system depicted in Figure 3. Assume that 𝐶1,𝐶2,𝐶2 = 2,4,1. We have both 𝑡10 and 𝑡12 in 𝑇Synch. Checking 𝑡10 for the first necessary condition, we have 0+(0+0+1)=12=𝐶1for𝑟1,2+(1+0+0)=34=𝐶2 for 𝑟2, and 0+(0+1+0)=11=𝐶3for𝑟3, resulting in no violation. A similar check finds that 𝑡12 does not violate the first necessary condition. We now check 𝑡10 for the second necessary condition. For 𝑆1={𝑝3}, we have (0)+0=02=𝐶1 and (0)+1=12=𝐶1 for 𝑟1, (1)+0=14=𝐶2 and (1)+0=14=𝐶2 for 𝑟2, and (0)+1=11=𝐶3 and (0)+0=01=𝐶3 for 𝑟3. Hence, there is no violation. Similar checks for 𝑆1={𝑝6} and 𝑆1={𝑝9} reveal that there is no violation. For 𝑆2={𝑝3,𝑝6}, we have(0+0)+1=12=𝐶1 for 𝑟1, (1+0)+0=14=𝐶2 for 𝑟2, and (0+1)+0=11=𝐶3 for 𝑟3; as a result, the condition is not violated. Similarly, 𝑆2={𝑝3,𝑝9} and 𝑆2={𝑝6,𝑝9} yield no violation. Therefore, 𝑡10 does not violate the second necessary condition. Likewise, 𝑡12 does not violate the second necessary condition either.

We note that Algorithm 1 enumerates all subsets of the input places for each synchronization transition, and thus, in the strictest sense, this check is of exponential complexity. However, we expect that the number of subprocesses combined at any synchronization will be sufficiently small so that the total computation of Algorithm 1 will be quite small in comparison to the complete enumeration of the reachability graph in [12, 14], and therefore the check is worthwhile.

If no violations of either of the necessary conditions are found, then the quasi-liveness remains unverified that is, we cannot say whether the net is quasi-live or not. In the following section, we will develop a sufficient condition for quasi-liveness and an algorithm, for generating a process completing sequence based on this sufficient condition.

3.2. Sufficient Condition Test for Quasi-Liveness of the A-RAS

This subsection develops a sufficiency test for the G-AMGA model. This test makes use of reductions performed on two types of structures contained in the G-AMGA. In Figure 3, consider the three net segments: {𝑡𝐼,𝑝1,𝑡1,𝑝2,𝑡2,𝑝3,𝑡10}, {𝑡𝐼,𝑝4,𝑡4,𝑝5,𝑡5,𝑝6,𝑡10}, and {𝑡𝐼,𝑝7,𝑡7,𝑝8,𝑡8,𝑝9,𝑡10}. These three represent the sequential processing steps of the three subprocesses marking places {𝑝1,𝑝4,𝑝7}𝑃𝐼 that synchronize at 𝑡10. Any interaction between the three subprocesses is strictly limited to resource competition. Otherwise their processing up to 𝑡10 is independent, possibly concurrent, depending on resource capacities.

We note the following.(1)The subprocess of 𝑝1 requires a total allocation of 1,1,0in order to reach 𝑝3, where it will release the unit of 𝑟1 and will hold the unit of 𝑟2.(2)The subprocess of 𝑝4 requires a total allocation of 0,1,1 in order to reach 𝑝6, where it will release the unit of 𝑟2 and will hold the unit of 𝑟3.(3)The subprocess of 𝑝7 requires a total allocation of 1,0,1in order to reach 𝑝9, where it will release the unit of 𝑟3 and will hold the unit of 𝑟1.

Thus, if we have sufficient resources to simultaneously allocate 1,1,0 to the first subprocess, 0,1,1to the second, and 1,0,1to the third, then we are sure that the three subprocesses can reach the synchronization stage. Thus, we say that if 𝐶1,𝐶2,𝐶21,1,0 + 0,1,1 + 1,0,1 = 2,2,2, then resource capacities are sufficient to process-enable the synchronization at 𝑡10.

We refer to a structure such as {𝑡𝐼,𝑝1,𝑡1,𝑝2,𝑡2,𝑝3,𝑡10} as a Type-I structure; that is, a Type-I structure is a segment 𝑡𝐼, 𝑝(1), 𝑡(1), 𝑝(2), 𝑡(2), …, 𝑡(𝑘1), 𝑝(𝑘), 𝑡 of 𝑁, where(1)𝑝(1)𝑡𝐼,(2){𝑝(1),,𝑝(𝑘)}𝑃(recall,𝑃={𝑝0}𝑃𝐼𝑃𝑆𝑃𝐹), (3)𝑡(𝑗)𝑃={𝑝(𝑗)}, (4)𝑡𝑇Synch, (5)𝑘>2.

The first condition states that 𝑝(1) is an output place of 𝑡𝐼; the second states that all places are nonresource places; the third states that none of the intermediate transitions are synchronizations; the fourth states that the last transition is a synchronization; and the last states there are at least three places in the structure.

Thus, a Type-I structure of 𝑁 is a path in 𝑁 with at least three places that begins with 𝑡𝐼, ends with a synchronization, and has the property that all intermediate transitions are not synchronizations.

Now, consider the Type-I structure, {𝑡𝐼,𝑝1,𝑡1,𝑝2,𝑡2,𝑝3,𝑡10}, in Figure 3. Suppose we reduce it as follows:(1)delete 𝑝2 and 𝑡2 and all corresponding edges;(2)insert edge 𝑡1,𝑝3;(3)set the resource need vector associated with 𝑝3 to the component-wise maximum of the need vectors of all places in the Type-I structure, that is, the component-wise maximum of {0,0,0;1,0,0;0,10} = 1,1,0.

Applying this reduction to the three Type-I structures in the example yields the resulting net shown in Figure 4. Note that the net now contains no Type-I structure.

More formally, let 𝜌1 represent a Type-I reduction on net 𝑁, and let 𝜌1(𝑁) be the resulting net. Then 𝜌1 applies the following actions to 𝑁.

Resource Bound Update
For each Type-I structure 𝑡𝐼,𝑝(1),𝑡(1),,𝑡(𝑘1),𝑝(𝑘),𝑡, assign Ψ𝑖(𝑝(𝑘))=max{𝑢𝑖(𝑝(𝑗))𝑗=1𝑘}, 𝑖=1|𝑃𝑅|, and let Ψ𝑘 denote the vectorΨ𝑖(𝑝𝑘)𝑖=1|𝑃𝑅|.

Net Reduction
Delete {𝑝(2),𝑡(2),,𝑝(𝑘1),𝑡(𝑘1)} and the associated arcs. Add arc (𝑡(1),𝑝(𝑘)).
Note that Ψ𝑖(𝑝(𝑘)) retains the maximum usage of resource, 𝑟𝑖, along the Type-I structure. Thus, the resource bound associated with the undeleted place, 𝑝(𝑘), will be the number of units of each resource required for the subprocess to reach the synchronization transition.
We note that all Type-I structures can be found in number of steps polynomial in places and transitions. We now proceed to our second reduction.
Now consider net segments {𝑡𝐼,𝑝1,𝑡1,𝑝3,𝑡10,𝑡𝐼,𝑝4,𝑡4,𝑝6,𝑡10, 𝑡𝐼,𝑝7,𝑡7,𝑝9,𝑡10} of Figure 4. We refer to this structure as a Type-II structure, that is, a set of at least two parallel segments, starting at 𝑡𝐼, with two intermediate places, and ending at 𝑡𝑇Synch.
More formally, a Type-II structure is composed of 𝑚>1 parallel segments in 𝑁 ending in 𝑡𝑇Synch:1.𝑡𝐼,𝑝(11),𝑡(11),𝑝(12),𝑡2.𝑡𝐼,𝑝(21),𝑡(21),𝑝(22),𝑡.    m.𝑡𝐼, 𝑝(𝑚1), 𝑡(𝑚1), 𝑝(𝑚2), 𝑡such that {𝑝(11),,𝑝(𝑚1)}𝑡𝐼 and 𝑝(𝑖1)𝑝(𝑗1)for𝑖𝑗.
A Type-II reduction, 𝜌2, is similar to the Type-I reduction in that it applies a bound update and then a net reduction. We first illustrate the bound update and reduction and then state it more formally.
To understand the next bound update, consider the nets of Figure 5. Each place in (a) is labeled with resource need. To mark 𝑝3, we require 121 units for resources 𝑟1, 𝑟2 and 𝑟3, thus, in (b), Ψ3=121. Similarly, Ψ6=223 and Ψ9=412 for places 𝑝6 and 𝑝9, respectively, as shown in (b).
Places in (b) are also labeled with their original resource needs, 𝑢3, 𝑢6, and 𝑢9. Now, for 𝑝3,𝑝6, and 𝑝9, consider 𝛿𝑖(𝑝𝑘)=Ψ𝑖(𝑝𝑘)𝑢𝑖(𝑝𝑘). We refer to 𝛿𝑖(𝑝𝑘) as the “return” of resource, 𝑟𝑖, by the corresponding subprocess. Letting let 𝛿𝑘 denote the vector 𝛿𝑖(𝑝𝑘): 𝑖=1|𝑃𝑅|, we have 𝛿3=012, 𝛿6=213, and 𝛿9=410, as shown in Figure 5(b).
Sort the places {𝑝3,𝑝6,𝑝9} by decreasing return for 𝑟1. Then we have ordered set 𝑝9,𝑝6,𝑝3 since 420. In 5(a), if we first mark 𝑝9, then 𝑝6, and finally 𝑝3 according to the firing sequence 𝜎=𝑡5𝑡6𝑡3𝑡4𝑡1𝑡2, the following capacity constraints must be met (note that 𝐶 is the resource capacity vector): Ψ9 = 412𝐶, Ψ6 + 𝑢9 = 223+002=225𝐶, Ψ3 + 𝑢9 + 𝑢6=121+002+010=133𝐶.
Taking the component-wise max across these constraints yields 435𝐶. Thus, 435 is necessary and sufficient to execute 𝜎=𝑡5𝑡6𝑡3𝑡4𝑡1𝑡2. We will refer to 𝜎 as a “serialized” firing sequence, since it advances the Type-I subprocesses to the synchronization transition one at a time. In other words, a serialized firing sequence does not allow parallel Type-I subprocesses to process in parallel. We refer to the computed bounds as serialized bounds.
Note that if we sort {𝑝3,𝑝6,𝑝9} in any other way, say 𝑝6,𝑝3,𝑝9, we get a different serialized firing sequence for marking the places and a different set of resource bounds (in this case, 𝑡3𝑡4𝑡1𝑡2𝑡5𝑡6 and 533, resp.). The bound for 𝑟1 can be no smaller, although the bounds for 𝑟2 and 𝑟3 might be tighter. This is established by the following lemma.

Lemma 1. Let 𝑝𝑗 and 𝑝𝑘 be two places in a Type-II structure, where 𝛿𝑖(𝑝𝑗) and 𝛿𝑖(𝑝𝑘) are the returns of resource 𝑟𝑖for 𝑝𝑗 and 𝑝𝑘. If 𝛿𝑖(𝑝𝑗)𝛿𝑖(𝑝𝑘), then max(Ψ𝑖(𝑝𝑘),Ψ𝑖(𝑝𝑗)+𝑢𝑖(𝑝𝑘))max(Ψ𝑖(𝑝𝑗),Ψ𝑖(𝑝𝑘)+𝑢𝑖(𝑝𝑗)).

Before going to the proof, note (recall) the following:(1)𝑢𝑖(𝑝𝑗) is the need (number of units held) of 𝑟𝑖at 𝑝𝑗;(2)Ψ𝑖(𝑝𝑘) is the maximum need for 𝑟𝑖 along the Type-I structure leading to 𝑝𝑘;(3) given that the 𝑗th subprocess has advanced to 𝑝𝑗, Ψ𝑖(𝑝𝑘) + 𝑢𝑖(𝑝𝑗) is a lower bound on the number of units of 𝑟𝑖 required to advance the 𝑘th subprocess from its place in 𝑃𝐼 to 𝑝𝑘;(4) given that the 𝑗th and 𝑘th subprocesses are both at their initial places in 𝑃𝐼, max(Ψ𝑖(𝑝𝑗), Ψ𝑖(𝑝𝑘) + 𝑢𝑖(𝑝𝑗)) is a lower bound on the number of units of 𝑟𝑖 required to first advance the 𝑗th subprocess to 𝑝𝑗 and then the 𝑘th subprocess to 𝑝𝑘.

Proof. By assumption 𝛿𝑖(𝑝𝑗)𝛿𝑖(𝑝𝑘). Further, Ψ𝑖(𝑝𝑗)𝛿𝑖(𝑝𝑗), since the jth subprocess cannot return more of 𝑟𝑖 than it is allocated.Then,Ψ𝑖(𝑝𝑗)𝛿𝑖(𝑝𝑘)0;Ψ𝑖(𝑝𝑗)Ψ𝑖(𝑝𝑘)+𝑢𝑖(𝑝𝑘)0;Ψ𝑖(𝑝𝑗)+𝑢𝑖(𝑝𝑘)Ψ𝑖(𝑝𝑘).   Thus, max(Ψ𝑖(𝑝𝑘),Ψ𝑖(𝑝𝑗)+𝑢𝑖(𝑝𝑘))=Ψ𝑖(𝑝𝑗)+𝑢𝑖(𝑝𝑘).Now, since 𝑢𝑖(𝑝𝑘)0, we have Ψ𝑖(𝑝𝑗)+𝑢𝑖(𝑝𝑘)Ψ𝑖(𝑝𝑗);andΨ𝑖(𝑝𝑗)+𝑢𝑖(𝑝𝑘)=Ψ𝑖(𝑝𝑗)+Ψ𝑖(𝑝𝑘)𝛿𝑖(𝑝𝑘);Ψ𝑖(𝑝𝑗)+𝑢𝑖(𝑝𝑘)Ψ𝑖(𝑝𝑗)+Ψ𝑖(𝑝𝑘)𝛿𝑖(𝑝𝑗);(since𝛿𝑖(𝑝𝑗)𝛿𝑖(𝑝𝑘))Ψ𝑖(𝑝𝑗)+𝑢𝑖(𝑝𝑘)Ψ𝑖(𝑝𝑘)+𝑢𝑖(𝑝𝑗).Thus,max(Ψ𝑖(𝑝𝑘),Ψ𝑖(𝑝𝑗)+𝑢𝑖(𝑝𝑘))max(Ψ𝑖(𝑝𝑗),Ψ𝑖(𝑝𝑘)+𝑢𝑖(𝑝𝑗)).

The point is to show that if we advance the subprocesses serially; that is, one at a time, from their places in 𝑃𝐼 to their synchronization transition, in order of decreasing return of 𝑟𝑖, then we will minimize the need for 𝑟𝑖 in the serial advancement.

We can now formally state the bound update and net reduction. To understand the subscripts, please refer to the definition of a Type-II structure given above. Our approach is to identify a critical resource, 𝑟𝑐, perhaps one that is most constraining or most expensive, and compute bounds for Type-II reductions using the returns for 𝑟𝑐 as a sorting key in ordering the corresponding subprocesses.

Resource Bound Update for Critical Resource, 𝑟𝑐
For a Type-II structure Let 𝛿𝑖(𝑝(𝑗2))=Ψ𝑖(𝑝(𝑗2))𝑢𝑖(𝑝(𝑗2)), 𝑗=1,,𝑚, 𝑖=1,,|𝑃𝑅| Sort {𝑝(12)𝑝(𝑚2)} by decreasing 𝛿𝑐(𝑝(𝑗2)) Let Γ=𝑝1,,𝑝𝑚 be the sorted set For 𝑖=1,,|𝑃𝑅|  Set Ψ𝑖(𝑝(12)) to max{Ψ𝑖(𝑝𝑡)+𝑡1𝑗=1𝑢𝑖(𝑝𝑗)𝑡=1,,𝑚} End ForEnd For

Net Reduction
Delete {𝑝(21),𝑡(21),𝑝(22);;𝑝(𝑚1),𝑡(𝑚1),𝑝(𝑚2)} and the associated arcs.
Subsequently, let 𝜌2(𝑁) denote the net resulting from a Type-II reduction having been applied to 𝑁; that is, in 𝜌2(𝑁) all Type-II structures have been reduced. Clearly, all Type-II structures in a net can be found in number of steps polynomial in places and transitions.
Let us now apply a Type-II reduction to the net of Figure 4. Assuming that 𝑟1 is the critical resource, we obtain the resulting net depicted in Figure 6 (note that a new Type I structure has emerged).
Lemma 2 guarantees the computed bounds are sufficient for some serialized firing sequence.

Lemma 2. Suppose 𝑁G-AMGAwith 𝑚 Type-I structures connecting 𝑡𝐼 and 𝑡𝑗𝑇Synch, 𝑡𝐼,𝑝(11),𝑡(11)𝑝(1𝑘),𝑡𝑗, 𝑡𝐼,𝑝(21),𝑡(21)𝑝(2𝑛),𝑡𝑗, …, and 𝑡𝐼,𝑝(𝑚1),𝑡(𝑚1)𝑝(𝑚𝑝),𝑡𝑗. Then Ψ(1𝑘)={Ψ(𝑝(1𝑘))=1,,|𝑃𝑅|} in 𝜌2𝜌1(𝑁) is a sufficient resource level to enable a firing sequence of 𝑁 that marks {𝑝(1𝑘),𝑝(2𝑛),,𝑝(𝑚𝑝)}.

Proof. It is clear that Ψ(1𝑘) in 𝜌1(𝑁) enables 𝜎1=𝑡(11)𝑡(12)𝑡(1,𝑘1) in 𝑁, Ψ(2𝑛) in 𝜌1(𝑁) enables 𝜎2=𝑡(21)𝑡(22)𝑡(2,𝑛1) in 𝑁, and so forth. Now 𝜌1(𝑁) will contain Type-II structure {𝑡𝐼,𝑝(11),𝑡(11),𝑝(1𝑘),𝑡𝑗,𝑡𝐼,𝑝(21),𝑡(21),𝑝(2𝑛),𝑡𝑗,,𝑡𝐼,𝑝(𝑚1),𝑡(𝑚1),𝑝(𝑚𝑝),𝑡𝑗}. Before doing the Type-II reduction, we sort {𝑝(1𝑘),𝑝(2𝑛),,𝑝(𝑚𝑝)} based on the return of critical resource, 𝑟𝑐 (perhaps arbitrarily chosen), 𝛿𝑐(𝑝)=Ψ𝑐(𝑝)𝑢𝑐(𝑝), and let 𝑝1𝑝2,,𝑝𝑚 be the sorted set, in order of decreasing return. Then, if the resource capacities satisfy the following constraint set: {Ψ1𝐶,Ψ2+𝑢1𝐶, Ψ3+𝑢1+𝑢2𝐶,,Ψ𝑚+𝑢1++𝑢𝑚1𝐶} in 𝑁, we can first fire 𝜎1 and mark 𝑝1, next fire 𝜎2 and mark 𝑝2, and so forth. Thus, by updating Ψ(1𝑘) with the component-wise maximum of {Ψ1𝐶, Ψ2+𝑢1𝐶, Ψ3+𝑢1+𝑢2𝐶,,Ψ𝑚+𝑢1++𝑢𝑚1𝐶} before the Type-II reduction, we assure that Ψ(1𝑘)in𝜌2𝜌1(𝑁) is a sufficient resource level to enable the firing sequence 𝜎1𝜎2,,𝜎𝑚 in 𝑁.

We will now establish some necessary properties for these reductions. We note that the reductions are defined on 𝑁 and not on 𝑁𝑅G-AMGA. For the sake of brevity, we will use the notation “𝑁G-AMGAimplies 𝜌(𝑁)G-AMGA” to indicate that a reduction preserves the class defining structure of the process flow. Note that in the strictest sense, if 𝑁𝑅G-AMGA and 𝑁 is the corresponding process subnet, then 𝑁G-AMGA, since it represents a valid process flow with no resource requirements.

Lemma 3. 𝑁G-AMGA implies 𝜌1(𝑁)G-AMGA.

Proof. Suppose 𝑁 has no Type-I structure. Then, 𝜌1(𝑁)=𝑁𝑖 and hence 𝑁G-AMGA. Suppose 𝑁 has a Type-I structure 𝑡𝐼,𝑝(1),𝑡(1),𝑝(2),,𝑡(𝑘1),𝑝(𝑘),𝑡(𝑘). In 𝜌1(𝑁), this structure is transformed to 𝑡𝐼,𝑝(1),𝑡(1),𝑝(𝑘),𝑡(𝑘). Since {𝑝(1),𝑡(1), 𝑝(2),,𝑡(𝑘1),𝑝(𝑘)} are connected to the rest of 𝑁 through 𝑡𝐼 and 𝑡(𝑘) only, the reduction is local and all other places, transitions, and arcs remain intact. Thus 𝑁G-AMGA implies 𝜌1(𝑁)G-AMGA.

Lemma 4. 𝑁G-AMGA implies 𝜌2(𝑁)G-AMGA.

Proof. Suppose N has no Type-II structure. Then, 𝜌2(𝑁)=𝑁and thus 𝑁G-AMGA. Suppose 𝑁 has a Type-II structure {𝑡𝐼,𝑝(11),𝑡(11),𝑝(12),𝑡𝑗, 𝑡𝐼,𝑝(21),𝑡(21),𝑝(22),𝑡𝑗𝑡𝐼,𝑝(𝑚1),𝑡(𝑚1),𝑝(𝑚2),𝑡𝑗}. In 𝜌2(𝑁), the m parallel sequences are transformed into the single sequence, 𝑡𝐼,𝑝(11),𝑡(11),𝑝(12),𝑡𝑗. As before, all other places and transitions remain intact, and thus 𝑁G-AMGA implies 𝜌2(𝑁)G-AMGA.

The above two lemmas establish that 𝜌𝑖: G-AMGAG-AMGA, 𝑖=1,2. Note that for any 𝑁G-AMGA, 𝑝0𝑃 and 𝑃𝐼𝑃𝑠𝑃𝐹, {𝑡𝐼,𝑡𝐹}𝑇, {(𝑝0,𝑡𝐼),(𝑡𝐹,𝑝0)}𝑊, 𝑡𝐼, 𝑡𝐹, and there is a path from 𝑡𝐼 to 𝑡𝐹. Let = {{𝑝0,𝑝(1)},{𝑡𝐼,𝑡𝐹},{(𝑝0,𝑡𝐼),(𝑡𝐼,𝑝(1)),(𝑝(1),𝑡𝐹), (𝑡𝐹,𝑝0)},{1,0}}. It is clear that G-AMGA and that 𝜌𝑖 will not affect , since has no Type-1 or Type-2 structure. We refer to as “irreducible.”

Lemma 5. If 𝑁G-AMGA and 𝑁, then there exists a Type-I or Type-II structure in 𝑁.

Proof. Suppose that 𝑁 is not irreducible. Then 𝑇𝑆. Suppose that there exists neither Type-I structure nor Type-II structure. Then, since no Type-I structure exists, every 𝑡𝑢𝑇𝑆 is a synchronization. This implies that |𝑡𝐼|>1, otherwise there are no subprocesses to synchronize. Since no Type-II structure exists, for every pair (𝑝𝑗,𝑝𝑘)𝑡𝐼, 𝑝𝑗𝑝𝑘. This implies that for every 𝑝𝑗𝑡𝐼,𝑝𝑢𝑡𝐼such that 𝑝𝑗 and 𝑝𝑢 synchronize at 𝑝𝑗. Note that there must be a path from 𝑡𝐼 to 𝑝𝑢, and the first node of this path, say 𝑝𝑣, must be in 𝑡𝐼. Further, the synchronization transition, 𝑝𝑣, must fire before 𝑝𝑢 can be marked. Thus, for every 𝑝𝑗𝑡𝐼 there exists 𝑝𝑣𝑡𝐼 such that 𝑝𝑣 must be enabled and fired before 𝑝𝑗 can be enabled and fired. Since 𝑡𝐼 is finite, this implies a cyclic dependency among the transitions of 𝑡𝐼, which contradicts the implication of Definition A.11 that every cycle of 𝑁 passes through 𝑝0.

With these results, the following theorems are now straightforward.

Theorem 1. For every 𝑁G-AMGA, there is a finite sequence of reductions that maps N to irreducible form. Further, sequence length is 𝑂(|𝑃𝑆|).

Proof. Suppose 𝑁G-AMGA is not in irreducible form. Then, it can be reduced by the following algorithm, which will return the required sequence of reductions:Set 𝜂=𝑁,𝜌=𝜀 (empty string)While𝜂𝜂=𝜌2(𝜌1(𝜂))𝜌=𝜌2𝜌1𝜌 (concatenation)End WhileReturn 𝜌Note that if 𝜂 is not irreducible, then 𝜌2(𝜌1(𝜂)) has fewer places than 𝜂. Since 𝑁 has finite places, the While will terminate in a finite number of steps not larger than |𝑃𝑆| since each iteration will eliminate at least one place.

In the following, we will let (𝜌2𝜌1)𝑛(𝑁) denote the net that results after the Type-I/Type-II reduction sequence has been applied 𝑛 times.

Theorem 2. For every 𝑁G-AMGA, let𝜂=(𝜌2𝜌1)𝑛(𝑁) and suppose that 𝑝𝑗 has survived at least one update to Ψ𝑗 without being deleted. Then Ψ𝑗 is sufficient to enable a firing sequence in 𝑁 that enables 𝑝𝑗.

Proof. Suppose 𝑝𝑗 has been involved in Type-I and Type-II structures over the n reductions and is the surviving place of those reduced structures. By the induction hypothesis, Ψ𝑗 is sufficient to enable a firing sequence in 𝑁 that enables 𝑡𝑗=𝑝𝑗, say 𝜎. Note that in 𝜂, 𝑝𝑗={𝑡𝐼} and 𝑝𝑗 is in a Type-I structure (assuming 𝑡𝑗𝑡𝐹), since it is the lone input to 𝑡𝑗 and 𝑡𝑗. (To see this, recall that since 𝜌2 is performed after 𝜌1, 𝜂 has no Type-II structures.) Let 𝑡𝐼,𝑝𝑗,𝑡𝑗,𝑝(2),𝑡(2)𝑡(𝑘1),𝑝(𝑘),𝑡(𝑘) be this Type-I structure in 𝜂. On subsequent Type-I reduction, Ψ(𝑝(𝑘))=max{Ψ(𝑝𝑗),Ψ(𝑝(2)),,Ψ(𝑝(𝑘))}, for =1,,|𝑃𝑅|, then {𝑝(2),,𝑝𝑖(𝑘1)} will be deleted, along with corresponding arcs and arc (𝑡𝑗,𝑝(𝑘)) will be added. Thus, Ψ(𝑘) will be sufficient for firing sequence 𝜎𝜏=𝜎𝑡𝑗𝑡(2)𝑡(𝑘1), which marks 𝑝(𝑘).
Now, consider 𝜌1(𝜂) with a Type-II structure {𝑡𝐼,𝑝(11),𝑡(11),𝑝(12),𝑡𝑗, 𝑡𝐼,𝑝(21),𝑡(21),𝑝(22),𝑡𝑗𝑡𝐼,𝑝(𝑚1),𝑡(𝑚1),𝑝(𝑚2),𝑡𝑗}, where 𝜎𝜏(1) marks 𝑝(12), 𝜎𝜏(2) marks 𝑝(22),…, and 𝜎𝜏(𝑚) marks 𝑝(𝑚2). Suppose we order {𝑝(12),𝑝(22),,𝑝(𝑚2)} by decreasing return, 𝛿𝑗=Ψ𝑗𝑢𝑗, and let {𝑝1𝑝2,,𝑝𝑚} be the ordered set. Then, if we let Ψ(12) be the component-wise maximum of {Ψ1,Ψ2+𝑢1,Ψ3+𝑢1+𝑢2,,Ψ𝑚+𝑢1++𝑢𝑚1}, it is clear that Ψ(12) is sufficient to enable the firing sequence 𝜎𝜏1𝜏2,,𝜎𝜏𝑚, and thus after the Type-II reduction, Ψ(12) for 𝑝(12) in 𝜌2𝜌1(𝜂)= (𝜌2𝜌1)𝑛+1(𝜂) is sufficient to enable firing sequence 𝜎𝜏1𝜏2,,𝜎𝜏𝑚 in 𝑁, which enables 𝑝(1).

Algorithm 2 uses Type-I and Type-II reductions to compute resource levels sufficient to guarantee quasi-liveness. The algorithm starts with 𝑁, and for each process place, defines a bounding function, Ψ, for each resource. This bounding function is initialized to the resource need of the place. The While loop then updates the bounding function and applies reductions until the net is irreducible, at which point the resource bounds are returned.

Input: 𝑁 G - A M G A and critical resource, 𝑟 𝑐
Output: Serialized bounds, sequence of place markings.
𝜂 = 𝑁 , 𝜗 = ( 𝜗 is a last-in-first-out list )
For 𝑝 𝑃 𝑆 𝑃 𝐼 𝑃 𝐹
Ψ ( 𝑝 ) = 𝑢 ( 𝑝 ) for = 1 , , | 𝑃 𝑅 |
While 𝜂
 For each Type-I structure 𝑡 𝐼 , 𝑝 ( 1 ) , , 𝑡 ( 𝑛 1 ) , 𝑝 ( 𝑛 ) , 𝑡 ( 𝑛 ) in 𝜂
   Ψ ( 𝑝 ( 𝑛 ) ) = m a x { Ψ ( 𝑝 ( 1 ) ) , , Ψ ( 𝑝 ( 𝑛 ) ) } , = 1 | 𝑃 𝑅 |
End For
𝜂 = 𝜌 1 ( 𝜂 )
For a Type-II structure { 𝑡 𝐼 , 𝑝 ( 1 1 ) , 𝑡 ( 1 1 ) , 𝑝 ( 1 2 ) , 𝑡 𝑗 , 𝑡 𝐼 , 𝑝 ( 2 1 ) , 𝑡 ( 2 1 ) , 𝑝 ( 2 2 ) , 𝑡 𝑗 𝑡 𝐼 , 𝑝 ( 𝑚 1 ) , 𝑡 ( 𝑚 1 ) , 𝑝 ( 𝑚 2 ) , 𝑡 𝑗 } in 𝜂
 Sort { 𝑝 ( 1 2 ) , 𝑝 ( 2 2 ) 𝑝 ( 𝑚 2 ) } by decreasing 𝛿 𝑐 and let 𝑝 1 , , 𝑝 𝑚 be the sorted set
 Insert 𝑝 1 , , 𝑝 𝑚 into 𝜗
 For = 1 | 𝑃 𝑅 |
 Set Ψ ( 𝑝 ( 1 2 ) ) to
  max { Ψ ( 𝑝 𝑡 ) + 𝑡 1 𝑗 = 1 𝑢 𝑗 𝑡 = 1 , , 𝑚 }
  End For
 End For
𝜂 = 𝜌 2 ( 𝜂 )
End While
Return { Ψ = 1 | 𝑃 𝑅 | , 𝜗 }

More specifically, in the first For loop, the resource bound of the last place of each Type-I structure is updated with the maximum resource usage along the structure. Thus, the resource bound associated with the last place of each Type-I structure will be the number of units of each resource necessary for the subprocess to reach the synchronization transition. After these updates, the net reduction is applied.

After the Type-I reduction, if the net is not irreducible, at least one Type-II structure will be present. For each Type-II structure, say {𝑡𝐼,𝑝(11),𝑡(11),𝑝(12),𝑡𝑗, 𝑡𝐼,𝑝(21),𝑡(21),𝑝(22),𝑡𝑗𝑡𝐼,𝑝(𝑚1),𝑡(𝑚1),𝑝(𝑚2),𝑡𝑗}, the second For loop first updates the resource bounds of the place in the first path, 𝑡𝐼,𝑝(11),𝑡(11),𝑝(12),𝑡𝑗, as illustrated and discussed above, and then deletes the other places. We note that before the bounds are computed for the Type-II reduction, the places in the Type-II structure are sorted. These sorted sets are saved on a last-in-first-out list and returned by the algorithm since they can be used to construct the serialized sequence which corresponds to the computed bounds. Thus, if the serialized bounds computed by Algorithm 2 are met, a serialized sequence can be easily constructed and, in the strictest sense, enumeration of the reachability graph need not occur. However, some additional enumeration and search might be desirable, since the serialized transition firings limit the concurrency of subprocesses.

Consider Figure 6. The resulting net is obtained after Type-I and Type-II reductions have been applied to the example assembly system of Figure 3. A Type-I structure, 𝑡𝐼,𝑝1,𝑡1,𝑝3,𝑡10,𝑝10,𝑡12, can be further reduced, giving rise to 𝑡𝐼,𝑝(11),𝑡(11),𝑝(12),𝑡12 with Ψ(𝑝(12))=132, 𝑢(𝑝(12))=030 and 𝛿(𝑝(12))=102. We now have a Type-II structure: 𝑡𝐼,𝑝(11),𝑡(11),𝑝(12),𝑡12 and 𝑡𝐼,𝑝11,𝑡11,𝑝12,𝑡12. Assuming that 𝑟1 is a critical resource and hence a sorting key, the Type-II structure is reduced to 𝑡𝐼,𝑝(11),𝑡(11),𝑝(12),𝑡12 with Ψ(𝑝(12))=241. However, if 𝑟2 is used as a sorting key and the subprocess 𝑡𝐼,𝑝11,𝑡11,𝑝12,𝑡12 is executed first, then the Type-II structure is reduced to having Ψ(𝑝(12))=343. If 𝐶1,𝐶2,𝐶2=2,4,1, then the first Type-II reduction guarantees quasi-liveness.

We note that it is possible to compute a looser set of resource bounds that guarantees that any precedence feasible sequence of transition firings is resource enabled by replacing the interior of the third For loop with the following statement:Ψ𝑝(1)=𝑘𝑗=1Ψ𝑝(𝑗)||𝑃,=1𝑅||.(1)

This sum guarantees that the maximum resource needs of the corresponding subprocesses can be met simultaneously, and thus every sequence of transition firings will be resource feasible. Clearly, in this case, enumeration is not required.

4. The G-AMGASU Model for the ASU-RAS

This section studies the subclass of systems in G-AMGA where net places have single unit resource need; that is G-AMGASUG-AMGA is the subclass of G-AMGA where for all 𝑝𝑃𝑆, 𝑚=1𝑢(𝑝)1, where 𝑚=|𝑃𝑅| and 𝑢 being the 𝑝-semiflow in item 5 of Definition A.11 of the Appendix. We refer to this class as the ASU-RAS. For the ASU-RAS, we develop resource capacity bounds for which quasi-liveness is polynomial in the number of places and transitions in the underlying G-AMGASU. We also develop a fast method for finding sequences without developing the reachability graph of the underlying G-AMGASU.

More formally, we impose the following additional constraints on 𝑊 of G-AMGA.

Definition 6. G-AMGASU is the class of nets obtained by placing the following constraints onG-AMGA:(1)for all 𝑡𝑢𝑃𝐼,𝑚=1𝑊(𝑟,𝑡𝑖𝑢)=1,(2)for all 𝑡𝑢𝑇𝑆,𝑚=1𝑊(𝑟,𝑡𝑢)1,(3)for all 𝑡𝑢𝑇𝑆,if𝑚=1𝑊(𝑟,𝑡𝑖𝑢)=1, then 𝑊(𝑡𝑢,𝑟)=𝑝𝑡𝑆𝑢𝑃𝑢(𝑝), for =1,,𝑚, (4)for all 𝑡𝑢𝑇𝑆𝑃𝐹, if 𝑚=1𝑊(𝑟,𝑡𝑢)=0, then𝑚=1𝑊𝑡𝑢,𝑟=𝑚=1𝑝𝑡𝑆𝑢𝑃𝑢𝑊𝑡(𝑝)1,for=1𝑚,𝑢,𝑟max0,𝑝𝑡𝑆𝑢𝑃𝑢(,𝑝)1𝑝𝑡𝑆𝑢𝑃𝑢(.𝑝)(2) The first constraint says that a subprocess must be allocated a resource for its first processing step. The second says that no more than one unit of one resource type may be requested at a transition. The third says that when a unit of resource is allocated at a transition, all resources held by the requesting subprocesses must be returned. Finally, the fourth says that if a transition does not allocate a resource, then the return must be exactly one unit less than the number currently held (except for transitions in 𝑃𝐹, which release all resources). We have the following lemma.

Lemma 7. For any 𝑃𝑃𝑆(𝑃𝐼𝑃𝐹), the resource need vector is an 𝑚 dimensional unit vector.

Proof. For 𝑃𝑃𝑆(𝑃𝐼𝑃𝐹) we consider the following exhaustive cases.Case 1. Suppose 𝑢(𝑝)=0 for =1,,𝑚. By (1), 𝑃𝑃𝐼, but there must be a path, say 𝛾, from some 𝑃𝑢𝑃𝐼𝑡𝑜𝑃. The first transition of the path, 𝑝𝑢, allocates one unit of some resource to the corresponding subprocess. Thus, some transition along 𝛾 must deallocate all resources with no additional allocation. This violates (4).Case 2. Suppose 𝑢(𝑝)=𝑘>1 for some 𝑟. Either these 𝑘 units of 𝑟 are accumulated through at least 𝑘 transitions or they result from insufficient resource release at the firing of a synchronization transition. By (3), when a resource is allocated to a set of requesting subprocesses, all resources held by those subprocesses must be released. Thus, resources cannot be accumulated through consecutive transitions firings. By (4), if no resources are allocated at a transition, the corresponding subprocesses must still return all resources held except one. Thus, 𝑢(𝑝)=𝑘>1 for some 𝑟 violates both (3) and (4).Case 3. Suppose 𝑢(𝑝)=1and𝑢𝑘(𝑝)=1. By the logic of Case 2, this is impossible.

Now, for 𝑁𝑅G-AMGASU, the reversed subnet, 𝑁𝑅, as defined in Section 3, has splitting (disassembly) but no merging. In the following, we use 𝑁𝑅 to develop resource bounds that guarantee quasi-liveness and polynomial sequence enumeration for 𝑁𝑅. Note that 𝑡𝑢𝑇Synch in 𝑁𝑅 is a disassembly transition in 𝑁𝑅. Let 𝑇Split be the set of disassembly transitions in 𝑁𝑅. Note that for 𝑡𝑇Split, |𝑡𝑃Si|=1 and 𝑚=1𝑢(𝑡𝑃𝑆)=1. If 𝑢(𝑡𝑃𝑆) = 1, we refer to 𝑟 as the “disassembly resource.” Let 𝑇Split={𝑡𝑡𝑇Split and 𝑢(𝑡𝑃𝑆)=1 in 𝑁𝑅}, =1,,𝑚. The set, 𝑇Split, collects all the disassembly transitions in 𝑁𝑅 that have 𝑟 as the disassembly resource. Since each disassembly utilizes a single resource type, we have 𝑇𝑢Split𝑇𝑣Split= when 𝑢𝑣.

For 𝑡𝑇𝑆,letΓ(𝑡) be the set of transitions in 𝑇𝑆 reachable from 𝑡 in paths of 𝑁𝑅 not containing 𝑝0. Note that for 𝑡𝑇𝑆,Γ(𝑡) identifies reachable transitions that occur later in the disassembly process. Let 𝐿𝑇Split= {𝑡𝑡𝑇Splitand𝑇SplitΓ(𝑡)=} and note that 𝐿𝑇Split represents the set of disassembly transitions that use 𝑟 as the disassembly resource but have no reachable transition (without including 𝑝0) that does the same. That is, these are disassembly transitions, which use 𝑟, that occur latest in the disassembly process. The following lemma guarantees that the total token count in the set of disassembly operation places requiring 𝑟 is no greater than |𝐿𝑇Split|.

Lemma 8. Given an 𝑁𝑅, if 𝑀0(𝑝0)=1 and 𝑀0(𝑝)=0, for all 𝑝𝑃𝑆𝑃𝐼𝑃𝐹, then for every marking 𝑀𝑗 such that 𝑀0[𝑀𝑗,𝑀𝑗(𝑇Split𝑃𝑆)|𝐿𝑇Split|.

Proof. Let 𝑁 be initially marked as given above. Note that 𝑁𝑖 is a strongly connected marked graph with every circuit containing the place 𝑝0 initially marked with exactly one token. For 𝑡𝑗|𝐿𝑇Split|, there exists a path, from 𝑡𝐹 to 𝑡𝑗, say 𝜏𝑗. Note that there exists a circuit passing through 𝑡𝑗, say 𝛾𝑗, such that 𝜏𝑗 is a subpath of 𝛾𝑗. For any other 𝑡𝑘|𝐿𝑇Split|, 𝑡𝑗 and 𝑡𝑘 are mutually unreachable except through paths including 𝑝0. As a result, 𝑡𝑗 and 𝑡𝑘 are not in a common circuit. This implies 𝐿𝑇Split circuits passing through elements of 𝐿𝑇Split. Further note that for 𝑡𝑢𝑇Split𝐿𝑇Split, 𝑡𝑣𝐿𝑇Split such that 𝑡𝑣Γ(𝑡𝑢); this implies that 𝑡𝑢 and 𝑡𝑣 belong to a common circuit. Thus, the number of circuits in which resource 𝑟 is used as a disassembly resource is precisely 𝐿𝑇Split. By the fundamental property of marked graphs, 𝑀𝑗(𝑇Split𝑃𝑆)|𝐿𝑇Split|.

Note that |𝐿𝑇Split| can be quickly and easily computed for each resource and will play an important role in developing an enumeration policy for 𝑁𝑅. Now consider the following lemma.

Lemma 9. Given an 𝑁𝑅, suppose 𝑀0(𝑝0)=1, 𝑀0(𝑝)=0, for all 𝑝𝑃𝑆𝑃𝐼𝑃𝐹, and that 𝑀0[𝑀𝑘. Define induced marking 𝑀𝑘 as follows: 𝑀𝑘=0𝑝𝑇Split𝑃𝑆1𝑝0𝑀𝑘(𝑝)otherwise.(3) If marking 𝑀𝑘 is free of deadly marked siphons, then 𝑀𝑘 is free of deadly marked siphons.

Proof. We prove this result by contradiction. Let 𝑠 be a deadly marked siphon in 𝑀𝑘. Then, there will exist another siphon 𝑠𝑠 which is deadly marked in 𝑀𝑘 and minimal. The structure of 𝑁𝑅 implies that the minimal siphons containing place 𝑝0 are the circuits of the marked graph, 𝑁. This observation, when combined with the presumed structure for the initial marking 𝑀0, implies that, for any marking 𝑀𝑘𝑅(𝑁𝑅,𝑀0), 𝑝0𝑠. But, the construction of 𝑀𝑘 implies that 𝑠 does not increase its token content, and, therefore, it constitutes a deadly marked siphon for 𝑀𝑘. The last conclusion contradicts the working assumption and concludes the proof.

The importance of the marking 𝑀𝑘 is that its corresponding subprocesses are each strictly SU-RAS for at least one step. That is, any token in 𝑀𝑘 is holding one unit of resource and requesting one unit of resource. When the requested unit is allocated, the held unit is released, and the token advances to its next place. The lemma guarantees that if there is no deadlock among the subprocesses of 𝑀𝑘 (assuming the reduced resource capacity levels of 𝑀𝑘), then there is no deadly marked siphon in 𝑀𝑘. We will use this fact along with resource bounds to be computed from the results of Lemma 9 to develop a single step look-ahead enumeration policy for 𝑁𝑅 that is polynomial in net size. The policy is as follows.

Enumeration Policy Φ
Let 𝜎𝑗 be a firing sequence for 𝑁𝑅 such that 𝑀0[𝜎𝑗𝑀𝑗 and suppose 𝑡𝑢 is enabled at 𝑀𝑗 such that 𝑀𝑗[𝑡𝑢𝑀𝑘. Admit the extension 𝜎𝑗𝑡𝑢 only if the marking 𝑀𝑘 is free of deadly marked siphons.
We note that detecting whether or not a marking has a deadly marked siphon is polynomial in the size of the net and is thus very fast. However, allowing markings only if they are free of deadly marked siphons does not guarantee policy correctness since we may admit markings from which deadly marked siphons are unavoidable. For our purposes, we will define policy correctness as follows.

Definition 10. An enumeration policy is “correct” if for any marking, 𝑀𝑗, admitted under the policy, there exists a sequence of transition firings, 𝜎𝑗𝜀, such that(1)𝑀𝑗[𝜎𝑗𝑀0,(2) for any prefix of 𝜎𝑗, say 𝜏𝑘, where 𝑀𝑗[𝜏𝑘𝑀𝑘, 𝑀𝑘 is admitted under the policy.We, now, are in the position to prove the following.

Theorem 3. For 𝑡𝑗𝑇Split and =1,,𝑚, let 𝑈𝑗=𝑝𝑡𝑗𝑆𝑃𝑢(𝑈𝑝),max𝑈=max𝑗𝑡𝑗𝑇Split,𝐵=|||LTSplit|||+𝑈max+2.(4) If for =1,,𝑚, 𝐶𝐵, then Φ is correct.

Proof. Suppose that a marking, 𝑀𝑘, is accepted by Φ. Then 𝑀𝑘 contains no deadly marked siphon and thus 𝑀𝑘 contains no deadly marked siphon. Note that in 𝑀𝑘, the capacity of every resource is at least 𝑈max+ 2, =1𝑚. Let Π be the set of subprocesses in 𝑀𝑘 where Π=Π𝑁𝐷Π𝐷,Π𝑁𝐷Π𝐷=. Π𝐷 is the set of subprocesses at disassembly operations, that is, tokens marking 𝑇Split𝑃𝑆, and Π𝑁𝐷 is the set of subprocesses not at disassembly.

Case 1. Suppose that Π𝑁𝐷 in 𝑀𝑘. Since there is no deadly marked siphon in 𝑀𝑘, there is no subset of Π𝑁𝐷 deadlocked in 𝑀𝑘. Thus, 𝜋𝑢Π𝑁𝐷 and enabled 𝑡𝑣𝑇Split such that firing 𝑡𝑣 allocates a unit of resource 𝑟 to 𝜋𝑢 and causes 𝜋𝑢 to release a unit of resource 𝑟𝑝.
Now suppose that 𝑀𝑘[𝑡𝑣𝑀𝑔 and that 𝑀𝑔 contains a deadly marked siphon. Thus, 𝑀𝑔 contains a deadly marked siphon, which implies a deadlock among processes of Π𝑁𝐷 in 𝑀𝑔. Because of the resource bounds, each deadlocked subprocess of 𝑀𝑔 is blocked by at least two other deadlocked subprocesses of 𝑀𝑔.
To summarize, we have the following: (1) 𝑀𝑘 has no deadlock among Π𝑁𝐷, (2) 𝑀𝑘[𝑡𝑣𝑀𝑔, (3) 𝑡𝑣 allocates a single unit of 𝑟 to 𝜋𝑢 and releases a single unit of 𝑟𝑝, (4) 𝑀𝑔 has a deadlock among Π𝑁𝐷, and (5) every deadlocked subprocess of 𝑀𝑔 is blocked by at least two other deadlocked subprocesses of 𝑀𝑔.
It is clear that allocating 𝑟 to 𝜋𝑢 causes the deadlock, implying that 𝑟 is a resource involved in the deadlock. Thus, in 𝑀𝑔, at least two units of 𝑟 are allocated to subprocesses in Π𝑁𝐷, and in fact, there must be another subprocess 𝜋𝑎Π𝑁𝐷 requesting 𝑟 at 𝑡𝑎𝑇Splitin both 𝑀𝑘 and 𝑀𝑔. Allocating 𝑟 to 𝜋𝑎 rather than 𝜋𝑢, that is, 𝑀𝑘[𝑡𝑎𝑀𝑝 cannot result in deadlock among processes of Π𝑁𝐷. Hence neither 𝑀𝑝 nor 𝑀𝑝 contains a deadly marked siphon.

Case 2. Suppose that Π𝑁𝐷= and Π𝐷 in 𝑀𝑘. There exist only subprocesses at disassembly operations. Thus, each resource has at least 𝑈max+2 free units, =1𝑚. Sufficient resources are available to fire any transition of 𝑇Split. Suppose 𝑡𝑇Split is enabled in 𝑀𝑘 and that 𝑀𝑘[𝑡𝑀𝑔.𝑀𝑔 contains no deadly marked siphon. To see this, note that if 𝑀𝑔 has Π𝑁𝐷=, then each resource continues to exhibit at least 𝑈max+ 2 free units, =1𝑚. If 𝑀𝑔 has Π𝑁𝐷, then each resource, 𝑟, =1𝑚, has at least 2 units of free capacity.

Thus, Enumeration Policy Φ guarantees resource-enabled sequences of transition firings that complete the disassembly process, 𝑁𝑅. We are now ready to present Algorithm 3. It starts with 𝑁𝑅 in the initial marking and generates a firing sequence that completes the disassembly by using single step look-ahead for deadly marked siphons. The most computationally intensive step is the siphon check, which can be done in polynomial time, no worse than 𝑂(|𝑃𝑆|+|𝑇𝑆|). By Theorem 3, the loop will require no more than |𝑇𝑆| iterations, since every iteration will identify an admissible transition, and thus the algorithm is 𝑂(|𝑇𝑆|2). By returning the reversed sequence, we get the resource enabled assembly sequence for the assembly net, 𝑁𝑅. We note that the termination request computations of Algorithm 1 can easily be implemented in Algorithm 3.

Input: ( 𝑁 𝑅 , 𝑀 0 )
Output: 𝜎 𝑗 𝜀 such that 𝑀 0 [ 𝜎 𝑗 𝑀 0
Set 𝜎 𝑗 = 𝑡 𝐹 , and fire 𝑡 𝐹
Set 𝑀 𝑗 = 𝑀 0 [ 𝑡 𝐹
Loop
 Find 𝑡 𝐸 𝑡 ( 𝑀 𝑗 ) s t 𝑀 𝑗 [ 𝑡 𝑀 𝑘 , 𝑀 𝑘 contains no deadly marked
  siphon
   𝜎 𝑗 = 𝜎 𝑗 𝑡
  If 𝑀 𝑘 = 𝑀 0 , return reverse ( 𝜎 j )
  Else 𝑀 𝑗 = 𝑀 𝑘
End Loop

As an aside, we note that the converse of Lemma 9 is not true; that is, a deadly marked siphon in 𝑀𝑘 does not imply a deadly marked siphon in 𝑀𝑘. In fact, it is easy to illustrate markings which are “safe” in the sense that the firing sequence can be extended to reach 𝑀0 but for which the induced marking exhibits a deadly marked siphon and is rejected. Thus, the Enumeration Policy Φ is suboptimal in the sense that it rejects some transition firings that lead to “safe” markings. Further, even when the capacity bounds of Theorem 3 are in place, 𝑁𝑅 can exhibit markings with no deadly marked siphon but from which every sequence of transition firings leads to a marking with a deadly marked siphon. Thus, a policy that does single step look-ahead on the unaltered markings of 𝑁𝑅 is not correct. Finally, we note that since Theorem 3 applies to disassembly systems, when the specified bounds are in place, quasi-liveness is guaranteed and sequence enumeration is polynomial for the class of disassembly nets G-AMGDSU.

5. Conclusion

In this paper, we developed models and algorithms for a class of Petri nets that support resource allocation in systems with synchronization and splitting operations. Our focus was on establishing quasi-liveness and enumerating process completing sequences. This is challenging since, for this class of systems, the quasi-liveness problem is NP-complete. Our tenet is that once quasi-liveness is established and a process completing sequence is generated, previously published liveness enforcing supervisors can be used to control the operation of these systems. For the general case, we proposed a breadth-first search algorithm that generates the reachability tree and computes minimal termination requests for each marking. We discussed the complexity of this approach as well as the need for selecting a smaller set of sequences for use in supervision. We then developed two special subclasses that for systems with assembly only, and for each class established that polynomial sequence enumeration is possible if the resource capacities meet certain bounds. The first subclass was assembly with conjunctive resource allocation. For this class, we developed a net reduction algorithm that reduces the net to a minimal form and, in so doing, computes a resource sufficiency bound for “serialized” firing sequences. The second special case was that of assembly with single unit resource allocation. For this class, we developed resource bounds and an enumeration policy that guarantees a process completing sequence in polynomial time. In current and future work, we are addressing liveness enforcing supervision for assembly/disassembly systems with unreliable resources, particularly those subject to degradation.

Appendix

Definition A.11. A G-AMG is a Petri net, 𝑁=(𝑃,𝑇,𝑊,𝑀0) such that(1)𝑃=𝑃𝑆𝑃𝐼𝑃𝐹𝑃0𝑃𝑅, where𝑃𝑆𝑃𝐼𝑃𝐹𝑃0𝑃𝑅=;(2)𝑇=𝑇𝑆𝑇𝐼𝑇𝐹, where 𝑇𝑆𝑇𝐼𝑇𝐹=;(3)𝑊(𝑃×𝑇)(𝑇×𝑃)𝑍+→ satisfies the following:(a)(𝑃×𝑇)(𝑇×𝑃){0,1} such that ({𝑝0}×(𝑇𝑆{𝑡𝐼,𝑡𝐹})){1} for (𝑝0,𝑡𝐼), and {0} otherwise. Similarly, ((𝑇𝑆{𝑡𝐼,𝑡𝐹})×{𝑝0}){1} for (𝑡𝐹,𝑝0), and {0} otherwise,(b)({𝑡𝐼} × 𝑃𝐼) → {1} and ({𝑡𝐼} × (𝑃𝑆𝑃𝐹)){0}. Similarly, (𝑃𝐹×{𝑡𝐹}) {1} while ((𝑃𝑆𝑃𝐼) × {𝑡𝐹}) {0},(c)(𝑃𝑅×𝑇𝑆) (𝑇𝑆×𝑃𝑅)𝑍+ and (𝑃𝑅×(𝑇𝐼𝑇𝐹)) ((𝑇𝐼𝑇𝐹)×𝑃𝑅) {0};(4)the net generated by 𝑃𝑆𝑃𝐼𝑃𝐹{𝑝0}𝑇𝑆{𝑡𝐼,𝑡𝐹} is a strongly connected marked graph such that every cycle contains {𝑝0𝑖};(5)for all 𝑟𝑃𝑅, and there exists a minimal integral 𝑝-semiflow, 𝑢𝑟, such that 𝑢𝑟𝑃𝑅={𝑟},𝑢𝑟{𝑃0𝑃𝐼𝑃𝐹}=, 𝑢𝑟{𝑃𝑆}, and 𝑢𝑟(𝑟)=1;(6)𝑁 is pure and strongly connected.𝑀0𝑃𝑍+ with 𝑀0(𝑝)1, for all 𝑝𝑃0𝑃𝑅 and 𝑀0(𝑝)=0, otherwise.