Post on 23-Jan-2019
UNIVERSIDAD DE COLIMA
FACULTAD DE INGENIERÍA ELECTROMECÁNICA
“DISEÑO DE UN GESTOR DE REDES DE PETRI "
T E S I S
QUE PARA OBTENER EL GRADO DE:
MAESTRO EN COMPUTACIÓN PRESENTA:
ING. JOSÉ REFUGIO MARTÍNEZ REYES ASESORES:
M.C. EFRAÍN HERNÁNDEZ SÁNCHEZ M.C. PEDRO RAMÓN GÓMEZ LÓPEZ
MANZANILLO, COLIMA. OCTUBRE DEL 2003
Manzanillo, Colima; a 22 de Septiembre del 2003.
ASUNTO: Visto Bueno Trabajo de Tesis
ING. JOSÉ REFUGIO MARTÍNEZ REYES TESISTA DEL PROGRAMA DE POSGRADO MAESTRÍA EN COMPUTACIÓN DE LA FACULTAD DE INGENIERÍA ELECTROMECÁNICA
Por este conducto le informo que su trabajo de tesis titulado "DISEÑO DE UN GESTOR DE REDES DE PETRI", cumple satisfactoriamente con los objetivos previstos y por lo tanto reúne los requisitos necesarios para su presentación y defensa.
Sin otro particular, quedamos de usted.
A T E N T A M E N T E.
c.c.p. Expediente
REF.: F.I.E. OF. No. 452/2003 EXP.: P. T.U.C. – 87
ASUNTO.: ACEPTACIÓN DE TEMA DE TESIS.
Manzanillo, Col., 22 de Septiembre 2003. ING. JOSÉ REFUGIO MARTÍNEZ REYES PASANTE DE LA MAESTRÍA EN COMPUTACIÓN PRESENTE.
En atención a su solicitud, me permito comunicarle que ha sido aprobado como tema de tesis de su trabajo para acreditar la Recepción Profesional, él propuesto por usted bajo el título de:
"DISEÑO DE UN GESTOR DE REDES DE PETRI"
Y que deberá desarrollarse de la siguiente forma:
CAPITULO I.- INTRODUCCIÓN CAPITULO II-TEORÍA BÁSICA DE LAS REDES DE PETRI CAPITULO III.-CONTEXTO DEL TRABAJO DE TESIS CAPITULO IV.-CARACTERÍSTICAS DEL GESTOR DE REDES DE PETRI. CAPITULO V.- DISCUSIÓN DE LOS RESULTADOS CAPITULO VI.- CONCLUSIONES APENDICE A.- RELACIÓN DE HERRAMIENTAS DE REDES DE PETRI. APENDICE B.- CÓDIGO FUENTE Para tales efectos fungirá como asesor de su trabajo M.C. EFRAN HERNÁNDEZ
SÁNCHEZ, en la inteligencia de que su proyecto tiene validez por un año a partir de esta fecha, en caso contrario solicitará prorroga por una sola ocasión.
“2003, 45°. ANIVERSARIO DE LA FACULTAD DE DERECHO”
Carretera Manzanillo-Barra de Navidad, Km 20, C.P. 28860 Telefax 01 (314) 331 12 07
AGRADECIMIENTOS M.C. Efraín Hernández Sánchez, por haber confiado en mí para la elaboración de este
proyecto.
M.C. Fernando Rodríguez Haro, por sus conocimientos, transmitidos desinteresadamente.
M.C. Walter, por hacerme ver que empeñando un mayor esfuerzo se pueden logran grandes
empresas.
M.C. Pedro Ramón Gómez López, por sus invaluables aportaciones.
Ing. Enrique Busquets, por su apoyo incondicional.
Lic. Edna Irela Velásquez Chávez, por su visión de superación.
M.C. Enrique Gámez Niño de Rivera, por sus valiosas aportaciones.
M.C. Mónica Cobián, por su apoyo.
Ing. Lupita, por su gran generosidad.
Mtro. Juan Carlos Yáñez Velasco, Director General de Ecuación Media de la Universidad de
Colima, por dar a los profesores de educación media las condiciones para superarnos.
Dr. Carlos Salazar Silva, Rector de la Universidad de Colima, por tener una visión de calidad y
trabajo.
A mis compañeros, en quienes siempre encontré amigos sinceros dispuestos a llegar a nuevos
horizontes a base de esfuerzo y estudio, par transformar nuestro entorno y superarnos como
individuos y sociedad.
DEDICATORIA A mis padres Juan Martínez Flores y María Guadalupe Reyes Sálas, quienes infundieron en mí
el gusto por el aprendizaje, y me hicieron comprender que la mejor forma de crecer, es
manteniendo en alto el espíritu y el coraje para enfrentar las dificultades y para disfrutar los
buenos momentos.
A mi esposa, Marisol Rosales Gallardo. Mi más grande reconocimiento, pues gracias a su
comprensión y apoyo fue posible este trabajo.
A mis hermanas y hermanos, quienes siempre hemos estado unidos en una cultura de estudio y
superación.
Gracias
ÍNDICE
No. de página
i.- MARCAS REGISTRADAS. 5
ii.- LISTA DE TABLAS Y FIGURAS. 6
iii.- RESUMEN. 7
iv.- ABSTRACT. 8
CAPITULO 1.- Descripción breve del trabajo de Tesis.
1.1.- Introducción. 9
1.2.- Estado del arte de las Herramientas de Redes de Petri. 12
1.3.- Estructura de la Tesis. 13
1.4.- Objetivos. 14
1.5.- Justificación. 15
1.6.- Metodología 16
CAPITULO 2.- Teoría básica de las Redes de Petri.
2.1.- Glosario. 17
2.2.- Propiedades generales de las Redes de Petri. 21
CAPITULO 3.- Características del Gestor de Redes de Petri.
3.1.- Diseño del Programa. 35
3.2.- Interfaz Gráfica de Usuario. 40
3.3.- Menús del GRP. 45
3.4.- Evolución de la Red. 47
3.5.- Mensajes del GRP. 48
CAPITULO 4.- Discusión de los Resultados.
4.1.- Desempeño del GRP. 51
4.2.- Errores (Bugs). 51
4.3.- Objetivos vs. Resultados. 51
4.4.- Trabajos Futuros. 52
CAPITULO 5.- Conclusiones. 54
BIBLIOGRAFÍA. 54
Apéndice A.- Relación de Herramientas de Redes de Petri 55
Apéndice B - Código Fuente. 57
5
MARCAS REGISTRADAS
Delphi es una marca registrada de Borland Inc.
Java es una marca registrada de Sun Microsystems.
6
LISTA DE TABLAS Y FIGURAS
FIGURA No. De página
Figura 1.1.- Modelo del proceso de desarrollo del software del GRP 16
Figura 2.1.- Representaciones de los diferentes elementos de una Red de Petri 21
Figura 2.2.- Conexiones válidas y no válidas entre lugares y transiciones 21
Figura 2.3.- Equivalente AND de la sensibilización de una Transición 23
Figura 2.4.- Evolución del marcado 23
Figura 2.5.- Red Viva 25
Figura 2.6.- Red parcialmente Viva 26
Figura 2.7.- Red no Viva 27
Figura 2.8.- Red Ordinaria y Pura 28
Figura 2.9.- Red Binaria 29
Figura 2.10.- Red no Binaria 29
Figura 2.11.- Red Conforme 30
Figura 2.12.- Red 3-limitada 31
Figura 2.13.- Conflicto estructural 32
Figura 2.14.- Conflicto efectivo 33
Figura 2.15.- Exclusión Mutua 34
Figura 3.1.- Fundamentos de operación del GRP 35
Figura 3.2.- Interfaz Gráfica del Usuario del Gestor de Redes de Petri GRP 40
Figura 3.3.- Área de trabajo del usuario 41
Figura 3.4.- Menú Archivo del GRP 45
Figura 3.5.- Menú Ayuda del GRP 45
Figura 3.6.- Ayuda del GRP 46
Figura 3.7.- Menú Acerca de 46
Figura 3.8.- Ejemplo de informe de red bloqueada. 48
Figura 3.9.- Ejemplo del informe de conflictos. 49
Tabla 1.1. - Características de las herramientas de redes de Petri 12
Tabla 1.2. - Plataformas de las herramientas de redes de Petri 12
7
RESUMEN
El desarrollo de sistemas físicos cuyos estados evolucionan en forma automática basándose en
tablas predefinidas de comportamiento, tales como el sistema de control de un robot en un
proceso industrial, o un sistema que controle el movimiento de los diferentes trenes de un
Transporte Colectivo Metro a fin de evitar accidentes de choque por alcance, es cada vez más
complejo, y se requiere de herramientas de diseño que permitan conocer el comportamiento de un
sistema antes de su realización física.
Para lograr tal conocimiento los diseñadores utilizan el recurso conocido como redes de Petri,
cuyas características más importantes y evolución se puede analizar por medio de un programa de
computadora y sus resultados por medio de una interfaz gráfica.
Este programa enviará, durante la evolución de la red, mensajes precisos acerca de sus
características tales como existencia de conflictos, vivacidad, limitación y conservatividad.
8
ABSTRACT
Developement of phys ical systems whose individual states do evolve automatically, based upon
some predefined schedule tables, such as a robot system control in an industrial process, or a
mass transportation system, (Subway) to avoid a collision, gets more and more complex, the
same way the subsystems that they control do, and it requires designing tools that allow designers
to know the system behavior even before the actual system has been accomplished.
In order to achieve that kind of knowledge, designers use the tool so called Petri Nets, ( after Kart
Adam Petri ) wich main charactheristics and evolution can be analized by means of a computer
system, and its results can be observed using a GUI ( Graphical User Interface).
This program will send, as the net evolution goes through, precise messages about its main
characteristics such as conflicts, liveness, boundedness and conservativeness.
9
CAPITULO 1 DESCRIPCIÓN BREVE DEL TRABAJO DE TESIS
1.1.- INTRODUCCIÓN
A medida que crece la complejidad de los sistemas tanto en su diseño como en el funcionamiento
de las partes que los constituyen y los eventos y subsistemas que a su vez ellos controlan, además
de los altos costos que implica el construir un prototipo a escala del sistema que se desea crear, es
cada vez más necesario contar con una herramienta de modelado, la cual permita caracterizar las
partes del sistema y sus interconexiones, o bien, permita desarrollar un modelo en el cual se
especifiquen las reacciones del sistema frente a eventos o acontecimientos que provienen del
exterior, es decir, que describa cómo funciona el sistema.
Esta herramienta de modelado debe permitir al diseñador anticipar el mayor número de estados
en los que se encuentre el sistema a lo largo de su evolución. Estos estados, en su conjunto,
definirán el comportamiento global del sistema, así como sus características. A efecto de lograr
un conocimiento cabal de las propiedades estructurales y operativas del sistema, la herramienta
de modelado adecuada permitirá al diseñador asegurarse de la validez y confiabilidad de su
prototipo antes de llevarlo a la construcción física.
Una de las herramientas que se puede utilizar en el diseño de sistemas de evoluciones
simultáneas, es la herramienta conocida como las redes de Petri, una herramienta de diseño
poderosa y de fácil comprensión, creada y desarrollada por Karl Adam Petri en 1962, la cual
tiene un espectro de aplicación de muy amplio rango, desde procesos legales hasta procesos de
producción industrial o control de tráfico.
La finalidad del trabajo de tesis que aquí se presenta es proporcionar a los diseñadores de redes
de Petri el programa GRP (Gestor de Redes de Petri), el cual les permitirá, por medio de una
interfaz gráfica fácil de usar, observar de manera clara y precisa las características más
importantes de su red a medida que se desarrolla su evolución, enviando mensajes acerca de la
existencia de conflictos, vivacidad, limitación y conservatividad.
10
Para conocer los diferentes estados de la red, se pueden calcular todos los marcados alcanzables a
partir del marcado inicial, construyendo el árbol de alcanzabilidad de la red.
Esta técnica es ideal cuando se elabora una red que contenga un número grande de componentes,
ya que proporciona el total de las situaciones posibles, a partir de las cuales el programa puede
establecer los criterios de k-limitación, vivacidad, existencia de conflictos, conservatividad, y
otras características.
Sin embargo, los programas en ambientes gráficos tienen el inconveniente de que el área de
trabajo del usuario está limitada al tamaño de una sola pantalla. Cuando mucho se consigue
aumentar este espacio aplicando una función de zoom, lo cual requiere que el tamaño de los
componentes sea más pequeño, y por lo tanto, difícil de manejar. Por tal motivo, el aplicar un
aná lisis de árbol de alcanzabilidad se convierte en la analogía de matar una mosca utilizando una
bazooka, dado que representa una herramienta muy poderosa aplicada a un entorno de
relativamente pocos componentes, considerando que las plantas industriales pue den llegar a tener
cientos o miles de componentes, las cuales requieren para su análisis, que los sistemas sean no
visuales.
Como cuestión adicional, al aumentar el número de componentes, el árbol de alcanzabilidad va
creciendo en forma exponencial, por lo que sucede un aumento súbito del número de marcados
posible, el cual ocasiona retardos indeseables en la ejecución de un programa que se considere de
buena calidad.
En vista de tales circunstancias, se decidió que el programa GRP fuera un programa visual,
interactivo, realizado en base a una programación estructurada en el que el usuario fuera
dirigiendo por él mismo la evolución del sistema creado, de tal forma que exista una
interoperabilidad en el sistema usuario-máquina, y observando al mismo tiempo los diferentes
parámetros, ya sea continuamente, por simple inspección, o por medio de mensajes que el
programa va generando oportunamente.
11
Para conseguir esta forma de trabajo interactiva, el usuario selecciona la transición que desee
activar, y el programa, si es necesario, enviará los mensajes adecuados en el momento mismo en
que se presente el evento, tal como la existencia de conflictos, o el bloqueo de la red.
La mayor dificultad en el desarrollo de este proyecto fue guardar las Redes de Petri, y
recuperarlas, todo ello sin que se afectara el diseño que en ese momento estuviera analizando el
usuario. Sin embargo, tal dificultad fue rápidamente superada en base al apoyo de gran calidad
por parte de los asesores.
12
1.2.- ESTADO DEL ARTE DE LAS HERRAMIENTAS DE REDES DE
PETRI
A1 momento de escribir este trabajo de tesis, el número de herramientas de Gestión de Redes de
Petri es reducido. En la dirección http://www.daimi.au.dk/PetriNets/tools es posible encontrar
una cantidad de herramientas que van desde las sencillas (aquellas que solamente muestran una
red predefinida) hasta otras que tienen un mayor número de funciones.
A fin de contar con un fundamento sólido se descargaron algunos de los paquetes para observar
sus características. A pesar de que no todos los programas se pueden descargar de forma gratuita,
sí se especifica la mayoría de sus funciones, con lo cual fue posible establecer un cuadro
representativo. En el Apéndice A se presenta una lista de estos programas.
Las Tablas 1.1 y 1.2 muestran sus características más relevantes.
Características Total Utilización de Componentes 33 Editor Gráfico 26 Redes con Lugares/Transiciones 22 Simulación Rápida 19 Redes de Petri de Alto Nivel 19 Animación de Marcas 18 Redes de Petri con Tiempo 14 Análisis Simple de Desempeño 11 Formato de Archivo Intercambiable 10 Análisis Estructural 9 Invariancias de Lugar 8 Invariancias de Transición 8 Redes de Petri Estocásticas 6 Tabla 1.1.- Características de las Herramientas de Redes de Petri.
El total de Herramientas analizadas fue 33. El total de características contabilizadas fue 77, de las cuales sólo se presentan 13, dado que la mayoría eran funciones individuales de algunas Herramientas. Como se aprecia en la Tabla 1.2, el 39 % de las herramientas (13) están basadas en Windows, el 33% (11) se basa en Java y el 30% (10) se basa en Linux.
Plataforma Total PC, Windows 13 Java 11 Linux 10
HP-UX 11.22 2
MS DOS 2
Sun, SunOS 5.7 5.8 (32 y 64 bit) 2
PC, Linux 1
Cualquier sistema que soporte C++ 1
Apple, Mac OS X 10.1 1
Digital, UNIX 4.0 1
Java (Python) 1 Tabla 1.2.- Plataformas de las Herramientas de Redes de Petri.
13
1.3.- ESTRUCTURA DE LA TESIS
• En el primer capítulo se da una breve descripción del trabajo de tesis, así como se hace un
análisis del Estado del Arte de las herramientas para el manejo de Redes de Petri.
Asimismo, se presenta la estructura del presente trabajo, y se delinean los objetivos, la
justificación del trabajo y la metodología en la cual evolucionó este Trabajo de Tesis.
• En el capítulo dos se mencionan los aspectos generales de las Redes de Petri,
considerando las características de vivacidad, existencia de conflictos, tanto estructurales
como efectivos, límites, y los diferentes tipos de red.
• En el capítulo tres se exponen las características del Gestor de Redes de Petri de diseño
del Programa, la Interfaz Gráfica de Usuario, el menú de Ayuda, la evolución de la Red,
así como los mensajes que envía el programa.
• En el capítulo cuatro se plantean los resultados obtenidos y su comparación en relación
con las expectativas que se tenían, complementando el trabajo con una descripción de los
trabajos futuros.
• En el capítulo cinco se presentan las conclusiones finales.
• En la sección de apéndices, se presenta una relación de las Herramientas de Redes de
Petri que se distribuyen en forma gratuita a través de la Internet, y el código fuente del
programa objeto de este trabajo de tesis.
14
1.4.- OBJETIVOS
GENERAL
Crear una Herramienta para el diseño de sistemas automáticos basado en las Redes de Petri como
herramienta de modelado, utilizando como plataforma el lenguaje de programación Visual Basic.
En ningún sentido se presenta esta herramienta como una competencia con respecto a las demás
ya existentes. Se presenta como una manifestación de sólo una parte del cúmulo total de
conocimientos adquiridos a lo largo de la maestría y como una opción ante las demás ya
existentes, a fin de que el potencial usuario tome la decisión final, en base a su comodidad y a sus
expectativas.
ESPECÍFICOS
�• Aplicar los conocimientos adquiridos durante mi formación en la Maestría en
Computación.
• Que esta herramienta sea utilizada en los cursos de robótica o de análisis de sistemas en
las carreras que ofrece la Universidad de Colima.
• Que esta herramienta sea una opción para los diseñadores de sistemas de control del área
de contenedores del Puerto Interior de Manzanillo, y demás puntos industriales de la
región.
• Que el Código fuente obtenido durante el desarrollo de este proyecto sirva para como un
complemento para la formación de los estudiantes del área computacional.
15
1.5.- JUSTIFICACIÓN
El rápido avance en la ciencia y la tecnología va proveyendo a los diseñadores de sistemas de
control discreto y de flujo de información, de herramientas cada vez más potentes para el
desarrollo de sus aplicaciones. En virtud de los convenios que la Universidad de Colima ha
suscrito con Microsoft, ha sido posible para quienes laboramos y estudiamos en esta universidad,
trabajar con las aplicaciones de esa empresa, tales como Visual Basic, permitiendo la creación de
un Gestor de Redes de Petri, con lo cual este trabajo de tesis hace una aportación a la producción
de material intelectual de nuestra alma mater, la cual a la vez podrá ser aplicada como un recurso
didáctico, así como un recurso de aplicación profesional.
Por qué Utilizar Visual Basic para el desarrollo de este proyecto.
Para demostrar la potencia del lenguaje de programación en un uso que involucra procesos
gráficos, lo cual viene a complementar los usos que se le dan al lenguaje en los cursos de Bases
de Datos y Manejos de señales de Entrada/Salida que se imparten a lo largo de la maestría, en los
que Visual Basic es de uso común.
Visual Basic es un programa en el cual no es necesario transportar todas las librerías junto con el
programa realizado, sino que dichas librerías ya están contenidas en el sistema operativo
Windows, por lo cual el programa ocupa un espacio de memoria menor que el que se requeriría si
se elaborara en otro lenguaje, tal como en Delphi.
A la fecha se advierte un predominio en la plataforma Windows y se espera que en los próximos
años se consolide este entorno con la aplicación de la tecnología .NET, con lo que se pretende
cubrir la mayor parte de las diferentes plataformas en un solo entorno.
16
1.6.- METODOLOGÍA
La metodología aplicada al desarrollo de esta herramienta consistió en tres fases:
Durante la primera fase, en recabar información referente a las Redes de Petri. Asimismo,
paralelamente, consistió en recabar toda la información posible acerca del tratamiento de datos en
ambiente gráfico, mediante el trazado de curvas y el almacenamiento de datos.
La siguiente fase consistió en elaborar prototipos cada vez más completos del proyecto global,
comprobando en cada uno de los avances la integridad de la información, utilizando el método
evolutivo del desarrollo de software, el cual se expone en la Figura 1.1.
Actividades Concurrentes
Figura 1.1.- Diagrama del modelo del proceso de desarrollo del software del GRP
La tercera fase consistió en la elaboración de la documentación relacionada al programa, con las
correspondientes sugerencias de los asesores.
Descripción
Especificación
Desarrollo
Validación
Versión Inicial
Versiones Intermedias
Versión Final
17
CAPITULO 2 TEORÍA BÁSICA DE LAS REDES DE PETRI.
2.1.- GLOSARIO
Acontecimiento Es el cambio de estado lógico de una condición externa. También se define
como la unión de un conjunto de eventos
Alcanzable Un marcado es alcanzable cuando se llega a él a través de una secuencia disparos que
tienen como origen el marcado inicial
Algoritmo Es una serie de acciones lógicas por medio de las cuales se obtiene cierta información
Análisis Consiste en determinar las características de un sistema por medio de aplicarle un
algoritmo
Árbol de alcanzabilidad Es el conjunto de todos los marcados posibles que puede tener una Red
de Petri, el cual se puede almacenar en el formato que el diseñador considere conveniente, tal
como en una lista, una matriz, un archivo binario, o en una base de datos.
Arco Es una línea dirigida que une lugares con transiciones, pero nunca lugares con lugares o
transiciones con transiciones. Los arcos tienen asociado un peso que corresponde al número de
marcas necesarias para habilitarlo
Autómata Es un sistema que reside un número finito de símbolos, y emite un número finito de
símbolos, los cuales evolucionan con el tiempo, y que se pueden representar mediante una
notación algebraica en forma de funciones de entrada y salida, cuyo origen está determinado por
el estado inicial de las variables del autómata
Binaria Una red es binaria si sus lugares contienen únicamente una o cero marcas.
18
Camino Es una secuencia de arcos tal que el extremo final del último arco coincida con el
extremo inicial del primer arco. El número de arcos del camino es su longitud.
Conflicto Dos o más transiciones están en conflicto cuando proviene en de un lugar común que
no contiene el suficiente número de marcas para dispararlas simultáneamente.
Conflicto efectivo Existe un conflicto efectivo cuando dos transiciones, además de estar
sensibilizadas simultáneamente, pretenden dispararse también simultáneamente, pero en ese
momento existe la condición de que el lugar común a las dos o más transiciones en conflicto no
contiene el suficiente número de marcas.
Conforme Una red es conforme si es binaria y es viva
Conservatividad Una Red de Petri es conservativa si el número total de marcas de la red en todo
momento el marcado permanecerá constante.
Disparar Disparar una transición sensibilizada consiste en eliminar tantas marcas de cada lugar
de entrada, como peso tenga el arco de entrada que une ese lugar con la transición, y agregar a
cada lugar de salida tantas marcas como peso tenga el arco de salida que une la transición con
cada lugar.
Exclusión mutua Se dice que los lugares de una Red de Petri están en exclusión mutua para un
marcado inicial, si no pueden estar marcados simultáneamente durante la evolución de la red.
Grafo Diagrama coherente que utiliza un juego de componentes definidos previamente, y que
sirve para representar flujos de información.
GRP (Gestor de Redes de Petri). Programa realizado por el Ingeniero José Refugio Martínez
Reyes utilizando Visual Basic como lenguaje de programación, que se utiliza para el diseño de
Redes de Petri.
19
Limitación Un lugar p es k- limitado para un marcado inicial si existe un número entero k tal que
ninguno de sus lugares tiene un número de marcas mayor a k. Una Red de Petri marcada es k-
limitada si todos sus lugares son klimatados.
Lugar Es un componente que representa un estado o condición en la evolución de la red. A fin de
que ese estado o condición pueda ser alcanzado, es necesario que ocurra un evento, el cual deberá
tener como condición que exista un estado anterior ya previamente alcanzado Generalmente un
lugar se representa por medio de un círculo. A lo largo de este trabajo de tesis se le asignará la
letra L
Marca Es un componente de una Red de Petri que reside dentro de los lugares y que define la
posibilidad de que un estado sensibilice una transición. Generalmente se representa por medio de
un círculo relleno en el interior del lugar. A lo largo de este trabajo se le asignará la letra M.
Marcado Es el conjunto de marcas que definen un estado de la Red de Petri durante su
evolución.
Marcado inicial Un marcado inicial es el conjunto inicial de marcas asociadas a determinados
lugares, el cual define las características de la red.
Mo Es el marcado inicial, es decir, el conjunto de las marcas iniciales de que consta una Red de
Petri.
Nodo terminal Es un nodo que carece de marcas y de la posibilidad de obtenerlas, a partir del
cual ya no puede realizarse la sensibilización y por tanto el disparo de una transición.
Petri, Adam Inventor de la herramienta conocida como Redes de Petri, que son un conjunto
formal de conocimientos utilizados en la descripción de sistemas que involucran procesos que
evolucionan paralelamente.
20
Red de Petri Es una herramienta que consiste en el uso de cuatro componentes básicos, lugares,
arcos, transiciones y marcas, que permite llevar a cabo el diseño de sistemas, tanto de flujo de
información, como de sistemas físicos, y que, en base al análisis matricial de las propiedades de
la red, es posible obtener información anticipada de la evolución y comportamiento del sistema.
Sensibilización Una transición está sensibilizada si todos los lugares de entrada a esa transición
contienen cuando menos una marca.
Tipos de red
Red ordinaria Es aquella en la cual todos los arcos tienen un peso igual a 1
Red pura Es aquella red en la cual ninguna de sus transiciones tiene un lugar que sea
simultáneamente de entrada y de salida.
Red binaria Es el tipo de red en el cual los lugares solamente pueden contener una
marca, o bien no contener ninguna marca.
Red no binaria Es aquella red en la cual uno o más lugares pueden contener dos o más
marcas.
Red conforme Es la red que es al mismo tiempo binaria y viva.
Red k-limitada Es aquella red en la cual ninguno de sus lugares tiene más de k marcas.
Red conservativa Es aquella red en la cual el número total de marcas permanece
constante durante todos los marcados alcanzables posibles.
Transición Una transición es un componente de una Red de Petri que representa un evento, el
cual puede ocurrir solamente cuando la transición esté sensibilizada.
Vivacidad Una red es viva si para todos los marcados que se pueda obtener a partir del marcado
inicial, existe cuando menos una transición que se pueda disparar, es decir, que no existan nodos
terminales en la red.
21
2.2.- PROPIEDADES GENERALES DE LAS REDES DE PETRI.
2.2.1 Definición
Una Red de Petri es un grafo orientado en el que intervienen cuatro tipos de componentes: los
lugares (representados por circunferencias), que pueden contener un número nulo o positivo de
marcas, y las transiciones (representadas por segmentos rectilíneos), unidos alternativamente
por arcos.
Un arco une un lugar a una transición, o viceversa, pero no dos transiciones o lugares.
La Figura 2.1 muestra las representaciones de los diferentes elementos, y la Figura 2.2 muestra
las uniones permitidas y no permitidas en la elaboración de una Red de Petri.
Lugar transición arco marca
Figura 2.1.- Representaciones de los diferentes elementos de una Red de Petri
VÁLIDA VÁLIDA NO VÁLIDA NO VÁLIDA
Figura 2.2.- Conexiones válidas y no válidas entre lugares y transiciones
Un lugar puede contener un número positivo de marcas, o bien no poseer ninguna marca. Una
marca se representa por un punto en el interior del círculo correspondiente al lugar que la
contiene. El conjunto de marcas asociadas en un instante dado a cada uno de los lugares
constituye un marcado de la Red de Petri.
22
2.2.2 Significado de las componentes de una Red de Petri
En general se pueden establecer los siguientes principios básicos:
¡ A cada lugar se le asocia una acción o salida del sistema que se desea modelar.
¡ A cada transición se le asocian un evento.
¡ Un lugar L es entrada de una transición T si existe un arco orientado desde L hacia T.
¡ Un lugar L es salida de una transición T si existe un arco orientado desde T hacia L.
¡ Una marca M puede representar una condición o estado dentro del sistema, o bien puede
representar valores físicos.
Como condición, una marca significa que un subsistema del proyecto ha concluido su
tarea y está listo para, en conjunto con otro subsistema, un evento futuro pueda ser
llevado a cabo.
Como valor físico, una marca puede representar un elemento de una colección de objetos
cuya cantidad el sistema se encarga de procesar.
¡ A cada arco se le asocia un valor conocido como peso del arco. El peso del arco es una
propiedad que involucra el número de marcas que la transición quita a un lugar de
entrada o que agrega a un lugar de salida, cuando la transición es disparada.
2.2.3.- Sensibilización de una transición.
Una transición está sensibilizada si todos los lugares de entrada están marcados. La
sensibilización implica que la transición en cuestión tiene la capacidad para ser disparada. Se
puede comparar a una función AND aplicada a los lugares de entrada.
Supongamos que una entrada T1 tiene como entradas los lugares L0 y L1, entonces se puede
definir la función de salida T1 como
T1 sal = VL0 AND VL1 (2.1)
donde VL0 representaría un valor lógico que sería Verdadero si existiera cuando menos una
marca en L0 y Falso si L0 tuviera cero marcas.
VLl representaría un valor lógico que sería Verdadero si existiera cuando menos una marca en L1
y Falso si T1 tuviera cero marcas.
23
La Figura 2.3 muestra el concepto descrito.
Figura 2.3.- Equivalente AND de la sensibilización de una Transición
2.2.4.- Evolución del marcado.
Una transición sensibilizada es disparada si el evento que le está asociado se verifica. El disparo
de una transición consistente en quitar una marca a cada uno de los lugares de entrada y en añadir
una marca a cada uno de los lugares de salida. Para que pueda llevarse a cabo esta operación es
necesario que las transiciones de salida no estén en conflicto efectivo.
La Figura 2.4 muestra la evolución del marcado para una Red de Petri.
Figura 2.4 Evolución del marcado
Se observa que a partir del marcado inicial que consiste en una marca en L0, la transición T0 se
encuentra sensibilizada. Al disparar esa transición, se elimina la única marca en L0 y se agrega
una marca en L1 , lo cual provoca que ahora la transición T2 quede sensibilizada.
L0
L1
VL0
VL1
T0
L1
L0T0 sal= (VL0)(VL1)
L0 •T0 L1
T1 L2 T2
L0 T0 L1•
T1 L2 T2
24
2.2.5.- Características de una Red de Petri (Como se definen en [1])
2.2.5.1.- Aspectos generales
1. Son una herramienta de modelado clara, fácil de utilizar y no ambigua.
2. Facilitan la representación de evoluciones simultáneas. Tienen facilidad de
modificaciones locales, y permiten descripciones por refinamientos sucesivos.
3. Permiten una primera aproximación al problema de la validación del correcto
funcionamiento de un sistema.
4. Hacen posible una fácil traducción de las propiedades de buen funcionamiento del sistema
en propiedades específicas de las redes de Petri.
5. Constituyen una herramienta de modelado independiente de cualquier tecnología.
6. El funcionamiento de una red que carece de una interpretación de un sistema específico se
define como autónomo.
7. Una red temporizada (red cuya evolución es función del tiempo) y/ o interpretada es una
red no autónoma.
8. Dentro de las limitaciones de las redes de Petri existe el hecho de que modelan sistemas
basados únicamente en estados finales y eventos que disparan la ocurrencia de tales
eventos, pero no analizan los instantes intermedios, los cuales están presentes en todos los
fenómenos físicos. Por ejemplo, los cambios en la velocidad de las distintas etapas de un
proceso debido a las variables del entorno. Por esa razón, es conveniente desarrollar una
herramienta que contemple tales comportamientos.
9. Una Red de Petri se puede simular mediante un lenguaje de programación, por medio del
cual conocer sus características antes de llevarlo a la construcción física.
10. Existe una variedad de clases y subclases de las Redes de Petri (autónomas, no
autónomas, simples, ordinarias, binarias, no binarias, vivas, parcialmente vivas, no vivas,
conformes, generalizadas, puras, coloreadas, con arcos inhibidores, de libre elección, con
capacidad limitada, temporizadas, etc. Todas estas características conforman la
construcción de la red que se desee implementar, y cada una de ellas le confieren a la red
una personalidad y potencia definida.
25
2.2.5.2: Vivacidad
Implica la posibilidad o imposibilidad de evolución de la red durante el curso de su evolución. Si
es imposible que ocurra el disparo de una transición, se dice que el sistema está bloqueado. Si un
sistema fue diseñado de tal manera que para todos los marcados posibles no exista el evento de
bloqueo, ya sea total o parcial, se puede entender que la red es viva y que por lo tanto el sistema
no va a tener un problema de concepción en su desempeño.
La vivacidad de un sistema se puede analizar desde el punto de vista de una sola transición
(transición viva o no viva), o desde el punto de vista de toda la red (red viva o red no viva)
2.2.5.3: Transición Viva
Una transición T es viva para un marcado inicial dado Mo si existe una secuencia disparos a
partir de cualquier marcado Mo, sucesor de Mo, que comprenda a T.
2.2.5.4: Red Viva
Una red es viva si todas sus transiciones son vivas para un marcado inicial Mo. La Figura 2.5
muestra una Red de Petri en la cual todas sus transiciones pueden llegar a ser vivas.
Figura 2.5: Red Viva
•
•
L0 T0 L1
T1 L2 T2
L3 T3 L4
T4 L5 T5
L6 T6 L7
26
En la Figura 2.5 se puede observar que, de acuerdo al marcado inicial dado, la transición T3 está
sensibilizada por la marca en el lugar L2. Si T3 se dispara, la marca en L2 se elimina, y L5 adquiere
una marca, con lo cual T6 queda sensibilizada.
A1 activar T6, la marca en L5 se elimina y los lugares L6 y L7 adquieren una marca, con lo cual T4
y T5 quedan sensibilizadas. Al activarse T4, la marca en L6 desaparece y aparece una marca en L3,
con o cual la transición T1 queda sensibilizada. Al activarse T1, la marca en L3 desaparece y
aparece una marca en L0.
Hasta este momento, la transición T0 no está sensibilizada, pues para estarlo se necesita que exista
una marca en L1 , lo cual solamente se consigue cuando se sigue la secuencia de disparos de T5 y
T2, en esa secuencia.
Cuando L1 adquiere una marca, en ese momento T0 queda sensibilizada y puede comenzar un
nuevo ciclo, Al existir durante toda la evolución cuando menos una transición que pueda ser
disparada, se concluye que la Red mostrada es viva.
2.2.5.5.- Red Parcialmente Viva
Una Red de Petri es parcialmente viva si en su evolución, a pesar de que exista alguna transición
permanentemente bloqueada, la red pueda seguir evolucionando. La Figura 2.6 corresponde a una
red parcialmente viva.
Figura 2.6.- Red parcialmente Viva
• •L0 T0 L1
T1 L2 T2
L3 T3 L4
27
Figura 2.6.- Se observa que para que el sistema evolucione, se debe disparar T2 , sin embargo, ella
sólo puede dispararse una vez, posteriormente queda bloqueada. Por lo tanto, se dice que la red es
parcialmente viva, ya que no hay ninguna posibilidad de que T2 se vuelva a disparar.
2.2.5.6: Red No Viva
Una red no viva es aquella que se bloquea completamente en algún momento de su evolución. La
Figura 2.7 corresponde a una red no viva.
Figura 2.7.- Red no Viva
En la Figura 2.7 se puede observar que al disparar la transición T3, se elimina la marca que se
encuentra en L2 , y se agrega una marca a L5.
También se observa que para que la transición T6 se sensibilice, los lugares L4 y L5 deben
contener cuando menos una marca cada uno. El lugar L4 no contiene ninguna marca.
En esas circunstancias, la transición T6 no podrá sensibilizarse y por tanto, la red quedará
bloqueada indefinidamente.
L0 T0 L1
T1 L2 T2
L3 T3 L4
T4 L5 T5
L6 T6 L7
•
28
2.2.5.7.- Red Ordinaria
Una red es ordinaria si todos sus arcos tienen un peso igual a 1. Para algunos sistemas, las Redes
de Petri ordinarias son una forma limitada para representarlos. En ese caso, conviene trabajar con
redes cuyos arcos tengan pesos mayores a 1, tal como para las redes que representan sistemas de
flujos de información que transportan paquetes de datos (por ejemplo, los puertos que manejan 8,
16 o 32 bits), o los contenedores de un puerto marítimo.
2.2.5.8: Red Pura
Una red es pura si ninguna de sus transiciones tiene un lugar que sea simultáneamente de entrada
y salida. La Figura 2.8 muestra un ejemplo de red ordinaria y pura.
Figura 2.8.- Red Ordinaria y Pura 2.2.5.9.-Red Binaria
Para un marcado inicial dado, una Red de Petri es binaria si cualquier marcado alcanzable es tal
que ningún lugar posee más de una marca. En una Red de Petri binaria todo lugar estará marcado
con una marca o no estará marcado. Las redes binarias tienen una aplicación fundamental, ya que
gran parte de los sistemas que se presentan en la industria están basados en decisiones lógicas (SI,
NO; ABIERTO, CERRADO; ENCENDIDO, APAGADO), etc.
•
29
Actualmente se está trabajando en los sistemas de control de lógica borrosa (lógica fuzzi), como
una alternativa de representación de los fenómenos físicos. Sin embargo, aún los sistemas
basados en lógica borrosa tienen como esencia la manipulación de señales discretas, las cuales
son un complemento en la teoría de las redes de Petri. La Red de Petri de la Figura 2.9 es binaria.
Se observa que en todos los casos, el máximo número de marcas que puede tener cada lugar es
igual a 1.
Figura 2.9.- Red Binaria
2.2.5.10.-Red No Binaria
Una red no binaria es aquella red en la cual el número de marcas de alguno de sus lugares es
diferente de 0 o 1. La Red de Petri de las Figura 2.10 es no binaria.
Se observa que el número de marcas de la red crece continuamente, por lo que no tiene límite
finito, por lo que se puede sospechar que no es un modelo que representa un sistema válido. To
Figura 2.10 Red no Binaria
•T2 T3
L0 T0 L1 T1 L2
T4 L5 T5
L5 L6
T0
L0 L1 L2
T2
T1 T3
L3
•
30
2.2.5.11: Red conforme
A un marcado inicial dado, se dice que una Red de Petri es conforme si es binaria y viva. La Red
de Petri de la Figura 2.11 es conforme.
Figura 2.11 Red Conforme
En la Figura 2.11 se observa que, a partir del marcado inicial dado, al disparar la transición T1 , se
elimina la marca en L0, y se agrega una marca en L3.
En esas condiciones, la única posibilidad de evolución consiste en disparar T3, y al hacerlo, se
elimina la marca en L1 y se agrega una marca en L5, dando como resultado que la transición T4
queda sensibilizada. A1 disparar la transición T4, se eliminan las marcas en L3 y L5, y se agrega
una marca en L2 , con lo cual el ciclo se repite.
En todo momento el número máximo de marcas que tiene los lugares es de 1, y también en todo
momento la red tiene posibilidades de evolucionar, sin que ninguna de las transiciones esté
bloqueada. Por lo anterior, se considera que esta red es binaria y viva, y por lo tanto, conforme.
2.2.6.- Limitación
La observancia de esta propiedad durante el diseño de una red es importante, ya que determina el
número máximo de estados que puede tener el sistema a diseñar.
Si el número de marcas excede la capacidad de almacenamiento del sistema, esto puede traer
como consecuencia desde una operación no deseada, hasta el bloqueo total del sistema. Se puede
establecer la definición de limitación para un solo lugar, o para toda la red.
T0
L0 L1
T1 L2 T3
L3 L5
T4
• •
31
2.2.6.1.- Límite de un lugar
Un lugar es k-limitado para un cierto marcado inicial, si durante todos los marcados posibles de
que conste la evolución de la red, el lugar en cuestión no posee más de k marcas.
2.2.6.2: Limite de una red
Se dice que una Red de Petri marcada es k-limitada para un marcado inicial dado, si todos sus
lugares son k-limitados para ese marcado inicial. Si una Red de Petri es 1-limitada para Mo, su
marcado es binario (un lugar está o no marcado) y se dirá que la Red de Petri es binaria para Mo.
La Figura 2.12 muestra una red 3-limitada
Figura 2.12 Red 3-limitada
En la Figura 2.12 se observa que la marca existente en L0 determina que la transición T1 quede
sensibilizada. Al disparar T1 se elimina la marca en L0 y se crea una marca en L2 y una marca en
L3, con lo cual el número total de marcas de la red es de 2. En virtud de que T0 y T2 necesitan una
marca en L1 y una marca en L4 respectivamente para poder ser sensibilizadas, ninguna de ellas, ni
T0 ni T2 podrán ser disparadas. La única transición sensible es T3.
Al ser disparada esta transición, se elimina la marca en L3 y se crea una marca en L4. El número
total de marcas de la red es ahora igual a 3. La única transición sensibilizada es T2. Cuando esta
transición se dispara, se elimina una de las marcas de L2, con lo cual solamente se queda con 1;
mientras tanto, L4 pierde la marca que tenía y se crea una marca en L1. El número total de marcas
de la red es ahora igual a 2. La única transición sensible es T0.
•L0
T0 T1
L1 L2 L3
T2 T3L4
32
Al ser disparada esta transición T0 , se elimina la marca tanto en L2 como en L1, y se crea una
marca en L0, con lo cual es posible comenzar un nuevo ciclo. La conclusión que se puede
establecer es que el límite de marcas de la red es 3. La red mostrada, por lo tanto, se define como
3-limitada
2.2.7.- Conflictividad.
El análisis de esta propiedad le permite al diseñador conocer algún comportamiento no deseado
en una red. Se distinguen dos tipos de conflictos: estructural y efectivo.
2.2.7.1: Conflicto estructural
Se dice que en una Red de Petri existe conflicto estructural cuando un lugar posee más de una
transición de salida. El conflicto estructural es fácilmente observable durante el proceso de
diseño, ya que invariablemente, cuando el usuario coloca dos o más transiciones como salidas
de mismo lugar, este conflicto se encuentra presente.
Si existe algún conflicto estructural, es posible que durante la evolución de la red se presente un
conflicto efectivo (se requiere de un análisis a mayor profundidad para descubrirlo y evitarlo), y
el modelo no represente claramente el sistema que se desea construir. La Figura 2.13 exhibe un
conflicto estructural, puesto que T1 y T3 son transiciones de saluda de un mismo lugar, L2.
(Cuando todavía se la red se encuentra en su etapa de diseño). La existencia de un conflicto
estructural no es condición suficiente para que haya conflicto efectivo. Desde la etapa de diseño
se puede observar que existe un conflicto estructural en L1
Figura 2.13. - Conflicto estructural
L0 T2
T0 L2
L1 T3
T1 L3
33
2.2.7.2.- Conflicto efectivo
Un conflicto estructural se hace efectivo si los eventos asociados a dos o más transiciones
simultáneamente sensibilizadas que descienden de un mismo lugar se verifican simultáneamente,
y ese lugar no dispone de un número de marcas suficientes para dispararlas simultáneamente. La
Figura 2.14 muestra una Red de Petri que contiene un conflicto efectivo potencial, el cual se
verificaría si T2 y T5, se activaran simultáneamente.
Figura 2.14 Conflicto efectivo
La Red de Petri de la Figura 2.14 presenta un conflicto efectivo potencial pues las transiciones T2
y T5 son transiciones de salida del lugar L3, el cual contiene solamente una marca.
No todos los conflictos estructurales dan lugar a conflictos efectivos. Inclusive, es posible que se
necesite que una red contenga conflictos estructurales para representar adecuadamente el modelo
que se desea implementar.
Para que una red pueda considerarse como un modelo que proporcione una descripción correcta
del sistema que se desea construir, se debe cumplir que la red no posea conflictos efectivos. El
programa GRP informa al usuario cuando está presente un conflicto en la red.
T0
T1 L0 L1 L2 T2
T3 L3 T4
T5 L4 T6
•
•
34
El conflicto efect ivo se resuelve normalmente, estableciendo una exclusión mutua entre los
eventos asociados a las transiciones, o bien, estableciendo una prioridad más alta de disparo a una
de las transiciones.
2.2.8.- Exclusión mutua
Si en un sistema dos estados (representados por lugares) nunca pueden ocurrir simultáneamente
para un marcado inicial determinado Mo en todos los marcados alcanzables a partir de Mo, se
dice que los lugares están en exclusión mutua para Mo.
La Red de Petri de la Figura 2.15 no presenta conflicto efectivo para el marcado inicial indicada,
puesto que L3 y L4 no llegan a estar marcados simultáneamente.
Figura 2.15 Exclusión Mutua
A pesar de que en el lugar Ll se presenta un conflicto, éste se evita considerando que una de las
transiciones de salida de este lugar, ya sea T1 o T2, tiene prioridad de disparo, sobre la otra
transición.
• ••L0 L1 L2
T0 T1 T2 T3
L3 L4
L5 T4 T5 L6
35
CAPITULO 3 CARACTERÍSTICAS DEL GESTOR DE REDES DE
PETRI GRP.
3.1.-Diseño del Programa.
El Gestor de Redes de Petri se basa en la plataforma Windows, con Visual Basic como lenguaje
de programación.
Para estructurar adecuadamente el programa, fue necesario planear las acciones que tomaría el
sistema de tal forma que presentase en la interfaz del usuario la evolución real de una red.
El diagrama de flujo del Gestor es extremadamente complejo. Para representarlo se requiere de
un número muy grande de nodos. La Figura 3.1 que muestra la forma de operación.
Botón abajo Mover ratón Botón arriba
Selecc iona función Calcula distancias Dibuja componentes
Dibuja componente cursor-componentes
Figura 3.1 Fundamentos de operación del GRP
En términos generales, el sistema reacciona a los eventos Botón Abajo, Botón Arriba, Mover y
una combinación de esas funciones con los estados en que se encuentran ciertas variables, tales
como los colores de las etiquetas de subíndices de los componentes, o los estados de vacío o de
ocupación de las listas desplegables (componentes ComboBox ).
A fin de que el gestor dispusiera del mayor espacio posible en cuanto a la localización de los
componentes, se dejó la libertad para que el programa ubicara dichos componentes en posiciones
no cuantizadas.
36
3.1.1.- Inicio de la aplicación
A1 iniciar la aplicación, todos los bancos de memoria (para los cuales se utilizan listas
desplegables) se inicializan a fin de que no exista cantidad alguna que pudiera ocasionar algún
error en el trazado de la Red o en los cálculos. Por esa razón, las etiquetas que indican los
subíndices de los componentes, así como las que contienen las cantidades totales de cada
componente, de la misma manera no indican cantidad alguna, dado que sus bancos de memoria se
encuentran inicializados.
En la interfaz del usuario, en el menú de opciones, los botones correspondientes a arco,
transición, marca, borrar, borrar marca, pura, no pura, mover y evolución aparecen
deshabilitados.
Asimismo, en la interfaz aparece un mensaje en movimiento por medio del cual se le instruye al
usuario a que seleccione uno de los dos tipos de red de los que dispone el sistema para su
ejecución: Redes Puras y Redes No Puras.
3.1.2.- Selección del tipo de red
El programa cuenta con dos opciones para el tipo de red a diseñar. En la primera de ellas el
sistema únicamente permitirá la evolución de la red cuando no exista lugar alguno que solamente
tenga entradas. Tampoco permitirá que lugar alguno tenga solamente salidas, y lo mismo para las
transiciones. No permitirá observar la evolución de una red que tenga transición alguna en la cual
solamente exista entradas, o solamente existan salidas.
3.1.3.- Colocación de lugares, transiciones y arcos.
Una vez que se seleccionó el tipo de red a trabajar, el sistema cambia el foco hacia el botón lugar,
esto permite al usuario comenzar a dibujar de una forma ordenada. Al mismo tiempo, se habilitan
los botones de transición, arco y borrar.
Si el botón Lugar está activado, al presionar el botón izquierdo del ratón, el valor de la posición
actual de las coordenadas X, Y se almacena en una lista desplegable.
37
Si el botón Transición está activado, al presionar el botón izquierdo del ratón, el valor de la
posición actual de las coordenadas X, Y se almacena en otra lista desplegable.
Dado que la información de la posición del cursor se monitorea continuamente todo el trabajo del
programa, el sistema conserva actualizados los datos de distancia del cursor hacia los diferentes
componentes que se van creando.
Cuando el sistema detecta que el cursor del ratón se encuentra dentro de una distancia
determinada de antemano de un lugar, de una transición, o de un arco (para este último caso, el
programa utiliza un algoritmo basado en [5], el color de la etiqueta que proporciona el subíndice
de dicho componente cambia a rojo. Si el cursor se aleja de esa distancia, el color de la etiqueta
cambia nuevamente a verde. Esa propiedad de color se utiliza adicionalmente para evitar que un
componente se coloque encima de otro.
Si el botón Arco está activado, A1 hacer presionar el botón izquierdo del ratón el programa
verifica si esa posición se encuentra a menos de 10 píxeles desde el centro de un lugar o de una
transición, o si se encuentra dentro del marco definido para el trabajo del usuario, como se define
en el capítulo 2.2.1.
Si se cumple alguna de esas tres condiciones, el programa almacena la posición actual del cursor.
Si el cursor está fuera de un lugar o de una transición, pero dentro del marco, el programa
deshabilita el botón Arco. Si el ratón se arrastra, el programa dibuja una flecha que va desde la
posición inicial del arco previamente almacenada. Cuando el usuario suelta el botón izquierdo del
ratón, el programa verifica si se encuentra dentro de una distancia de 10 píxeles desde el centro
de un lugar o de una transición.
Si el punto inicial del arco es un lugar, entonces el programa verifica si el punto de llegada es una
transición. En ese caso, se dibuja la flecha y se almacena en tres listas desplegables los lugares
correspondientes a las coordenadas iniciales y finales de la flecha. Si es un lugar, entonces se
borra la flecha.
3.1.4.- Verificación de Red Pura
Si el usuario seleccionó trabajar en modo de Red Pura, el sistema verifica en todo momento que
la red que va siendo diseñada por el usuario cumpla con la condición de que no exista
38
lugar alguno con solamente entradas o con solamente salidas. En caso de que exista un lugar o
una transición con esas características, se presenta mediante dos etiquetas las cuales proporcionan
información de los índices de los componentes a corregir.
Solamente hasta cuando se cumple la condición mencionada, las etiquetas cambian su color de
rojo a azul, y a la vez, se habilita el botón marca. Si después de que las etiquetas cambiaron a
azul, el usuario coloca más lugares, transiciones o arcos, y la red deja de ser pura, entonces las
etiquetas vuelven a mostrar los componentes que tienen sólo arcos de entrada o sólo arcos de
salida. Si el usuario seleccionó la opción No Pura, las etiquetas no se hacen visibles y en todo
momento los botones de marca, borrar marca y evolución están habilitadas.
3.1.5.- Colocación de marcas
Una vez que la red ha sido reconocida por el programa como una red pura, el usuario puede elegir
entre seguir colocando lugares, marcas o transiciones, o comenzar a definir el marcado inicial de
la red. El programa no pone un límite para el número de marcas que pueda tener cada lugar. El
límite está determinado por la memoria del equipo de cómputo utilizado.
3.1.6: Borrar un componente
Cuando el usuario selecciona esta función y mueve el ratón, el programa monitorea la distancia
del cursor hacia los componentes. Cuando la distancia del cursor a alguno de los componentes es
menor que la predeterminada, la etiqueta correspondiente a su subíndice cambia su color de verde
a rojo. El programa busca en los componentes de listas desplegables de los Arcos, Lugares y
Transiciones para determinar a qué componente pertenece esa distancia, y muestra el componente
en la etiqueta subíndice.
Al reconocer el subíndice del componente, el programa borra gráficamente el componente
volviendo a dibujarlo, pero ahora de color blanco (tal como el fondo de la Interfaz Gráfica del
Usuario). A1 hacer esto, el programa no genera otro objeto gráfico, ya que todos los
componentes están confinados a los datos de los componentes de listas desplegables.
Asimismo, elimina de los componentes de listas de splegables correspondientes las
coordenadas que definen la existencia del componente a eliminar: para el caso de los lugares y
39
de las transiciones, borra las coordenadas del centro; para el caso de los arcos, borra las
coordenadas correspondientes a los puntos inicial, final y medio del arco que se desee eliminar.
Si la red deja de ser pura, el programa pone las etiquetas correspondientes en color rojo y
deshabilita el botón Evolución.
3.1.7.- Borrar una marca
A1 activar este botón, y acercar el ratón a la marca que se desea borrar, el programa identifica las
coordenadas correspondientes al centro de la marca que señala la etiqueta de subíndice de las
marcas. Al presionar el botón izquierdo del ratón, estando el cursor sobre el lugar al cual
pertenece la marca que se desea borrar, el programa borra de los componentes de listas
desplegables correspondientes a las coordenadas X y Y de los centros de las marcas y elimina un
solo par X, Y de la coordenada correspondiente a la marca. Si aún existen otras marcas con las
mismas coordenadas, el programa mantiene dibujada un círculo negro más pequeño que el
correspondiente al círculo del lugar al que pertenece. Si al borrar la marca ninguna transición se
puede disparar, el programa envía un mensaje de Red Bloqueada.
3.1.8.- Mover un componente
Esta función sirve para trasladar un componente a otra posición, pero conservando la unión con
los demás componentes que conforman la red.
Se lleva a cabo presionando el botón izquierdo del ratón cuando el cursor esté sobre el
componente que se desee trasladar. Al estar el Botón del ratón presionado, el programa realiza `
la siguiente secuencia: identifica las coordenadas del centro del componente, identifica los arcos
de entrada antiguos, los borra gráficamente y elimina de la base de datos, identifica los arcos de
salida antiguas, los borra gráficamente y elimina de la base de datos, y borra el componente y sus
coordenadas. Cuando el usuario presiona el botón izquierdo del ratón estando el cursor en el
lugar en que desea colocar el componente, el programa dibuja el componente en su nuevo lugar,
los arcos de entrada y los arcos de salida.
40
3.2.- Interfaz Gráfica del Usuario
La interfaz gráfica del usuario es el espacio en el cual el usuario realizará sus diseños y consiste
en una pantalla en la cual están integradas en un mismo espacio todas las herramientas que se
necesitan para llevar a cabo el trabajo. Consiste en un panel superior que contiene los botones de
selección y los datos de información que el usuario necesita conocer, tales como número total de
arcos, lugares, transiciones y marcas y los subíndices de cada uno de ellos. La Figura 3.2 muestra
la interfaz gráfica del usuario en el momento del inicio de la aplicación.
41
Figura 3.2 Interfaz Gráfica del Usuario del Gestor de Redes de Petri GRP
3.2ATamaño del área de trabajo
El usuario dispone de una interfaz graduada en píxeles que para protección del sistema y para
evitar ambigüedades en el diseño de la red, solamente permite colocar los componentes en un
rectángulo cuyos límites son:
Esquina superior izquierda, el punto (20, 90)
Esquina superior derecha, el punto (790, 90)
Esquina inferior izquierda, el punto (20, 580)
Esquina inferior derecha, el punto (790, 580)
La Figura 3.3 muestra gráficamente los límites
(20, 90) (790, 90)
(20, 580) (790, 580)
Figura 3.3.- Área de trabajo del usuario
Cuando el usuario pretende colocar un lugar o una transición fuera de estos límites, el programa
permanece inactivo.
La sección del menú tiene un ancho de 78 píxeles.
De lo anterior, se puede concluir que el tamaño de la interfaz gráfica del usuario que el programa
utiliza, corresponde aproximadamente a un 90 % del espacio total de la pantalla.
42
3.2.2.- Componentes de la Interfaz Gráfica del Usuario del GRP
3.2.2.1.- Botón Arco
Sirve para trazar un arco sólo desde un lugar a una transición o desde una transición a un lugar
(algoritmo basado en [3]. Para trazar un arco, el programa utiliza la función presionar el botón
izquierdo del ratón, arrastrar y soltar. Si el usuario va a colocar un arco entre un lugar y una
transición, el programa solamente permitirá dibujar el arco cuando el ratón se suelte al estar
dentro de una distancia de 10 píxeles del centro del componente al cual se quiera conectar. De lo
contrario, se borrará el arco y no se actualizarán los componentes de listas desplegables
relacionados a los arcos. Si el usuario presiona el botón izquierdo del ratón en una región fuera de
los 10 píxeles de un componente, no se dibujará arco alguno y se deshabilitará el botón Arco.
Para colocar un nuevo arco, el usuario habilitará dicho botón.
3.2.2.2.- Botón Lugar
Este botón le permite al usuario dibujar un lugar en la interfaz gráfica. Es el único botón que se
activa inmediatamente después de que el usuario selecciona el tipo de red.
Si ya se encuentra dibujado un lugar en una cierta posición (X, Y) dentro de la interfaz, el
programa bloqueará cualquier intento de colocar otro lugar o una transición dentro de una
distancia de 25 píxeles desde el punto (X, Y). Asimismo, si el usuario pretende colocar un lugar
dentro de una distancia de 10 píxeles de un arco ya dibujado, el programa boqueará tal intento, y
no se dibujará lugar alguno. Esta propiedad le permitirá al usuario contar con una red claramente
definida en los distanciamientos de todos los componentes. Al tiempo en que el usuario dibuja el
primero de los lugares, los botones de transición, arco y borrar se habilitan.
3.2.2.3.- Botón transición
Permite dibujar una transición en la interfaz gráfica. Se activa justo después de que el usuario
coloca el primero de los lugares. Si ya se encuentra dibujada una transición en una posición
43
(X, Y) dentro de la interfaz, el programa bloqueará cualquier intento de colocar otro lugar o
transición dentro de una distancia de 25 píxeles desde el punto (X, Y). Si el usuario pretende
colocar una transición dentro de una distancia de 10 píxeles de un arco ya dibujado, el programa
boqueará tal intento. El trazado de una transición se lleva a cabo utilizando una función
Rectangle que utiliza como datos:
1. El centro del rectángulo (el punto de intersección de las diagonales).
2. La anchura del rectángulo (definido por un mismo valor, el cual sirve para colocar los
segmentos izquierdo y derecho del rectángulo, realizando las funciones X-dx y X+dx
3. La altura del rectángulo (definido por un mismo valor, el cual sirve para colocar los
segmentos superior e inferior del rectángulo realizando las funciones Y-dy y Y+dy,
3.2.2.4.- Botón marca
Este botón es utilizado para colocar marcas en el interior de los lugares previamente dibujados.
Se activa cuando el usuario está trabajando en la función Red Pura, después de que las etiquetas
Lugar y Transición estén en color azul.
Si el usuario está trabajando en la función Red No Pura, esta función estará habilitada en todo
momento. Sólo se colocan marcas en el interior de los lugares y cada marca tiene para su centro,
las coordenadas exactas del lugar en que se está colocando. Si un lugar posee más de una marca,
en la interfaz gráfica aparece solamente una marca. Si el usuario pretende colocar una marca
fuera de un lugar, el programa permanece inactivo.
3.2.2.5.- Botón borrar marca
Es utilizado para borrar las marcas correspondientes a los lugares previamente dibujados. Se
activa, así como el botón Marca, cuando el usuario está trabajando en la función Red Pura,
después de que las etiquetas Lugar y Transición estén en color azul.
Si el usuario trabaja en la función Red No Pura, esta función permanecerá habilitada.
3.2.2.6.- Etiquetas de posición del cursor
Estas etiquetas proporcionan en todo momento la posición del cursor.
44
3.2.2.7.- Botón Red Pura
Permite al usuario seleccionar un tipo de red en el cual ningún lugar tiene sólo entradas o sólo
salidas, y ninguna transición tiene sólo entradas o sólo salidas. Es la opción ideal cuando el
usuario desea realizar el diseño profesional de redes.
3.2.2.8.- Botón Red No Pura
La elección de Red No Pura es ideal cuando se desea observar y comprender de una forma clara y
sencilla, los principios básicos de la evolución de una parte de una Red, tales como la regla de la
evolución de marcado, la sensibilización de una transición
3.2.2.9.- Botón Refresh (Actualizar)
Debido a la diferencia en los Sistemas Operativos, es posible que en algún momento de la
ejecución del programa, aparezcan los trazos de forma poco clara. Por medio de esta etiqueta el
usuario puede forzar a la computadora a presentar trazos perfectamente definidos.
3.2.2.10.- Botón Mover
Permite desplazar lugares y transiciones sólo en las redes puras. El usuario tiene que presionar el
botón izquierdo del ratón sobre el componente que desee trasladar, y después presionar
nuevamente el botón izquierdo del ratón en la posición en que desee colocar el componente.
3.2.2.11.- Etiquetas de coordenadas de los Centros de los Componentes.
Le permiten al usuario observar las coordenadas de los centros de los componentes.
3.2.2.12.- Etiquetas de Número total de marcas.
Proporciona la información actualizada del número total de marcas en la red.
45
3.3 Menús del GRP
3.3.1 Menú Archivo.
El Menú Archivo tiene cuatro funciones: Nuevo, Abrir, Guardar y Salir. La Figura 3.4 muestra
desplegado el Menú Archivo.
Figura 3.4: Menú Archivo del GRP
Cuando el usuario presiona las opciones Nuevo Abrir y Salir, el programa verifica si el usuario
desea guardar la Red actual de trabajo.
3.3.2 Menú de Ayuda.
El Menú de Ayuda se muestra desplegado en la Figura 3.5. En ella se observa la similitud con los
menús de ayuda de las aplicaciones de Microsoft basadas en Windows, tal como Office.
Figura 3.5.- Menú Ayuda del GRP
El GRP tiene un soporte de ayuda que toma del sistema operativo Windows. En virtud de que la
mayoría de los usuarios cuentan con ese Sistema Operativo en sus computadoras y alguna vez
han manejado la ayuda para las diferentes aplicaciones, tales como Microsoft Office, al usuario le
resultará familiar este formato de ayuda. En él, está contemplada la forma de búsqueda por frase,
palabra, tema, y tiene los vínculos adecuados que le facilitarán al usuario
46
la información oportuna para cada uno de los conceptos que necesite a lo largo de su trabajo. La
Figura 3.6 muestra la pantalla inicial durante una solicitud de la ayuda del GRP.
Figura 3.6: Ayuda del GRP
3.3.3 Menú Acerca de.
El Menú Acerca de muestra el nombre del autor, la versión del programa, y el Sistema Operativo
utilizado en la elaboración del mismo. La Figura 3.7 muestra la información proporcionada por el
Menú Acerca de....
Figura 3.7. - Acerca de...
47
3.4.- Evolución de la Red
Esta función se lleva a cabo si el botón evolución esté habilitado, el cual, al inicio de la
aplicación, está inhabilitado.
Para observar la evolución de una Red de Petri, el sistema verifica el tipo de red en el que está
trabajando: si está trabajando en el tipo de Red No Pura, el sistema está continuamente habilitado
para llevar a cabo tal simulación; si el diseñador está trabajando en la modalidad de Red Pura,
entonces será necesario que los botones tanto de lugar como de transición, que se ubican en la
parte superior derecha de la interfaz gráfica, estén ambos en color azul.
La simulación comienza cuando, cubriéndose los dos casos mencionados, el usuario oprime el
botón evolución. El usuario oprimirá la transición que desee activar.
Si el sistema reconoce la existencia de un conflicto, automáticamente despliega un mensaje
advirtiendo a usuario de tal conflicto, y desactiva temporalmente el botón evolución.
De igual forma, si el sistema reconoce que no existe ninguna transición que pueda ser disparada,
automáticamente despliega la información de bloqueo de la Red.
Si en algún momento de la evolución de la Red otra aplicación toma el control de la pantalla, al
regresar al programa se activa la función Paint de Visual Basic, y vuelve a dibujar los
componentes tal como estaban antes de que la otra aplicación tomara la pantalla.
Si durante la evolución de la red, la cual el usuario seleccionó como pura, él desea colocar un
componente, sólo tiene que seleccionar el botón correspondiente a ese componente y presionar el
botón izquierdo del ratón estando el cursor en el lugar de la pantalla en que desee colocarlo. Si la
red deja de ser pura, el programa suspende sus cálculos y los reanuda cuando la red se hace
nuevamente pura.
Asimismo, si durante la evolución de la red el usuario desea mover un componente, sólo necesita
presionar el botón Mover, presionar el botón izquierdo del ratón sobre el componente a desplazar,
presionar nuevamente el botón izquierdo del ratón, esta vez en el lugar en el que desea colocarlo,
y el programa continúa presentando las condiciones de la red.
48
3.5: Mensajes del GRP
3.5.1: Vivacidad
Al producirse un bloqueo en la red, el sistema se lo hará saber al diseñador por medio de un
mensaje (el mensaje aparece en la parte inferior de la pantalla mediante el algoritmo basado en
[4]. La Figura 3.8 muestra un mensaje de indicación de bloqueo.
Figura 3.8: Ejemplo de informe de red bloqueada.
3.5.2: Limitación
En todo momento, el GRP informa al usuario el número total de marcas que se encuentra en la
red. Con esa información, es posible observar la propiedad de limitación.
•
49
3.5.3: Conservatividad
De la misma manera que para el caso anterior, el usuario podrá verificar en todo momento el
número total de marcas en la red, con lo que observará la propiedad de conservatividad.
3.5.4: Existencia de Conflictos
Al detectar conflicto durante la evolución de la Red de Petri, aparece un mensaje que indica su
existencia, y el lugar en el cual se está originando. Si el problema involucra dos o más lugares, el
sistema, sucesivamente, informan al diseñador el índice de los diferentes involucrados.
La Figura 3.9 muestra un ejemplo del informe de conflictos.
Figura 3.9.- Ejemplo del informe de conflictos.
••
50
El programa está diseñado para que, cuando indica una existencia de conflictos, aún así permita
que el usuario continúe observando la evolución de la Red de Petri, ya que el problema de
conflicto se evita asignando a alguna de las transiciones una prioridad más alta que a la demás
transiciones.
Como función adicional, cuando el sistema detecta un conflicto, dibuja las marcas
correspondientes a los lugares en cuestión, de un color distinto, con el fin de que se distingan de
los demás lugares, proporcionando al usuario la interacción usuario-máquina correspondiente al
espíritu con el cual esta característica fue buscada.
51
CAPITULO 4 DISCUSIÓN DE LOS RESULTADOS.
4.1.-Desempeño del GRP
Los algoritmos de este programa aún no alcanzan el grado máximo de simplificación, por lo cual,
al ejecutarse en computadoras Pentium IV o equivalentes, con rapidez de 950MHz y una
memoria RAM de 128 KB o en computadoras de menores capacidades que las mencionadas, es
probable que se alcance a apreciar un retardo en las respuestas gráficas que proporciona,
dependiendo aún de la memoria RAM de la máquina, de la adecuada desfragmentación del disco
y la cantidad de otros programas que se estén ejecutando simultáneamente con él. Cuando el
número de componentes en la red es de menos de 15, la evolución se lleva a cabo sin retrasos
considerables, sin embargo, cuando el número es mayor, comienza a aparecer el efecto del
tiempo de cálculos, debido a que el número de operaciones que el programa tiene que realizar,
aumenta de forma exponencial.
Cuando el programa se ejecuta en computadoras de mayor capacidad que las mencionadas, la
operación se lleva a cabo de forma totalmente confiable.
4.2.- Errores (Bugs)
Existen unos pocos errores relacionados con las características mismas del lenguaje, tales como
el que surge al tener activado el botón "Arco", presionar el botón izquierdo del ratón en cuando el
cursor esté en el borde superior de la pantalla, y arrastrar el ratón hacia la Interfaz Gráfica del
Usuario (provoca el error 5 de Visual Basic " Llamada a procedimiento o argumento no válidos")
4.3.- Objetivos vs. Resultados
El arduo trabajo que representó llevar a cabo la elaboración de una Herramienta de Gestión de
Redes de Petri tiene como culminación la existencia de un soporte amigable e interactivo de
diseño de sistemas de evolución automática, que, si bien no se encuentra aún en su fase de
52
calidad total, sí contiene los elementos que le permiten ser considerado de utilidad para el
estudiante de sistemas robóticas.
El programa cumplió con las expectativas que se tenían acerca de él, manifestadas al inicio de
este trabajo escrito. Se comprobó que el lenguaje Visual Basic tiene una potencia aplicable al
trabajo en el ambiente gráfico que se necesita para realizar un proyecto de simulación de Redes
de Petri. Sin embargo, no se descarta que para trabajos futuros se adopte como plataforma en
lenguaje visual en C, tal como C++ Builder, u otro cuyas características sean adecuadas para el
proyecto.
4.4.- Trabajos Futuros
Las aplicaciones que van añadir a la funcionalidad del sistema, son las siguientes:
1. La función de elaboración del árbol de alcanzabilidad de la Red.
2. Dotar al programa con la capacidad para el diseño de redes no ordinarias.
3. La capacidad de diseñar redes coloreadas.
4. La capacidad para presentar la función zoom, la cual le permitirá al diseñador tener un
mayor espacio (al costo de un tamaño menor de cada componente, específicamente a la
mitad de su tamaño original) para observar procesos que involucre un mayor número de
nodos.
5. La opción para trabajar conjunta y simultáneamente varios usuarios en el desarrollo de
una misma Red de Petri a través de Internet.
6. Crear un repositorio en la Internet a fin de que un usuario pueda almacenar sus programas
y posteriormente continuarlos estando el usuario en una localidad remota.
7. La capacidad para que las redes en la interfaz gráfica tengan un movimiento
tridimensional. Esto con el fin de que el diseñador pueda observar desde distintas
perspectivas el modelo de red que está elaborando. La forma para llevar a cabo esta
acción es dando a los valores X y Y más importantes de los componentes (por ejemplo, la
posición del punto de inicio o la posición del punto final de los arcos, o bien la posición
del centro de los lugares, de las marcas o de las transiciones) un desplazamiento en base a
53
elipses cuyas características de excentricidad y semiejes mayor y menor estén previamente
definidas en el sistema. El proceso consiste en calcular, por medio de la posición actual de un
componente, la nueva posición que tendría ante un incremente en X de la coordenada de ese
punto, la cual tenga que estar sobre la elipse. De la misma forma, se haría un cálculo análogo para
calcular la nueva componente en Y de dicho punto.
54
CAPITULO 5 CONCLUSIONES
El programa GRP es una herramienta en proceso de desarrollo constante que proporciona un
soporte gráfico interactivo tanto a quienes participan en el proceso de enseñanza-aprendizaje de
áreas de conocimiento tan separadas como el diseño de autómatas, de toma de decisiones por
medio de la Investigación de Operaciones, o la evolución de una coreografía, los cuales puedan
ser representados mediante Redes de Petri.
Es evidente que existe una gran cantidad de aplicaciones (tanto en la industria como en los
diversos procesos en los que existe un flujo de información y una secuencia ordenada de eventos)
cuyo diseño y análisis son factibles tomando como base las Redes de Petri y su implementación
se lograra de una manera sencilla y segura, si se cuenta con una herramienta automatizada que
permita conocer de forma rápida y confiable los diferentes estados de la aplicación en estudio.
La herramienta que se obtuvo como resultado de este trabajo de tesis nos permite llevar a cabo
los análisis referidos. Ésta ha sido denominada "Gestor de Redes de Petri GRP". Sus
aplicaciones, en el entorno de Manzanillo, se pueden extender desde el diseño de un proceso de
trámites en una agencia naviera, hasta el diseño de un programa institucional de construcción de
un edificio.
Asimismo, la aplicación GRP será de gran apoyo en los cursos en los cuales se analicen las Redes
de Petri, porque permitirá al alumno comprender de una manera sencilla, confiable e interactiva,
las bases mismas de su teoría, en virtud de poseer una Interfaz Gráfica del Usuario fácil de
comprender y utilizar.
El código fuente del programa ofrece la oportunidad de empleo como recurso didáctico en los
cursos de Visual Basic.
Se proporciona una colección de Herramientas de Redes de Petri gratuitas para que el interesado,
si así lo desea, los descargue, utilice y compare.
55
BIBLIOGRAFÍA
[ 1 ] Silva, Manuel (1985). Las Redes de Petri en la Automática y la Informática
[ 2 ] Ceballos, Francisco Javier (1996). Enciclopedia de Visual Basic 4
[ 3 ] http://www.vb-helper.com/howto_draw_arrows.html
[ 4 ] http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/
support/ kb/articles/Q180/9/36.asp&NoWebContent=1
[ 5 ] http://www.vb-helper.com/HowTo/segments.zip
Apéndice A
Relación de herramientas de Redes de Petri gratuitos, y su dirección en la Internet:
1. ARP http://www.ppgia.pucpr.br/~maziero/Petri/ 2. CoopnTools http://lglwww.epfl.ch/Conform 3. CPN-AMI http://www.lip6.fr/cpn-ami 4. CPN Tools http://www.daimi.au.dk/CPNtools/ 5. Design/CPN http://www.daimi.au.dk/designCPN/ 6. HiQPN-Tool http://ls4-www.informatik.uni-dortmund.de/QPN/ 7. PSim http://home.t-online.de/home/henryk.a/petrinet/e/hpsim_e.htm 8. INA http://www.informatik.hu-berlin.de/~starke/ina.html 9. JARP http://jarp.sf.net/ 10. JFern http://sourceforge.net/projects/jfern 11. Maria http://www.tcs.hut.fi/Software/maria/ 12. Marigold http://www-users.cs.york.ac.uk/~jwillans/VE Research.html 13. The Model-Checking Kit http://wwwbrauer.in.tum.de/gruppen/theorie/KIT/ 14. PED http://www-dssz.Infortnatik.TU-Cottbus.DE/~wwwdssz/ 15. PEP http://parsys.Informatik.Uni-Oldenburg.DE/~pep
56
16. Petri Net Kernel http://pnk.sourceforge.net/ 17. PetriSim http://staff.um.edu.mt/jsk11/petrisim/index.html 18. Platform Independent Petri Net Editor http://petri-net.sourceforge.net/ 19. PNSim http://www.elyros.com/PNSim/ 20. PNtalk http://www.fee.vutbr.cz/~janousek/pntalk/pntalk.html 21. Poses++ http://www.gpc.de 22. Predator http://www.mark.wass.com/Petrinets 23. PROD http://www.tcs.hut.fi/Software/prod/ 24. Renew http://www.renew.de 25. SEA http://www.c-lab.de/sea/ 26. SIPN-Editor http://www.eit.uni-kl.de/litz/ENGLISH/software/SIPNEditor.htm 27. SimulaWorks http://www.simulaworks.com 28. Tina http://www.laas.fr/tina 29. TPTPN http://www.cdc.unict.it/~scava/tptpn.html 30. VIPtool http://www.informatik.ku-eichstaett.de/VIP/ 31. Visual Object Net ++ http://www.systemtechnik.tu-ilmenau.de/~drath/visual_E.htm 32. WebSPN http://sun195.iit.unict.it/~webspn/webspn2/ 33. WINSIM ftp://cmpe.emu.edu.tr/SimSystem
La siguiente relación muestra una lista de Herramientas de Redes de Petri que únicamente se
pueden obtener de manera comercial, y su dirección en la Internet:
1) ALPHA/Sim http://www.alphatech.com/secondary/techpro/alphasim/alphasim.html 2) Artifex http://www.rsoftdesign.com 3) ExSpect http://www.exspect.com 4) F-net http://www.fi.ru/os/Petri.php3 5) GDToolkit http://www.dia.uniroma3.it/~gdt/ 6) GreatSPN http://www.di.unito.it/~greatspn/ 7) INCOME Process Designer http://www.get-process.com 8) MISS-RdP http://www.ixi.fr/tools/pages/miss/fr_0.htm 9) Nevod http://geocities.com/zsoftua 10) Opera http://geocities.com/zsoftua 11) PACE http://www.ibepace.com 12) SPNP http://www.ee.duke.edu/~kst/ 13) STROBOSCOPE http://strobos.ce.vt.edu/ 14) SYROCO http://www.univ-tlsel.fr/ceriss/COOgene.html 15) TimeNET http://pdv.cs.tu-berlin.de/~timenet/
57
Apéndice B
Código Fuente
El Código Fuente se encuentra en el diskette de 3 1/2 " adjunto.