Computing Minimal Siphons in Petri Net Models of ... - Semantic Scholar

2 downloads 0 Views 315KB Size Report
Abstract—Siphons are related to the liveness properties of. Petri net models. This relation is strong in the case of resource allocation systems (RASs). Siphons ...
532

IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS—PART A: SYSTEMS AND HUMANS, VOL. 36, NO. 3, MAY 2006

Computing Minimal Siphons in Petri Net Models of Resource Allocation Systems: A Parallel Solution Fernando Tricas and Joaquín Ezpeleta

Abstract—Siphons are related to the liveness properties of Petri net models. This relation is strong in the case of resource allocation systems (RASs). Siphons can be used in these systems in order to both characterize and prevent/avoid deadlock situations. However, the computation of these structural components can be very time consuming or, even, impossible. Moreover, if, in general, the complete enumeration of the set of minimal siphons must be avoided (there can exist an exponential number of such components), some deadlock prevention methods rely on its (complete or partial) computation and enumeration. The special syntactical constraints of some classes of RASs can help in developing specific algorithms to compute siphons in a more efficient way. In this work, a known method for siphon computation is adapted to get advantage of the special (syntactical) structure of a class of RASs; a parallel implementation is proposed and some experimental results are presented. Index Terms—Parallel computation, Petri nets, siphons, structural properties.

I. I NTRODUCTION

F

LEXIBLE manufacturing systems (FMSs) are used to organize production systems in such a way that they can be quickly adapted to new customer demands. An important feature of such systems is complexity [1]. This complexity, together with the diversity, specificity, and difficulty to manage, makes necessary the use of formal models [2]. When attention focuses on the use of system resources, an FMS can be seen as a special class of concurrent systems called resource allocation systems (RASs) [3]. An RAS is composed of a finite set of processes that share in a competitive way a finite set of resources. This competition makes possible the existence of deadlocks; a deadlock occurs when some processes are waiting for the evolution of other processes that are also waiting for the former ones to evolve. Petri net representations of RAS have proved to be especially useful when synthesizing deadlock avoidance and prevention policies. For a general introduction to Petri nets, check [4]. Much of the published work relies on minimal siphons [5]–[12]. A siphon is a set of places whose set of input transitions is included in the set of output transitions. A siphon is minimal if it does not properly contain another siphon. A Manuscript received December 19, 2003; revised July 15, 2004 and December 17, 2004. This work supported in part by Grant TIC2001-1819, financed by the Spanish Ministerio de Ciencia y Tecnología, and by PIP086/ 2005, of the Aragonese Departamento de Ciencia, Tecnología y Universidad. This paper was recommended by Associate Editor M. Zhou. The authors are with the Departamento de Informática e Ingeniería de Sistemas, Instituto de Investigación en Ingeniería de Aragón and Universidad de Zaragoza, 50009 Zaragoza, Spain (e-mail: [email protected]; ezpeleta@ unizar.es). Digital Object Identifier 10.1109/TSMCA.2005.855751

place-minimal siphon is a siphon that contains a given place and a minimal set of places [13]. It is well known that, in general, the computation of minimal siphons for a Petri net is an NP-complete problem (see, for example, [14] and [15]). This paper will concentrate on a particular type of RAS, which can be modeled by means of S 4 P R nets [7]. S 4 P R nets allow the modeling of concurrent sequential processes with routing decisions and a general conservative use of resources. This paper tries to know how time-consuming computing siphons for S 4 P R nets would be and how parallelization could improve this computation. Two facts have been considered for this computation in S 4 P R nets: 1) The special structure of this class of nets, where the model of the involved types of processes on one hand and the model of the resources on the other, are clearly separated, and 2) not all minimal siphons are needed for deadlock control but only those siphons containing places modeling resources. It is clear that, when possible, the computation of big families of siphons must be avoided. In the case of S 4 P R nets, the deadlock prevention methods proposed in [16] and [17] follow this approach, computing one siphon at each step by means of an integer programming problem. In [12], some promising work has been done, reducing the number of siphons to be considered for deadlock prevention, but they do not avoid the computation of the whole set of minimal siphons. In most cases, siphon enumeration cannot be avoided, which makes interesting to obtain efficient implementations [5], [8], [11], [18]. In the following, Section II presents the proposed implementation for the computation of siphons, Section III describes the experiments, while Section IV shows the experimental results together with some discussion about them. Finally, some conclusions are presented. II. I MPLEMENTATION A net belonging to the S 4 P R class can be obtained by means of the composition of a set of Petri nets, each one modeling a sequential process that requires the use of some resources. The net in Fig. 1 corresponds to one of such processes. In one of these nets, a strongly connected machine can be identified (the subnet generated by places philWaiting_i, philForkR_i, philForkL_i, philEating_i) and a set of places (called resource places) modeling the use of system resources (forkR_i, forkL_i). The composition of this kind of processes is made by fusion of the common resource places. The net in Fig. 2 belongs to the S 4 P R class. It is composed of two strongly connected state machines (the subnets generated by places P i_1 to P i_N and transitions T i_0 to T i_n, for

1083-4427/$20.00 © 2006 IEEE

TRICAS AND EZPELETA: COMPUTING MINIMAL SIPHONS IN PETRI NET MODELS OF RAS: PARALLEL SOLUTION

533

In order to confirm if this method was adequate for our purposes, a first experiment was done comparing this method with Lautenbach’s method [20] when applied to a set of S 4 P R nets. Table I shows the results of the experiment (the meaning of each row is explained in Section IV). From the results, it seems that Boer–Murata’s [13] method is well adapted to the problem on which we are working. The table shows that when the size of the S 4 P R net increases, the adopted method tends to be more efficient than Lautenbach’s. III. T HE E XPERIMENTS

Fig. 1.

Petri net model of the ith philosopher.

i ∈ {1, 2}, respectively) that must compete for the set of common resources, modeled by means of places R1_1 to R1_N . Let us recall here the definition of S 4 P R nets. Definition 1: Let IN be a finite set of indices. A net of the S 4 P R class is a connected generalized self-loop free Petri net N = P, T, C, where we have the following. 1) P = P0 ∪ PS ∪ PR is a partition such that  a) PS = i∈IN PSi , where for each i ∈ IN , PSi = ∅, and foreach i, j ∈ IN , i = j, PSi ∩ PSj = ∅, b) P0 = i∈IN {p0i }, c) PR = {r1 , r2 , . . . , rn }, n > 0.  2) T = i∈IN Ti , where for each i ∈ IN , Ti = ∅, and for each i, j ∈ IN , i = j, Ti ∩ Tj = ∅. 3) For each i ∈ IN , the subnet N|(P0i ∪PSi ,Ti ) is a strongly connected state machine such that every cycle contains p0i . 4) For each r ∈ PR , there exists a unique minimal PSemiflow Yr ∈ IN |P | such that {r} = Yr ∩ PR , P0 ∩ = ∅, PS ∩ Yr = ∅, and Yr [r] = 1. Yr  5) PS = r∈PR ( Yr \ {r}). Here, each PSi corresponds to the set of states of the ith process, and PR is the set of places modeling resources, while the set of P-Semiflows imposes the use of resources to be conservative. Some deadlock prevention control policies for these systems require the computation of minimal siphons containing at least one resource place [16], [19]. This means that we are looking for a method allowing us to obtain siphons containing places belonging to a given set. Many different methods have been developed for the computation of families of siphons [13], [20]–[23]. From any of the previous references, a more detailed list of methods can be extracted. From these methods, we have selected the one presented in [13] because the way the method works makes very easy to use it to obtain siphons with a given set of places and also facilitates its parallel implementation.

In order to study the behavior of the proposed parallel version, some experiments have been done. Since no benchmarks have been proposed in the literature to measure the run-time cost, three parameterized families of nets have been chosen. The first one corresponds to an implementation of the wellknown dining philosopher’s problem. The parameter corresponds to the number of philosophers. Fig. 1 shows the model of the ith philosopher. Places forkR_i and forkL_i model, respectively, the state (free/engaged) of its right and left forks: forkR_i will be shared with the philosopher on his right and forkL_i with the philosopher on his left. The results obtained for this family of nets are labeled Phil in Tables I and II (the interpretation of these tables will be introduced later). The second and third classes of systems are obtained by means of the composition of a set of sequential processes: each process, at each processing step, has attached a single (and different) resource. A skeleton of the Petri nets representing two of such sequential processes can be seen in Fig. 2. There are two ways to study size variations in these families of systems: One of them is changing the length of the process; that is, the number of processing steps (N in the figure). The second one changes the number of processes that are composed to construct systems. Fig. 2 shows the case of two processes. For this family, the order in which the ith process uses the set of resources is the reverse order in which they are used by the (i − 1)th one. Finally, the last process is composed with the first one in a similar way (see Fig. 3 for an example with four processes). Using previous skeletons, two different families of S 4 P R nets have been generated, labeled as FMSLD and FMSAD in Tables I and II. FMSLD nets are obtained by means of the composition of two sequential processes, as the ones depicted in Fig. 2, where the parameter is the length of each process (N in the figure). In the experiments, N is varying from 1 to 8. FMSAD nets are obtained by means of the composition of a variable number of sequential processes, as the ones depicted in Fig. 2, whose length is 3, and the parameter is the number of processes. In the experiments, the number of composed processes is varying from 1 to 11 (Fig. 3 shows the Petri net model of the FMSAD of size 4). These last two families have been chosen with the objective of exploring the two obvious (and different) growing directions; the first one shows a system whose resources are involved in siphons that can be of big size while in the second one all the siphons are rather small.

534

IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS—PART A: SYSTEMS AND HUMANS, VOL. 36, NO. 3, MAY 2006

Fig. 2. Petri net model of two sequential processes using resources. TABLE I EXPERIMENTAL COMPARISON OF THE METHODS IN [13] AND [20] WHEN USING ONE PROCESSOR

IV. N UMERICAL R ESULTS Two kinds of experiments have been carried out. The first class of experiments tried to see if the approach introduced in [13] was adequate for S 4 P R nets. To do that, we have compared the time required to compute the set of minimal siphons with that method and the one proposed in [20]. On the other hand, since the authors of [24] provided data about the temporal cost of their algorithm, we did some comparisons in [16] and [17]. The improvements proposed here provide a

faster method (for the kind of siphons we are interested in), so we did not explore that method further. The second class of experiments measured the speed-up when the parallel implementation we developed is used. This implementation is sketched in the following algorithm: Function computeSiphons (In N : an S 4 P R) Return (S: set of siphons) //Pre: TRUE //Post: S is the set of minimal siphons of N that //contain resource places Begin process_Id := get_identifier //my own identificator num_Processes := get_number_of_processes If (process_Id = 0) Then //Process 0 is the last one to terminate Start_Clock Send Signal to the other processes to start Else //The other processors wait for Process 0 Wait Signal from process 0 End If Read the Petri Net Sprocess_Id := compute place—minimal siphons for the resources assigned to process_Id While num_Processes > 1 process_Id = Select other available process If process_Id < process_Id Then //Processes in charge of merging

TRICAS AND EZPELETA: COMPUTING MINIMAL SIPHONS IN PETRI NET MODELS OF RAS: PARALLEL SOLUTION

535

TABLE II EXECUTION OF THE PARALLEL IMPLEMENTATION FOR THE CONSIDERED FAMILIES OF S 4 P R NETS

Fig. 3.

Petri net model of four sequential processes of length three.

Obtain the Siphons from process_Id Sprocess_Id = Sprocess_Id ∪ Sprocess_Id Else //Processes that send their siphons //and terminate Send the Siphons to process_Id Terminate End If End While //Only process 0 reaches this point

//S0 contains the set of all computed siphons S = minimal siphons from S0 Stop_Clock Return (S) End A. Comparison of the Proposals in [13] and [20] The first set of results has been obtained in an SGI Challenge L (6 × R4400 200 MHz) with 512 MB of RAM. The operating

536

IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS—PART A: SYSTEMS AND HUMANS, VOL. 36, NO. 3, MAY 2006

system is IRIX 6.2. The measures are in CPU seconds. The results can be seen in Table I. This table has four columns. The first column shows the problem identifier, with the following meanings for the tags: Phil, the philosopher’s problem; FMSLD, the composition of two processes of variable length; FMSAD, the composition of several processes of length 3. The second column shows the parameters defining the problem size as explained before. This value is followed by a tuple that corresponds to the total number of places, the number of resources, the number of arcs, and the number of transitions. The third column shows the run-time costs when the method in [13] is used. The fourth column shows the run-time costs when the method in [20] is used. In the following comments, we are going to say that a method is more or less appropriate for S 4 P R nets. However, it must be clearly stated that we can only provide some conclusions based on the results of our experiments and that they are not general enough to obtain conclusions about all the S 4 P R nets. The experiment results show that Lautenbach’s method is better for small S 4 P R nets. However, when the size of the net grows, the approach in [13] obtains better performances. These results are coherent with the election done in [15], where the method proposed in [13] was selected to improve their graphbased approach for general nets. It must be noticed that the approach presented in [13] has been adapted to compute the set of place-minimal siphons related to resource places while the method proposed in [20] computes all the minimal siphons. In this sense, no conclusion about which method is better in general can be offered since we are just trying to measure which one is more adequate for our purposes. B. Measuring the Proposed Parallel Implementation The parallel version has been implemented using 12 Pentium III (1 GHz) computers with 256 MB of RAM each. They are in a switched network connected via Ethernet. The operating system is Linux (kernel version 2.4.9). To implement the parallel version, we used mpich 1.2.4 [25], a freely available implementation of the message passing interface (MPI, [26]). MPI provides a standard set of definitions that allow parallel programs to be implemented under the distributed memory paradigm, together with a mechanism to transfer data between processors; this mechanism is based on the use of message passing; each processor is given the ability to send and receive copies of data to and from other processors. The run-time cost has been approximated by the run-time cost of the first processor that is the first to start the computations and the last one to terminate. To do that, a clock is reset when it starts working (sentence Start_Clock in the algorithm) and stopped when it terminates (sentence Stop_Clock in the algorithm). No more processors than resources are used in any case since we have not investigated other ways to further divide the needed computations. We were interested in measuring the relative speed-up as a way to know the effect of adding parallelism to the application. The relative speed-up is a standard measure for parallel

Fig. 4.

Speed-up for the philosopher’s family.

solutions defined as the quotient of the time spent in solving the problem with several processors and the time spent in solving the same problem using the same method within just one processor (see, for example, [27]). The numerical results obtained in the experiments are shown in Table II. The structure of such a table is as follows. The first column shows the problem identifier (as in the previous experiment). The second column shows the parameters defining the size of the problem as explained before. This value is followed by a tuple that corresponds to the number of places of the net, the number of resources, the number of arcs, and the number of transitions. The third and following columns show the time of our parallel implementation of Boer and Murata’s method solved with 1, 2, 4, . . ., 12 processors. In parentheses, the relative speed-up is shown. Empty cells represent cases where the number of processors is bigger than the number of resources. The proposed approach is not able to take advantage of the processors that exceed the number of resources. Following the results obtained in this experiment, we can conclude that parallelization clearly improves the computations: Important reductions are obtained when the number of processors grows. Anyway, it is important to notice that no clear conclusion about the optimal number of processors can be established since the growing is different for the proposed families. Notice that the results are significant when the net is big enough. For small-sized nets, no significant results can be obtained. They are graphically depicted in Figs. 4–6. Fig. 4 shows the program behavior when applied to the philosopher’s problem. The high homogeneity of the models helps to reach a good speed-up. Fig. 5 shows the growing of the relative speed-up for the FMSLD family. Finally, Fig. 6 shows the behavior of the method for the FMSAD family. Let us concentrate on some irregularities appearing in the behavior of the program, and let us explain our interpretation. If we take a look at the chart in Fig. 4, it can be seen that for the problem of size 18, a very small improvement is obtained

TRICAS AND EZPELETA: COMPUTING MINIMAL SIPHONS IN PETRI NET MODELS OF RAS: PARALLEL SOLUTION

537

TABLE IV DISTRIBUTION OF RESOURCES AMONG SIX PROCESSORS FOR THE P HIL -18 P ROBLEM

TABLE V POSSIBLE DISTRIBUTION OF RESOURCES AMONG FOUR PROCESSORS FOR THE FMSAD-8 PROBLEM

Fig. 5.

Speed-up for the FMSLD family. TABLE VI POSSIBLE DISTRIBUTION OF RESOURCES AMONG SIX PROCESSORS FOR THE FMSAD-8 PROBLEM

Fig. 6.

Speed-up for the FMSAD family.

TABLE III DISTRIBUTION OF RESOURCES AMONG EIGHT PROCESSORS FOR THE P HIL -18 P ROBLEM

when using eight processors compared to the time needed when using six processors, while the improvement when using ten processors follows the expected pattern. The same phenomenon can be observed in Fig. 6 when using six processors (see the curves corresponding to problem sizes 5 to 8). In both cases, and for different reasons, we are facing a problem of load balance. Let us concentrate on the first case. Table III shows how resources are distributed among eight processors in the philosopher’s problem. It is clear that when eight processors are used, processors P1 and P2 have to do some more work than the rest (approximately as much as in the case of six processors, see Table IV). Therefore, little improvement can be obtained. In this case, and due to the regular form of the

philosopher’s model, the method presented here can obtain little improvement for the case of eight processors (since at least one processor will have to deal with three resources). The second case is a bit different. As shown in Fig. 6, there is a very irregular behavior when using six processors. One interpretation is the following: In this family of problems, two “types” of resources can be identified (as we can easily see in Figs. 2 and 3): resources used at the beginning (or at the end) of the processing (R1_1, R1_N, R2_1, and R2_N), which can be named “external resources,” and the rest, which can be named “internal resources.” The computation of place siphons corresponding to internal resources seems to be more expensive than in the case of external resources. Tables V and VI show the distribution of internal and external resources for the FMSAD-8 problem among processors when using four and six processors, respectively (boldface items correspond to internal resources). It is easy to see that adding two processors does not help to reduce the computation time since there is still a processor that needs to compute siphons for two “external resources” and two “internal resources” (processor P4, in this case), becoming a bottleneck. However, it is not possible to know, before the computation, how “bad” or how “good” a given resource will behave when computing siphons, which makes not possible to guess the best way to distribute resources among processors. This second case has shown one of the weaknesses of the method: The way resources are involved in siphons and how they are distributed among processors strongly influence the performances of the implementation. In Fig. 7, a comparison for the case of size 6 with two different distributions of resources among processors can be seen (the previous one and another one, with a more fair balance).

538

IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS—PART A: SYSTEMS AND HUMANS, VOL. 36, NO. 3, MAY 2006

Fig. 7. Speed-up comparison for the FMSAD of size 6.

V. C ONCLUSION Some deadlock prevention control policies need the set of minimal siphons to be computed. It is well known that this is a very hard task because the number of such components can be very big (even exponential in some cases). However, the special syntactic characteristics of the Petri net models corresponding to resource allocation systems (RAS) and, specifically, to S 4 P R systems, made the authors to wonder whether specific adaptations of methods for siphon computation could be possible. This paper has concentrated on the study of such a question. For that, a first analysis of some known methods for the computation of siphons is presented. The aim of this analysis was to determine which methods could take advantage of the specific syntactical structure of S 4 P R nets and also of the fact that the siphons related to deadlock problems must contain at least one resource place. As a conclusion of this first analysis and also of some empirical experiments, the method proposed in [13] has been selected. As a second step, and taking advantage of both the structure of S 4 P R nets and the way siphons are computed by the selected method, a parallel solution has been proposed. In order to measure the improvements, some experiments have been carried out, comparing the time required for the computations of siphons in families of Petri nets. As a result of such experiments, the authors can conclude that the proposed parallel algorithm is of great interest since the speed-up charts show that the use of a set of processors (even in the case of them being connected using a network of computers instead of a multiprocessor architecture) gives promising results. Another conclusion is that, as it was predictable, the Petri net structure is very important when an adequate load balance is needed. However, the authors can provide little insight of how resources should be distributed among processors in order to obtain an adequate load balance. R EFERENCES [1] M. Cantamessa, “The manufacturing system as a complex artifact,” Robot. Comput.-Integr. Manuf., vol. 14, no. 5–6, pp. 403–414, 1998.

[2] M. Silva and E. Teruel, “Petri nets for the design and operation of manufacturing systems,” Eur. J. Control, vol. 3, no. 3, pp. 182–199, 1997. [3] J. L. Peterson and A. Silberschatz, Operating System Concepts, 2nd ed. Reading, MA: Addison-Wesley, 1985. [4] T. Murata, “Petri nets: Properties, analysis and applications,” Proc. IEEE, vol. 77, no. 4, pp. 541–580, Apr. 1989. [5] J. Ezpeleta, J. Colom, and J. Martínez, “A Petri net based deadlock prevention policy for flexible manufacturing systems,” IEEE Trans. Robot. Autom., vol. 11, no. 2, pp. 173–184, Apr. 1995. [6] K. Barkaoui and I. B. Abdallah, “A deadlock prevention method for a class of FMS,” in Proc. IEEE Int. Conf. Systems, Man, Cybernetics. Vancouver, BC, Canada: IEEE Systems, Man, and Cybernetics Society, Oct. 1995, pp. 4119–4124. [7] F. Tricas, F. García-Vallés, J. Colom, and J. Ezpeleta, “An iterative method for deadlock prevention in FMS,” in Discrete Event Systems: Analysis Control. Proc. Workshop Discrete Event Systems, R. Boel and G. Stremersch, Eds., Ghent, Belgium: Kluwer, Aug. 2000, pp. 139–148. [8] F. Tricas, J. Colom, and J. Ezpeleta, “A solution to the problem of deadlocks in concurrent systems using Petri nets and integer linear programming,” in Proc. 11th European Simulation Symp., G. Horton, D. Moller, and U. Rude, Eds., Erlangen, Germany: Society for Computer Simulation Int., Oct. 1999, pp. 542–546. [9] M. Yamauchi and T. Watanabe, “Algorithms for extracting minimal siphons containing specified places in a general Petri net,” IEICE Trans. Fundam., vol. E82-A, no. 11, pp. 2566–2575, Nov. 1999. [10] Y. Huang, M. D. Jeng, Z. Xie, and S. Chung, “Deadlock prevention policy based on Petri nets and siphons.,” Int. J. Prod. Res., vol. 39, no. 2, pp. 283–305, 2001. [11] M. V. Iordache, J. O. Moody, and P. Antsaklis, “Synthesis of deadlock prevention supervisors using Petri nets,” IEEE Trans. Robot. Autom., vol. 18, no. 1, pp. 59–68, Feb. 2002. [12] Z. Li and M. C. Zhou, “Elementary siphons of Petri nets and their applications to deadlock prevention in flexible manufacturing systems,” IEEE Trans. Syst., Man, Cybern. A, vol. 34, no. 2, pp. 38–51, Jan. 2004. [13] E. R. Boer and T. Murata, “Generating basis siphons and traps of Petri nets using the sign incidence matrix,” IEEE Trans. Circuits Syst. I, Fundam. Theory Appl., vol. 41, no. 4, pp. 266–271, Apr. 1994. [14] P. Kemper and F. Bause, “An efficient polynomial-time algorithm to decide liveness and boundedness of free choice nets,” in Proc. 13th Int. Conf. Application Theory Petri Nets, K. Jensen, Ed., Sheffield, U.K.: Springer-Verlag, Jun. 1992, Lecture Notes in Computer Science, vol. 616, pp. 263–278. [15] M. Yamauchi and T. Watanabe, “Time complexity analysis of the minimal siphon extraction problem of Petri nets,” IEICE Trans. Fundam., vol. E82-A, no. 11, pp. 2558–2565, Nov. 1999. [16] F. Tricas, “Deadlock analysis, prevention and avoidance in sequential resource allocation systems,” Ph.D. dissertation, Depto. Informática e Ingeniería de Sistemas, Universidad de Zaragoza, Zaragoza, Spain, May 2003. [17] F. Tricas and J. Ezpeleta, “Some results on siphon computation for deadlock prevention in resource allocation systems modeled with Petri nets,” in Proc. 9th IEEE Int. Conf. Emerging Technologies Factory Automation (ETFA). Lisbon, Portugal: IEEE, Sep. 2003, pp. 322–329. [18] K. Barkaoui, A. Chaoui, and B. Zouari, “Supervisory control of discrete event systems based on structure of Petri nets,” in Proc. IEEE Int. Conf. Systems, Man, Cybernetics (SMC). Orlando, FL: IEEE, Oct. 1997, pp. 3750–3755. [19] J. Park and S. Reveliotis, “Policy mixture: A novel approach for enhancing the operational flexibility of resource allocation systems with alternate routings,” IEEE Trans. Robot. Autom., vol. 18, no. 4, pp. 616–620, Aug. 2002. [20] K. Lautenbach, “Linear algebraic calculation of deadlocks and traps,” in Concurrency and Nets, K. Voss, H. J. Genrich, and G. Rozemburg, Eds., Berlin, Germany: Springer-Verlag, 1987, pp. 315–336. [21] J. Ezpeleta, J. Couvreur, and M. Silva, “A new technique for finding a generating family of siphons, traps and st-components: Application to colored Petri nets,” in Advances in Petri Nets, G. Rozenberg, Ed., Aarhus, Denmark: Springer-Verlag, 1993, Lecture Notes on Computer Science, vol. 674, pp. 126–147. [22] T. Watanabe, M. Yamauchi, and S. Tanimoto, “Extracting siphons containing specified set of places in Petri net,” in Proc. IEEE Int. Conf. Systems, Man, Cybernetics (SMC), San Diego, CA, Oct. 11–14, 1998, pp. 142–147. [23] A. Wegrzyn, A. Karatkevich, and J. Bieganowski, “Detection of deadlocks and traps in petri nets by means of Thelen’s prime implicant method,” Appl. Math. Comput. Sci., vol. 14, no. 1, pp. 113–121, 2004.

TRICAS AND EZPELETA: COMPUTING MINIMAL SIPHONS IN PETRI NET MODELS OF RAS: PARALLEL SOLUTION

[24] M. Jeng, M. Peng, and Y. Huang, “An algorithm for calculating minimal siphons and traps of Petri nets,” Int. J. Intell. Control Syst., vol. 3, no. 3, pp. 263–275, 1999. [25] W. D. Gropp and E. Lusk, User’s Guide for mpich, A Portable Implementation of MPI. Argonne, IL: Mathematics and Computer Science Division, Argonne Nat. Lab., 1996. ANL-96/6. [26] M. P. I. Forum, “MPI: A message-passing interface standard,” Int. J. Supercomput. Appl., vol. 8, no. 3/4, pp. 157–416, 1994. [27] J. Kuck, The Structure of Computers and Computations, vol. l. New York: Wiley, 1978.

Fernando Tricas received the M.S. degree in mathematics and the Ph.D. degree in computer science from the University of Zaragoza, Zaragoza, Spain, in 1990 and 2003, respectively. He is currently an Assistant Professor in the Department of Computer Science and Systems Engineering in the same university, where he conducts courses on programming, algorithms, and secure programming. His current research interests focus on two main aspects. One is on the problem of modeling, analysis, and control synthesis of concurrent systems where a set of qualitative behavioral properties must be ensured (mainly, liveness and deadlock freeness), and the other is on some social networks research on weblogs.

539

Joaquín Ezpeleta received the M.S. degree in mathematics and the Ph.D. degree in computer science from the University of Zaragoza, Zaragoza, Spain, in 1985 and 1993, respectively. He is currently an Associate Professor in the Department of Computer Science and Systems Engineering in the same university, where he conducts courses on concurrent programming, compiler building techniques, and Web-service-oriented architectures. His current research interests focus on two main aspects. One is on the problem of modeling, analysis, and control synthesis of concurrent systems where a set of qualitative behavioral properties must be ensured (mainly, liveness and deadlock freeness), and the other is on the application of formal modeling and analysis techniques to help in the development of distributed systems on the domain of Web services.