Vous êtes sur la page 1sur 81

Mquinas de estados

finitos

Caractersticas

Simple
Formal
Operacional
Nmero finito de estados

Definicin
Una mquina de estados finitos M consiste
de:

Un conjunto finito de estados, Q;


Un conjunto finito de entradas, I;
Una funcin de transicin : Q I Q.

puede ser una funcin parcial

Representacin grfica

Grafo

nodos representan los estados;


un arco rotulado i va del estado q a q si y slo si
(q, i) = q.
Q = {q0, q1, q2, q3}
I = {a, b, c}
(q0, a) = q1
(q1, a) = q2
(q1, b) = q3
(q2, b) = q3
(q3, c) = q0

Modelado con una MEF


MEF que modela el switch de una lmpara

Modelado con una MEF

Una planta qumica.

Los niveles de temperatura y de presin deben ser


monitoreados por razones de seguridad. Se han instalado
sensores para generar seales adecuadas cuando alguno
de dichos niveles excede un valor predefinido.
Poltica trivial: cuando alguna de las seales es originada
por el correspondiente sensor, el sistema de control apaga
la planta y emite una seal de alarma; el sistema es reiniciado manualmente cuando la causa de la falla ha sido
corregida.

Modelado con una MEF

Modelado con una MEF

Cuando se origina
alguna de las dos
seales, se invoca
automticamente
una accin de
recuperacin (existe
una accin de
temperatura y una
accin de presin).

Modelado con una MEF

Si, despus de un
rato, la accin de
recuperacin tiene
xito, el sistema es
automticamente reinicializado al estado
normal y un mensaje
de todo OK es
emitido.

Modelado con una MEF

Si la
recuperacin no
tiene xito, la
seal de alarma
debe ser lanzada
y la planta debe
ser apagada.

Modelado con una MEF

El sistema debe
tambin ser apagado si
se est tratando de
recuperar de algn tipo
de anormalidad (de
temperatura o presin)
y la otra seal aparece.

Limitaciones de las MEF


Limitacin: Nmero finito de
estados.
Soluciones:

No describir todos los detalles del


sistema.
Cambiar de herramienta de
modelado.
Enriquecer la notacin.

Limitaciones de las MEF

Sistema productor-consumidor

Un proceso productor produce mensajes y los


graba en un buffer.
Un proceso consumidor lee mensajes y los saca
de dicho buffer (consume).
Si el buffer est lleno, el productor debe esperar
hasta que el consumidor lo haya vaciado.
Si el buffer est vaco, el consumidor debe
esperar hasta que el productor coloque un
mensaje en el buffer.

DTE - Una primera


aproximacin

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

Suponemos un buffer con capacidad para 1 mensaje.

DTE para ProductorConsumidor

DTE para ProductorConsumidor

DTE para ProductorConsumidor

DTE para ProductorConsumidor

DTE para ProductorConsumidor

DTE para ProductorConsumidor

DTE para ProductorConsumidor

DTE para ProductorConsumidor

DTE para ProductorConsumidor

Problemas en el modelo

Tamao: n subsistemas cada uno con ki


estados, sistema resultante k1 k2 ... kn
estados.

Modelo sincrnico.

El sistema est siempre en un nico estado y


ejecuta exactamente una nica accin en
cada instante de tiempo, sin embargo por ej.
no hay razn para imponer tal serializacin
entre la accin produce y la accin
consume (las transiciones deberan ocurrir
asincrnicamente).

Introduccin a las
Redes de Petri

Redes de Petri

Notacin formal, operacional, grfica.

Sistemas asincrnicos y concurrentes.

Redes de Petri - Definicin


Una Red de Petri es un multigrafo bipartito dirigido representado
por una cudrupla 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: T P

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

Ejemplo 1
p1

p2

P = {p1, p2, p3, p4, p5, p6, p7}


T = {t1, t2, t3, t4, t5, t6}

t1

t2

p3

p4

p5

t3

p7

t5

t6

O(t1) = {p4}

I(t2) = {p2}

O(t2) = {p5}

I(t3) = {p3, p4}

O(t3) = {p6}

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

t4

p6

I(t1) = {p1}

I(t5) = {p6}

O(t5) = {p1, p3}

I(t6) = {p7}

O(t6) = {p2, p3}

Ejemplo 2
p2

p1
t1

P = {p1, p2}
T = {t1}
I(t1) = {p1, p1}
O(t1) = {p2, p2, p2}

Si un arco va desde un place a una


transicin, al place se lo llama input place
(lugar de entrada) de la transicin.
Si un arco va desde una transicin a un
place, al place se lo llama output place
(lugar de salida) de la transicin.

Redes de Petri
Marcacin y ejecucin

Una red de Petri recibe su estado marcando


sus places.
Una marcacin (marking) consiste en asignar
un nmero entero no negativo de tokens a
cada place.
En las redes tradicionales de Petri los tokens
son indistinguibles y no representan
informacin especfica.

Ejemplo de red marcada


p1

p2
t1

P = {p1, p2}
T = {t1}
I(t1) = {p1, p1}
O(t1) = {p2, p2, p2}

Marcacin
Una marcacin de una Red de Petri
PN = <P, T, I, O> es una funcin:

: P {0, 1, 2, ...}
que asigna un nmero entero no negativo de
tokens a cada place de la red.

Marcacin

Una marcacin puede representarse como


un vector de dimensin n (n es el nmero de
lugares de la red).
p1

p2
t1

(p1) = 2 (p2) = 0
= (2,0)

Red de Petri marcada


Una Red de Petri marcada
M = <PN, >
es un una estructura de Red de Petri
PN = <P, T, I, O> y un marking .

p1

t1

P = {p1, p2, p3, p4, p5, p6, p7}


T = {t1, t2, t3, t4, t5, t6}

t2

p3

p4

p2

p5

t3

p7

t5

t6

O(t1) = {p4}

I(t2) = {p2}

O(t2) = {p5}

I(t3) = {p3, p4}

O(t3) = {p6}

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

t4

p6

I(t1) = {p1}

I(t5) = {p6}

O(t5) = {p1, p3}

I(t6) = {p7}

O(t6) = {p2, p3}

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

Ejecucin de una Red de


Petri

Durante la ejecucin de la red el nmero y


posicin de los tokens puede variar dando
lugar a una nueva marcacin.
Cada marcacin corresponde a un estado de
la red.

Reglas de Ejecucin
1.
2.

Una transicin puede disparar si est habilitada.


Una transicin est habilitada si en cada uno de
sus input places existen al menos tantos tokens
como arcos existan desde el place a la transicin.

t1

t1
p1

t1 no habilitada

p2

p1

t1 habilitada,
puede disparar

p2

Reglas de Ejecucin
3.

Cuando una transicin dispara, en cada uno de sus


input places se remueven tantos tokens como arcos
existan desde el input place hacia la transicin, y en
cada uno de los output places de la transicin se
insertan tantos tokens como arcos existan desde la
transicin al output place.
t1

p1

t1
p2

p1

p2

Dispar t1

p4

p3

p4

p3

Reglas de Ejecucin
Formalmente, una transicin t T est habilitada
en una red de Petri PN = <P, T, I, O> sii
p I(t) : (p) #(p, I(t))
donde
#(p, I(t)) es el nmero de arcos desde p a t.

Reglas de Ejecucin
Formalmente, el disparo de una transicin t T
con un marking resulta en un nuevo marking
definido por:
p P : (p) = (p) #(p, I(t)) + #(p, O(t))
donde
#(p, I(t)) es el nmero de arcos desde p a t.
#(p, O(t)) es el nmero de arcos desde t a p.

Ejecucin de una Red de


p1
p2
Petri

t1

t2

p3

p4

0 = (1, 1, 1, 0, 0, 0, 0)
p5

t3

estn

t4

p6

p7

t5

t6

t1 y t2

habilitadas.

Ejecucin de una Red de


p1
p2
Petri

t1

t2

p3

p4

0 = (1, 1, 1, 0, 0, 0, 0)
p5

t3

secuencia de
disparos: (t1)

t4

p6

p7

t5

t6

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

t2 y t3 quedaron
habilitadas.

Ejecucin de una Red de


p1
p2
Petri
t1

t2

p3

p4

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

t3

p5

1 = (0, 1, 1, 1, 0, 0, 0)
2 = (0, 0, 1, 1, 1, 0, 0)

t4

p6

p7

t5

t6

secuencia de
disparos: (t1,t2)
t3 y t4 quedaron
habilitadas.

Ejecucin de una Red de


p1
p2
Petri
t1

t2

p3

p4

0 = (1, 1, 1, 0, 0, 0, 0)
p5

1 = (0, 1, 1, 1, 0, 0, 0)
2 = (0, 0, 1, 1, 1, 0, 0)

t3

3 = (0, 0, 0, 1, 0, 0, 1)

t4

p6

t5

t6

p7

secuencia de
disparos: (t1,t2,t4)
t6 qued
habilitada.

Ejecucin de una Red de


p1
p2
Petri

t1

t2

p3

p4

0 = (1, 1, 1, 0, 0, 0, 0)
p5

2 = (0, 0, 1, 1, 1, 0, 0)

t3

3 = (0, 0, 0, 1, 0, 0, 1)

t4

p6

p7

t5

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

t6

4 = (0, 1, 1, 1, 0, 0, 0)
secuencia de
disparos: (t1,t2,t4,t6)
t2 y t3 quedaron
habilitadas. ...

Ejecucin de la Red de Petri

La secuencia de disparos dada es una de las


posibles secuencias, no la nica.
El modelo es no determinstico, en el sentido
que dado un marking inicial 0 distintas
evoluciones de la red son posibles.

Ejecucin de una Red de


Petri
t2

t1

t3
t1 siempre habilitada

Modelado con Redes de Petri

Una transicin, usualmente, modela un


evento o accin.
El disparo de la transicin representa la
ocurrencia de tal evento o la ejecucin de la
accin.
Una transicin est habilitada, si se
satisfacen las condiciones necesarias para la
ocurrencia de tal evento o accin.
La presencia de tokens en los input places
modelan tales condiciones.

Modelado con Redes de


p1
p2
Petri

t1

t2

p3

p4

Eventos del
proceso 1
p5

t3

t1 = proceso 1 solicita
recurso

t4

p6

p7

t5

t6

t3 = proceso 1 toma
recurso
t5 = proceso 1 libera
recurso

Modelado con Redes de


p1
p2
Petri

t1

t2

p3

p4

Eventos del
proceso 2
p5

t3

t2 = proceso 2 solicita
recurso

t4

p6

p7

t5

t6

t4 = proceso 2 toma
recurso
t6 = proceso 2 libera
recurso

Modelado con Redes de


p1
p2
Petri

t1

t2

p3

p4

p5

t3

t4

p6

p7

t5

t6

p3 representa la
disponibilidad o
no de un recurso.

Modelado con Redes de


Petri
p1
p2
Transiciones
concurrentes

t1

t2

p3

p4

p5

t3

t4

p6

p7

t5

t6

t1 y t2 habilitadas
y el disparo de una
no deshabilita la
otra =>
concurrentes

Modelado con Redes de


Petri
p1
p2
Transiciones en conflicto
t1
p3

p4

t2

t3

p5

t4

p6

p7

t5

t6

t3 y t4 habilitadas
y el disparo de una
deshabilita la otra
=> en conflicto

Modelado con Redes de


Petri
p1
p2

Starvation
secuencia de
disparos:

t1

t2

p3

p4

t3

p5

t4

p6

p7

t5

t6

(t2)

Modelado con Redes de


Petri
p1
p2

Starvation
secuencia de
disparos:

t1

t2

p3

p4

p5

t3

t4

p6

t5

t6

p7

(t2,t4)

Modelado con Redes de


Petri
p1
p2

Starvation
secuencia de

disparos:

t1

t2

p3

p4

p5

t3

t4

p6

p7

t5

t6

(t2,t4,t6)

Modelado con Redes de


Petri
p1
p2

Starvation
secuencia de
disparos:

t1

t2

p3

p4

t3

p5

t4

p6

p7

t5

t6

(t2,t4,t6,t2)

Modelado con Redes de


Petri
p1
p2

Starvation
secuencia de
disparos:

t1

t2

p3

p4

p5

t3

t4

p6

t5

t6

p7

(t2,t4,t6,t2,t4)

Modelado con Redes de


Petri
p1
p2

Starvation
secuencia de disparos:

t1
p3

p4

(t2,t4,t6,t2,t4,t6,...)

t2
p5

starvation de proceso 1

t3

t4

p6

p7

t5

t6

Modelado con Redes de


Petri
p2
p1
Deadlock

p3

t1
p4

t1: proc1 solicita ambos recursos

t2
p5

t3: proc1 toma un recurso


t3: proc1 toma otro recurso
t5: proc1 libera ambos recursos

t4

t3
p6

p7

t2: proc2 solicta ambos recursos


t4: proc2 toma un recurso

t3
p8

t4

t4: proc2 toma otro recurso


p9

t5

t6

t6: proc2 libera ambos recursos

Modelado con Redes de


Petri
p2
p1
Una
posible ejecucin
sin

deadlock
p3
t1
t2
p4

p5

t4

t3
p6

(t1)
p7

t3
p8

t4
p9
t5

t6

secuencia de
disparos:

Modelado con Redes de


Petri
p2
p1
Una
posible ejecucin
sin

deadlock
p3
t1
t2
p4

p5

t4

t3
p6

(t1, t3)
p7

t3
p8

t4
p9
t5

t6

secuencia de
disparos:

Modelado con Redes de


Petri
p2
p1
Una
posible ejecucin
sin

deadlock
p3
t1
t2
p4

p5
t4

t3
p6

(t1, t3, t3)


p7

t3
p8

t4
p9

t5

t6

secuencia de
disparos:

Modelado con Redes de


Petri
p2
p1
Una
posible
ejecucin
sin

deadlock
p3
t1
t2
p4

p5

t4

t3
p6

(t1, t3, t3, t5)


p7

t3
p8

t4
p9
t5

t6

secuencia de
disparos:

Modelado con Redes de


Petri
p2
p1
Una
posible ejecucin
con

deadlock
p3
t1
t2
p4

p5

t4

t3
p6

(t1)
p7

t3
p8

t4
p9
t5

t6

secuencia de
disparos:

Modelado con Redes de


Petri
p2
p1
Una
posible ejecucin
con
deadlock
p3
t1
t2
p4

p5

t4

t3
p6

(t1, t2)
p7

t3
p8

t4
p9
t5

t6

secuencia de
disparos:

Modelado con Redes de


Petri
p2
p1
Una
posible ejecucin
con
deadlock
p3
t1
t2
p4

p5

t4

t3
p6

(t1, t2, t3)


p7

t3
p8

t4
p9
t5

t6

secuencia de
disparos:

Modelado con Redes de


Petri
p2
p1
Una
posible ejecucin
con
deadlock
p3
t1
t2
p4

p5

t4

t3
p6

(t1, t2, t3, t4)

t3
p8

p7

t4
p9
t5

t6

secuencia de
disparos:

deadlock (ninguno
de los procesos
puede continuar)

DTE para ProductorConsumidor


Primera aproximacin

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

Suponemos un buffer con capacidad para 1 mensaje.

PN para ProductorConsumidor
Primerawrite
aproximacin
consume
p1

p2

c1

produce

c2

read
read

write

DTE para ProductorConsumidor

PN para ProductorConsumidorconsume
c1

c2
read

1
write

p1

p2

produce

Limitaciones de las Redes


de Petri tradicionales y
algunas extensiones

Limitacin: los tokens son annimos.

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.

Extensin: asignacin de valores a tokens


ms asociacin de predicados y acciones
a las transiciones.

p2
p1
p1 < p2
p4:=p2+p1

7
3

t1

t2

p3
p2 = p3
p4:=p3-p2

p5 p5:= p2+p3

p4

t1 habilitada: tuplas ready: (3,7) (3,4)


elecciones no determinsticas
t2 habilitada: tuplas ready: (4, 4)

p2
p1
p1 < p2
p4:=p2+p1

t1
p4

t2
10

sec. de disparos: (t1)


t1 deshabilitada.
t2 habilitada: tuplas ready: (4, 4)

p3
p2 = p3
p4:=p3-p2

p5 p5:= p2+p3

p2
p1
p1 < p2
p4:=p2+p1

p3

t1
p4

t2
10
0

sec. de disparos: (t1, t2)

p2 = p3
p4:=p3-p2

p5 p5:= p2+p3
8

Limitaciones de las Redes


de Petri tradicionales y
algunas extensiones

Limitacin: no se pueden fijar polticas de


seleccin cuando varias transiciones estn
habilitadas.
Extensin: asignacin esttica o dinmica
de prioridades a las transiciones.

p2
p1

prioridad = 1

t1
p4

p3

t2 prioridad = 2
p5

t1 y t2 habilitadas, dispara t2 porque tiene mayor


prioridad.

Limitaciones de las Redes


de Petri tradicionales y
algunas extensiones

Limitacin: Problemas con el manejo del tiempo.

p.e. un proceso enva mensajes a una cierta velocidad. Estos


son colocados en un buffer y procesados. Si un mensaje no
es tomado del buffer antes del arribo del prximo, es
sobrescrito por el nuevo.

Extensiones: Redes de Petri con tiempo donde a cada


transicin se le asocia un par <tmin, tmax> que indica el
intervalo de tiempo dentro del cual debe disparar.

p2
p1

prioridad = 1
tmin = 1
tmax = 4

t1
p4

t2

p3
prioridad = 2

p5 tmin = 2
tmax = 3

Vous aimerez peut-être aussi