Escolar Documentos
Profissional Documentos
Cultura Documentos
com
Redes De Petri
Indice
1. Introducción.
2. Estructura de una red de Petri.
3. Representación gráfica de una red de Petri.
4. Reglas de disparo para una PN.
5. Redes de Petri Coloreadas
6. Modelado con Redes de Petri
7. Conclusiones
1. Introducción.
Las redes de Petri representan una alternativa para modelar sistemas, sus características hacen que,
para algunos problemas las redes de Petri funcionen de una manera natural.
Las PN como ahora conoceremos a las redes de Petri (Petri Net) fueron inventadas por el alemán Karl
Adam Petri en 1962. En su tesis doctoral "kommunikation mit automaten" (Comunicación con
autómatas), establece los fundamentos para el desarrollo teórico de los conceptos básicos de las PN.
Las PN son consideradas una herramienta para el estudio de los sistemas. Con su ayuda podemos
modelar el comportamiento y la estructura de un sistema, y llevar el modelo a condiciones límite, que en
un sistema real son difíciles de lograr o muy costosas.
La teoría de PN ha llegado a ser reconocida como una metodología establecida en la literatura de la
robótica para modelar los sistemas de manufactura flexibles.
Comparada con otros modelos de comportamiento dinámico gráficos, como los diagramas de las
máquinas de estados finitos, las PN ofrecen una forma de expresar procesos que requieren sincronía. Y
quizás lo más importante es que las PN pueden ser analizadas de manera formal y obtener información
del comportamiento dinámico del sistema modelado.
Para modelar un sistema se usan representaciones matemáticas logrando una abstracción del sistema,
esto es logrado con las PN, que además pueden ser estudiadas como autómatas e investigar sus
propiedades matemáticas.
¿Qué tipo de sistemas podemos modelar con las PN? Y ¿Cómo logramos la analogía entre el sistema
real y el modelo usando una PN? son dos de las preguntas a las que debemos atender. Para esto
pongamos atención a los sistemas: una idea fundamental en un sistema es que se compone de módulos
que interactúan entre sí, los cuales pueden ser considerados por si mismos un sistema, y podríamos
estudiar su comportamiento por separado y de esta manera aislarlos, pero siempre teniendo en cuenta
la interacción que guardan con los otros módulos.
Ahora deseamos conocer en que condiciones se encuentran los módulos, es como si detuviéramos al
sistema en el tiempo, las condiciones internas de los módulos determinarían el estado en el que se
encuentran, para esto entendemos que un sistema es un arreglo dinámico que en el transcurso del
tiempo tiene variaciones y no permanece estático. El estado de un módulo con frecuencia depende de
su historia, es decir de las acciones dadas en un tiempo anterior.
Hablemos de dos conceptos importantes: acciones y estados, las acciones nos conducen a un estado
determinado del módulo en el tiempo, las acciones de un módulo en un sistema pueden ocurrir
simultáneamente con las acciones de otros módulos, dado que ellos interacúan entre sí, es necesario
sincronizar los eventos. Esto puede resultar en que las condiciones de un módulo en el tiempo necesitan
como entradas las salidas de otro, él cual necesita más tiempo para generar las salidas, es entonces
cuando pensamos en paralelismo y concurrencia. Las PN fueron diseñadas específicamente para
modelar este tipo de sistemas.
Tomemos dos conceptos más: eventos y condiciones, los eventos son las acciones que se dan en el
sistema y nos llevan a un estado, podemos describir un estado como un conjunto de condiciones. Es
útil, para nuestro caso, representar dichas condiciones por medio de predicados.
Para que cierto evento ocurra es necesario que ciertas condiciones se cumplan, estas son llamadas pre-
condiciones del evento, la ocurrencia del evento nos puede llevar a otras condiciones y es entonces
cuando se dan las post-condiciones.
Para modelar un sistema en una PN debemos reconocer las condiciones y los eventos que se dan en él,
de esta manera podemos hacer la analogía entre el sistema y el modelo, al conocer las condiciones que
se necesitan para dar cierto evento podemos diseñar los módulos y relacionarlos con otras condiciones,
y para esto necesitamos saber la estructura de una PN para saber que corresponde a una condición y
un evento en la red.
2. Estructura de una red de Petri.
Las PN se componen de cuatro partes:
Un conjunto de nodos.
Un conjunto de transiciones.
Una función de entrada y
Una función de salida.
Las funciones de entrada y salida relacionan a los nodos y a las transiciones. La función de entrada es
un mapeo de una transición tj a una colección de nodos conocidos como los nodos de entrada de una
transición. La estructura de una PN es definida por los nodos, las transiciones, la función de entrada y la
función de salida.
Definición: La estructura de la PN P=(P,T,I,O) donde:
P={p1,p2,…,pn} es un conjunto finito de nodos, con n 0.
T={t1,t2,…,tm} es un conjunto finito de transiciones con m 0.
P T=
I,O: T P
Un nodo pi es un nodo de entrada de la transición tj sí pi I(tj); pi es un nodo de salida sí pi O(tj). Las
entradas y salidas de una transición son conjuntos que tienen elementos repetidos o múltiples
ocurrencias de nodos (bags). La multiplicidad de un nodo de entrada p i para una transición tj es el
número de ocurrencias del nodo en el bag de entrada de la transición. Escribimos esto como: #(p i,I(tj)).
De igual forma para la salida lo cual escribimos: #(pi,O(tj)).
Ejemplo:
P=(P,T,I,O)
P={p1,p2,p3, p4, p5} T={t1,t2,t3, t4, t5}
I(t1) ={p1} O(t1)={p2, p3, p5}
I(t2) ={p2, p3, p5} O(t2)={p5}
I(t3) ={p3} O(t3)={p4}
I(t4) ={} O(t4)={p2, p3}
I(t5) ={p4} O(t5)={p2, p3}
Donde:
#(p3,I(t2))=1 #(p5,O(t1))=1
Una marca U es una característica de la PN, marca U es una asignación de tokens a la PN. Un token es
un concepto primitivo de una PN, un número de ellos reside en los nodos y se mueve entre ellos; los
tokens son la parte dinámica de la PN, su número puede variar entre nodos y son los que determinan la
situación de la red en un momento determinado.
Definición: Una marca U de una PN P=(P,T,I,O) es una función U: P N.
Es decir el nodo pi tiene U(pi) tokens.
La PN puede ser considerada también como un modelo de flujo de información, en donde el
comportamiento dinámico de los tokens representan el flujo. Dicho de otra manera la información
depende de lo que la PN esta modelando.
p2
t5
• •• t4 •
p5
p1 p4
t2
t1
p3 t3
p2
• •
t4 p4
p1 t1 p5
t2
••
p3 t3
porque no hay tokens en el nodo p2, el cual es entrada de ella. Dado que t1, t3 y t4 son ENABLED
cualquiera de ellas puede ser disparada. Podemos asociar de manera natural un vector u enlistando los
valores de U. Así para la PN mostrada tenemos u=(1,0,2,1,0). Sí la transición t4 es disparada, remueve
tokens de cada entrada y los deposita en cada salida, entonces remueve un token de p4 y deposita un
token en p2 e incrementa el número de tokens en p3 de dos a tres; el vector u sería (1,1,3,0,0) y el
estado de la red se mueve a como se muestra en la siguiente figura.
•
p2
• t4 p4
p1 t1 p5
t2
•
••
p3 t3
Las transiciones pueden seguir disparándose indefinidamente hasta llegar a un estado deseado o hasta
que ninguna pueda ser disparada.
De lo anterior surgen dos preguntas:
¿Cómo decidimos que transición debe dispararse?
¿Porqué no podemos disparar dos transiciones al mismo tiempo?
Decidir que transición debe dispararse depende de nuestro modelo y sí podemos disparar más de una
transición en un mismo instante entonces estamos hablando de paralelismo.
Pensemos en un ejemplo concreto: queremos sumar cuatro números cualesquiera por medio de una
PN. Dependiendo de cada número se ponen tantos tokens en los nodos correspondientes p 1, p2, p3 y p4.
Los primeros resultados parciales se almacenan en p5, y los últimos en p6, una transición para cada
nodo es la que se encarga de quitar unidades en los sumandos y poner unidades en el resultado,
cuando se efectúan las dos sumas, se realiza una tercera suma, la realizan t5 y t6, su resultado se pone
en p7. El orden en el que se realizan las operaciones no es un orden secuencial ya que la primer suma
puede ocurrir indistintamente de las sumas anteriores.
•
•• t1 t5
p1
t2
•• p5
p2
•• t3 p7
p3
••• t4
•• p6 t6
p4
p2
t1 p3
Este tipo de redes son las que consideran el tiempo en el modelo. Es una consideración importante ya
que los sistemas reales casi siempre es indispensable considerarlo en la sincronización de los procesos.
El modelo más simple es el que asigna duración a:
1. Los nodos, en el sentido de que una condición es verdadera para una cierta cantidad de tiempo.
2. La transición, en el sentido de que un evento toma una cierta cantidad de tiempo en ocurrir.
Cuando la duración de los eventos no son fijos, o no pueden ser expresados con valores nominales,
simplemente se estiman límites dentro de los cuales el evento puede ocurrir.
Condiciones
A Una orden ha llegado y está esperando
B Una orden ha sido trabajada y está esperando ser procesada por M2 o M3
C La orden es completada
D La máquina M1 está desocupada
E La máquina M2 está desocupada
F La máquina M3 está desocupada
G El operador O1 está sin trabajo
H El operador O2 está sin trabajo
I El operador O1 está ocupando la máquina M1
J El operador O2 está ocupando la máquina M1
K El operador O1 está ocupando la máquina M2
L El operador O2 está ocupando la máquina M3
Eventos
1. Llega una orden
2. El operador O1 empieza la orden en M1
3. El operador O1 termina la orden en M1
4. El operador O2 empieza la orden en M1
5. El operador O2 termina la orden en M1
6. El operador O1 empieza la orden en M2
7. El operador O1 termina la orden en M2
8. El operador O2 empieza la orden en M3
9. El operador O2 termina la orden en M3
10. La orden es terminada y liberada
La PN se muestra a continuación:
e
2
7
•
i
3 k
c
6
a • d b
l
1
10
5
f
j
•
4 • 8
9
Eventos
1 El filósofo empieza a meditar
2 El filósofo empieza a comer
Condiciones
1 El palillo 1 está ocupado
2 El palillo 2 está desocupado
3 El palillo1 está ocupado
4 El palillo 2 está ocupado
5 El filósofo 1 está meditando
6 El filósofo 1 está comiendo
7 El filósofo 2 está meditando
8 El filósofo 2 está comiendo
Eventos
1 El filósofo 1 empieza a meditar
2 El filósofo 1 empieza a comer
3 El filósofo 2 empieza a meditar
4 El filósofo 2 empieza a comer
Como sabemos las condiciones corresponden a nodos y los eventos a transiciones, las condiciones 1 y
3, 2 y 4 pueden modelarse con un sólo nodo. El problema para cinco filósofos es modelado como se
muestra en la siguiente figura. Los nodos P1,.,P5 representan los palillos, al inicio cuando todos los
filósofos piensan, cada nodo tiene un token. Cada filósofo es representado por dos nodos M y C
representan los estados meditando y comiendo respectivamente. Para que un filósofo coma es
necesario que tenga los dos palillos en sus manos, entonces sus dos nodos deben tener un token y de
esta manera poder comer.
•
C1
P5 P1
C5 C2
M1
•
M5
M2
• P2
•
P4
M3
M4
• •
C4 •
P3 C3
7. Conclusiones
Podemos concluir diciendo de que las Redes de Petri son una alternativa de modelado de sistemas,
aplicados principalmente hacia el control y proceso, por su facilidad de manejo en el problema de la
sincronización de procesos.
También se dijo que constan de cuatro partes:
Nodos
Transiciones
Funciones de entrada
Funciones de salida
Las entradas y/o salidas de una transición son conjuntos que pueden tener elementos repetidos o
múltiples ocurrencias.
Cuentan con una asignación de tokens que es la parte dinámica de las Redes de Petri.
Las Redes de Petri se pueden representar gráficamente, un circulo representa un nodo y una
barra representa una transición, y los tokens son representados por pequeños puntos .
Las Redes de Petri tienen reglas de disparo, siendo la principal, la que dice: "todos los nodos de
entrada de la transición, deben tener al menos el mismo número de tokens, que número de arcos van
hacia la transición para que ésta sea disparada". Cuando la transición cumple dicha condición se dice
que es ENABLED.
Existen extensiones a las Redes de Petri: por ejemplo las Redes de Petri Coloreadas (PNC), las
Redes de Petri Temporales, Redes de Petri Estocásticas.
Podemos modelar los sistemas dividiéndolos en eventos y condiciones. Las condiciones son
representadas por los nodos, y los eventos por las transiciones.