Redes de Petri Introducción (Informal) Cesáreo Raimúndez Depto. de Ingeniería de Sistemas y Automática ETSII-Vigo Redes de Petri p. 1/18
Introducción Herramienta gráfica para modelar la concurrencia y sincronismo en sistemas distribuidos. Inventada por Carl Adam Petri en 1962. Utilizada como método de descripción visual en la ayuda a la descripción del comportamiento de sistemas complejos. Posee sólida base matemática. Redes de Petri p. 2/18
Especificación de una RdP Una red de Petri (RdP) es un grafo bipartido y orientado. Consiste en cuatro tipos de componentes: plazas representadas por círculos, transiciones representados por rectángulos, arcos orientados por flechas y marcas representadas por pequeñas bolas en el interior de algunas plazas. Plazas representan estados posibles del sistema. Transiciones representan eventos o acciones que causan cambios de estado. Arcos que conectan plazas y transiciones su capacidad es unitaria por defecto. Marcas que sirven para indicar cuales estados están activos. RdP = {P, T, A, m 0 } p 2 t 1 t 2 t 3 t 4 p 1 p 4 p 3 Redes de Petri p. 3/18
Especificación de una RdP p 2 t 1 t 2 t 3 t 4 p 1 p 4 p 3 P = {p 1, p 2, p 3, p 4 } T = {t 1, t 2, t 3, t 4 } A = {{t 1, p 1 }, {p 1, t 2 }, {t 2, p 3 }, {p 3, t 3 }, {t 3, p 2 }, {p 2, t 2 }, {t 3, p 4 }, {t 4, p 4 }} m 0 = {m 0 (p 1 ) = 2, m 0 (p 2 ) = 0, m 0 (p 3 ) = 1, m 0 (p 4 ) = 0} Redes de Petri p. 4/18
interpretación típica de estados y transiciones Plazas de Entrada Transición Plazas de Salida Pre-Condiciones Evento Post-Condiciones Datos de Entrada Paso de Computación Datos de Salida Recursos Necesarios Tarea Recursos Liberados Buffer Procesador Buffer Condiciones Cláusula Conclusiones Redes de Petri p. 5/18
Cambio de estado El cambio de estado se indica a través del movimiento (evolución) del marcado, que se dirige de unas plazas a otras. Esta evolución es causada por el disparo de una o más transiciones que están activadas. El disparo representa la ocurrencia de un evento significativo en el contexto. El disparo de una transición está supeditado a las condiciones de entrada en la transición en que se efectúa, o sea, a la disponibilidad de marcado suficiente en las plazas antecedentes a la transición. Redes de Petri p. 6/18
Definición Entidades derivadas I(t j ) = t j = {p i {p i, t j } A} plazas de entrada a transiciones O(t j ) = t j = {p i {t j, p i } A} plazas de salida de transiciones p j = {t i {t i, p j } A} transiciones de entrada a plazas p j = {t i {p j, t i } A} transiciones de salida de plazas Y = Y = y Y y Y y y Redes de Petri p. 7/18
Semántica Una transición está activada siempre y cuando las plazas que le están conectadas a través de arcos de incidencia tienen por lo menos una marca. t 1 t 1 desactivada t 3 t 4 t 2 t 2 activada t 3 desactivada t 4 activada t j activada = p i I(t j ), m(p i ) 1 Redes de Petri p. 8/18
Semántica Con el disparo de las transiciones activadas el marcado evoluciona. Para redes con capacidad unitaria en los arcos, se retira una marca de las plazas inmediatamente antecedentes y se suma una marca a cada una de las consecuentes. Redes de Petri p. 9/18
Estructuras - Sincronización En la figura se ilustra la ocurrencia de dos procesos en paralelo, evolucionando en concurrencia. En el segundo caso los procesos están sincronizados ya que para proseguir es necesario que los dos se hayan concluido. Procesos paralelos Procesos sincronizados Redes de Petri p. 10/18
Estructuras: Buffer Limitado En la figura se representa un buffer con capacidad limitada (3). Pa plaza p 3 representa con sus tres marcas, la capacidad total del buffer. La marca en p 1 representa un recurso a guardar en el buffer. Si t 2 se dispara tendremos: m(p 1 ) = 0, m(p 2 ) = 1, m(p 3 ) = 2 representando ahora que hay todavía don plazas disponibles en el buffer. Si se introduce una marca más a través de p 1 y se dispara de nuevo t 2 tendremos: m(p 1 ) = 0, m(p 2 ) = 2, m(p 3 ) = 1. Si insistimos con una marca más a través de p 1 y disparamos t 2 llegaremos finalmente a: m(p 1 ) = 0, m(p 2 ) = 3, m(p 3 ) = 0. A partir de este momento, ya no pueden ingresar mas objetos en el buffer pues la transición t 2 estará inhabilitada. Para que se pueda continuar tendremos que disparar la transición t 3 retirando un objeto del buffer y activando de nuevo la transición t 2. p 1 p 2 p 4 t 1 t 2 t 3 p 3 Buffer de capacidad limitada Redes de Petri p. 11/18
Estructuras: Productor-Consumidor Ilimitado p 1 p 3 t 1 t 3 p 2 p 4 t 2 p 5 T4 Productor Consumidor Redes de Petri p. 12/18
Estructuras: Productor-Consumidor Limitado p 1 p 3 t 1 p 6 t 3 p 2 p 4 t 2 p 5 T4 Productor Consumidor Redes de Petri p. 13/18
Estructuras: Recursos Compartidos Las plazas p 3, p 7 representan el recurso compartido por los dos procesos. p 1 p 5 t 1 t 4 p 2 p 6 t 2 t 5 p 3 p 4 p 7 t 3 t 6 Recursos Compartidos Redes de Petri p. 14/18
Recursos Compartidos: Arcos Inhibidores Los arcos inhibidores pueden utilizarse apenas entre plazas y transiciones, y en esta dirección. La transición en el recuadro, está activa y puede dispararse ya que el arco inhibidor resulta afirmativo en la ausencia de marca en la plaza antecedente. En la simultaneidad de disparo en el caso de la red de recursos compartidos, la transición t 2 es la que puede dispararse con éxito. p 1 p 5 t 1 t 4 p 2 p 6 t 2 t 5 p 3 p 4 p 7 t 3 t 6 Redes de Petri p. 15/18
Recursos Compartidos: Alternancia Caso se necesite alternancia en la utilización de un recurso compartido se puede utilizar la estructura observada en la figura. Empezando con el disparo de t 2 cada proceso tendrá acceso alternado al recurso compartido. p 1 p 5 t 1 t 4 p 2 p 6 t 2 p 8 t 5 p 3 p 4 p 7 t 3 t 6 Recursos Compartidos con alternancia de acceso Redes de Petri p. 16/18
Propiedades Básicas Alcanzabilidad : Se puede alcanzar cualquier estado partiendo de otro cualquiera, a través de una secuencia de disparos adecuada. Limitación : Una RdP se dice k-limitada o sencillamente limitada si el número de marcas en cada plaza no supera un número finito k para cualquier marcado alcanzado a partir de m 0 (marcado inicial). Vivacidad : Una transición t es viva para un marcado inicial m0 si y solo si existe una secuencia de disparos a partir de cualquier marcado m i sucesor de m 0 que comprenda a t. Si una RdP es viva el sistema no puede bloquearse en su evolución puesto que todas transiciones pueden llegar a dispararse. Ya la recíproca no es verdadera. Puede ser que una RdP marcada no viva no se bloquee. Esta situación caracteriza las RdP parcialmente vivas. Conflictividad : Se dice que en una RdP existe conflicto estructural cuando un lugar posee más de una transición de salida. La situación de conflicto es inaceptable para cualquier descripción de un sistema, dado que será ambigua. Redes de Petri p. 17/18
Propiedades Básicas No Viva Ilimitada k-limitada Conflicto Redes de Petri p. 18/18