(P/T, B&W)
1
Indice
Definición y Semántica.
Ejemplos.
Grafo de alcanzabilidad y Cubrimiento.
Propiedades.
Técnicas Lineales/Algebraicas.
Técnicas Estructurales.
Técnicas de Reducción.
Lenguajes definidos por una Red de Petri.
Semántica causal.
2
Definición
Grafo dirigido con nodos de tipo:
– “places” (estados) ó
– transiciones (eventos) Load r2 Load r1
PN=(P, T, A, m0)
Donde:
P : Conjunto finito no vacío de “Places”, estados. {p1,p2,…pm}
T : Conjunto finito no vacío de Transiciones. {t1, t2,…,tn}
A (PxT) (TxP) es un conjunto de arcos.
m0 : P {0, ℕ}, m0 Marcado inicial (número de tokens en cada
estado, el estado de la red).
5 donde PT= PT
Definición
Entidades derivadas:
I(tj) = •tj = {pi | (pi, tj) A}, places entrada a transiciones.
O(tj)= tj • = {pi | (tj,, pi) A}, places salida de transiciones.
•pj = {ti | (ti, pj) A}, transiciones entrada a places.
pj • = {ti | (pj,,ti) A}, transiciones salida de places.
Y y
yY
Y y
yY
6
Definición. Ejemplo
PN=(P, T, A, m0)
piI(tj), m(pi) 1
8
Semántica: regla de transición o
disparo
Ejemplos:
9
Semántica: regla de transición o
disparo
10
Semántica: regla de transición o
disparo
Load-ALU Load-ALU
Finish-ALU Finish-ALU
Reg3 Reg3
empty r3 empty r3
11 Estado = [0,1,0,1,0] Estado = [1,1,0,1,0]
Semántica
piI(tj), m(pi) 1
m’ = f(m, tj)
Transición fuente:
– Activada incondicionalmente Disparo
– Su disparo crea tokens y no
consume ninguno
Transición sumidero:
– Su disparo consume tokens pero no Disparo
los crea
Algunos Tipos de Redes
Una red es :
No es pura
No es simple
14
Enlaces Inhibidores.
p
Si (s, t) es un enlace inhibidor,
t q entonces t sólo está habilitada si
m(s) = 0.
15
Ejemplo.
Arrival
Averia
Queue
Process
En Reparación
Busy Avería-I
Avería-B
Arreglado
Finish
Exit
Idle
Borrado
16
Ejercicio
Finish-ALU
Reg3
empty r3
17
Solución
Load r2 Load r1
o Modificar la red
anterior, de tal
manera que sólo
sea posible cargar Reg2’ Reg2 Reg1’ Reg1
Load-
un registro si esta ALU
vacío. ALU ALU
Busy Idle
Finish-ALU
Reg3’ Reg3
empty r3
18
Ejercicio
Load r2 Load r1
o Modificar la red
anterior, de tal
manera que se
puedan realizar 2 Reg2’ Reg2 Reg1’ Reg1
Load-
tipos de operaciones ALU
binarias: suma y ALU ALU
Busy Idle
multiplicación. Se
seleccionarán una vez Finish-ALU
cargada la ALU.
Reg3’ Reg3
empty r3
19
Solución Load r2 Load r1
Reg1’ Reg1
PROD ADD
Reg3’ Reg3
empty r3
20 Set_MULT
None
Set_ADD
Modificar la red anterior, de tal
manera que se tenga que
seleccionar la operación a realizar
Ejercicio antes de cargar la ALU.
Load r2 Load r1
Reg1’ Reg1
PROD ADD
Reg3’ Reg3
Set_ADD
21 empty r3
Solución
Load r2 Load r1
PROD ADD
Reg3’ Reg3
Set_ADD
empty r3
22
Redes de Petri con Pesos.
Definición.
Una extensión muy popular es poner pesos en los arcos:
PN = (P, T, A, W, x0)
Donde:
P : Conjunto finito no vacío de “Places”, estados. {p1,p2,…pm}
T : Conjunto finito no vacío de Transiciones. {t1, t2,…,tn}
A (PxT) (TxP) es un conjunto de arcos.
W: A ℕ es una función de peso
m0 : P {0, ℕ}, m0 Marcado inicial (número de tokens en cada
estado, el estado de la red).
23
Pesos. Semántica.
Una transición está activada si todos los estados que están conectados
a ella mediante arcos de I tienen al menos el mismo número de tokens
que el peso del arco.
3
2 3 2
piI(tj), m(pi) w(pi, tj) , donde w(pi, tj) es el peso del arco de pi a tj
24
Pesos. Semántica.
f: P x T
f está definida para la Transición tj sii:
Queue Queue
2 2
Process Activada Process Disparo
Finish Finish
Exit Exit
Estado = Estado =
26 [2,0,1,0] [0,1,0,0]
Indice
Definición y Semántica.
Ejemplos.
Grafo de alcanzabilidad y Cubrimiento.
Propiedades.
Técnicas Lineales/Algebraicas.
Técnicas Estructurales.
Técnicas de Reducción.
Lenguajes definidos por una Red de Petri.
27 Semántica causal.
Ejemplos. Manufactura.
Operator 1 idle
M1 busy, M2 idle
Operator 1
M2 busy,
M1 idle
conveyor Operator 1
M3 idle
Job Output
Arrival conveyor
M1 busy,
Operator 2
M3 busy,
Operator 2
Operator 2 idle
28
Ejemplos. Máquinas de Estados.
1/1
0/0 0/0
S0 1/1 S1
S0
0
0
1 1
S1
29
Ejemplos. Pipeline.
Registro
Entrada k
Registro de Entrada lleno
k
Unidad k
ocupada
Unidad k Registro Registro
Salida k Salida k
vacío lleno
Registro de Salida
k Copiar k a k+1
Registro Registro
Registro de Entrada entrada k+1
entrada k+1
k+1 lleno
vacío
Unidad k+1
ocupada
Unidad k+1 Registro
Registro
Salida k+1 Salida k+1
vacío lleno
Registro de Salida
Copiar k+1 a k+2
30 k+1
Ejemplos. Sistemas Paralelos.
La cena de los filósofos.
E5
M5
C4
E3
M3
C5
M C3
2
E2
2
M
M1
E2
C1 E1 C2
31
Ejemplos. Reacciones Químicas.
H2C2O4 CO2
2
H2C2O4 2e-+2H++2CO2
2 H+ 2e-+2H++H2O2 2H2O
2
H2O2
2
2
e-
2
H2O
32
Ejercicio (entregar)
Realizar una red de petri de un sistema de componentes ejecutándose en paralelo.
Hay dos tipos de componentes, el primero tiene como interfaz los métodos A, B y D. El segundo
tiene como interfaz el método C. Supón una instancia de cada tipo.
Los métodos de tipo B y C acceden a un disco duro (para escribir), de acceso exclusivo y
compartido por todas las instancias de componentes.
El método B llama al método C (de manera asíncrona), antes de escribir en el disco duro.
El método C llama al método D de manera síncrona antes de terminar de usar el disco duro.
Asume un estado inicial en la que la instancia del componente 1 tiene una llamada al método A.
33
Solución
Componente 1
Componente 2
Id2
Id1 A B D C
CWait
BWait DOut
HDId
Definición y Semántica.
Ejemplos.
Grafo de alcanzabilidad y Cubrimiento.
Propiedades.
Técnicas Lineales/Algebraicas.
Técnicas Estructurales.
Técnicas de Reducción.
Semántica causal.
35
Alcanzabilidad.
t
m m’
La transición t se dispara cambiando el marcado
m [t> m’ de m a m’
36
Grafo de Alcanzabilidad
Grafo en el que los nodos representan marcados.
Los arcos son las transiciones que al dispararse cambian el estado de la red.
Disparo
t1 Disparo t3
[1 0 1 0 1]
t2 t4
Semáforo
t1 t3
2. Para cada nuevo nodo m, evaluar f(m, tj) para todo tj:
2.1 Si f(m, tj) está definida para algún tj, entonces crear un nuevo
nodo m’=f(m, tj)
2.1.1 Si hay algún nodo n | m’ = n, entonces m’ := n
si no, añadir m’ al grafo.
2.1.2 Añadir el enlace (m, tj, m’) al grafo.
38
Grafo de Alcanzabilidad.
Ejercicio.
prod cons
empty
Ready
Ready deliver read consume
Produce full
pwait cwait
39
Grafo de Alcanzabilidad.
Solución.
Ready
produce
[prod, empty, cons] Ready
deliver consume
P Process
PW Process
r2p
r2p
sprint
sprint p
p
printer eprint HDisks
eprint
W Process
r2w r2w
swrite swrite
w w
ewrite
ewrite
41
Ejercicio
From east
East
From
west West
43
Grafo de Cubrimiento.
Dominancia de nodos:
Sean m = [m(p1), ..., m(pn)] && o = [o(p1), ..., o(pn)]
m >d o sii:
w+k = w; w-k = w
44
Grafo de Cubrimiento.
Algoritmo.
1. Inicializar m = m0 (estado inicial)
2. Para cada nuevo nodo m, evaluar f(m, tj) para todo tj:
2.1 Si f(m, tj) está definida para algún tj, entonces obtener
m’=f(m, tj)
2.1.1 Si m(pi)=w para algún i, entonces hacer m’(pi)=w
2.1.2 Si hay algún nodo o en el camino desde m0 a m’ tal
que m’ >d o, entonces hacer m’(pi) = w para todo pi |
m’(pi) > o(pi).
2.1.3 Si hay algún nodo o | m’ = o, entonces m’ := o
si no, añadir m’ al grafo.
2.1.4 Añadir el enlace (m, tj, m’) al grafo de cubrimiento.
45 Nota: Si m>d o entonces para todo j si la función f(o, tj) está definida entonces f(m,
Grafo de Cubrimiento.
(1 0 0 0)
p2
t1
t2
p1
t1
p4
p3 t3
46
Grafo de Cubrimiento.
(1 0 0 0)
p2
t1
(0 1 1 0)
t2
t2 t3
p1
t1
p4
p3 t3
47
Grafo de Cubrimiento.
(1 0 0 0)
p2
t1
(0 1 1 0)
t2
t2 t3
p1
t1 (1 0 w 0)
p4
p3 t3
48
Grafo de Cubrimiento.
(1 0 0 0)
p2
t1
(0 1 1 0)
t2
t2 t3
p1
t1 (1 0 w 0)
p4 (0 0 1 1)
p3 t3
49
Grafo de Cubrimiento.
(1 0 0 0)
t1
p2
(0 1 1 0)
t2 t2 t3
(1 0 w 0) (0 0 1 1)
p1 t1
t1 t2
p4
p3 t3 (0 1 w 0)
t3
(0 0 w 1)
50
Grafo de Cubrimiento.
p1 t1
p3
t2
51
Grafo de Cubrimiento. Solución.
t2
(1 0 w)
t2 t1
(0 1 w)
52
Grafo de Cubrimiento.
(1 0 0)
p2
t1
p1 t1
(0 1 0)
p3 t2
2
t2
(1 0 w)
w representa el conjunto {2, 4, 6, ...} de marcados
alcanzables para el estado p3. t2 t1
p1
t1
p3
p2
t2 t4
t3 p4
54
Solución 1000
t1
0110
t2 t4
0001 0200
p1
t3
t1 100
p3 t1 t4
p2
010 10
t2 t4 t1 t4
t2 t4
001 00
t3 t4
p4 t2
t3
0
t4, t2
t3
t1, t2, t3, t4
55
Grafo de Alcanzabilidad/Cubrimiento y
Concurrencia.
2 4 d 2, 4
b c
b-c y c-b son
b c 3, 4 2, 5 dos
entrelazados.
c b
3 5
d
3, 5
56
Grafo de Alcanzabilidad/Cubrimiento y
Concurrencia.
2 4 d 2, 4, 6
b c
6
b c 3, 4, 6 2, 5, 6
c b
3 5
d
3, 5, 6
57
Indice
Definición y Semántica.
Ejemplos.
Grafo de alcanzabilidad y Cubrimiento.
Propiedades.
Técnicas Lineales/Algebraicas.
Técnicas Estructurales.
Técnicas de Reducción.
Lenguajes definidos por una Red de Petri.
Semántica causal.
58
Propiedades
Capacidad.
Acotación.
Reversibilidad.
Conservación.
Deadlock / Liveness.
Cubrimiento.
Persistencia.
59
Propiedades. Capacidad.
Arrival
Queue
Capacidad infinita
Process
Exit
60
Propiedades. Capacidad.
Arrival
Queue
Queremos Capacidad K (ej.5)
(número limitado en la cola de clientes)
Process
Process-2 2
oq
62
Ejercicios. Capacidad.
M1’ M1 M2’
Process-2
2 2
oq’
oq
63
Propiedades. Capacidad.
Capacidad “débil”: Añadir una función k: PN (cota).
K=3
64 Complemento débil
Propiedades. Capacidad.
Capacidad “fuerte”: Añadir una función k: PN (cota).
K=3
65 Complemento fuerte
Propiedades. Capacidad.
p
p
t q
t q 3
3
k=3
s’
s
66
Propiedades. Acotación.
Prueba:
() El número máximo de tokens en cada place es su cota.
() Si b(s) es la cota de s, entonces el place puede estar como máximo
en b(s)+1 estados.
Por tanto el número de marcados alcanzables no puede superar:
(b(s1)+1) (b(s2)+1) ... (b(sn)+1), donde {s1,...,sn} es el conjunto
finito de places.
68
Propiedades. Reversibilidad.
Una red es reversible si m0 es alcanzable desde cualquier otro
marcado alcanzable.
t2 t4 t2
[0100] [1000]
t1
t3
t3 t4
[0010] [0001]
t1 t5
t5
69
Ejercicios. Reversibilidad.
¿Es reversible esta red?
E2
med2 Orden: E1 M1 E2 M2 C1 C2
med2
M1
[0,1,0,1,1,1]
C1 C2 med1
eat1 eat1 eat2
E1
[1,0,0,1,0,0] [0,1,1,0,0,0]
70 med1
Propiedades. Conservación.
En un modelo, un token puede representar un recurso, un
proceso...
n
i 1
i m( pi ) cte.
= [ 0, 1, 1, 0] , m(Busy)+m(Idle) = 1
M2
eat2
E2
med2
M1
C1 C2
eat1
E1
73 med1
Ejercicios. Conservación.
¿Es conservativa esta red?
E2
Orden: E1 M1 E2 M2 C1 C2
med2
med2
[0,1,0,1,1,1]
M1 med1
eat1 eat2
C1 C2
eat1 [1,0,0,1,0,0] [0,1,1,0,0,0]
E1
74 med1
Propiedades. Deadlock.
Dado un estado inicial m0, una transición de una Red de Petri está:
Viva a nivel L1: Si hay una secuencia desde m0 tal que la transición
puede dispararse al menos una vez.
Viva a nivel L4: Si la transición está viva a nivel L1 para cada estado
77 alcanzable desde m0.
Propiedades. Liveness.
t3 t2 está muerta.
t3
[1, 0]
t1 t2
t1
[0, 1]
p2
78
Propiedades. Cubrimiento.
Dada una red de Petri en estado m0, un estado y puede ser cubierto
si hay una secuencia de transiciones desde m0 tal que en algún
momento la red llega a un estado m, tal que:
79
Propiedades. Persistencia.
81
Indice
Definición y Semántica.
Ejemplos.
Grafo de alcanzabilidad y Cubrimiento.
Propiedades.
Técnicas Lineales/Algebraicas.
Invariantes
Técnicas Estructurales.
Técnicas de Reducción.
Lenguajes definidos por una Red de Petri.
82 Semántica causal.
Técnicas Lineales/Algebraicas
s3 t3
s1
t5
t1 t2 s4
t4
s2
s5
m0=[4, 0, 0, 0, 1]
t2 = [-1, 1, 1, 0, -1]
m0 [t2> m1 => m0+t2=m1 = [3, 1, 1, 0, 0]
83
Representación Matricial de una
Red de Petri
s3 t3
s1
t5
t1 t2 s4
t4
s2 s1 s2 s3 s4 s5
s5 t1 1 -1 0 0 0
t2 -1 1 1 0 -1
A= t3 0 0 -1 1 0
t4 0 0 0 -1 1
t5 0 0 1 -1 0
84
Representación Matricial de una
Red de Petri
x’ = x + uA
85
Representación Matricial de una
Red de Petri
s3 t3
s1
t5
t1 t2 s4
t4
s2 s1 s2 s3 s4 s5
s5 t1 1 -1 0 0 0
t2 -1 1 1 0 -1
[4,0,0,0,1]+[0,1,0,0,0]A = A= t3 0 0 -1 1 0
[3,1,1,0,0] t4 0 0 0 -1 1
t5 0 0 1 -1 0
86
Representación Matricial de una
Red de Petri. Ejercicio.
Calcula la Matriz de la siguiente red
p1
t1
p3
p2
t2 t4
p4
t3
87
Representación Matricial de una
Red de Petri. Ejercicio.
Calcula la Matriz de la siguiente red
p1
t1
p3 p1 p2 p3 p4
p2 t1 -1 1 1 0
t2 t4 A= t2 0 -1 -1 1
t3 1 0 1 -1
p4
t4 0 1 -1 0
t3
88
Representación Matricial de una
Red de Petri
89
Representación Matricial de una
Red de Petri
m’ = m+ p()A
Por tanto, un marcado m’ es alcanzable desde m si
m’ = m+ xA
92
Conservación
Una red es conservativa respecto a = [1, 2, ..., n ] sii AT=[0,...,0]
Dem:
) m0T = m’T m’ | m [>m’
m’T = m0T
93
Conservación. Ejercicio (1)
E2
med2
M1
C1 C2
eat1
E1
94 med1
Conservación. Ejercicio (1)
M2 Respecto a =[1, 1, 1, 1, 0, 0]
eat2
E1 M1 E2 M2 C1 C2
E2 Eat2 0 0 1 -1 –1 -1
Med2 0 0 -1 1 1 1
med2 Eat1 1 -1 0 0 –1 -1
Med1 -1 1 0 0 1 1
M1
C1 C2 AT= [0, 0, 0, 0]
eat1
E1
95 med1
Conservación. Ejercicio (1)
Calcula las invariantes en places de esta red
p1 p1 p2 p3 p4
t1 -1 1 1 0
t1 A= t2 0 -1 -1 1
p3
t3 1 0 0 -1
p2
t4 0 1 -1 0
t2 t4
p4
t3
96
Conservación. Ejercicio (1)
t1 t2 t3 t4
p1 -1 0 1 0
AT= p2 1 -1 0 1 AT=0
p3 1 -1 0 -1
p4 0 1 -1 0
-1 + 2 + 3 = 0
- 2 – 3 + 4 = 0 1 = 4 = 22; 2 = 3
1 - 4 = 0 = [2 1 1 2] , ...
+ 2 – 3 = 0
97
Ejercicio (Entregar).
98