Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
specificarion
Juan de Lara
Escuela Politcnica Superior Ingeniera Informtica Universidad Autnoma de Madrid
1
z Indice
y Introduccin. y DEVS atmico. y DEVS compuestos. y DEVS y Orientacin a Objetos. y Multi-Formalismo: y Bibliografa
z Introduccin
Bernard Zeigler (1976, Theory of Modelling and Simulation)
Bernard Zeigler
z Introduccin
Grafo de eventos 15 50 60
rojo
{ S = Rojo }
verde
{ S = verde } Trayectoria de Estados
amarillo
{ S = amarillo }
amarillo rojo
z Introduccin
Autmata Finito = DEVS sin transiciones externas y sin salida
S1 ta(s3)
ta(s1)
S2 ta(s2)
Trayectoria de Estados S3
S2
ta(s1)
S1 0
int(s1)
int(s3)
z Introduccin
X
S1
ta(s1) ta(s3)
S2 ta(s2) x
S3
S S3
t e
ta(s3)
ta(s2)
S2
int(s2) ext(s3,e,X)
ta(s1)
S1
int(s1)
t
6
z Introduccin
X
x
S S3 e
S1
t
ta(s1)/(s1)
S2
ta(s2) /(s1) x
ta(s3)
ta(s3) /(s3)
S3
ta(s2)
S2
int(s2) ext(s3,e,X)
ta(s1)
S1 Y (s2) (s1) (s3)
int(s1)
z Indice
y Introduccin. y DEVS atmico. y Definicin formal. y Ejemplo. y DEVS con puertos. y Ejemplo. y DEVS compuestos. y DEVS y Orientacin a Objetos. y Multi-Formalismo. y Bibliografa
base temporal conjunto de valores de entrada conjunto de estados conjunto de valores de salida funcin de transicin interna funcin de transicin externa, donde Q={(s,e)|sS, 0e ta(s)} es el conjunto de estados total e es el tiempo que ha pasado desde la ltima transicin. SY La funcin de salida. S+0, El conjunto de los nmeros reales positivos incluido 0 e .
9
xo
t
s2 s1 so
ext(s0,e,X0)
y1
Y
yo
(s1)
10
y int (fase, count) = (pasivo, count) y (activo, count) = 1 y ta (pasivo, count) = y ta (activo, count) = 0
11
0
t
S
(activo, 0) (pasivo, 1) (pasivo, 0) ext ext int ext ext int
12
13
0
S
13
15 17
Busy Busy N=0 N=1 T=10 T=8 Busy N=2 T=6
21 23
1
Y
14
15
16
switch
y InPorts={in1, in2}, Xin1 = Xin2 = {1, 0} y OutPorts={out1, out2}, Yin1 = Yin2 = {0, 1} y S = {pasivo, ocupado} x +0 x {in1, in2} x {0, 1} x {true, false} y S0 = (pasivo, 0, in1, 0, false) y ext(fase, , inPort, store, Sw, e, (p, v)) = y y
(ocupado, t_proceso, p, v, not Sw) si fase = pasivo y p {in1, in2} (fase, -e, inPort, store, Sw) en otro caso int (fase, , inPort, store, Sw) = (pasivo, , inPort, store, Sw) (fase, , inPort, store, Sw) = y (out1, store) si fase == ocupado y Sw = true and inPort = in1 y (out2, store) si fase == ocupado y Sw = true and inPort = in2 y (out1, store) si fase == ocupado y Sw = false and inPort = in2 y (out2, store) si fase == ocupado y Sw = false and inPort = in1 ta(fase, , inPort, store, Sw) =
17
Xin2
18
z Indice
y Introduccin. y DEVS atmico. y DEVS compuestos. y Ejemplo y DEVS Paralelo. y DEVS y Orientacin a Objetos. y Multi-Formalismo. y Bibliografa
19
zDEVS Compuestos
CDEVS = <X, Y, D, {Md|dD}, EIC, EOC, IC, Select>
y T = , y X={(p,v)|p InPorts, v Xp} y Y={(p,v)|p OutPorts, v Yp} yD
base temporal. conjunto de valores y puertos de entrada. conjunto de valores y puertos de salida. conjunto de los nombres de los componentes.
Requisitos de las conexiones y EIC {((N, ipN), (d, ipd)) | ipN InPorts, d D, ipd InPortsd} y EOC {((d, opd), (N, opN)) | opN OutPorts, d D, opd OutPortsd} y IC {((a, opa), (b, ipb)) | a, b D, a b, opa OutPortsa, ipb InPortsb} y Select: 2D-{} D. Una funcin para deshacer empates en caso de que dos o ms
componentes puedan aplicar int a la vez.
20
zDEVS Compuestos
y Los DEVS tienen la propiedad de ser un conjunto cerrado bajo
composicin. c CDEVS, s DEVS | el comportamiento de c y s es el mismo.
21
y int (fase, count) = (pasivo, count) y (activo, count) = (out, 1) y ta (pasivo, count) = y ta (activo, count) = 0
22
23
24
25
zDEVS Paralelos
PDEVS = <XM, YM, S, int, ext, con,, ta>
y T = , y XM={(p,v)|p InPorts, v Xp} y YM={(p,v)|p OutPorts, v Yp} yS y int : SS y con: Q x XMb S y ext : Q x XMb S y : y ta:
base temporal. conjunto de valores y puertos de entrada. conjunto de valores y puertos de salida. conjunto de estados funcin de transicin interna funcin de transicin confluente funcin de transicin externa, donde Q={(s,e)|sS, 0e ta(s)} es el conjunto de estados total e es el tiempo que ha pasado desde la ltima transicin. SYMb La funcin de salida. S+0, El conjunto de los nmeros reales positivos incluido 0 e .
26
zDEVS Paralelos
y Permite la activavin de todos los componentes inminentes. y Diferencias con DEVS clsico:
Entradas y Salidas pasan de ser elementos nicos a bolsas ( conjuntos en los que se admite la repeticin).
y y y
con: Decide el prximo estado en caso de colisin entre eventos internos y externos.
DEVS Paralelos compuestos: Como DEVS compuestos pero sin funcin Select.
27
y y y
La implementacin ms natural de DEVS es mediante Orientacin a Objetos. Una herramienta de modelado con DEVS podra permitir la herencia estructural (puertos, conexiones) entre componentes.
28
z Indice
y Introduccin. y DEVS atmico. y DEVS compuestos. y DEVS y Orientacin a Objetos. yMulti-Formalismo: y De DEVS a StateCharts. y Bibliografa
29
Queue Queue
NEXT
NEW
NEW
NEXT
Server Server
S = {arrival, idle} S0 = idle InPorts = {} OutPorts = {ARR} int(arrival) = idle int(idle) = arrival
S = N x {send, None} S0 = (0, None) InPorts = {IN, NEXT} OutPorts = {NEW} int((q, send)) = (q, None) ext((q,x), e), (IN,1)) = q == 0 ? (q+1, x) : (q+1, send) ext((q,x), e), (NEXT,1)) = q > 0 ? (q-1, send) : (0, None)
S = {busy, idle, next} x R S0 = (idle, 0) InPorts = {NEW} OutPorts = {NEXT} int((busy, T)) = (next, 0) int((next, 0)) = (idle, 0) int((idle, 0)) = (idle, 0) ext(((busy,X),e), (NEW,1) ) = (busy, X-e) ext(((idle,X),e), (NEW,1) ) = (busy, Tcomp) ta((busy, X)) = X, ta((idle, 0)) = , ta((next, 0)) = 0 ((next, X)) = (NEXT, 1) 30
Queue Queue
NEXT
NEW
NEW
NEXT
Server Server
S = N x {send, None} S0 = (0, None) InPorts = {IN, NEXT} OutPorts = {NEW} int((q, send)) = (q, None)
S = {busy, idle, next} x R S0 = (idle, 0) InPorts = {NEW} OutPorts = {NEXT} int((busy, T)) = (next, 0) int((next, 0)) = (idle, 0) int((idle, 0)) = (idle, 0) ext(((busy,X),e), (NEW,1) ) = (busy, X-e) ext(((idle,X),e), (NEW,1) ) = (busy, Tcomp) ta((busy, X)) = X, ta((idle, 0)) = , ta((next, 0)) = 0 ((next, X)) = (NEXT, 1) 31
ext((q,x), e), (IN,1)) = q == 0 ? (q+1, x) : (q+1, send) ext((q,x), e), (NEXT,1)) = q > 0 ? (q-1, send) : (0, None) ta((q, send)) =0 ta((q, None)) = ((q, send)) = (NEW, 1)
Queue Queue
NEXT
NEW
NEW
NEXT
Server Server
Queue [q==1]
tm(0) / NEW_NEW_1
S = {busy, idle, next} x R S0 = (idle, 0) InPorts = {NEW} OutPorts = {NEXT} int((busy, T)) = (next, 0) int((next, 0)) = (idle, 0) int((idle, 0)) = (idle, 0)
ARR_IN_1 / q++
[else]
NEXT_NEXT_1
None None
[else] /q=0
ext(((busy,X),e), (NEW,1) ) = (busy, X-e) ext(((idle,X),e), (NEW,1) ) = (busy, Tcomp) ta((busy, X)) = X, ta((idle, 0)) = , ta((next, 0)) = 0 ((next, X)) = (NEXT, 1) 32
Queue Queue
NEXT
NEW
NEW
NEXT
Server Server
Queue [q==1]
tm(0) / NEW_NEW_1
Server
tm(0) / NEXT_NEXT_1
Next Next
[else]
ARR_IN_1 / q++
NEXT_NEXT_1
None None
[else] /q=0
Busy Busy
tm(Tesp)
33
Queue
Server
tm(0) / NEXT_NEXT_1
[q>0] / q-NEXT_NEXT_1
Next Next
None None
[else]
Busy Busy
tm(Tesp)
[else] /q=0
34
En Statecharts, la comunicacin entre componentes ortogonales es mediante eventos. La composicin es ms complicada de entender.
z Bibliografa
Discrete Event and Continuous Complex Dynamic Systems. B. P. Zeigler, H. Praehofer, T. G. Kim. Academic Press, 2000.
36