1 / 49

0. ÍNDICE

0. ÍNDICE. 1.-Introducción 2.-Sistemas y modelos 3.-Simulación de modelos de sucesos discretos 4.-Componentes y organización de un estudio de simulación 5.-Ejemplo de simulación de una cola con un servidor 6.-Etapas más frecuentes en un estudio de simulación

Leo
Download Presentation

0. ÍNDICE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 0. ÍNDICE 1.-Introducción 2.-Sistemas y modelos 3.-Simulación de modelos de sucesos discretos 4.-Componentes y organización de un estudio de simulación 5.-Ejemplo de simulación de una cola con un servidor 6.-Etapas más frecuentes en un estudio de simulación 7.-Ventajas, inconvenientes y errores más frecuentes en los estudios de simulación 8.-Generación de números aleatorios (pizarra) 9.-Análisis estadístico de los resultados de la simulación (pizarra) 10.-Técnicas de reducción de varianza (pizarra)

  2. 1. INTRODUCCIÓN SIMULACIÓN: Técnicas para imitar el funcionamiento de sistemas o procesos reales mediante programas de ordenador. MODELO: Representación simplificada de un sistema que se utiliza para estudiar su comportamiento. • HIPÓTESIS SOBRE EL SISTEMA: • Sencillas: posible obtener soluciones exactas o analíticas • Complejas: es lo más usual. Deben ser estudiados mediante simulación. Se obtienen soluciones aproximadas.

  3. ÁREAS DE APLICACIÓN • Diseño y análisis de sistemas de producción • Evaluación de requerimientos hardware y software para un sistema de computación • Diseño de sistemas de comunicación • Diseño y operación de sistemas de transporte como aeropuertos, puertos o metro • Evaluación de diseños para la organización de servicios como hospitales u oficinas de correos • Determinación de políticas de pedidos para un sistema de inventarios • Análisis de sistemas económicos o financieros

  4. 2. SISTEMAS Y MODELOS • SISTEMA: Colección de entidades que interactúan entre sí para conseguir un determinado fin. • ESTADO DEL SISTEMA: Colección de variables necesarias para describir un sistema en un instante dado. Se llaman variables de estado. • TIPOS DE SISTEMAS: * Discretos: las variables de estado cambian en puntos separados del tiempo. * Continuos: las variables de estado cambian de forma continua a lo largo del tiempo.

  5. EXPERIMENTAR CON EL SISTEMA REAL FORMAS DE ESTUDIAR UN SISTEMA: Modelo físico EXPERIMENTAR CON UN MODELO DEL SISTEMA (VALIDACIÓN) Solución analítica Modelo matemático Simulación

  6. TIPOS DE MODELOS DE SIMULACIÓN • Modelos estáticos frente a modelos dinámicos. • Modelos determinísticos frente a modelos estocásticos • Modelos discretos frente a modelos continuos Estudiaremos modelos de simulación DINÁMICOS, ESTOCÁSTICOS Y DISCRETOS

  7. 3. SIMULACIÓN DE MODELOS DE SUCESOS DISCRETOS Modelización de sistemas en los que las variables de estado cambian en puntos separados en el tiempo SUCESO: ocurrencia que puede modificar el estado del sistema EJEMPLO:Sistema de colas con un servidor OBJETIVO: Estimar tiempo medio en cola de los clientes servidos VARIABLES DE ESTADO: Estado del servidor, nº de clientes en cola, hora de llegada de cada cliente SUCESOS: Llegadas de clientes, salidas de clientes servidos

  8. 4. COMPONENTES Y ORGANIZACIÓN DE UN ESTUDIO DE SIMULACION • ESTADO DEL SISTEMA: colección de variables necesarias para describir el sistema • RELOJ DE SIMULACION : variable que proporciona el instante actual de tiempo simulado. Se actualiza cuando ocurre un suceso. • LISTA DE SUCESOS: la lista que contiene los próximos instantes en los que van a ocurrir los distintos tipos de sucesos. • CONTADORES ESTADISTICOS: Variables utilizadas para guardar la información estadística sobre el funcionamiento del sistema.

  9. SUBRUTINAS MAS IMPORTANTES • RUTINA DE INICIALIZACION:subprograma que inicializa el modelo de simulación en el instante cero • RUTINA DE TIEMPOS: Subprograma que determina el siguiente suceso de la lista de sucesos, y avanza el reloj hasta el instante en que ese suceso ocurre • RUTINAS DE SUCESOS: Subprograma que actualiza las variables de estado y los contadores cuando ocurre un suceso (una rutina para cada tipo de suceso)

  10. SUBRUTINAS MAS IMPORTANTES • BIBLIOTECA DE RUTINAS: conjunto de subprogramas que generan números aleatorios de las distribuciones utilizadas en el modelo • GENERADOR DE INFORMES: Subprograma que estima las medidas de comportamiento del sistema y da un informe con los resultados de la simulación. • PROGRAMA PRINCIPAL: Llama a la rutina de tiempos para determinar el próximo suceso y transfiere el control a la rutina correspondiente . Verifica la condición de parada y llama al generador de informes cuando la simulación ha terminado.

  11. RUTINA DEL TIEMPO RUTINA DE INICIALIZACIÓN PROGRAMA PRINCIPAL • Determina el siguiente tipo de suceso • Avanza el reloj de simulación • Pone el reloj a cero • Inicializa el estado del sistema y los contadores • Inicializa la lista de sucesos • Llama a la rutina de inicialización • Llama repetidas veces a : • rutina de tiempo • rutina de sucesos Rutina de sucesos Librería de rutinas • Actualiza el estado del sistema • Actualiza los contadores • Genera futuros sucesos y los añade a la lista de sucesos Genera números aleatorios ¿TERMINÓ LA SIMULACIÓN? NO Generador de informes SI • Calcula estimaciones de interés • Escribe el informe

  12. DIAGRAMA DE FLUJO DE LA RUTINA DE LLEGADA DE UN CLIENTE SUCESO DE LLEGADA Programar siguiente llegada SI ¿SERVIDOR OCUPADO? NO SI ¿COLA LLENA? Añadir 1 a clientes perdidos o error si cap. finita Poner espera = 0 NO Añadir 1 a la cola Añadir 1 al número de clientes servidos Guardar instante de llegada de este cliente Poner el servidor ocupado Programar suceso de salida para este cliente

  13. DIAGRAMA DE FLUJO DE LA RUTINA DE SALIDA DE UN CLIENTE SUCESO DE SALIDA NO SI ¿COLA VACÍA? Restar 1 al número en la cola y subir un puesto a cada cliente en la cola PONER LIBRE EL SERVIDOR Calcular espera del cliente DEJAR DE CONSIDERAR EL SUCESO DE SALIDA Añadir 1 al número de clientes servidos Programar el suceso de salida para el cliente que entra al servidor

  14. 5. EJEMPLO DE SIMULACION DE UNA COLA CON UN SERVIDOR Disponemos de los valores Ai = Tiempo ente llegadas del cliente i-1 e i-ésimo y de Si = Tiempo de servicio del cliente i-ésimo. OBJETIVO:Tratamos de estimar Lq , Wq y  • La estimación más razonable para qk es:

  15. 5. EJEMPLO DE SIMULACION DE UNA COLA CON UN SERVIDOR • Para estimar Wq , se define Di = tiempo en cola del cliente i-ésimo. La estimación para Wq será: En cada instante, se almacena la suma de los tiempos en cola de todos los clientes (Tiempo total en cola) • Para estimar , se observa el estado del servidor en cada instante (0 si está libre, 1 si está ocupado) y se almacena el tiempo en que el servidor está ocupado. La estimación para  El criterio de parada: instante en que entra al servidor el sexto cliente

  16. 0 0.4 Variables de estado Llegadas inf Salidas 0 0 Reloj Lista sucesos Contadores estadísticos Nº en cola Estado servidor 0 0 0 T0 Clientes servidos 0 T1 0 Tiempo suceso anterior 0 T2 Tiempo total cola 0 T3 0 Tiempos de llegadas Tiempo servidor ocupado

  17. 0.4 1.6 Variables de estado Llegadas 2.4 Salidas 1 0 Reloj Lista sucesos Contadores estadísticos Nº en cola Estado servidor 1 0.4 0 T0 Clientes servidos 0 T1 0 Tiempo suceso anterior 0 T2 Tiempo total cola 0 T3 0 Tiempos de llegadas Tiempo servidor ocupado

  18. 1.6 2.1 Variables de estado Llegadas 2.4 Salidas 1 1 Reloj Lista sucesos Contadores estadísticos Nº en cola Estado servidor 1 1.6 0.4 T0 1.6 Clientes servidos 0 T1 0 Tiempo suceso anterior 0 T2 Tiempo total cola 0 T3 1.2 Tiempos de llegadas Tiempo servidor ocupado

  19. 2.1 3.8 Variables de estado Llegadas 2.4 Salidas 1 2 Reloj Lista sucesos Contadores estadísticos Nº en cola Estado servidor 1 1.6 1.6 T0 1.6 Clientes servidos 0.5 2.1 T1 0 Tiempo suceso anterior 0 T2 Tiempo total cola 0 T3 1.7 Tiempos de llegadas Tiempo servidor ocupado

  20. 2.4 3.8 Variables de estado Llegadas 3.1 Salidas 1 1 Reloj Lista sucesos Contadores estadísticos Nº en cola Estado servidor 2 1.6 2.1 T0 2.1 Clientes servidos 0.5 T1 0.8 Tiempo suceso anterior 0.3 T2 Tiempo total cola 0 T3 2.0 Tiempos de llegadas Tiempo servidor ocupado

  21. 3.1 3.8 Variables de estado Llegadas 3.3 Salidas 1 0 Reloj Lista sucesos Contadores estadísticos Nº en cola Estado servidor 3 1.6 2.4 T0 Clientes servidos 1.2 T1 1.8 Tiempo suceso anterior 0.3 T2 Tiempo total cola 0 T3 2.9 Tiempos de llegadas Tiempo servidor ocupado

  22. 3.3 3.8 Variables de estado Llegadas inf Salidas 0 0 Reloj Lista sucesos Contadores estadísticos Nº en cola Estado servidor 3 1.8 3.1 T0 1.2 Clientes servidos T1 1.8 Tiempo suceso anterior 0.3 T2 Tiempo total cola 0 T3 2.9 Tiempos de llegadas Tiempo servidor ocupado

  23. 3.8 4.0 Variables de estado Llegadas 4.9 Salidas 1 0 Reloj Lista sucesos Contadores estadísticos Nº en cola Estado servidor 4 2.3 3.3 T0 Clientes servidos 1.2 T1 1.8 Tiempo suceso anterior 0.3 T2 Tiempo total cola 0 T3 2.9 Tiempos de llegadas Tiempo servidor ocupado

  24. 4.0 5.6 Variables de estado Llegadas 4.9 Salidas 1 1 Reloj Lista sucesos Contadores estadísticos Nº en cola Estado servidor 4 2.5 3.8 T0 4.0 Clientes servidos 1.2 T1 1.8 0.3 Tiempo suceso anterior T2 Tiempo total cola 0 T3 3.1 Tiempos de llegadas Tiempo servidor ocupado

  25. 4.9 5.6 Variables de estado Llegadas 8.6 Salidas 1 0 Reloj Lista sucesos Contadores estadísticos Nº en cola Estado servidor 5 2.5 4.0 T0 Clientes servidos 2.1 T1 2.7 0.3 Tiempo suceso anterior T2 Tiempo total cola 0 T3 4.0 Tiempos de llegadas Tiempo servidor ocupado

  26. 5.6 5.8 Variables de estado Llegadas 8.6 Salidas 1 1 Reloj Lista sucesos Contadores estadísticos Nº en cola Estado servidor 5 3.2 4.9 T0 5.6 Clientes servidos 2.1 T1 2.7 Tiempo suceso anterior 0.3 T2 Tiempo total cola 0 T3 4.7 Tiempos de llegadas Tiempo servidor ocupado

  27. 5.8 7.2 Variables de estado Llegadas 8.6 Salidas 1 2 Reloj Lista sucesos Contadores estadísticos Nº en cola Estado servidor 5 3.2 5.6 T0 5.6 Clientes servidos 2.3 5.8 T1 2.7 Tiempo suceso anterior 0.3 T2 Tiempo total cola 0 T3 6.3 Tiempos de llegadas Tiempo servidor ocupado

  28. 7.2 9.1 Variables de estado Llegadas 8.6 Salidas 1 3 Reloj Lista sucesos Contadores estadísticos Nº en cola Estado servidor 5 3.2 5.8 T0 5.6 Clientes servidos 2.3 5.8 T1 2.7 7.2 Tiempo suceso anterior 1.7 T2 Tiempo total cola 0 T3 6.3 Tiempos de llegadas Tiempo servidor ocupado

  29. 8.6 9.1 Variables de estado Llegadas 9.2 Salidas 1 2 Reloj Lista sucesos Contadores estadísticos Nº en cola Estado servidor 6 3.2 7.2 T0 5.8 2.3 Clientes servidos 7.2 T1 5.7 Tiempo suceso anterior 1.7 T2 Tiempo total cola 1.4 T3 7.7 Tiempos de llegadas Tiempo servidor ocupado

  30. 5. EJEMPLO DE SIMULACION DE UNA COLA CON UN SERVIDOR • Como estimadores se obtienen: • T0 = 3.3, T1 = 2.3, T2 = 1.7, T3 = 1.4; T(n) = 8.6 • Lq = 9.9/8.6 = 1.15 • Wq = 5.7/6 = 0.95 ( n =6) •  = 7.7/8.6 = 0.90 • ALGUNAS CONSIDERACIONES: • Este ejemplo a mano muestra la lógica de programas más complejos. • Observar que se habrían obtenido resultados diferentes si se repitiese la simulación con otros valores aleatorios: la salida un un programa de simulación es aleatoria lo que hace necesario el uso de técnicas estadísticas para interpretar los resultados del modelo de simulación.

  31. 6. ETAPAS MÁS FRECUENTES DE UN ESTUDIO DE SIMULACIÓN 1. Formulación del problema y del plan de estudio 2. Recogida de datos y definición del modelo NO 3. ¿VÁLIDO? SI 4. Construcción del programa de ordenador y verificación 5. Realización de ejecuciones piloto 6. ¿VÁLIDO? NO SI 7. Diseño de experimentos 8. Realización de ejecuciones 9. Analizar los resultados 10. Documentar y presentar resultados

  32. 6.1.DESCRIPCION GENERAL DE LAS ETAPAS EN UN ESTUDIO DE SIMULACION • ETAPA 1:Especificar claramente los objetivos del estudio. Indicar las distintas alternativas de diseño a estudiar, y los criterios para evaluar las alternativas • ETAPA 2: Los datos recogidos se utilizan para estudiar la forma de operar el sistema, obtener las distribuciones de probabilidad de las v.a. del modelo o validar el modelo. El modelo debe captar la esencia del sistema. No existen reglas fijas para construir un modelo.

  33. 6.1.DESCRIPCION GENERAL DE LAS ETAPAS EN UN ESTUDIO DE SIMULACION • ETAPA 3: Validar es tratar de comprobar si el modelo propuesto se adecua al sistema real y al objetivo perseguido. La validación debe de realizarse a lo largo de todo el estudio • ETAPA 4: Hay que decidir en qué lenguaje se programa: de tipo general, específico o si se va a utilizar un simulador. Se utilizan las técnicas habituales de depuración y verificación de programas. • ETAPA 5:Se realizan varias ejecuciones de prueba y los resultados nos servirán para validar el modelo

  34. 6.1.DESCRIPCION GENERAL DE LAS ETAPAS EN UN ESTUDIO DE SIMULACION • ETAPA 6: Si existe en la práctica algún sistema similar al que hemos modelado, se pueden comparar los resultados de las simulaciones piloto con los resultados del sistemaexistente. • ETAPA 7: Cuando tenemos muchas alternativas de diseño y no se pueden simular todas, hay que decidir cuales se simulan para obtener la óptima • ETAPA 8: Se obtienen los resultados para tratar de estimar las características de interés

  35. 6.1.DESCRIPCION GENERAL DE LAS ETAPAS EN UN ESTUDIO DE SIMULACION • ETAPA 9:Para analizar los resultados y obtener conclusiones fiables se utilizan técnicas estadísticas • ETAPA 10: Es importante documentar tanto el programa como las hipótesis hechas y los resultados obtenidos

  36. 6.2.ELECCION DEL LENGUAJE DE PROGRAMACION. SIMULADORES. ANIMACION LENGUAJES GENERALES: C es el más utilizado LENGUAJES ESPECÍFICOS: Simscript II.5, GPSS, Slam, Simula VENTAJAS DE LENGUAJES ESPECIFICOS FRENTE A GENERALES: • Programas más cortos: - Están preparados para llevar la contabilidad de los distintos parámetros - Tienen módulos para generar números aleatorios de las distintas distribuciones, reloj, etc

  37. 6.2.ELECCION DEL LENGUAJE DE PROGRAMACION. SIMULADORES. ANIMACION • Al tener menos líneas de código: • - Es más fácil detectar posibles errores • - Se reduce el tiempo de programación • - Es más fácil cambiarlo si queremos introducir alguna variación • Existen una serie de errores típicos que suelen ser identificados y chequeados de forma automáticaaccesibles

  38. 6.2.ELECCION DEL LENGUAJE DE PROGRAMACION. SIMULADORES. ANIMACION INCONVENIENTES DE LENGUAJES ESPECIFICOS FRENTE A GENERALES: • Son menos flexibles, y su sintaxis tiende a ser menos natural • Las ejecuciones son más lentas • Son menos conocidos por analistas y programadores, y los compiladores son menos accesibles

  39. SIMULADORES • Son paquetes que permiten simular algunos tipos de sistemas con poca o ninguna necesidad de programar. Los sistemas se seleccionan a base de menús y de gráficos. • Ventaja: Ahorran tiempo de programación • Inconvenientes: • Están limitados a modelizar sólamente las configuraciones de sistemas que permite el simulador. • Las ejecuciones son más lentas • Los más conocidos son: • Simfactory II.5 • Witness • Comnet III (específico redes de comunicaciones) • QSIM (incluido en QSB) • Xcells+ • Promodel

  40. ANIMACION • Los elementos clave de un sistema se representan mediante iconos que cambian de forma, color o posición cuando hay un cambio de estado en la simulación. • Modos de operar: • En directo: Se desarrolla la animación mientras se está corriendo la simulación. Esto hace que la ejecución sea más lenta. • En diferido: La animación se visualiza una vez completada la simulación.

  41. VENTAJAS E INCONVENIENTES DE LA ANIMACION • Ventajas: • Sirven para comunicar la esencia del modelo de simulación a los directivos. • Puede ayuda a corregir errores del programa de simulación o a mostrar que el modelo no es válido. • Puede ayudar a entender el comportamiento dinámico del sistema. • Inconvenientes: • Aumenta el tiempo para desarrollar el programa de simulación. • Sólo una parte de la lógica del modelo de simulación puede verse en la animación, y no se puede concluir a partir de ese corto periodo de tiempo que el modelo está bien definido. • No puede sustituir a un cuidadoso análisis estadístico de los resultados.

  42. 6.3. VERIFICACION DEL PROGRAMA • Consiste en comprobar que el programa de simulación implementa correctamente el modelo conceptual de simulación. • Técnicas a utilizar: • Escribir y depurar los programas en módulos y subprogramas • Correr la simulación con distintos conjuntos de parámetros de entrada, y comprobar que la salida es razonable • Depurar con la técnica de traza • Correr el modelo con hipótesis simplificadas para las que el modelo tenga solución analítica • La animación puede ayudar a detectar errores

  43. 6.4. VALIDACION DEL MODELO Consiste en comprobar si el modelo conceptual de simulación es una adecuada representación del sistema que se está estudiando. Debe llevarse a cabo a lo largo de todo el estudio de simulación. Etapas para desarrollar un modelo válido: 1.- Proponer un modelo razonable 2.- Contrastar empíricamente las hipótesis del modelo 3.- Determinar hasta que punto son representativos los datos de salida

  44. ETAPA 1: PROPUESTA DE UN MODELO RAZONABLE • Tener claros los objetivos, las medidas de evaluación del sistema y las configuraciones alternativas del sistema • Hablar con las personas relacionadas con el sistema y obtener toda la información existente • Observar un sistema similar (si existe) y obtener los datos históricos, o recogerlos si no existen • Exponer a todos los relacionados con el sistema una explicación detallada y estructurada del modelo conceptual antes de empezar la codificación • Proponer inicialmente un nivel de detalle razonable

  45. ETAPA 2: CONTRASTAR EMPIRICAMENTE LAS HIPOTESIS DEL MODELO • Estudiar si los datos de entrada se ajustan al modelo propuesto. • Realizar análisis de sensibilidad para estudiar cuanto cambian los resultados de la simulación al cambiar los parámetros de entrada o las distribuciones de probabilidad. Las partes más sensibles habrá que programarlas con un mayor nivel de detalle

  46. ETAPA 3: DETERMINAR HASTA QUE PUNTO SON REPRESENTATIVOS LOS DATOS DE SALIDA • Si existe un sistema similar al propuesto, se comparan los datos de salida del sistema, y los del modelo de simulación. Si son similares, el modelo es válido. A continuación se modificaría el modelo para representar al sistema que nos interesa estudiar • Si no existe un sistema similar, se intenta simplificar el modelo de forma que tenga solución analítica, y se comparan los resultados. La validez del modelo será mayor cuanto menores sean las simplificaciones para obtener la solución analítica. El test definitivo se obtiene comparando los resultados del modelo con los del sistema propuesto, si este llega a construirse. Pero si no es válido, ya no puede corregirse.

  47. 7. VENTAJAS DE LA SIMULACION • Permite estudiar sistemas reales que no se pueden evaluar analíticamente • Hace posible estimar el comportamiento de un sistema existente si se modifican algunas de las condiciones de funcionamiento actuales • Se pueden comparar distintas alternativas de diseño (o de formas de operar de un sistema), para ver cual se comporta mejor • Permite estudiar en poco tiempo la evolución de un sistema en un periodo largo de tiempo y al revés • Se puede utilizar para validar un modelo analítico

  48. 7. DESVENTAJAS DE LA SIMULACION • No produce resultados exactos, sino estimaciones. Esto hace necesario el uso de técnicas estadísticas • Desarrollar un modelo de simulación suele ser caro y lleva tiempo • Es difícil demostrar la validez del modelo. Si el modelo no es válido, los resultados son poco útiles • Es difícil encontrar el óptimo: sólo se puede encontrar el mejor entre varias alternativas

  49. 7. ERRORES MAS FRECUENTES EN LOS ESTUDIOS DE SIMULACION • No tener bien definidos los objetivos al comienzo del estudio • Elegir un nivel de detalle inapropiado • Tratar un estudio de simulación como si fuera principalmente un problema de programación • Confiar en simuladores que hacen la simulación accesible a “todo el mundo” • Analizar los datos de salida a partir de una sola ejecución, tratándola como la solución verdadera • Fallar en la comunicación con las personas que conocen realmente el sistema • No modelizar correctamente las distintas fuentes de aleatoriedad del sistema real

More Related