Modelado de Sistemas: Redes de Petri Modelos conceptuales mediante redes de Petri Índice Introducción Redes de Petri (RdP) Modelando con redes de Petri Análisis de las redes de Petri Precondiciones i postcondiciones de un evento Ejemplos. Descomposición en subsistemas Modelando programas Problemas. Otros sistemas Árbol de alcance Redes de Petri no acotadas y árbol de cobertura Bloqueos Redes de Petri coloreadas (RdPC) Definición Ejemplos 2 Introducción Sistemas Conjunto de objetos que interactúan entre sí Estado i variables de estado El estado del sistema queda determinado por los valores de las variables que se necesitan para caracterizar al sistema Sistemas continuos Cambios continuos de las variables Sistemas discretos Cambios discretos de las variables Sistemas orientados a eventos discretos Cambios discretos + secuencia temporal aleatoria 3 Introducción Modelos Representación simbólica (matemática) del sistema que permite representar las dinámicas de interés (reproduce el comportamiento y las características del sistema) Modelos de simulación de eventos discretos Elementos utilizados Evento Acción instantánea que cambia el estado del modelo Actividad Tareas del sistema con duración temporal Entidades Entidades temporales: Objetos que se procesan Recursos: Medios utilizados para ejecutar las actividades 4 Introducción Bibliografía Guasch, A.; Piera, M.A.; Casanovas, J.; Figueras, J. Modelado y simulación. Aplicación a procesos logísticos de fabricación y servicios. Ediciones UPC, 2002. Jensen, K. Coloured Petri Nets. Basic Concepts, Analysis Methods and Practical Use. Volume 1, Basic Concepts. Springer-Verlag. 1997 Peterson, J. L. Petri Net Theory and the Modelling of Systems. Prentice-Hall, 1981. 5 Redes de Petri Los modelos de eventos discretos se basan fundamentalmente en los conceptos de evento y actividad. Un evento genera un cambio en las variables de estado y marca el inicio o el final de una actividad. Las Redes de Petri (RdP) permiten representar de forma natural un modelo de eventos discretos. En una RdP los eventos están asociados a transiciones y las actividades a lugares. Las RdP permiten representar formalmente la concurrencia (actividades paralelas) y la sincronización (transferencia sincronizada de materiales o de información). 6 Redes de Petri Es un formalismo de modelado gráfico con muy pocas reglas sintácticas. Permiten estudiar aspectos estructurales tales como las situaciones de bloqueo o la alcanzabilidad de ciertos estados. Permiten formalizar un sistema a distintos niveles de abstracción de acuerdo con los objetivos de modelado. Permiten la descripción de un sistema complejo mediante la metodología Bottom-Up: construcción del modelo del sistema completo a partir de las RdP de los subsistemas (submodelos), que han sido previamente desarrollados y verificados (modularización). 7 Redes de Petri: Definiciones básicas Una estructura de Red de Petri, C, está compuesta por 4 elementos, C = (P, T, I, O). P = {P1, P2, …, Pn} conjunto finito de lugares, n ≥ 0. T = {T1, T2, …, Tm} conjunto finito de transiciones, m ≥ 0. I:T→P∞ es una función de entrada, una aplicación de las transiciones a bolsas de lugares. O:T→P∞ es una función de salida, una aplicación de las transiciones a bolsas de lugares. La Teoría de Bolsas es una extensión natural de la Teoría de Conjuntos. En las bolsas se admiten elementos repetidos. Entrada/salida múltiple → grado de multiplicidad del lugar de E/S 8 Notación P∞: Es posible un número ilimitado de repeticiones Redes de Petri: Definiciones básicas Asignación de marcas (tokens) M de una Red de Petri, C. M:P→N es una función del conjunto de lugares P al conjunto de los números enteros no negativos N. El estado del sistema se caracteriza a través de la asignación de marcas. Se representa a través del vector p M P1 , M P2 , , M Pn Nn es el conjunto de todas las asignaciones de marca (todos los estados del sistema). 9 Redes de Petri: Definiciones básicas La representación gráfica de las RdP es un multigrafo dirigido, ponderado y bipartito Dos tipos de nodos: lugares (círculos) y transiciones (rectángulos). Las conexiones entre los lugares de entrada y de salida de cada transición y la transición se representan a través de arcos (orientados). El grado de multiplicidad de los lugares de entrada y salida se representa a través del peso asociado al arco correspondiente. 10 Redes de Petri: Definiciones básicas El grafo de una Red de Petri está compuesta por 5 elementos: RdP = (P, T, A, W, M). P = {P1, P2, …, Pn} conjunto de n lugares (círculos). T = {T1, T2, …, Tm} conjunto de m transiciones (rectáng.). A = {A1, A2, …, As} conjunto de s arcos. Entradas lugar-transición Ak1 ≡ (Pi1, Tj1) Salidas transición-lugar Ak2 ≡ (Pi2, Tj2) W(Ak) k = 1, 2, …, s Peso asociado a cada arco. Ak1 ≡ (Pi1, Tj1) W(Ak1) = W(Pi1, Tj1) Ak2 ≡ (Pi2, Tj2) W(Ak2) = W(Pi2, Tj2) M(Pi) i = 1, 2, …, n Asignación de marcas (estado) 11 Redes de Petri: Definiciones básicas Para analizar la RdP se utilizará el conjunto de lugares de entrada, I(Tr), y el conjunto de lugares de salida, O(Tr), de cada transición Tr. El número de elementos (piezas, personas, recursos, etc.) que hay en una cola de espera se representa gráficamente a través del número de marcas. El estado de una condición (verdadero o falso) se representa gráficamente con una marca en el interior del nodo lugar cuando la condición se cumple. I Tr Pi P : Pi , Tr A O Tr Pi P : Tr , Pi A 12 Redes de Petri: Definiciones básicas Reglas para simular el comportamiento de una RdP Una transición Tr está activada si cada uno de los lugares de entrada a la transición Tr contiene un número de marcas superior o igual al peso del arco correspondiente (precondiciones). M Pi W Pi , Tr Pi I Tr Una transición activada puede ejecutarse (dispararse) en cualquier momento. Como resultado de ejecutar (disparar) una transición activada, Tr, se eliminan W(Pi,Tr) marcas del lugar Pi, para todos los lugares de entrada de la transición Tr, y se añaden W(Tr, Pj) marcas al lugar Pj, para todos los lugares de salida de Tr (postcondiciones). 13 Redes de Petri: Definiciones básicas P 1 2 T 1 P 1 2 P 3 P 2 1 P 1 4 P 3 2 T 1 1 2 P 5 P 1 2 P 5 3 3 P 5 Ejemplo: A la izquierda se representa el estado inicial de la RdP con la transición T1 activada: M(P1)=3, M(P2)=1 y M(P3)=4. A la derecha se representa el estado final de la RdP después de dispararse la transición. 14 Redes de Petri: Definiciones básicas Función estado siguiente δ(M, Tr) de una asignación de marcas M y una transición Tr. δ: Nn T → Nn δ(M, Tr) = M’ M ' Pi La función estado siguiente de M y Tr está definida si y solo si Tr está activada con la asignación de marcas M. M, Tr M Pi W Pi , Tr W Tr , Pi Pi P Como resultado de disparar la transición activada, Tr, se eliminan W(Pi,Tr) marcas del lugar Pi, (si Pi no es un lugar de entrada de la transición Tr, W(Pi,Tr) = 0, y se añaden W(Tr, Pi) marcas al lugar Pi (si Pi no es un lugar de salida de Tr, W(Tr, Pi) = 0. 15 P 1 2 T 1 P 1 2 P P 2 3 1 P 1 4 P 3 2 T 1 1 2 P 5 P 1 2 P 5 3 3 P 5 M’ = δ(M, T1) T1 M’(P1) = M(P1) – W(P1,T1) + W(T1, P1) = 3 – 2 + 0 = 1 -2 M’(P2) = M(P2) – W(P2,T1) + W(T1, P2) = 1 – 1 + 0 = 0 -1 M’(P3) = M(P3) – W(P3,T1) + W(T1, P3) = 4 – 2 + 0 = 2 -2 M’(P4) = M(P4) – W(P4,T1) + W(T1, P4) = 0 – 0 + 1 = 1 +1 M’(P5) = M(P5) – W(P5,T1) + W(T1, P5) = 1 – 0 + 3 = 4 +3 16 Redes de Petri: Definiciones básicas Estado inmediatamente alcanzable La asignación de marcas M’ es inmediatamente alcanzable desde M si existe una transición Tr tal que M’ = δ(M, Tr). Estado alcanzable La asignación de marcas M’ es alcanzable desde M si existe una secuencia de ejecución de transiciones que transforme M en M’. Conjunto de estados alcanzables R(C, M) de una red de Petri C = (P, T, I, O) desde una asignación de marcas M. R(C, M) es el conjunto que cumple: 1) M є R(C, M) 2) M’ є R(C, M) y M’’ = δ(M’, Tk) → M’’ є R(C, M) La relación de alcanzabilidad es el cierre reflexivo transitivo de la relación de alcanzabilidad inmediata. 17 Redes de Petri: Definiciones básicas Las RdP permiten representar las dinámicas de los procesos orientados a eventos discretos: a) secuencia; b) decisión; c) concurrencia; d) sincronización; e) agrupación. P a) P b) 1T 3 c) 4 1 P 1 2T P2 d) T T T T T 1 2 3 1 P P P 1 2 3 e) P P P 1 2 3 T 2 3 T T T 1 2 3 T P 1 1 P T T 18 Precondiciones y postcondiciones Modelo de un recurso limitado Estación de trabajo formada por dos máquinas dedicadas a procesar piezas. Las piezas que llegan se esperan en una única cola, son procesadas, y finalmente abandonan la estación. P1 P2 P3 P4 Piezas en cola CONDICIONES Máquinas libres Piezas en proceso. (máquinas ocupadas) Piezas procesadas T P1 1 T1 Llegada de la pieza Precondiciones: Ninguna Postcondiciones: Pieza en cola T2 T3 P T P2 2 3 EVENTOS (arco ent.) (arco sal.) Inicio del proceso Precondiciones: Pieza en cola; Máquina libre Postcondiciones: Pieza en proceso T P3 Fin del proceso 4 Precondiciones: Pieza en proceso Postcondiciones: Pieza procesada; Máq. libre 19 Modelando con Redes de Petri Modelo de un proceso robotizado simple Dos flujos diferentes de fabricación (piezas tipo 1 i piezas tipo 2) compiten por un mismo recurso. Un mismo robot transporta todas las piezas. P1 P2 P4 P6 Robots libres Cola piezas 1 Transp. pieza 1 Salida piezas 1 T1 Lleg. piezas 1 T3 Inicio transp. 1 T5 Fin transp. 1 P3 Cola piezas 2 P5 Transp. pieza 2 P7 Salida piezas 2 T2 Lleg. piezas 2 T4 Inicio transp. 2 T6 Fin transp. 2 La marca de la posición P1 puede activar T3 o T4 (decisión: especificar criterio) T 1P T P2 2 T 3P 4 T 5P 6 3 P 1 T P4 5 T P6 7 20 Modelando con Redes de Petri Modelo de una máquina ensambladora Se considera que sólo llegan al sistema piezas de tipo a. Las piezas de tipo b están previamente almacenadas en el sistema (RdP no acotada; M(P2) puede crecer ilimitadamente) P1 Almacén piezas b (bebida) P2 Cola de entrada piezas a (cliente) T0 Llegada cliente T1 Proceso de ensamblado a Piezas ensamblad as M 1 b P P 2 1 T T 0 1 21 Modelando con Redes de Petri Modelo de una máquina ensambladora con limitación en el número de piezas que llegan Se considera una cola de entrada de 3 plazas para las piezas de tipo a. Las piezas de tipo b están previamente almacenadas en el sistema. (RdP acotada) P1 Almacén piezas b P2 Cola de entrada piezas a (cliente) P3 Plazas libres en la cola de entrada de piezas a T0 Llegada cliente T1 Proceso de ensamblado P P 2 1 T T 1 0 P 3 22 Descomposición en subsistemas Modelo de una línea de producción Robots transporte: R1, R2; Máquinas: M1, M2, M3; Almacenes: S1, S2. Funcionamiento: R1 transporta pieza S1 → M1; M1 efectúa la 1ª operación; R2 transporta pieza M1 → M2 o M3; M2 o M3 efectúa 2ª operación R2 transporta pieza M2 o M3 → S2 Subsistema 1: S1 → M1 + proceso M1 Subsistema 2: M1 → M2 + proceso M2 + M2 → S2 Subsistema 3: M1 → M3 + proceso M3 + M2 → S2 M S 1 R1 M R2 2 S 1 2 M 3 23 Subsistema 1 P1 M1 libre P3 R1 libre P5 M1 ocupada P2 R1 transp S1→M1 P4 M1 procesando P6 Almacén S1 T1 Inicio transp S1→M1 T2 Final transp S1→M1; Inicio proceso M1 T3 Final proceso M1 P P6 1 P P 3 2T Estado incial (1, 0, 1, 0, 0, 5) M1 libre M(P1)=1; M(P4)=0; M(P5)=0 R1 libre M(P2)=0; M(P3)=1 S1 (5 piezas) M(P6)=5 S 1 M R2 2 P 4T P M R1 T1 2 S 1 5 2 M 24 3 Dinámica del subsistema 1 P P6 1 P T1 P6 P P 3 2T 2 P 5 T1 P P 3 2T P 4T 1 P 2 P 3 Disparo T1 P Inicio transp. S1→M1 5 4T P6 1 T1 P P 3 2T 2 P 3 4T 3 Disparo T2 P Final transp. S1→M1; 5 Inicio M1 25 Dinámica del subsistema 1 P P6 1 P T1 P6 P P 3 2T 2 P T1 P P 3 2T P 4T 1 P 2 P6 Disparo T2 P 5 5 M1 Final transp. S1→M1; Inicio 4T T1 P P 3 2T P 3 1 2 P 4T 3 Disparo T3 P Final M1 5 26 3 Subsistema 2 P1 P7 P9 P11 P18 M1 libre M2 libre R2 M1→M2 M2 ocupada Almacén S2 P5 P8 P10 P12 1 1 8 T59 P1 T6 0 P1 2 M S 1 2 M P P1 T28 M S 5 P1 T17 P1 P5 P7 P8 P9 P10 P11 P12 P18 (0, 1, 1, 1, 0, 0, 0, 0, 0) R2 7 P T5 Final M1→M2; Inicio M1 T7 Inicio M2→S2 R1 P T4 P T4 Inicio M1→M2 T6 Final M2 T8 Final M2→S2 Estado inicial M1 ocupada R2 libre M2 procesando R2 M2→S2 P 8 27 Subsistema 3 P1 P13 P14 P16 P18 M1 libre M3 libre R2 M1→M3 M3 ocupada Almacén S2 P5 P8 P15 P17 T9 Inicio M1→M3 T11 Final M3 T13 Final M3→S2 Estado inicial M1 ocupada R2 libre M3 procesando R2 M3→S2 P1 P 5 3 T9 P P1 4 T1 P 8 P10 T10 Final M1→M3; Inicio M3 T12 Inicio M3→S2 5 S 1 R1 M R2 P1 S 1 P12 7 2 T11 P1 6 T1 P1 P5 P8 P13 P14 P15 P16 P17 P18 (0, 1, 1, 1, 0, 0, 0, 0, 0) M 1 T1 3 8 2 M 28 P6 P 1 T1 Inicio S1→M1 T2 Final S1→M1; Inicio M1 T3 Final M1 T4 Inicio M1→M2 T5 Final M1→M2; Inicio M2 T6 Final M2 T7 Inicio M2→S2 T8 Final M2→S2 T9 Inicio M1→M3 T10 Final M1→M3; Inicio M3 T11 Final M3 T12 Inicio M3→S2 T13 Final M3→S2 Estado inicial: (1,0,1,0,0,5,1,1,0,0,0,0,1,0,0,0,0,0) T1 P 2 T2 P 3 P 4 T3 P 7 T4 P T95 P 5 P1 3 P 8 T9 P1 4 T1 P1 T06 P01 5 T1 P1 T17 P11 6 T1 P1 T28 P21 P1 8 7T 3 1 29 Modelando programas El programa de un proceso es un conjunto de operaciones de computación ejecutadas en un cierto orden. Programa → Computación + control Computación: ejecución de operadores aritméticos y/o lógicos; manipulación de entradas, salidas y valores de las variables. Control: Orden en el cual deben ejecutarse las operaciones. Representado a través de los diagramas de flujo. Las RdP permiten representar la estructura de control de los programas. begin Input(y1); Input(y2); y3:=1; while y1>0 do begin if odd(y1) then begin y3:=y3*y2; y1:=y1-1; end; y2:=y2*y2; y1:=y1-2; end; Output(y3); end; Acción Interpretación a Input(y1); Input(y2); y3:=1; b y1>0 ? c odd(y1) ? d y3:=y3*y2; y1:=y1-1; e y2:=y2*y2; y1:=y1-2; f Output(y3); a b F V c F V d e f 30 Modelando programas Nodos del diagrama de flujo: computación (rectángulos); decisión (diamantes) → Transiciones de la RdP En las RdP las decisiones se toman a partir de un lugar Arcos del diagrama de flujo → Lugares de la RdP En el diagrama de flujo el proceso debe detenerse entre nodos (antes de iniciar una operación de toma de decisiones o de computación). ai ai Computación F aj aj aj ai ai Decisión F V ak V aj ak 31 Modelando programas Diagrama de flujo y RdP correspondiente del programa ejemplo a a F b F V c b, V d V e c, F c, V b, F d e f f 32 Problema de la exclusión mutua Datos compartidos por varios procesos (lectura de datos y escritura de nuevos valores). Exclusión mutua: Mientras un proceso manipula los datos compartidos (sección crítica) ningún otro proceso puede manipular estos mismos datos Lugar m de la RdP ≡ autorización para acceder a la sección crítica 33 Problema productor / consumidor Sistema formado por s productores de objetos que se depositan en un aparador (buffer) y t consumidores. Para que el número de objetos en el aparador no pueda crecer indefinidamente, se introduce un número máximo n de plazas. Lugar B ≡ Objetos en el aparador Lugar B’ ≡ Plazas libres en el aparador 34 Otros sistemas Reacción química de oxidación reducción. Ejemplo: Oxidación reducción de ácido oxálico y peróxido de hidrógeno Lugar ≡ Número de moléculas (moles) de cada compuesto Transiciones ≡ Reacción Arcos ≡ Número de moléculas (moles) que se consumen/producen H2C2O4 H2C2O4 → 2 CO2 + 2 H+ + 2 e2 e - + 2 H + + H2 O 2 → 2 H 2 O 2 CO2 2 2 e H+ H2O2 - 2 2 2 H2O 35 Modelando de sistemas: Redes de Petri Descanso 36 Análisis de las RdP Objetivos Determinar las situaciones de bloqueo del sistema. Determinar los estados posibles a partir de un cierto estado inicial. Determinar caminos para alcanzar un estado final a partir de un estado inicial. Árbol de alcance Representación del conjunto de estados alcanzables R(C, M0) de una red de Petri C = (P, T, I, O) con una asignación inicial de marcas M0. Nodos del árbol de alcance ≡ Estados del sistema (asig. marcas) Reglas de construcción del árbol de alcance: 1. El nodo raíz es el estado inicial 2. Cada nodo genera nodos hijos ejecutando las transiciones activadas 3. Nodo duplicado (old) → no genera nodos hijos 4. Nodo terminal (dead) ≡ No tiene transiciones activadas → no genera nodos hijos 37 Árbol de alcance Reglas de construcción: 1. El nodo raíz es el estado inicial 2. Cada nodo genera nodos hijos ejecutando las transiciones activadas 3. Nodo duplicado (old) → no genera nodos hijos 4. Nodo terminal (dead) ≡ No tiene transiciones activadas → no genera nodos hijos Ejemplo: (2, 1, 0) P1 2 T1 P2 1 P3 T2 T1 (-1, (1, 1,1+1, 1) +1) T1 T2 (+1, 1+1, -1) (0, 1, 2) (2, 1, 0) T2 (1, 1, 1) old old 38 Análisis de las RdP Redes de Petri acotadas Definición: Un lugar Pi de una RdP C = (P, T, I, O) con una asignación inicial de marcas M0 es k-acotado si para todas las asignaciones de marcas M del conjunto de estados alcanzables R(C, M0), M(Pi) ≤ k. En el ejemplo anterior P1 y P3 son 2-acotados; P2 es 1-acotado. Definición: Una RdP C = (P, T, I, O) con una asignación inicial de marcas M0 es k-acotada si todos los lugares son k-acotados Definición: Un lugar o una RdP con una asignación inicial de marcas M0 es acotado si es k-acotado para algún valor finito k. En el ejemplo anterior la RdP es 2-acotada. Los lugares P1, P2, P3 y la RdP son acotados 39 Árbol de alcance Ejemplo de RdP 1-acotada Sistema de producción Máquinas M1, M2; Cintas transportadoras C1, C2; piezas tipo a, b Restricciones para la secuencia de operaciones 1. Pieza tipo a: Proceso en M1; transporte C1 M1→M2; Proceso en M2. 2. Pieza tipo b: Proceso en M1; transporte C2 M1→M2; Proceso en M2. 3. Las máquinas no pueden efectuar dos operaciones consecutivas de un mismo tipo de pieza. 4. Almacenes de piezas a y b a la entrada de capacidad infinita 5. Los palets de las cintas C1 y C2 tienen dos posiciones: M1 y M2. 40 Árbol de alcance T1 Final proceso de a en M1 ; Inicio proceso de b en M1 T2 Final proceso de b en M2; Inicio proceso de a en M2 T3 Final proceso de b en M1; Inicio proceso de a en M1 T4 Final proceso de a en M2; Inicio proceso de b en M2 P1 palet C1 en M1 P5 M1 procesando a P2 palet C1 en M2 P6 M1 procesando b P3 palet C2 en M2 P7 M2 procesando b P4 palet C2 en M1 P8 M2 procesando a Estado inicial: M1 procesando a; C1 en M1; M2 procesando b; C2 en M1 (1, 0, 0, 1, 1, 0, 1, 0) 41 Árbol de alcance A partir del árbol de alcance de la RdP se puede concluir: 1) La RdP es 1-acotada 2) Desde el estado inicial se puede llegar a 5 estados distintos 42 RdP no acotadas: Árbol de alcance RdP no acotada → Árbol de alcance infinito (crece de forma ilimitada) Ejemplo: Estado inicial (1, 0, 0) t1 (-1+1,+1, 0) t2 (-1,+1,+1) t3 (0, -1, -1+1) dead old 43 RdP no acotadas: Árbol de cobertura Ampliación de la asignación de marcas: A cada lugar de la RdP se le puede asignar un número de marcas: Número no negativo (0, 1, 2, 3, …) Símbolo especial ω para representar a un número de marcas que puede crecer ilimitadamente (infinito) Cuando el disparo de una transición comporte sumar o restar n marcas a un lugar con símbolo especial, ω, se comportará de la siguiente manera 1) ω+n=ω 2) ω-n=ω 3) n<ω 44 RdP no acotadas: Árbol de cobertura Árbol de cobertura Caracteriza las tipologías de nodos del árbol de alcance Se genera con las 4 reglas de generación del árbol de alcance + Regla de cobertura Regla de cobertura Si en el camino desde el nodo raíz M0 hasta el nodo M del árbol de alcance se puede encontrar un nodo M’ tal que M(Pi) ≥ M’(Pi) para todos los lugares Pi Existe un lugar Pk tal que M(Pk) > M’(Pk) entonces el valor M’(Pk) del árbol de alcance se substituye por M’(Pk) = ω 45 RdP no acotadas: Árbol de cobertura Árbol de cobertura t1 (-1+1,+1, 0) t2 (-1,+1,+1) t3 (0, -1, -1+1) M = (1, 2, 0) y M’ = (1, 1, 0) M’ = (1, 1, 0) → M’ = (1, ω, 0) (1, ω, 0) + t2 = (0, ω, 1) (0, ω, 1) + t3 = (0, ω, 1) (1, 0, 0) t1 t2 (1, ω, 0) t1 (1, ω, 0) old (0, 1, 1) t2 t3 (0, ω, 1) t3 (0, 0, 1) dead (0, ω, 1) old 46 RdP no acotadas: Árbol de cobertura Árbol de cobertura T1 (-1+1,+1, -1) T2 (+1,-1,+1) M0 = (1, 0, 1) Estructura secuencial repetitiva: T1 , T2 , T1 , T2 , … M = (2, 1, 0) y M’ = (1, 1, 0) M’ = (1, 1, 0) → M’ = (ω, 1, 0) (ω, 1, 0) + T2 = (ω, 0, 1) (ω, 0, 1) + T1 = (ω, 1, 0) 47 Bloqueos Bloqueo Dos procesos concurrentes utilizan recursos compartidos y quedan parados en mitad del proceso a la espera de recursos que tiene reservados otro proceso. Ejemplo: Después de ejecutar T1 y T2 (T2 y T1) ninguna transición está activada 48 Bloqueos Ejemplo: Línea de producción Sistema de producción Máquinas M1, M2; Transporte R1, R2; piezas tipo a, b Restricciones para la secuencia de operaciones 1. Pieza tipo a: Proceso en M1; transporte R M1→M2; Proceso en M2. 2. Pieza tipo b: Proceso en M2; transporte R M2→M1; Proceso en M1. 3. Pieza accede máquina si la máquina y un manipulador están libres 4. A la entrada de una pieza al sistema se le asigna un transporte que mantiene ocupado hasta la salida. 5. Concluida la primera operación, la pieza espera hasta que la 2ª máquina esté libre. Durante la espera la 1ª máquina está ocupada. 6. Cuando finaliza 2ª operación queda libre la 2ª máquina y transporte. 7. No puede haber más de una pieza tipo a o tipo b en el sistema 49 Bloqueos P7 T1 T4 2 T1 Inicio proceso de a en M1 P 1 T2 Inicio proceso de a en M2 T3 Final proceso de a en M2 P3 1 T2 T4 Inicio proceso de b en M2 P2 T5 Inicio proceso de b en M1 T3 T6 Final proceso de b en M1 P1 M1 procesa a P4 M2 procesa b P2 M2 procesa a P5 M1 procesa b P3 Plazas a libres P6 Plazas b libres P7 Unidades transporte libres P8 M2 libre P9 M1 libre Estado inicial: Máquinas, transportes y plazas libres (0, 0, 1, 0, 0, 1, 2, 1, 1) P4 P8 1 P9 1 T5 1 P6 P5 T6 50 Bloqueos T1 Inicio proceso de a en M1 T2 Inicio proceso de a en M2 T3 Final proceso de a en M2 T4 Inicio proceso de b en M2 T5 Inicio proceso de b en M1 T6 Final proceso de b en M1 El sistema se bloquea cuando M1 y M2 están efectuando la primera operación i el estado del sistema es (1, 0, 0, 1, 0, 0, 0, 0, 0) P7 T1 P1 P3 T2 P2 T3 T4 1 1 P8 P9 P4 T5 P6 P5 T6 51 Bloqueos Árbol de alcance P7 T1 T4 2 P1 P3 P4 P8 T2 1 1 P2 P9 1 T5 1 P6 P5 T3 T6 (0, 0, 1, 0, 0, 1, 2, 1, 1) T1 T4 (1, 0, 0, 0, 0, 1, 1, 1, 0) T2 (0, 1, 0, 0, 0, 1, 1, 0, 1) T3 (0, 0, 1, 0, 0, 1, 2, 1, 1) old T4 (0, 0, 1, 1, 0, 0, 1, 0, 1) T1 (1, 0, 0, 1, 0, 0, 0, 0, 0) dead (bloqueo) T5 (0, 0, 1, 0, 1, 0, 1, 1, 0) T6 (0, 0, 1, 0, 0, 1, 2, 1, 1) old 52 Bloqueos Una forma de evitar el bloqueo es incorporar la restricción de que antes de empezar la primera operación en una pieza deben estar las dos máquinas libres. P7 T1 2 El sistema procesa las piezas de una en una. Un transporte es suficiente. P1 P3 1 (0, 0, 1, 0, 0, 1, 2, 1, 1) (1, 0, 0, 0, 0, 1, 1, 1, 0) T2 (0, 1, 0, 0, 0, 1, 1, 0, 1) T3 (0, 0, 1, 0, 0, 1, 2, 1, 1) old P4 P8 T2 1 P2 T1 T4 T3 P9 1 T5 1 P6 P5 T6 T4 (0, 0, 1, 1, 0, 0, 1, 0, 1) T5 (0, 0, 1, 0, 1, 0, 1, 1, 0) T6 (0, 0, 1, 0, 0, 1, 2, 1, 1) old 53 Redes de Petri coloreadas Una Red de Petri coloreada, RdPC, está compuesta por 9 elementos RdPC = (Σ, P, T, A, N, C, G, E, I). Σ = {C1, C2, …, Cnc} conjunto finito de nc colores. Cada color corresponde a un atributo y tiene asociados m valores, Ci = {ci1, ci2, …, cim}. P = {P1, P2, …, Pnp} conjunto finito de np lugares T = {T1, T2, …, Tnt} conjunto finito de nt transiciones A = {A1, A2, …, Ana} conjunto finito de nt arcos N Función nodo: Definida sobre el conjunto de los arcos. Asocia a cada arco sus nodos terminales: origen y destino. C Función color: Definida sobre el conjunto de los lugares. Asocia a cada lugar un único color (una tipología de objeto). G Función guarda: Definida sobre el conjunto de las transiciones. Especifica las condiciones para desinhibir la transición. Se formaliza a través de expresiones booleanas. Gráficamente condición entre corchetes (al lado de la transición). 54 Redes de Petri coloreadas Una Red de Petri coloreada, RdPC, está compuesta por 9 elementos RdPC = (Σ, P, T, A, N, C, G, E, I). E Función entidad: Definida sobre el conjunto de los arcos. (Generalización de la función peso W de las RdP). En arco de entrada: especifica el número de marcas de cada tipo de objeto (valor de la variable color) que se necesitan para activar la transición. En arco de salida: especifica el número de marcas de cada tipo de las entidades de salida. Gráficamente nc1’(c1)+ nc2’(c2)+ … + ncm’(cm) (al lado arco) I Función de inicialización: Definida sobre el conjunto de los lugares. Especifica el número de marcas para cada valor de la variable color (el número de cada tipo de objeto). (Generalización de la asignación de marcas). Gráficamente nc1’(c1)+ nc2’(c2)+ … + ncm’(cm) (al lado lugar) 55 Redes de Petri coloreadas Una Red de Petri coloreada, RdPC, está compuesta por 9 elementos RdPC = (Σ, P, T, A, N, C, G, E, I). Adicionalmente es posible formalizar las prioridades entre transiciones mediante la función Π:T→N que asigna un entero no negativo de prioridad a cada transición. Para disparar una transición hace falta que no esté activada ninguna otra con mayor prioridad. Mismas técnicas de análisis que para las RdP. Las RdPC permiten formalizar las características de los objetos (color) y las condiciones para que un evento se produzca (G y E). Los modelos con RdPC son más compactos y más abstractos que con RdP. 56 Redes de Petri coloreadas Ejemplo: Dos tipos de piezas distintas a, b son procesadas por la misma máquina. RdP T1 Inicio proceso de a T2 Inicio proceso de b T3 Final proceso de a T4 Final proceso de b RdPC T1 Inicio proceso de a T2 Inicio proceso de b 57 Redes de Petri coloreadas Conjunto de colores Σ = {x, y, R} x = {1, 2} y = {0, 1} R=x y Transiciones T1 Inicio proceso T2 Fin proceso Lugares P1 Almacén entrada P2 Máquina libre P3 Máquina procesando P4 Almacén salida Color tipo pieza 1→a 2→b Color estado máquina 0→libre 1→ocupada Color máquina procesando (1, 1) máquina procesa pieza 1 (2, 1) máquina procesa pieza 2 58 Redes de Petri coloreadas Función guarda G(T1) = true G(T2) = true No hay restricciones Función entidad E(A1) = 1’(x) Una marca tipo pieza (puede ser a o b) E(A2) = 1’(0) Sólo se activa transición con y = 0 (maq. libre) E(A3) = 1’(x,1) Una máquina procesando pieza (a o b) E(A4) = 1’(x,1) Una máquina procesando pieza (a o b) E(A5) = 1’(x) Una marca tipo pieza E(A6) = 1’(0) Marca tipo estado máquina Función estado inicial I(P1) = 3’(1)+3’(2) I(P2) = 1’(0) Función nodo flechas 59 Redes de Petri coloreadas Ejemplo: Sistema de producción Sistema: 2 máq. erosión, 2 máq. mecanizado, 2 máq. Ensambladoras Proceso siguiendo secuencia: erosión, mecanizado y ensamblado. Conjunto de colores Σ = {x, z, R} x = {1, 2, 3, 4} Color cola Ci z = {1, 2, 3} Color tipo máquina R = z x Color estado máquina (1, 1); (2, 2); (3, 3) 60 Redes de Petri coloreadas Nodos lugar P = {P1, P2, p3} P1 Máq. libre (color z) P2 Piezas en cola (x) P3 Máq. proces. (R) Transiciones T1 Inicio proceso T2 Fin proceso Función guarda G(T1) = [x = z] La máquina z = 1 sólo puede procesar pieza de cola x = 1 G(T2) = true Función entidad E(A1) = 1’(x) Una pieza activa T1 E(A2) = 1’(x+1) Una pieza pasa a la cola siguiente E(A3) = E(A4) = 1’(z) E(A5) = E(A6) = 1’(z, x) 61 Modelando de sistemas: Redes de Petri Muchas gracias por su atención 62