Saltar la navegación

Colas de espera

Otro de los problemas comunes en redes de petri, son las colas de espera. Es decir, modelar que N tokens se acumulen, esparando por determinado evento.

Como ya vimos en alguno de los ejemplos anteriores, esto se modela con un sitio que acumule los tokens. Por ejemplo, en la siguiente imagen, se muestra el ejemplo del módem y el fax que vimos en el apartado de exclusión mutua. En este caso, los sitios "Esperando línea fax" y "Esperando línea módem" modelan una cola de espera, donde se acumulan tokens (que representan pedidos de módem o fax) y esperan el evento en que esté disponible la línea para atender su pedido:

Ejemplo de módem y Fax

Ahora, supongamos el caso en que se modele el ingreso a una sección de un estadio de fútbol por dos puertas. La personas llegan, forman una única fila y cuando se abren las puertas, pueden comenzar a pasar por algunas de las dos puertas habilitadas A o B. La puerta A, es el ingreso a la bandeja A y puerta B es el ingreso a la bandeja B.

En esta situación, hay un error muy común, que es modelar las separación entre las dos puertas, con una transición:

Solución 1 - Incorrecta

En este caso, la solución es incorrecta porque como sabemos, las transiciones habilitadas, generan un token por cada flecha de salida, por lo que, cuando se habilite la transición "Persona Ingresa" se generan dos tokens, uno que va al sitio "Ingresando por puerta A" y otro que va a "Ingresando por puerta B". Por lo que estaríamos modelando que una misma persona ingresa por dos puertas a la vez.

Sabiendo esto, entonces, tenemos el indicio de que necesitamos un sitio para que el token vaya, aleatoriamente, por cualquiera de las dos puertas. Pero si reemplazamos "Persona ingresa" por un sitio, la solución tampoco sería correcta, ya que no podemos tener un enlace entre dos sitios:

Finalmente, debemos modificar algunos aspectos de la red anterior. En primer lugar reemplazar "Ingresando por puerta X" por una transición, ya que es un evento. Luego, debemos agregar el sitio en que la persona ya se encuentra en le bandeja X. Finalmente, la solución quedaría:

RESUMEN

Siempre que tengamos una cola de espera con dos o más salidas posibles debemos utilizar un sitio, ya que la transición multiplica los tokens.

Para Pensar...

¿Cómo resolvería esta situación si hubiera más de una salida posible?