Especificaci - PowerPoint PPT Presentation

About This Presentation
Title:

Especificaci

Description:

Especificaci n formal de modelos Material extra do del ramo cc20a (N. Baloian, L. Guerrero, J. Pino) – PowerPoint PPT presentation

Number of Views:43
Avg rating:3.0/5.0
Slides: 55
Provided by: nbaloian
Category:

less

Transcript and Presenter's Notes

Title: Especificaci


1
Especificación formal de modelos
  • Material extraído del ramo cc20a
  • (N. Baloian, L. Guerrero, J. Pino)

2
Especificación formal de modelos
  • La especificación formal debe dar instrucciones
    claras para la ejecución del modelo (simulación)
  • Un concepto fundamental el de estado del modelo
  • Un estado de un modelo es descrito por el valor
    que tienen en cierto momento las variables de
    estado

3
Variables de Estado
  • Los componentes de un modelo son descritos por un
    conjunto de variables descriptivas.
  • Las reglas que especifican la interacción entre
    componentes, determinan la manera en la cual
    estas variables descriptivas cambian con el
    tiempo.
  • Para que una computadora sea capaz de simular el
    modelo, debe "conocer" estas reglas de
    interacción.
  • En muchos modelos es posible designar un pequeño
    subconjunto de todas las variables descriptivas
    de tal forma que es suficiente conocer el valor
    actual de este subconjunto de variables para
    calcular los valores futuros de todas las
    variables descriptivas.
  • A este subconjunto de variables las llamaremos
    "variables de estado".

4
Descripción formal de Variables de Estado
  • Considere un modelo con las variables
    descriptivas a1, a2, a3, ..., an.
  • Decimos que los valores de estas variables son
    y1, y2, y3, ..., yn en un instante de tiempo t,
    si a1 toma el valor y1, a2 toma el valor y2, ...,
    an toma el valor yn en el instante t.
  • Se considera un modelo "bien definido" si las
    reglas de interacción entre componentes
    determinan, para cada instante futuro t' (t' gt
    t), un único conjunto de valores y'1, y'2, y'3,
    ..., y'n dados los valores y1, y2, y3, ..., yn en
    el instante t.
  • De este modo, dados los valores y1, y2, ..., yn
    en un tiempo t, el computador puede calcular los
    valores y'1, y'2, ..., y'n para cualquier tiempo
    t' (con t' gt t).

5
Ejemplo 6 - Sistema de trenes
  • 2 trenes, el "rápido" y el "expreso" quieren
    llegar a un punto común para traspasar una carga.
    Cada tren corre sobre sus propios rieles,
    paralelos a los del otro. Los trenes disponen de
    un sistema simple de comunicación que permite
    detectar si el otro tren está hacia adelante o
    hacia atrás. El ferrocarril corre entre -L y L, y
    hay hitos en los cuales se activa el sistema de
    comunicación (hay un total de 2L 1 hitos).

Simplificado (modelado)
6
Descripción
  • Componentes
  • TRENRAPIDO, TRENEXPRESO, HITOS.
  •  
  • Variables descriptivas
  • TRENRAPIDO RAPIDO - con rango HITOS describe
    la ubicación del TRENRAPIDO.
  • TRENEXPRESO EXPRESO - con rango HITOS describe
    la ubicación de TRENEXPRESO.
  • Para cada P en HITOS
  • RSEÑALENP - con rango -1,1 (en qué dirección
    se encuentra R)
  • ESEÑALENP - con rango -1,1 (en qué dirección
    se encuentra P)

7
Interacción entre componentes
  • La base temporal es discreta t, t1, t2, ...
  • El valor de RSEÑALENP en el instante t es
    D((RAPIDO en t) - P) donde D(x) es 1 si x gt 0 y
    -1 si x lt 0.
  •  El valor de ESEÑALENP en el instante t es
    D((EXPRESO en t) - P).
  • RAPIDO en th RAPIDO en t
    ESEÑALEN(RAPIDO en t) en t.
  • EXPRESO en th EXPRESO en t
    RSEÑALEN(EXPRESO en t) en t.

8
Descripción del Estado
El estado del modelo lo podemos representar por
el par (r,e), como se muestra en la siguiente
figura
9
Funciones de Transición
  • Las funciones de transición pueden ser escritas
    íntegramente en función de las variables de
    estado
  • Muchas veces se usan funciones y/o variables
    auxiliares para facilitar su descripción
  • Función de transición
  • r(t1) r(t) D(e(t) r(t)),
  • e(t1) e(t) D(r(t) e(t))
  • Está íntegramente en función de r y e

10
Ejemplo 7 - Un montacargas simplificado
  • Se trata de un montacargas que puede viajar entre
    dos pisos. Tiene una puerta.
  • En los pisos hay un botón para llamar al
    montacargas, y un timbre que suena cuando llega y
    abre su puerta.
  • No hay botón interior, por lo que oralmente se
    debe pedir a alguien en el otro piso que presione
    el botón para hacer moverse el montacargas
  • Se está modelando para ver cuán complejo es
    agregarle otros componentes.

11
Descripción (1)
COMPONENTES MONTACARGAS, PISO-1, PISO-2
VARIABLES DESCRIPTIVAS MONTACARGAS PUERTA -
con rango ABIERTA, CERRADA LUGAR - con rango
UNO,DOS,SUBIENDO,BAJANDO LUGAR x indica si
el montacargas está en ese instante en un piso,
subiendo o bajando. RETARDO - con rango
0,1,2,3 RETARDO y significa que hace y
unidades de tiempo se le pidió algo específico al
montacargas. Para PISO-i (i 1,2) BOTON-i con
rango APRETADO, NO-APRETADO BOTON-i z indica
si el botón en el piso i ha sido apretado o no en
ese instante. TIMBRE-i, con rango
SONIDO,SILENCIO
12
INTERACCION ENTRE COMPONENTES
  • El MONTACARGAS permanece indefinidamente en el
    piso al que llegó con su puerta ABIERTA, a menos
    que alguien presione un BOTON.
  • Si se presiona un BOTON y éste es del mismo PISO
    en el que está el MONTACARGAS, éste permanece en
    ese piso con la puerta ABIERTA durante las
    próximas 3 unidades de tiempo.
  • Si se presiona un BOTON y el MONTACARGAS no está
    con la puerta ABIERTA (está SUBIENDO o BAJANDO)
    no pasa nada.
  • Si se presionan ambos botones al mismo tiempo,
    tiene prioridad el botón del mismo piso en el que
    está el MONTACARGAS.
  • Si se presiona un BOTON y el MONTACARGAS está en
    el otro piso y con la puerta ABIERTA, en la
    próxima unidad de tiempo ésta se cierra, y en la
    siguiente unidad de tiempo viaja (sube o baja con
    la puerta CERRADA), demorando 2 unidades de
    tiempo adicional. Después abre la puerta.
  • Al llegar a un piso, se hace sonar el TIMBRE del
    piso correspondiente durante una unidad de
    tiempo.

13
ESPECIFICACION DE LA MAQUINA SECUENCIAL
(AUTOMATA) (ENTRADAS, ESTADOS, SALIDAS, d, l)
(a) ENTRADAS Las variables de entrada son
BOTON1 y BOTON2. Una entrada es entonces (b1,
b2), con b1, b2 Î APRETADO, NOAPRETADO.
Resumiremos APRETADO como A y NOAPRETADO como
N.Por ejemplo, si en el instante t el BOTON1
está apretado y el BOTON2 no lo está, el valor
de las variables de entrada es (A,N). De este
modo ENTRADAS (A,A), (A,N), (N,A),
(N,N) Para especificar la función d, algunas
veces queremos decir que da lo mismo el valor de
un cierto botón. En este caso usamos i
(indiferente).
14
Estados
Las variables de estado son PUERTA, LUGAR,
RETARDO. Entonces, un estado será un trío
(p,l,r), donde p Î ABIERTA, CERRADAl Î UNO,
DOS, SUBIENDO, BAJANDOr Î 0, 1, 2, 3 Por
tanto, ESTADOS Í ABIERTA, CERRADA x UNO, DOS,
SUBIENDO, BAJANDO x 0, 1, 2, 3En realidad es
un subconjunto propio porque hay estados
imposibles, tales como (ABIERTA, SUBIENDO, i), ya
que el montacargas sólo sube con la puerta
cerrada.
15
SALIDAS
Arbitrariamente elegimos algunas variables de
salida. Digamos que son PUERTA, LUGAR, TIMBRE1,
TIMBRE2. Por tanto, SALIDAS Í ABIERTA,
CERRADA x UNO, DOS, SUBIENDO, BAJANDO x
SONIDO, SILENCIO x SONIDO, SILENCIO
16
d (función de transición incompleta)
Consideremos primero un estado inicial factible y
construyamos las transiciones a partir de este.
Un estado inicial factible es, por ejemplo,
(ABIERTA, UNO, 0). Hagamos un diagrama en que los
nodos son los estados, y los arcos son las
entradas
17
Tabla de Transiciones
Con este diagrama es fácil construir una tabla
para d d ESTADOS x ENTRADAS ESTADOS
. . .
. . .
. . .
18
l (función de salida)
(p, l, r, SILENCIO, SONIDO) si p CERRADA,
l SUBIENDO y r 3(p, l, r, SONIDO,
SILENCIO) si p CERRADA, l
BAJANDO y r 3(p, l, r, SILENCIO, SILENCIO) en
otros casos
l (p, l, r, b1, b2)
19
Modelos de eventos discretos
Aunque en el sistema real el tiempo transcurre de
forma continua, los cambios de estado ocurren a
saltos (gatillados por eventos arbitrarios).
Modelos de eventos discretos
Modelos de tiempo continuo
Modelos de ecuaciones diferenciales
Modelos de tiempo continuo y estado continuo. Los
cambios de estado son continuos. Ej. 3. (ciudad,
poblacion)
20
Simulación de eventos discretos
Supongamos que nos dan los valores de las
variables de entrada del ejemplo 7 (montacargas)
en una tabla
Con esto es posible hacer la simulación del
montacargas, pero el programa será poco
eficiente. Hay formas eficientes de almacenar
una matriz poco densa. También hay formas más
eficientes de simular, que calcular para cada
incremento de t, el nuevo estado y el valor de
las variables de salida.
21
Eficiencia en los modelos de eventos discretos
Si hacemos un diagrama con el valor de las
variables
No tiene sentido hacer el cálculo de la
transición de estados durante 200 iteraciones,
cuando nada significativo ha ocurrido. Sin
embargo, en el instante t 200 hay algo
interesante un evento. Podríamos, en el instante
t 0, decidir avanzar directamente al instante t
200, ya que nada ha cambiado en el modelo. Esto
nos ahorraría tiempo de computador. En la mayor
parte de los sistemas que en la práctica se
simulan, ocurre algo parecido. Esto se denomina
simulación de eventos discretos.
22
Consideraciones para la eficiencia
  • Observen que se tiene una tabla de entradas, que
    en el caso del montacargas es el punto de partida
    de los eventos.
  • Para poder realizar simulación de eventos
    discretos, es necesario que los eventos sean
    predecibles (el instante en que ellos van a
    ocurrir puede ser conocido de alguna manera).
  • En sistemas reales, el instante de ocurrencia de
    un evento no se conoce por una tabla.
  • Una segunda condición para realizar simulación
    de eventos discretos es que todo cambio de estado
    es una consecuencia de un evento pre-programado.
  • El modelo entonces avanza a saltos. Nada
    significativo ocurre entre los saltos.

23
Especificación de instantes de ocurrencia de
eventos
  • Cómo se especifican los instantes de ocurrencia?
  • La forma usual es mediante una variable
    aleatoria.
  • Una variable aleatoria Y tiene asociada una
    función de distribución acumulada, y al
    muestrearse entrega un valor de su rango.
  • Y S R (en los números reales), donde S es el
    espacio muestral

24
Variables Aleatorias
En un programa de computador, muestrear una
variable aleatoria consiste en llamar una rutina
que entrega como resultado un valor del rango de
la variable aleatoria.En el ejemplo del
montacargas, podríamos tener una variable
aleatoria APR1, tal que si la muestreamos nos da
el número de instantes, a partir del actual, en
que el BOTON1 va a tener valor A. Similarmente
con APR2. Notación R números reales
positivos R0 números reales positivos y
cero R0, números reales positivos, cero e
infinito ( r para todo r en R) Si A es
un conjunto, denotamos como A al conjunto de
todas las secuencias finitas de A. Una secuencia
típica de A es a1, a2, ..., an, donde cada ai Î
A. Esta secuencia se dice que tiene largo n.
Cuando n 0, tenemos la secuencia vacía.
25
Ejemplo 8 Un supermercado simplificado
Los clientes que entran a un supermercado tienen
nombres sacados del conjunto a, b, ..., z. Un
cliente que entra, pasa al AREACOMPRAS, donde
selecciona sus adquisiciones. Cuando termina se
va a la caja, donde espera en COLA. Después de
pagar al cajero, el cliente se va por la SALIDA.
Observemos que una cola en la caja puede
representarse como x1, x2, ..., xn, con xi Î a,
b, c, ..., z. Es decir, una cola específica es
un elemento de a, b, c, ..., z.
26
Descripción
COMPONENTES ENTRADA, AREA-COMPRAS, CAJA, SALIDA
VARIABLES DESCRIPTIVAS ENTRADA HOLA - con
rango 0,a,b,c,..., z HOLA 0 significa que
no hay clientes en la entrada. HOLA x
significa que el cliente x está en la ENTRADA.
AREA-COMPRAS T-COMPRAS - con rango en los
reales positivos una variable aleatoria que
indica el tiempo que demora un cliente en hacer
sus adquisiciones en el AREA-COMPRAS LISTA-CLIENT
ES - con rango (a,b,...,z x R). (x1, t1),
(x2, t2), ..., (xn, tn) significa que el cliente
xi saldrá del AREACOMPRAS en ti unidades de
tiempo a partir de ahora.
27
Variables Descriptivas
CAJA COLA - con rango a, b, c, ..., z. COLA
x1, x2, ..., xn indica que x1 está primero en la
cola, x2 es segundo, etc. TSERVICIO - con rango
R. Variable aleatoria que da el tiempo en el que
será procesado el cliente que está primero en la
cola. SERVICIORESTANTE - con rango R.
SERVICIORESTANTE s significa que el cliente
que está siendo atendido, dejará la CAJA en s
unidades de tiempo a partir de ahora.OCUPADO -
con rango SI, NO indica si la CAJA está
atendiendo o no un cliente. SALIDA CHAO - con
rango 0, a, b, c, ..., z CHAO 0 indica que
no hay clientes en la salida. CHAO x significa
que el cliente x está saliendo.
28
INTERACCION ENTRE COMPONENTES
  • Cuando un cliente x llega a la ENTRADA en t, su
    presencia es indicada por HOLA x. Entra al área
    de compras (HOLA se pone en 0) y después de
    muestrear TCOMPRAS, obtiene un tiempo de
    adquisiciones t. Por tanto, (x, t) es puesto en
    la lista LISTACLIENTES.
  • A medida que el reloj avanza, (x, t) se
    decrementa hasta (x, 0). En ese instante, el
    cliente x deja el AREACOMPRAS, y se pone al
    final de la COLA en la caja. A medida que los
    clientes son procesados, avanzan hacia el frente
    de la COLA. Cuando es el primero, se muestrea
    TSERVICIO para obtener un tiempo s y se asigna s
    a SERVICIORESTANTE.
  • El cliente x espera en la cabeza de la COLA hasta
    que SERVICIORESTANTE se hace 0. En ese momento
    se va de la CAJA (y del supermercado). Su paso
    por la SALIDA (que toma tiempo 0) se señala por
    CHAO x.

29
Esquema de un cliente
30
Esquema en un instante t
Ejemplo En un instante dado t, la situación
puede ser la siguiente
31
Esquema en un instante t8
En el instante t 8 la situación podría ser la
siguiente (por ejemplo)
32
Instantes de Ocurrencia
El ejemplo anterior clarifica las ideas de
simulación de eventos discretos. En lugar de
avanzar el tiempo del modelo como t, t1, t2,
..., si en un momento determinado el tiempo del
modelo es t, podemos avanzar el tiempo al próximo
instante de ocurrencia. Supongamos, para
empezar, que no hay llegada de clientes (un
modelo autónomo). Esto puede ocurrir cuando el
supermercado ha cerrado la ENTRADA. Entonces, sea
t el instante actual, t' el próximo instante de
ocurrencia. t' t min t1, t2, ..., tn,
s Es decir, t' será el instante actual más el
mínimo de los tiempos que quedan para que se
produzca un evento. Los t1, t2, ..., tn y s son
relojes decrecientes (timers) cuando su valor se
hace 0, ocurre un evento.

33
Modelamiento de Sistemas
Cómo será la evolución de las variables durante
el tiempo?

34
Instantes de ocurrencia de eventos
Veamos qué ocurre entre dos instantes de
ocurrencia. Por ejemplo, entre (t tb) y (t
tc) - La variable COLA permanece constante
(con valor b). - La variable TSERVICIO no es
muestreada permanece constante con el último
valor de sb. - La variable SERVICIORESTANTE
decae linealmente. - La variable CHAO permanece
constante (valor 0). En general, entre dos
instantes de ocurrencia cualesquiera sucede lo
mismo. Por tanto, el tiempo se puede hacer saltar
entre instantes de ocurrencia, y esto es la base
de la simulación de eventos discretos.

35
Autonomía del modelo
Supongamos que la rutina que muestrea la variable
aleatoria TSERVICIO necesita el valor anterior
que ella misma generó para obtener la muestra.
Con este supuesto y recordando que la ENTRADA
está cerrada, las variables de estado
son LISTACLIENTES, con valor típico (x1, t1),
..., (x2, t2).COLA, con valor típico y y1,
..., yn.TSERVICIO, con valor típico
r.SERVICIORESTANTE, con valor típico s. Por
tanto, los estados son S ( ((x1, t1), (x2,
t2), ...), y, r, s)
36
CASO NO-AUTONOMO
La llegada de clientes es un fenómeno externo al
modelo, pero también puede modelarse. En muchos
casos, la llegada de clientes, o el periodo de
tiempo entre llegada de clientes, puede modelarse
con una variable aleatoria con una distribución
acumulada conocida. Sea ENTRELLEGADAS esta
variable (es decir, si muestreamos ENTRELLEGADAS
obtenemos la cantidad de tiempo que hay que
esperar para que llegue un nuevo cliente a partir
del último).

37
Modelamiento de Sistemas
Podemos crear una nueva variable LLEGA, que se
inicializa con muestreo de ENTRELLEGADAS, y que
va decreciendo con el tiempo, de modo que cuando
se hace 0, aparece el nuevo cliente, se muestrea
ENTRELLEGADAS, se asigna a LLEGA, etc. Por
tanto, las variables quedan

Finalmente, a cada cliente que llega se le asigna
un tiempo de compras, muestreando la variable
aleatoria TCOMPRAS. Por tanto, todos los eventos
son predecibles, que era una de las condiciones
de este tipo de simulación. Cuál es ahora el
próximo instante de ocurrencia? Si el valor en t
de LLEGA es g, entonces t' t min t1,
t2, ..., tn, s, g
38
EVENTOS DISCRETOS
Necesitamos una estructura de datos para la
simulación de eventos discretos la lista
PROXIMOSEVENTOS. Se trata de una lista ordenada
de menor a mayor por el instante de ocurrencia

Donde ta lt tb lt td
39
Pasos en la Simulación
Inicialización 1. Poner variable RELOJ con el
tiempo de modelo inicial t0. 2. Poner variables
S1, S2, ..., Sp con los valores iniciales de las
variables de estado (s1, s2, ..., sp). 3. Para
las componentes que tengan un evento, poner el
par (EVENTODEa, ta) en la lista
PROXIMOSEVENTOS, en que ta es el instante de
ocurrencia calculado. (Ordenar lista). Avance
del tiempo 4. Poner el RELOJ con el ta del primer
par en la lista PROXIMOSEVENTOS. Transición 5.
Realice la transición de estados, extrayendo de
la lista PROXIMOSEVENTOS todos los pares que
tengan instante igual a RELOJ, re-programando
componentes, cambiando variables, etc. En esta
etapa se re-colocan pares (EVENTODEa, ta) en la
lista PROXIMOSEVENTOS, cuidando de ponerlos en
el orden apropiado.
40
Pasos en la Simulación
todavía hay una transición con este valor de
RELOJ? 6. Si el valor de RELOJ iguala el
instante del primer par, vaya a 5. Chequeo de
término 7. Si el valor de RELOJ iguala o excede
el instante de término t1, PARE. En caso
contrario, vaya a 4.
41
Choose The Appropriate Simulation Tools
  • Assuming Simulation is the appropriate means,
    three alternatives exist
  • 1. Build Model in a General Purpose
    Language
  • 2. Build Model in a General Simulation
    Language
  • 3. Use a Special Purpose Simulation Package

42
MODELLING W/ GENERAL PURPOSE LANGUAGES
  • Advantages
  • Little or no additional software cost
  • Universally available (portable)
  • No additional training (Everybody knows(language
    X) ! )
  • Disadvantages
  • Every model starts from scratch
  • Very little reusable code
  • Long development cycle for each model
  • Difficult verification phase

43
GEN. PURPOSE LANGUAGES USED FOR SIMULATION
  • FORTRAN
  • Probably more models than any other language.
  • PASCAL
  • Not as universal as FORTRAN
  • MODULA
  • Many improvements over PASCAL
  • ADA
  • Department of Defense attempt at standardization
  • C, C
  • Object-oriented programming language

44
MODELING W/ GENERALSIMULATION LANGUAGES
  • Advantages
  • Standardized features often needed in modeling
  • Shorter development cycle for each model
  • Much assistance in model verification
  • Very readable code
  • Disadvantages
  • Higher software cost (up-front)
  • Additional training required
  • Limited portability

45
GENERAL PURPOSE SIMULATION LANGUAGES
  • GPSS
  • Block-structured Language
  • Interpretive Execution
  • FORTRAN-based (Help blocks)
  • World-view Transactions/Facilities
  • SIMSCRIPT II.5
  • English-like Problem Description Language
  • Compiled Programs
  • Complete language (no other underlying language)
  • World-view Processes/ Resources/ Continuous

46
GEN. PURPOSE SIMULATION LANGUAGES (continued)
  • MODSIM III
  • Modern Object-Oriented Language
  • Modularity Compiled Programs
  • Based on Modula2 (but compiles into C)
  • World-view Processes
  • SIMULA
  • ALGOL-based Problem Description Language
  • Compiled Programs
  • World-view Processes

47
GEN. PURPOSE SIMULATION LANGUAGES (continued)
  • SLAM
  • Block-structured Language
  • Interpretive Execution
  • FORTRAN-based (and extended)
  • World-view Network / event / continuous
  • CSIM
  • process-oriented language
  • C-based (C based)
  • World-view Processes

48
MODELING W/ SPECIAL-PURPOSE SIMUL. PACKAGES
  • Advantages
  • Very quick development of complex models
  • Short learning cycle
  • No programming--minimal errors in usage
  • Disadvantages
  • High cost of software
  • Limited scope of applicability
  • Limited flexibility (may not fit your specific
    application)

49
SPECIAL PURPOSE PACKAGES USED FOR SIMUL.
  • NETWORK II.5
  • Simulator for computer systems
  • OPNET
  • Simulator for communication networks, including
    wireless networks
  • COMNET III
  • Simulator for communications networks
  • SIMFACTORY
  • Simulator for manufacturing operations

50
THE REAL COST OF SIMULATION
  • Many people think of the cost of a simulation
    only in terms of the software package price.
  • There are actually at least three components to
    the cost of simulation
  • 1. Purchase price of the software
  • 2. Programmer / Analyst time
  • 3. Timeliness of Results

51
TERMINOLOGY
  • System
  • A group of objects that are joined together in
    some regular interaction or interdependence
    toward the accomplishment of some purpose.
  • Entity
  • An object of interest in the system.
  • E.g., customers at a bank

52
TERMINOLOGY (continued)
  • Attribute
  • a property of an entity
  • E.g., checking account balance
  • Activity
  • Represents a time period of specified length.
  • Collection of operations that transform the state
    of an entity
  • E.g., making bank deposits

53
TERMINOLOGY (continued)
  • Event
  • change in the system state.
  • E.g., arrival beginning of a new execution
    departure
  • State Variables
  • Define the state of the system
  • Can restart simulation from state variables
  • E.g., length of the job queue.

54
TERMINOLOGY (continued)
  • Process
  • Sequence of events ordered on time
  • Note
  • the three concepts(event, process,and activity)
    give rise to three alternative ways of building
    discrete simulation models
Write a Comment
User Comments (0)
About PowerShow.com