Está en la página 1de 20

REDES DE PETRI: DEFINICIN,

DEFINICIN
FORMALIZACIN Y EJECUCIN
PROGRAMACIN CONCURRENTE
MASTER EN COMPUTACIN
DEPARTAMENTO DE ELECTRNICA Y COMPUTADORES
UNIVERSIDAD DE CANTABRIA
CURSO 2012/13
Programacin Concurrente:
Redes de Petri

Mercedes Granda
Departamento de Electrnica y Computadores

REDES DE PETRI
Las redes de Petri (RdP) (C.A. Petri, 1962) son una
herramienta de modelado muy efectiva para la
representacin
t i y ell anlisis
li i de
d procesos concurrentes.
t
Modelar un sistema usando redes de Petri tienen tres
ventajas potenciales:
1) El sistema completo es a menudo ms fcil de entender debido a la
naturaleza grfica y precisa del esquema de representacin.
2) El comportamiento del sistema puede ser analizado utilizando la teora
de las redes de Petri, que incluye herramientas para el anlisis tales
como los rboles de marcados y establece relaciones entre ciertas
estructuras de redes y el comportamiento dinmico. Pueden aplicarse
tambin tcnicas para la verificacin de programas paralelos.
3) Puesto que las redes de Petri pueden sintetizarse usando tcnicas
"bottom-up" y "top-down", es posible disear automticamente sistemas
cuyo comportamiento es conocido o fcilmente verificable.
Programacin Concurrente:
Redes de Petri

Mercedes Granda
Departamento de Electrnica y Computadores

REDES DE PETRI
Su xito se debe bsicamente a la simplicidad de su
mecanismo bsico, si bien, la representacin de grandes
sistemas
i t
es costosa.
t
Para facilitar su uso en diferentes campos de aplicacin,
el modelo original se ha extendido en dos aspectos:
1) Introduccin de modificaciones estructurales para
incrementar la potencia o la comodidad de modelado
o para facilitar la solucin de los problemas de
anlisis
anlisis.
2) Definicin de redes de Petri temporizadas que se
pueden utilizar para analizar cuantitativamente las
prestaciones del sistema modelado.
Programacin Concurrente:
Redes de Petri

Mercedes Granda
Departamento de Electrnica y Computadores

REDES DE PETRI:
DEFINICIONES BSICAS
Las redes de Petri son un grafo orientado formado por:
Plazas o lugares,
lugares representadas mediante circunferencias
circunferencias.
Transiciones, representadas por segmentos rectilneos.
Arcos dirigidos que unen transiciones y plazas.

Programacin Concurrente:
Redes de Petri

Mercedes Granda
Departamento de Electrnica y Computadores

REDES DE PETRI:
DEFINICIONES BSICAS
Una plaza p es entrada de una transicin t si existe un
arco desde p a tt.
Una plaza p es salida de una transicin t si existe un arco
desde t a p.

Programacin Concurrente:
Redes de Petri

Mercedes Granda
Departamento de Electrnica y Computadores

REDES DE PETRI:
MARCADO
Una plaza puede contener un nmero positivo o nulo de testigos o
que se representan
p
p
por un p
punto en el interior del crculo
marcas, q
que representa una plaza.
El marcado de una red de Petri es el conjunto de testigos asociados
con cada una de las plazas en un instante dado. Define el estado de
la red de Petri.

Programacin Concurrente:
Redes de Petri

Mercedes Granda
Departamento de Electrnica y Computadores

REDES DE PETRI Y
PROGRAMACIN CONCURRENTE
Transiciones: representan los procesos del
programa.
programa
Plazas: representan las condiciones
necesarias para que un proceso se ejecute.
Arcos dirigidos: relacionan condiciones y
procesos.
Testigos:
T ti
sii estn
t presentes
t en una plaza,
l
indican que se verifica la condicin que
representa esa plaza.
Programacin Concurrente:
Redes de Petri

Mercedes Granda
Departamento de Electrnica y Computadores

REDES DE PETRI: DISPARO


Una transicin est sensibilizada o
habilitada si todos las plazas de entrada
estn marcadas.
Una transicin habilitada se puede
disparar.
El disparo de una transicin habilitada
consiste
i t en quitar
it un ttestigo
ti de
d cada
d plaza
l
de entrada y aadir un testigo a cada uno
de las plazas de salida.
Programacin Concurrente:
Redes de Petri

Mercedes Granda
Departamento de Electrnica y Computadores

REDES DE PETRI:
EJEMPLOS DE DISPARO
ANTES
DEL DISPARO

DESPUS
DEL DISPARO

Programacin Concurrente:
Redes de Petri

t1

t1

t2

t2

Mercedes Granda
Departamento de Electrnica y Computadores

t3

t3

EVOLUCIN DEL MARCADO:


DISPARO DE LA TRANSICIN t1

t1

Programacin Concurrente:
Redes de Petri

Mercedes Granda
Departamento de Electrnica y Computadores

10

EVOLUCIN DEL MARCADO:


DISPARO DE LAS TRANSICIONES t2 t3.

t2

t3

Programacin Concurrente:
Redes de Petri

Mercedes Granda
Departamento de Electrnica y Computadores

11

EVOLUCIN DEL MARCADO:


DISPARO DE LA TRANSICIN t2.

t2

Programacin Concurrente:
Redes de Petri

Mercedes Granda
Departamento de Electrnica y Computadores

12

EVOLUCIN DEL MARCADO:


DISPARO DE LAS TRANSICIONES t3 t4.

t3

t4

Programacin Concurrente:
Redes de Petri

Mercedes Granda
Departamento de Electrnica y Computadores

13

EVOLUCIN DEL MARCADO:


DISPARO DE LAS TRANSICIONES t4 t5.

t4

t5

Programacin Concurrente:
Redes de Petri

Mercedes Granda
Departamento de Electrnica y Computadores

14

EVOLUCIN DEL MARCADO


p4

t3
p3

t2
p5

p3
t5

t1

t4

t1

p2

t2

t2

t2

p1
p2

p5
t4

p4

t3
p3

p3
t5

t1

t2

p1
p5
t4

Programacin Concurrente:
Redes de Petri

t5

t1

t2
p2

t5

t1

p5
t4

p44

p4

t3
p3

t2

p1

t3

t3

p4

t3
p2

p1

t5

t5

t1
p1

t3

p2

p5

t4

t4

Mercedes Granda
Departamento de Electrnica y Computadores

15

REDES DE PETRI:
FORMALIZACIN
En una red de Petri, se permite que ms de un arco
conecte una plaza con una transicin o una transicin
con una plaza.
l
Si P es el conjunto de plazas de la red de Petri y T es el
conjunto de transiciones, se define:
Funcin incidencia previa, I:PT N
I(pi,tj)=nmero de arcos que unen la plaza pi con la
transicin tj.
Funcin incidencia posterior, O:TP N
O(tj,pi)=nmero de arcos que unen la transicin tj
con la plaza pi.
Peso o valoracin de un arco: etiqueta de valor
I(p,t) u O(t,p). Un arco no etiquetado tiene peso uno.
Programacin Concurrente:
Redes de Petri

Mercedes Granda
Departamento de Electrnica y Computadores

16

REDES DE PETRI:
FORMALIZACIN
Una red de Petri es una cuadrupla RdP=(P,T,I,O)
tal que
P es un conjunto finito y no vaco de plazas.
T es un conjunto finito y no vaco de
transiciones.
PT=
I:P T N es la funcin de incidencia
previa.
O:T P N es la funcin de incidencia
posterior.
Programacin Concurrente:
Redes de Petri

Mercedes Granda
Departamento de Electrnica y Computadores

17

REDES DE PETRI:
FORMALIZACIN
Una red de Petri es ordinaria si sus funciones
de incidencia slo pueden tomar valores 0 y 1
(todos sus arcos son de peso unitario).
Una red de Petri es generalizada si sus
funciones de incidencia pueden tomar cualquier
valor entero mayor o igual que cero.
Una red de Petri es pura o no reflexiva si
ninguna plaza es a la vez entrada y salida de
una misma transicin.
Programacin Concurrente:
Redes de Petri

Mercedes Granda
Departamento de Electrnica y Computadores

18

REDES DE PETRI: MARCADO


Un marcado M de una red de Petri
( , , , ) es una funcin desde el conjunto
j
RdP=(P,T,I,O)
de las plazas P al conjunto de los enteros no
negativos N:
M: P N
Si n es el nmero de plazas de la red de Petri,
puede interpretarse
p
como un
un marcado p
vector de dimensin n, M=(m1,m2,...,mn), en el
que mi es el nmero de testigos que M asigna a
pi y se verifica M(pi)=mi.
Programacin Concurrente:
Redes de Petri

Mercedes Granda
Departamento de Electrnica y Computadores

19

REDES DE PETRI MARCADAS


Una red de Petri con un marcado inical M0 es una red de Petri
marcada,C=(RdP,M0):

C=(RdP,M0)
RdP=(P,T,I,O)
P={p1, p2,...,pn}
T={t1, t2,...,tm}
I:PT N
O:TP N
M0=(m01, m02,..., m0n)
El estado de una red de Petri marcada se define por el nmero mi de
testigos contenidos en cada plaza pi y se representa por su marcado.
Programacin Concurrente:
Redes de Petri

Mercedes Granda
Departamento de Electrnica y Computadores

20

10

REDES DE PETRI MARCADAS:


EJECUCIN
Una red de Petri se ejecuta de acuerdo con las siguientes reglas.
1) Una transicin t se dice que est habilitada en una red de Petri con un marcado
M si todas sus plazas de entrada contienen al menos tantos testigos como arcos
haya desde cada plaza a la transicin, esto es, si M(p)I(p,t) para toda plaza de
entrada de la transicin t.
Una transicin sin plazas de entrada, lo que se denomina transicin fuente, est siempre
habilitada puesto que no tiene restricciones de entrada.

2) Una transicin habilitada puede dispararse retirando de cada plaza de entrada


tantos testigos como arcos haya desde la plaza hacia la transicin (I(p,t)) y
depositando tantos testigos en cada plaza de salida como arcos haya desde la
transicin a la plaza (O(t,p)). La seleccin de cul entre todas las transiciones
habilitadas es la prxima en dispararse es arbitraria y se supone que se decide
en un nivel de abstraccin inferior.
3) El disparo de una transicin modifica la distribucin de testigos en las plazas. Si,
desde un marcado Mi, se produce el disparo de una transicin t, el nuevo
marcado que se obtiene, Mj, se calcula mediante la expresin:
Mj(p) = Mi(p) + O(t,p) - I(p,t) pP
Los testigos se utilizan para definir la ejecucin de la red de Petri. Una transicin sin lugares
de salida, lo que se denomina transicin sumidero, elimina testigos de la red de Petri.
Programacin Concurrente:
Redes de Petri

Mercedes Granda
Departamento de Electrnica y Computadores

21

REDES DE PETRI: DISPARO


Los testigos son indivisibles; esto es, un testigo puede quitarse de
una plaza por slo una transicin. Esto hace que el disparo de una
transicin pueda deshabilitar otras transiciones retirando los testigos
de las plazas de entrada compartidas. Exceptuando esta restriccin,
el disparo de las transiciones se desarrolla de una manera
asncrona.
Un marcado Mj se dice que es inmediatamente alcanzable desde
un marcado Mi si Mj puede obtenerse disparando una transicin
habilitada por Mi.
Un marcado Mk se dice q
que es alcanzable desde un marcado Mi si
existe una secuencia de disparo de transiciones que transforma Mi
en Mk.
El conjunto de alcanzabilidad, R(M), de una red de Petri marcada
es el conjunto de todos los marcados alcanzables desde M.
Programacin Concurrente:
Redes de Petri

Mercedes Granda
Departamento de Electrnica y Computadores

22

11

DISPARO Y CONJUNTO DE
ALCANZABILIDAD
t3

p4
p3
t5

t1

t5

t1

t2
p1
p2

p5

p2

t3

p4

p3

t5

t5

t1

t2

t4

(0,1,1,0,0)
p1 p2 p3 p4 p5
Programacin Concurrente:
Redes de Petri

t3

p2

t5

t1
t2
p2

t2

p5
t4

p5
t4

(0,0,0,1,1)

t2

p1

p4

p3

p1

p4

p5

t3

(0,0,1,0,1)

t2

t1

t5

t3

t4

p3

p2

p5

t4

t1
p1

t2
2

p1

(1,0,0,0,0)

t3

p4

t3

p3

t4

(0,1,0,1,0)
Mercedes Granda
Departamento de Electrnica y Computadores

23

REDES DE PETRI: RBOL


DE ALCANZABILIDAD
El rbol de alcanzabilidad de un RdP representa el
conjunto de todos los marcados alcanzables desde el
marcado
d iinicial
i i l M 0.
Consiste en un grafo en forma de rbol en el que cada
nudo es un marcado alcanzable de la red y los nudos se
conectan mediante arcos etiquetados con la transicin
que se dispara para pasar de un marcado a otro.
Partiendo del estado inicial M0, se generan todos los
estados alcanzables desde ste mediante el disparo de
una transicin. A partir de cada estado, se vuelve a
repetir el proceso, apareciendo, en consecuencia, un
grafo en forma de rbol con una estructura infinita.
Programacin Concurrente:
Redes de Petri

Mercedes Granda
Departamento de Electrnica y Computadores

24

12

OBTENCIN DEL RBOL DE


ALCANZABILIDAD: EJEMPLO 1
(1,0,0,0,0)

t1
t2

(0,1,1,0,0)

(0,0,1,0,1)

t3

t4

(0,0,0,1,1)

t5

Programacin Concurrente:
Redes de Petri

(0,1,0,1,0)

t2

(0,1,1,0,0) (0,0,0,1,1)

t4

(1,0,0,0,0)

Red de Petri

t3

(0,1,0,1,0)

rbol de alcanzabilidad

Mercedes Granda
Departamento de Electrnica y Computadores

25

REDES DE PETRI: RBOL


DE ALCANZABILIDAD
Para representar esta estructura infinita con un rbol
finito, se deja de expandir el rbol cuando se alcanza un
marcado frontera (hojas del rbol)
rbol). ste es el que verifica
alguna de las siguientes condiciones:
a) Es un marcado muerto, esto es, un marcado en el que no hay
ninguna transicin habilitada.
b) Es un marcado que ya ha aparecido en el rbol de
alcanzabilidad, lo que se denomina nudo duplicado.
c) Es un marcado que slo se diferencia de otro presente en el
rbol por tener un nmero distinto de testigos en alguna plaza y
que habilita el mismo conjunto de transiciones que el primero.
Estos marcados se representan con una w en la posicin
correspondiente a la plaza con distinto nmero de testigos.

As, el rbol de alcanzabilidad de cualquier RdP es finito.


Programacin Concurrente:
Redes de Petri

Mercedes Granda
Departamento de Electrnica y Computadores

26

13

OBTENCIN DEL RBOL DE


ALCANZABILIDAD: EJEMPLO 1

t1

t1

(1,0,0,0,0)

(0,1,1,0,0)

p1 p2 p3 p4 p5
Programacin Concurrente:
Redes de Petri

Mercedes Granda
Departamento de Electrnica y Computadores

27

OBTENCIN DEL RBOL DE


ALCANZABILIDAD: EJEMPLO 1
t3

p4
p3
t5

t1

t5

t1

t2
p1
p2

p2

p5

t3

p4

p3

t5

t5

t1

t2

t4

(0,1,1,0,0)
Programacin Concurrente:
Redes de Petri

t3

p2

t5

t1
t2
p2

t2

p5
t4

p5
t4

(0,0,0,1,1)

t2

p1

p4

p3

p1

p4

p5

t3

(0,0,1,0,1)

t2

t1

t5

t3

t4

p3

p2

p5

t4

t1
p1

t2

p1

(1,0,0,0,0)

t3

p4

t3

p3

t4

(0,1,0,1,0)
Mercedes Granda
Departamento de Electrnica y Computadores

28

14

OBTENCIN DEL RBOL DE


ALCANZABILIDAD: EJEMPLO 1
(1,0,0,0,0)

t1
t2

(0,1,1,0,0)

(0,0,1,0,1)

t3

t4

(0,0,0,1,1)

t5

Programacin Concurrente:
Redes de Petri

(0,1,0,1,0)

t2

(0,1,1,0,0) (0,0,0,1,1)

t4

(1,0,0,0,0)

Red de Petri

t3

(0,1,0,1,0)

rbol de alcanzabilidad

Mercedes Granda
Departamento de Electrnica y Computadores

29

OBTENCIN DEL RBOL DE


ALCANZABILIDAD: EJEMPLO 2

rbol de alcanzabilidad
infinito
Programacin Concurrente:
Redes de Petri

rbol de alcanzabilidad
finito con la notacin w

Mercedes Granda
Departamento de Electrnica y Computadores

30

15

RBOL DE ALCANZABILIDAD:
MQUINA DE TESTIGOS

La mquina de testigos (MT) es una modificacin de la tcnica del rbol


de alcanzabilidad que presenta una estructura grfica ms compacta.

En la MT se define el estado de una RdP marcada como la coleccin de los


nombres de las plazas que contienen testigos. El nmero de veces que el
nombre de una plaza aparece en un estado es igual al nmero de testigos
que la plaza contiene en ese estado.

La MT es un grafo dirigido que est formado por todos los posibles estados
(con esta nueva notacin) en que puede estar una red de Petri dada y por
las posibles transiciones entre ellos. Los estados se encierran en valos y
se unen entre s mediante arcos dirigidos etiquetados con el nombre de la
transicin que se dispara para pasar de un estado a otro de los que
conecta el arco.

La tcnica de la mquina de testigos es especialmente til para


representar el conjunto de estados de una red de Petri marcada que
contenga muchas plazas y muy pocos testigos en cada estado; mientras
que con la tcnica del rbol de alcanzabilidad habra que enumerar todas
las plazas de la red, con la tcnica de la mquina de testigos slo es
necesario indicar el nombre de una parte pequea de ellas.

Programacin Concurrente:
Redes de Petri

Mercedes Granda
Departamento de Electrnica y Computadores

31

RBOL DE ALCANZABILIDAD
Y MQUINA DE TESTIGOS
(1 0 0 0 0)
(1,0,0,0,0)

t2

t1
(0,1,1,0,0)

(0,0,1,0,1)
t3

t4

t3

(0,1,0,1,0)
t2

(0,0,0,1,1) (0,1,1,0,0) (0,0,0,1,1)


t5
t4
(1,0,0,0,0)

(0,1,0,1,0)

rbol de
alcanzabilidad
Programacin Concurrente:
Redes de Petri

Mercedes Granda
Departamento de Electrnica y Computadores

Mquina de
testigos
32

16

REDES DE PETRI:
REPRESENTACIN MATRICIAL
Una red de Petri con n plazas y m transiciones se
representa
p
p
por dos matrices de incidencia de dimensin
mn que representan las conexiones entre los nudos de
la red:
La matriz de incidencia previa, C-:
C-(j,i)=I(pi, tj)
La matriz de incidencia posterior, C+:
C+(j,i)=O(pi, tj)
Se define la matriz de incidencia, C, como C= C+ - C-.
Programacin Concurrente:
Redes de Petri

Mercedes Granda
Departamento de Electrnica y Computadores

33

REDES DE PETRI: EJEMPLO DE


REPRESENTACIN MATRICIAL
p1 p2 p3 p4 p5

C 0

0
1

p1 p2 p3 p4 p5

1 1 0 0 t1

0 0 0 1 t2
0 0 1 0 t3

1 0 0 0 t4
0 0 0 0 t5

C 0

0
0

Matriz de incidencia posterior

p1


CC C 0

0
1

p2

0 0 0 0 t1

1 0 0 0 t2
0 1 0 0 t3

0 0 0 1 t4
0 0 1 1 t5

Matriz de incidencia previa

p3

p4

p5

1 1 0 0

1 0 0 1
0 1 1 0

1 0 0 1
0 0 1 1

t1
t2
t3
t4
t5

Matriz de incidencia
Programacin Concurrente:
Redes de Petri

Mercedes Granda
Departamento de Electrnica y Computadores

34

17

REDES DE PETRI:
REPRESENTACIN MATRICIAL
La definicin matricial de una red de Petri
RdP=(P T C+, C-) es equivalente a la utilizada
RdP=(P,T,
hasta ahora, pero permite redefinir los
conceptos en trminos vectoriales y matriciales.
Una transicin tj se define por un vector ej de
dimensin m (nmero de transiciones) de
componentes:
1 si i j
e j i
0 si i j
Programacin Concurrente:
Redes de Petri

Mercedes Granda
Departamento de Electrnica y Computadores

35

REDES DE PETRI:
REPRESENTACIN MATRICIAL

Una transicin tj est habilitada en un marcado M si


M ej C-

El resultado del disparo de la transicin tj a partir del estado M, si est


habilitada, es:
M' = M + ej C

El resultado de aplicar una secuencia de disparo de transiciones =tj1tj2tjk


se puede representar como:
(M, ) = (M,tj1tj2tjk) = M + ej1 C + ej2 C +...+ ejk C =
( )C
= M + ((ej1 + ej2 +...+ ejk ) C = M +f(
El vector f()= ej1 + ej2 +...+ ejk se denomina vector de disparo de la
secuencia tj1tj2tjk. La i-sima componente de f() es el nmero de veces
que la transicin ti se dispara en la secuencia tj1tj2tjk. El vector de disparo
es, por tanto, un vector de enteros no negativos.

Programacin Concurrente:
Redes de Petri

Mercedes Granda
Departamento de Electrnica y Computadores

36

18

REPRESENTACIN MATRICIAL:
EVOLUCIN DEL MARCADO
Disparo de la transicin t1

M 0 1 0 0 0 0

e1 1 0 0 0 0
La transicin t1 est habilitada:
1

M 0 e1 C 1 0 0 0 0 0

0
0

Programacin Concurrente:
Redes de Petri

0 0 0 0

1 0 0 0
0 1 0 0 1 0 0 0 0

0 0 0 1
0 0 1 1

Mercedes Granda
Departamento de Electrnica y Computadores

37

REPRESENTACIN MATRICIAL:
EVOLUCIN DEL MARCADO

t1

M=M0+e1 C=

1 1 1 0 0

0 1 0 0 1
1 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0

0 1 0 0 1
1 0 0 1 1

Programacin Concurrente:
Redes de Petri

Mercedes Granda
Departamento de Electrnica y Computadores

38

19

REPRESENTACIN MATRICIAL:
EVOLUCIN DEL MARCADO
Resultado de la secuencia de disparo t1, t2, t3:

f()=e1+e2+e3=(1 1 1 0 0)
(M, )=M0+ f()C
1 1 1 0 0

0 1 0 0 1
( M , ) 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1

0 1 0 0 1

1 0 0 1 1

Programacin Concurrente:
Redes de Petri

Mercedes Granda
Departamento de Electrnica y Computadores

39

20

También podría gustarte