Una introduccion a las redes de Petri Laboratorio de Control de procesos Carl Adam Petri 1926-
Contenido Introduccion Estructura de una red de Petri Dinamica una red de Petri Modelado con redes de Petri Finalmente . . .
Introduccion
¿Qué son las redes de Petri? Las redes de Petri (PN) son una herramienta de modelado que captura la dinanica operacional de los sistemas a eventos discretos Representacion grafica formal del flujo de actividades en sistemas complejos Un lenguaje de modelado
Caracteristicas de las redes de Petri Soportan la simulación del sistema Soportan modularidad y abstraccion Soportan el análisis formal para propiedades, tales como: Acotamiento, Vivazidad alacanzabilidad, etc. La literatura sobre redes de Petri es abundante
Adecuadas para modelar Secuencialidad Concurrencia Sincronización Conflicto Precedencia Prioridad
Aplicaciones Sistemas de manufactura Redes de computadoras Diseño de software Modelado de sistemas concurrentes y/o distribuidos Protocolos de comunicación, etc.
Estructura de una red de Petri
Elementos de una red de Petri lugar transicion arco de entrada arco de salida Una marca
Elementos de una red de Petri
Interpretacion de una red de Petri lugar = estado marca Estado activo transicion = un evento
Un ejemplo sencillo lugar = Bomba encendida marca Estado activo transicion = Switch ON lugar = Bomba apagada
Un ejemplo sencillo lugar = Bomba encendida marca Estado activo transicion = Switch ON lugar = Bomba apagada ¿Qué sucede en la red si el Switch se conmuta a OFF?
Otro ejemplo Un lector en una biblioteca: esperando esperando, leyendo strt_reading leyendo stop_reading
Otro ejemplo Un lector en una biblioteca: esperando esperando, leyendo strt_reading leyendo stop_reading
Otro ejemplo Un lector en una biblioteca: esperando esperando, leyendo strt_reading leyendo stop_reading
Otro ejemplo Un lector en una biblioteca: esperando esperando, leyendo strt_reading leyendo stop_reading
Otro ejemplo Un lector en una biblioteca: esperando esperando, leyendo strt_reading leyendo stop_reading
Ejercicio Dos lectores en una biblioteca: esperando esperando, leyendo strt_reading leyendo stop_reading
Dinamica una red de Petri
Reglas Todos los arcos (conecciones) son dirigidas No existen arcos entre dos lugares No existen arcos entre dos transiciones Los lugares pueden tener cero o mas marcas Los arcos pueden tener peso: con valor de 1, 2, …, o mas b a y x
Redes de Petri: una definicion Una red de Petri C = P,T,I,O consiste de: Un conjunto finito de lugares P Un conjunto finito de transiciones T Una funcion de entrada I: T NatP Una funcion de salida O: T NatP Una funcion de pesos W: T Nat Un marcado de C es un mapeo m: P Nat b a y x P = { x, y } T = { a, b } I(a) = { x }, I(b) = { x, x } Ejemplo O(a) = { x, y }, O(b) = { y } m = { x, x }
Disparo de una transicion Una transicion se produce (“se dispara”): si todos los lugares de entrada tienen el numero requerido de marcas p1 p2 t2 t1
Disparo de una transicion Una transicion se produce (“se dispara”): si todos los lugares de entrada tienen el numero requerido de marcas
Disparo de una transicion Una transicion se produce (“se dispara”): si todos los lugares de entrada tienen el numero requerido de marcas NO
Disparo de una transicion Una transicion se produce (“se dispara”): si todos los lugares de entrada tienen el numero requerido de marcas 2
Transicion habilitada Una transición está habilitada cuando el número de marcas en cada uno de sus lugares de entrada es por lo menos igual al peso de arco que va del lugar a la transición. Una transición habilitada puede o no dispararse (ocurre o no ocurre un evento)
Disparo de una transicion El disparo de una transición habilitada t: consume w(p,t) marcas de cada lugar p de entrada de t, y produce w(t,p) marcas a cada lugar de salida p de t, 2 p1 p2 t1 3 2 p1 p2 t1 3
Disparo de una transicion Para disparar una transicion t: t debe estar habilitado: m ≥ I(t) consume entradas y genera salida: m= m - I(t) + O(t) a b a b b
Disparo de una transicion H2 O2 H2O 2H2 + O2 2H2O 2 t Antes del disparo Peso = 2 H2 O2 H2O 2 t Despues del disparo
Ejecucion de las redes de Petri La ejecución de las redes de Petri es no-deterministica Pueden ser habilitadas múltiples transiciones al mismo tiempo Cualquier transicion habilitada puede ser disparada No se exige que una transicion sea disparada puede dispararse cuando quiera, en un tiempo entre 0 e infinito, o no dispararse nunca
Modelado con redes de Petri
Ejecucion secuencial Secuencialidad p2 t1 p1 p3 t2
Sincronizacion Sincronizacion t1 t1
Se llega por diferentes caminos Conjuncion t1 t2 t3
Se toman diferentes caminos Toma de deciciones t1 t2 t3
Concurrencia Entradas independientes permiten el disparo “concurrente” de la transicion
Concurrencia p3 p1 t2 Paralell Begin Paralell End t1 p2 p4 t4 t3 p5
Lugar de entrada y salida Lectura sin modificacion de condiciones Lugar de entrada y salida p2 p4 t3 p3
Conflicto
Resolucion del conflicto Punto de decision El conflicto resultante puede ser resuelto de manera simplemente determinista o de manera probabilistica, atribuyendo probabilidades apropiadas a las transiciones en conflicto
Exclusion mutua Las dos subredes estan forzadas a sincronizarse
Productores y Consumidores
Buffers acotados # slots ocupados # slots libres
Finalmente. . .
¿Qué mas debería conocer? ¿Cómo se especifican formalmente las redes de Petri? ¿Cuál el conjunto de “alcanzabilidad” de una red? ¿Cómo se puede calcular este conjunto? ¿Cómo puede una (mala) implementacion de una red de Petri quedar bloqueada aun cuando existan transiciones activadas? ¿Qué es una red de Petri temporizada? ¿Qué es una red de Petri coloreada? “ y ……. ???”
Una solucion… Inscribase en la electiva “Sistemas a eventos discretos”