Anda di halaman 1dari 98

Redes de Petri básicas

(P/T, B&W)

Juan de Lara con modificaciones


de Gonzalo Martínez Muñoz

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

 Los nodos de distinto tipo se conectan Reg2 Reg1


mediante arcos.
– No hay conectividad entre nodos de igual Load-ALU
tipo
ALU ALU
Busy Idle
 Los arcos pueden tener asociado un peso
(1 por defecto). Finish-ALU

 Los estados pueden contener un número Reg3


arbitrario de tokens (círculos en negro).
empty r3
3
Definición
Algunas interpretaciones típicas de estados y transiciones.

Estados de Entrada Transición Estados de Salida


Pre-Condiciones Evento Post-Condiciones

Datos de Entrada Paso de Datos de Salida


Computación
Recursos Necesarios Tarea Recursos Liberados

Buffer Procesador Buffer

Condiciones Clausula en Conclusiones


lógica
4
Definición
(Redes de Petri ordinaria)

Una red de Petri marcada es una tupla:

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 PT= PT
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
 yY

Y  y 
 yY

6
Definición. Ejemplo
PN=(P, T, A, m0)

P = {Reg1, Reg2, ALUBusy, ALUIdle, Reg3}, Load r2 Load r1

T = {Load r1, Load r2, Load-ALU, Finish-ALU,


Reg2 Reg1
empty r3}
Load-ALU
A = {(Load r2, Reg2), (Load r1, Reg1), (Reg1,
Load-ALU), (Reg1, Load-ALU), (Load-ALU, ALU ALU ALU
Idle), (Load-ALU, ALU Busy), (ALU Idle, Finish- Busy Idle
ALU), (ALU Busy, Finish-ALU), (Finish-ALU,
Reg3), (Reg3, emptty r3)} Finish-ALU

m0(Reg1)=1, m0(Reg2) = 9, m0(Reg3) = 0, Reg3


m0(ALU Busy)= 0, m0(ALU Idle) = 0 empty r3
7 Vector de estado m = [0, 1, 0, 1, 0]
Semántica: regla de transición o
disparo

1. Una transición t está activada si todos los estados p que


están conectados a ella mediante arcos de I tienen al menos
un token.

Es decir, una transición tj está activada si:

piI(tj), m(pi)  1

8
Semántica: regla de transición o
disparo

 Ejemplos:

Desactivada Activada Activada Activada

9
Semántica: regla de transición o
disparo

2. Una transición puede o no dispararse.

3. El disparo de una transición activada produce:

 A los estados pi que pertenecen a I de t se les


resta un token.

 A los estados pi que pertenecen a O de t se les


suma un token.

10
Semántica: regla de transición o
disparo

Activada Activada Disparo


Load r2 Load r1 Load r2 Load r1

Reg2 Reg1 Reg2 Reg1

Load-ALU Load-ALU

ALU ALU ALU ALU


Busy Idle Busy Idle

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

 Función de Transición de estados. f: P x T  

 f está definida para la Transición tj sii:

piI(tj), m(pi)  1

 si tj está activada, calcular el nuevo marcado de pi  I(tj)  O(tj)

 m’ = f(m, tj)

m(pi) si pi  I(tj)  pi  O(tj)

12  f(m, tj) = m(pi) - 1 si pi  I(tj)  pi  O(tj)


Transiciones especiales

 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 :

 pura sii: x  PT [x  x = ] No hay auto-bucles

 simple sii: x, y PT [x = y && x = y  x = y]

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

• Modificar la red Load r2 Load r1


anterior, de tal
manera que sólo Reg2 Reg1
sea posible cargar
Load-ALU
un registro si esta
vacío. ALU ALU
Busy Idle

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

Reg2’ Reg2 Load-


ALU

Mult ALU ALU Suma


Busy Idle

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

Set_MULT Reg2’ Reg2 Load-


ALU
ALU ALU
None Mult Busy Idle Suma

PROD ADD

Reg3’ Reg3
Set_ADD
21 empty r3
Solución
Load r2 Load r1

OP Sel Reg2’ Reg1’ Reg1

Set_MULT Reg2 Load-


ALU
None ALU ALU
Mult Busy Idle Suma

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

Activada Desactivada Activada


Una transición tj está activada si:

piI(tj), m(pi)  w(pi, tj) , donde w(pi, tj) es el peso del arco de pi a tj
24
Pesos. Semántica.

 Función de Transición de estados.

f: P x T  
 f está definida para la Transición tj sii:

piI(tj), m(pi)  w(pi, tj)

 si tj está activada, calcular el nuevo marcado de pi  I(tj)  O(tj)


m’ = f(m, tj) donde
m(pi) - w(pi, tj) + w(tj, pi) si pi  I(tj)  pi  O(tj)
 f(m, tj) = m(pi) - w(pi, tj) si pi  I(tj)  pi 
25 O(tj)
Pesos. Semántica. Ejemplo
Arrival Activada Arrival

Queue Queue

2 2
Process Activada Process Disparo

Busy Idle Busy Idle

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.

 Un componente está bien desocupado o ejecutando alguno de sus métodos.

 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 A llama al método B (de manera asíncrona) de la misma instancia.

 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.

 El método D simplemente realiza un cómputo local y termina.

 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

AEx BEx DEx CEx

CWait
BWait DOut

HDId

HDQueue Writing HDEnd


34 Disco
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.
 Semántica causal.

35
Alcanzabilidad.

t
m  m’
La transición t se dispara cambiando el marcado
m [t> m’ de m a m’

=t1 t2 .. tn es una secuencia finita de ocurrencias que va


de m0 a mn si m0[t1> m1 [t2>..[tn> mn

Un marcado m es alcanzable (desde m0) si hay una secuencia


finita de ocurrencias que va de m0 a m.

Notación: [m0> es el conjunto de marcados alcanzables.

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

Proceso1 S. Crítica1 Proceso2


S. Crítica2 [0 1 0 0 1] [1 0 0 1 0]
Disparo Disparo
t2 t4

 Podemos analizar si la red alcanzará un cierto estado, y mediante qué secuencia de


eventos.

37  Problema: El número de estados no siempre es finito (si la red no está acotada)


Grafo de Alcanzabilidad. 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 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.

Nota: El algoritmo no termina si la red no está acotada.

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

[pwait, full, cons] [prod, empty, cwait] Ready


ready produce
produce Ready deliver
consume
[prod, full, cons] [pwait, full, cwait]
Ready
Ready produce read
consume

read [prod, full, cwait] [pwait, empty, cons]


Ready
consume

40 [pwait, empty, cwait]


Ejercicio: (entregar)
Calcula el Grafo de Alcanzabilidad de esta red, o bien de la red
obtenida en el ejercicio anterior.

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

•Se permite como mucho un coche en el centro de la intersección en cada


momento.
•No se permiten giros de 180 grados en la intersección.
•El número de coches que entran en la intersección de cada dirección es
arbitrario.
•Cuando un coche entra en el centro de la intersección, la dirección de salida
42 se determina aleatoriamente
Solución
(Sólo entradas de este y oeste)

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:

 m(pi) >= o(pi) para todo i=1...n


 m(pi) > o(pi) para al menos un i=1...n

 “w” : representa el marcado de un place que no está acotado.

 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.

Ejercicio: Calcular el grafo de cubrimiento de esta red:


p2

p1 t1

p3

t2

51
Grafo de Cubrimiento. Solución.

w representa el conjunto {1, 2, (1 0 0)

3, ...} de marcados alcanzables t1


para el estado p3.
(0 1 0)

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

No siempre es posible saber si un cierto estado es (0 1 w)


alcanzable.
53
Ejercicio
Calcula el grafo de cubrimiento

p1

t1
p3
p2

t2 t4

t3 p4

54
Solución 1000
t1
0110
t2 t4

0001 0200
p1
t3
t1 100
p3 t1 t4
p2
010 10
t2 t4 t1 t4
t2 t4
001 00
t3 t4
p4 t2
t3
0
t4, t2
t3

t1, t2, t3, t4
55
Grafo de Alcanzabilidad/Cubrimiento y
Concurrencia.

Concurrencia vs. no-determinismo


1
1
a
a

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.

Añadir p6 no cambia el grafo de alcanzabilidad, pero b y c no pueden dispararse a la vez.


No tenemos información sobre concurrencia de disparos.
1
1, 6
a
a

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

Busy Idle Capacidad finita: 1


Finish

Exit

60
Propiedades. Capacidad.
Arrival

Queue
Queremos Capacidad K (ej.5)
(número limitado en la cola de clientes)
Process

Arrival  Limitar capacidad K a un estado pi

Queue  Añadir un estado pi’ | m0(pi’) = K(pi)-m0(pi)


 ti| (pi, ti)  A, Añadir arco a = (ti, pi’) con w(a) =
w((pi, ti))
Process  ti| (ti, pi)  A, Añadir arco a = (pi’, ti) con w(a) =
61 w((ti, pi))
Ejercicios. Capacidad.

 Restringe la capacidad de la red iq


de la siguiente forma:
Process-1
 iq a 3
 M1 y M2 a 1 rework
 oq a 3
M1
M2

Process-2 2

oq

62
Ejercicios. Capacidad.

 Restringe la capacidad de la red


de la siguiente forma: iq’
iq
 iq a 3 Process-1
 M1 y M2 a 1 rework
 oq a 3 M2

M1’ M1 M2’
Process-2
2 2
oq’

oq
63
Propiedades. Capacidad.
 Capacidad “débil”: Añadir una función k: PN (cota).

 Una transición t está habilitada en un marcado m si:

 s  t, m(s)  w(s, t) &&


 s  t \ t, m(s) + w(t, s)  k(s) &&
 s  t  t, m(s) + w(t, s) – w(s, t)  k(s)

K=3
64 Complemento débil
Propiedades. Capacidad.
 Capacidad “fuerte”: Añadir una función k: PN (cota).

 Una transición t está habilitada en un marcado m si:

 s  t, m(s)  w(s, t) &&


 s  t, m(s) + w(t, s)  k(s)

K=3
65 Complemento fuerte
Propiedades. Capacidad.

Reemplazar el arco inhibidor desde un place acotado por un


complemento débil.

p
p

t q
t q 3
3
k=3
s’
s

66
Propiedades. Acotación.

 Un estado pi de una Red de Petri con marcado inicial m0


está k-acotado (o es k-seguro) sii:

m(pi)  k  estado alcanzable por la red.

 Un estado 1-acotado se llama seguro.

 Si  k | pi está k-acotado, entonces pi está acotado.

67  Si todos los estados están acotados, la red está


Propiedades. Acotación.
 Una red está acotada sii su grafo de alcanzabilidad es finito.

 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.

 Corolario: Una red 1-segura con n places tiene 2n marcados


alcanzables a lo sumo.

68
Propiedades. Reversibilidad.
 Una red es reversible si m0 es alcanzable desde cualquier otro
marcado alcanzable.

 Una red es reversible sii su grafo de cubrimiento es


fuertemente conexo.

t2 t4 t2
[0100] [1000]
t1
t3
t3 t4
[0010] [0001]
t1 t5
t5
69
Ejercicios. Reversibilidad.
¿Es reversible esta red?

M2 Sí, podemos volver a m0


eat2 desde cualquier marcado

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...

Queue  Para nuestro modelo,


10
queremos que la suma de los
Personas tokens en la red sea constante
Process durante la simulación.
Posibles
Busy Idle estados
 m(Busy)+m(Idle) = 1
del servidor
Finish
 m(Queue)+m(Completed)+
m(Busy) = 10
Personas
Completed
71
Propiedades. Conservación.

 Una Red de Petri con estado inicial m0 es conservativa respecto a


= [1, 2, ..., n ] sii:


n
i 1
 i m( pi )  cte.

para todos los estados m que pueda alcanzar la red. Donde  es un


vector binario de longitud igual al número de lugares

 = [ 0, 1, 1, 0] , m(Busy)+m(Idle) = 1

 ’= [ 1, 1, 0, 1], m(Queue)+ m(Completed)+ m(Busy) = 10


72
Ejercicios. Conservación.
¿Es conservativa esta red?

M2
eat2

E2

med2

M1

C1 C2
eat1
E1

73 med1
Ejercicios. Conservación.
¿Es conservativa esta red?

M2 Respecto a [1, 1, 1, 1, 0, 0], [1, 1, 0, 0, 0, 0],


[0, 0, 1, 1, 0, 0]
eat2

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.

 Dependencia cíclica que hace esperar indefinidamente: ninguna transición


está activada.

 Muchas veces queremos hacer un análisis de nuestro modelo del sistema


para ver si:

 Puede caer en un estado de deadlock.

 Qué secuencia de eventos hacen que el sistema caiga en deadlock.

 Si el deadlock es posible, cómo podemos evitarlo.

 Una red está libre de deadlock si su grafo de alcanzabilidad no tiene


nodos sin sucesores.
75
Propiedades. Deadlock.
t2 t4 t2
[0100] [1000]
t1
t3
t3 t4
[0010] [0001]
t1 t5
t5
t2 t4
t3 t2
[01000] [10000]
t1
t3
t4
t1 t5 [00110] [00101]
t5
Si t3 se dispara => la red entra en deadlock t4
[00001] [00010]
76
Propiedades. Liveness.

 Dado un estado inicial m0, una transición de una Red de Petri está:

 Viva a nivel L0 (muerta): Si nunca va a poder dispararse.

 Viva a nivel L1: Si hay una secuencia desde m0 tal que la transición
puede dispararse al menos una vez.

 Viva a nivel L2: Si la transición puede dispararse al menos k veces dado


un entero positivo k.

 Viva a nivel L3: Si existe alguna secuencia infinita en la que la transición


aparece infinitas veces.

 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.

 t1 está viva a nivel L1.

p1  t3 está viva a nivel L3.

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:

m(pi)  y(pi) pi  P

79
Propiedades. Persistencia.

 En una situación en la que hay más de una transición


habilitada...

 Una red de Petri es persistente si, para cualquier


conjunto de transiciones habilitadas, el disparo de una no
deshabilita el resto.

 Si ti, tj  T I(ti)  I(tj) = , la red es persistente.

 Relacionada con el estudio de no-interrumpimiento en


80 modelos en los que se simulan varios procesos.
Ejercicio
(Entregar)

 Estudia las siguientes propiedades de la red


de Petri del ejercicio 1 utilizando el grafo de
alcanzabilidad: (solución en transparencia 34)
– Acotación.
– Reversibilidad.
– Persistencia.
– Conservación/Invariantes.
– Deadlock.

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

 A es una matriz |T| x |P|

 Aji = w(tj, pi) – w(pi, tj)

 x’ = x + uA

 Donde u es el vector de disparo (1 en la transición que dispara).

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

 m0 [t2 t3 t5 t1 t3> m5 =>


 m1 = m0+[01000]A; m2 = m1+[00100]A
 m2 = m0+[01000]A+[00100]A = m0+[01100]A
 m3 = m0+[01100]A+[00001]A = m0+[01101]A
 m4 = m0+[11101]A
 m5 = m0+[11201]A

 [11201] = vector de Parikh de t2 t3 t5 t1 t3

89
Representación Matricial de una
Red de Petri

 Si m [> m’ y p() es el vector de Parikh de  entonces:

m’ = m+ p()A
 Por tanto, un marcado m’ es alcanzable desde m si

m’ = m+ xA

tiene solución para x en N*


(Condición necesaria pero no suficiente).
90
Representación Matricial de una
Red de Petri
p2 p4
[10000]
t1 t2
t1 t3
[01001] [00110]
p1 t5
t3 t4
t2 p3 t4 p5 [00011]
t5
p1 p2 p3 p4 p5 Marcado
t1 –1 1 0 0 1 alcanzable? Soluciones (vector de
t2 -1 0 1 1 0 Parikh)
t3 0 -1 0 1 0
[10000] Sí [00000], [10101], [01011], ...
t4 0 0 -1 0 1
[01001] Sí [10000], ...
t5 1 0 0 -1 -1
[00110] Sí [01000],...
91 [00011] Sí [10100], [01010] ,...
Representación Matricial de una
Red de Petri

 Problema: no tenemos información sobre la


secuencia de disparos en el vector de Parikh.

 No hay restricción para impedir el disparo de una


transición que no está habilitada.

 La matriz A no refleja la estructura de la red en los


places p | t p•t && pt•

92
Conservación
 Una red es conservativa respecto a = [1, 2, ..., n ] sii AT=[0,...,0]

Dem:
)  m0T =  m’T m’ | m [>m’

 Por tanto, m’T= m0T+AT p()T

  m’T =  (m0T+AT p() T) =  m0T+  A T p() T

   AT p() T = 0,  p()   A T = [0,...,0]


)  AT = 0
 Sea m’ | m0 [ > m’ , entonces m’T= m0T+AT p()T

  m’T=  (m0T+AT p()T) = m0T+AT p()T

  m’T =  m0T

93
Conservación. Ejercicio (1)

M2 Demuestra que esta red es conservativa


respecto a =[1, 1, 1, 1, 0, 0], usando
eat2 técnicas algebraicas.

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 = 22; 2 = 3
1 - 4 = 0  = [2 1 1 2] , ...
+  2 – 3 = 0

97
Ejercicio (Entregar).

• Calcular las invariantes en places y transiciones de la


red correspondiente al ejercicio 2 entregado el
último día.

98

Anda mungkin juga menyukai