Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Petri Pdevs
Petri Pdevs
Petri Pdevs
net/publication/317413579
CITATIONS READS
0 94
3 authors:
Ernesto Kofman
National Scientific and Technical Research Council
106 PUBLICATIONS 1,702 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Taihú Pire on 08 June 2017.
El trabajo está estructurado de la siguiente Las transiciones que no poseen lugares anteriores
manera: en la sección 2 se presentan los con- reciben el nombre de transiciones de entrada (o
ceptos y herramientas utilizados en el resto del fuentes). Los disparos de las mismas se deben a
trabajo. En la sección 3 se describe el trabajo decisiones externas (son “controladas” desde el
desarrollado y en la sección 4 se exponen distintos exterior). Las transiciones que no poseen lugares
ejemplos y aplicaciones que manifiestan distintas posteriores se llaman transiciones de salida (o
caracterı́sticas de la implementación. Finalmente, sumideros). Los disparos de las mismas nos
en la sección 5 se comentan algunas conclusiones indican cuando se producen marcas desde la red
y posibles trabajos futuros. hacia el exterior.
Las mismas definiciones pueden hacerse para los
lugares (los lugares de entrada deben ser provistos
2. CONCEPTOS PREVIOS de marcas desde el exterior).
2.1 Redes de Petri Los cambios de estados ocurren según las siguien-
tes reglas de evolución:
Las Redes de Petri (PN) (Cassandras and Lafor- una transición Ti puede dispararse o activar-
tune, 2008; Cohen, 2001) son una herramienta se, si cada lugar anterior a Ti contiene al
gráfica, creada por Carl Adam Petri, que se menos tantas marcas como el peso del arco
utilizan para representar fenómenos tales como que los une.
la dinámica de eventos, la evolución en paralelo, cuando una transición Ti es disparada o
la dependencia condicional (sincronización), la activada, se elimina de cada lugar anterior a
competencia de recursos, etc. Estos fenómenos se dicha transición tantas marcas como el peso
manifiestan frecuentemente en sistemas de pro- del arco que los une. También se agrega a
ducción, protocolos de comunicaciones, compu- cada lugar posterior a Ti tantas marcas como
tadoras y redes de datos, software de tiempo real, el peso del arco que los une (ver Fig. 1).
sistemas de transporte, etc.
En lugar de asociar pesos a los arcos, se puede
Desde el punto de vista de la teorı́a de grafos suponer que todos los arcos tienen peso uno y
las redes de Petri son un par dirigido (ϑ, M ) permitir varios arcos “paralelos” entre lugares y
compuesto por un grafo dirigido bipartito ϑ = transiciones.
(E, V ) y una marca inicial M. El conjunto
de vértices está dividido en dos subconjuntos Las Redes de Petri permiten también incorporar
disjuntos P (lugares) y T (transiciones). Los temporización, añadiendo un parámetro a los
lugares serán representados por: Pi , i = 1, ..., |P | lugares y/o transiciones que denota:
y las transiciones por: Tj , j = 1, ..., |T |. Los arcos lugares: el tiempo mı́nimo que las marcas
de E van de los lugares a las transiciones o bien deben permanecer antes de contribuir a ha-
de las transiciones a los lugares. Gráficamente los bilitar el disparo de una transición posterior.
lugares serán representados mediante cı́rculos y Se denomina tiempo de espera.
las transiciones mediante arcos. A los arcos se les transiciones: el tiempo que separa el comien-
asigna un peso el cual está dado por un número zo (el consumo de marcas de los lugares
entero (en ausencia de dicho número se considera anteriores) y la finalización (la producción
que el peso es 1). La marca inicial asigna un entero de marcas hacia los lugares posteriores)
no negativo Mi a cada lugar Pi . Gráficamente, del disparo de una transición. Se denomina
Mi puntos o marcas serán colocados en el cı́rculo tiempo de disparo.
que representa a Pi . El vector columna M , cuyas
componentes son las Mi , recibe el nombre de
marca inicial de la red de Petri. Diremos que un
lugar Pi es anterior a una transición Tj , si hay un 2.2 Simuladores de Redes de Petri
arco que va de Pi a Tj . Análogamente, diremos
que un lugar Pi es posterior a la transición Tj , si
Dado que las Redes de Petri son muy utilizadas,
hay un arco que va de Tj a Pi . Una representación
se han desarrollado numerosas herramientas para
gráfica de una Red de Petri puede verse en la
su modelado, simulación y análisis:
Fig. 1.
2 2
Hay un conjunto de herramientas de código
T1 P1 T2 P3 T1 P1 T2 P3 abierto desarrolladas en Java, que permiten
2 2
editar, simular y analizar redes de Petri
P2 T3 T3 P2 T3
(a) (b)
de manera gráfica. Entre ellas encontramos
P4 T1 P4
Pipe2 (Bonet et al., 2007), Tapaal (Byg
et al., 2009) y HPSim. Cada una de estas
herramientas ofrece distintas opciones de
Figura 1. Evolución de una Red de Petri temporización, análisis, etc.
AADECA 2010 - Semana del Control Automático - XXII◦ Congreso Argentino de Control Automático
31 de Agosto al 2 de Septiembre de 2010 - Buenos Aires, Argentina.
Matlab posee un toolbox para diseñar, ana- Durante una transición externa no se produce
lizar y simular redes de Petri (Zdenk et al., ningún evento de salida.
2001),.
Los modelos DEVS pueden acoplarse de forma
Modelica cuenta con una librerı́a de Redes
equivalente a los diagramas de bloques, a través
de Petri (Mosterman et al., 1998), que
de puertos de entrada y salida. Los modelos
permite modelar y simular Redes de Petri
acoplados constituyen modelos DEVS válidos, que
en las distintas herramientas de software que
pueden acoplarse a su vez con otros modelos
implementan este lenguaje. Estos modelos
DEVS atómicos o acoplados.
pueden interactuar con modelos más gene-
rales representados en Modelica.
2.4 Redes de Petri y DEVS
IN1 OUT2
un evento de salida con valor y1 = λ(s1 ). La
IN2 OUT3
función λ (λ : S → Y ) se llama Función de IN3 OUT4
Salida. Ası́, las funciones ta, δint y λ definen el IN4 FIRED
comportamiento autónomo de un modelo DEVS.
Cuando llega un evento de entrada el estado Figura 3. Modelo conceptual de una transición
cambia instantáneamente. El nuevo valor del
Este modelo posee cinco puertos de entrada y
estado depende no sólo del valor del evento
cinco puertos de salida. Por el puerto de entrada
de entrada sino también del valor anterior de
IN 1 llegan eventos de los lugares anteriores
estado y del tiempo transcurrido desde la última
notificando la cantidad de marcas que tienen los
transición. Si el sistema llega al estado s3 en el
mismos. Los puertos de entrada IN 2, IN 3, e
instante t3 y luego llega un evento de entrada
IN 4 tienen la misma función que el puerto IN 1
en el instante t3 + e con un valor x1 , el nuevo
excepto que los arcos representan una conexión
estado se calcula como s4 = δext (s3 , e, x1 ) (notar
doble, triple y cuádruple respectivamente.
que ta(s3 ) > e). En este caso se dice que el
sistema realiza una transición externa. La función El puerto de entrada IN 0 cumple la misma
δext se llama Función de Transición Externa. función que el puerto IN 1 con la excepción de
AADECA 2010 - Semana del Control Automático - XXII◦ Congreso Argentino de Control Automático
31 de Agosto al 2 de Septiembre de 2010 - Buenos Aires, Argentina.
que las conexiones consisten en un arco inhibidor. Por otra parte, los eventos que procesan los
Es decir, los lugares de entrada deben contener modelos atómicos también son instancias de una
cero marcas para que la transición esté activa y clase llamada Event. Como vimos en la sección
cuando esta se dispara ninguna marca es removida 2.3 tanto los eventos de entrada como los de
del lugar. salida de un modelo DEVS pueden pertenecer
a cualquier conjunto definido por el modelador.
Por el puerto de salida OU T 1 se envı́an eventos
Para representar esto en el motor de simulación,
a los lugares posteriores indicando que deben
el valor que contiene la clase Event es del tipo
incrementar su estado en una marca. Los puertos
void *, o sea un puntero sin tipo. C++ hace
de salida OU T 2, OU T 3 y OU T 4 cumplen con el
posible que cualquier tipo sea convertido desde y
mismo propósito que el puerto OU T 1, excepto que
hacia void * dejando ası́ que los eventos tomen
los arcos representan una conexión doble, triple y
valores de cualquier tipo.
cuádruple respectivamente. Finalmente, F IRED
es un puerto de salida que se utiliza para indicar a Esta caracterı́stica también será explotada para
los lugares anteriores que deben remover marcas. evitar conexiones inexistentes transmitiendo pun-
teros a los distintos modelos como parte del valor
Este último puerto (y sus conexiones hacia los
del evento.
lugares anteriores) no existen en la representación
gráfica original de la red, sino que son un requisito
de esta implementación. En consecuencia, los
modelos de Redes de Petri representados en 3. TRABAJO DESARROLLADO
CD++ no lucen como la red original y obligan
al usuario a agregar muchos puertos y conexiones En esta sección se describe la metodologı́a desa-
adicionales. rrollada y la implementación de Redes de Petri en
el entorno PowerDEVS.
PowerDEVS (Bergero and Kofman, 2010) es un La principal dificultad para representar Redes
entorno de simulación multi-plataforma de mode- de Petri en DEVS está asociada a la dinámica
los DEVS de propósito general. Fue desarrollado del disparo de una transición. En ese momento
y es mantenido por el Laboratorio de Sistemas todos los lugares anteriores deben decrementar su
Dinámicos de la Facultad de Ciencias Exactas, número de marcas y (de no haber temporización)
Ingenierı́a y Agrimensura de la Universidad Na- todos los lugares posteriores deben incrementarlo.
cional de Rosario. Esto a su vez, puede modificar el estado activo o
inactivo de otras transiciones.
Una de las caracterı́sticas salientes de Power-
DEVS es que contiene una librerı́a completa de Debido a la modularidad de DEVS (un modelo
implementación de los métodos de QSS (Cellier no puede ver ni modificar directamente el estado
and Kofman, 2006), los cuales realizan una apro- de otro), estos cambios implican la necesidad
ximación DEVS de sistemas continuos. De esta de conexiones desde las transiciones hacia los
manera, PowerDEVS permite simular sistemas lugares anteriores y posteriores. En las Redes
continuos y discretos (es decir, sistemas hı́bridos) de Petri, en cambio, sólo hay arcos desde las
de una manera muy simple y eficiente. transiciones hacia los lugares posteriores. Esta
diferencia provocará que, de no utilizarse algún
Esta herramienta permite acoplar modelos gráfi-
truco para romper la modularidad, el modelo
camente a través de una interfaz sencilla e
DEVS de la Red de Petri contendrá puertos
intuitiva (ver Fig. 5) lo que la hace apropiada
y conexiones inexistentes, tal como ocurre en
para el modelado con formalismos gráficos como
(Jacques and Wainer, 2002).
las Redes de Petri .
Otro problema es que todos los cambios de marcas
El motor de simulación de PowerDEVS, imple-
y de activación asociados a un disparo deben
mentado completamente en C++, mapea cada
realizarse simultáneamente. Este comportamiento
modelo DEVS atómico a un clase. Al ejecutarse
no es trivial de representar en DEVS, ya que
la simulación, habrá tantas instancias de esta
los modelos DEVS cambian su estado de a uno
clase como modelos atómicos hubiere en el modelo
por vez, es decir no puede haber cambio en dos
DEVS. Esto permite referenciar a través de
modelos al mismo tiempo.
punteros a los modelos atómicos en tiempo de
ejecución. Esta caracterı́stica, como se verá más Finalmente, hay una dificultad adicional asociada
adelante, será crucial para evitar el agregado al no determinismo de las Redes de Petri. Cuando
de las conexiones y puertos inexistentes que dos transiciones están activas, el formalismo no
aparecı́an en (Jacques and Wainer, 2002). especifica cuál es la que debe dispararse. En
AADECA 2010 - Semana del Control Automático - XXII◦ Congreso Argentino de Control Automático
31 de Agosto al 2 de Septiembre de 2010 - Buenos Aires, Argentina.
la presente implementación se optó por asignar T imeF lag indica en que estado está el
prioridades estáticas (asignadas por el usuario) lugar: 0 cuando no hay marcas nuevas, 1
a los modelos DEVS que representan las tran- cuando hay marcas que están cumpliendo el
siciones, modificando la semántica de ejecución, tiempo de espera del lugar y 2 cuando hay
disparando la transición de mayor prioridad, marcas nuevas que han cumplido el tiempo
cuando hay múltiples transiciones activas. de espera. La lista T okenT imes mantiene
el tiempo de espera actual de cada marca
contenida en el lugar.
3.2 Implementación δint : Si el lugar estaba esperando que alguna
marca se active (T imeF lag = 1), al cum-
Siguiendo la idea de (Jacques and Wainer, 2002), plirse el tiempo correspondiente, una marca
la transición y el lugar serán representados por es agregada a tokens, se asigna Sigma = 0
modelos DEVS atómicos, mientras que los arcos para notificar a las transiciones posteriores
serán conexiones DEVS entre los puertos corres- que hay una nueva marca activa y se va
pondientes. En este trabajo se implementarán a un estado en el cual hay marcas activas
tanto lugares como transiciones temporizadas. (T imeF lag = 2). Si el lugar ya tenı́a
marcas activas al momento de cumplirse
Los eventos transmitidos entre las transiciones y
el tiempo de espera (T imeF lag = 2), se
lugares tienen la siguiente estructura:
debe corroborar si quedan marcas en la
typedef struct msg{ lista. En caso afirmativo se toma como
double y[10]; tiempo de avance el tiempo en que la
Simulator *src; próxima marca va a estar activa (Sigma =
int tokens; min(T okenT imes); T imeF lag = 1), en caso
}Message; contrario se transiciona a un estado pasivo
(Sigma = ∞; T imeF lag = 0).
El campo double y[10] está ubicado prime-
δext : Se actualiza la lista de T okenT imes
ro para tener compatibilidad con los demás
teniendo en cuenta el tiempo transcurrido. Se
bloques de PowerDEVS. Cuando un evento
agrega una nueva marca a la lista con tiempo
es emitido por un lugar, y[0] contiene el
de espera igual al del lugar. Luego se asigna
número de marcas del mismo. Cuando es
a Sigma el tiempo en el cual se va a activar
emitido por una transición, tiene valor 0. El
la próxima marca.
resto de los componentes es siempre 0.
Simulator *src es un puntero que hace Cuando una transición cambia la cantidad de
referencia al objeto que emitió el evento. marcas en un lugar, el lugar debe ser notificado.
Este puntero es utilizado por el receptor del Esto se realiza utilizando un mecanismo provisto
evento para acceder y modificar el estado por el motor de simulación de PowerDEVS,
del atómico que envió el mensaje. Esto es el cual permite simular la ocurrencia de una
lo que permite quebrar la modularidad de transición externa aún sin haber recibido un
DEVS para evitar las conexiones adicionales evento. Cuando el lugar recibe un aviso de este
ya mencionadas. tipo (una transición externa simulada), emite un
int tokens indica la cantidad de marcas evento instantáneamente haciendo Sigma = 0
que contiene un lugar y en el caso de una para notificar a las transiciones posteriores su
transición siempre tiene el valor 0. nuevo número de marcas.
El modelo DEVS del lugar tendrá un puerto El modelo DEVS de la transición tendrá un
de entrada por cada transición anterior y un puerto de entrada por cada lugar anterior y un
único puerto de salida que podrá ser conectado a único puerto de salida que podrá ser conectado
múltiples transiciones posteriores. Los valores de a múltiples lugares posteriores. Si la transición
los eventos de entrada y de salida, serán instancias no tiene ningún puerto de entrada (es decir no
de la clase Message. tiene lugares anteriores), se comportará como una
fuente periódica de marcas teniendo como perı́odo
El modelo DEVS del lugar tendrá las siguientes
el tiempo de disparo.
caracterı́sticas:
El modelo DEVS de la transición tiene las
El estado es s = (tokens ∈ N0+ , Sigma ∈
siguientes caracterı́sticas:
R+ , T imeF lag ∈ {0, 1, 2}, T okenT imes ∈
List(R+ )). El entero tokens mantiene la el estado es s = (Sigma ∈ R+ , enabled ∈
cantidad de marcas “activas” que contiene el bool, portsinit ∈ bool, dataBase ∈ N →
lugar. Sigma mantiene el tiempo de avance. (N × N )) donde Sigma representa el tiempo
AADECA 2010 - Semana del Control Automático - XXII◦ Congreso Argentino de Control Automático
31 de Agosto al 2 de Septiembre de 2010 - Buenos Aires, Argentina.
REFERENCIAS
Bergero, F. and E. Kofman (2010). PowerDEVS.
A Tool for Hybrid System Modeling and Real
Time Simulation. Simulation: Transactions
of the Society for Modeling and Simulation
Figura 9. Control de Alto Nivel en PowerDEVS International. in Press.
Bonet, P., C.M. Llado, R. Puijaner and W.J.
Knottenbelt (2007). PIPE v2.5: A Petri Net
1.2 Tool for Performance Modelling. In: Proc. 23rd
1.0 Latin American Conference on Informatics
0.8 (CLEI 2007). San Jose, Costa Rica.
Byg, J., K.Y. Joergensen and J. Srba (2009).
Pos X
0.6
0.4
TAPAAL: Editor, simulator and verifier of
0.2
timed-arc Petri nets. In: Proceedings of the
0.0
7th International Symposium on Automated
−0.2
0 20 40 60 80 100 120 Technology for Verification and Analysis (AT-
VA’09). Macao, China. pp. 84–89.
1.5
Cassandras, C. and S. Lafortune (2008). Introduc-
1.0
tion to Discrete Event Systems. Second Edition.
0.5
Springer. New York.
Pos Y
0.0
Cellier, F. E. and E. Kofman (2006). Continuous
−0.5
System Simulation. Springer. New York.
−1.0 Cohen, G. (2001). Análisis y Control de Sistemas
−1.5
0 20 40 60 80 100 120
de Eventos Discretos: De Redes Temporizadas
Tiempo (s) al Álgebra. Cuadernos del Instituto de Ma-
Figura 10. Resultado de Simulación del Robot temática Beppo Levi. FCEIA - Universidad
Nacional de Rosario.
5. CONCLUSIONES Y TRABAJO A FUTURO Jacques, C. and G. Wainer (2002). Using the
CD++ DEVS Tookit to Develop Petri Nets.
In: Proceedings of the Summer Computer
Se desarrolló una nueva librerı́a para modelado y
Simulation Conference.
simulación de Redes de Petri dentro del simulador
Mosterman, P., M. Otter and H. Elmqvist
PowerDEVS, habiéndose resuelto los principales
(1998). Modeling petri nets as local constraint
problemas de incompatibilidad de los formalis-
equations for hybrid systems using modelica.
mos. De esta forma, se logró una implementación
In: Proceedings of the Summer Computer
que, para el usuario, conserva la apariencia gráfica
Simulation Conference. pp. 314–319.
de las Redes de Petri (esta caracterı́stica no habı́a
Oriolo, G., A. De Luca and M. Vendittelli
sido lograda nunca en simuladores basados en
(2002). WMR Control Via Dynamic Feedback
DEVS).
Linearization: Design, Implementation, and
Otra caracterı́stica saliente de la librerı́a es Experimental Validation. IEEE Transactions
que puede ser utilizada para realizar modelos on Control Systems Technology 10(6), 835–852.
que combinen las Redes de Petri con otros Wainer, G. (2002). CD++: a toolkit to develop
formalismos. DEVS models. Software: Practice and Expe-
rience 32(13), 1261–1306.
Mediante dos ejemplos de aplicación, se verificó el
Zdenk, M. S., M. Svádová and Z. Hanzálek
funcionamiento de la librerı́a y se ilustró su uso
(2001). Matlab toolbox for petri nets. In:
en casos hı́bridos de relativa complejidad.
22nd International Conference ICATPN 2001.
Como trabajo futuro, queda pendiente desarrollar pp. 32–36.
alguna herramienta de visualización especı́fica Zeigler, B., T. G. Kim and H. Praehofer (2000).
para mostrar la evolución de las Redes de Petri Theory of Modeling and Simulation. Second
modeladas en PowerDEVS, ya que actualmente edition. Academic Press. New York.