Professional Documents
Culture Documents
Redes de Petri
Introducci
on
El presente texto intenta brindar una version integrada de algunos temas teoricos y practicos que forman parte del programa de la materia Teora de la Computabilidad, correspondiente al Departamento de Cs. e Ing. de la Computacion de la
Universidad Nacional del Sur. En particular, el material aqu presentado desarrolla
los conceptos correspondientes al tema de Redes de Petri.
Si bien existe gran n
umero de textos para abordar los conceptos correspondientes
a este tema, resulta difcil encontrar un u
nico libro de texto que considere el enfoque utilizado en esta materia. Esta situacion dio origen a un conjunto de apuntes
elaborados por la profesora Sandra Gabelli, posteriormente consolidados y refinados en notas de curso realizadas por el profesor Juan C. Augusto en 1995, quien se
desempe
no como profesor hasta 2001. A partir de 2002 se introdujeron nuevos recursos didacticos y materiales adicionales, que obligaron a revisar, replantear, corregir
y actualizar varios aspectos de los presentados en las notas de curso del profesor
Juan C. Augusto. Esa motivacion fue la que guio la confeccion de este nuevo texto,
que complementa y corrige apuntes y notas usadas hasta el momento en la materia. El material presentado esta en constante evolucion y correccion, por lo que se
agradecera especialmente toda sugerencia, crtica o comentario sobre el mismo.
Carlos Ivan Ches
nevar
Universidad Nacional del Sur Baha Blanca, Argentina
Nota: puede contactarse a los responsables del presente texto por va electronica a
las direcciones abajo indicadas.
Dr. Carlos Iv
an Ches
nevar: Email: cic@cs.uns.edu.ar Web: http://cs.uns.edu.ar/cic
Dr. Mara Laura Cobo: Email: lc@cs.uns.edu.ar
Redes de Petri
1.
Introducci
on y motivaciones
En nuestro analisis de distintos modelos formales de la computacion hemos comenzado siempre por alternativas deterministas. As, al estudiar automatas finitos
comenzamos por los automatas finitos deterministas (AFD) y luego consideramos
la variante no determinista de los mismos (AFNDs). Algo analogo hicimos con los
automatas a pila y las maquinas de Turing.
En este captulo abordaremos un nuevo formalismo denominado redes de Petri
(RPs). A diferencia de los acercamientos anteriores, las redes de Petri son inherentemente no deterministas. El nombre de red de Petri debe su nombre a Carl Adam
Petri, investigador aleman que desarrollo las mismas en 1962 como parte de su
trabajo de Tesis Doctoral en la Universidad de Darmstadt (Alemania).
Nota bibliogr
afica: Carl Petri nacio el 12 de julio de 1926, en
Leipzig (Alemania). Estudi
o Matematica en la Univ. de Hannover, donde fue profesor. Fue el primero en definir el lenguaje de
las redes de Petri. Lo hizo en su Tesis Doctoral Kommunikation
mit Automaten (Comunicaci
on con automatas), en 1962 (Univ.
de Darmstadt). En 1997 fue nombrado miembro de la Academia
de Ciencias de Nueva York, y recibio la distincion Werner Von Siemens (Alemania). En 1999 fue nombrado Doctor Honoris Causa
por la Universidad de Zaragoza (Espa
na).
Las redes de Petri resultan atractivas para modelar problemas en los cuales intervienen procesos que presentan grados de dependencia temporal.1 Considere el trozo
de programa Pascal que se muestra en la figura 1.2 Normalmente las instrucciones
se ejecutaran en forma secuencial, esto es primero A:=1, luego B:=2 y as sucesivamente. Sin embargo, debe notarse que no hay ninguna razon logica para evitar
que las primeras tres instrucciones se procesen en cualquier orden o de manera concurrente (esto es, al mismo tiempo). Con la disminucion del precio del hardware
en general y de los procesadores en particular existe especial interes en el procesamiento concurrente para lograr mayor velocidad y eficiencia. Las redes de Petri son
una representacion grafica que permite modelar y estudiar distintos problemas de
procesamiento concurrente.
Definici
on 1.1 [Red de Petri como Grafo] Una red de Petri es un grafo dirigido
G=(V, E), donde V = P T y P T = . Toda arista e en E es inicidente en un
elemento de P y un elemento de T . El conjunto P es llamado conjunto de lugares,
y el conjunto T es el conjunto de transiciones. 2
Definici
on 1.2 [Red de Petri Version formal] Una red de Petri es una cuaterna
(P, T, IF, OF ) donde:3
1
A := 1;
B := 2;
C := 3;
A := A + 1;
C := B + C;
B := A + C;
Figura 1: Un trozo de codigo Pascal
P = {p1 , p2 , . . . , pg } es un conjunto finito de lugares.
T = {t1 , t2 , . . . , tg } es un conjunto finito de transiciones.
IF : P T N at es una funcion de entrada a las transiciones.
OF : T P N at es una funcion de salida de las transiciones.
2
Una RP puede representarse graficamente mediante un multidigrafo bipartito
G = (N, A). El conjunto N es el conjunto de nodos del grafo y A es el conjunto de
arcos tal que se verifica que N = P T y P T = . Usualmente los lugares se
representan con nodos circulares y las transiciones mediante nodos con forma de
barra. Las funciones IF y OF indicaran cuales son los arcos presentes en el grafo G
seg
un el siguiente criterio:
Para cada par lugar-transicion (p, t), sea v el valor de IF (p, t). Entonces se
trazan v arcos desde p hacia t.
Para cada par transicion-lugar (t, p), sea v el valor de OF (t, p). Entonces se
trazan v arcos desde t hacia p.
Ejemplo 1.1 Sea una red de Petri M = (P, T, IF, OF ) donde P = {p1 , p2 , p3 },
T = {t1 , t2 } y
P/T t1 t2
p1
1 1
IF :
p2
0 0
p3
0 1
T /P p1 p2 p3
y OF : t1
1 0 1
t2
0 1 0
2.
2.1.
Evoluci
on de una Red de Petri
Marcado de una RP
La especificacion de una red de Petri presentada en la seccion precedente corresponde a una caracterizacion estatica. A los fines de que una red RP se pueda
2
T /P p1 p2 p3 p4
t1
1 2 0 0
y OF : t2
0 0 1 0
t3
0 0 1 0
t4
0 0 0 1
2
Para una gran variedad de problemas, las marcas o tokens se utilizan para representar recursos disponibles dentro de un sistema que se esta modelando. Todo
recurso estara ocupando un cierto lugar p en un momento m del tiempo dado, y
podra pasar a un nuevo lugar p0 en un momento posterior m0 . Al modelar sistemas a
traves de redes de Petri, podemos afirmar genericamente que los lugares representan
condiciones y las transiciones representan eventos.
Una transicion t representara un evento que podra ocurrir cuando en cada lugar
pi que posea arcos inicidentes a t tenga al menos tantos tokens como arcos existentes
desde pi hacia t. En tal situacion diremos que la transicion t esta habilitada. Toda
transicion que este habilitada puede dispararse, modificando el marcado de la red,
haciendo que este evolucione y cambie.
3
Una transicion habilitada es aquella que puede dispararse, haciendo que la red
de Petri evolucione de un cierto marcado M en otro marcado M 0 . Definiremos formalmente estos conceptos como sigue:
4
Adaptado de [Joh97].
Definici
on 2.3 [Disparo de una transicion] Sea R = (P, T, IF, OF ) una red de
Petri, y sea M (P ) un marcado de R tal que existe una transicion t T que esta habilitada. Se define el disparo de t como un nuevo marcado M 0 (P ) definido como
sigue: para cada lugar p P , M 0 (p) = M (p) IF (p, t) + OF (t, p). 2
Dada una red de Petri R = (P, T, IF, OF ) con un cierto marcado M (P ), es claro
que puede existir mas de una transicion t T que este habilitada para ser disparada.
Considerese en tal sentido el ejemplo mostrado en la figura 5. A partir de la red
inicial, puede dispararse la transicion t1 o alternativamente dispararse la transicion
t2 . En ambos casos, la situacion resultante lleva a un nuevo marcado. En particular,
tras disparar t2 puede volver a dispararse la misma transicion t2 nuevamente.
Definici
on 2.4 [Relacion de Transicion `rp ] Sea R una red de Petri, y sea MR el
conjunto de todos los marcados posibles para R. Se define la relacion de transicion
`rp MR MR de la siguiente forma: se dira que un marcado M0 para R evoluciona
en un marcado M1 para R (abreviado M0 `rp M1 ) si y solo si existe una transicion
t habilitada en M0 tal que al disparar t el marcado resultante es M1 . Escribiremos
M0 `rp Mk si existe una secuencia M0 `rp M1 `rp . . . Mk1 `rp Mk . 2
Definici
on 2.5 [Marcado alcanzable. Marcado estancado] Sea R una red de Petri,
y sean M y M 0 marcados para R. Se dira que M 0 es alcanzable a partir de M si
M `rp M 0 . De la misma manera, un marcado M se dira estancado si no existe ning
un
0
0
marcado M , siendo M distinto de M , alcanzable desde M . 2
3.
Figura 6: Red de Petri para modelar una computadora multitarea con dos terminales
virtuales
sistemas multiusuarios, donde varios usuarios pueden trabajar simultaneamente desde distintas terminales V T1 , V T2 , . . . , V Tk haciendo uso de un mismo procesador,
el cual asigna peque
nas fracciones de tiempo a cada terminal. Las redes de Petri
permiten modelar este tipo de situaciones de una manera muy versatil. Las terminales pueden representarse a partir de lugares de la red, mientras que las transiciones
posibilitan representar la disponibilidad de la CPU como recurso necesario para que
una terminal pueda funcionar. El siguiente ejemplo permite apreciar como utilizar
las redes de Petri para capturar los aspectos antes mencionados.
Ejemplo 3.1 [Multiprocesamiento con dos terminales virtuales]5 Considerese una
computadora multitarea (esto es, que puede realizar mas de una tarea al mismo
tiempo, asignandole un tiempo de procesamiento a cada una de ellas). La computadora posee una u
nica CPU y dos terminales virtuales V T1 y V T2 . En cada terminal
hay un usuario que quiere ejecutar su programa (ver figura 6). En consecuencia, la
computadora dara primeramente cierta fraccion de tiempo de CPU al usuario de
la terminal V T1 , luego dara otra fraccion de tiempo al usuario de la terminal V T2 ,
luego volvera a dar una fraccion de tiempo al usuario de la terminal V T1 , y as sucesivamente.
Este sistema puede modelarse a traves de una red de Petri como la que se muestra
en la figura 6. Formalmente, la red definida tendra la forma M = (P, T, IF, OF, M ),
donde el conjunto de lugares P representara los distintos elementos de nuestro sistema, esto es P = {CP U, V T1 , V T2 , p1 , p2 }. Inicialmente el marcado de la red de
petri sera M (CP U ) = 1, M (V T1 ) = 1 y M (V T2 ) = 1. El lugar p1 indica que si se
tiene un token en dicho lugar, entonces el programa de la terminal V T1 esta siendo
ejecutado por la CPU. Lo mismo se aplica para el lugar p2 y la terminal V T2 .
El conjunto T de transiciones involucrara un conjunto T = {t1 , t01 , t2 , t02 }. A partir
de la figura 6 puede verse que la transicion t1 estara activada solamente si se dispone
de la CPU y la terminal V T1 esta preparada para ejecucion (esto es, hay un token
en el lugar CP U y otro en el lugar V T1 ). Lo mismo ocurre para la terminal V T2 . Si
la terminal V T1 ejecuta su programa asociado, esto se capturara a traves del disparo
de t1 . Notese que una vez que se ha disparado la transicion t1 , la transicion t2 ya no
puede dispararse. Analogamente, si se dispara t2 , entonces t1 no podra dispararse
(ver figura 7).
5
4.
Sin importar cual sea la red de Petri con la que se cuente siempre se puede obtener
su lenguaje asociado. El manejo de redes de Petri como reconocedoras de lenguajes
ademas de las facilidades naturales para el establecimiento de propiedades, brinda
6
En un lenguaje formal
Alfabeto
Conjunto
Lenguaje L
Cadena w L
En Redes de Petri
Conjunto de transiciones T = {t1 , t2 , . . . , tk }
Conjunto T de todas las secuencias de transiciones posibles
Lenguaje Lt T
Secuencia de disparos S Lt tal que S = ti1 , ti2 , . . . , tin
En Redes de Petri
Conjunto de transiciones T = {t1 , t2 , . . . , tk }
Conjunto de lugares P = {p1 , p2 , . . . , pk }
Marcado Incial Minicio
Conjunto de Marcados Finales Mf in
Tablas de especificacion IF y OF
M0 =def
a
1
0
0
b
0
1
1
c
1
0
0
M0 (p1 ) = 1
M0 (p2 ) = 0
M0 (p3 ) = 0
T \P p1 p2 p3
a
1 1 0
OF :
b
0 0 1
c
0 0 1
y Mf =def
Mf (p1 ) = 0
Mf (p2 ) = 0
Mf (p3 ) = 1
La figura 12 ilustra como la red R acepta la secuencia c. Otras secuencias aceptadas son acb, aacbb, aaacbbb, etc. Esto puede generalizarse, concluyendose que el
lenguaje aceptado por la red R es L(R) = {an cbn |n 0}. 2
5.
Cuando se realiza el etiquetado de una Red de Petri se establece una correspondencia (mapeo) entre transiciones y elementos asociados a ellas. Las formas usuales
de realizar etiquetados se categorizan de acuerdo al tipo de etiquetas permitidas, y
son las siguientes:
1. Etiquetado arbitrario: es un mapeo : T {}
10
6.
Al igual que para los demas lenguajes vistos en el curso, revisaremos brevemente
las propiedades de clausura mas usuales. Al hacerlo puede caracterizarse con mejor
precision el alcance representativo de las RP y permite conocer metodos para construir sistemas mas grandes a partir de modulos mas peque
nos. Consideraremos la
union, concatencion, interseccion, complemento, estrella de Kleene y homomorfismo
sobre lenguajes de la misma forma que en los captulos anteriores. Respecto de la
sustitucion, consideraremos la sustitucion finita que solo permite reemplazar a cada uno de los elementos de un lenguaje por un lenguaje finito cualquiera. Ademas
de la propiedades tradicionales mencionadas por las caracteristicas particulares del
formalismo de los reconoce, estos lenguajes tambien son cerrados bajo operaciones
especiales denominadas concurrencia y reverso.
Teorema 6.1 [Propiedades de clausura de Larbit ] Los lenguajes de la clase Larbit son
cerrados bajo union, concatencion, interseccion, homomorfismo finito y sustitucion
finita. No lo son bajo estrella de Kleene, complemento y sustitucion generalizada. 2
7
11
Demostraci
on: La demostracion de este teorema puede hallarse en las secciones
6.4 y 6.5 de [Pet81].
Saber que las redes de Petri son cerradas bajo sustitucion finita es relevante al
momento de dise
no ya que permite modularizar mas facilmente muchos problemas
complejos.
7.
Hemos visto en la seccion 4 que las redes de Petri aceptadoras permiten reconocer
las cadenas que pertenecen a un lenguaje formal dado. Surge naturalmente entonces
una pregunta: cual es el alcance expresivo de las redes de Petri en el marco de la
jerarqua de Chomsky? Para delimitar la expresividad de las redes de Petri como
reconocedoras de lenguajes recurriremos a algunos teoremas enunciados en [Pet81],
remitiendose al lector interesado a dicho texto para encontrar all la correspondiente
demostracion. El analisis que sigue a continuacion se basa asimismo en el desarrollado
en [Pet81].
Teorema 7.1 Todo lenguaje regular puede reconocerse a traves de una red de Petri
aceptadora. 2
Demostraci
on: La prueba puede hallarse en [Pet81, Seccion 6.6].
El ejercicio 7.1 permite ver que tambien existen lenguajes no regulares que pueden
reconocerse a traves de una red de Petri, con lo cual debemos concluir que las redes
de Petri reconocen no solo lenguajes regulares, sino tambien algunos que como
hemos visto anteriormente pertenecen a la clase de los lenguajes libres de contexto.
Reconoceran las redes de Petri aceptadoras todos los lenguajes libres de contexto?
Puede demostrarse que esto no es as, tal como lo enuncia el siguiente teorema:
Teorema 7.2 Existen lenguajes libres de contexto que no pueden reconocerse a
traves de una red de Petri. 2
Demostraci
on: La demostracion consiste en dar un contraejemplo. Puede probarse
que el lenguaje L : {wwR : w {a, b}? } no puede reconocerse a traves de una red de
Petri. La razon intuitiva es la siguiente: dada una cadena wwR L, cualquier red
de Petri RRP sera capaz de recordar la cantidad de smbolos a y b que se asociaron
para w, pero no puede identificar si aparecen luego en el orden correcto (esto es, en
el orden inverso) al procesar wR . La prueba formal de este teorema puede hallarse
en [Pet81, Seccion 6.6].
Ejercicio 7.1 [Adaptado de [Pet81]] Mostrar que el lenguaje libre del contexto
LLC = {an bn | n > 1} es representable mediante una red de Petri aceptadora. 2
El ejercicio 7.2 muestra asimismo que la clase de lenguajes reconocidos por redes
de Petri no esta estrictamente incluida en la clase de los lenguajes libres del contexto.
Ejercicio 7.2 [Adaptado de [Pet81]] Mostrar que el lenguaje sensible al contexto
L = { an bn cn | n > 1} es reconocible a traves de una red de Petri aceptadora. 2
12
Figura 13: Relacion entre los lenguajes reconocidos a traves Redes de Petri y la
clasificacion de los lenguajes seg
un la jerarqua de Chomsky
Ya que existen lenguajes libres del contexto no reconocibles por redes de Petri es
claro que no es posible que los LSC esten estrictamente incluidos en la clase de los
lenguajes reconocidos por redes de Petri o que se trate del mismo conjunto. Luego en
terminos conjuntistas restan dos situaciones posibles para denotar la relacion entre
los lenguajes sensibles al contexto y los reconocibles por una red de Petri. O bien los
lenguajes reconocidos por redes de Petri estan estrictamente incluidos en el conjunto
de los LSC o existe entre ellos una interseccion pero ninguno esta contenido en el
otro. El siguiente resultado aclara la situacion.
Teorema 7.3 Todo lenguaje reconocido por una red de Petri aceptadora pertenece
a la clase de lenguajes sensibles al contexto. 2
Demostraci
on: Vease seccion 6.6 de [Pet81].
Los resultados anteriores son resumidos mediante el grafico de la figura 13.
Los resultados presentados muestran que las redes de Petri tienen una potencia
expresiva limitada, inferior a la de los automatas acotados linealmente (capaces de
reconocer todo lenguaje sensible al contexto). Posteriormente se vera que es factible
extender el poder de computo de las redes de Petri a traves de un tipo especial de
arcos, denominados arcos inhibidores. Las redes de Petri extendidas de esta forma
tendran un poder equivalente a las maquinas de Turing, y seran en consecuencia
capaces de reconocer la clase de lenguajes sensibles al contexto. No obstante, no
abundaremos aqu en mayores detalles sobre esta cuestion, y postergaremos el tratamiento detallado de este tema para la proxima seccion.
8.
A lo largo de las secciones precedentes se han presentado las caractersticas principales de las redes de Petri, las bases de su funcionamiento y su capacidad para
procesar lenguajes. Se mostro que las redes de Petri no son capaces de procesar todos los lenguajes libres de contexto. Esta seccion se introducira un tipo especial de
arco denominado arco inhibidor, que como se vera mas adelante permite aumentar
notablemente su capacidad de computo.
13
Figura 14: Uso de un arco inhibidor para implementar testeo por cero.
En el caso de que el lugar p no contenga tokens se dispara la transicion t1 ,
colocando un token en en lugar p1 . En caso contrario se disparara la transicion t2
con un doble efecto: se devuelve el token disparado al lugar p y se coloca tambien
un token en el lugar p2 . Notese que la presencia posterior de un token en el lugar
p1 indica que el lugar p estaba vaco; en caso contrario, el token sera ubicado en el
lugar p2 .
Notese tambien que independientemente de cual sea la transicion disparada (t1 o
t2 ), el contenido original del lugar p no se altera. Decimos entonces que se lleva a cabo
un testeo no-destructivo. Puede pensarse entonces que la red de Petri en cuestion
implementa un test similar al realizado por una estructura de control condicional:
si p = 0 then p1 else p2 . Los lugares p1 y p2 pueden entenderse como posibles cursos
de accion a realizar. 2
14
9.
10.
Referencias
El orden de presentacion de los conceptos de este captulo esta basado parcialmente en los presentados en [Aug95] y [Pin97]. Los conceptos fundamentales de redes
de Petri pueden consultarse en la Tesis Doctoral de Carl Adam Petri [Pet62]. Un
analisis detallado de las redes de Petri y sus propiedades y aplicaciones puede encontrarse en [Pet81]. Un tratamiento sucinto de redes de Petri (incluyendo ejercitacion)
puede consultarse en [Joh97].
15
Referencias
[Aug95] Juan Carlos Augusto. Fundamentos de Ciencias de la Computacion - Notas
de Curso. Universidad Nacional del Sur, Baha Blanca, Argentina, 1995.
[Joh97] Richard Johnsonbaugh. Matematicas Discretas. Prentice Hall, 1997.
[Pet62] Carl Petri. Komunikation mit Automaten. PhD thesis, Universidad de
Darmstadt, Alemania, 1962.
[Pet81] James Peterson. Petri Net Theory and the modeling of systems. Prentice
Hall, Englewood Cliffs, New Jersey, 1981.
[Pin97] Ramon Brena Pinero. Lenguajes formales y automatas. Centro de Inteligencia Artificial. Instituto Tecnologico y de Estudios Superiores de Monterrey,
Monterrey, Mexico, 1997.
16