Está en la página 1de 68

Sistemas II

CARRERA DE INGENIERÍA DE SISTEMAS


Unidad 7:
REDES DE PETRI
¿Qué son las redes de Petri? 3

Es un multigrafo bipartito dirigido G = (V, E)


cuyos vértices se pueden separar en dos conjuntos
disjuntos V1 y V2, es decir, tal que se cumple:
• V1 U V2 = V
• V1 ∩ V2 = ɸ

Las redes de Petri (PN) son una herramienta de


modelado que captura la dinámica operacional
de los sistemas a eventos discretos.

Representación gráfica formal del flujo de


actividades en sistemas complejos.

Un lenguaje de modelado.
Características de las redes de Petri 4

Soportan la simulación del sistema

Soportan modularidad y abstracción

Soportan el análisis formal para propiedades, tales como:

Acotamiento,
Dinamicidad
alcanzabilidad, etc.
Adecuadas para modelar 5

Secuencialidad
Concurrencia
Sincronización
Conflicto
Precedencia
Prioridad
Aplicaciones 6

— Sistemas de manufactura
— utilizado para representar líneas de producción,
— líneas de ensamble automatizadas,
— sistema de producción automotriz,
— sistemas de manufactura flexible,
— sistemas just-in-time,
— Redes de computadoras
— Diseño de software
— Modelado de sistemas concurrentes y/o distribuidos
— Modelado y análisis de protocolos de comunicación
— Topología de redes
Componentes de Redes de Petri 7

Consisten de tres tipos de objetos:

1. Lugares, nodos o places.

2. Transiciones.

3. Arcos dirigidos u orientados.

4. Marcas o tokens en los lugares

Un lugar se puede unir mediante un


arco con una transición, y una
transición se puede unir con un lugar
también mediante un arco, pero
nunca se podrán unir mediante un
arco, dos lugares o dos transiciones.
8

lugar

transicion
arco de entrada

arco de salida

Una marca
Redes de Petri - Definición 9
Una Red de Petri es un multigrafo bipartito dirigido representado
por una cuádrupla PN = <P, T, I, O>

donde

P = {p1, p2, ..., pn} conjunto finito de lugares (places), n ≥ 0

T = {t1, t2, ..., tm} conjunto finito de transiciones, m ≥ 0

I: P∞ → T P∞ denota los multisets o bolsas de P.

pi ∈ I(tj) si existe un arco de pi a tj

O: T → P∞

pi ∈ O(tj) si existe un arco de tj a pi


Interpretacion de una red de Petri 10

lugar = estado

marca

Estado activo

transicion
=
un evento
Ejemplo 1 11

p1 p2
P = {p1, p2, p3, p4, p5, p6, p7}
T = {t1, t2, t3, t4, t5, t6}
t1 t2 I(t1) = {p1} O(t1) = {p4}
p3
p4 p5 I(t2) = {p2} O(t2) = {p5}
I(t3) = {p3, p4} O(t3) = {p6}

t3 t4 I(t4) = {p3, p5} O(t4) = {p7}


p6 p7 I(t5) = {p6} O(t5) = {p1, p3}
I(t6) = {p7} O(t6) = {p2, p3}

t5 t6
Ejemplo 2 12

p1 p2

t1

P = {p1, p2}
T = {t1}
I(t1) = {p1, p1}
O(t1) = {p2, p2, p2}
Marcación y ejecución de RdP 13

Una red de Petri recibe su estado marcando sus places.


Una marcación (marking) consiste en asignar un número entero no
negativo de tokens a cada place.
En las redes tradicionales de Petri los tokens son indistinguibles y no
representan información específica.
En la actualidad pueden significar una acción, materia prima en
transformación, un elemento cualquiera que cambia de estado,
lugar, tiempo y/o forma.

Marcación de una Red de Petri


RdP = <P, T, I, O> es una función:

M: P → {0, 1, 2, ...}

que asigna un número entero no negativo de tokens a cada place de la red.


Ejemplo 3 14
Un lugar P es un lugar de entrada de una transición T si existe
un arco orientado que conecta este lugar a la transición. Un
lugar P es un lugar de salida de una transición T si existe un
arco orientado que conecta esta transición al lugar.

Una transición está activada si están marcados todos sus lugares


de entrada. Una transición activada puede ser disparada si se
verifica el evento asociado a la transición. El disparo de una
transición supondrá quitar marcas según el peso de los arcos de
cada uno de sus lugares de entrada y añadir marcas a todos sus
lugares de salida, según el peso del arco de salida.

Cada lugar puede tener una marca (token) que indica


cuando la condición asociada con este lugar es falsa o
verdadera. El marcado de una red de Petri es denotado por
un vector M(p) que representa el número de marcas en los
lugares (places) correspondientes.
En el ejemplo M=[1,0,0,0,0].
15
Si un arco va desde
un lugar (place) a
una transición, al
lugar se llama input
p1 •• p2 place (lugar de
entrada) de la
t1 transición.
Si un arco va desde
una transición a un
lugar (place), al lugar
M(p1) = 2 M(p2) = 0 se llama output place
(lugar de salida) de la
M = (2,0) transición.
Ejemplo 4 16

Un lector en una
esperando biblioteca:
> esperando,
start_reading > leyendo

leyendo

stop_reading
17

Un lector en una
esperando biblioteca:
> esperando,
start_reading > leyendo

leyendo

stop_reading
18

Un lector en una
esperando biblioteca:
> esperando,
strt_reading > leyendo

leyendo

stop_reading
19

Un lector en una
esperando biblioteca:
> esperando,
strt_reading > leyendo

leyendo

stop_reading
20

Un lector en una
esperando biblioteca:
> esperando,
strt_reading > leyendo

leyendo

stop_reading
Ejercicio 21

Dos lectores en una


esperando biblioteca:
> esperando,
strt_reading > leyendo

leyendo

stop_reading
Red de Petri marcada 22

Una Red de Petri marcada

M = <RdP, M>

es un una estructura de Red de Petri


RdP = <P, T, I, O> y una de marking M.
Ejemplo 5 23
p1 p2
• • P = {p1, p2, p3, p4, p5, p6, p7}
T = {t1, t2, t3, t4, t5, t6}
t1 t2
p3 I(t1) = {p1} O(t1) = {p4}
p4 p5
I(t2) = {p2} O(t2) = {p5}

I(t3) = {p3, p4} O(t3) = {p6}

t3 t4 I(t4) = {p3, p5} O(t4) = {p7}


p6 p7 I(t5) = {p6} O(t5) = {p1, p3}
I(t6) = {p7} O(t6) = {p2, p3}

t5 t6
M = (1, 1, 1, 0, 0, 0, 0)
Ejemplo 6
Movimiento del carrito, estando en reposo en el extremo izquierdo se pone en marcha mediante un botón
pulsador M, hacia la derecha. Cuando toca el final de carrera B invierte su marcha hacia la izquierda. Cuando
24
toca el final de carrera A se para, esperando una nueva orden de marcha.

La implementación programada es:

Ejemplo. Obtenga la red de Petri para el problema de los dos carritos.


Solución

Ejercicio. Obtenga las redes de Petri para tres y cuatro carritos.


Ejecución de una Red de Petri 25

Durante la ejecución de la red el número y posición de los


tokens puede variar dando lugar a una nueva marcación.
Cada marcación corresponde a un estado de la red.
Reglas de Ejecución 26
1. Una transición puede disparar si está
habilitada.
2. Una transición está habilitada si en cada
uno de sus input places existen al menos
tantos tokens como arcos existan desde el
place a la transición.

t1 t1

p1 • p2 p1 •• p2

t1 no habilitada t1 habilitada,
puede disparar
Reglas de Ejecución 27
3. Cuando una transición dispara, en cada uno
de sus input places se remueven tantos tokens
como arcos existan desde el input place hacia
la transición, y en cada uno de los output
places de la transición se insertan tantos tokens
como arcos existan desde la transición al output
place.
t1 t1
p1 ••• p2 p1 • ••• p2
Disparó t1

• p4
p3
p4
p3
Reglas de Ejecución 28

Formalmente, una transición t ∈ T está habilitada en


una red de Petri PN = <P, T, I, O> sii

∀p ∈ I(t) : M(p) ≥ #(p, I(t))

Donde:
#(p, I(t)) es el número de arcos desde p a t.
Reglas de Ejecución 29

Formalmente, el disparo de una transición t ∈ T con un marking M


resulta en un nuevo marking M’ definido por:
∀p ∈ P : M’(p) = M(p) − #(p, I(t)) + #(p, O(t))

Donde:

#(p, I(t)) es el número de arcos desde p a t.


#(p, O(t)) es el número de arcos desde t a p.
Ejemplo 7 30
p1 p2

• •
M0 = (1, 1, 1, 0, 0, 0, 0)
t1 t2
p3
p4 p5
• t1 y t2
están
t3 t4
p6 p7 habilitadas.

t5 t6
Ejecución de una Red de Petri 31
p1 p2

M0 = (1, 1, 1, 0, 0, 0, 0)
t1 t2
p3 M1 = (0, 1, 1, 1, 0, 0, 0)
p4 p5
• •
•secuencia de
disparos: (t1)
t3 t4
p6 p7 •t2 y t3 quedaron
habilitadas.

t5 t6
Ejecución de una Red de Petri
32
p1 p2

M0 = (1, 1, 1, 0, 0, 0, 0)
t1 t2
p3 M1 = (0, 1, 1, 1, 0, 0, 0)
p4 p5
• • • M2 = (0, 0, 1, 1, 1, 0, 0)

t3 t4
p6 p7 •secuencia de
disparos: (t1,t2)
•t3 y t4 quedaron
t5 t6 habilitadas.
Ejecución de una Red de Petri 33
p1 p2

M0 = (1, 1, 1, 0, 0, 0, 0)
t1 t2
p3 M1 = (0, 1, 1, 1, 0, 0, 0)
p4 p5
• M2 = (0, 0, 1, 1, 1, 0, 0)
M3 = (0, 0, 0, 1, 0, 0, 1)
t3 t4
p6 p7
• •secuencia de
disparos: (t1,t2,t4)
t5 t6 •t6 quedó
habilitada.
Ejecución de una Red de Petri 34
p1 p2
• M0 = (1, 1, 1, 0, 0, 0, 0)
M1 = (0, 1, 1, 1, 0, 0, 0)
t1 t2
p3 M2 = (0, 0, 1, 1, 1, 0, 0)
p4 p5
• • M3 = (0, 0, 0, 1, 0, 0, 1)
M4 = (0, 1, 1, 1, 0, 0, 0)
t3 t4
p6 p7
•secuencia de
disparos: (t1,t2,t4,t6)
t5 t6 •t2 y t3 quedaron
habilitadas. ...
Ejecución de la Red de Petri 35

La secuencia de disparos dada es una de las posibles secuencias,


no la única.
El modelo es no determinístico, en el sentido que dado un marking
inicial M0 distintas evoluciones de la red son posibles.

Una transición, usualmente, modela un evento o acción.


El disparo de la transición representa la ocurrencia de tal evento o
la ejecución de la acción.
Una transición está habilitada, si se satisfacen las condiciones
necesarias para la ocurrencia de tal evento o acción.
La presencia de tokens en los input places modelan tales
condiciones.
Ejemplo 8 36
p1 p2
• •
t1 t2
p3 Eventos del
p4 p5 proceso 1

t3 t4
p6 p7
t1 = proceso 1 solicita recurso
t3 = proceso 1 toma recurso
t5 t6
t5 = proceso 1 libera recurso
Modelado con Redes de Petri 37
p1 p2
• •
t1 t2
p3 Eventos del
p4 p5
• proceso 2

t3 t4
p6 p7

t2 = proceso 2 solicita recurso


t5 t6 t4 = proceso 2 toma recurso
t6 = proceso 2 libera recurso
Modelado con Redes de Petri 38
p1 p2
• •
t1 t2
p3 p3 representa la
p4 p5 disponibilidad o
• no de un recurso.

t3 t4
p6 p7

t5 t6
Modelado con Redes de Petri
39
Transiciones concurrentes
p1 p2
• •
t1 t2
p3
p4 p5

t3 t4 t1 y t2 habilitadas
p6 p7 y el disparo de una
no deshabilita la
otra =>
t5 t6 concurrentes
Modelado con Redes de Petri
40
Transiciones en conflicto
p1 p2

t1 t2 t3 y t4 habilitadas y
p3
p4 p5 el disparo de una
• • • deshabilita la otra
=> en conflicto
t3 t4
p6 p7

t5 t6
Modelado con Redes de Petri Starvation
41
p1 p2
• Secuencia de
disparos: (t2)
t1 t2
p3
p4 p5
• •

t3 t4
p6 p7

t5 t6
Modelado con Redes de Petri Starvation
42
p1 p2

secuencia de
t1 t2 disparos: (t2,t4)
p3
p4 p5

t3 t4
p6 p7

t5 t6
Modelado con Redes de Petri Starvation
43
p1 p2
• •
t1 t2
p3
p4 p5

t3 t4
p6 p7 secuencia de
disparos: (t2,t4,t6)

t5 t6
Modelado con Redes de Petri Starvation
44
p1 p2
• secuencia de
disparos:
t1 t2
p3 (t2,t4,t6,t2)
p4 p5
• •

t3 t4
p6 p7

t5 t6
Modelado con Redes de Petri
45
Starvation
p1 p2
• secuencia de
disparos:
t1 t2
p3 (t2,t4,t6,t2,t4)
p4 p5

t3 t4
p6 p7

t5 t6
Modelado con Redes de Petri
46
Starvation
p1 p2
• • secuencia de disparos:

t1 t2
(t2,t4,t6,t2,t4,t6,...)
p3
p4 p5 ⇓
• starvation de proceso 1

t3 t4
p6 p7

t5 t6
Ejemplo 9 47

p1 p2
• •
t1: proc1 solicita ambos recursos
t1 p3 t2
p4 t3’: proc1 toma un recurso
•• p5
t3’’: proc1 toma otro recurso

t3’ t4’ t5: proc1 libera ambos recursos


p6 p7 t2: proc2 solicta ambos recursos
t4’: proc2 toma un recurso

t3’’ t4’’ t4’’: proc2 toma otro recurso


p8 p9 t6: proc2 libera ambos recursos

t5 t6
Modelado con Redes de Petri
48
Una posible ejecución sin deadlock
p1 p2

t1 p3 t2
p4 •• p5 secuencia de
• disparos:
t3’ t4’ (t1)
p6 p7

t3’’ t4’’
p8 p9

t5 t6
Modelado con Redes de Petri
49
Una posible ejecución sin deadlock
p1 p2

t1 p3 t2
p4 • p5 secuencia de
disparos:
t3’ t4’ (t1, t3’)
p6 p7

t3’’ t4’’
p8 p9

t5 t6
Modelado con Redes de Petri
50
Una posible ejecución sin deadlock
p1 p2

t1 p3 t2
p4 p5 secuencia de
disparos:
t3’ t4’ (t1, t3’, t3’’)
p6 p7

t3’’ t4’’
p8 p9

t5 t6
Modelado con Redes de Petri
51
Una posible ejecución sin deadlock
p1 p2
• •
t1 p3 t2
p4 •• p5 secuencia de
disparos:
t3’ t4’ (t1, t3’, t3’’, t5)
p6 p7

t3’’ t4’’
p8 p9

t5 t6
Modelado con Redes de Petri
52
Una posible ejecución con deadlock
p1 p2

t1 p3 t2
p4 •• p5 secuencia de
• disparos:
t3’ t4’ (t1)
p6 p7

t3’’ t4’’
p8 p9

t5 t6
Modelado con Redes de Petri
53
Una posible ejecución con deadlock
p1 p2

t1 p3 t2
p4 •• p5 secuencia de
• • disparos:
t3’ t4’ (t1, t2)
p6 p7

t3’’ t4’’
p8 p9

t5 t6
Modelado con Redes de Petri
54
Una posible ejecución con deadlock
p1 p2

t1 p3 t2
p4 • p5 secuencia de
• disparos:
t3’ t4’ (t1, t2, t3’)
p6 p7

t3’’ t4’’
p8 p9

t5 t6
Modelado con Redes de Petri
55
Una posible ejecución con deadlock
p1 p2

t1 p3 t2
p4 p5 secuencia de
disparos:
t3’ t4’ (t1, t2, t3’, t4’)
p6 p7
• • deadlock
(ninguno de los
t3’’ t4’’
p8 p9
procesos puede
continuar)
t5 t6
Ejemplo 10. Brazo Robótico 56

El estado inicial del sistema modelado por


la RdP de la figura, indica que existe una
pieza en la banda de entrada (p1), que el
brazo de robot está listo para tomar
alguna pieza (p2) y que la máquina de
proceso también está disponible (p4). El
marcado de este estado sería
M0 = (1 1 0 1 0 0 0)
Ejemplo 11. Movimiento de dos trenes 57
por una vía común
Ejemplo 12. Responde 58
Considerar la Red de Petri de la figura, con el estado inicial Eo = [1,1,0,2]

a) Después de que la RdP. se ‘dispara’ dos veces (se producen dos transiciones), buscar un estado en el que todas
las transiciones estén ‘muertas’.

b) Suponer que se aplica la siguiente secuencia de disparo (t3, t1, t3, t1,.....). Demostrar que no se puede realizar
dicha secuencia de una manera indefinida.

c) Buscar el estado Ex resultante de la secuencia de disparo (t1, t2, t3, t3 , t3).


Ejemplo 13. Consumidor - Productor 59
Ejemplo 13. Consumidor - Productor 60

(a) proceso productor; (b) proceso consumidor; (c) buffer.

Suponemos un buffer con capacidad para 1 mensaje.


RdP para Productor-Consumidor
Primera aproximación 61

write consume

p1
• p2 c1
• c2

produce read 1
read

0 •

write
RdP para Productor-Consumidor
62
consume

c1 • c2
read

0
• 1
write

p1 • p2

produce
Limitaciones de las Redes de Petri 63
tradicionales y algunas extensiones

Limitación: los tokens son anónimos.


p.e. la presencia de un token en un place puede denotar la
presencia de un mensaje en un buffer pero no lo que el
mensaje dice.
Extensión: asignación de valores a tokens más asociación
de predicados y acciones a las transiciones.
p2
p1 7 64
3 7 4
4
p3

p1 < p2 p2 = p3
t1 t2
p4:=p2+p1 p4:=p3-p2

p4 p5 p5:= p2+p3

•t1 habilitada: duplas ready: (3,7) (3,4)


elecciones no determinísticas
•t2 habilitada: duplas ready: (4, 4)
p2
p1 1 65
4
4
p3

p1 < p2 p2 = p3
t1 t2
p4:=p2+p1 p4:=p3-p2

p4 p5 p5:= p2+p3
10

sec. de disparos: (t1)


t1 deshabilitada.
t2 habilitada: tuplas ready: (4, 4)
p2
p1 1 66
p3

p1 < p2 p2 = p3
t1 t2
p4:=p2+p1 p4:=p3-p2

p4 p5 p5:= p2+p3
10 8
0

sec. de disparos: (t1, t2)


Limitaciones de las Redes de Petri 67
tradicionales y algunas extensiones

Limitación: no se pueden fijar políticas de selección


cuando varias transiciones están habilitadas.
Extensión: asignación estática o dinámica de prioridades
a las transiciones.
p2 68
p1
• • • p3

prioridad = 1 t1 t2 prioridad = 2

p4 p5

t1 y t2 habilitadas, dispara t2 porque tiene mayor


prioridad.

También podría gustarte