construcción de un modelo de simulación con orientación a

41
Construcción de un modelo de simulación con orientación a eventos Manuel Gómez Dpto. de Ciencias de la Computación e Inteligencia Artificial Universidad de Granada Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 1 / 41

Upload: others

Post on 23-Oct-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Construcción de un modelo de simulación conorientación a eventos

Manuel Gómez

Dpto. de Ciencias de la Computación e Inteligencia ArtificialUniversidad de Granada

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 1 / 41

1 Introducción

2 Mecanismos de avance del tiempo

3 Componentes y organización de un sistema de simulación de sucesos discreto

4 Aplicaciones

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 2 / 41

Introducción

Introducción

ObjetivoIntroducir la estructura básica general de aplicaciones que implemen-tan modelos dinámicos (influye el paso del tiempo) y discretos (los cam-bios en las variables de estado del sistema se harán en instantes con-cretos de tiempo), siguiendo el enfoque de orientación a eventos.

Aspectos esencialescomponentes esenciales de la aplicación informáticarelación lógica entre dichos componentesel mecanismo de avance del tiempo: cómo se simula el paso deltiempo....

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 3 / 41

Introducción

Introducción (II)

RecordatorioConviene recordar algunos conceptos esenciales:

Entidades: elementos que interactúan entre sí y evolucionan antela ocurrencia de acciones. Las entidades pueden representarse dediferentes formas:

contadores (variables de tipo entero, double, etc)variables booleanasobjetos

Relaciones: vínculos entre las entidades consideradas. Las rela-ciones pueden representarse mediante cualquier estructura quepermita mantener vinculadas las entidades relacionadas (vectores,listas, etc)

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 4 / 41

Introducción

Introducción (III)

RecordatorioEventos: sucesos que provocan cambios en el estado del siste-ma. Los eventos se describen mediante métodos. Hay que teneren cuenta que unos eventos suelen desencadenar otros eventos.Representación natural: llamadas a unos métodos desde otrosManejo del tiempo: mecanismo usado para modelizar el paso deltiempo. Elemento esencial en toda aplicación de simulación: relojde simulación. Se suelen usar mecanismos asíncronos, aunquetambién se usan los síncronos.

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 5 / 41

Introducción

Introducción (IV)

Necesidad de:Mecanismos de recolección de datos: los datos obtenidos de lasimulación se deben poder recoger para su análisis posterior. Sinesto, no tiene sentido la simulaciónMonitorización del proceso: el elemento encargado de esta tarease suele denominar monitor, planificador o ejecutiva de simu-lación. Es el encargado de dar la apariencia de concurrencia, loque permite ver la simulación como la interrelación de objetos queinteractúan entre sí

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 6 / 41

Introducción

Introducción (V)

Elemento esencial:Lista de sucesos: usada por el monitor para guardar las accionesacaecidas en el sistema y pendientes de atender. Serán precisasfunciones para insertar nuevos eventos y para extraer de la lista lainformación del evento a procesar

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 7 / 41

Avance del tiempo

Mecanismos de avance del tiempo

Paso del tiempoAl tratarse de implementar sistemas de simulación dinámicos habráque almacenar el valor del tiempo actual de la simulación, a medidaque esta progresa. La variable usada para contener el valor actual deltiempo de simulación se denomina reloj de simulación.

No es preciso establecer de forma explícita unidad de tiempo (horas,minutos, ...) pero debe haber coherencia con las unidades de tiempousadas para los parámetros de entrada.

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 8 / 41

Avance del tiempo

Mecanismos de avance del tiempo (II)

Tradicionalmente se han considerado dos enfoques distintos:

A) Avance del tiempo una cantidad fijaEl reloj de simulación se incrementará siempre en una cantidad fija ∆t.Aquí:

tras cada incremento se chequea la ocurrencia de eventos en elintervalo previo de tiemposi no hay eventos, el sistema no hará nada

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 9 / 41

Avance del tiempo

Mecanismos de avance del tiempo (III)

Gráficamente puede representarse de la forma siguiente:

Figura: Avance del tiempo una cantidad fija

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 10 / 41

Avance del tiempo

Mecanismos de avance del tiempo (IV)

En la figura anterior, las flechas de la parte superior indican que elavance del tiempo se produce con incrementos fijos. Las marcas siindican los momentos de ocurrencia de los eventos. Se aprecia que:

en (0,∆t) se produce el evento s1. Sin embargo este evento seprocesará en ∆t

en (∆t, 2∆t) no ocurre evento alguno. Tampoco en (2∆t, 3∆t)

en (3∆t, 4∆t) se originan los eventos s2 y s3. Ambos se trataránen 4∆t. Además, será preciso un mecanismo de decisión paradeterminar cuál de ellos se ejecutará en primer lugar

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 11 / 41

Avance del tiempo

Mecanismos de avance del tiempo (V)

DesventajasbloqueAlerta

aunque los eventos ocurren en instantes concretos de tiempo, setratan en el instante que marca el final del intervalo correspondien-teel sistema debe disponer de algún sistema para determinar el pró-ximo evento a tratar, ya que puede que varios eventos se originenen el mismo intervalo temporalhay muchos chequeos innecesarios (periodos sin ocurrencia deeventos)

Posible solución: disminuir el tiempo ∆t. Sin embargo, esto aumenta lafrecuencia de comprobaciones de ocurrencia de eventos. NO sueleusarse este mecanismo de avance del tiempo.

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 12 / 41

Avance del tiempo

Mecanismos de avance del tiempo (VI)

B) Avance del tiempo una cantidad variableEl reloj de simulación se incrementará una cantidad variable de tiempo,determinada por la ocurrencia del próximo evento. Aquí:

el reloj comienza en 0 y se considera el tiempo de ocurrencia delsiguiente eventose actualiza el reloj a dicho tiempo de ocurrenciael proceso de actualización del tiempo de simulación continua has-ta alcanzar el final del tiempo de simulaciónesto implica que los periodos de inactividad se saltan (no hay avan-ce temporal mientras no ocurran eventos)

Este será el mecanismo a usar.

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 13 / 41

Compon. y organización

Componentes y organización de un sistema desimulación

Independientemente del campo de aplicación, los modelos de simula-ción de eventos discretos constan de una serie de elementos caracte-rísticos, existiendo una organización lógica para ellos (estamos consi-derando siempre el mecanismo de avance del tiempo hasta la ocurren-cia del próximo evento). Los elementos esenciales son:

Estado del sistema: colección de variables de estado necesariaspara describir el estado del sistemaLista de sucesos: estructura de datos (sea cual sea su tipo) usa-da para almacenar el tiempo de ocurrencia del próximo evento decada tipoReloj de simulación: variable que almacena el valor del tiempode simulación

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 14 / 41

Compon. y organización

Componentes y organización de un sistema desimulación (II)

Contadores estadísticos: variables usadas para almacenar la in-formación estadística sobre el funcionamiento del sistemaRutina de inicialización: procedimiento encargado de inicializarel modelo de simulación en el instante 0. Debe inicializar el reloj,los contadores estadísticos, la lista de sucesos y el estado del sis-temaRutina de temporización: procedimiento que determinará el si-guiente suceso a tratar (analizando la lista de sucesos) y avanzaráel reloj de simulación a su tiempo de ocurrencia. Esta es la únicarutina que podrá modificar el valor del reloj de simulación

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 15 / 41

Compon. y organización

Componentes y organización de un sistema desimulación (III)

Rutinas de sucesos: funciones dedicadas a tratar los distintostipos de eventos. Han de actualizar el estado del sistema y loscontadores estadísticos, generando a su vez, si procede, nuevoseventos. Recordad que hay una rutina de tratamiento para cadaevento identificadoGenerador de informes: procedimiento encargado de calcular losestimadores de las medidas de rendimiento deseadas, usando loscontadores estadísticos disponiblesLibrería de rutinas: funciones y rutinas necesarias para generarvalores aleatorios usando las distribuciones de probabilidad espe-cificadas durante la construcción del modelo

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 16 / 41

Compon. y organización

Componentes y organización de un sistema desimulación (IV)

Condiciones de parada: condiciones que deben producirse paraque se detenga la simulaciónMétodo principal: llamada a la rutina de inicialización y bucle prin-cipal de funcionamiento (mientras no se cumpla la condición deparada, llamar a rutina de temporización y llamada a la rutina deprocesamiento del evento seleccionado)

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 17 / 41

Compon. y organización

Componentes y organización de un sistema desimulación (V)

La relación lógica entre estos elementos puede verse en el gráfico si-guiente:

Figura: Esquema general de un sistema de simulaciónManuel Gómez (Universidad de Granada) Const. modelo. or. eventos 18 / 41

Compon. y organización

Componentes y organización de un sistema desimulación (VI)

Se aprecia que:La simulación comienza en el instante 0, con la llamada a la rutinade inicializaciónEsta rutina inicializa el valor del reloj de simulación, inicializa elestado del sistema y los contadores estadísticos y también la listade sucesosTras ello se devuelve el control al programa principal, que producela llamada a la rutina de temporizaciónLa rutina de temporización determina el próximo evento a tratar yavanza el reloj de simulación hasta su tiempo de ocurrencia

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 19 / 41

Compon. y organización

Componentes y organización de un sistema desimulación (VII)

Tras ello, el programa principal llama a la rutina de tratamiento delevento seleccionadoEsta rutina actualiza el estado del sistema, actualiza los contado-res estadísticos y genera futuros eventos y los agrega a la lista desucesosPara ello será necesario llamar a alguna de las funciones de lalibrería de rutinasAl final se comprueba si se cumplen las condiciones necesariaspara finalizar la simulación

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 20 / 41

Compon. y organización

Componentes y organización de un sistema desimulación (VIII)

Al final de la simulación hay que invocar al generador de informes,que deben calcular las estimaciones de interés y escribir los infor-mes correspondientesCon esto finaliza la ejecución del sistema de simulación y es elmomento de analizar los resultados generados

Esta organización lógica es la que suele emplearse cuando los pro-gramas se implementan mediante lenguajes de propósito general. Otraforma de organización posible se denomina dirigida a procesos: enella la simulación se organiza como la sucesión de las etapas de undeterminado proceso

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 21 / 41

Aplicaciones

Aplicaciones

Consideramos aquí una aplicación para ver cómo se aplican los ele-mentos vistos hasta ahora. Se trata de un sistema de fenómenos deespera. En concreto un sistema de colas: usuales en muchos ámbitosde la vida. Si se congestionan producen efectos indeseables: reduc-ción de beneficios, protesta de usuarios, etc. A veces no es posibleexperimentar variaciones en el sistema real. Alternativa: simulación.

Sistema considerado:una sola cola (peticiones de comunicación)un único servidor (enrutador de comunicaciones)

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 22 / 41

Aplicaciones

Sistema a programar

Llegadainicio

tll

Inicioservicio

ts

Finservicio

S > 0

Q > 0

Figura: Grafo de eventos para una cola con servidor

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 23 / 41

Aplicaciones

Aplicaciones (3)

tiempos entre llegadas de peticiones de atención al enrutador: de-terminados por variables aleatorias independientes e idénticamen-te distribuidas (A1,A2,A3, ....). El patrón se caracteriza en el grafopor tllsi la petición se encuentra con el enrutador inactivo, se atiende deforma inmediatalos tiempos de atención de las peticiones de comunicación se de-terminan mediante variables aleatorias idénticamente distribuidas(S1,S2,S3, ....). El patrón se caracteriza en el grafo por tslas peticiones que encuentran al servidor ocupado se unen a lacola de peticionesla petición a atender se selecciona siguiendo una política FIFOcondición de finalización: que se haya observado el retraso en colade n clientes

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 24 / 41

Aplicaciones

Aplicaciones (4)

medidas a estimar:media de los tiempos de espera de los clientes atendidoslongitud media de la colatasa (porcentaje) de utilización del servidor

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 25 / 41

Aplicaciones

Aplicaciones (5)

Una vez definido esto hay que determinar las medidas necesarias paracaracterizar el comportamiento del sistema. Procedimiento a seguir:tirar de la cuerda a partir de la medidas de interés necesarias paradefinir el estado del sistema

Consideramos:Tiempo medio de espera en la cola: E(n). Para poder calcular lamedia hemos de procesar los tiempos particulares de espera decada petición: E1,E2, ...,En. Con esto la estimación se obtendráasí:

E(n) =

∑ni=1Ein

(1)

Esto indica que habrá que incrementar el tiempo de espera en cola decada petición (por ejemplo, al comenzar a procesarla)

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 26 / 41

Aplicaciones

Aplicaciones (6)

Longitud media de la cola: Q(n). Se trata aquí de una media sobreel tiempo y no sobre los clientes. Para obtener esta medida:

se considera Q(t) como el número de peticiones en cola en el ins-tante t, t > 0 y T(n) el tiempo necesario para que finalice la simula-ción, tras observar n retrasossea pi la proporción esperada (valor entre 0 y 1) de tiempo en queQ(t) toma cada valor (0,1,2,....), es decir, de cada posible tamañode la cola

Entonces la definición de Q(n) es:

Q(n) =

∞∑i=0

ipi (2)

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 27 / 41

Aplicaciones

Aplicaciones (7)

Q(n) es la media ponderada de las posibles longitudes de la cola,de los posibles valores de Q(t)

para poder estimar esta medida hay que ir anotando el tiempo enque la cola tiene cada longitud posible. Si Ti es el tiempo total enque la cola tiene longitud i, se cumple que:

T(n) = T1 + T2 + . . . (3)

la proporción de tiempo correspondiente a cada longitud, pi puededefinirse ahora como:

pi =Ti

T(n)(4)

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 28 / 41

Aplicaciones

Aplicaciones (8)

con esto ya podemos calcular Q(n) de la forma

Q(n) =

∑∞i=0iTiT(n)

(5)

Si los tiempos de llegada de las peticiones de atención al enrutador son

0,4 1,6 2,1 3,8 4,0 5,6 5,8 7,2 (6)

y los tiempos de salida del sistema (una vez finalizado el servicio) son

2,4 3,1 3,3 4,9 8,6 (7)

La simulación finaliza en T(6) = 8,6 (al observarse 6 tiempos deespera en cola)

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 29 / 41

Aplicaciones

Aplicaciones (9)

Si se representa gráficamente la longitud de la cola a lo largo de lasimulación:

Q(t)

1

2

3

0

Llegadas

Salidas

t1 2 3 4 5 6 7 8 9

e10.4

e21.6

e32.1

e42.4

e53.1

e63.3

e73.8e84.0

e94.9

e105.6

e115.8

e127.2

e138.6

P1

P1

P2

P1

P2

P3

P2

P3

P3

P4

P4

P5 P

5

P5

P6

P5

P6

P7

P5

P6

P7

P8

P6

P7

P8

Figura: Tamaño de la cola a lo largo de la simulaciónManuel Gómez (Universidad de Granada) Const. modelo. or. eventos 30 / 41

Aplicaciones

Aplicaciones (10)

En este gráfico se considera la longitud de la cola en cada momento.El cálculo que necesitamos precisa determinar el tiempo en que la colatiene cada longitud precisa:

T0 = (1,6− 0) + (4,0− 3,1) + (5,6− 4,9) = 3,2 (8)

T1 = (2,1− 1,6) + (3,1− 2,4) + (4,9− 4,0) + (5,8− 5,6) = 2,3 (9)

T2 = (2,4− 2− 1) + (7,2− 5,8) = 1,7 (10)

T3 = (8,6− 7,2) = 1,4 (11)

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 31 / 41

Aplicaciones

Aplicaciones (11)

Con esto podemos calcular:

∞∑i=0

iTi = (0× 3,2) + (1× 2,3) + (2× 1,7) + (3× 1,4) = 9,9 (12)

Y ahora ya puede obtener el valor completo de Q(n)

Q(6) = 9,9/8,6 = 1,15 (13)

En realidad, el cálculo realizado equivale a calcular el área bajo la curvade la figura anterior. Teniendo en cuenta que el área se calcula median-te una integral, lo que realmente hemos calculado es:

Q(n) =

∫T(n)0 Q(t)dt

T(n)(14)

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 32 / 41

Aplicaciones

Aplicaciones (12)

Ocupación media del sistema: la utilización esperada del enrutadorserá la proporción de tiempo de simulación en que el enrutadorestuvo ocupado atendiendo peticiones

Se define por O(n) a esta medida, cuyo valor estará comprendidoentre 0 y 1DefinimosO(t) como una variable que toma el valor 1 si el enrutadorestá ocupado en el instante t, tomando el valor 0 en caso contrario

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 33 / 41

Aplicaciones

Aplicaciones (13)

B(t)

1

0

Llegadas

Salidas

t1 2 3 4 5 6 7 8 9

e10.4

e21.6

e32.1

e42.4

e53.1

e63.3

e73.8e84.0

e94.9

e105.6

e115.8

e127.2

e138.6

P1

P1

P2

P1

P2

P3

P2

P3

P3

P4

P4

P5 P

5

P5

P6

P5

P6

P7

P5

P6

P7

P8

P6

P7

P8

Figura: Tiempo de ocupación a lo largo de la simulaciónManuel Gómez (Universidad de Granada) Const. modelo. or. eventos 34 / 41

Aplicaciones

Aplicaciones (14)

Con esto, la tasa de ocupación puede calcularse de la forma:

O(n) =(3,3− 0,4) + (8,6− 3,8)

8,6=

7,7

8,6= 0,9 (15)

En realidad, lo que hemos calculado es:

O(n) =

∫T(n)0 O(t)dt

T(n)(16)

Esta medida es muy importante y pone de manifiesto posibles cuellosde botella.

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 35 / 41

Aplicaciones

Aplicaciones (15)

Como resumen:medidas de rendimiento: E(n) espera media en la cola de los clien-tes atendidos; Q(n) longitud media de la cola; O(n) proporción detiempo en que el servidor está ocupadola medida del tiempo de espera es una medida estadística de tiem-po discreto, al definirse en función de las variables discretas Ei,i = 1, 2, . . .

la longitud media de la cola es una medida estadística de tiempocontinuo, al definirse sobre las variables Q(t), t ∈ [0,∞)

igual ocurre con la ocupación media del servidor. En este casotenemos las variables O(t), t ∈ [0,∞)

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 36 / 41

Aplicaciones

Aplicaciones (16)

Los eventos considerados en este problema son:llegada de nueva petición al enrutadorinicio de serviciofin de servicio, una vez atendida la petición

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 37 / 41

Aplicaciones

Aplicaciones (17)

Las variables de estado necesarias para seguir la evolución del sistemason:

estado del enrutador, indicando si está libre u ocupado. Esta me-dida es necesaria para poder estimar el valor de O(n). Se trata enrealidad de la variable denotada antes como O(t). En el código ladenominaremos servidorOcupado.número de peticiones encoladas. Medida necesaria para poder de-terminar el valor de Q(n). Se trata en realidad de la variable deno-tada como Q(t). En el código se denota como longitudCola.

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 38 / 41

Aplicaciones

Aplicaciones (18)

tiempoUltimoEvento: tiempo del último evento. Este valor se de-fine como ei−1 si ei−1 6 t < ei, siento t el tiempo actual de lasimulación. Esta medida se precisa para determinar la anchura delos rectángulos en el cálculo de Q(n) y de O(n)

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 39 / 41

Aplicaciones

Aplicaciones (19)

Como variables de control para generar las medidas estadísticas nece-sarias usamos:

total de peticiones servidas: totalPeticionesServidas. Se preci-sa para detener el funcionamiento de la simulación (al observar ntiempos de espera, quizás nulos, se detiene la simulación)tiempo total de espera en cola: tiempoTotalEsperaCola. Permi-te acumular el tiempo esperado por cada petición antes de seratendida. Es decir, permite ir obteniendo la suma de los valores Eipresentes para cada petición

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 40 / 41

Aplicaciones

Aplicaciones (20)

acumulador para el área bajo Q, con lo que la integral va calculán-dose a medida que progresa la simulación. En el código se denotacomo estimadorLongitudCola.acumulador para el área bajo O, lo que permite estimar la integralde forma progresiva. En el código: estimadorTasaOcupacion.

Manuel Gómez (Universidad de Granada) Const. modelo. or. eventos 41 / 41