PetrA - redes de Petri |
Next: Modelación con redes de
Up: Introducción a las redes
Previous: Introducción
Escribimos las definiciones de una red de Petri, tomando como base el artículo de Murata [2] y utilizando la notación de Peterson; [1].
Definición 1.
Una red de Petri es un tipo particular de grafo dirigido que consiste
de dos tipos de nodos (lugares y transiciones).
Una red de Petri es una estructura algebráica1 donde:
En la representación gráfica, la red de Petri se dibuja como un
grafo con dos tipos de nodos: lugares y transiciones. Los lugares se
representan como círculos y las transiciones, como barras o
cajas. Un arco dirigido de un lugar a una transición define
una entrada de dicha transición. Un arco dirigido de una
transición a un lugar define la salida de la transición.
En ocasiones es necesario colocar valores de peso a los arcos y se
denota por , donde es la función
Definición 2.
Una marca de una red de Petri es una función
, lo cual asigna a cada lugar un número
de tokens. La presencia o ausencia de tokens indica el
estado de un lugar, y la marca de lugares representa la disponibilidad
de un recurso, o la ocurrencia de operaciones.
La marca asigna a cada lugar un número entero no negativo. Gráficamente colocamos puntos en un lugar , si éste tiene asociado tokens. Una marca se denota por , el cual es un vector donde es el número total de lugares. La componente -iésma de , denotado por , es el número de tokens en el lugar .
Cuando se modelan sistemas se toman en cuenta dos conceptos fundamentales: las condiciones y los eventos (que se generan a partir de las condiciones). Las redes de Petri representan las condiciones como lugares y los eventos como transiciones. Una transición (evento) tiene un cierto número de lugares de entrada y salida, las cuales representan las precondiciones y las postcondiciones del evento respectivamente.
El comportamiento de muchos sistemas se puede describir en términos de los estados del sistema y sus cambios. En las redes de Petri, para simular el comportamiento dinámico de un sistema, un estado o marca de la red cambia de acuerdo con las siguientes reglas de transición:
Las transiciones que no tienen lugares de entrada se les llama transiciones fuente. Una transición fuente siempre está habilitada. Por otro lado una transición sin lugares de salida consume tokens, pero no los produce.
Se dice que hay un autociclo, cuando un par de nodos, un lugar y una transición , cumplen con: es entrada y salida de . Una red de carece de autociclos se denomina red simple.
Un ejemplo de una transición se muestra en la figura [1]. En esta figura se muestra el resultado parcial del comportamiento poblacional de zorros y conejos, donde cada zorro hambriento debe comer 3 conejos para satisfacer su apetito. Podemos observar que la transición tiene 2 lugares de entrada --1 para los zorros hambrientos y otra para los conejos--, y uno de salida (¡para el zorro feliz!).
En la figura [1]a, se muestra que hay dos zorros y cuatro conejos disponibles, por lo que la transición se habilita. Después de que se dispara, la marca se cambia al que se muestra en la figura [1]b, y la transición ya no está habilitada. Lo que significa que después de que se ha producido el evento, queda 1 conejo, un zorro hambriento y un zorro feliz.
Observemos que las transiciones asumen que cada lugar puede almacenar un número ilimitado de tokens, es decir, se asume que cada red de Petri es una red de capacidad infinita. Sin embargo, en muchos casos de modelación es preferible tener un límite superior para el número de tokens que se pueda almacenar cada lugar. A estas redes se les considera como redes de capacidad finita y se denotan como , donde representa la marca inicial, y cada lugar de de la red tiene asociado una capacidad máxima de tokens. Para que una transición de una red de capacidad finita se habilite se agrega la regla estricta de transición2, en la cual de debe cumplir que cada lugar de salida, no exceda su capacidad después de disparar .