Introduccin a las tcnicas de simulacin de eventos

  • Slides: 19
Download presentation
Introducción a las técnicas de simulación de eventos discretos para el estudio de redes

Introducción a las técnicas de simulación de eventos discretos para el estudio de redes de comunicaciones Ignacio de Miguel ignacio. miguel@tel. uva. es E. T. S. I. de Telecomunicación – Universidad de Valladolid Campus Miguel Delibes, 47011 Valladolid, España Grupo de Comunicaciones Ópticas Universidad de Valladolid, España

¿En qué consiste la simulación? Muchos sistemas reales son muy complejos Inviabilidad de modelos

¿En qué consiste la simulación? Muchos sistemas reales son muy complejos Inviabilidad de modelos analíticos Simular es emular en un ordenador (o varios) el comportamiento de un sistema para estimar alguna característica del mismo

Simulación de eventos discretos • Se modela un sistema cuyo estado no está cambiando

Simulación de eventos discretos • Se modela un sistema cuyo estado no está cambiando continuamente, sino que lo hace en instantes de tiempo discretos • Ejemplo: Cola de un supermercado ¿Cuándo cambia el sistema? Llegada de un cliente con su carrito La cajera termina de atender a un cliente

Ejemplo de simulación de eventos discretos

Ejemplo de simulación de eventos discretos

Ejemplo ¿Cuál es el tiempo medio de espera en cola? (mediante simulación) ¿Cuál es

Ejemplo ¿Cuál es el tiempo medio de espera en cola? (mediante simulación) ¿Cuál es el siguiente evento? ¿Qué acción realizar?

Ejemplo t=0 Fila ¿Cuál es el siguiente evento? Caja • Salida en t =

Ejemplo t=0 Fila ¿Cuál es el siguiente evento? Caja • Salida en t = 7 (nº aleatorio que modela lo cargado que lleva el carro) • El próximo cliente llega en t = 3 (nº aleatorio) • Siguiente evento: LLEGADA (en t = 3) Hasta t = 3 no pasa nada significativo ¡Saltamos de golpe a ese instante! (Actualización del reloj de simulación)

Ejemplo t=3 Fila Procesado del evento (LLEGADA) Caja • Llega un cliente, lo ponemos

Ejemplo t=3 Fila Procesado del evento (LLEGADA) Caja • Llega un cliente, lo ponemos en la fila • Le damos un cronómetro (y lo ponemos en marcha) • Obtenemos un número aleatorio para determinar cuándo llega el próximo cliente, ej. , t = 10 • Determinamos el siguiente evento: SALIDA, en t = 7 ¡Saltamos de golpe a t=7! (Actualización del reloj de simulación)

Ejemplo t=7 Fila Procesado del evento (SALIDA) Caja • Sacamos al cliente de la

Ejemplo t=7 Fila Procesado del evento (SALIDA) Caja • Sacamos al cliente de la caja • Tomamos al primero de la fila, miramos su cronómetro y anotamos ese valor… (esperó 4 unidades de tiempo). • Le ponemos en caja • Y sacamos un número aleatorio para ver cuánto estará en caja… por ejemplo, hasta t=12 • Y comprobamos el siguiente evento… Al final tendremos una lista con lo que esperó cada cliente: 0, 4, 2, 1, 9, … por lo que al promediar podremos estimar el tiempo medio de espera en cola

Elementos clave Bucle de eventos • ¿Cuál es el siguiente evento? • Actualizar el

Elementos clave Bucle de eventos • ¿Cuál es el siguiente evento? • Actualizar el reloj de simulación Procesado de eventos • Ejecutar las acciones que se harían en el sistema ante ese evento • Recolectar datos de acuerdo a los parámetros que se quiera estimar

¿Cómo generar números aleatorios?

¿Cómo generar números aleatorios?

¿Cómo analizar los resultados de una simulación?

¿Cómo analizar los resultados de una simulación?

Análisis de resultados • Simulaciones con terminación • Simulaciones sin terminación – ¿Cuándo finalizar?

Análisis de resultados • Simulaciones con terminación • Simulaciones sin terminación – ¿Cuándo finalizar? – Estimación de parámetros estacionarios

Transitorio inicial • Conviene eliminarlo • Modelar el sistema y operar pero no almacenar

Transitorio inicial • Conviene eliminarlo • Modelar el sistema y operar pero no almacenar los parámetros queremos estimar hasta que no se elimine el transitorio • Hay técnicas que estiman cuándo finaliza el transitorio inicial

¿Cuánto tiempo simular? (I) • Lo suficiente para tener una aproximación suficientemente buena •

¿Cuánto tiempo simular? (I) • Lo suficiente para tener una aproximación suficientemente buena • Hay que comprobar (entre otras cosas) los intervalos de confianza (deben ser suficientemente pequeños)

¿Cuánto tiempo simular? (II) • Dos opciones: – Hacer muchas simulaciones de longitud arbitraria,

¿Cuánto tiempo simular? (II) • Dos opciones: – Hacer muchas simulaciones de longitud arbitraria, promediar, calcular intervalo de confianza y veo si se requieren más • Tengo que eliminar el transitorio inicial en todas ellas • A veces es inevitable hacer esto – Hacer una única simulación suficientemente larga

¿Cuánto tiempo simular? (III) • Finalización por convergencia • Finalización si llevamos simulando “demasiado

¿Cuánto tiempo simular? (III) • Finalización por convergencia • Finalización si llevamos simulando “demasiado tiempo”

Validación • • Depuración típica Ficheros de trazas Representación gráfica del sistema Sentido común

Validación • • Depuración típica Ficheros de trazas Representación gráfica del sistema Sentido común y comparativa con bibliografía Comparar con modelos analíticos simples Comparar con cotas superiores/inferiores Empezar con modelos de simulación sencillos y aumentar progresivamente el detalle

Plataformas de simulación • Hay plataformas de simulación comerciales y de libre distribución •

Plataformas de simulación • Hay plataformas de simulación comerciales y de libre distribución • Pueden ahorrar tiempo de desarrollo frente a la construcción de un simulador en C++ (p. ej. ) desde cero • Pueden evitar fallos… y aumentar nuestra credibilidad • Ejemplos – OPNET Modeler (comercial), www. opnet. com – OMNet++ (libre distribución), www. omnetpp. org – ns-2 (libre distribución, TCP/IP), www. isi. edu/nsnam/ns

Resumen • Simulación necesaria en muchas ocasiones… pero plantearse si realmente lo es •

Resumen • Simulación necesaria en muchas ocasiones… pero plantearse si realmente lo es • Dos elementos básicos: bucle de eventos y sistema de procesado de eventos • Puede ser conveniente usar plataformas de simulación en lugar de realizar un simulador desde cero.