• No se han encontrado resultados

1. INTRODUCCIÓN. SIMULACIÓN: Técnicas para imitar el funcionamiento de sistemas o procesos reales mediante programas de ordenador.

N/A
N/A
Protected

Academic year: 2021

Share "1. INTRODUCCIÓN. SIMULACIÓN: Técnicas para imitar el funcionamiento de sistemas o procesos reales mediante programas de ordenador."

Copied!
49
0
0

Texto completo

(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)

(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

(3)

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)

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)

FORMAS DE ESTUDIAR UN SISTEMA: EXPERIMENTAR CON EL SISTEMA REAL EXPERIMENTAR CON UN MODELO DEL SISTEMA

(VALIDACIÓN) Modelo físico Modelo matemático Solución analítica Simulación

(6)

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

TIPOS DE MODELOS DE

SIMULACIÓN

(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)

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.

4. COMPONENTES Y ORGANIZACIÓN DE

UN ESTUDIO DE SIMULACION

(9)

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)

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)

PROGRAMA PRINCIPAL Pone el reloj a cero

Inicializa el estado del sistema y los contadores Inicializa la lista de sucesos RUTINA DEL TIEMPO RUTINA DE INICIALIZACIÓN Llama a la rutina de inicialización

Llama repetidas veces a : •rutina de tiempo •rutina de sucesos Determina el siguiente tipo de suceso Avanza el reloj de simulación

Actualiza el estado del sistema

Actualiza los contadores

Genera futuros sucesos y los añade a la lista de sucesos Calcula estimaciones de interés Escribe el informe ¿TERMINÓ LA SIMULACIÓN? Genera números aleatorios Rutina de sucesos Generador de informes Librería de rutinas SI NO

(12)

SUCESO DE LLEGADA

Poner espera = 0

Añadir 1 al número de clientes servidos

Poner el servidor ocupado

Programar suceso de salida para este cliente

¿SERVIDOR OCUPADO? Añadir 1 a la cola Guardar instante de llegada de este cliente SI NO

DIAGRAMA DE FLUJO DE LA RUTINA DE LLEGADA DE UN CLIENTE

¿COLA LLENA?

Programar siguiente llegada

NO Añadir 1 a clientes perdidos o error si cap. finita SI

(13)

SUCESO DE SALIDA

Restar 1 al número en la cola y subir un puesto a cada cliente en

la cola

Calcular espera del cliente

Añadir 1 al número de clientes servidos

Programar el suceso de salida para el cliente que entra al servidor

¿COLA VACÍA? PONER LIBRE EL SERVIDOR DEJAR DE CONSIDERAR EL SUCESO DE SALIDA SI NO

DIAGRAMA DE FLUJO DE LA RUTINA DE SALIDA DE UN CLIENTE

(14)

5. EJEMPLO DE SIMULACION DE UNA COLA CON UN SERVIDOR

A1=0.4, A2=1.2, A3=0.5, A4=1.7, A5=0.2, A6=1.6, A7 =0.2, A8=1.4, A9=1.9 S1=2.0, S2=0.7, S3=0.2, S4=1.1, S5=3.7, S6=0.6

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

) ( , 0 clientes k haya cola P q siendo kq L k k k q

  

La estimación más razonable para qk es:

simulación de total Tiempo cola la en clientes k hay que en Tiempo n T T qkk  ) ( ˆ

(15)

Para estimar Wq , se define Di = tiempo en cola del cliente i-ésimo. La estimación para Wq será:

simulados clientes de total n n D n W n i q , º 1 1   

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

5. EJEMPLO DE SIMULACION DE UNA COLA CON UN SERVIDOR

El criterio de parada: instante en que entra al servidor el sexto cliente ) ( ˆ n T ocupado está servidor el que en Tiempo  

(16)

0 0 0 0 0.4 0 0 0 0 Nº en cola Tiempo suceso anterior Estado servidor Tiempos de llegadas

Reloj Lista sucesos

Clientes servidos

Tiempo total cola

Tiempo servidor ocupado

T0 T1 T2 T3 0 0 0 inf Llegadas Salidas Variables de estado Contadores estadísticos

(17)

1 0 0 0.4 1.6 1 0 0 0.4 Nº en cola Tiempo suceso anterior Estado servidor Tiempos de llegadas

Reloj Lista sucesos

Clientes servidos

Tiempo total cola

Tiempo servidor ocupado

T0 T1 T2 T3 0 0 0 2.4 Llegadas Salidas Variables de estado Contadores estadísticos

(18)

1 1 0.4 1.6 2.1 1 0 1.2 1.6 Nº en cola Tiempo suceso anterior Estado servidor Tiempos de llegadas

Reloj Lista sucesos

Clientes servidos

Tiempo total cola

Tiempo servidor ocupado

T0 T1 T2 T3 0 0 0 2.4 Llegadas Salidas 1.6 Variables de estado Contadores estadísticos

(19)

1 2 1.6 2.1 3.8 1 0 1.7 1.6 Nº en cola Tiempo suceso anterior Estado servidor Tiempos de llegadas

Reloj Lista sucesos

Clientes servidos

Tiempo total cola

Tiempo servidor ocupado

T0 T1 T2 T3 0.5 0 0 2.4 Llegadas Salidas 1.6 2.1 Variables de estado Contadores estadísticos

(20)

1 1 2.1 2.4 3.8 2 0.8 2.0 1.6 Nº en cola Tiempo suceso anterior Estado servidor Tiempos de llegadas

Reloj Lista sucesos

Clientes servidos

Tiempo total cola

Tiempo servidor ocupado

T0 T1 T2 T3 0.5 0.3 0 3.1 Llegadas Salidas 2.1 Variables de estado Contadores estadísticos

(21)

1 0 2.4 3.1 3.8 3 1.8 2.9 1.6 Nº en cola Tiempo suceso anterior Estado servidor Tiempos de llegadas

Reloj Lista sucesos

Clientes servidos

Tiempo total cola

Tiempo servidor ocupado

T0 T1 T2 T3 1.2 0.3 0 3.3 Llegadas Salidas Variables de estado Contadores estadísticos

(22)

0 0 3.1 3.3 3.8 3 1.8 2.9 1.8 Nº en cola Tiempo suceso anterior Estado servidor Tiempos de llegadas

Reloj Lista sucesos

Clientes servidos

Tiempo total cola

Tiempo servidor ocupado

T0 T1 T2 T3 1.2 0.3 0 inf Llegadas Salidas Variables de estado Contadores estadísticos

(23)

1 0 3.3 3.8 4.0 4 1.8 2.9 2.3 Nº en cola Tiempo suceso anterior Estado servidor Tiempos de llegadas

Reloj Lista sucesos

Clientes servidos

Tiempo total cola

Tiempo servidor ocupado

T0 T1 T2 T3 1.2 0.3 0 4.9 Llegadas Salidas Variables de estado Contadores estadísticos

(24)

1 1 3.8 4.0 5.6 4 1.8 3.1 2.5 Nº en cola Tiempo suceso anterior Estado servidor Tiempos de llegadas

Reloj Lista sucesos

Clientes servidos

Tiempo total cola

Tiempo servidor ocupado

T0 T1 T2 T3 1.2 0.3 0 4.9 Llegadas Salidas 4.0 Variables de estado Contadores estadísticos

(25)

1 0 4.0 4.9 5.6 5 2.7 4.0 2.5 Nº en cola Tiempo suceso anterior Estado servidor Tiempos de llegadas

Reloj Lista sucesos

Clientes servidos

Tiempo total cola

Tiempo servidor ocupado

T0 T1 T2 T3 2.1 0.3 0 8.6 Llegadas Salidas Variables de estado Contadores estadísticos

(26)

1 1 4.9 5.6 5.8 5 2.7 4.7 3.2 Nº en cola Tiempo suceso anterior Estado servidor Tiempos de llegadas

Reloj Lista sucesos

Clientes servidos

Tiempo total cola

Tiempo servidor ocupado

T0 T1 T2 T3 2.1 0.3 0 8.6 Llegadas Salidas 5.6 Variables de estado Contadores estadísticos

(27)

1 2 5.6 5.8 7.2 5 2.7 6.3 3.2 Nº en cola Tiempo suceso anterior Estado servidor Tiempos de llegadas

Reloj Lista sucesos

Clientes servidos

Tiempo total cola

Tiempo servidor ocupado

T0 T1 T2 T3 2.3 0.3 0 8.6 Llegadas Salidas 5.6 5.8 Variables de estado Contadores estadísticos

(28)

1 3 5.8 7.2 9.1 5 2.7 6.3 3.2 Nº en cola Tiempo suceso anterior Estado servidor Tiempos de llegadas

Reloj Lista sucesos

Clientes servidos

Tiempo total cola

Tiempo servidor ocupado

T0 T1 T2 T3 2.3 1.7 0 8.6 Llegadas Salidas 5.6 5.8 7.2 Variables de estado Contadores estadísticos

(29)

1 2 7.2 8.6 9.1 6 5.7 7.7 3.2 Nº en cola Tiempo suceso anterior Estado servidor Tiempos de llegadas

Reloj Lista sucesos

Clientes servidos

Tiempo total cola

Tiempo servidor ocupado

T0 T1 T2 T3 2.3 1.7 1.4 9.2 Llegadas Salidas 5.8 7.2 Variables de estado Contadores estadísticos

(30)

Como estimadores se obtienen: T0 = 3.3, T1 = 2.3, T2 = 1.7, T3 = 1.4; T(n) = 8.6Lq = 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.

5. EJEMPLO DE SIMULACION DE UNA COLA CON UN SERVIDOR

(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

4. Construcción del programa de ordenador y verificación

3. ¿VÁLIDO?

SI

NO

7. Diseño de experimentos

5. Realización de ejecuciones piloto

6. ¿VÁLIDO?

8. Realización de ejecuciones

9. Analizar los resultados

10. Documentar y presentar resultados

SI

(32)

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.

6.1.DESCRIPCION GENERAL DE LAS ETAPAS EN UN ESTUDIO DE SIMULACION

(33)

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

6.1.DESCRIPCION GENERAL DE LAS ETAPAS EN UN ESTUDIO DE SIMULACION

(34)

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 sistema existente.

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

6.1.DESCRIPCION GENERAL DE LAS ETAPAS EN UN ESTUDIO DE SIMULACION

(35)

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

6.1.DESCRIPCION GENERAL DE LAS ETAPAS EN UN ESTUDIO DE SIMULACION

(36)

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

6.2.ELECCION DEL LENGUAJE DE

(37)

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ática accesibles

6.2.ELECCION DEL LENGUAJE DE

(38)

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

6.2.ELECCION DEL LENGUAJE DE

(39)

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

SIMULADORES

Los más conocidos son:

Simfactory II.5

Witness

Comnet III (específico redes de comunicaciones)

QSIM (incluido en QSB)

Xcells+

(40)

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:

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.

VENTAJAS E INCONVENIENTES DE LA ANIMACION

(42)

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)

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)

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

ETAPA 1: PROPUESTA DE UN MODELO RAZONABLE

(45)

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

ETAPA 2: CONTRASTAR EMPIRICAMENTE LAS HIPOTESIS DEL MODELO

(46)

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.

ETAPA 3: DETERMINAR HASTA QUE PUNTO SON REPRESENTATIVOS LOS DATOS DE

(47)

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 7. VENTAJAS DE LA SIMULACION

(48)

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)

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

7. ERRORES MAS FRECUENTES EN LOS ESTUDIOS DE SIMULACION

Referencias

Documento similar

Sistemas radares para el seguimiento de blancos 47 La desventaja del sistema de comparación de fase respecto del sistema de comparación de amplitud consiste en que es

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,

Una vez hecho esto, se realiza una espera, leyendo el registro de salida del coprocesador para el control de qué está haciendo el procesador en este momento, a la espera que nos

[r]

[r]

[r]

[r]

desarrollo del país y cumplir con la misión que se ha propuesto, tiene la intención de impulsar un Plan de Formación en Educación Financiera y Económica para mujeres cabeza de