Prévia do material em texto
Ministry of Higher Education and
Scientific Research
University of Baghdad
College of Engineering
The Implementation of
Petri Net to the Modeling,
Analysis, and Control
A thesis submitted
to the College of Engineering University of Baghdad
in partial fulfillment of the requirements for the degree of
Master of Science in Control and Computers Engineering
By
Hayder Hikmat Salman
Supervised By
Prof. Saleem M. R. Taha
(2008)
I certify that this thesis entitled "The Implementation of
Petri Net to the Modeling, Analysis, and Control "was
prepared under my supervision in the Electrical Engineering
Department at the University of Baghdad in partial fulfillment
of the requirements for the degree of Master of Science in
Electrical Engineering.
Prof. Saleem M. R. Taha
Baghdad University
College of Engineering
Electrical Department
Signature:
Name: Prof. Saleem M. R. Taha
Date: / /2008
EXAMINING COMMITTEE'S CERTIFICATION
We certify that we have read this thesis titled "The Implementation of
Petri Net to the Modeling, Analysis, and Control", and as an examining
committee, examined the student Hayder Hikmet Salman in its content and in
what is connected with it, and that in our opinion it is adequate with VERY GOOD
standing as a thesis for the Degree of master of science in Control and
Computer Engineering.
Signature:
Name: Prof. Dr. Ghassan H. Majeed
(Chairman)
Date: / /2008
Signature: Signature:
Name: Name:
Prof. Dr. Raad S. Fyath Assist. Prof. Sulaiman M. Abbas
(Member) (Member)
Date: / /2008 Date: / /2008
Signature:
Name: Prof. Saleem M. R. Taha
(Supervisor)
Date: / /2008
Approved by the University of Baghdad, College of Engineering Council.
Signature:
Name: Prof. Dr. Ali S. Al-Kiliddar
(Dean of Collage of Engineering)
Date: / /2008
To the candle of way,
my dear father,
because he taught me
the pride of being a mild man.
To the rose of life,
my groovy mother,
for her encouraging love to me.
I would like to express my sincere appreciation to my research
supervisor, (Prof. Saleem M. R. Taha), for given me the major steps
to go on to explore the subject, and shearing with me the ideas in
my Thesis.
Also I wish to thank the staff of Electrical Engineering
department at the Baghdad University for their help.
I would like to say (thank you) to my faithful friends for
supporting and giving me advises.
Hayder H.
Acknowledgments
I
The present work deals with the implementation of Petri nets in
modeling, analysis and control. Three Petri net types have been discussed
namely: Time Petri Net, Supervisor Petri Net and Neural Petri Net.
To investigate the performance of types, three different fields have been
selected for implementation. The first implementation is the control of Traffic
light with Intersection using Timed Transition Petri Net.
The second implementation is the using the supervisor Petri Net for
Rapid Thermal Process in semiconductor device.
The third field of implementation is the Fault diagnosis of electrical
control system by using Neural Petri Net.
The three implementations explain the advantages and disadvantages of
each type of Petri Net and can be used as a guide for different future studies.
Abstract
II
No. of Figure The Title No. of Page
2.1 Marked Petri net. 10
2.2 A marked Petri net. 13
2.3 Petri net after the firing. 14
2.4 Modeling of Continuous arrival. 15
2.5 The modeling of Shipping. 15
2.6 Modeling a constant precondition. 16
2.7 Modeling concurrent events. 17
2.8 Modeling events in a conflict situation. 18
2.9 Symmetric and asymmetric confusion 18
2.10 Petri net with reachability graph 20
2.11 The producer/consumer problem with unbounded
buffer with reachability tree.
21
2.12 Two different Petri net. 23
2.13 The Coverability graph for two nets shown in
figure (2.12a) and (2.12b).
23
2.14 Petri net for example (2.2). 26
2.15 Six transformations preserving liveness, safeness,
and boundedness.
28
2.16 Petri net the example (2.3). 35
2.17 A safe Petri net. 35
2.18 A siphon in Petri net. 36
2.19 A trap in Petri net. 37
2.20 Subclasses of Petri nets and their Venn diagram. 39
LIST OF FIGURES
III
No. of Figure The Title No. of Page
3.1 Classification of Petri net models. 40
3.2 Timed place PN. 43
3.3 Timed token in PN. 43
3.4 Timed arcs in PN. 44
3.5 Timed transitions PN. 45
3.6 Conflicts in PN. 46
3.7 Defining the controllability and observability of
transitions.
54
3.8 (a) Petri net; (b) closed loop. 55
3.9 (a) ANP model, and (b) two-layer neural Petri
net.
56
3.10 NPN for 4-bit parity problem. 58
4.1 Modeling of Traffic signal. 61
4.2 Modeling in two Traffic signals. 62
4.3 Modeling for synchronization for two traffic
lights.
63
4.4 Phase plans for pretimed and traffic- actuated
control.
65
4.5 Work sheet of intersection. 67
4.6 Petri net modeling of intersection. 68
4.7 Marking of Intersection model. 78
LIST OF FIGURES
IV
No. of Figure The Title No. of Page
4.8 Timed Transition of model in figure (4.6). 78
4.9 Concepts of RTP. 81
4.10 Schematic diagram of the RTP system. 82
4.11 The PN model for control of the RTP system. 87
4.12 Description the supervisory Petri net to RTP. 89
4.13 Marking of closed loop control in the figure
(4.12).
91
4.14 Electric Control System for Power Supply. 94
4.15 The NPN model for Fault Diagnosis of Electric
Control.
94
4.16 RMS versus iteration of training. 100
LIST OF FIGURES
V
AC Asymmetric Choice Net.
ANN Artificial Neural Network.
ANP Adaptive Neural Processor.
APC Advanced Process Control.
CVD Chemical Vapor Diffusion.
DES Discrete Event System.
EFC Extended Free-Choice.
FC Free-Choice.
MG the marked graphs.
NPN Neural Petri Net.
RTA Rapid Thermal Annealing.
RTCVD Rapid Thermal Chemical Vapor Deposition.
RTO Rapid Thermal Oxidation.
RTN Rapid Thermal Nitration.
RTP Rapid Thermal Processing.
RMS Root Mean Square Error.
SPN Stochastic Petri Net
SM State Machine.
SWP Single Wafer Processing.
TMG Timed Marked Graph.
TPPN Timed Place Petri Net.
LIST OF ABBREVIATIONS
VI
TTPN Timed Transition Petri Net.
TPN Time Petri Net.LIST OF ABBREVIATIONS
VII
A the incidence matrix of a Petri net
AT the transpose of the matrix A
aij the entries of the incidence matrix.
aij
+ the number of arcs connecting transition to place.
aij
− the number of arcs connecting transition from place.
b an integer column vector.
Bf the matrix corresponds to the fundamental circuit matrix.
𝐶 the set of states of activation for the hidden and output layer places.
Di the total time delay in the section (3.3.3).
D using the incidence matrix of a Petri net in section (3.5).
D+ using the input matrix (taken with respect to incoming transition
arcs) in section (3.5).
D− using the output matrix (taken with respect to outgoing transition
arcs) in section (3.5).
𝐸 the pattern of connectivity among places and transitions
F the set of transition arcs of a Petri net.
G the plant model in the section (3.5).
Gp Coverability graph.
LIST OF SYMBOLS
VIII
H the specification model in the section (3.5).
I the input function in the section (3.5).
Iμ the identity matrix of order μ.
K function represent capacity of places.
Lμ the linear marking constraints.
M the marking function.
m the number of places.
M
t
M′ M enables the transition t and M′ is reached by firing t.
M0 the initial marking in Petri net.
M0
′ initial marking after transformations in the section (2.4).
Md Reachable from M0.
M pi number of token in place.
M′ pi old marking of place.
M′′ pi new marking of place.
N the Petri net from places, transitions, arcs, and wieghts of arcs
only.
ℕ set of natural numbers.
n the number of transition.
N′ structure Petri net after transformations in the section (2.4).
LIST OF SYMBOLS
IX
ℕ+ set of positive integers; ℕ+ = ℕ\ 0 .
ℕP set of P -tuples consisting of P natural numbers
Ni the total number of tokens in the cycle in the section (3.3.3).
nC the number of constraints.
O the output function in the section (3.5).
P the places in Petri net.
P
° the set of input transitions of places.
p
° the set of output transitions of places.
PCA Petri net with capacity of places.
PN Petri net (N) with initial marking.
ℝ the set of Real numbers.
ℝ+ the set of positive real numbers.
R(M0) Reachability set of Petri nets.
r the rank of matrix.
S
∘ set of predecessors of node (place or transition) S of a Petri net
S
∘ set of successors of node (place or transition) S of a Petri net
SG the plant and specification models in the section (3.5).
LIST OF SYMBOLS
X
T the transitions in Petri net.
t
° the set of input places of transition.
t
° the set of output places of transition.
Tuc the uncontrollable transition.
Tu0 the unobservable transition.
𝑣 weight between hidden layer and output layer in section (3.7).
W the weight function in Petri net.
x firing count vector in the section (2.4).
y p the pth entry of y.
μ firing sequence in the section (2.4).
μ the cycle time in the section (3.5.5).
∆M Md − M0
∆t sequences of firing transition.
X the number of elements of the set X.
𝜃𝑖 threshold value.
LIST OF SYMBOLS
XI
π the place delay function in the section (3.5.5).
τ the transition firing time function in the section (3.5.5).
|| parallel to.
∃ there exists.
∀ for all.
< less than.
≤ less than or equal to.
∈ element of.
⊆ A ⊆ B if A is a proper subset of the set B or if A = B.
LIST OF SYMBOLS
IX
Abstract. I
List of Figures. II
List of Abbreviations. V
List of Symbols. VII
Chapter One. Introduction.
1.1 History of Petri nets. 1
1.2 Literature Survey. 3
1.3 The Work objective. 7
1.4 Thesis Outline. 7
Chapter Two. Concepts of Petri Nets.
2.1 Introduction. 9
2.2 Description of Petri nets. 9
2.3 Firing Rules and Transition Enabling. 12
2.3.1 Special Cases. 14
2.3.1.1 Source and Sink Transitions. 14
2.3.1.2 Self Loop. 15
2.3.1.3 Capacity of Places. 16
2.3.1.4 Parallelism. 17
2.3.1.5 Inhibitor Arcs. 19
2.4 Analysis Techniques (methods) of Petri Nets. 19
2.4.1 The Coverability (Reachability) Tree. 19
2.4.1.1 Application of the Coverability. 22
2.4.1.2 Disadvantage. 22
2.4.2 The Incidence matrix and State Equation. 23
2.4.3 Simple Reduction Rules or Decomposition techniques. 27
2.5 Invariant Analysis. 28
2.6 Properties of Petri Nets. 30
2.6.1 Behavioral Properties. 30
2.6.2 Structural Properties. 32
2.7 Petri Net Classes. 37
Chapter Three. Types of Petri Nets.
3.1 Introduction. 40
3.2 Ordinary, Abbreviations, and Extensions Petri Nets. 41
LIST OF CONTENTS
X
3.3 Timed Petri net. 42
3.3.1 Timing Specifications. 42
3.3.2Timed Petri nets. 46
3.3.3 Deterministic Timed Petri Nets. 47
3.4 Stochastic Petri Net. 49
3.5 The supervision of Petri nets. 49
3.6 Supervision Based on place Invariants. 51
3.6.1 Fully Controllable and Observable Petri Nets. 52
3.6.2 Partially Controllable and Observable Petri Nets. 53
3.7 Neural Petri Net. 55
Chapter Four. Application of Petri Nets.
4.1 Introduction. 59
4.2 modeling traffic Lights and Intersection. 60
4.2.1Modeling Traffic. 60
4.2.1.1 Macroscopic Models. 60
4.2.1.2 Microscopic Models. 60
4.2.2 Modeling of Traffic Signal. 61
4.2.3 Modeling of Intersection. 63
4.2.4 Signal Timing Design. 63
4.2.5 Objective of signal timing. 65
4.2.6 Modeling Traffic signals and Intersection. 66
4.2.7 Controlling Traffic Lights in Intersection. 73
4.2.8 Analysis of Modeling. 77
4.2.9 Petri Net Model versus Other Models. 79
4.3 Rapid Thermal Processing. 80
4.3.1 System Description. 82
4.3.2 Modeling of Controller. 84
4.3.3 The Supervisory Controller of RTP. 88
4.4 Fault Diagnosis Application. 92
4.4.1Modeling of Fault Diagnosis. 92
4.4.2 Description of Fault Diagnosis Model. 95
4.4.3 Neural Petri Net versus Other Petri Net Models. 100
Chapter Five. Conclusions and Future Work.
5.1 Conclusions. 101
5.2 Future Work. 104
XI
References.
References. 106
Appendices.
Appendix (A): Functions of Timed Transition Petri Net.
Appendix (B): Functions for Supervision Petri Net.
Appendix (C): Results Training of Neural Petri Net.
Chapter One
Introduction
Chapter One Introduction
1
1.1 History of Petri Nets.
A system can often be broken down into subsystems. If it is required to
describe activities of subsystems and their mutual relations, a Petri net removes
that inadequacy. Petri nets are named after German mathematician C.A. Petri
who first proposed a model of that kind [1]. Historically speaking, the concept
of the Petri net has its origin in (Carl Adam Petri's) dissertation, submitted in
1962 to the faculty of mathematics and physics at the technical universityof
Darmstadt, West Germany. The dissertation was prepared while C.A. Petri
worked as a scientist at the University of Bonn. Petri's work, came to the
attention of A.W. Holt, who later led the information system theory project of
applied data research, lnc., in the United States. The early developments and
applications of Petri nets (or their predecessor) are found in the reports
associated with this project, and in the record of the 1970 project Middle
Atlantic Conference (MAC) Conference on concurrent systems and parallel
computation. From 1970 to 1975, the computation structure group at MIT was
most active in conducting Petri-net related research, and produced many reports
and theses on Petri nets. In July 1975, there was a conference on Petri Nets and
related methods at Massachusetts Institute of Technology (MIT) but no
conference proceedings were published. Since the late-1970's, the Europeans
have been very active in organizing workshops and publishing conference
proceedings on Petri nets. In October 1979, about 135 researchers mostly from
European countries assembled in Hamburg, West Germany, for a two-week
advanced course on general net theory of processes and systems. The 17
lectures given in this course were published in its proceedings. The second
advanced course was held in Bad Honnef, west Germany, in September 1986.
The proceedings of this course contain 34 articles, including two recent articles
by C.A. Petri; one is concerned with his axioms of concurrency theory and the
other with his suggestions for further research. The first European workshop on
Chapter One Introduction
2
applications and theory of Petri Nets was held in 1980 at Strasbourg, France.
Since then, this series of workshops has been held every year at different
locations in Europe: 1981, Bad Honnef, west German; 1982, varenna, Italy;
1983, Toulouse France; 1984, Aarhus, Denmark; 1985, espoo, Finland; 1986,
oxford, Great Britain; 1987, Zaragoza, Spain; 1988, Venice, Italy and 1989, Bad
Honnef, west Germany. The distribution of the proceedings of these workshops
is limited to mostly the workshop participants. However, selected papers from
these workshops and other articles have been published by Springer-Verlag as
"Advanced in Petri Nets". The 1987 volume contains the most comprehensive
bibliography of Petri nets listing 2074 entries published from 1962 to early
1987. The "recent publications" section of Petri Net Newsletter lists short
abstracts of recent publications three times a year, and is a good source of
information about the most recent Petri net literatures. In July 1985, another
series of international workshops was initialed. This series places emphasis on
timed and stochastic nets and their applications to performance evaluation. The
first international workshop on timed Petri nets was held in Torino, Italy, in July
1985, the second was held in Madison, Wisconsin, in August 1987; the third
held in Kyoto, Japan, in December 1989; and the fourth in Australia in 1991[2].
Further development was facilitated by the fact that Petri nets can be used to
model properties such as process synchronization, asynchronous events,
concurrent operations, and conflicts or resource sharing. These properties
characterize discrete- event systems whose examples include industrial
automated systems, communication systems, and computer-based systems [3].
In addition, Petri net has an appealing graphical representation with a
powerful algebraic formulation for supervisory control design [4].
Chapter One Introduction
3
1.2 Literature Survey.
In the following presents a survey of recent researches in Petri net
applications.
A paper presents a Petri net based building automation system and
associated monitoring graphical user application [5]. The system’s model
is built upon each use case and its translation into a state diagram or Petri
net model. Afterwards, the set of partial models is combined through a
composition operation, leading to the construction of a Petri net based
behavioral model for the whole system. The proposal exploits the
association between key characteristics of the Petri net model and key
graphical characteristics presented in the systems synoptic. In this sense,
execution of the Petri net model will produce an implicit update of the
system's synoptic.
A paper deals with Network control systems is presented in [6]. There is
presented problem of time delays in the network. Time delays, constant
or even random can destabilize the system. Initializations of individual
elements influence on quality of regulation. Paper describes advantages
and disadvantages of different initializations and there are represented
simulation results of with D-initialization.
A paper of "Modeling and analysis of fault-tolerant systems for
machining operations based on Petri nets" introduces a methodology for
modeling and analyzing fault-tolerant manufacturing systems that not
only optimizes normal productive processes, but also performs detection
and treatment of faults [7]. This approach is based on the hierarchical and
modular integration of Petri nets. The modularity provides the integration
of three types of processes: those representing the productive process,
fault detection, and fault treatment. The hierarchical aspect of the
approach allows us to consider processes on different levels of detail (i.e.,
Chapter One Introduction
4
factory, manufacturing cell, or machine). Case studies considering
detection and treatment of faults are presented, and a simulation tool is
applied to verify the models.
Performance evaluation is required at every stage in the life cycle of a
network protocol. Analytical modeling is the method of choice for fast
and cost effective evaluation of a network protocol. High-level
formalisms used for analytical modeling of network protocols is
Stochastic Petri nets (SPN's) is proposed [8]. Complexity of nowadays
network protocols, which results in the state space explosion of the
underlying Markov chain (MC) model, has hindered the wide use of
SPN's in the analysis of these protocols. This paper presents a new
decomposition technique called behavior and delay equivalent block
(BDEB) technique. This technique overcomes most of drawbacks of other
techniques proposed in the literature. It introduces a new aggregation
method that depends philosophy different from other techniques using the
same criteria.
A method, called "stretching", is introduced to represent timed Petri nets
[9]. Using this method, a new Petri net, called "stretched Petri net",
which has only unit delays, is obtained to represent a timed-transition
Petri net. Using this net, the state of the original timed Petri net can be
represented easily. This representation also makes it easy to design a
supervisory controller for a timed Petri net for any purpose. In this paper,
supervisory controller design to avoid deadlock is considered in
particular. Using this method, a controller is first designed for the
stretched Petri net. Then, using this controller, a controller for the original
timed Petri net is obtained.
The timed neural Petri net concept combines the new orientation of the
neural net with the modeling capabilities of the Petri Net [10]. A big
advantage to the utilization of Petri nets for modeling (especially in the
Chapter One Introduction
5
neural cases) is the proper representation of concurrent or parallel events.
The neural Petri net concept extends the basic Petri net definition. Four
partsof [10] is divided: introduction to neuron concept, timed neural Petri
net (TNPN) development, analysis and example of the TNPN, and
conclusions.
An algorithm for the model based design of a distributed protocol for
fault detection and diagnosis for very large systems is proposed [11]. The
overall process is modeled as different Time Petri Net (TPN) models
(each one modeling a local process) that interact with each other via
guarded transitions that becomes enabled only when certain conditions
(expressed as predicates over the marking of some places) are satisfied
(the guard is true). In order to use this broad class of time discrete event
system (DES) models for fault detection and diagnosis the timing analysis
of the TPN models with guarded transitions is derived. The paper is also
extension of the modeling capability of the faults calling some transitions
faulty when operations they represent take more or less time than a
prescribed time interval corresponding to their normal execution. The
considering here that different local agents receive local observation as
well as messages from neighboring agents. Each agent estimates the state
of the part of the overall process for which it has modeled and from
which it observes events by reconciling observations with model based
predictions. The algorithms designing that using limited information
exchange between agents and that can quickly decide “questions” about
“whether and where a fault occurred?” and “whether or not some
components of the local processes have operated correctly?”. The
algorithms allow each local agent to generate a preliminary is derived
diagnosis prior to any communication and showing that after
communicating the agents designing recover the global diagnosis that a
Chapter One Introduction
6
centralized agent would have derived. The algorithms are component
oriented leading to efficiency in computation.
A supervisor synthesis technique for Petri net plants with uncontrollable
and unobservable transitions that enforces the conjunction of a set of
linear inequalities on the reachable markings of the plant is presented
[12]. The approach is based on the concept of Petri net place invariants.
Each step of the procedure is illustrated through a running example
involving the supervision of a robotic assembly cell. The controller is
described by an auxiliary Petri net connected to the plant’s transitions,
providing a unified Petri net model of the closed-loop system. The
synthesis technique is based on the concept of admissible constraints. An
inadmissible constraint cannot be directly enforced on a plant because of
the uncontrollability or unobservability of certain plant transitions.
Procedures are given for identifying all admissible linear constraints for a
plant with uncontrollable and unobservable transitions, as well as
methods for transforming inadmissible constraints into admissible ones.
When multiple transformations of this kind occur, a technique is
described for creating a modified Petri net controller that enforces the
union of all of these control laws. The method is practical and
computationally inexpensive in terms of size, design time, and
implementation complexity.
Traffic systems are discrete systems that can be heavily populated. One
way of overcoming the state explosion problem inherent to such heavily
populated discrete systems is to relax the discrete model. Continuous
Petri nets (PN) represent a relaxation of the original discrete Petri nets
that leads to a very compositional and efficient formalism to model traffic
behaviour in between intersections. The paper [13] introduces some new
features of continuous Petri nets that are useful in order to obtain realistic
but compact models for traffic systems. Combining these continuous PN
Chapter One Introduction
7
models with discrete PN models of traffic lights leads to a hybrid Petri
net model that is appropriate for predicting traffic behaviour, and for
designing traffic light controllers that minimize the total delay of the
vehicles in the system.
1.3 The Work Objective.
The objective of this work is to study the performance, advantages and
disadvantages of three types of Petri nets namely: Timed Petri net, Supervisor
Petri net and Neural Petri net. The implementation of these types shows how to
control the flow running in modeling, analysis and control.
1.4 Thesis Outline.
The rest of the thesis is organized as follows:
Chapter two: Concepts of Petri Nets; presents the modeling Petri nets
from formalisms, properties, and analysis methods, and how to control
this model with figures and equations about this.
Chapter three: Types and Application of Petri Nets; presents types of
Petri nets, definitions, and properties. The analyzing and applications of
these types are given, too.
Chapter four: Modeling of Petri Nets; presents three modeling of Petri
nets, the first modeling is of Traffic Lights and Intersection using Timed
Petri net; the second modeling is of Rapid Thermal Processing (RTP)
using Supervisor Petri net, with the results of analyzing of these models.
And three modeling is Fault diagnosis of electric control system by using
Neural Petri Net, with training and analyzing of the model.
Chapter five: Conclusions and Future works; gives conclusions of the
whole work and suggestions for future works.
Chapter One Introduction
8
Appendix (A): Functions of timed transition Petri net; shown in
MATLAB about modeling of Intersection, description of functions, and
result of analysis.
Appendix (B): Functions for supervision Petri net; written in MATLAB
about modeling of Rapid Thermal Process, description of functions, and
result of analysis with Reachability tree.
Appendix (C): Result training of Neural Petri Net: by using Qnet
program explained by figures result of training and comparison between
target and output of the model.
Chapter Two
Concepts of Petri
Nets
Chapter Two Concepts of Petri Nets
9
2.1 Introduction.
Petri nets are a graphical and mathematical modeling tool applicable to
many systems [2]. Petri nets provide a uniform environment for modeling,
formal analysis, and design of discrete event systems [3]. With Petri nets the
main idea is to represent states of subsystems separately. Then, the distributed
activities of a system can be represented very effectively [1]. Petri nets as
graphical tools provide a powerful communication medium between the user,
typically requirements engineer, and the customer. As a mathematical tool, a
Petri net model can be described by a set of linear algebraic equations, or other
mathematical models reflecting the behavior of the system [3]. Petri nets can be
used by both practitioners and theoreticians. Thus, they provide a powerful
medium of communication between them. Practitioners can learn from
theoreticians how to make their models more methodical, and theoreticians can
learn from practitioners how to make their models more realistic. However,
Petri nets incorporate the fundamental concepts which can be as a basis for
system designer and users who require new conceptual mechanisms and
theories to deal with their systems. One of the major advantages of using Petri
net models is that the same model is used for the analysis of behavioral
properties and performance evaluation, as well as for systematic construction of
discrete-event simulators and controllers [3], [14].The major weakness of Petri
nets is the complexity problems. Petri net based models tend to becometoo
large for analyses [2].
2.2 Description of Petri Nets.
A Petri net may be identified as a particular kind of bipartite directed
graph populated by three types of objects. These objects are places, transitions,
and directed arcs connecting places to transitions and transitions to places.
Pictorially, places are depicted by circles and transitions as bars or boxes [3]. It
Chapter Two Concepts of Petri Nets
10
is a bipartite graph in the sense that arcs cannot directly connect nodes of the
same type; rather, arcs connect place nodes to transition nodes and transition
nodes to place nodes [15]. An example of a Petri net is shown in figure (2.1),
this net consists of five places, represented by circles, four transitions, depicted
by bars, and directed arcs connecting places to transitions and transitions to
places. In this net, place 𝑝1 is an input place of transition 𝑡1. Places 𝑝2, and 𝑝3
are output places of transition 𝑡1 . In order to study dynamic behavior of the
modeled system, in terms of its states and their changes, each may potentially
hold either none or a positive number of tokens, pictured by small solid dots, as
shown in figure (2.1). For a place representing the availability of resources, the
number of tokens in this place indicates the number of available resources. At
any given time instance, the distribution of tokens on places, called Petri net
marking, defines the current state of the modeled system. A Petri net containing
tokens is called a marked Petri net [3].
Figure (2.1) Marked Petri net.
Chapter Two Concepts of Petri Nets
11
Formally, a Petri net can be defined as follows:
𝑃𝑁 = 𝑃, 𝑇, 𝐹, 𝑊, 𝑀0 ……………… . (2.1)
Where:
𝑃 = 𝑝1 , 𝑝2 , ………………… , 𝑝𝑚 𝑖𝑠 𝑎 𝑓𝑖𝑛𝑖𝑡𝑒 𝑠𝑒𝑡 𝑜𝑓 𝑝𝑙𝑎𝑐𝑒𝑠.
𝑇 = 𝑡 1, 𝑡2, ………………… , 𝑡𝑛 𝑖𝑠 𝑎 𝑓𝑖𝑛𝑖𝑡𝑒 𝑠𝑒𝑡 𝑜𝑓 𝑡𝑟𝑎𝑛𝑠𝑖𝑡𝑖𝑜𝑛𝑠.
𝐹 ⊆ 𝑃 × 𝑇 ∪ 𝑇 × 𝑃 𝑖𝑠 𝑡𝑒 𝑠𝑒𝑡 𝑜𝑓 𝑎𝑟𝑐𝑠 𝑓𝑟𝑜𝑚 𝑝𝑙𝑎𝑐𝑒𝑠 𝑡𝑜 𝑡𝑟𝑎𝑛𝑠𝑖𝑡𝑖𝑜𝑛𝑠
𝑎𝑛𝑑 𝑓𝑟𝑜𝑚 𝑡𝑟𝑎𝑛𝑠𝑖𝑡𝑖𝑜𝑛𝑠 𝑡𝑜 𝑝𝑙𝑎𝑐𝑒𝑠 𝑖𝑛 𝑡𝑒 𝑔𝑟𝑎𝑝.
Where ⊆ is binary relation (subset) between two sets.
𝑊 ∶ 𝐹 ⟶ 1,2,3, ………… . . 𝑖𝑠 𝑎 𝑤𝑖𝑒𝑔𝑡 𝑓𝑢𝑛𝑐𝑡𝑖𝑜𝑛 𝑜𝑛 𝑡𝑒 𝑎𝑟𝑐𝑠.
𝑀0 ∶ 𝑃 ⟶ 0 , 1,2,3, ……… . . . 𝑖𝑠 𝑡𝑒 𝑖𝑛𝑖𝑡𝑖𝑎𝑙 𝑚𝑎𝑟𝑘𝑖𝑛𝑔.
𝑃 ∩ 𝑇 = ∅ 𝑎𝑛𝑑 𝑃 ∪ 𝑇 ≠ ∅
Sets of input and output transitions of place 𝑃𝑖:
𝑃
° = 𝑡𝑗 ∈ 𝑇 ∶ (𝑡𝑗 , 𝑝𝑖) ∈ 𝐹 .
𝑝
° = 𝑡𝑗 ∈ 𝑇 ∶ (𝑝𝑖 , 𝑡𝑗 ) ∈ 𝐹 [16].
The set of input (output) places of transition 𝑡𝑗 :
𝑡
° = 𝐼 𝑡𝑗 = 𝑝𝑖 ∈ 𝑃: (𝑝𝑖 , 𝑡𝑗 ) ∈ 𝐹 .
𝑡
° = 𝑂 𝑡𝑗 = 𝑝𝑖 ∈ 𝑃: 𝑡𝑗 , 𝑝𝑖 ∈ 𝐹 [2], [3], [5].
A net is said to be connected (strongly connected), if its graph is connected
[16].The marking function gives the distribution of tokens in a given net state:
𝑀: 𝑃 ⟶ ℕ.
Chapter Two Concepts of Petri Nets
12
A Petri net with a given initial marking is denoted by𝑃𝑁 = 𝑁 , 𝑀∘ , note
that a Petri net is said to be ordinary if all its arc weights are equal to 1 [15].
2.3 Firing Rules and Transition Enabling.
By changing distribution of tokens on places, which may reflect the
occurrence of events or execution of operations, for instance, one can study
dynamic behavior of the modeled system. The following rules are used to
govern the flow of tokens:
1. Enabling Rule: A transition 𝑡 is said to be enabled if:
𝑀 𝑝𝑖 ≥ 𝑤 𝑝𝑖 , 𝑡𝑗 𝑓𝑜𝑟 𝑎𝑙𝑙 𝑝𝑖 ∈ 𝑃 ………… . . (2.2)
Each input place 𝑝 𝑜𝑓 𝑡 contains at least the number of tokens equal to
the weight of the directed arc connecting 𝑝 𝑡𝑜 𝑡 [3].
2. Firing Rule:
a. An enable transition may or may not fire depending on whether or
not the event modeled by the transition actually takes place in the
real system.
b. At firing of transition 𝑡𝑗 the value of the marking function of a place
is decreased by the weight of the arc connecting the given place to
transition 𝑡𝑗 , and is increased by the weight of the arc from transition
𝑡𝑗 to the given place:
𝑀′′ 𝑝𝑖 = 𝑀
′ 𝑝𝑖 − 𝑤 𝑝𝑖 , 𝑡𝑗 + 𝑤 𝑡𝑗 , 𝑝𝑖 𝑓𝑜𝑟 ∀ 𝑝𝑖 ∈ 𝑃 ………… (2.3)
Can be generalized the increases and decreases for all places in the
net. These operations have no effect on the marking value if there is
no logical relation between the given places and transition so this
generalization enables a simpler treatment of markings [15], [2].
Chapter Two Concepts of Petri Nets
13
Figure (2.2) A marked Petri net.
Example (2.1):
A Petri net graph in figure (2.2) with a marking:
𝑀0 𝑝1, 𝑝2 , 𝑝3 , 𝑝4, 𝑝5 = 1,0,1,0,2 .
In this initial state the transitions 𝑡1 , 𝑡3 is the only enabled transition. After its
firing transition 𝑡3, the new marking can be given by the following:
𝑀1 𝑝3 = 𝑀0 𝑝3 − 𝑤 𝑝3, 𝑡3 + 𝑤 𝑡3, 𝑝3 .
𝑀1 𝑝3 = 1 − 1 + 0 = 0.
𝑀1 𝑝4 = 𝑀0 𝑝4 − 𝑤 𝑝4, 𝑡3 + 𝑤 𝑡3, 𝑝4 .
𝑀1 𝑝4 = 0 − 0 + 1 = 1. As shown in figure (2.3a).
The new marking after firing transition 𝑡4 :
𝑀2 𝑝4 = 𝑀1 𝑝4 − 𝑤 𝑝4, 𝑡4 + 𝑤 𝑡4, 𝑝4 .
𝑀2 𝑝4 = 1 − 1 + 0 =0.
𝑀2 𝑝3 = 𝑀1 𝑝3 − 𝑤 𝑝3, 𝑡4 + 𝑤 𝑡4, 𝑝3 .
𝑀2 𝑝3 = 0 − 0 + 1 = 1.
𝑀2 𝑝2 = 𝑀1 𝑝2 − 𝑤 𝑝2, 𝑡4 + 𝑤 𝑡4, 𝑝2 .
𝑀2 𝑝2 = 0 − 0 + 1 = 1.As shown in figure (2.3b)
Chapter Two Concepts of Petri Nets
14
(a) After firing transition 𝑡3. (b) After firing transition 𝑡4.
Figure (2.3) Petri net after the firing.
2.3.1 Special Cases.
In this section some special cases of firing transitions and some
extensions to the original Petri net structure will be introduced.
2.3.1.1 Source and Sink Transitions.
A transition without any input place is called a Source transition. A Source
transition can fire in any net state. It is unconditionally enabled. A Source
transition represents an event or operation which occurs in every step. It can be
the continuous arrival of new parts on a conveyor belt as it can be seen in figure
(2.4) [15].
Chapter Two Concepts of Petri Nets
15
Figure (2.4) Modeling of continuous arrival.
A transition without any output place is called a Sink transition. If a Sink
transition fires, the amount of tokens decreases because this type of transition
consumes tokens without producing them [2], [15]. A Sink transition can
represent the shipping of the product into the depository or the intermediates
into another unit, as seen in figure (2.5) [15].
Figure (2.5) The modeling of shipping.
2.3.1.2 Self loop.
A pair of Petri nets contain a place is an input and output place of the same
transition then this place-transition pair called a Self-loop. If the weights are the
same in both cases then the firing of the transition does not change the marking
value on that place. It can be proved that if the place belonging to the loop can
Chapter Two Concepts of Petri Nets
16
not be found in the input set of any other transition and the transition has no
other input place then once the transition becomes enabled it remains enabled
throughout the execution of the net. A Petri net without Self-loop is said to be
pure. The Self-loop can refer to a continuous operation of a device, of a stirrer
which is a precondition of every process step in the figure (2.6) [15].
Figure (2.6) Modeling a constant precondition.
2.3.1.3 Capacityof Places.
In Petri net places can have an infinite number of tokens. There is no
constraint on the marking value of a place. A Petri net of this type is called an
Infinite Capacity net [15].The capacity restricts the number of tokens that can
be located in a place as the following formally states:
𝑃𝐶𝐴 = 𝑃𝑁, 𝐾 ……………… . 2.4 .
Where 𝑃𝑁 is standard Petri net in equation (2.1) and 𝐾 is the function
𝐾: 𝑃 → ℕ+ [1].
The modify rule for transitions to be enabled. A transition 𝑡𝑗 is said to be
enabled if there is at least 𝑤 𝑝𝑖 , 𝑡𝑗 token in each input place 𝑝𝑖 of 𝑡𝑗 :
𝑀′ 𝑝𝑖 ≥ 𝑤 𝑝𝑖 , 𝑡𝑗 𝑓𝑜𝑟 ∀ 𝑝𝑖 ∈ 𝑃 ……………… 2.5 .
Chapter Two Concepts of Petri Nets
17
And after the firing of 𝑡𝑗 the marking in its output places does not exceed
their upper limits:
𝑀′′ 𝑝𝑖 ≤ 𝐾 𝑝𝑖 𝑓𝑜𝑟 ∀ 𝑝𝑖 ∈ 𝑃 ……………………… . 2.6 .
This modified rule is called a Strict transition rule whereas the former rule
for an infinite capacity net is the (Weak) transition rule [15].
2.3.1.4 Parallelism.
One of the most important modeling features of Petri nets is the handling
of parallelism. In the real systems almost always contain serial and parallel
steps; this is even true for simpler discrete event systems. In parallel steps one
of the most important tasks is timing. There are two different types of
parallelism:
1. Concurrency: two (or more) events take place in parallel. They can occur
at the same time because they are causally independent as in figure (2.7).
Figure (2.7) Modeling concurrent events.
2. Conflict: the event or the transitions referring to them in the net as in
figure (2.8).
Chapter Two Concepts of Petri Nets
18
Figure (2.8) Modeling events in a conflict situation.
As it is seen in figure (2.8) transition 𝑡 𝑓𝑖𝑙𝑙 _𝑎 or transition 𝑡 𝑓𝑖𝑙𝑙 _𝑏 can
fire first but they cannot fire at the same time. The situation where
conflict and concurrency are mixed is called Confusion. There are two
types of confusion: symmetric and asymmetric confusion. In the case of
symmetric confusion in figure (2.9a) transition 𝑡1 and 𝑡3 are in
concurrency. Both transitions can fire independently of each other. On the
other fires neither of them remains enabled. Asymmetric confusion can
be seen in figure (2.9b). In this case transitions 𝑡1 and 𝑡2 are in
concurrency but if 𝑡2 fires first the model gets into conflict situation
between transitions 𝑡1 and 𝑡2 [15].
Figure (2.9) Symmetric and Asymmetric confusion.
Chapter Two Concepts of Petri Nets
19
2.3.1.5 Inhibitor Arcs.
An inhibitor arc is always directed from a place to a transition and has a
small circle rather than an arrowhead at its endpoint. Inhibitor arcs in the model
allow the presence of the firing rule to transitions has to be changed as follows.
A transition is enabled if the number of tokens in its input places connected by
arrowhead arcs is equal to or larger than the value of weight functions assigned
to the arcs and there is no token in its input places connected by inhibitor arcs.
The removal and addition of tokens from the input places and to output places
does not change [1], [15]. Application of inhibitor arcs is solving conflict
situations between transitions. Directing an inhibitor from the separate input
place of one transition to the other transition ensures priority for the first
transition over the second [16].
2.4 Analysis Techniques (methods) of Petri Nets.
The success of any model depends on two factors; it's modeling power and
its decision power. Modeling power refers to the ability of correctly
representing the system to be modeled. Decision power refers to the ability of
analyzing the model and determining properties of the modeled system [17].
2.4.1 The Coverability (Reachability) Tree.
The Coverability tree technique involves the enumeration of all reachable
marking from given initial marking. It should be able to apply to all classes of
nets, but is limited to "small" nets due to the complexity of the state-space
explosion [15]. Tree is represented the markings. Nodes represent markings
generated from 𝑀0 (the root) and its successors, and each arc represents a
transition firing, which transforms one marking to another [18].
Chapter Two Concepts of Petri Nets
20
Figure (2.10) Petri net with reachability graph
The initial marking 𝑀1 is the root of the reachability tree in figure (2.10a).
the search for all enabled transition to start from the root; the firing of an
enabled transition produces a new marking which is represented as a new leaf in
the tree in figure (2.10a), from which the procedure is iterated [17]. To
generation of the Coverability tree for the Petri net with unbounded buffer as in
notations:
1. Root node: this is the first node of the tree, corresponding to the initial
marking (state) of the given Petri net.
2. Terminal node: this is any node from which no transition can fire.
3. Duplicate node: this is node identical to a node already in the tree.
4. The symbol 𝜔: this is may be thought of as "infinity" in representing the
marking of unbounded place. using 𝜔 to identify a node dominance
relationship in the Coverability tree, 𝜔 has the properties that for each
integer 𝑛, 𝜔 > 𝑛, 𝜔 ± 𝑛 = 𝜔 𝑎𝑛𝑑 𝜔 ≥ 𝜔, as seen in figure (2.11b) [19].
A reachability graph (possible of infinite size) captures the exact
information about the set of reachable markings of a Petri net, whereas
Coverability graph (always of finite size) provides an over-approximation of the
reachability set, should it be infinite [20].
(a) (b)
Chapter Two Concepts of Petri Nets
21
Figure (2.11) The producer/consumer problem with unbounded buffer with
reachability tree.
The algorithm for generating the Coverability graph of Petri net is shown
below:
Input: A Petri net (𝑁, 𝑀0) with the initial marking 𝑀0.
Output: The Coverability graph 𝐺𝑝(𝑀0) of Petri net.
(1) Create a node 𝑀𝑖𝑛𝑖𝑡 such that 𝑀𝑖𝑛𝑖𝑡 = 𝑀0, and mark it as "new".
(2) While there contains some new node 𝑀 do
(3) For each transition 𝑡 enabled at 𝑀 do
(4) Case (i) there is a node 𝑀′ = 𝑀 + ∆𝑡 𝑖𝑛 𝐺𝑝(𝑀0).
(5) Add an edge 𝑀
𝑡
𝑀′ 𝑡𝑜 𝐺𝑝(𝑀0).
(6) Case (ii) there is a node 𝑀′′ from 𝑀𝑖𝑛𝑖𝑡 to 𝑀 such that 𝑀
′′ < 𝑀 + ∆𝑡.
(7) Add "new" node 𝑥 with
(8) 𝑥 𝑝 = 𝜔 𝑖𝑓 𝑀′′ 𝑝 < 𝑀 + ∆𝑡 (𝑝)
(9) 𝑥 𝑝 = 𝑀′′ 𝑝 , otherwise
(10) Add an edge 𝑀
𝑡
𝑥
(a) (b)
Chapter Two Concepts of Petri Nets
22
(11) Case (iii) otherwise
(12) Add "new" node 𝑥 with 𝑥 = 𝑀 + ∆𝑡 and an edge 𝑀
𝑡
𝑥.
(13) End for.
(14) Mark 𝑀 with "old".
(15) End while
End algorithm [20].
2.4.1.1 Application of the Coverability.
Some of the properties that can be studied by using the Coverability tree
for a Petri net (𝑁, 𝑀0) are the following; Boundedness, safety, and blocking
problems:
1. A net (𝑁, 𝑀0) is bounded and thus 𝑅(𝑀0) is finite iff 𝜔 does not appear
in any node labels in tree.
2. A net (𝑁, 𝑀0) is safe iff 0's and 1's appear in node labels in tree.
3. A transition is dead iff it does not appear as an arc label in tree [3], [18].
2.4.1.2 Disadvantage.
In general, because of the information lost by the use of the symbol 𝑤
(which may represent only even or odd numbers, increasing or decreasing
numbers, etc.), the reachability and Liveness problems cannot be solved by the
Coverability treemethod alone [2]. If 𝑀 is reachable from 𝑀0, then there exists
a node labeled 𝑀′ such that 𝑀 ≤ 𝑀′ [18]. Despite the introduced modifications
in the construction, the reachability tree can be very large and this can cause the
time and space needed for the construction and search to grow exponentially,
therefore this analysis is usually a computationally hard problem [15]. The two
different Petri nets in figure (2.12a,b) have the same Coverability tree as shown
in figure (2.13).
Chapter Two Concepts of Petri Nets
23
Figure (2.12) Two different Petri net.
The net shown in figure (2.12a) is a live Petri net, which the net shown
in figure (2.12b) is not live, since no transitions are enabled after firing
𝑡1 , 𝑡2, 𝑎𝑛𝑑 𝑡3 [2].
Figure (2.13) The Coverability graph for two nets shown in figure (2.12a) and
(2.12b)
2.4.2 The Incidence Matrix and State Equation.
State equation can be used to address problems such as state reachability
and conservation. It provides an algebraic alternative to the graphical
methodology based on the Coverability tree, and it can be quite powerful in
identifying structural properties that are mostly dependent on the topology of
M1
M2
M3
t1
t4
t3
t1
01𝜔
100
10𝜔
t2
M4
Chapter Two Concepts of Petri Nets
24
the Petri net graph captured in the incidence matrix 𝐴 [8].The fundamental to
this approach is the incidence matrix which defines all possible interconnections
between places and transitions in a Petri net. The incidence matrix of a pure
Petri net is an integer (𝑛 × 𝑚) matrix 𝐴, where 𝑛 is the number of transitions,
and 𝑚 is the number of places. The entries of the incidence matrix are defined
as:
𝑎𝑖𝑗 = 𝑎𝑖𝑗
+ − 𝑎𝑖𝑗
− …………………… . (2.7)
Where 𝑎𝑖𝑗
+ is equal to the number of arcs connecting transition 𝑡𝑖 , to its
output place 𝑝𝑗 (𝑎𝑖𝑗
+ = 𝑂 𝑝𝑗 , 𝑡𝑖 ) and 𝑎𝑖𝑗
− is equal to the number of arcs
connecting transition 𝑡𝑖 to its input place 𝑝𝑗 (𝑎𝑖𝑗
− = 𝐼 𝑝𝑗 , 𝑡𝑖 ) [2]. Necessary
reachability condition: suppose that a destination marking 𝑀𝑑 is reachable from
𝑀0 through a firing sequence 𝜇1, 𝜇2, ………… , 𝜇𝑑 . Writing the state equation
for 𝑖 = 1,2, ……… . . , 𝑑 where 𝑑 is represents the index of reachable state and
summing them, can obtain:
𝑀𝑑 = 𝑀0 + 𝐴
𝑇 𝜇𝑘 ………………… . . (2.8)
𝑑
𝑘=1
Which can be written as:
𝐴𝑇𝑥 = ∆𝑀 …………………… . . (2.9)
Where ∆𝑀 = 𝑀𝑑 − 𝑀0, 𝑎𝑛𝑑 𝑥 = 𝜇𝑘
𝑑
𝑘=1 . Here 𝑥 is an 𝑛 × 1 column
vector of nonnegative integers and is called the firing count vector. The 𝑖𝑡
entry of 𝑥 denotes the number of times that transition 𝑖 must fire to transform
𝑀0 𝑡𝑜 𝑀𝑑 . It is well known that a set of linear algebraic equations has a solution
𝑥 𝑖𝑓𝑓 ∆𝑀 is orthogonal every solution 𝑦 of its homogeneous system:
𝐴𝑦 = 0 ………………… . . (2.10)
Chapter Two Concepts of Petri Nets
25
Let 𝑟 be the rank of 𝐴, and partition 𝐴 is the following from:
…………… (2.11)
Where 𝐴12 is a nonsingular square matrix of order 𝑟 . A set (𝑚 − 𝑟)
linearity independent solution 𝑦 for (2.10) can be given as the (𝑚 − 𝑟) rows of
the following (𝑚 − 𝑟) × 𝑚 matrix 𝐵𝑓 :
𝐵𝑓 = 𝐼𝜇 : −𝐴11
𝑇 (𝐴12
𝑇 )−1 ……………… . . (2.12)
Where 𝐼𝜇 is the identity matrix of order 𝜇 = 𝑚 − 𝑟. Note that 𝐴𝐵𝑓
𝑇 = 0.
That is, the vector space spanned by the row vectors of 𝐵𝑓 . Now, the condition
that ∆𝑀 is orthogonal to every solution for equation in (2.10) is equivalent to
the following condition:
𝐵𝑓∆𝑀 = 0 ………………… . . (2.13)
Thus, if 𝑀𝑑 is reachable from 𝑀0, then the firing counter vector 𝑥 must
exist and (2.13) must hold. Therefore, have the following necessary condition
for reachability in an unrestricted Petri net.
Theorem:
If 𝑀𝑑 is reachable from 𝑀0 in a Petri net (𝑁, 𝑀0), then 𝐵𝑓∆𝑀 = 0, where
∆𝑀 = 𝑀𝑑 − 𝑀0 and 𝐵𝑓 is given by (2.12).
Corollary (1): In a Petri net (𝑁, 𝑀0), a marking 𝑀𝑑 is not reachable from
𝑀0(≠ 𝑀𝑑) if their difference is a linear combination of the row vector of 𝐵𝑓 ,
that is;
∆𝑀 = 𝐵𝑓
𝑇𝑧
Where 𝑧 is a nonzero 𝜇 × 1 column vector [2], [19].
Chapter Two Concepts of Petri Nets
26
Example (2.2): [13]
Figure (2.14) Petri net for example (2.2).
For the Petri net shown in figure (2.14), the state equation is illustrated
below, where the transition 𝑡3 fires to result in the marking
𝑀1 = (3 0 0 2)
𝑇 𝑓𝑟𝑜𝑚 𝑀0 = (2 0 1 0)
𝑇:
The incidence matrix 𝐴 is of rank 2 and can be partitioned in the form of
equation (2.11), where:
Thus, the matrix 𝐵𝑓 can be found by equation (2.12):
Chapter Two Concepts of Petri Nets
27
It is easy to verify that 𝐵𝑓∆𝑀 = 0 holds for
∆𝑀 = 𝑀1 − 𝑀0 = (1 0 − 1 2)
𝑇.
2.4.3 Simple Reduction Rules or Decomposition Techniques.
To facilitate the analysis of a large system, often reduce the system model
to a simpler one, while preserving the system properties to be analyzed.
Conversely, techniques to transform an abstracted model into a more refined
model in a hierarchical manner can be used for synthesis [2], [14]. The
following six operations preserve the properties of liveness, and boundedness.
That is, let 𝑁, 𝑀0 𝑎𝑛𝑑 (𝑁
′ , 𝑀0
′ ) be the Petri nets before and after one of the
following transformations. Then (𝑁 ′ , 𝑀0
′ ) is live, safe, or bounded iff 𝑁, 𝑀0 is
live, safe, or bounded, respectively.
(1) Fusion of series places (FSP) as in figure (2.15a).
(2) Fusion of series transitions (FST) as in figure (2.15b).
(3) Fusion of parallel places (FPP) as in figure (2.15d).
(4) Fusion of parallel transitions (FPT) as in figure (2.15c).
(5) Elimination of self-loop places (ESP) as in figure (2.15e).
(6) Elimination of self-loop transitions (EST) as in figure (2.15f) [13].
Chapter Two Concepts of Petri Nets
28
Figure (2.15) Six transformations preserving liveness, safeness, and
boundedness.
2.5 Invariant Analysis.
One of the structural properties of Petri nets, i.e. properties that depend
only on the topological structure of the Petri net and not on the net's initial
marking, is the net invariants. There are two kinds of invariants: Place
invariants and Transition invariants. Place invariants are sets of places whose
token count remains always constant [5]. An 𝑚 − 𝑣𝑒𝑐𝑡𝑜𝑟 𝑦 is a P-invariant iff
𝑀𝑇𝑦 = 𝑀0
𝑇𝑦 for any fixed initial marking 𝑀0 and any 𝑀 reachable marking.
Chapter Two Concepts of Petri Nets
29
Where 𝑚 is the number of places of the Petri net, whose non-zero entries
correspond to the places that belong to the particular place invariant and zeros
everywhere else [2].The place invariants are defined by all integer vectors
which satisfy the following:
𝐴𝑇𝑦 = 0 ……………… . 2.14 .
Where 𝐴 is the (𝑛 × 𝑚) composite change matrix of the Petri net with 𝑛
the number of places and 𝑚 the number of transitions of the net. It is easily
shown that every linear combination of place invariants is also a place invariant
for the net [1], [2].
Transition invariant denotes which transitions must fire and how many
times each, so that the initial marking is repeated. They are represented by an
𝑚 − 𝑐𝑜𝑙𝑢𝑚𝑛 𝑣𝑒𝑐𝑡𝑜𝑟 which contains integers in the positions corresponding to
the transitions belonging to the transition invariantand zeros everywhere else.
The integers denote how many times the corresponding transition must fire in
order for the initial marking to be repeated. They can be computed from the
following: [2]
𝐴𝑥 = 0 ……………… . . 2.15 .
As with place invariants, any linear combination of transition invariants is
also a transition invariant for the Petri net. The existence of transition invariants
in the Petri net denotes a cyclic behavior [2]. Place and transition invariants are
important means for analyzing Petri nets since they allow for the net's structure
to be investigated independently of any dynamic process [1]. Another advantage
of the invariants is that analyses can be performed on local subnets without
considering the whole system. Invariants are also used for model verification
[3]. Net invariant analyses comprise all processes which aim at the solution of
systems of final equations derived from the incidence matrix of the net. A net is
covered by place invariants, if there exists a P-invariant which assigns a positive
Chapter Two Concepts of Petri Nets
30
value to each place. A net is covered by transition invariants, if there exists a T-
invariant which assigns a positive value to each transition [1], [2]. The place or
transition invariants of a net are the integer solutions of the homogenous system
of linear equations (2.14) or (2.15), respectively, where 𝐴 is the incidence
matrix of the net [2], [3]. The components of P-invariants are interpreted as
weights of the respective place [3]. The weighted amount of tokens is invariant
with respect to firing. The component of T-invariants can be interpreted as
firing numbers of the respective transmission (negative values correspond to the
reverse firing). Firing all transitions as many times as their firing number
indicates leads to the same marking as before. Each bounded and live net has T-
invariant that is positive in all component, such a net is coverable with T-
invariants.
2.6 Properties of Petri Nets.
A major strength of Petri nets is their support for analysis of many
properties and problems associated with concurrent systems [2]. These
properties when interpreted in the context of the model system, allow the
system designer to identify the presence or absence of the application domain
specific functional properties of the system under design. Two types of
properties can be distinguished: behavioral and structural properties [3].
2.6.1 Behavioral Properties.
The behavioral properties are those which depend on the initial state, or
marking of a Petri net [3].
(1) Reachability:
Reachability is a fundamental basis for studying the dynamic properties
of any system. An important issue in designing distributed system is whether
a system can reach a specific state, or exhibit a particular functional behavior
Chapter Two Concepts of Petri Nets
31
[2]. During execution different markings can be reached in a Petri net. The
markings are either desirable or undesirable from the viewpoint of the
operation of the modeled system. The reachability problem addresses the
equation whether it is possible to reach or avoid a given marking starting
from a given initial state [17].
(2) Boundedness and Safeness:
A Petri net (𝑁, 𝑀0) is said to be 𝐾-bounded or simply bounded if the
number of tokens in each place never exceeds a given value. If the maximum
value is equal to 1 then the place is called Safe [2], [15].
(3) Liveness:
Liveness addresses the equation whether it is always possible to activate a
specific transition or the system can reach a state where this transition is
"dead". As a generalization of this problem can investigate whether the
system can reach a state where there is no enabled transition at all. This state
is called a dead-lock. A system can get into a dead-lock when the operating
procedure is over but it could also happen that the process stops before the
final state. A dead-lock is very dangerous in the latter case because it refers
to a state where the operator has no possibility to intervene, that is the
system is out of control [15].
(4) Reversibility and Home state:
An important issue in the operation of real systems, such as
manufacturing systems, process control systems, etc., is the ability of these
systems for an error recovery [3]. The reversibility property says that for
every reachable marking there exists at least one is firing sequence
beginning at it and going back to the initial marking [1]. In many
Chapter Two Concepts of Petri Nets
32
applications, it is not necessary to get back to the initial state as long as one
can get back to some (home) state [2].
(5) Coverability:
A marking 𝑀 in a Petri net (𝑁, 𝑀0) is said to be coverable if there exists
a marking 𝑀′ in reachability set of 𝑀0 such that 𝑀
′(𝑝) ≥ 𝑀(𝑝) for each 𝑝 in
the net [2], [15].
(6) Persistence:
A Petri net is said to be persistent if for any two enabled transitions, the
firing of one cannot disable the other [17].
(7) Fairness:
A property closely related to the persistence is fairness. A Petri net is said
to be bounded fair if every pair of its transitions is bounded fair. A transition
pair is bounded fair if every transition of the pair can fire 𝐾 -times at
maximum before the other transition in the pair fires [1].
2.6.2 Structural Properties.
Structural properties are those which depend on the topological structures
of Petri nets. They are independent of the initial marking 𝑀0 in the sense that
these properties hold for any initial marking or are considered with the existence
of certain firing sequences from some initial marking. Thus, these properties
can often be characterized in terms of the incidence matrix 𝐴 and its associated
homogenous equations or inequalities [2], [3].
Chapter Two Concepts of Petri Nets
33
(1) Structural liveness:
Petri net with initial marking is said to be live if there always exists some
sample path such that any transition can eventually fire from any state
reached from initial marking [17].
(2) Controllability:
A Petri net is said to be completely controllable if any marking is
reachable from any other marking [2], [14].
(3) Structural Boundedness:
A Petri net is structurally bounded if it is bounded given any initial
marking 𝑀0 [1]. It is structurally bounded iff there exist an 𝑚 − 𝑣𝑒𝑐𝑡𝑜𝑟 𝑦 of
positive integers such that 𝐴𝑦 ≤ 0. The number of tokens in each place 𝑃, is
bounded by:
𝑀 𝑝 ≤ 𝑀0
𝑇𝑦 𝑦 𝑝 …………………… (2.16).
Where 𝑦(𝑝) is the 𝑝𝑡 entry of 𝑦 [2], [5].
(4) Conservativeness:
A Petri net is (partially) conservative iff there exists an 𝑚 − 𝑣𝑒𝑐𝑡𝑜𝑟 of
positive (nonnegative) integers such that 𝐴𝑦 = 0, 𝑦 ≠ 0 [5].
(5) Repetitiveness:
A Petri net is said to be (Partially) repetitive if there exists an 𝑛 −
𝑣𝑒𝑐𝑡𝑜𝑟 𝑥 of positive integers such that 𝐴𝑇𝑥 ≥ 0, 𝑥 ≠ 0 [2].
(6) Consistency:
A Petri net is said to be (partially) consisted iff there exists an 𝑛 −
𝑣𝑒𝑐𝑡𝑜𝑟 𝑥 of positive integers such that 𝐴𝑇𝑥 = 0, 𝑥 ≠ 0 [2].
Chapter Two Concepts of Petri Nets
34
Table (2.1) Necessary conditions for some structural properties.
Symbols Properties Condition
SB Structurally Bounded ∃𝑦 > 0, 𝐴𝑦 ≤ 0.
CN Conservative ∃𝑦 > 0, 𝐴𝑦 = 0.
CS Consistent ∃𝑥 > 0, 𝐴𝑇𝑥 = 0.
Table (2.2) presents a list of corollaries that can be derived from the
properties in table (2.1). It is helpful to understand the inequality conditions in
table (2.1), if one interprets the expression 𝐴𝑇𝑥 as the difference of markingsin
each place, and the expression 𝐴𝑦 as the change in weight sum of tokens for
each transition firing [2], [14].
Table (2.2) Additional structural properties.
Example (2.3):
From the structural properties shown in tables (2.1) and (2.2), it is easy to
analyze structural properties for the net shown in figure (2.16).
Case If Then
1 𝑁 is structurally bounded
and structurally live.
𝑁 is both conservative and
consistent.
2 ∃𝑦 ≥ 0, 𝐴𝑦 <≠ 0. ∃ no live 𝑀0 for 𝑁, 𝑁 is not
consistent.
3 ∃𝑦 ≥ 0, 𝐴𝑦 >≠ 0. (𝑁, 𝑀0) is not bounded for a live
𝑀0, 𝑁 is not consistent.
4 ∃𝑦 ≥ 0, 𝐴𝑇𝑥 <≠ 0. ∃ no live 𝑀0 for structurally
bounded 𝑁, 𝑁 is not conservative.
5 ∃𝑦 ≥ 0, 𝐴𝑇𝑥 >≠ 0. 𝑁 is not structurally bounded, 𝑁 is
not conservative.
Chapter Two Concepts of Petri Nets
35
Figure (2.16) Petri net for example (2.3).
Define the transpose incidence matrix 𝐴𝑇 and the incidence matrix 𝐴:
𝐴𝑇 =
−1 1 0
1 −1 1
, 𝐴 =
−1 1
1 −1
0 1
.
The following structural properties can be derived:
1. Structurally bounded:
∃𝑦 > 0, 𝐴𝑦 ≤ 0, 𝑦 = 1 1 1 , 𝐴𝑦 = 0 1 . The net is not
structurally bounded.
2. Conservative:
∃𝑦 > 0, 𝐴𝑦 = 0, 𝑦 = 1 1 1 , 𝐴𝑦 ≠ 0. The net is not conservative.
3. Consistent:
∃𝑥 > 0, 𝐴𝑇𝑥 = 0. The net is not consistent.
Example (2.4):
For the net shown in figure (2.17), is this net live for any initial marking?
Figure (2.17) A safe Petri net.
Chapter Two Concepts of Petri Nets
36
The transpose incidence matrix 𝐴𝑇 for this net is:
𝐴𝑇 =
−1 1 0 0 0 0
−1 0 0 0 1 0
0 − 1 − 1 1 0 0
0 0 1 − 1 − 1 1
1 0 0 0 0 − 1
There exists 𝑥 = [1 1 0 0 1 1]𝑇 ≥ 0.
𝐴𝑇𝑥 = [0 0 −1 0 0] <≠ 0.
From table (2.2), case4, this net is not live for any initial marking.
(7) Siphons and Traps:
Siphons and Traps are two important structural objects in a Petri net and
closely related to the Petri net properties, especially dead lock and liveness
[1].
A set of place 𝑆 ⊆ 𝑃 is called a siphon if 𝑆
∘ ⊆ 𝑆
∘ and it is a trap if 𝑆
∘ ⊆ 𝑆
∘
[1]. A siphon is a set of places such that every transition which outputs to
one of the places in the siphon also inputs from one of these places. This
means that once all of the places in the siphon become unmarked, the entire
set of place will always be unmarked; no transition can place a token in the
siphon because there is no token in the siphon to enable a transition which
outputs to place in the siphon as in figure (2.18).
Figure (2.18) A siphon in Petri net.
𝑆 = 𝑝1 , 𝑝2 , 𝑝3 , 𝑆
∘ = 𝑡1 , 𝑆
∘ = 𝑡1, 𝑡2 .
Chapter Two Concepts of Petri Nets
37
A trap is a set of places such that every transition which inputs
from one of these places also outputs to one of these places. This means
that once any of the places in a trap has a token there will always be a
token in one of the places of the trap firing of transitions may move the
tokens between places but cannot remove all tokens from a trap as in
figure (2.19).
Figure (2.19) A trap in Petri net.
𝑆 = 𝑝1 , 𝑝2 , 𝑝3 , 𝑆
∘ = 𝑡1 , 𝑆
∘ = 𝑡1 , 𝑡2 .
Union of two siphons (traps) is again a siphon (trap) [2], [16]. Finding
siphons and traps has a variety of applications to verification and design
of parallel systems, such as detection and prevention of deadlocks
(usually in a correct system no siphon can be emptied) [16].
2.7 Petri Net Classes.
They serve as basic or reference Petri net models. There are many
modifications to the basic models. They can be classified as abbreviations or
extensions. Petri net models within each class can further be classified into sub-
classes with respect to their structural properties [1].
1. Binary Petri nets:
A Petri net is called binary or ordinary if all its weights are 1's.
Chapter Two Concepts of Petri Nets
38
2. Petri net state machine (SM):
A Petri net state machine is a binary Petri net such that each transition has
exactly one input place and exactly one output place: [2]
∀𝑡 ∈ 𝑇: 𝑡
° = 𝑡
° = 1 …………… 2.17 .
3. Marked graphs (MG):
A binary Petri net is called a marked graph or event graph if each
place has exactly one input transition and exactly one output transition: [2]
∀𝑝 ∈ 𝑃: 𝑝
° = 𝑝
° = 1 …………… . 2.18 .
4. A free-choice nets (FC):
A free-choice net is a binary Petri net such that every arc going out of a
place is either a unique arc incoming into a transition and no other arcs go
out of the place or there are more arcs, but each of them is unique arc going
into the transition. Formal description of the sub class is:
∀𝑝 ∈ 𝑃: 𝑝
° ≤ 1𝑜𝑟 𝑝
° = 𝑝 …………… 2.19 .
°
∀𝑝1, 𝑝2 ∈ 𝑃, 𝑝1
° ∩ 𝑝2
° ≠ ∅ ≥ 𝑝1
° = 𝑝2
° = 1,
Where 𝑝
° are all output transitions of place 𝑃 and 𝑝
°
° means the set of
input places of all transitions of the set 𝑝
° [1], [2].
5. An extended free-choice (EFC):
Is a binary Petri net such that: [16]
𝑝1
° ∩ 𝑝2
° ≠ ∅ ≥ 𝑝1
° = 𝑝2
° ∀𝑝1, 𝑝2 ∈ 𝑃 …………… 2.20 .
6. An asymmetric choice net (AC):
(Also known as a simple net) is a binary Petri net such that: [2]
𝑝1
° ∩ 𝑝2
° ≠ ∅ ≥ 𝑝1
° ⊆ 𝑝2
° 𝑜𝑟 𝑝1
° ⊇ 𝑝2
° ∀𝑝1, 𝑝2 ∈ 𝑃 …… . . 2.21 .
Chapter Two Concepts of Petri Nets
39
The Petri net structures shown in figure (2.20) are the key structures that
characterize theses subclasses. Where MG, SM, etc., denote non MG, nonSM,
etc., and the Venn diagram relation is shown in figure (2.20f) [2].
Figure (2.20) Subclasses of Petri nets and their Venn diagram.
Chapter Three
Types of Petri
Nets
Chapter Three Types of Petri Nets
40
3.1 Introduction.
The development of man-made systems requires that both functional and
performance requirements are met. Depending on the development stage of a
system, the knowledge of either an approximate or exact (or both) performance
may be required. Petri net models can be classified into four classes: ordinary
Petri net, abbreviations, extensions, and particular structures, as explain in
figure (3.1) [3], [18].
Figure (3.1) Classification of Petri net models.
Chapter Three Types of Petri Nets
41
The development of Petri nets has been, to a large extent, motivated by
need to model the industrial systems. Ordinary Petri net are net always
sufficient to represent and analyze complex industrial and other systems [2],
[19].
3.2 Ordinary, Abbreviations, and Extensions Petri Nets.
Petri nets can be divided into three main classes in the literature: ordinary
Petri nets, abbreviations, and extensions. In an ordinary Petri net, all the arcs
have the same unity weight, there is only one kind of tokens, the place
capacities are infinite (i.e., the number of tokens is not limited by place
capacities), the firing of a transition can occur if and only if (iff) every place
preceding it contains at least one token, and no time is involved. The
abbreviations correspond to simplified representations, useful in order to lighten
the graphical representation, to which an ordinary Petri net can always be made
to correspond. Generalized Petri nets, finite capacity Petri nets, and colored
Petri nets are abbreviations. They have the same power of description as the
ordinary Petri nets. The extensions correspond to models to which functioningrules have been added in order to enrich the initial model, enabling a great
number of applications to be treated. Three main subclasses may be considered.
The first subclass corresponds to models which have the descriptive power of
Turing machines: an inhibitor arc Petri net (PN) and a priority PN. The second
subclass corresponds to extensions allowing modeling of continuous and hybrid
systems: continuous PNs and hybrid PNs. The third subclass corresponds to
non-autonomous PN, which describe the functioning of systems whose
evolution is considered by external events and/or time: synchronized PNs, timed
PNs, interpreted PNs, and stochastic PNs [21].
Chapter Three Types of Petri Nets
42
3.3 Timed Petri Net.
A Petri net is known as an abstract, formal model of information flow.
The properties, concepts, and techniques of Petri nets are being developed in a
search for natural and simple methods for describing and analyzing systems that
may exhibit synchronous and concurrent activities. The major use of Petri nets
has been the modeling of systems of events in which it is possible for some
events to occur concurrently but there are constraints on the concurrence,
precedence, or frequency of these occurrences. However, this model is not
complete enough for the study of system performance since no assumption is
made on the duration of modeled activities. The timed Petri nets have been
introduced by Ramchandani, in 1974, by assigning firing times to the transitions
of Petri nets. Ramchandani studied the steady state behavior of timed Petri nets
and developed methods for calculating the throughput rate for certain classes of
such nets. Sfakis, in 1976 introduced another definition of the timed Petri net by
assigning times to the places. He has shown that the maximum computation rate
of a timed Petri net can be calculated by solving a set of linear equations
describing the net. Some relations between the properties of boundedness and
liveness in Petri nets and timed Petri nets have been given by Chosh, in 1977
[22].
3.3.1 Timing Specifications.
Time is introduced in Petri nets to model the interaction among several
activities considering their starting and completion times. The introduction of
time specifications corresponds to an interpretation of the model by means of:
[23]
• Observation of the autonomous (untimed) model.
• Definition of a non-autonomous model.
Time specifications should provide:
Chapter Three Types of Petri Nets
43
• Consistency among autonomous and non-autonomous models.
• Non-determinism reduction on the basis of time considerations.
• Support for the computation of performance indices.
1. Timed places:
Several approaches are possible for the introduction of temporal
specifications in PN models; time may be associated with places (TPPN).
Tokens generated in an output place become available to fire a transition
only after a delay has elapsed; the delay is an attribute of the place. As
shown in figure (3.2) [23].
Figure (3.2) Timed place PN.
2. Timed tokens:
Time may be associated with tokens. Tokens carry a time stamp
that indicates when they are available to fire a transition; this time stamp
can be incremented at each transition firing. As shown in figure (3.3)
[23].
Figure (3.3) Timed token in PN.
Chapter Three Types of Petri Nets
44
3. Timed arcs:
Time may be associated with arcs. A travelling delay is associated
with each arc; tokens are available for firing only when they reach a
transition, as in figure (3.4) [23].
Figure (3.4) Timed arcs in PN.
4. Timed transitions:
Time may be associated with transitions (TTPN); transitions
represent activities: (1) activity start corresponds to transition enabling.
(2) Activity end corresponds to transition firing.
Different firing policies may be assumed:
(i) Three-phase firing:
1. Tokens are consumed from input places when the transition is
enabled.
2. The delay elapses.
3. Tokens are generated in output places.
(ii) Atomic firing:
Tokens remain in input places for the transition delay; they
are consumed from input places and generated in output places
when the transition fires. The TTPN will consider it with atomic
firing. TTPN with atomic firing can preserve the basic behavior of
the underlying untimed model. It is thus possible to qualitatively
Chapter Three Types of Petri Nets
45
study TTPN with atomic firing exploiting the theory developed for
untimed (autonomous) PN (reachability set, invariants, etc.).
Timing specifications may affect the qualitative behavior of the PN
when they describe constant and interval firing delays [24].
Figure (3.5) Timed transitions PN.
(iii) Internal timer:
The behavior of one timed transition can be explained with
atomic firing by assuming that it incorporates a timer.
1. When the transition is enabled, its timer is set to the
current delay value.
2. Then, the timer is decremented at constant speed, until it
reaches the value zero.
3. At this point the transition fires. As shown in figure (3.5)
[25].
(iv) Conflicts:
When more than one timed transition with atomic firing is
enabled, the behavior is similar as shown in figure (3.6), but a
problem arises:
Chapter Three Types of Petri Nets
46
Figure (3.6) Conflicts in PN.
Which one of the enabled transitions is going to fire?
Two alternative selection rules:
1. preselection:
The enabled transition that will fire is chosen when the
marking is entered, according to some metric (priority,
probability, ...).
2. race:
The enabled transition that will fire is the one whose
firing delay is minimum [26].
3.3.2 Timed Petri Nets.
A Timed Petri nets is formally defined as a six-tuple
Timed PN= 𝑃, 𝑇, 𝐹, 𝑉, 𝑀0, 𝐷 ……………… . . (3.1).
Where:
𝑃 is a finite set of places;
𝑇 is a finite, ordered set of transitions 𝑡1 , . . . , 𝑡𝑚 ;
𝑉 ∶ 𝐹 → (𝑃, 𝑇, 𝐹) is the arc multiplicity;
𝐷 ∶ 𝑇 → 𝑁 Assigns to every transition 𝑡1 a nonnegative real number 𝑁
indicating the duration of the firing of 𝑡1; and
𝑀0 is the initial marking.
Chapter Three Types of Petri Nets
47
A Timed Petri net follows the following earliest firing schedule transition
rule: An enabled transition at a time 𝑘 must fire at this time if there is no
conflict. Transitions with no firing durations (𝐷(𝑡) = 0) fire first. When a
transition starts firing at time 𝑡 it removes the corresponding number of tokens
from its input places at time 𝑡 and adds the corresponding number of tokens to
its output places at time 𝑘 + 𝐷(𝑡). At any time, a maximal set of concurrently
enabled transitions (maximal step) is fired [31].
3.3.3 Deterministic Timed Petri Nets.
Time may be associated either with the Petri net places or transitions, or
with both. A general approach can be followed in (Zhou and Venkatesh 1998)
covering three associations either together or separately in a deterministic way.
The deterministic time association is a Petri net model extension enabling
performance analysis using time relations. The deterministic way is very
difficult or rather impossible to apply in praxis. Therefore, the deterministic
time association is mostly restricted to the class of the marked graphs also
named event graphs [1].
The timed marked graphs are delimited by the following definition:
𝑇𝑀𝐺 = 𝑃, 𝑇, 𝐹, 𝑊. 𝑀0 ,𝜋 , 𝜏 ………… (3.2)
Where the meaning of 𝑃, 𝑇, 𝐹, 𝑊, 𝑀0 is thePetri net.
𝑀𝐺 = 𝑃, 𝑇, 𝐹, 𝑊, 𝑀0 is a marked graph (𝑖. 𝑒. , ∀𝑝 ∈ 𝑃 ∶ °𝑝 = 𝑝° = 1),
and 𝜋 is the place delay function 𝜋 ∶ 𝑃 → ℝ+ ( the set of non-negative real
numbers), 𝜏 is the transition firing time function 𝜏 ∶ 𝑇 → ℝ+ and :
1. A token, which arrives in a place, is not available for the connected
transition with the place during the time associated with the place.
2. A transition is fireable and fires if all its pre-places contain the available
tokens (i.e., tokens not time blocked) required by the arc weights.
Chapter Three Types of Petri Nets
48
3. If a transition is fireable, its firing starts by removing the respective
number of tokens from pre-places and firing completes after the time
associated with the transition expires and the tokens are deposited in the
respective post-places [34].
For this purpose the timed marked graphs will be considered having all
arc weights equal to one. In other words, Petri nets belonging to the class of
timed binary marked graphs. Moreover, the strongly connected timed binary
marked graphs where for the graph connectivity property both places and
transitions are considered as graph nodes. In the above delimited Petri net sub-
class, the performance analysis is based on directed simple cycles contained in
the particular Petri net, which is taken as a mathematical graph with places and
transitions given as a set of nodes. In a directed simple cycle, the total time
delay is a sum of times associated with all places and transitions comprised in
the cycle [1].
In a simple cycle the total number of tokens is the number of tokens
present in all the places in the cycle. Note that a directed simple cycle is one
that contains no repeated nodes except the beginning and ending ones. The
minimum cycle time of the analyzed marked graph as a whole is:
𝜇 = 𝑚𝑎𝑥𝑖
𝐷𝑖
𝑁𝑖
………………… . . 3.3 .
Where 𝐷𝑖 is the total time delay of the 𝑖-th directed simple cycle and 𝑁𝑖 is
the total number of tokens in this cycle, 𝐷𝑖 / 𝑁𝑖 is the cycle time [1].
The bottleneck cycle is the 𝑗 − 𝑡ℎ one where 𝐷𝑖 / 𝑁𝑖 = 𝜇 holds. A
system may have multiple such cycles. When additional resources are available
to improve the system productivity, one should certainly invest into the facility
causing the bottleneck. The acquisition of a same machine can be reflected
through the increase of a token in a loop. The improvement in the speed of a
process can be reflected through the reduction of the delay in a place or
transition. The delay can also be associated with the arcs in a marked graph,
Chapter Three Types of Petri Nets
49
simulating the time for a token to flow through the arc. This extension is useful
in modeling transportation of goods over conveyors, or fluid flowing through a
pipe in process industry [27]. The use of the above approach via the
enumeration of cycles is of exponential computational complexity. In other
words, it is not applicable to large-size marked graphs. Fortunately, the
minimum cycle times can be obtained, e.g., by linear programming [26].
3.4 Stochastic Petri Net.
A stochastic Petri net (SPN) is a Petri net where each transition is
associated with an exponentially distributed random variable that expresses the
delay from the enabling of the firing of the transition. When several transitions
are simultaneously enabled, the transition that has the shortest delay will fire
first. Often used for performance evaluation of systems because they allow to
perform that evaluation by analytical methods [28].
3.5 The Supervision of Petri Nets.
A supervisor is a discrete event system (DES) that is used to monitor and
control another discrete event system is called plant, such that a given
specification is satisfied. The supervisor is different from a controller in the
sense that a controller dictates the input applied to the system, while the
supervisor only restricts the set of inputs that can be applied to the system. The
set of inputs is restricted dynamically, based on the observation of the plant.
Ideally, a supervisor should forbid only the inputs that may unavoidably lead to
the violation of the specification [29].The composition of a supervisor with a
plant is a DES called the closed loop. When the plant is a Petri net, a supervisor
restricts the operation of the net by restricting the set of enabled transitions that
may fire at a given state of the Petri net. The specification may consist of
requirements concerning the reachable markings or permissible firing
sequences. A possible way to apply the supervision of Petri nets in the real
Chapter Three Types of Petri Nets
50
world is as follows. Given a plant with discrete-event-driven dynamics, a Petri
net model is extracted. The extracted model the plant Petri net is called. In the
plant Petri net, the occurrence of an event in the physical plant is modeled by
the firing of a transition. The (observable) transition firings of the plant are the
information available to the supervisor. A transition firing may trigger a change
in the state of the supervisor, while a change in the supervisor state can change
the set of plant events disabled by the supervisor. Physically, the event
disablement can be done by restricting the range of the inputs of the plant [30].
The design of a supervisor typically involves the following requirements:
[29]
1. If possible, the closed loop should be representing able as a Petri net.
2. If the exact implementation of the specification is impossible,
transform the specification to a more restrictive form that is
implementable.
3. If possible, find a least restrictive supervisor.
PNs have been used to model, analyze, and synthesize control laws for
DES. Zhou and DiCesare (1991), moreover, addressing the shared resource
problem recognized that mutual exclusion theory plays a key role in
synthesizing a bounded, live, and reversible PN. In mutual exclusion theory,
parallel mutual exclusion consists of a place marked initially with one token to
model a single shared resource, and a set of pairs of transitions. Each pair of
transitions models a unique operation that requires the use of the shared
resource.
Definition :
Given two nets 𝐺1 = (𝑃1, 𝑇1 , 𝐼1 , 𝑂1) and 𝐺2 = (𝑃2, 𝑇2, 𝐼2 , 𝑂2) with initial
marking 𝑀0,1, and 𝑀0,2, respectively. The synchronous composition of 𝐺1 and
𝐺2 is a net:
𝐺 = (𝑃, 𝑇, 𝐼, 𝑂) with initial marking 𝑀0:
Chapter Three Types of Petri Nets
51
𝐺 = 𝐺1 𝐺2 …………… . . (3.4).
Where:
𝑃 = 𝑃1 ∪ 𝑃2 ;
𝑇 = 𝑇1 ∪ 𝑇2 ;
𝐼 ( 𝑝, 𝑡) = 𝐼𝑖( 𝑝, 𝑡) 𝑖𝑓 (∃𝑖 ∈ {1,2})[ 𝑝 ∈ 𝑃𝑖 ∧ 𝑡 ∈ 𝑇𝑖], 𝑒𝑙𝑠𝑒 𝐼 ( 𝑝, 𝑡) = 0 ;
𝑂( 𝑝, 𝑡) = 𝑂𝑖( 𝑝, 𝑡) 𝑖𝑓 (∃𝑖 ∈ {1,2})[ 𝑝 ∈ 𝑃𝑖 ∧ 𝑡 ∈ 𝑇𝑖], 𝑒𝑙𝑠𝑒 𝑂( 𝑝, 𝑡) = 0;
𝑀0 𝑝 = 𝑀0,1 𝑝 𝑖𝑓 𝑝 ∈ 𝑃1 , 𝑒𝑙𝑠𝑒 𝑀0( 𝑝) = 𝑀0,2( 𝑝).
An agent that specifies which events are to be enabled and disabled when
the system is in a given state is called a supervisor. For a system with plant
model 𝐺 and specification model 𝐻 , the supervisor can be obtained by
synchronous composition of the plant and the specification models:
𝑆𝐺 = 𝐺 ∥ 𝐻……………… . (3.5).
where the transitions of H are a subset of the transitions of 𝐺 , i.e.
𝑇𝐻 ∈ 𝑇𝐺 . Note that 𝑆𝐺 obtained through the above construction, in the general
case does not represent a proper supervisor, since it may contain deadlock states
from which a final state cannot be reached. Thus, the behavior of S should be
further refined and restricted by PN analysis. Mutual exclusion concept is
adopted to build the PN specificationmodel and then compose it with the plant
model to design the supervisor [4]. The main supervision approach is the
supervision based on place invariants.
3.6 Supervision Based on Place Invariants.
An effective approach used for the enforcement of linear marking
constraints of the form 𝐿𝜇 ≤ 𝑏. The approach is called supervision based on
Place Invariants. Literature references describing this approach as A. Giua, F.
Dicesare, and M. Silva. "Generalized mutual exclusion constraints on nets with
uncontrollable transitions". In proceeding of the IEEE in 1992. J.O.MOOdy and
P.J.Antsaklis, "Supervisory Control of DES's using Petri nets" in 1998, and
Chapter Three Types of Petri Nets
52
"Petri net Supervisors for DES with uncontrollable and unobservable
transitions". IEEE in 2000, and "Feedback Control of Petri nets based on Place
invariants", in 1996 [30]. The case when all transitions of the plant Petri net are
controllable and observable is presented first. Then, an extension to Petri nets
with uncontrollable and unobservable transitions is also presented.
3.6.1 Fully Controllable and Observable Petri Nets.
The control problem considered here is to enforce a set of 𝑛𝐶 linear
constraints
𝐿𝜇 ≤ 𝑏……………… . . (3.6).
In other words, the supervisor is desired to prevent the system from
reaching markings which do not satisfy equation (3.9). The notation is as
follows: 𝐿 is an integer 𝑛𝐶 × 𝑚 matrix (𝑛𝐶: the number of constraints, 𝑚: the
number of places of the given Petri net), 𝑏 is an integer column vector, and μ is
the Petri net marking. Let 𝜇𝐶 be a vector of 𝑛𝐶 nonnegative slack variables,
defined as:
𝜇𝐶 = 𝑏 − 𝐿𝜇 …………… . 3.7 .
Let 𝐷 be the incidence matrix and 𝜇𝐶0 = 𝑏 − 𝐿𝜇0 , where𝜇0 is the
initial marking of the Petri net. Then, it can be verified that the least restrictive
supervisor can be implemented by a Petri net with the same set of transitions,
having the marking 𝜇𝐶 , the initial marking 𝜇𝐶0, and the incidence matrix
𝐷𝐶 = −𝐿𝐷……………… . . (3.8).
That is, the closed-loop Petri net (the supervisor plus the plant Petri net) has the
incidence matrix 𝐷𝐶𝑙 = [𝐷
𝑇 , 𝐷𝐶
𝑇 ]𝑇 and the marking 𝜇𝐶𝑙 = [𝜇
𝑇 ,𝜇𝐶
𝑇 ]𝑇 . This
result is summarized in the following theorem:
Chapter Three Types of Petri Nets
53
Theorem:
Let a Petri net with incidence matrix 𝐷 and initial marking 𝜇0 be given.
A set of 𝑛𝐶 linear constraints 𝐿𝜇 ≤ 𝑏 are to be imposed. If 𝐿𝜇0 − 𝑏 ≤ 0 then a
Petri net supervisor with incidence matrix 𝐷𝐶 = −𝐿𝐷 and initial marking
𝜇𝐶0 = 𝑏 − 𝐿𝜇0enforces the constraint 𝐿𝜇 ≤ 𝑏 when included in the closed-
loop system 𝐷𝐶𝑙 = [𝐷
𝑇 , 𝐷𝐶
𝑇 ]𝑇. Furthermore, the supervision is least restrictive.
The places of the supervisor Petri net are called control places. Note that each
control place is in one of the place invariants described by equation (3.7). As an
example, in Figure (3.8), the places 𝐶1 and 𝐶2 are the control places of a
supervisor enforcing 2μ1 + μ3 ≥ 1 and 2μ2 + μ3 ≥ 1 [29].
3.6.2 Partially Controllable and Observable Petri Nets.
In a Petri net, a transition is uncontrollable if the supervisors are not
given the ability to directly inhibit it. Otherwise, the transition is controllable. A
transition is unobservable if the supervisors are not given the ability to directly
detect its firing. Otherwise, the transition is observable. The firing of
uncontrollable (unobservable) transitions corresponds to the occurrence of
uncontrollable (unobservable) events. In our paradigm the supervisors observe
transition firings, not markings. For instance, consider the Petri net of Figure
(3.7). First assume that 𝑡1 is controllable and 𝑡2 is uncontrollable. This means
that 𝑡2 cannot be directly controlled. So, in case (a) 𝑡2 cannot be directly
inhibited; it will eventually fire. However in case (b) t2 can be indirectly
prevented from firing by inhibiting 𝑡1. Now assume that 𝑡2 is unobservable and
𝑡3 is observable. This means that cannot detect when 𝑡2 is fired. In other words,
the state of a supervisor is not changed by firing 𝑡2 . However can indirectly
detect that 𝑡2 has fired, by detecting the firing of 𝑡3 [30].
Chapter Three Types of Petri Nets
54
Figure (3.7) Defining the controllability and observability of transitions.
The Petri net supervisor is implemented in the form of control places
connected to the plant Petri net. To deal with uncontrollable and unobservable
transitions, it is necessary to ensure that no control place ever attempts to inhibit
an uncontrollable transition enabled in the plant Petri net, and no control place
marking is varied by firing unobservable transitions enabled in the closed-loop
Petri net. To this end, it is sufficient to have the set of constraints satisfy the
following relations of:
𝐿𝐷𝑢𝑐 ≤ 0 ………… . . (3.9).
𝐿𝐷𝑢0 = 0 …………… (3.10).
Where 𝐷𝑢𝑐 = 𝐷(・, 𝑇𝑢𝑐 ) and 𝐷𝑢0 = 𝐷(・,𝑇𝑢0) are the restrictions of
the incidence matrix 𝐷 to the columns corresponding to the set of uncontrollable
transitions 𝑇𝑢𝑐 and to the columns corresponding to the set of unobservable
transitions 𝑇𝑢0. All sets of constraints 𝐿𝜇 ≤ 𝑏 satisfying equations (3.9), (3.10)
may be enforced as in Fully Controllable and Observable Petri Nets. The
relation (3.9) ensures that there is no arc from a control place of the supervisor
to an uncontrollable transition. Relation (3.10) ensures that there is no arc
between a control place of the supervisor and an unobservable transition.
Chapter Three Types of Petri Nets
55
Figure (3.8) (a) Petri net; (b) closed loop.
Example (3.3):
Consider the Petri net of Figure (3.8a), where 𝑡1 is unobservable:
𝜇 = [1 0 1]𝑇
The matrix𝐷𝑢𝑐 is empty. Assume that want to enforce (3.10) for :
Then (3.10) can be transformed to the constraints 𝐿𝑎𝜇 ≤ 𝑏𝑎 , for:
The closed-loop Petri net of Figure (3.8b) is obtained. The transition arcs
of the supervisor are represented with dashed lines. The control places are C1
and C2; they correspond to the first and second rows of 𝐿𝑎D, respectively [29].
3.7 Neural Petri Net.
In [3], they built ANN-like architectures of distributed intelligence that
can learn from experience. The resulting Neural Petri Net (NPN) is feedforward
network with alternating columns of places and transitions. The Petri net model
of the perceptron is figure (3.9a). This model is called the adaptive Neural
Processor (ANP). The ANP has adaptive weights restricted to {-1, 0, +1}, thus
Chapter Three Types of Petri Nets
56
excitatory and inhibitory inputs are taken care of and the incidence matrix of the
Petri net can be formed. The cell body signal integrating and thresholding
behavior is modeled by place-transition pair and (𝑃𝑖 𝑎𝑛𝑑 𝑇𝑖) presynaptic clefts
are modeled by place-transition pairs (𝑝𝑖 𝑎𝑛𝑑𝑡𝑖) . The integrating place
𝑃𝑖calculates the output. The threshold transition 𝑡𝑖 fires when the threshold 𝜃𝑖𝑖 is
exceeded. The threshold transition 𝑇𝑖 can have one or more output places which
represent axon or dendrites. The input places (𝑝𝑖 's) perform no processing, they
have the only role of token passing which are the observations from the
environment, the initial marking of the Petri net. Also, the input transitions( 𝑡𝑖 's)
do not perform thresholding function. They are ordinary transitions [31]. Figure
(3.9b) shows a two-layer network.
Figure (3.9) (a) ANP model,and (b) two-layer neural Petri net.
The NPN is a pure Petri Net (self –loops are not allowed). This leads to a
feedforward architecture. The interaction of ANN with the environment is
through the input and output places. One input transitions is connected to each
Chapter Three Types of Petri Nets
57
place that represents an input (token) to the network. The input place-transitions
arc weights are fixed to 1 [31].
The NPN is formally defined as a 6 tuple:
𝑁𝑃𝑁 = 𝑃, 𝑇, 𝑍, 𝐸, 𝐶, 𝑀0 …………… . . (3.11).
Where:
𝑃: is a set of places;
𝑇: is a set of transitions;
𝑍: is set of arcs, 𝑍 ⊆ (𝑃 × 𝑇) ∪ (𝑇 × 𝑃);
𝐸: is a pattern of connectivity among places and transitions;
𝐶: is a set of states of activation for the hidden and output layer places. The
places are decomposed into three subnets:
𝑃 = {𝐼𝑁𝑃𝑈𝑇, 𝐻𝐼𝐷𝐷𝐸𝑁, 𝑂𝑈𝑇𝑃𝑈𝑇}.
𝑀0: 𝐼𝑁𝑃𝑈𝑇 → {0,1} is a mapping called initial marking.
The resulting NPN is a feed forward network with alternating columns of
places and transitions [31].
Given the set of 𝑙 input–output examples {𝑥𝑝 , 𝑦𝑝 , 𝑝 = 1, 2, 3, … . 𝑙}
training the NPN using the Backpropagating is possible. However, certain
restrictions on the values of arc weights (fixed and trainable) have to be
enforced using constraints the topological structure or the pattern of
connectivity of NPN can be represented by connectivity matrix. For the
example NPN of figure (3.9b) this matrix is given by:
Therefore, learning involves finding the sub-matrices 𝑤, 𝜃, 𝑎𝑛𝑑 𝑣 of the
incidence matrix [31].
Chapter Three Types of Petri Nets
58
Example (3.4):
The well-known n-bit parity problem which is essentially a generalization
of the XOR problem? Figure (3.10) shows a 4-input NPN. Threshold values
are𝜃11 = 0.5, 𝜃22 = 1.5, 𝜃33 = 2.5 and 𝜃44 = 3.5 . The incidence matrix of
the NPN is given below [31]:
Figure (3.10) NPN for 4-bit parity problem.
Chapter Four
Application of
Petri Nets
Chapter Four Application of Petri Nets
59
4.1 Introduction.
A system can often be broken down into subsystems. If it is required to
describe activities of subsystems and their mutual relations, a finite automaton
model can be cumbrous because each combination of subsystem states needs a
separate state of the finite automaton. Petri nets can be used not only for the
specification of discrete event dynamics behavior but also the control design
[1]. Each human operation is modeled as a task with a start transition, end
transition, progressive place and completed place. This chapter reviews the
existing modeling of; The Traffic Lights and Intersection by using Timed Petri
Net, Rapid Thermal Processing by using Supervisory Petri Net, and Fault
Diagnosis of Electrical Control System by using Neural Petri Net.
The control of Traffic Lights and Intersection in urban can be viewed as a
complex discrete event system (DES). The Intersection consists of crossroads,
sensors, and Traffic Signals. The control of the model can be done by separating
the Intersection working into two intervals: Working, and Sleeping. Sensors are
deposited in each lane to sense the emergency status, and they are using to
change the cycle time of intersection. Timed Transition Petri Net is used to
model of the Intersection for estimation of the real time system state.
Petri nets are applied to construct a system model and synthesize a
desired supervisor. The application of Rapid Thermal Process (RTP) in
semiconductor manufacturing is controlled by monitoring (supervisor), and by
using Supervision Petri Net control to design the closed loop system and that it
is providing more safety requirements in industrial applications.
In the section (4.4) preview application is considered important in many
fields of electric control systems. Neural Petri Net (NPN) is used in the Fault
Diagnosis of electric control system that is working online to detect the position
of faults and can be used to process this danger state.
Chapter Four Application of Petri Nets
60
4.2 Modeling Traffic Lights and Intersection
The aggregate behaviors of vehicles in a traffic network requires a large
and complex model, with various modes of operation such as free flow traffic,
saturated/ congested traffic Jams, stop – and – go waves, etc. the use of traffic
models gives one the chance of analyzing, predicting and controlling the
behaviour of traffic systems. The application of control strategies allows one to
improve some interesting traffic performance measures such as throughput,
delay and fuel consumption. The population of a traffic system is described by
the number of vehicles, a discrete value. Hence discrete event models can
accurately describe the behavior of traffic systems [13].
4.2.1 Modeling Traffic.
Different approaches to modeling traffic flow can be used to explain
phenomena specific to traffic, like the spontaneous formation of traffic jams.
There are two common approaches for modeling traffic; macroscopic and
microscopic models.
4.2.1.1 Macroscopic Models.
Macroscopic traffic models are based on gas-kinetic models and use
equations relating traffic density to velocity. These equations can be extended
with terms for build-up and relation of pressure to account for phenomena like
stop-and-go traffic and spontaneous congestions. Although macroscopic models
can be tuned to simulate certain driver behaviors, they do not offer a direct,
flexible, way of modeling and optimizing them [32].
4.2.1.2 Microscopic Models.
In contrast to macroscopic models, microscopic traffic models offer a
way of simulating various driver behaviors. A microscopic model consists of an
infrastructure that is occupied by a set of vehicles. Each vehicle interacts with
Chapter Four Application of Petri Nets
61
its environment according to its own rules. Depending on these rules, different
kinds of behavior emerge when groups of vehicles interact [32].
4.2.2 Modeling of Traffic Signal.
The most usual way to control real traffic systems is through traffic
lights. A traffic light can be seen as a discrete event system whose state can be
red, green, or yellow. In our model a traffic light is modeled as a Timed
Transition Petri Net. As in figure (4.1), the traffic light's three possible settings
are illustrated by three places(𝑝1, 𝑝2, 𝑝3); where 𝑝1is representing the red light
and 𝑝2 is the yellow light and 𝑝3 is the green light. The three possible light
changes are shown by three transitions,𝑡1, 𝑡2, 𝑡3 . Those transitions represent
changes the token (event) by time-where the time is associated with transition.
The transition 𝑡1is not time transition Petri net. It is Immediate transition can be
controlled by condition. And 𝑡2, 𝑎𝑛𝑑 𝑡3, are time transition Petri net. Where
work to change the token from 𝑝3(green) to 𝑝2 (yellow) and 𝑝1(red) by Timing
instant. In each lane consist of two traffic signals and can be modeled as in
figure (4.2).
Figure (4.1) Modeling of Traffic signal.
Imagine now that to model the traffic lights at the crossing of two one-
way streets or three or four one-way street. In the case of two one-way streets,
Chapter Four Application of Petri Nets
62
two sets of traffic lights that interact in such a way that one of the two is always
red. The Petri net shown in figure (4.1) needs to duplicate. Each set of lights is
modeled using three places and three transitions. Therefore add extra
places 𝑝6 , 𝑎𝑛𝑑 𝑝7,which ensure that one of the two sets of lights is always at
red as in figure (4.3).
Figure (4.2) Modeling in two traffic signals.
When both traffic lights are red, there is a token in one of the places
𝑝6, 𝑝7. As one of set of lights changes to green, the token is removed from one
of places 𝑝6, 𝑝7 and so other set is blocked. Only when both sets of lights are
again red is the other able to change to green once. By using Timed Petri nets
can be modeled traffic signal in real time. Where some transitions are can be
associated with delay times. By internal timer, this timer is set to the current
delay value after the transition is enabled. Then, the timer is decremented until
it reaches the value zero, at this point the transition fires. Continue mechanism
of transition, or Restart mechanism by generated values when needed or by
algorithm to compute the time of transition that needed for green time (Go time)
in the cycle time of intersection and the result can be a reduced time delay of
vehicles (cars) in the lane. The timed transition modeled in traffic signal is
transition (𝑡2, 𝑡3) as in figure (4.1).
Chapter Four Application of Petri Nets
63
Figure (4.3) Modeling for synchronization for two traffic lights.
4.2.3 Modeling of Intersection.
Before Modeling of the Intersection most learn compute or found the
cycle time must to run the intersection or by another expression the cycle time
needed for turn the tokens between places that represented Red, Yellow, or
Green. More methods to design the intersection and compute cycle time. In this
research, using Quick estimation Method for signalized intersections to design
the model of intersection. The requirements can be into study the traffic and
intersections.
4.2.4 Signal Timing Design.
The design for operation of a traffic signal is a complex process involving
three important decisions: type of signal controller to be used, phase plan to be
adapted, and allocation of green time among the various phases [33].
1. Type of signal controller.
Traffic engineering reference books describe three types of traffic
signal controllers: pretimed, fully actuated, and semiactuated. Pretimed
controllers have a preset sequence of phases displayed in repetitive order.
Each phase has a fixed green time and change interval that is repeated in
each cycle to produce a constant cycle length. Fully actuated controllers
Chapter Four Application of Petri Nets
64
operate with timing on all approaches being influenced by vehicle
detectors. Each phase is subject to a minimum and maximum green time,
and some phases may be skipped if no demand is detected. The cycle
length for fully actuated control will vary from cycle to cycle.
Semiactuated controllers operate with some approaches (typically on the
minor street) having detectors. The earliest form of semiactuated control
was designed to maintain the green on the major street in the absence of a
minor-street actuation. Once actuated, the minor-street green is displayed
for a period just long enough to accommodate the traffic demand [33].
2. Phase plans.
The most critical aspect of any design of signal timing is the
selection of an appropriate phase plan. The phase plan comprises the
number of phases to be used and the sequence in which they are
implemented. As a general guideline, simple two-phase control should be
used unless conditions dictate the need for additional phases. Because the
change interval between phases contributes to lost time in the cycle, as
the number of phase's increases, the percentage of the cycle made up of
lost time generally also increases. Figure (4.4) shows a number of
common phase plans that may be used with either pretimed or actuated
controllers [32], [33].
3. Allocation of green time.
The average cycle length and effective green time for each lane
group must be defined. The most desirable way to obtain these values is
by field measurement; however, there are many cases in which field
measurement is not possible. A procedure for estimating the signal timing
characteristics is therefore an important traffic analysis tool. Such a
procedure is also useful in designing timing plans that will optimize some
aspects of the signal operation. In this respect, pretimed and actuated
control must be treated differently because the design and analysis
Chapter Four Application of Petri Nets
65
objectives are different. For pretimed control, the objective is to design an
implementable timing plan as an end product. In traffic-actuated control,
the timing plan is generated by the controller itself on the basis of
operating parameters that are established for each phase. This operation
creates two separate objectives for traffic-actuated control [32].
Figure (4.4) Phase plans for pretimed and traffic-actuated control.
4.2.5 Objective of signal timing.
The major objectives of a signal timing plan are the minimization of
delay and congestion of intersections and within block lengths and series of
block lengths, and the increase in safety for all road users. Full utility of traffic
control signals is realized only when they are operated so as to satisfy, as nearly
as possible, actual traffic requirements.
In general, short cycle lengths are desirable, because the delay to standing
vehicles is reduced. Cycle lengths ordinarily fall between 30 and 120 seconds,
but good practice dictates the selection of a total time cycle in the range from 35
Chapter Four Application of Petri Nets
66
to 50 seconds for a simple right-angled intersection where the intersection
roadways are of average width (30 to 40 feet) and traffic volumes are not
extremely heavy. Where intersecting streets are wider, necessitating longer
pedestrian crossing time or volumes extremely heavy or turning interferences
substantial, the cycle will be between 45 and 60 seconds long. Three street
intersection cycles, or three-phase operation, will range from 55 to 80 seconds.
Heaving volumes require longer cycle lengths because the sum of the "Go" or
green intervals must be greater to gain sufficient capacity. The sum of "go"
intervals is a higher percentage of a cycle length with longer cycles since
clearance times remain essentially fixed [32].
4.2.6 Modeling Traffic Signals and Intersection.
By using Quick estimation input worksheet in figure (4.5). A traffic light
ruling on intersection with four crossing lanes EB, WB, NB, and SB (East
Band, West Band, North Band, and South Band). This procedure can be used
when only minimal data are available for the analysis and only approximate
results are desired. The quick estimation method consists of six steps: assembly
of the input data, determination of left-turn treatment, lane volume
computations, estimation of signal timing plan, calculation of the critical 𝑣/𝑐
ratio, and calculation of average vehicle delay. 𝑣/𝑐 is represented Volume to
Capacity Ratios [32]. The worksheet in figure (4.5) can model four sections and
on intersection in which the traffic is regulated by traffic lights like the one in
figure (4.3). A given phase is active when its corresponding place is marked.
Figure (4.6) represent design of traffic system shown in figure (4.5). Table (4.1)
is a description of places in modeling intersection, while table (4.2) is a
description of transitions.
Chapter Four Application of Petri Nets
67
Figure (4.5) Worksheet of Intersection.
Chapter Four Application of Petri Nets
68
Figure (4.6) Petri net Modeling of Intersection.
ChapterFour Application of Petri Nets
69
Table (4.1) Description of Places in figure (4.6).
Place Description
𝒑𝟏,𝒑𝟔, 𝒑𝟏𝟏,𝒑𝟏𝟔 Represented the Red light.
𝒑𝟐,𝒑𝟕, 𝒑𝟏𝟐,𝒑𝟏𝟕 Represented the Yellow light.
𝒑𝟑,𝒑𝟖, 𝒑𝟏𝟑,𝒑𝟐𝟐 Represented the Green light.
𝒑𝟐𝟏,𝒑𝟐𝟒, 𝒑𝟐𝟕,𝒑𝟑𝟎 Represented controlling for moving tokens between lights
signals.
𝒑𝟐𝟐,𝒑𝟐𝟓, 𝒑𝟐𝟖,𝒑𝟑𝟏
Represented buffer to keeping the token where waiting 2 units
to repeat the organization of system.
𝒑𝟐𝟑,𝒑𝟐𝟔, 𝒑𝟐𝟗,𝒑𝟑𝟐
Using the enabling to another light signal or using to make the
lights signals working as a synchronization.
𝒑𝟒,𝒑𝟗, 𝒑𝟏𝟒,𝒑𝟏𝟗
Using after interval working the lights signals for the
intersection (interval of sleeping) where using as controlling to
flip-flop of Yellow light.
𝒑𝟓,𝒑𝟏𝟎, 𝒑𝟏𝟓,𝒑𝟐𝟎 Using to help of work the Yellow light flash.
𝒑𝟑𝟗 Using as buffer to keep token that using to count the working
interval.
𝒑𝟒𝟒
Using as Intermediate place that moving token to the counter of
sleeping interval.
𝒑𝟒𝟎,𝒑𝟒𝟏, 𝒑𝟒𝟐,𝒑𝟒𝟑
Using as buffers and using as enable to push tokens that
coming from places (𝑝21 , 𝑝24 , 𝑝27 , 𝑝30).
𝒑𝟒𝟓 Using as summing point to keep tokens.
𝒑𝟒𝟔
Using as media to change path of system and enabling to five
tokens from transition ( 𝑡42).
𝒑𝟒𝟕 Using as enabling to repeat tokens to places (Red light).
Chapter Four Application of Petri Nets
70
Table (4.1) Continued.
Place Description
𝒑𝟒𝟖
Can using as buffer to keep token until enough the time delay
of transition ( 𝑡44 ) and represent the time at wait (sleeping
interval).
𝒑𝟓𝟎 Using as buffer to end of the interval of sleeping.
𝒑𝟓𝟏
Using as buffer in the path of tokens that work as enabling to
push the tokens from places (Yellow flash).
𝒑𝟓𝟑 Using as summing point to sum the tokens from transitions.
𝒑𝟑𝟑,𝒑𝟑𝟒𝒑𝟑𝟓, 𝒑𝟑𝟔 Using as buffer to keep tokens from sensor the road
(Transition).
𝒑𝟑𝟕
Using as enabling to sum the tokens from light signals (as
enabling with capacity (1)) and change the cycle Traffic system
to response of emergencies.
𝒑𝟑𝟖 Using as buffer to move the tokens and repeated to cycle
Traffic system.
𝒑𝟓𝟐
Using as enabling to sum tokens from places after ending of
interval sleeping.
𝒑𝟓𝟒
Place with capacity (1) using to prevent the state emergency in
sleeping interval.
Chapter Four Application of Petri Nets
71
Table (4.2) Description of Transitions in figure (4.6).
Transition Description
𝒕𝟏, 𝒕𝟕, 𝒕𝟏𝟑, 𝒕𝟏𝟗 Using to moving tokens from Red lights (places) to Green
lights (places).
𝒕𝟑, 𝒕𝟗, 𝒕𝟏𝟓, 𝒕𝟐𝟏 These Timed transitions with delay time (23 units); after
ending the delay that moving tokens from Green light (places)
to Yellow light (places).
𝒕𝟐, 𝒕𝟖, 𝒕𝟏𝟒, 𝒕𝟐𝟎 These Timed transitions with Delay Time = 5 unit after
ending the Delay that moving tokens from Yellow light
(places) and deposit to Red light (places),(𝑝21 , 𝑝24 , 𝑝27 , 𝑝30),
and (𝑝22 , 𝑝25 , 𝑝28 , 𝑝31).
𝒕𝟓, 𝒕𝟏𝟏, 𝒕𝟏𝟕, 𝒕𝟐𝟑 Timed Transitions with Delay Time =2 units using as flash
yellow in the interval sleeping.
𝒕𝟒, 𝒕𝟏𝟎, 𝒕𝟏𝟔, 𝒕𝟐𝟐 Timed Transitions with Delay Time=2 units after ending the
Delay that moving tokens from ( 𝑝22 , 𝑝25 , 𝑝28 , 𝑝31 ) to
(𝑝23 , 𝑝26 , 𝑝29, 𝑝32).
𝒕𝟔, 𝒕𝟏𝟐, 𝒕𝟏𝟖, 𝒕𝟐𝟒 Is Immediate Transitions between Yellow places, buffer place,
and control yellow places.
𝒕𝟑𝟕 Timed Transition with Delay Time = (18*60*60) units using
as counter at Working Interval.
𝒕𝟑𝟖, 𝒕𝟑𝟗, 𝒕𝟒𝟎, 𝒕𝟒𝟏 Immediate Transitions that summing tokens from
(𝑝21 , 𝑝24 , 𝑝27 , 𝑝30).
𝒕𝟒𝟐 Immediate Transitions to push token from places (𝑝46 , 𝑝45) to
(𝑝21 , 𝑝24 , 𝑝27 , 𝑝32).
𝒕𝟒𝟑 Immediate Transitions to moving tokens from ( 𝑝44 ) and
(𝑝1 , 𝑝6, 𝑝11 , 𝑝16) to (𝑝49, 𝑝48).
Chapter Four Application of Petri Nets
72
Table (4.2) Continued.
Transition Description
𝒕𝟒𝟔 Immediate Transitions between ( 𝑝47 ) to ( 𝑝44 ) and (
𝑝1 , 𝑝6 , 𝑝11 , 𝑝16) Red places.
𝒕𝟒𝟕 Immediate Transition to push token from ( 𝑝50 ) and
( 𝑝5, 𝑝10 , 𝑝15 , 𝑝20 ) in Yellow flash to ( 𝑝39 ) (working
interval) and (𝑝51) that represent to buffer.
𝒕𝟒𝟖 Immediate Transition to push token from ( 𝑝51 ) and
(𝑝2, 𝑝7, 𝑝12 , 𝑝17) Yellow places to (𝑝52).
𝒕𝟓𝟎, 𝒕𝟒𝟗, 𝒕𝟓𝟏, 𝒕𝟓𝟐 Immediate Transitions to moving tokens from
(𝑝23 , 𝑝26 , 𝑝29, 𝑝32) to (𝑝53).
𝒕𝟓𝟑 Immediate Transition to push token from (𝑝53) to (𝑝47).
𝒕𝟐𝟓, 𝒕𝟐𝟕, 𝒕𝟐𝟗, 𝒕𝟑𝟏 Immediate Transitions where these called source
transition to used to sense the emergency states.
𝒕𝟐𝟔, 𝒕𝟐𝟖, 𝒕𝟑𝟎, 𝒕𝟑𝟐
Immediate Transitions used as :
-to push from 𝑝33 , 𝑝38 to𝑝21 , 𝑝24 , 𝑝27 , 𝑝32 .
-to push from 𝑝34 , 𝑝38 to𝑝24 , 𝑝23 , 𝑝27 , 𝑝30 .
-to push from 𝑝35 , 𝑝38 to𝑝21 , 𝑝26 , 𝑝27 , 𝑝30 .
-to push from 𝑝36 , 𝑝38 to𝑝21 , 𝑝24 , 𝑝30 , 𝑝29.
𝒕𝟒𝟒 Timed Transition with Delay Time = (6*60*60) units
using as counter at Sleeping Interval.
𝒕𝟑𝟒, 𝒕𝟑𝟓, 𝒕𝟑𝟔, 𝒕𝟑𝟑 Immediate Transition using to moving tokens from cycle
in The Traffic system and summing in token and to send
the sensor that is enable to change the cycle at Traffic.
Chapter Four Application of Petri Nets
73
Table (4.2) Continued.
Transition Description
𝒕𝟒𝟓
Immediate Transition Enable and firing in Sleeping
interval tokens to control yellow places.
𝒕𝟓𝟒, 𝒕𝟓𝟓, 𝒕𝟓𝟔, 𝒕𝟓𝟕, 𝒕𝟓𝟖 Immediate Transition using to prevent any emergency
state occurring.
4.2.7 Controlling of Traffic Lights in Intersection.
The intersection in figure (4.5) is consisting of four lanes crossing, four
Traffic signals. The modeling of Intersection is representing Traffic signal as a
duplicate for each side of road. In figure (4.6) model of intersection is designed
by using methods in design, analysis, and controlling for work intersections in
the field of Traffic Engineering. Using in modeling of intersection Timed
Transition Petri net (TTPN). Figure (4.6) consists of place and Transition that
explained in Table (4.1) and Table (4.2). The modeling is able to running tasks
for each lane and synchronizations by Time. This Time is evaluated and divided
by using cycle Timing length for intersection explained in work sheet (figure
(4.5) that contains the values of minimum and maximum of cycle Time), which
evaluated by using equations and analysis in Traffic Engineering for ways. The
cycle Timing length depends on components as Density (That represented
number of vehicles per hours), number of phasing, and width of street, etc. The
modeling in figure (4.6) is designed by using HPsim (2001) program. The net
for modeling consist of (54) place, (58) Transitions, and (216) arcs.
Chapter Four Application of Petri Nets
74
The model work is described in the following:
(1) In the start working of the net:
(i) To start the time delay associated with transition (𝑡37 ) to clock
down to become the value of time delay (64800 units) equal to
zero. The net begin to work in interval which is called (Working
interval) that work to change and control the lanes in the
intersection.
(ii) After timing is divided in cycle time which working to enable of
transitions in Traffic signal, and clock down of timed transition in
the model. The traffic lights are changed from Red to Green then to
Yellow and back to Red when the delaytime associated with
transition is finished.
(iii) After ending of time delay (5 units) associated with transition (𝑡2)
between Yellow place, and Red place, and place ( 𝑝21 ) (that
represent buffer between transition (Yellow-Red) and place
enabling) fire token and it is deposited to (𝑝22) (Enable place), and
to (𝑝1) (Red place).
(iv) The time delay (2 units) associated with transition (𝑡4) is finished
(this transition using as to repeat organization of paths after
moving token to another traffic signal, or avoid occurrences in the
intersection), fire token to the place (𝑝23 ). This fire token is
enabling to other traffic signal and begin the cycle which is
followed to the Traffic signal start from new.
(v) The immediate transition (𝑡7), firing token and deposit it to place
(Green place) and place (𝑝21) (attach with previous Traffic signal)
that using for controlling Traffic lights in the signal. The token in
place Green place (𝑝8); the timed transition (𝑡9) associated with
delay time (23 units), clock down reach to value zero, and fire
Chapter Four Application of Petri Nets
75
token to place Yellow place (𝑝7). The work of the model continues
as the same as explained in step (iii).
(vi) The counter of working interval still count to the end of time
interval in the Intersection.
(vii) During the work of this cycle, it is possible for the emergency
states to occur in running of cycle time to the intersection. These
states are represented Police cars, Relieving cars and Assuaging
cars. The solution of emergency states is opening the way to these
cars.
(viii) The immediate transitions (𝑡25 , 𝑡27 , 𝑡29, 𝑡31 ) as source transitions
that sense any event occurs by representing the emergency cases,
and change the cycle of traffic signals (crossing) to the Green light,
or running the Go interval of that lane which contain the
emergency state and continuous the work from these lane in the
intersection.
(2) Time delay that is associated with transition (𝑡37) is equal to zero. The
Working interval is ended and starts the Sleeping interval. Token is fired
and it is deposited to place ( 𝑝44 ) that connect with immediate
transition (𝑡43). And push tokens from Red places (𝑝1 , 𝑝6 , 𝑝11 , 𝑝16), and
fires these token to places (𝑝49 , 𝑝48 ), and (𝑝40 , 𝑝41 , 𝑝42 , 𝑝43 ). Places
( 𝑝40 , 𝑝41 , 𝑝42 , 𝑝43 ) are represented buffer and enabling places that
connects with transitions (𝑡38 , 𝑡39 , 𝑡40 , 𝑡41) . These transitions are
connecting with places ( 𝑝21 , 𝑝24 , 𝑝27 , 𝑝30 ) (that representing places
condition to work in the cycle of intersection). The works of transitions
(𝑡38 , 𝑡39 , 𝑡40 , 𝑡41) are pushing token from places conditions (that
representing enable of move token between traffic signals in intersection).
These transitions are fire tokens to place (𝑝45) that it is having capacity
bounded and that using as buffer. Place (𝑝45) is connects with transition
Chapter Four Application of Petri Nets
76
(𝑡42) by arc (with weight (3)). In place (𝑝49) using to run the interval of
Sleeping. Sleeping interval is working as Yellow Flash in each traffic
signal. Place (𝑝48) is using as buffer for timed transition (𝑡44) (associated
with time delay (9600 units)). Transition (𝑡44) is counted down to equal
the zero (starting interval of Working).
(3) Yellow flash is working, after starting the interval of Sleeping. After
coming the token from (𝑝40), the transition (𝑡35) is fired tokens to places
(𝑝4, 𝑝9, 𝑝14 , 𝑝19) . These places are connected with timed transition
(𝑡5, 𝑡11 , 𝑡17 , 𝑡23) (associated with time delay (2 units)). Transitions
(𝑡5, 𝑡11 , 𝑡17 , 𝑡23) are using to connect between Yellow
places(𝑝2, 𝑝7 , 𝑝12 , 𝑝17) and places(𝑝5, 𝑝10 , 𝑝15 , 𝑝20). These transitions are
working in Yellow flash of each traffic signal after firing transitions
(𝑡6, 𝑡12 , 𝑡18 , 𝑡24) (with delay time (2 units) in each one).
(4) Through the work of the model in sleeping interval, it's possible the
sensors sense of emergency states in each lane of the intersection. By
using place (𝑝54) that is marking after firing transition (𝑡37) (timed
transition). Place (𝑝54) is connects with transitions (𝑡54 , 𝑡55 , 𝑡56 , 𝑡57 , 𝑡58)
(these are connect with places (𝑝33 , 𝑝35 , 𝑝36 , 𝑝37 , 𝑝38)) to avoid the failed
state through the working of Yellow flash in Sleeping interval. Place
(𝑝54) is connects with transition (𝑡44) also which is using as another
condition to control of firing it.
(5) Sleeping interval is ended. The transition (𝑡44 ) is fired token to place
(𝑝40 ) and immediate transition (𝑡47 ). The transition (𝑡47 ) is enabled
because places (𝑝5, 𝑝10 , 𝑝15 , 𝑝20) are marking that connects with it. Places
(𝑝5, 𝑝10 , 𝑝15 , 𝑝20) are used to enabling of Yellow Flash work. It is fires
tokens to places (𝑝39 , 𝑝51) (where (𝑝39) as buffer to working interval),
controlling place (𝑝51 ) is using with places (𝑝2, 𝑝7, 𝑝12 , 𝑝17 ) (Yellow
places). Place (𝑝51) is connects with transition (𝑡48) to sum token and it is
Chapter Four Application of Petri Nets
77
fires to place (𝑝53). Place (𝑝53) is connects with transition (𝑡53) is fires
token to place (𝑝47) after is enabling. The transition (𝑡46) is fires tokens
to Red places (𝑝1, 𝑝6, 𝑝11 , 𝑝16), and place (𝑝46). Place (𝑝46) is using as
buffer and enabling to transition (𝑡42 ) that it is fires tokens to places
(𝑝21 , 𝑝24 , 𝑝27 , 𝑝32 ) (these places are represent the initial cycle of the
intersection).
4.2.8 Analysis of Modeling.
Figure (4.6) can be analyzed by using the program explained in appendix
(A), and the result of analysis shown in the appendix (A). Steps of analysis are:
1. A Petri net under assumption is drawn in graphical editor PM Editeur.
2. Save as the modeling in the form ('filename.rdp').
3. Using the functions in the appendix (A) as representing inputs and output
of the model are:
(i) Number of places, number of transitions, and number of arcs.
(ii) 𝑊 that represent input transition matrix.
(iii) 𝑊1 that represent output transition matrix.
(iv) 𝐴 incidence matrix.
(v) The P-invariant.
Figure (4.7) is viewing Marking of the model is explained in figure (4.6).
It is explaining distribution tokens in places where x-axis is represents index of
places, and y-axis is represents initial marking of each place in figure (4.6).
Timed Transition is explained in figure (4.8). X-axis is represents index of
transition, and y-axis is represents delay time that associated with each
transition in model is viewed in figure (4.6).
Chapter Four Application of Petri Nets
78
Figure (4.7) Marking of Intersection model.
Figure (4.8) Timed Transition of model in figure (4.6).
Chapter Four Application of Petri Nets
79
4.2.9 Petri Net Model versus Other Models.
Macroscopic models depend on the design of three variables which are
velocity, density, and volume. These parameters are used to design models of
traffic systems. Model is design by considering only two parameters i.e. by
using velocity and density, or volume and density, or velocity and volume.
Designing the Macroscopic model is primary depending on the behaviour of
street. Microscopic models are interacting with three elements which are; (1) the
driver elements (age, sex, the vision degree, the learning degree, etc.); (2) the
vehicle elements (motor power, width, length, height, etc.); (3) the road
elements (asperity degree of the road, the mile, ability of the gambit, etc.).
These elements should be used to design Microscopicmodel. Microscopic
model is considered more effective in working than Macroscopic model, but the
software and the design that been used in the Microscopic model are more
complex than Macroscopic model. Petri Net is more flexible than the previous
two models. Petri Net used to design the Intersection model by using signal
timing and requirements of the Intersection designing according to Traffic
Engineering. Signal timing is evaluated by using parameters which are
depending on road elements, driver elements, Intersection geometry, and
specification of road, etc. This model has many parameters and it is satisfied
specifications and behaviors of Intersections and drivers. Petri Net has many
properties that make the model more powerful in controlling and changing of
the model behaviour in practical application. In [34], control the vehicle flow in
the considered area has been viewed. It is proved that Petri nets are one of the
methodologies for modeling, analyzing and controlling on discrete event
system. A new approach via programmable logic controller (PLC) and Petri net
synthesis is proposed in [34]. PLC can be linked with computer network. PLC
has he advantages of flexibility, reliability, simpleness and small size. The PLC
is used in the execution of automation tasks such as transfer lines,
Chapter Four Application of Petri Nets
80
manufacturing plants and chemical batch processes [34]. PLC can be considered
as programming language in the execution of automation tasks while Petri net
can be considered either graphical and mathematical tool or information stream
to the modeling.
4.3 Rapid Thermal Processing.
Integrated circuits are at the heart of all electrical appliances. These are
based mainly on semiconductor devices, which are fabricated in a sequence of
batch chemical processes such as chemical vapor diffusion (CVD), oxidation,
nitration, ion implantation, and annealing. Incremental improvements in
integrated circuit technology, together with increased performance demands
from semiconductor devices, have gradually led to requirements that the
variation in the key quality variables be reduced and to the increased yields
afforded by larger diameter silicon wafers. This in turn has increased the
reliance of the microelectronics industry on advanced process control (APC)
strategies, and to seek new fabrication methods. Thermal processes play an
important role in the fabrication of semiconductor chips in the microelectronics
industry. Shrinking device dimensions to the sub-micron range make stringent
demands on the thermal processing of semiconductor wafers. The wafer should
spend the minimal time close to the process temperature to reduce the solid-
state diffusion of do pants introduced in the previous fabrication steps. The
drive to reduce this “thermal budget” and the tight quality demands gave birth
to a new technology: single wafer processing (SWP). SWP systems must heat
up and cool down quickly in order to compete economically with multi-wafer
technology, and this has led to the development of rapid thermal processing
(RTP) [35].
RTP as in figure (4.9) involves the processing of single silicon wafers,
and is used for various processes for the manufacture of semiconductor devices,
Chapter Four Application of Petri Nets
81
such as rapid thermal annealing (RTA), rapid thermal oxidation (RTO), rapid
thermal chemical vapor deposition (RTCVD) and rapid thermal nitration
(RTN).
A typical RTP operating cycle consists of three phases: [36]
(1) Rapid heating to the desired operating temperature.
(2) The processing phase, in which temperature is held constant.
(3) Rapid cooling to ambient conditions.
Figure (4.9) Concepts of RTP.
Chapter Four Application of Petri Nets
82
4.3.1 System Description.
A schematic diagram of the RTP system is shown in Figure (4.10), which
is composed of:
1. A reaction chamber with a door.
2. A robot arm for wafer loading/unloading.
3. A gas supply module with a mass flow controller and pressure controller-
I.
4. A heating lamp module with a temperature controller.
5. A flush pumping system with a pressure controller-II.
Figure (4.10) Schematic diagram of the RTP system.
Chapter Four Application of Petri Nets
83
The specification of working the RTP as bellow:
1. Load the raw wafer.
2. Close the chamber door.
3. Open the gas valve to supply gases with a desired gas flow rate and
pressure of 2.8 liters per minute (lpm) and 0.5 Torr, respectively.
4. Close the gas valve.
5. Turn on the heating lamp to bake the wafer with a desired baking
temperature and duration of 1000℃ and 4 seconds, respectively.
6. Turn off the heating lamp to cool down the chamber to a desired
temperature of less than 20℃.
7. Turn on the flush pump with a desired pressure of less than 0.05 Torr.
8. Turn off the flush pump.
9. Open the chamber door.
10. Unload the processed wafer.
The initial state of the components in the RTP is either closed or off, except
that the door is open. The following safety specifications and the constraints of
supervisory plant that must be enforced throughout system operation are
following: [37]
1. Wafer Loading is allowed only when no wafer is in the chamber.
2. Wafer Loading/unloading is allowed only when the door is open.
3. The gas valve must be closed when the flush pump is applied to the
chamber.
4. The gas valve, heating lamp, and flush pump cannot be started when the
door is open.
Chapter Four Application of Petri Nets
84
4.3.2 Modeling of Controller.
The specifications can be satisfied and involved in the sequence
controller in the present automatic control mode. By applying the task-oriented
concept, the PN model for the automatic control mode of the RTP is constructed
as shown in Figure (4.11), which consists of 26 places and 20 transitions. The
description of places and transitions are shown in table (4.3) and table (4.4),
respectively.
Table (4.3) Description of Places to figure (4.9).
Place Description
𝑷𝟏 Represent the Raw wafer buffer.
𝒑𝟐 Represent the Loading wafer.
𝒑𝟑 Represent the Loading wafer completed.
𝒑𝟒 Closing chamber door.
𝒑𝟓 Closing chamber door completed.
𝒑𝟔 Opening gas valve.
𝒑𝟕 Mass flow controller ready.
𝒑𝟖 Pressure controller-I ready.
𝒑𝟗 Opening gas valve completed.
𝒑𝟏𝟎 Closing gas valve.
𝒑𝟏𝟏 Closing gas valve completed.
𝒑𝟏𝟐 Turning on heating lamp.
𝒑𝟏𝟑 Turning on heating lamp completed.
𝒑𝟏𝟒 Temperature controller ready.
𝒑𝟏𝟓 Turning off heating lamp.
Chapter Four Application of Petri Nets
85
Table (4.3) Continued.
Places Description
𝒑𝟏𝟔 Turning off heating lamp completed.
𝒑𝟏𝟕 Turning on flush pump.
𝒑𝟏𝟖 Turning on flush pump completed.
𝒑𝟏𝟗 Pressure controller-II ready.
𝒑𝟐𝟎 Turning off flush pump.
𝒑𝟐𝟏 Turning off flush pump completed.
𝒑𝟐𝟐 Opening chamber door.
𝒑𝟐𝟑 Opening chamber door completed.
𝒑𝟐𝟒 Unloading wafer.
𝒑𝟐𝟓 Unloading wafer completed.
𝒑𝟐𝟔 Processed wafer buffer.
Table (4.4) Description of Transitions in figure (4.9).
Transition Description
𝒕𝟏 Represent the start loading wafer.
𝒕𝟐 Represent the end loading wafer.
𝒕𝟑 Start closing chamber door.
𝒕𝟒 End closing chamber door.
𝒕𝟓 Represent the start opening gas valve.
𝒕𝟔 End opening gas valve.
𝒕𝟕 Represent to start closing gas valve.
𝒕𝟖 Represent to Pressure controller-I ready.
Chapter Four Applicationof Petri Nets
86
Table (4.4) Continued.
Transition Description
𝒕𝟗 Start turning on heating lamp.
𝒕𝟏𝟎 End turning on heating lamp.
𝒕𝟏𝟏 Start turning off heating lamp.
𝒕𝟏𝟐 End turning off heating lamp.
𝒕𝟏𝟑 Start turning on flush pump.
𝒕𝟏𝟒 End turning on flush pump.
𝒕𝟏𝟓 Start turning off flush pump.
𝒕𝟏𝟔 End turning off flush pump.
𝒕𝟏𝟕 Start opening chamber door.
𝒕𝟏𝟖 End opening chamber door.
𝒕𝟏𝟗 Represent to start unloading wafer.
𝒕𝟐𝟎 End unloading wafer.
In the figure (4.9) description of design modeling to the RTP without
using supervisory to keeping in the safety state in this modeling, this model can
be called the automatic controller of the system.
Chapter Four Application of Petri Nets
87
Figure (4.11) The PN model for control of the RTP system.
Chapter Four Application of Petri Nets
88
4.3.3 The Supervisory Controller of RTP.
For manual control mode, the plant model is formed by disconnecting
each pair of transitions for the tasks in Figure (4.11). In the specification model,
Specifications (1) and (2) can be modeled as the pre-conditions of the associated
operations, while Specifications (3) and (4) are built by using the mutual
exclusion concept. The PN model of both the plant and specifications is
designed by supervisory Petri net explained in figure (4.10). Where from (A) to
(J) are represent ten controllable tasks for the RTP system. The supervisory
places 𝑝𝑠 consist of (7) places as ( 𝑝𝑠1 for Specification (1), 𝑝𝑠2 , 𝑝𝑠3 for
Specification (2), 𝑝𝑠4 for Specification (3), 𝑝𝑠5 , 𝑝𝑠6 , 𝑝𝑠7 for Specification (4)).
These tasks and specification represent the safety operation to the system, and
divided these specifications into (7) places are used to prevent undesired and
unsafe operations on the part of controller and system operator. Corresponding
to the descriptions for the supervisory places they are described in Table (4.5).
At this stage, it is chosen to verify the behavioral properties of the PN model
due to its graphical representation, ease of manipulation, and ability to perform
structural and performance analyses. Results of analysis reveal that the present
PN model is live and bounded. The liveness property means that the system can
be executed properly without deadlocks, while the boundedness property means
that the system can be executed with limited resources (e.g., limited buffer
sizes).
Chapter Four Application of Petri Nets
89
Figure (4.12) Description of the supervisory Petri net to RTP.
Chapter Four Application of Petri Nets
90
Table (4.5) Description of the places of supervisor control.
Place Description
𝑷𝒔𝟏 Control to the chamber is empty.
𝒑𝒔𝟐 Using to control in the chamber door is open.
𝒑𝒔𝟑 Using to chamber door is open.
𝒑𝒔𝟒 Represent the gas is closed/pump is off.
𝒑𝒔𝟓 Represent the door is closed/lamp is off.
𝒑𝒔𝟔 Represent the door is closed/gas is closed
𝒑𝒔𝟕 Represent the door is closed/pump is off.
In this model can be describing the sub classes in the modeling shown in
figure (4.12) can be described as points in the following:
A. The (𝑡1 , 𝑝2, 𝑡2 , 𝑝3) used as Load wafer.
B. The (𝑡3 , 𝑝4 , 𝑡4, 𝑝5) used as Close chamber door.
C. The (𝑡5 , 𝑝6 , 𝑡6, 𝑝9) used as Open gas valve.
D. The (𝑡7 , 𝑝10 , 𝑡8, 𝑝11) used as Close gas valve.
E. The (𝑡9, 𝑝12 , 𝑡10 , 𝑝13) used as Turn on heating lamp.
F. The (𝑡11 , 𝑝15 , 𝑡12 , 𝑝16) used as Turn off heating lamp.
G. The (𝑡13 , 𝑝17 , 𝑡14 , 𝑝18) used as Turn on flush pump.
H. The (𝑡15 , 𝑝20 , 𝑡16 , 𝑝21) used as Turn off flush pump.
I. The (𝑡17 , 𝑝22 , 𝑡18 , 𝑝23) used as Open chamber door.
J. The (𝑡19 , 𝑝24 , 𝑡20 , 𝑝25) used as Unload wafer.
Chapter Four Application of Petri Nets
91
The Functions of analysis the model in figure (4.10) and result is explained
in appendix (B). Where parameters using in analysis are:
Dm: the input matrix as (D−), Dp : the output matrix as (D
+), m0: initial
marking, 𝐷 : incidence matrix, 𝑝: represent place invariant, and 𝑇 : represent
transition invariant. Reachability tree as nodes is explained in appendix (B).
Figure (4.13) is explaining Marking of the model in figure (4.12). This
model is represents closed loop system.
Figure (4.13) Marking of closed loop control in the figure (4.12).
Chapter Four Application of Petri Nets
92
4.4 Fault Diagnosis Application.
Electric Control System is deployed widely in equipment and devices,
such system has specific action for purpose of different engineering application.
Recently with the combined technology of computer science, sensor, network
and communication, electric control system overall performance is improved
greatly, at the same time, the scale of the system is also becoming large, and
system structure is tend to be more complex. Because the system is complicated
and the number of electric component used in the system is huge, fault
occurrence is inevitable, and the possible fault factor is complex and
changeable, any fault in the system will result in dramatic economic loss and
serious consequence. On the other hand, more concern is focused on the
requirement for the electric control system safety improvement. When fault is
avoided and reliability is improved, maintenance cost and service time will be
reduced effectively.
Failure analysis and reliability for single electric component is
investigated, while little research is carried out for the fault diagnosis and
location from the view of the full electric control system. As the fundamental of
the electric control system is to realize on/off function, process control, signal
regulation and transform, logic control and protection, it is therefore in a
dynamic and unstructured environment, hence a model-based diagnosis is very
difficult to establish.
4.4.1 Modeling of Fault Diagnosis.
As for the Fault Diagnosis in Electric Control System, Neural Petri net
model is deduced. Possible fault of electric components is treated as places, and
corresponding fault relationship among electric components is treated as
transition. In this way, fault diagnosis process in electric control system is
therefore converted into relationship between places and transitions of Neural
Chapter Four Application of Petri Nets
93
Petri net, and after process is finished, true value for output places imply the
condition of possible fault occurrence. Electric control system which is used for
aerospace power supply is discussed, as shown in figure (4.14). The operation
function for the system is divided into three separate sub systems, which are
storage battery supply control system, external supply control system and
generator supply control system respectively. Operation logic for each supply
control system is as follows: [38]
For storage battery supply. In this case, storage battery contactor RBC
and bus bar breaker BTB are switched on, and then bus bar REBUS,
RGBUS, LGBUS, and LEBUS is activated.
For generator supply. In this case, breaker LEPC and REPC is
disconnected respectively, and generator breaker LGB and RGB are
switched on, and then bus bar RGBUS, REBUS, LGBUS and LEBUS is
activated.
For external supply. In this case, external breaker LEPC and REPC are
switched on, and then bus bar RGBUS, REBUS, LGBUS and LEBUS is
activated.
In the entire Electric Control System, possible fault condition for major
electriccomponents of LGBUS, RGBUS,LEBUS, REBUS, LEPC, REPC,
LGB, RGB, BTB and RBC are represented as places, the relationship between
components are represented by transition, which is shown in figure (4.15).
Chapter Four Application of Petri Nets
94
Figure (4.14) Electric Control System for Power Supply.
Figure (4.15) The NPN model for Fault Diagnosis of Electric Control.
𝑤102
𝑤14
𝑤13
𝑤12
𝑤11
𝑤101
𝑤15
𝑤103
𝑤104
𝑤105
𝜃1
𝜃5
𝜃2
𝜃3
𝜃4
𝑣11
𝑣12 𝑣13
𝑣51
𝑣52
𝑣53
Chapter Four Application of Petri Nets
95
4.4.2 Description of the Fault Diagnosis Model.
Figure (4.15) shows two-layer network. One input transition (𝑡𝑖) is
connected to each input place (𝑝𝑖) that represented an input (token) to the
network. The input place-transition arc weights are fixed to 1. The thresholding
transition 𝑇 that connected to hidden places will be established. The arc
between hidden places and transition will have the weight with the value equal
to 1. The weight 𝜃𝑖 in the figure (4.15) of the arc between 𝑃𝑖 − 𝑇𝑖will be fixed to
1. The two trainable weight layers are constituted by 𝑤𝑖𝑗 and 𝑣𝑖𝑗 . The
description of places and transitions are explained in tables (4.6), and (4.7).
Table (4.6) Description of the places in the model of fault diagnosis.
Place Description
𝒑𝟏 The input place of LGBUS.
𝒑𝟐 The input place of RGBUS.
𝒑𝟑 The input place of LEBUS.
𝒑𝟒 The input place of REBUS.
𝒑𝟓 The input place of BTB.
𝒑𝟔 The input place of RBC.
𝒑𝟕 The input place of LGB.
𝒑𝟖 The input place of RGB.
𝒑𝟗 The input place of REPC.
𝒑𝟏𝟎 The input place of LEPC.
𝑷𝟏, 𝑷𝟐, 𝑷𝟑, 𝑷𝟒, 𝑷𝟓 Places of hidden layer.
𝒑𝟏𝟏 The output place of storage battery supply.
𝒑𝟏𝟐 The output place of generator supply.
𝒑𝟏𝟑 The output place of external supply.
Chapter Four Application of Petri Nets
96
Table (4.7) Description of the transition to the figure (4.15).
Transition Description
𝒕𝟏 Transition connects with place of LGBUS.
𝒕𝟐 Transition connects with place of RGBUS.
𝒕𝟑 Transition connects with place of LEBUS.
𝒕𝟒 Transition connects with place of REBUS.
𝒕𝟓 Transition connects with place of BTB.
𝒕𝟔 Transition connects with place of RBC.
𝒕𝟕 Transition connects with place of LGB.
𝒕𝟖 Transition connects with place of RGB.
𝒕𝟗 Transition connects with place of REPC.
𝒕𝟏𝟎 Transition connects with place of LEPC.
𝑻𝟏, 𝑻𝟐, 𝑻𝟑, 𝑻𝟒,𝑻𝟓 Transitions connect with places in the hidden layer.
The set of 𝐾 input-output 𝑥𝑖 ,𝑦𝑖 , 𝑖 = 1,2,… . . , 𝐾 samples training NPN by
using Backpropagation type rule. The inputs and outputs of figure (4.15) are:
𝑥1 = (𝐿𝐺𝐵𝑈𝑆, 𝑅𝐺𝐵𝑈𝑆, 𝐿𝐸𝐵𝑈𝑆, 𝑅𝐸𝐵𝑈𝑆, 𝐵𝑇𝐵, 𝑅𝐵𝐶, 𝐿𝐺𝐵, 𝑅𝐺𝐵, 𝑅𝐸𝑃𝐶, 𝐿𝐸𝑃𝐶)
𝑇
= (0,0,0,0,0,0,1,1,1,1)𝑇 .
𝑦1 = (storage battery supply, generator supply, external supply)
T
= (1,0,0)T .
𝑥2 = (𝐿𝐺𝐵𝑈𝑆, 𝑅𝐺𝐵𝑈𝑆, 𝐿𝐸𝐵𝑈𝑆, 𝑅𝐸𝐵𝑈𝑆, 𝐵𝑇𝐵, 𝑅𝐵𝐶, 𝐿𝐺𝐵, 𝑅𝐺𝐵, 𝑅𝐸𝑃𝐶, 𝐿𝐸𝑃𝐶)
𝑇
= (0,0,0,0,1,1,0,0,1,1)𝑇 .
𝑦2 = (storage battery supply, generator supply, external supply)
T
= (0,1,0)T .
Chapter Four Application of Petri Nets
97
𝑥3 = (𝐿𝐺𝐵𝑈𝑆, 𝑅𝐺𝐵𝑈𝑆, 𝐿𝐸𝐵𝑈𝑆, 𝑅𝐸𝐵𝑈𝑆, 𝐵𝑇𝐵, 𝑅𝐵𝐶, 𝐿𝐺𝐵, 𝑅𝐺𝐵, 𝑅𝐸𝑃𝐶, 𝐿𝐸𝑃𝐶)
𝑇
= (0,0,0,0,1,1,1,1,0,0)𝑇 .
𝑦3 = (storage battery supply, generator supply, external supply)
T
= (0,0,1)T .
After training, the weights of the model in the figure (4.12) are decrypted
in the table (4.8).
Table (4.8) Description of the weights in figure (4.12).
Node Connection Weight Node Connection Weight
1
1
1
1
1
1
1
1
1
1
2
2
2
2
1
2
3
4
5
6
7
8
9
10
1
2
3
4
0.04519
-0.23124
0.15183
0.26706
1.18091
0.87157
-0.09321
0.22652
-1.04460
-0.85331
-0.27454
0.10156
0.25835
-0.19055
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
3
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
0.33095
0.23143
-0.09773
-0.04448
-1.05115
-0.63375
0.20315
-0.00687
0.14750
-0.20742
0.20414
0.27789
-0.15094
0.09661
1.29033
0.88962
Chapter Four Application of Petri Nets
98
Table (4.8) Continued.
Node Connection Weight Node Connection Weight
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
-0.26389
-0.23008
0.19106
0.19560
-0.59583
-0.37235
0.59905
0.10005
-0.52794
-0.52704
-0.32833
0.11472
0.05162
-0.31863
1.11590
0.97207
-1.05690
-1.04717
0.41031
0.29832
1
1
1
1
1
1
2
2
2
2
2
2
3
3
3
3
3
3
1
2
3
4
5
6
1
2
3
4
5
6
1
2
3
4
5
6
-1.41823
-1.02427
-0.00244
0.14718
-1.43289
0.37186
0.05541
-0.66992
-0.34887
-1.11723
1.54493
-0.43956
1.31963
0.68154
-1.39861
0.51547
-0.73126
0.24226
Qnet program has been used to train this model, and the result of training
is explained in the appendix (C). Two layers are used in model of Fault
diagnosis. Gaussian function is used as activation function in each layer. Root
mean square error (RMS) versus iteration of training is explained in figure
(4.16).
Chapter Four Application of Petri Nets
99
Figure (4.13) RMS versus iteration of training.
The inputs of Networks represent the states of (LGBUS, RGBUS,
LEBUS, REBUS, BTB, RBC, LGB, RGB, REPC, and LEPC) (the information
from control components when fault occurs). The faults occur, the value of
input place is 1, in contrary the value is 0. The outputs of networks represent the
state of electric control system. If the value is 1, it means that there is a fault on
the electric control corresponds with the output. If the value is 0, it means that
electric control system is not faulted.
Chapter Four Application of Petri Nets
100
4.4.3 Neural Petri Net versus Other Petri Net Models.
In [42], fuzzy Petri net reasoning for fault diagnosis of electric control
system has been used. Based on fuzzy production rule, the improved fuzzy Petri
net reasoning model has achieved by matrix parallel computation, and existing
diagnosis knowledge are combined together to form a function matrix that is
used to describe transfer of places and transitions in the fuzzy Petri net. Analytic
hierarchy process (AHP) is employed to determine the initial certainty factor for
intermediate places, which allows multiple objective factors to be considered in
the fuzzy Petri net reasoning model.
NPN is dealing with large and more complex systems, for example the
time parameter, and the on-line security analysis. NPN Diagnosis only takes a
few seconds to complete. Therefore, the result of fault diagnosis can be used for
online control. In [42] parallel computers and complex of design are required
while in NPN easy implementation in sequential computing can be used with
less number of parameters.
Chapter Five
Conclusions and
Future Work
Chapter Five Conclusions and Future Work
101
5.1 Conclusions.
1. In the application of Traffic lights and Intersection model, advantages of
the design are:
i. The net is liveness, bounded structural, and Reversibility and
Home state in the behavior properties.
ii. The model working in real time, and insert the time delay of each
lane accordingto cycle time in the intersection.
iii. The bounded place ( 𝑝54 ) (capacity of place is one) prevent
occurring error because occur more than one of state emergency in
the same time.
iv. This model contains two intervals (the working interval and
sleeping interval), each interval is working lonely with different
tasks. Each interval liveness, bounded, and reversibility behavior
properties; and in the model there is a group of places working as a
control to transform between intervals.
v. This model contains conditions of safety in organization of traffic
in intersection according to rules in Traffic Engineering.
vi. Using timed transition that contains internal timer which the
transition is enabled, the timer is decremented at constant speed
until reaches the value zero, and the next do not accumulator the
delay when tokens are travel between places, transition, and arcs.
vii. This model is strongly connected and not affected by numbers of
conflicts (57) in the system.
viii. The model is dead-lock free in the sleeping interval by using place
(𝑝54) to sum tokens of state emergency that occur in this interval.
2. The model of intersection contains disadvantages:
i. Modeling of system is huge because the number of places,
transition, and arcs. The analysis of it causing error occurring.
Chapter Five Conclusions and Future Work
102
ii. The time associated with timed transitions is constant parameters.
iii. Complex of control the Traffic lights and controlling it in two
intervals (working, sleeping), and synchronization between them.
3. The new ideas in the model of Traffic lights and Intersection are as
following:
i. Using timed transition Petri nets in modeling with small number of
transition associated with delay time.
ii. Adding the counter to count the interval of working in intersection,
and control of working it and synchronization with another interval
called sleeping that represent the interval of Traffic ending of
work.
iii. During the sleeping interval; the traffic Yellow light is turning as
flash.
iv. Used in the design of model pretimed system (type of signal
controller).
v. Adding the emergency states to the modeling.
vi. Adding transition associated with (2 units) time delay using as to
repeat organization in intersection to prevent occurring of
accidents.
4. In the literature survey of Traffic model by using Petri net, introducing a
macroscopic model for traffic systems based on a continuous / hybrid
Petri nets as in [13]. Another paper using model to flow of driver, and
modeling to the Traffic signal by using Timed place Petri net and timed
arcs, and concurrent the work of Traffic system without control
conditions. While in this thesis modeling of intersection is introduced
which controll by condition in real time by using timed transition and
untimed transition.
Chapter Five Conclusions and Future Work
103
5. Advantages of Rapid Thermal Process are:
i. Design supervision model (manual).
ii. The model enforces bounded property, liveness, and safety
constraint by restricting the commands available to human
operators.
iii. Plant and specifications of the system Composed by Petri net
modeling.
iv. Controllable tasks (A-J) for the system that represented by formed
plant model.
v. According to the feedback status of the located system, the
designed supervisory guarantees that all requested commands
satisfy the desired specifications.
6. Disadvantage of the model is operated in sequential relation in Petri net.
7. The new idea in the modeling of supervisor is separate the transitions and
places to make the model are controllability.
8. Advantages of Fault Diagnosis Electric Control System are:
1. The NPN has a practical importance.
2. The memory requirement is also reduced and the computations for
NPN are greatly simplified.
3. Backpropagation type training algorithms may be employed of
networks.
4. The model uses less number of parameters, so it reduces the overall
computational complexity of the model.
5. Fault diagnosis can be used for online control, for diagnosis only takes
a few seconds to complete.
6. It is easy to realize computation model for large and complex system
that has many component need to diagnosis.
Chapter Five Conclusions and Future Work
104
9. Disadvantage of the model is choice number node in hidden layer and
training of the net.
10. The new ideas using in the model of Fault Diagnosis Electric Control
System are:
1. Gaussian function as the activation functions for each layer.
2. The weights of the model are real values.
5.2 Future Work.
We suggest to us Petri net in the felly fields:
1. Using the Petri net in transformers in process in the field of Digital Signal
Processing (as modeling to Wavelate transform, Orthogonal
transformation, etc.).
2. Design parallel computers by using stochastic Petri net model.
3. Using coloured Petri net with Artificial intelligent as Neural Network.
Because the CPN is combination of Petri nets and programming
language, and as using with fuzzy where the result reduce the
computation time and complexity. The resulted new model is coloured
neural Petri net, and/or fuzzy coloured neural Petri net.
4. Using coloured Petri net with time to consist colour timed Petri net for
design of Intersection and traffic signals.
5. Using continuous Petri net to design controllers between intersections in
Network, input of designing three variables are density, speed, and flow
to minimize the total delay of the vehicles in the system. The goal
introducing hybrid Petri nets connects between discrete Petri net of
intersection (as in figure (4.6)) and controlling of flow cars in road
network by continuous Petri net.
6. Using stochastic Petri net controller between Traffic signals in
intersection depended on the number of vehicles in each lane.
Chapter Five Conclusions and Future Work
105
7. Using in the model of intersection fuzzy Petri net to reduce the delay
timing of standing cars in each lane of Intersection and design concurrent
system of network intersection.
8. Using detectors in the lane and using the values from these detectors in
equations to compute the density of each lane and evaluation the needed
time for cycle timing in Intersection and reduce the time delay.
9. Includes the extension of specifications to timing constraints in RTP (by
using supervisory timed Petri net as in [9]).
10. Using Petri net to fault diagnosis in the system of Rapid Thermal
Processing control, and the multiple operator access.
11. Using timed Petri net to design the model of RTP, and controlling with
timing to reduction cycle time because the shorter product life cycles,
decreasing technology adoption cycles, and increasing time-to-market
pressure requires decreased development and production cycle times.
12. Using Fuzzy Neural Petri Net for the application of electric control
system fault diagnosis.
References
106
[1]. B. Hrúz, and M.C. Zhou, "Modeling and Control of Discrete-event
Dynamic Systems with Petri Nets and Other Tool."; Springer-Verlag London
Limited 2007.
[2]. T. MURATA, "Petri nets: properties, analysis and application.";
proceedings of the IEEE; Vol. 77, No. (4), April (1989), pp. 541-580.
[3]. R. Zurwski, and M. Zhoy, "Petri nets and Industrial Applications: A
Tutorial."; IEEE Transaction on Industrial Electronics. Vol. 41, No. (6)
December (1994), pp. 567-583.
[4]. Jin-Shyon lee, and Pou-Lo Hsu, "Applications of Petri nets to Human in the
loop control for Discrete Automation Systems"; Manufacturing the Future,
Concepts– Technologies – Visions, ISBN 3-86611-198-3, July (2006), pp. 167-
194.
[5]. L. Gomes, A. Costa, J. P. Barros, R. Pais, T. Rodrigues, and R. Ferreira,
"Petri Net based Building Automation and Monitoring System"; Copyright in
IEEE, (2007), pp. 57-62.
[6]. S. Laciňák, "Petri Nets Applied for Modelling of Network Control System";
Technical University Košice, Letná 9/A,04001 , ( 2005).
[7]. P. E. Miyagi, and L.A.M. Riascos, "Modeling and analysis of fault-tolerant
systems for machining operations based on Petri nets"; Escola Politecnica,
University of Sao Paulo, Av. Prof. Mello Moraes, 2231 CEP 05508-030 Sao
Paulo, Brazil, (2005), pp. 397-408.
[8]. O. S. Youness, W. S. El-Kilani, and W. F. Abd El-Wahed, "A behavior and
delay equivalent petri net model for performance evaluation of communication
REFERENCES
107
protocols"; Faculty of Computers and Information, Menoufia University, Al-
Menoufia Egypt, (2008), pp. 2210-2230.
[9]. A. Aybar, and A. Iftar, "Supervisory Controller Design for Timed Petri
Nets"; Proceedings of IEEE/SMC international Conference on System of
Systems Engineering, Los Angeles, CA, USA, April (2006), pp. 59-65.
[10]. N. Chamas, L. Annebeg, and E. Yaprak, "Timed Neural Petri Nets";
Copyright IEEE, CH 3381,pp. 926-929, (1993).
[11]. G. Jiroveanu, and R. K. Boel, "A distributed approach for fault detection
and diagnosis based on Time Petri Nets"; SYSTeMS Research Group, Ghent
University, Mathematics and Computers in Simulation , Vol. 70, (2006), pp.
287–313.
[12]. J. O. Moody, and P. J. Antsaklis, "Petri Net Supervisors for DES with
Uncontrollable and Unobservable Transitions"; IEEE Transactions on
Automatic Control, Vol. 45, No. (3), March (2000), pp. 462-476.
[13]. J. J. ulvez, and R. Boel, "Modelling and Controlling Traffic Behaviour
with Continuous Petri Nets"; Supported by D.G.A. ref B106/2001 and a
European Community Marie Curie Fellowship, CTS, contract number: HPMT-
CT-(2001)-00278.
[14]. H. A. Lafta, "Supect identification using Fuzzy Petri nets"; PhD thesis,
University of Technology, Computer Science, (2005).
[15]. K. M. Hangos, R. Lakner, and M. Gerzson, "Intelligent Control Systems";
Kluwer Academic Publishers, (2004).
[16]. A. Karatkevich, "Dynamic Analysis of Petri Net-Based Discrete Systems";
Springer-Verlag Berlin Heidelberg (2007).
108
[17]. C. G. Cassandras, and S. Lafortune, "Introduction to Discrete Event
Systems", Springer Science+Business Media, LLC, (2008).
[18]. A. Bobbio, "System Modeling with Petri Nets"; System Reliability
Assessment, Kluwer p.c., pp. 102-143, (1990).
[19]. X. Li, "Discrete Event System Modeling and Simulation"; Secci´on de
Computacion, Departamento de Ingenier´ia El´ectrica Av.IPN 2508, A.P.14-
740, M´exico D.F., 07360, (2000), pp.1-37.
[20]. Hsu, and C. Yen, "Introduction to Petri net Theory"; Dept. of Electrical
Engineering, National Taiwan University, This work was supported in part by
NSC Grant 94-2213-E-002-087, Taiwan, (2002).
[21]. Lu, and Ning, "Power System Modeling using Petri nets"; A thesis
submitted to the Graduate, Doctor of Philosophy, Troy university in New York
(2002).
[22]. W. M. Zuberek "Timed Petri Nets and Preliminary Performance
Evaluation", Institute of Computer Science, Technical University of Warsaw,
Copyright IEEE, (1980).
[23]. G. Balbo, "An Introduction to Generalized Stochastic Petri Nets"; Master
Course, Univ. di Torino, (2000).
[24]. A. Meoen, "Introduction to Petri Net-Part Three"; Master Course, Univ.
of Aarhus, (2003).
[25]. T. D. Tesi, "Timed and Stochastic Model Checking of Petri Nets", Univ.
`A degli Studi Di Torino, Dipartimento di Informatica, C.so Svizzera, 185 -
10149 Torino (Italia), CICLO XIX, (2007).
[26]. A. M. K. CHENG, "Real-Time Systems Scheduling, Analysis, and
Verification"; John Wiley & Sons, Inc., Hoboken, New Jersey, (2002).
109
[27]. E. L. Mellado, "Analysis of Discrete Event Systems by Simulation of Timed
Petri Net Models"; Mathematics and Computers in Simulation, Vol. 61, (2002)
pp. 53–59.
[28]. P. J. Haas, "Stochastic Petri Nets, Modeling, Stability, Simulation";
Springer-Verlag New York, (2002).
[29]. M. V. Iordache, and P. J. Antsaklis, "Supervisory Control of Concurrent
Systems A Petri Net Structural Approach"; Birkh¨auser Boston, (2006).
[30]. E. Villani, Paulo E. , Miyagi, and R. Vletie, "Modeling and analysis of
Hybrid Supervisory Systems"; Springer-Verlag London Limited, (2007).
[31]. S. I. Ahson, "Petri Net Models Of Fuzzy Neural Networks"; IEEE
Transaction on Systems, MAN. And CYBERNETICS, Vol. 25, No. 6, pp 926-
932, (1995).
[32]. M. Wiering, J. V. Veenen, J. Vreeken, and A. Koopman, "Intelligent
Traffic Light Control"; Intelligent Systems Group, Institute of Information and
Computing Sciences, Utrecht University, (2004).
[33]. "High Capacity Manual 2000", Federal High Way Administration
(FHWA).
[34]. L. Lin, T. Nan, M. Xiangyang, and S. Fubing, "Implementation of Traffic
Lights Control Based on Petri Nets"; Copyright in IEEE, (2003), pp. 1087-
1090.
[35]. B. Lojk, "Early History of Rapid Thermal Processing"; ATMEL
Corporation, (1989).
110
[36]. E. Dassau, B. Grosman, and D. R. Lewin, "Modeling and Temperature
Control of Rapid Thermal Processing"; PSE Research Group, Dept. of
Chemical Engineering, Technion I. I. T., 2005.
[37]. Fair, R. B. "Rapid Thermal processing"; Science and Technology,
NewYork: Academic, (1993).
[38]. Y. Haiwen, Y. Haibin, and L. Xingshan. "Fuzzy Petri Nets Reasoning for
Application of Electric Control System Fault Diagnosis"; Automation Science
and Electrical Engineering, Beihang University, Copyright IEEE, (2006).
Appendices
1A-
APPENDIX (A)
FUNCTIONS OF TIMED TRANSITION PETRI NET.
1. Function in analysis timed transition system in MATLAB:
function [W,W1,A,M0,TimeT,P]=analysis2TPN(filename)
fid = fopen(filename,'r');
F = fread(fid);
s = setstr(F');
%********** find parameters **********
place=findstr(s,'NB_PLACE');
pla=getnum(s,place);
transition=findstr(s,'NB_TRANS');
tra=getnum(s,transition);
arc=findstr(s,'NB_ARC');
ar=getnum(s,arc);
%********** find marking **********
xpl=findstr(s,'[P');
mark=findstr(s,'MARKING');
if ((size(xpl,2)~=size(mark,2))|(size(xpl,2)~=pla))
sprintf('Places red incorrectly')
end
for k=1:pla
mar(k)=getnum(s,mark(k));
end
M0=mar';
%********** find Time **********
xtta=findstr(s,'[T');
tim=findstr(s,'DESCRIPTION');
if ((size(xtta,2)+pla)~=size(tim,2))
sprintf('Time red incorrectly 1')
2A-
end
if (size(xtta,2)~=tra)
sprintf('Time red incorrectly 2')
end
for k=1:tra
[tti(k)]=getpnt(s,tim(k+pla));
end
TimeT=tti';
disp('Number of transitions=');
tra
disp('Number of places=');
pla
disp('Number of arcs=');
ar
%********** find interconnections **********
xar=findstr(s,'[A');
p2t=findstr(s,'PLACE2TRANS');
sou=findstr(s,'SOURCE');
des=findstr(s,'DEST');
val=findstr(s,'VALUE');
W=zeros(pla,tra);
W1=zeros(pla,tra);
if ((size(xar,2)~=ar)|(size(p2t,2)~=ar)|(size(sou,2)~=ar)|(size(des,2)~=ar)|(size(val,2)~=ar))
sprintf('Arcs red incorrectly')
end
for k=1:ar
p2(k)=getnum(s,p2t(k));
so(k)=getnum(s,sou(k))+1;
de(k)=getnum(s,des(k))+1;
3A-
va(k)=getnum(s,val(k));
if p2(k)==1
W(so(k),de(k))=va(k);
else
W1(de(k),so(k))=va(k);
end
A=W-W1;
end
fclose(fid);
%**********************************
%phase 1 - initialize P
[n,m]=size(A);
P = eye(size(A,1));
CC=A;
Csav=A;
for j=1:m
POZ=find(CC(:,j)>0);
NEG=find(CC(:,j)<0);
for po=1:size(POZ,1)
ii=POZ(po);
for ne=1:size(NEG,1)
jj=NEG(ne);
al=abs(CC(ii,j))/gcd(CC(ii,j),CC(jj,j));
be=abs(CC(jj,j))/gcd(CC(ii,j),CC(jj,j));
CC=[CC;al*CC(jj,:)+be*CC(ii,:)];P=[P;al*P(jj,:)+be*P(ii,:)];
end
end
NZE=flipud(sort([POZ;NEG])); %sort in descending order
4A-
for nze=1:size(NZE,1)
ii=NZE(nze);
CC=CC([1:(ii-1),(ii+1):size(CC,1)],:); % delete row ii
P=P([1:(ii-1),(ii+1):size(P,1)],:); % delete row ii
end
DEL=[];
for ii=1:size(P,1)
if CC(ii,:)==zeros(1,m) %look just for completed invariants - this should have the same
efect as usual condition for P-invariant P(ii,:)'*Csave=0
arr=find(P(ii,:)~=0);
q=size(arr,2);
if (q~=rank(Csav(arr,:))+1)
DEL=[DEL,ii];
end
end
end
%delete non-minimal invariants
DEL=fliplr(sort(DEL));
for del=1:size(DEL,2)
ii=DEL(del);
% sprintf('non-minimal support invariant deleted')
% P(ii,:)
CC=CC([1:(ii-1),(ii+1):size(CC,1)],:); % delete row ii
P=P([1:(ii-1),(ii+1):size(P,1)],:); % delete row ii
end
end
CC;
f=1:pla;
s=1:tra;
figure (1)
5A-
plot(f,M0,'--rs','LineWidth',2,...
'MarkerEdgeColor','k',...
'MarkerFaceColor','g',...
'MarkerSize',10);
axis([0 55 0 1])
xlabel('Place')
ylabel('Initial Marking');
figure (2)
plot(s,TimeT,'--rs','LineWidth',2,...
'MarkerEdgeColor','k',...
'MarkerFaceColor','g',...
'MarkerSize',10);
%axis([0 60 0 10000])
xlabel('Transition')
ylabel('Time');
2. Others function using:
function [n] = getnum(str,i)
%gets a number form a string containing '='
%skip over the text
while strcmp(str(i),'=')==0
i=i+1;
end
i=i+1;
j=i; %number start position
while abs(str(i))~=13
i=i+1;
end
n=str2num(str(j:i));
if isempty(n)
6A-
n=0;
end
function [n,m] = getpnt(str,i)
% gets a number ans transition type from a string containing '='
% function [n,m] = getpnt(str,i)
%skip over the text
m=0;
while strcmp(str(i),'=')==0
i=i+1;
end
i=i+1;
if ((str(i) == 'S') | (str(i) == 's'))
m=2;
i=i+1;
end
if ((str(i) == 'T') | (str(i) == 't'))
m=1;
i=i+1;
end
j=i; %number start position
while abs(str(i))~=13
i=i+1;
end
n=str2num(str(j:i));
if isempty(n)
n=0;
end
7A-
3. The result of analysis:
[W,W1,A,M0,TimeT,P]=analysis2TPN('proj.rdp')
Number of transitions=
tra =
58
Number of places=
pla =
54
Number of arcs=
ar =
216
W =
Columns 1 through 14
1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 1 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 1 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
8A-
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
Columns 15 through 28
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
00 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 1 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0
9A-
0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
Columns 29 through 42
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 1 1 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0
10A-
0 0 0 0 1 0 1 1 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 1 1 0 1 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 1 1 1 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 1 1 1 0 0 0 0 0 0
0 1 0 1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 3
0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
00 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
Columns 43 through 56
1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0 0
11A-
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 1 1 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0
0 1 0 0 0 0 0 0 0 0 0 1 1 1
Columns 57 through 58
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
12A-
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
1 0
0 1
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
1 1
W1 =
Columns 1 through 14
0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 1 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0
13A-
0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 1 0 0
0 0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 00 0 0 0 0 1 0
0 0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
14A-
0 0 0 0 0 0 0 0 0 0 0 0 0 0
Columns 15 through 28
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 1 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 1 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
15A-
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
Columns 29 through 42
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 00 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 1 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 1 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 0 0 0
0 1 0 1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0 0 0
1 0 1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 1 1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0
16A-
0 0 0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 1 1 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0
Columns 43 through 56
0 0 0 1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
17A-
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0
1 0 00 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 1 1 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 1 1
Columns 57 through 58
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
18A-
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
1 1
A =
Columns 1 through 14
1 -1 0 0 0 0 0 0 0 0 0 0 0 0
0 1 -1 0 1 -1 0 0 0 0 0 0 0 0
-1 0 1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 -1 1 0 0 0 0 0 0 0 0
0 0 0 0 1 -1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 -1 0 0 0 0 0 0
0 0 0 0 0 0 0 1 -1 0 1 -1 0 0
0 0 0 0 0 0 -1 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 -1 1 0 0
0 0 0 0 0 0 0 0 0 0 1 -1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 -1
0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 -1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 -1 0 0 0 0 0 0 0
0 -1 0 1 0 0 0 0 0 0 0 0 0 0
19A-
0 0 0 -1 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0 -1 0
0 0 0 0 0 0 0 -1 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 -1 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 -1
0 0 0 0 0 0 0 0 0 0 0 0 0 0
-1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
Columns 15 through 28
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
-1 0 1 -1 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 -1 1 0 0 0 0 0 0 0 0 0 0
0 0 1 -1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 -1 0 0 0 0 0 0 0 0
20A-
0 0 0 0 0 1 -1 0 1 -1 0 0 0 0
0 0 0 0 -1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 -1 1 0 0 0 0
0 0 0 0 0 0 0 0 1 -1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 -1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 00 0 0 0 -1
0 0 0 0 0 0 0 0 0 0 0 -1 0 -1
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 -1 0 0 0 0 0 0 -1 0 -1
0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 -1 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0 -1
0 0 0 0 0 -1 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 -1 0 0 0 -1 0 0
0 0 0 0 0 0 0 0 0 0 -1 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 -1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 -1 0 -1 0
0 0 0 0 0 0 0 0 0 0 0 1 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
Columns 29 through 42
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
21A-
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 -1 0 -1 0 1 1 1 0 1 0 0 0 -1
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 -1 1 0 1 1 0 0 1 0 0 -1
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 -1 0 0 0 1 0 0 0 0 0 0 0 0
0 -1 0 -1 1 1 0 1 0 0 0 1 0 -1
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 -1 0 0 1 0 0 0 0 0 0 0
0 -1 0 -1 1 1 1 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
-1 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 -1 1 0 0 0 0 0 0 0 0 0 0
-1 0 -1 0 1 1 1 1 0 0 0 0 0 0
0 1 0 1 -1 -1 -1 -1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 -1 1 0 0 0 0
0 0 0 0 0 0 0 0 -1 0 1 0 0 0
0 0 0 0 0 0 0 0 -1 0 0 1 0 0
0 0 0 0 0 0 0 0 -1 0 0 0 1 0
0 0 0 0 0 0 0 0 -1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 -1 -1 -1 -1 3
0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 -1 0 0 0 0 0
Columns 43 through 56
1 0 0 -1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 -1 0 0 0 0 0 0 0 0 0 0 0
22A-
0 0 0 0 1 0 0 0 0 0 0 0 0 0
1 0 0 -1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 00 0 0 0 0 0 0 0 0
0 0 -1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0
1 0 0 -1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 -1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0
1 0 0 -1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 -1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 -1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 -1 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 -1 0 0 0
-1 1 0 0 0 0 0 0 0 0 0 0 0 0
-1 0 1 0 0 0 0 0 0 0 0 0 0 0
0 -1 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 -1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 -1 1 1 1 1 0 0 0 0
0 0 0 0 0 0 -1 -1 -1 -1 1 0 0 0
23A-
0 1 0 0 0 0 0 0 0 0 0 0 0 0
Columns 57 through 58
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
1 0
0 1
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
24A-
0 0
0 0
0 0
0 0
0 0
0 0
0 0
M0 =
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
25A-
0
0
0
0
0
0
0
0
0
0
0
0
0
TimeT =
0
5
23
2
2
0
0
5
23
2
2
0
0
5
23
2
2
0
0
5
23
2
2
0
0
0
0
0
0
0
0
0
0
0
0
26A-
0
64800
0
0
0
0
0
0
9600
0
0
0
0
0
0
0
0
0
0
0
0
0
0
P =
Columns 1 through 14
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 1 1 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0
Columns 15 through 28
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 1 1 1 0 0 0 0 0 0 0 0 0
Columns 29 through 42
0 0 0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 01 0 0 0
27A-
0 0 0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
Columns 43 through 54
0 0 0 0 0 0 0 1 0 0 0 1
0 1 0 0 0 1 0 1 0 0 0 0
0 1 0 0 0 0 1 0 0 0 0 0
0 1 0 0 0 0 1 0 0 0 0 0
0 1 0 0 0 0 1 0 0 0 0 0
0 1 0 0 0 0 1 0 0 0 0 0
0 0 0 0 1 0 1 0 0 1 1 0
0 0 0 0 1 0 1 0 0 1 1 0
0 0 0 0 1 0 1 0 0 1 1 0
0 0 0 0 1 0 1 0 0 1 1 0
1B-
APPENDIX (B)
FUNCTIONS FOR SUPERVISION PETRI NET
1. Function in analysis supervisor Petri nets in MATLAB:
function [Dm,Dp,m0,D,p,T]=analysis2PN(filename)
fid = fopen(filename,'r');
F = fread(fid);
s = setstr(F');
%********** find parameters **********
place=findstr(s,'NB_PLACE');
pla=getnum(s,place);
transition=findstr(s,'NB_TRANS');
tra=getnum(s,transition);
arc=findstr(s,'NB_ARC');
ar=getnum(s,arc);
%********** find marking **********
xpl=findstr(s,'[P');
mark=findstr(s,'MARKING');
if ((size(xpl,2)~=size(mark,2))|(size(xpl,2)~=pla))
sprintf('Places red incorrectly')
end
for k=1:pla
mar(k)=getnum(s,mark(k));
end
m0=mar';
disp('Number of transitions=');
tra
disp('number of places=');
pla
disp('Number of arcs=');
2B-
ar
%********** find interconnections **********
xar=findstr(s,'[A');
p2t=findstr(s,'PLACE2TRANS');
sou=findstr(s,'SOURCE');
des=findstr(s,'DEST');
val=findstr(s,'VALUE');
Dm=zeros(pla,tra);
Dp=zeros(pla,tra);
if ((size(xar,2)~=ar)|(size(p2t,2)~=ar)|(size(sou,2)~=ar)|(size(des,2)~=ar)|(size(val,2)~=ar))
sprintf('Arcs red incorrectly')
end
for k=1:ar
p2(k)=getnum(s,p2t(k));
so(k)=getnum(s,sou(k))+1;
de(k)=getnum(s,des(k))+1;
va(k)=getnum(s,val(k));
if p2(k)==1
Dp(so(k),de(k))=va(k);
else
Dm(de(k),so(k))=va(k);
end
D=Dm-Dp;
end
fclose(fid);
%**********************************
pn=getspn(Dm,Dp,[],[],m0);
%***********************
pncomgraph(pn);
3B-
%*********************************
p=invart(D);
T=invart(D');
figure (1)
plot(f,m0,'--rs','LineWidth',2,...
'MarkerEdgeColor','k',...
'MarkerFaceColor','g',...
'MarkerSize',10);
xlabel('Place')
ylabel('Initial Marking');
2. Others function using:
function [str] = disgraph(graph)
a = [];
for i = 1:length(graph)
if length(graph{1}{1}) < 7
a = [a, sprintf('\nNODE %d\t %s',i, fvpr(graph{i}{1}'))];
else
a = [a, sprintf('\nNODE %d\t ',i)];
for j = 1:length(graph{1}{1})
if graph{i}{1}(j)
a = [a, sprintf('p%d: %d; ', j, graph{i}{1}(j))];
end
end
end
a = [a, sprintf('\n IN:')];
for j = 1:length(graph{i}{2})
a = [a, sprintf(' %d, t%d;', graph{i}{2}{j}.n, graph{i}{2}{j}.t)];
end
a = [a, sprintf('\n OUT:')];
4B-
for j = 1:length(graph{i}{3})
a = [a, sprintf(' %d, t%d;', graph{i}{3}{j}.n, graph{i}{3}{j}.t)];
end
end
a = [a, sprintf('\n')];
if nargout < 1
disp(a);
else
str = a;
end
function [str] = fvpr(x, sw)
% FVPR - Transforms a vector in a string
% [str] = fvpr(x)
% Use the format below to print finite sets
% [str] = fvpr(x,2)
% Written by Marian V. Iordache, miordach@nd.edu
if nargin == 1
sw = 1;
end
[m,p] = size(x);
n = length(x);
if sw == 1, op = '['; cl = ']';
elseif sw == 2, op = '{'; cl = '}'; end
if n > 1 | sw == 2
u = [op];
else
u = [];
end
for i = 1:n
5B-
z = sprintf('%g', x(i));
u = [u, z];
if i < n
u = [u, ', '];
end
end
if n > 1 | sw == 2
u = [u, cl];
end
if m > 1
str = [u, ''''];
else
str = u;
end
function [o] = getpn(Dm,Dp,Tuc,Tuo,m0)
if nargin == 1, [Dm, Dp] = d2dd(Dm); end
if nargin < 1, Dm = []; Dp = []; end
if nargin < 3, Tuc = []; end
if nargin < 4, Tuo = []; end
if nargin < 5, m0 = []; end
o = struct('m0',m0,'Dm',Dm,'Dp',Dp,'Tuc',[],'Tuo',[]);
o.Tuc = Tuc;
o.Tuo = Tuo;
function p = invart(D)
%INVART(D) returns a matrix whose columns give the minimal support place
% invariants of a petri net incidence matrix A, i.e., it returns the basis
% for the solutions to x'A = 0, the null space of A'.
[n,m] = size(D);
BC = [D eye(n)]; % BC is two matrices, B and p, p = identity at start
6B-
cc = m+1:m+n; % Columns of the p portion of the matrix.
for j = 1:m,
Ip = find(BC(:,j) > 0);
Im = find(BC(:,j) < 0);
if (length(Ip) > 0) & (length(Im) > 0),
I = find(BC(:,j) == 0);
k = length(BC(:,j));
for a = 1:length(Ip), % Add linear combinations
for b = 1:length(Im),
x = BC(Ip(a),j)/BC(Im(b),j);
BC = [BC; BC(Ip(a),:) - x*BC(Im(b),:)];
k = k + 1;
I = [I; k];
end
end
BC = BC(I,:); % Delete rows used above.
if isempty(BC),
break
end
p = BC(:,cc);
BC(:,cc) = p/max(max(p)); % Normalize
f = 2/min(p(find(p > 0))); % Scaling factor
k = length(BC(:,1)); % Identify and delete rows of p whose
a = 1; % support is not minimal with respect
while a <= k, % to the other rows of p.
for b = 1:k,
if a ~= b,
if (f*BC(a,cc) >= BC(b,cc))
BC = [BC(1:a-1,:); BC(a+1:k,:)];
7B-
k = k - 1;
a = a - 1;
break;
end
end
end
a = a + 1;
end
if isempty(BC),
break
end
end
end
if isempty(BC)
p = [];
else
I = [];
x = ~(BC(:,cc)*D);
for a = 1:length(BC(:,1)),
if x(a,:),
I = [I; a];
end
end
BC = BC(I,:);
if isempty(BC)
p = [];
else
p = BC(:,cc)';
p = p/min(p(find(p > 0)));
8B-
end
end
function [v] = ispn(pnobj)
% ISPN - Checks whether an object is a PN object
% [v] = ispn(pnobj)
% returns 1 if the object is PN, else 0.
% See GETPN.
flag = 0;
if strcmp(class(pnobj),'struct')
z = fieldnames(pnobj);
y = fieldnames(getpn);
if length(y) == length(z)
x = 1;
for i = 1:length(y)
if ~strcmp(y{i},z{i}), x = 0; break; end
end
flag = x;
end
end
if flag
[m1, n1] = size(pnobj.Dm);
[m2, n2] = size(pnobj.Dp);
flag = (m1 == m2) & (n1 == n2) & (isempty(pnobj.m0) | (m1 == length(pnobj.m0)));
end
if flag, flag = strcmp(class(pnobj.Tuc), class(pnobj.Tuo)); end
if flag
if strcmp(class(pnobj.Tuc),'cell')
flag = (length(pnobj.Tuc) == length(pnobj.Tuo));
end
9B-
end
v = flag;
function [Graph, varargout] = pncomgraph(pnobj,opt, varargin)
if ~ispn(pnobj), error('First argument is not a PN object. Use GETPN!');
end
Dm = pnobj.Dm; Dp = pnobj.Dp; m0 = pnobj.m0(:);
[m,n] = size(Dm);
D = Dp - Dm;
if nargin < 2, opt = []; endif isempty(opt)
is_reach = 0;
is_term = 0;
else
is_reach = opt(1);
if length(opt) > 1
is_term = opt(2);
else
is_term = 0;
end
end
no = nargout - 1;
nfx = length(varargin);
fun = {}; addarg = {}; fl = 0; j = 0;
% Separating functions from their additional arguments
for i = 1:nfx
ctmp = class(varargin{i});
% the additional arguments are assumed not of class char
if strcmp(ctmp,'char') | strcmp(ctmp,'function_handle')
j = j + 1; k = 1;
10B-
fun{j} = varargin{i};
addarg{j} = {};
elseif ~j
error('Invalid call syntax: type "help pncgraph" for syntax information');
else
addarg{j}{k} = varargin{i}; k = k + 1;
end
end
nf = j;
if nf < no
error('The number of output arguments does not match the number of input arguments');
end
argfo = ones(nf,1); % the number of outputs of each fi
argfi = ones(nf,1); % the number of inputs of each fi
for i = 1:nf
fnm = fun{i};
if ~strcmp(class(fnm),'char')
fnm = func2str(fnm);
end
argfo(i) = nargout(fnm);
argfi(i) = nargin(fnm);
end
for i = 1:no
varargout{i} = {};
end
Graph = {{m0, {}, {}}};
node_num = 1;
waitlist = 1; mready = zeros(1,min(nf,no));
initial = 1;
11B-
while ~isempty(waitlist)
%disgraph(Graph); % two debug lines
%disp('========================================');
i = waitlist(1); waitlist = waitlist(2:length(waitlist));
omrk = Graph{i}{1}; % the current marking
for j = 1:min(nf,no) % evaluate the argument functions
if argfo(j) % if the argument function has an output
if argfi(j) > 1
ev = feval(fun{j},omrk,pnobj,addarg{j}{:});
else
ev = feval(fun{j},omrk,addarg{j}{:});
end
evl = length(ev); % for the case when fun{j} doesn't return a scalar
if initial % initialization operations performed only once
if evl > 1
for k = 1:evl % initialize varargout{j}
varargout{j}{k} = {};
end
xready{j}{1} = zeros(1,evl);
end
end
if evl == 1
if ev
varargout{j} = [varargout{j}, {struct('m',omrk,'s',ev)}];
mready(j) = 1;
end
else % considers the case when fun{j} does not return a scalar
for k = 1:evl
if ev(k)
12B-
varargout{j}{k} = [varargout{j}{k}, {struct('m',omrk,'s',ev(k))}];
end
end
xready{j}{1} = xready{j}{1} | ev';
if xready{j}{1}
mready(j) = 1;
end
end
end
end
initial = 0;
if is_term
if mready, return; end
end
for j = 1:n
if omrk >= Dm(:,j) % i.e. if t_j is enabled
eqflag = 0; infflag = 0;
mrk = omrk + D(:,j); % marking reached by firing t_j
zout = node_num:-1:1;% DO NOT change this line without changing line XX!
if ~is_reach % operations below not needed for reachability graph
% check whether the new marking is larger than prev. markings
vout = pnpred(Graph,i); % compute the predecessor nodes
y = zeros(length(mrk),1); yout = [];
for k = vout
z = mrk - Graph{k}{1};
if isfinite(z), yout = [yout, k]; end
z(find(isnan(z))) = 0; % correct the result of Inf - Inf
if z >= 0, y = y + z; infflag = 1; end
if ~z, eqflag = 1; break; end
13B-
end
if infflag % update marking by adding Inf elements
y(find(y)) = Inf;
mrk = mrk + y;
end
% operation below insures that we do not repeat comparisons in test below
zout(node_num+1-yout) = []; % line XX
end
if ~eqflag % test whether the node already exists
for k = zout
if mrk == Graph{k}{1}
eqflag = 1;
break
end
end
end
if eqflag % update nodes
Graph{i}{3}{length(Graph{i}{3})+1} = struct('n',k,'t',j);
Graph{k}{2}{length(Graph{k}{2})+1} = struct('n',i,'t',j);
else % add new node
node_num = node_num + 1;
waitlist = [node_num, waitlist];
Graph{node_num} = {mrk, {struct('n',i,'t',j)}, {}};
Graph{i}{3}{length(Graph{i}{3})+1} = struct('n',node_num,'t',j);
end
end
end
end
if nargout == 0
14B-
disgraph(Graph);
end
function [vout] = pnpred(Graph,xi,sc)
% PNPRED - Predecessor/successor nodes in a coverability graph
% [vout] = pnpred(Graph,i)
% sets vout to the list of nodes in the coverability graph Graph
% which precede the node i. Note that vout is an integer vector and
% i is an integer. For the data format of Graph, refer to PNCGRAPH.
% To compute the successor nodes, use the format
% [vout] = pnpred(Graph,i,3)
nnode = length(Graph); vout = [];
if xi > nnode | xi < 1, return; end
if nargin < 3,
sc = 2;
end
ind = zeros(1,nnode);
waitlist = xi;
while ~isempty(waitlist)
cnode = waitlist(1); waitlist = waitlist(2:length(waitlist));
ind(cnode) = 1;
for i = 1:length(Graph{cnode}{sc})
j = Graph{cnode}{sc}{i}.n;
if ~ind(j)
waitlist = [j, waitlist];
end
end
end
vout = find(ind);
15B-
3. The result of using this function to analysis the model of RTP.
[Dm,Dp,m0,D,p,T]=analysis2PN('rtp.rdp')
Number of transitions=
tra =
20
number of places=
pla =
26
Number of arcs=
ar =
49
NODE 1 p1: 1; p7: 1; p8: 1; p14: 1; p19: 1;
IN:
OUT:
Dm =
Columns 1 through 14
0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 00 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
Columns 15 through 20
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
16B-
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 1 0 0 0 0
1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
0 0 0 0 0 1
Dp =
Columns 1 through 14
1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
Columns 15 through 20
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
17B-
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
1 0 0 0 0 0
0 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
0 0 0 0 0 0
0 0 0 0 0 0
m0 =
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
D =
Columns 1 through 14
18B-
1 0 0 0 0 0 0 0 0 0 0 0 0 0
-1 1 0 0 0 0 0 0 0 0 0 0 0 0
0 -1 1 0 0 0 0 0 0 0 0 0 0 0
0 0 -1 1 0 0 0 0 0 0 0 0 0 0
0 0 0 -1 1 0 0 0 0 0 0 0 0 0
0 0 0 0 -1 1 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 -1 0 0 0 0 0 0
0 0 0 0 1 0 0 -1 0 0 0 0 0 0
0 0 0 0 0 -1 1 0 0 0 0 0 0 0
0 0 0 0 0 0 -1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 -1 1 0 0 0 0 0
0 0 0 0 0 0 0 0 -1 1 0 0 0 0
0 0 0 0 0 0 0 0 0 -1 1 0 0 0
0 0 0 0 0 0 0 0 1 0 0 -1 0 0
0 0 0 0 0 0 0 0 0 0 -1 1 0 0
0 0 0 0 0 0 0 0 0 0 0 -1 1 0
0 0 0 0 0 0 0 0 0 0 0 0 -1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 -1
0 0 0 0 0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
Columns 15 through 20
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 00 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
1 0 0 0 0 0
0 -1 0 0 0 0
-1 1 0 0 0 0
0 -1 1 0 0 0
0 0 -1 1 0 0
0 0 0 -1 1 0
0 0 0 0 -1 1
0 0 0 0 0 -1
19B-
0 0 0 0 0 -1
p =
0 0 0 0 1 1
0 0 0 0 1 1
0 0 0 0 1 1
0 0 0 0 1 1
0 0 0 0 1 1
1 1 0 0 1 1
1 0 0 0 0 0
0 1 0 0 0 0
1 1 0 0 1 1
1 1 0 0 1 1
0 0 0 0 1 1
0 0 1 0 1 1
0 0 1 0 1 1
0 0 1 0 0 0
0 0 1 0 1 1
0 0 0 0 1 1
0 0 0 1 1 1
0 0 0 1 1 1
0 0 0 1 0 0
0 0 0 1 1 1
0 0 0 0 1 1
0 0 0 0 1 1
0 0 0 0 1 1
0 0 0 0 1 1
0 0 0 0 1 0
0 0 0 0 0 1
T =
[ ]
1C-
APPENDIX (C)
RESULTS TRAINING OF NEURAL PETRI NET.
1. Block diagram of Neural Network.
2. Figures of comparison of target and output value.
2C-
3C-
3. Comparison between target and output values:
Targets and Network Outputs
Network Name: Electric Control System.
Iterations: 10000
1 => Node 1 target,output= 1.00000, 1.00000
1 => Node 2 target,output= 0.00000, 0.00000
1 => Node 3 target,output= 0.00000, 0.00000
2 => Node 1 target,output= 0.00000, 0.00000
2 => Node 2 target,output= 1.00000, 1.00000
2 => Node 3 target,output= 0.00000, 0.00000
3 => Node 1 target,output= 0.00000, 0.00000
3 => Node 2 target,output= 0.00000, 0.00000
3 => Node 3 target,output= 1.00000, 1.00000
َيخؼبمُم انؼمُم انحبني مغ حطبيِق شبكبث بخزي في انىمذجت وانخحهيِم
بخزي شبكت: يؼىي وىقشْجقذ شبكبث بخزيثالثت أوىاِع . وانسيطزِة
. ػصبيت بخزي انمشزفت، شبكت بخزي ال، شبكتانمؤقىحت
رْثيإخجانخي مخخهفِت حقىِل ثالثت األوىاِع، أداِء حقيقنج
انخقبطِغمغ انمزور إشبرِة سيطزُة األوَل انخطبيَق إّن. نهخطبيِق
. بخزي انمؤقىحت االوخقبلشبكتببسخخذاو
نهؼمهيِت ةانمشزَفشبكت بخزي اسخؼمبلهى انثبوَي انخطبيَق إّن
.انمىصم شبِهجهبس في انسزيؼِت انحزاريِت
انسيطزِة وظبِو ػيَب حشخيُصهى نهخطبيِق انثبنَث انحقَم إّن
.ػصبيتال بخزي شبكِت بئسخؼمبل انكهزببئِي
شبكِتمه وىع ُكّم وسيئبُث حسىبث انثالثت انخطبيقبُث ُحىّضُح
.انمخخهفِت انمسخقبهيِت نهِذراسبِث كذنيم ُحسَخؼمَم َأْن وُيْمِكُه بخزي
الملخص