INSTITUTO TECNOLOGICO DE TUXTLA GUTIERREZ
2013 MATERIA: SIMULACION
JOSE DEL C. VAZQUEZ VAZQUEZ HDEZ INGENIERIA INDUSTRIAL 21/02/2013
Índice general Unidad 1
Temas
Subtemas
Introducción a la Simulación de eventos
1.1. Introducción 1.2. Definiciones y Aplicaciones
discretos
1.3. Estructura y características de la simulación de eventos discretos. 1.4. Sistemas, Modelos y Control 1.5. Mecanismos de tiempo fijo y tiempo variable
2
Generación de Números
1.6. Etapas de un Proyecto de simulación 2.1. Números aleatorios: definición, propiedades,
Aleatorios
generadores y tablas
2.2. Propiedades de los números pseudoaleatorios. 2.3. Pruebas estadísticas de aleatoriedad para los números pseudoaleatorios: de medias, de varianza, de independencia y de bondad de ajuste.
2.4.
Obtención
de
números
pseudoaleatorios
utilizando paquetes computacionales. 3
Generación de Variables Aleatorias
2.5. Método de Monte Carlo 3.1. Introducción 3.2. Generación de variables aleatorias discretas y continuas utilizando paquetes computacionales como Excel, ProModel, Arena.
4
Lenguajes de Simulación
4.1. Antecedentes de los lenguajes de simulación y
y Simuladores de Eventos Discretos
simuladores 4.2. Aprendizaje y uso de ProModel, Arena, entre otros.
un
Simulador
como:
4.3. 4.4. 4.5. 4.6.
Características del software Construcción de modelos Consideraciones económicas en la simulación. Realizar prácticas utilizando el simulador para procesos pr oductivos, de transporte, líneas de espera, calidad, inventarios, entre otros.
4.7. Interpretación de los resultados obtenidos y generación de propuestas de mejora para el modelo analizado. 5
Proyecto de Aplicación
5.1. Elaboración de un proyecto final 5.2. Análisis, modelado, simulación e interpretación de resultados para sistemas reales de empresas de manufactura o de servicios, a fin de detectar las mejoras posibles a realizar y proponer acciones que mejoren su desempe ño, considerando aspectos económicos
Índice general Unidad 1
Temas
Subtemas
Introducción a la Simulación de eventos
1.1. Introducción 1.2. Definiciones y Aplicaciones
discretos
1.3. Estructura y características de la simulación de eventos discretos. 1.4. Sistemas, Modelos y Control 1.5. Mecanismos de tiempo fijo y tiempo variable
2
Generación de Números
1.6. Etapas de un Proyecto de simulación 2.1. Números aleatorios: definición, propiedades,
Aleatorios
generadores y tablas
2.2. Propiedades de los números pseudoaleatorios. 2.3. Pruebas estadísticas de aleatoriedad para los números pseudoaleatorios: de medias, de varianza, de independencia y de bondad de ajuste.
2.4.
Obtención
de
números
pseudoaleatorios
utilizando paquetes computacionales. 3
Generación de Variables Aleatorias
2.5. Método de Monte Carlo 3.1. Introducción 3.2. Generación de variables aleatorias discretas y continuas utilizando paquetes computacionales como Excel, ProModel, Arena.
4
Lenguajes de Simulación
4.1. Antecedentes de los lenguajes de simulación y
y Simuladores de Eventos Discretos
simuladores 4.2. Aprendizaje y uso de ProModel, Arena, entre otros.
un
Simulador
como:
4.3. 4.4. 4.5. 4.6.
Características del software Construcción de modelos Consideraciones económicas en la simulación. Realizar prácticas utilizando el simulador para procesos pr oductivos, de transporte, líneas de espera, calidad, inventarios, entre otros.
4.7. Interpretación de los resultados obtenidos y generación de propuestas de mejora para el modelo analizado. 5
Proyecto de Aplicación
5.1. Elaboración de un proyecto final 5.2. Análisis, modelado, simulación e interpretación de resultados para sistemas reales de empresas de manufactura o de servicios, a fin de detectar las mejoras posibles a realizar y proponer acciones que mejoren su desempe ño, considerando aspectos económicos
Unidad I. Introducción a la Simulación de eventos discretos 1.1.
Introducción
En años recientes, el advenimiento de nuevos y mejores desarrollos en el área de la computación ha traído consigo innovaciones igualmente importantes en los terrenos de la toma de decisiones y el diseño de procesos y productos. En este sentido, una de las técnicas de mayor impacto es la simulación. Hoy en día, el analista tiene a su disposición una gran cantidad de software de simulación que le permite tomar decisiones en temas muy diversos. Por ejemplo, determinar la mejor localización de una nueva planta, diseñar un nuevo sistema de trabajo o efectuar el análisis productivo de un proceso ya existente pero que requiere mejoras. Sin duda, la facilidad que otorga a la resolución de éstas y muchas otras problemáticas, ha hecho de la simulación una herramienta cuyo uso y desarrollo se han visto significativamente alentados. Cada vez resulta más sencillo encontrar paquetes de software con gran capacidad de análisis, así como mejores animaciones y características para generación de reportes. En general, dichos paquetes — ya ya sea orientado a procesos, a servicios o de índole general — — nos proveen de una enorme diversidad de herramientas estadísticas que permiten un manejo más eficiente de la información relevante bajo análisis, y una mejor presentación e interpretación de la misma. El concepto de simulación engloba soluciones para muchos propósitos diferentes. Por ejemplo, podríamos decir que el modelo de un avión a escala que se introduce a una cámara por donde se hace pasar pas ar un flujo de aire, puede simular los efectos que experimentará un avión real cuando se vea sometido a turbulencia. Por otro lado, algunos paquetes permiten hacer la representación de un proceso de fresado o torneado: una vez que el usuario establezca ciertas condiciones iniciales, podrá ver cómo se llevaría a cabo el proceso real, lo que le permitiría revisarlo sin necesidad de desperdiciar material ni poner en riesgo la maquinaria. Entre los distintos tipos de procesos de simulación que podemos utilizar, en este libro nos ocuparemos del que se basa en el uso de ecuaciones matemáticas y estadísticas, conocido como simulación de eventos discretos. Este proceso consiste en relacionar los diferentes eventos que pueden cambiar el estado de un sistema bajo estudio por medio de distribuciones de probabilidad y condiciones lógicas del problema que se esté analizando. Por ejemplo, un proceso de inspección donde don de sabemos estadísticamente que 0.2% de los productos tiene algún tipo de defecto puede simularse con facilidad mediante una simple hoja de cálculo, considerando estadísticas de rechazos y productos conformes, y asignando una distribución de probabilidad con 0.2% de oportunidad de defecto para cada intento de inspección. En el presente capítulo abordaremos las definiciones básicas de los conceptos de la simulación de eventos discretos. En los siguientes se presentarán algunos otros elementos relevantes, como los números pseudoaleatorios y las pruebas estadísticas necesarias para comprobar esta aleatoriedad, la generación de variables aleatorias y la caracterización de algunas
distribuciones de probabilidad de uso común en la simulación, lo cual nos permitirá realizar una simulación sencilla con ayuda de una hoja de cálculo. Por último, describiremos la utilización de un software comercial: Promodel, una versión limitada del cual se incluye en este curso. La simulación consiste básicamente en construir modelos informáticos que describen la parte esencial del comportamiento de un sistema de interés, así como en diseñar y realizar experimentos con el modelo y extraer conclusiones de sus resultados para apoyar la toma de decisiones. Típicamente, se utiliza en el análisis de sistemas tan complejos que no es posible su tratamiento analítico o mediante métodos de análisis numéricos. Sus orígenes están en los trabajos de Student para aproximar la distribución que lleva su nombre, y los métodos que Von Neumann y Ulam introdujeron para resolver ecuaciones integrales. Desde entonces, la Simulación ha crecido como una metodología de experimentación fundamental en campos tan diversos como la Economía, la estadística, la Informática o la Física, y con enormes aplicaciones industriales y comerciales, como los simuladores de vuelo, los juegos de simulación, o la predicción bursátil o meteorológica. La crisis del petróleo de los años setenta obligó a la industria en general a enfocar sus esfuerzos en ser enérgicamente más eficientes, iniciándose así una etapa de desarrollo tecnológico encaminado a mejorar los procesos existentes y a diseñar otros nuevos más eficientes. Este fue el caldo de cultivo necesario para motivar el desarrolló en simulación de procesos. El comienzo fue lento y se dio en forma conceptual, experimental y académica en algunas compañías y universidades en Estados Unidos, Canadá y Europa. Para 1975 se había generalizado el desarrollo de simuladores con algunas aplicaciones industriales reducidas. En 1980 empezaron a surgir compañías elaboradoras de software, que desarrollaban paquetes de simulación para su comercialización, pero tenían la desventaja de que la entrada y salida de la información eran muy rígidas y se presentaban en forma de listados de difícil interpretación. A finales de los años 80’s se inició el desarrollo de paquetes de simulación interactivos y su comercialización marcó el comienzo de un uso más intensivo y generalizado en la industria y las universidades. Entre 1991 y 1995 se inicia la comercialización de paquetes de simulación dinámica y de integración de energía. En los últimos años, la simulación de procesos en estado estacionario ha llegado a ser una herramienta de apoyo para el diseño de procesos industriales y además su uso se está extendiendo en las instituciones de formación de ingenieros industriales. La simulación de procesos está jugando un papel muy importante en la industria de procesos, como una herramienta adecuada y oportuna para el diseño, caracterización, optimización y monitoreo del funcionamiento de procesos industriales.
Aun cuando en sus inicios la simulación de procesos estuvo enfocada principalmente a la industria petroquímica y de refinación del petróleo, su aplicación se ha ido extendiendo a otras industrias tales como la de combustibles sintéticos, pulpa y papel, cemento, metales, minerales, alimentos, etc., en donde se involucra la fase sólida. La simulación de procesos industriales ha involucrado ambos comportamientos de procesos estacionarios y dinámicos.
Historia de la simulación El galopante desarrollo tecnológico de las últimas décadas hace que los términos que hasta hace poco tiempo eran exclusivos de las novelas de ficción formen parte de nuestro día a día. Con la capacidad de cálculo de los ordenadores más rápida, y técnicas visuales perfeccionadas, surgen nuevas ideas sobre desarrollos de herramientas de entrenamiento basadas en tecnologías innovadoras. El empleo de la simulación se presenta como uno de los métodos más efectivos a la hora de trasmitir los conocimientos y análisis en determinadas materias, pero por su elevado coste solamente es alcanzable para las grandes empresas, o entidades con importante financiación pública. Gracias a los avances tecnológicos la simulación ha evolucionado enormemente, permitiendo alcanzar excelentes cotas de fiabilidad. Las capacidades de cálculo actuales permiten ejecutar una serie de Modelos Matemáticos que conjuntamente con las técnicas visuales reflejan fielmente la realidad en toda su complejidad. El reto que nos depara el presente es una aplicación masiva de la simulación con formación a un amplio sector de la sociedad. Ofrecer las bondades de esta técnica hasta ahora accesibles a un pequeño porcentaje de la población es uno de los principales objetivos de Lander. Y lo estamos logrando, los productos como Sistema Lander Multipropósito y Lander Simbio suponen un auténtico punto de inflexión y acercamiento de esta técnica de formación a un mayor número de personas. Con ellos un amplio sector de la sociedad es capaz de adquirir un simulador, mejorar la calidad y el contenido de la formación.
Esto no quiere decir que ya hemos cumplido nuestros retos. El progreso continúa y con él cada avance en el plano tecnológico debe estar traducido en beneficio de las personas. Lo que nos deparará el futuro no lo sabemos, pero estaremos ahí para utilizarlo de la mejor manera posible. Este hito histórico abrió las puertas a la aplicación de la simulación en el campo del proceso de control industrial así como a las sinergias que generaba esta simulación basada en la experimentación y técnicas de análisis para descubrir soluciones exactas a problemas clásicos de la industria y la ingeniería.
A mediados de los años 40 dos hechos sentaron las bases para la rápida evolución del campo de la simulación: La construcción de los primeros computadores de propósito general como el ENIAC. El trabajo de Stanislaw Ulam, John Von Neumann y otros científicos para usar el método de Montercarlo en computadores modernos y solucionar problemas de difusión de neutrones en el diseño y desarrollo de la bomba de hidrógeno. Ulam y Von Neumann ya estuvieron presentes en el proyecto Manhattan. En 1960, Keith Douglas Tocher desarrolló un programa de simulación general cuya principal tarea era la de simular el funcionamiento de una planta de producción donde las máquinas ciclaban por estados: Ocupado, Esperando, No disponible y Fallo; de manera que las simulaciones en los cambios de estado de las máquinas marcarán el estado definitivo de la producción de la planta. Este trabajo produjo además el primer libro sobre simulación: The Art of Simulation (1963). Para aquel entonces, IBM desarrolló entre 1960 y 1961 el Sistema de Simulación de propósito general o General Purpose Simulation System (GPSS). El GPSS se diseñó para realizar simulaciones de teleprocesos involucrando por ejemplo: control de tráfico urbano, gestión de llamadas telefónicas, reservas de billetes de avión, etc. La sencillez de uso de este sistema lo popularizó como el lenguaje de simulación más usado de la época. Por otro lado, en 1963 se desarrolló SIMSCRIPT, otra tecnología alternativa al GPSS basada en FORTRAN, más enfocada a usuarios que no tenían por qué ser obligatoriamente expertos informáticos en RAND CORPORATION. Complementariamente a los desarrollos llevados a cabo por RAND e IBM, el Royal Norwegian Computing Center inició en 1961 el desarrollo del programa SIMULA con ayuda de Univac. El resultado fue SIMULA I, probablemente el lenguaje de programación más importante de toda la historia. En 1967 se fundó el WSC (Winter Simulation Conference), lugar donde desde entonces y hasta ahora se archivan los lenguajes de simulación y aplicaciones derivadas, siendo en la actualidad el referente en lo que a avances en el campo de los sistemas de simulación se refiere.
Periodo de expansión 1970-1981 Durante este periodo se desarrollaron avanzadas herramientas de modelado y de análisis de resultados. Gracias también a los desarrollos obtenidos en la generación de datos y a las técnicas de optimización y representación de datos, la simulación llega a su fase de expansión donde comienza a aplicarse en múltiples campos Anteriormente, los datos de salida obtenidos de una simulación por computadora se presentaban en una tabla o matriz, de manera que se mostraba el efecto que los múltiples cambios en los parámetros tenían sobre los datos. El empleo del formato de matriz se debía al uso tradicional que se hacía de la matriz en los modelos matemáticos. Sin embargo, los psicólogos advirtieron que los seres humanos percibían mejor los cambios en el desarrollo de las situaciones si miraban gráficos o incluso imágenes en movimiento ó animaciones generadas a partir de dichos datos, como las que se ejecutan en las animaciones de imágenes generadas por computadora.
Tabla 1.1. Cronología de la simulación Año
Evento
1942-1945 1950's 1961 1961-1979
J. V. Neumann S. Ulman desarrollan el método de Montecarlo Estudios de capacidad de las líneas telefónicas G. Gordon diseña el lenguaje de simulación GPSS Impulso de los ordenadores por transistores, Conferencias sobre Aplicación de la simulación Henriksen mostró el pseudocódigo para la implementación de modelos de simulación de eventos discretos Nuevos lenguajes donde integran resultados de simulación, animación SIMAN IV y CINEMA IV. Surgen metodologías independientes del lenguaje de simulación Nuevos sistemas donde el proceso de simulación está totalmente integrado, acercamiento de la simulación a la empresa privada
1977 J 1980's 1990's-
1.2.
Definiciones y Aplicaciones Definiciones “Es una técnica numérica para conducir experimentos en un computador digital, la cual incluye ciertos tipos de relaciones lógicas y matemáticas necesarias para describir la estructura y comportamiento de un sistema complejo del mundo real sobre un periodo de tiempo”.
También se considera a la simulación como un proceso para describir la esencia de la realidad, el cual incluye la construcción, experimentación y manipulación de un modelo complejo en un computador. “Conjunto de relaciones lógicas, matemáticas y probabilísimas que integran el comportamiento de un sistema bajo estudio cuando se presenta un evento determinado”
(García Dunna Eduardo. García reyes Heriberto y Cárdenas Barrón Leopoldo Eduardo). Simulación es una técnica numérica para conducir experimentos en una computadora digital, estos experimentos comprenden ciertos tipos de relaciones matemáticas y lógicas, las cuales son necesarias para describir el comportamiento y la estructura de sistemas complejos del mundo real a través de largos periodos de tiempo (Thomas H. Naylor). Simulación es el desarrollo de un modelo lógico matemático de un sistema, de tal forma que se tiene una imitación de la operación de un proceso de la vida real o de un sistema a través del tiempo. La simulación involucra la generación de una historia artificial de un sistema, la observación de esta historia mediante la manipulación experimental, nos ayuda a inferir las características operacionales de tal sistema (JERRY BANKS). Simulación es una técnica numérica para realizar experimentos en una computadora digital, estos experimentos involucran ciertos tipos de modelos matemáticos y lógicos que describen el comportamiento de sistemas de negocios, económicos, sociales, biológicos, físicos o químicos a través de largos periodos de tiempo (H. MAISEL y G. GNUGNOLI). Simulación es el proceso de diseñar y desarrollar un modelo de un sistema o proceso real y conducir experimentos con el propósito de entender el comportamiento del sistema o evaluar varias estrategias (dentro de límites impuestos por un criterio o conjunto de criterios) para la operación del sistema (Robert. Shannon).
Aplicaciones generales Sistemas de computación: redes de ordenadores, componentes, programación, bases de datos, fiabilidad. Fabricación: manejo de materiales, líneas de montaje, equipos de almacenamiento, control de inventario, mantenimiento, distribución en planta, diseño de máquinas Negocios: análisis de existencias, política de precios, estrategias de marketing, estudios de adquisición, análisis de flujo de caja, predicción, alternativas del transporte, planificación de mano de obra.
Gobierno: armamento y su uso, tácticas militares, predicción de la población, uso del suelo, prevención de incendios, servicios de policía, justicia criminal, diseño de vías de comunicación, servicios sanitarios. Ecología y medio ambiente: contaminación y purificación del agua, control de residuos, contaminación del aire, control de plagas, predicción del tiempo, análisis de sismos y tormentas, exploración y explotación de minerales, sistemas de energía solar, explotación de cultivos. Sociedad y comportamiento: estudios de alimentación de la población, políticas educativas, estructuras organizativas, análisis de sistemas sociales, sistemas de asistencia social, administración universitaria. Biociencias: rendimiento en el deporte, control de epidemias, ciclos de vida biológicos, estudios biomédicos 1.3. Estructura y características de la simulación de eventos discretos Sistema: La definición básica de sistema nos dice que se trata de un conjunto de elementos que se interrelacionan para funcionar como un todo; desde el punto de vista de la simulación, tales elementos deben tener una frontera clara. Por ejemplo, podemos hablar del sistema de atención de clientes en un banco, del sistema de inventarios de una empresa o del sistema de atención en la sala de emergencia de un hospital. Atributos: Un atributo es una característica de una entidad. Por ejemplo, si la entidad es un motor, los atributos serían su color, peso, tamaño o cilindraje. Los atributos son muy útiles para diferenciar entidades sin necesidad de generar una entidad nueva, y pueden adjudicarse al momento de la creación de la entidad, o asignarse y/o cambiarse durante el proceso. Son las características de las entidades, con las cuales se describen y diferencian. Por ejemplo, son atributos de los pacientes, como la edad, el sexo, la duración de su enfermedad, la gravedad de ésta y el cumplimiento del tratamiento. Un atributo importante en las evaluaciones económicas, fundamental en los estudios de costoutilidad, sería la calidad de vida. Ésta se puede estudiar de forma detallada incluyéndola mediante un atributo. Todas las entidades tienen los mismos tipos de atributos, pero con diferentes valores para cada entidad; los valores de los atributos están, por tanto, ligados a una entidad concreta. Por
ejemplo, todos los pacientes tienen «edad» o «presión arterial», pero cada uno posee un valor específico. El atributo puede asignarse como un valor específico, una muestra de una distribución o el resultado de una expresión (p. ej., de una ecuación condicional).
Existen varios tipos de atributos Tipos de Atributos
P: Parámetros son atributos fijados durante el diseño del sistema U: Variables de entradas o exógenos, fijadas por el entorno D: Variables de entradas fijadas por el usuario Y: Variables de salida son las variables de estado o combinación de ellas correspondiente a medidas del sistema
Sucesos: Hechos que ocurren en un instante de tiempo y que dan lugar a cambios en el estado del sistema. Colas: Estados pasivos de una entidad mientras espera el inicio de una actividad Estados: Condiciones del modelo o sus entidades, de forma que se puede saber si una acción se puede ejecutar o si se puede elegir entre varias. Reloj de simulación Puesto que en este tipo de simulación se está considerando la evolución temporal del sistema, cuyo estado se modifica sólo en instantes discretos de tiempo a causa de la aparición de algún evento, será necesario introducir un «reloj de simulación» que registre el tiempo virtual transcurrido desde la puesta en marcha del sistema, y que permita referenciar el instante exacto en que ocurre cada uno de los eventos. Es importante no confundir el tiempo virtual
que marca el reloj de simulación con el tiempo de computación, el cual registra el tiempo real transcurrido desde que la simulación se puso en marcha. El tiempo marcado por el reloj de simulación hace explícito el paso del tiempo a lo largo del modelo. Esto hace posible señalar el comienzo y el final de la simulación, y la aparición de eventos clínicos en su momento exacto, sin necesidad de ciclos de duración fija. Esto permite una simulación más eficiente y realista en función de la aparición de los eventos durante el curso de la enfermedad en los pacientes. También permite la creación de relojes secundarios que marcan tiempos importantes, como la estancia hospitalaria, el tiempo de ausencia de efectos adversos o la supervivencia. Puesto que los cambios en el sistema se producen sólo cuando ocurre algún evento, queda claro que el estado del sistema no sufrirá ninguna variación entre 2 eventos consecutivos. Este hecho da sentido a una de las políticas más habituales para controlar el reloj de simulación: si se sabe que el evento n se acaba de producir en el instante virtual actual , y que el evento n + 1 se producirá en el instante virtual , dado que entre ambos instantes no pasará nada de interés, se «avanzará» el reloj de simulación hasta el instante tn+1, y se asignará dicho instante a la variable del programa que representa el reloj de simulación. Tras avanzar el reloj hasta el instante , se lleva a cabo la actualización de las variables de estado y estadísticas del sistema. Este proceso de «avance hasta el siguiente evento y actualización de variables» se repite de forma indefinida hasta que se verifique alguna condición de fin de la simulación.
Entidades Son los elementos dinámicos que se simulan a través del modelo, cambian de estatus, afectan y son afectados por otras entidades y son los protagonistas de los eventos clínicos de estudio del modelo. Normalmente, en la simulación de una enfermedad se representan pacientes, pero pueden representarse también distintos componentes, como enfermeras, familiares o médicos. Estas entidades suponen una diferencia importante respecto a los árboles de decisión o a los modelos de Markov, en los cuales se especifican los resultados clínicos, estados o transiciones de los pacientes, pero éstos en sí no son caracterizados como elementos explícitos del modelo, tal como ocurre en los MSED.
Eventos Es todo aquello que puede ocurrir durante la simulación en función del proceso que estamos estudiando. Por ejemplo, un evento puede ser un efecto adverso, una admisión hospitalaria, el alta del hospital, un cambio de dosis o una baja laboral. El concepto de evento va más allá de las transiciones de los modelos de Markov, ya que la aparición de un evento no necesariamente implica el cambio de estado de salud del paciente (p. ej., una visita al médico). A pesar de que hay una secuencia temporal dada, los eventos pueden suceder de forma casi simultánea y pueden hacerlo en cualquier secuencia lógica en relación con la historia plausible del proceso de estudio (p. ej., fallo en un órgano diana o fallo multiorgánico en un paciente con sepsis). Al contrario que en los modelos de Markov, estos eventos no presentan ningún tipo de restricción de memoria. Los riesgos de que los diferentes eventos ocurran pueden tomar la forma de funciones dependientes de los datos y depender de algunos atributos y variables. Estas funciones pueden cambiar durante la simulación.
Variables Las variables definen el modelo y reflejan una característica del conjunto, no de entidades específicas. Son especificaciones que se mantienen a lo largo del modelo, aunque sus valores pueden cambiar durante el proceso de simulación, y van a definir el entorno de la simulación afectándolo a lo largo de todo el proceso. Las variables de uso común son: el horizonte temporal (duración de la simulación), las tasas de descuento para los costos y los beneficios, las tasas de incidencia, la proporción de cada tratamiento al inicio, la tasa de admisión o la perspectiva de uso. Sólo hay una copia de cada variable que se mantiene para todo el modelo.
Recursos Definidos en un tiempo determinado, su consumo lleva asociado el gasto de una serie de unidades de dichos recursos en momentos de tiempo concretos. En el ámbito sanitario estos recursos se pueden dividir en personas (médicos, enfermeras, cuidadores), bienes (medicamentos, pruebas de laboratorio), espacios (camas hospitalarias, quirófanos) entre otros. Algunos recursos pueden consumirse de manera simultánea en un momento dado, pero lo más frecuente es que las entidades tengan que competir por estos recursos, que además tienen un costo unitario de uso.
Un recurso puede tener diferentes unidades de capacidad (pensemos, por ejemplo, en las camas en una sala de emergencia o en el número de médicos en una zona geográfica determinada).
Acumuladores estadísticos Son variables que acumulan la información de lo que ha pasado sin participar en el suceso mismo, es decir, son pasivos. Dependen de la caracterización de los resultados pedidos al modelo. Al final de la simulación, se usan para obtener el resultado final, y las medidas de éstos (cocientes costo efectividad). Algunos ejemplos de acumuladores estadísticos son la supervivencia, los costos asociados a los pacientes o el número de visitas en un tiempo determinado.
Colas Cuando un paciente utiliza un determinado recurso, éste deja de estar disponible para el resto de los pacientes, lo cual puede generar colas en el sistema. Esta situación no suele tenerse en cuenta en otro tipo de modelos, en los que los recursos parecen gozar de una capacidad infinita (lo cual está alejado de la máxima de la escasez de recursos en función de las necesidades de la población, que es una característica de la toma de decisiones en sanidad). Esta conceptualización está vinculada a la idea del costo de oportunidad de los recursos en la propia estructura del modelo.
Retrasos Se pueden generar 2 tipos de retrasos: explícitos, que son los que se generan por algún tipo de acción o proceso (p. ej., la duración de los exámenes médicos), e implícitos, causados por otras acciones o condiciones en la simulación del modelo (p. ej., colas para acceder a una prueba diagnóstica). Cuando se escribe un programa de simulación para MSED se puede realizar una aproximación del esquema temporal de funcionamiento de las entidades en el sistema. Así, deberá describirse la secuencia de eventos y actividades que realizarán las entidades durante su estancia en el sistema y cómo se modificarán. Algunos de los sistemas más estudiados son los problemas de colas que se aplican en determinadas situaciones, como la espera que deben tener los pacientes entre visita y visita, si los centros donde son tratados no pueden absorber toda su demanda (p. ej., en un centro e instante de tiempo sólo puede ser tratado un paciente a la vez).
A modo de resumen, para llevar a cabo la simulación del sistema se deben seguir una serie de etapas, ampliamente identificadas y discutidas en la literatura científica (Figura):
Clasificación de modelos 1. Estático. Las variables de estado no dependen del tiempo 2. Dinámico. El valor de las variables de estado es modificado en el tiempo 3. Determinista. Si el sistema no contiene ningún elemento aleatorio es un sistema determinístico. 4. Estocástico. En este caso algún elemento del sistema tiene una conducta aleatoria. Para valores de entradas conocidas no es posible asegurar los valores de salida. 5. Continuo. Se tiene un sistema continuo cuando las relaciones funcionales entre las variables del sistema sólo permiten que el estado evolucione en el tiempo en forma continua (basta que una variable evolucione continuamente).Matemáticamente, el estado cambia en infinitos puntos de tiempo.
6. Discreto. Se tiene un sistema discreto cuando las relaciones funcionales del sistema sólo permiten que el estado varíe en un conjunto finito (contable) de puntos temporales. Las causas instantáneas de los cambios de estados se denominan eventos.
1.4. Sistemas, Modelos y Control Un Sistema se define como una colección de entidades (por ejemplo, personas, máquinas, etc.) que actúan e interactúan juntas para lograr un fin común. En la práctica, ¿qué se entiende por sistema?, depende de los objetivos del estudio particular que se pretenda hacer. El conjunto de entidades que componen el sistema para un estudio puede ser sólo un conjunto de todas las entidades utilizadas para otro estudio. Se puede definir el estado de un sistema con un conjunto de variables necesarias para describir el sistema en un punto particular de tiempo, relativo a los objetivos del estudio. Los sistemas se pueden clasificar en dos tipos, discretos y continuos. Un sistema discreto es aquel en el que las variables de estado cambian instantáneamente en puntos separados en el tiempo. Un sistema continuo es aquel en el que las variables de estado cambian continuamente con respecto al tiempo. En la práctica muchos sistemas no son completamente discretos o continuos, usualmente es posible clasificarlos en base al tipo de cambios que predominen en el mismo. En algunos momentos en la vida de un sistema es necesario estudiar el mismo para entender las relaciones entre sus componentes o predecir su comportamiento bajo nuevas condiciones que se consideran. Existen diferentes formas de estudiar un sistema (Figura 1.1): Experimentar sobre el sistema actual frente a experimentar con un modelo del sistema. Lo primero es preferible siempre y cuando se pueda alterar el sistema con las nuevas condiciones y no sea muy costoso. Sin embargo es muy raro que esto se pueda llevar a cabo, ya que normalmente estos experimentos suelen ser muy costosos o muy destructivos para el sistema. Incluso puede ocurrir que el sistema no exista pero se quiera estudiar posibles alternativas de construcción del mismo (sistemas de fabricación, armas nucleares, etc.). Por estas razones es necesario construir un modelo que represente al sistema y estudiar éste para poder responder a las cuestiones planteadas sobre el sistema. Modelo físico frente a modelo matemático: Para muchos la palabra modelo, evoca imágenes de miniaturas, cabinas separadas de los aviones para el entrenamiento de los pilotos, etc. Estos son ejemplos de modelos físicos (también conocidos como modelos icónicos). Sin embargo la mayoría de los modelos construidos para estudiar los sistemas son matemáticos, los cuales
representan un sistema en términos de relaciones cuantitativas y lógicas que pueden ser cambiadas para ver cómo el modelo reacciona y ver así como debería comportarse el sistema, si el modelo es válido. Solución Analítica frente a Simulación: Una vez que se ha construido un modelo matemático, éste debe examinarse para poder concluir el comportamiento del sistema y así responder a las cuestiones planteadas sobre el mismo. Si el modelo es simple, es posible trabajar con estas cantidades y relaciones y obtener una solución analítica exacta. Sin embargo hay veces en las que obtener una solución analítica resulta complejo y necesita muchos recursos de computación. En estos casos el modelo puede ser estudiado por medio de simulación, es decir, se ejercita el modelo numéricamente por medio de entradas para ver cómo éstas afectan a las medidas de salida o ejecución.
Los modelos deben contener sólo los aspectos esenciales del sistema real que representan. Aquellos aspectos del sistema que no contribuyen significativamente en su comportamiento no se deben incluir, ya que lo que harían sería obscurecer las relaciones entre las entradas y las salidas. ¿En qué punto se debe parar de incluir realismo en el modelo? Esto depende del propósito para el cual el modelo se haya desarrollado.
Características que deben presentar los modelos:
Deben ser fáciles de entender y manejar. Deben ser simples y de costo no excesivo. Deben ser una buena aproximación del sistema real, que controle el mayor número posible de aspectos del mismo y que éstos contribuyan de forma significativa al sistema (hay relaciones en el sistema que no son significativas y pueden obviarse en el modelo).
El diseño y control de modelos de modelos obliga a tener conocimientos de cuatro áreas de conocimiento distintas:
Modelización: necesarios para diseñar el modelo que permita dar respuestas válidas del sistema real que represente. El diseño es una fase muy importante, ya que los errores proporcionarán modelos falsos. Programación: ya que el modelo se ha de implantar con un lenguaje de programación. Probabilidad y Estadística: la probabilidad es necesaria para definir y estudiar las variables aleatorias de las entradas, y la estadística para permitir el diseño y análisis de los experimentos. Métodos Heurísticos: para permitir llegar a una solución buena del problema planteado.
Control: Es el elemento de verificación de datos del sistema, mediante el cual, automáticamente vuelve a traer los datos necesarios relacionados con la rutina de procedimiento que se controla. Un Sistema de Control está definido como un conjunto de componentes que pueden regular su propia conducta o la de otro sistema con el fin de lograr un funcionamiento predeterminado, de modo que reduzcan las probabilidades de fallos y se obtengan los resultados buscados. La finalidad de un sistema de control es conseguir, mediante la manipulación de las variables de control, un dominio sobre las variables de salida, de modo que estas alcancen unos valores prefijados (consigna).
1.5. Mecanismos de tiempo fijo y tiempo variable Parte de la construcción de modelos es el mecanismo de avance de tiempo. Este dependerá de la aproximación elegida para describir el comportamiento del sistema. Si se eligió la aproximación de flujo físico, este diagrama de flujo podría refinarse para convertirse en el diagrama de flujo del programa. Si se siguió la aproximación de cambio de estado, el
diagrama de flujo desarrollado debería describir el procedimiento que efectúa los cambios de estado en el tiempo. Otros dos factores inciden en la construcción del diagrama de flujo del programa: elegir un mecanismo de avance del tiempo y el lenguaje de programación que se seleccione. Hay fundamentalmente dos formas de considerar el avance del tiempo en un modelo de simulación: Incrementos fijos de tiempo: se considera un intervalo fijo de tiempo y el estado del modelo se comprueba después de transcurrido cada uno de estos incrementos constantes. Incrementos por los eventos (N.E.T.A., Next Event Time Advance): las comprobaciones y modificaciones de las variables afectadas se realizan sólo después de la ocurrencia de un evento. Aquí el incremento de tiempo es variable, va desde la ocurrencia de un evento a otro. El avance del tiempo de simulación depende de cuál de las aproximaciones se elija. Si se elige el incremento por eventos, el reloj se inicializa a 0, y se incrementa al siguiente tiempo en que vaya a ocurrir un suceso, en ese momento, en este momento de actualización del reloj se modifican las variables que se vean afectadas por la ocurrencia del suceso. Si por el contrario se elige un incremento de tiempo fijo, el reloj se inicia a 0 y se va actualizando cada vez que pase el incremento de tiempo fijado. En esos instantes se observará el sistema para realizar los cambios. En ese momento puede ocurrir que no haya sucedido ningún cambio o que por el contrario que hayan ocurrido más de un suceso con lo cual se tendrá que decidir cuál atender antes (por ejemplo dando prioridad a los sucesos). En esta aproximación pueden ocurrir “errores de redondeo”, que hacen referencia a la diferencia de tiempo que pasa desde que
sucede un suceso hasta que éste se computa (cuando el reloj se incrementa). Hay que tener cuidado en la elección del incremento de tiempo. Si éste es demasiado pequeño se realizará trabajo inútil, ya que se comprobarán cambios cuando en realidad no ha ocurrido ningún suceso. Por el contrario si es demasiado grande se producirán muchos errores de redondeo y la dinámica del modelo será ineficiente. Avance del reloj de simulación según los sucesos. Avance del reloj de simulación en incrementos fijos.
1.6. Etapas de un Proyecto de simulación 1. Definición del sistema bajo estudio. En esta etapa es necesario conocer el sistema a modelar. Para ello se requiere saber qué origina el estudio de simulación y establecer los supuestos del modelo: es conveniente definir con claridad las variables de decisión del modelo, determinar las interacciones entre éstas y establecer con precisión los alcances y limitaciones que aquel podría llegar a tener. Antes de concluir este paso es recomendable contar con la información suficiente para lograr establecer un modelo conceptual del sistema bajo estudio, incluyendo sus fronteras y todos los elementos que lo componen, además de las interacciones entre éstos, flujos de productos, personas y recursos, así como las variables de mayor interés para el problema.
2. Generación del modelo de simulación base. Una vez que se ha definido el sistema en términos de un modelo conceptual, la siguiente etapa del estudio consiste en la generación de un modelo de simulación base. No es preciso que este modelo sea demasiado detallado, pues se requiere mucha más información estadística sobre el comportamiento de las variables de decisión del sistema. La generación de este modelo es el primer reto para el programador de la simulación, toda vez que debe traducir a un lenguaje de simulación la información que se obtuvo en la etapa de definición del sistema, incluyendo las interrelaciones de todos los posibles subsistemas que existan en el problema a modelar. En caso de que se requiera una animación, éste también es un buen momento para definir qué gráfico puede representar mejor el sistema que se modela. Igual que ocurre en otras ramas de la investigación de operaciones, la simulación exige ciencia y arte en la generación de sus modelos. El realizador de un estudio de simulación es, en este sentido, como un artista que debe usar toda su creatividad para realizar un buen modelo que refleje la realidad del problema que se está analizando. Conforme se avanza en el modelo base se pueden ir incluyendo las variables aleatorias del sistema, con sus respectivas distribuciones de probabilidad asociadas.
3. Recolección y análisis de datos. De manera paralela a la generación del modelo base, es posible comenzar la recopilación de la información estadística de las variables aleatorias del modelo. En esta etapa se debe determinar qué información es útil para la determinación de las distribuciones de probabilidad asociadas a cada una de las variables aleatorias innecesarias para la simulación. Aunque en algunos casos se logra contar con datos estadísticos, suele suceder que el formato de almacenamiento o de generación de reportes no es el apropiado para facilitar el estudio. Por ello es muy importante dedicar el tiempo suficiente a esta actividad. De no contar con la información necesaria o en caso de desconfiar de la que se tiene disponible, será necesario realizar un estudio estadístico del comportamiento de la variable que se desea identificar, para posteriormente incluirla en el modelo. El análisis de los datos necesarios para
asociar una distribución de probabilidad a una variable aleatoria, así como las pruebas que se debe aplicar a los mismos, se analizarán más adelante. Al finalizar la recolección y análisis de datos para todas las variables del modelo, se tendrán las condiciones necesarias para generar una versión preliminar del problema que se está simulando.
4. Generación del modelo preliminar. En esta etapa se integra la información obtenida a partir del análisis de los datos, los supuestos del modelo y todos los datos que se requieran para tener un modelo lo más cercano posible a la realidad del problema bajo estudio. En algunos casos — sobre todo cuando se trata del diseño de un nuevo proceso o esquema de trabajo — no se cuenta con información estadística, por lo que debe estimarse un rango de variación o determinar (con ayuda del cliente) valores constantes que permitan realizar el modelado. Si éste es el caso, el encargado de la simulación puede, con base en su experiencia, realizar algunas sugerencias de distribuciones de probabilidad que comúnmente se asocien al tipo de proceso que se desea incluir en el modelo. Al finalizar esta etapa el modelo está listo para su primera prueba: su verificación o, en otras palabras, la comparación con la realidad. 5. Verificación del modelo. Una vez que se han identificado las distribuciones de probabilidad de las variables del modelo y se han implantado los supuestos acordados, es necesario realizar un proceso de verificación de datos para comprobar la propiedad de la programación del modelo, y comprobar que todos los parámetros usados en la simulación funcionen correctamente. Ciertos problemas, en especial aquellos que requieren muchas operaciones de programación o que involucran distribuciones de probabilidad difíciles de programar, pueden ocasionar que el comportamiento del sistema sea muy diferente del que se esperaba. Por otro lado, no se debe descartar la posibilidad de que ocurran errores humanos al alimentar el modelo con la información. Incluso podría darse el caso de que los supuestos iniciales hayan cambiado una o varias veces durante el desarrollo del modelo. Por lo tanto, debemos asegurarnos de que el modelo que se va a ejecutar esté basado en los más actuales. Una vez que se ha completado la verificación, el modelo está listo para su comparación con la realidad del problema que se está modelando. A esta etapa se le conoce también como validación del modelo.
6. Validación del modelo. El proceso de validación del modelo consiste en realizar una serie de pruebas al mismo, utilizando información de entrada real para observar su comportamiento y analizar sus resultados. Si el problema bajo simulación involucra un proceso que se desea mejorar, el modelo debe someterse a prueba con las condiciones actuales de operación, lo que nos dará como resultado un comportamiento similar al que se presenta realmente en nuestro proceso. Por otro lado, si se está diseñando un nuevo proceso la validación resulta más complicada. Una manera de validar el modelo en este caso, consiste en introducir algunos escenarios sugeridos por el
cliente y validar que el comportamiento sea congruente con las expectativas que se tienen de acuerdo con la experiencia. Cualquiera que sea la situación importante que el analista conozca bien el modelo, de manera que pueda justificar aquellos comportamientos que sean contrarios a las experiencias de los especialistas en el proceso que participan de su validación.
7. Generación del modelo final. Una vez que el modelo se ha validado, el analista está listo para realizar la simulación y estudiar el comportamiento del proceso. En caso de que se desee comparar escenarios diferentes para un mismo problema, éste será el modelo raíz; en tal situación, el siguiente paso es la definición de los escenarios a analizar. 8. Determinación de los escenarios para el análisis. Tras validar el modelo es necesario acordar con el cliente los escenarios que se quiere analizar. Una manera muy sencilla de determinarlos consiste en utilizar un escenario pesimista, uno optimista y uno intermedio para la variable de respuesta más importante. Sin embargo, es preciso tomar en cuenta que no todas las variables se comportan, igual ante los cambios en los distintos escenarios, por lo que tal vez sea necesario que más de una variable de respuesta se analice bajo las perspectivas pesimista, optimista e intermedia. El riesgo de esta situación radica en que el analista podría caer en un diseño de experimentos capaz de generar una gran cantidad de réplicas, lo que redundaría en un incremento considerable de costo, análisis y tiempo de simulación. Es por ello que muchos paquetes de simulación cuentan con herramientas para realizar este proceso, eliminando la animación y acortando los tiempos de simulación. Estas herramientas permiten realizar varias réplicas del mismo escenario para obtener resultados con estadísticas importantes respecto de la toma de decisiones (por ejemplo, los intervalos de confianza). Por su parte, el analista también puede contribuir a la selección de escenarios, sugiriendo aquellos que considere más importantes; al hacerlo dará pie a que se reduzca el número de combinaciones posibles.
9. Análisis de sensibilidad. Una vez que se obtienen los resultados de los escenarios es importante realizar pruebas estadísticas que permitan comparar los escenarios con los mejores resultados finales. Si dos de ellos tienen resultados similares será necesario comparar sus intervalos de confianza respecto de la variable de respuesta final. Si no hay intersección de intervalos podremos decir con certeza estadística que los resultados no son iguales; sin embargo, si los intervalos se traslapan será imposible determinar, estadísticamente hablando, que una solución es mejor que otra. Si se desea obtener un escenario "ganador" en estos casos, será necesario realizar más réplicas de cada modelo y/o incrementar el tiempo de simulación de cada corrida. Con ello se busca acortar los intervalos de confianza de las soluciones finales y, por consiguiente, incrementar la probabilidad de diferenciar las soluciones.
10. Documentación del modelo, sugerencias y conclusiones. Una vez realizado el análisis de los resultados, es necesario efectuar toda la documentación del modelo. Esta documentación es muy importante, pues permitirá el uso del modelo generado en caso de que se requieran ajustes futuros. En ella se deben incluir los supuestos del modelo, las distribuciones asociadas a sus variables, todos sus alcances y limitaciones y, en general, la totalidad de las consideraciones de programación. También es importante incluir sugerencias tanto del uso del modelo como sobre los resultados obtenidos, con el propósito de realizar un reporte más completo. Por último, deberán presentarse asimismo las conclusiones del proyecto de simulación, a partir de las cuales es posible obtener los reportes ejecutivos para la presentación final.
Ventajas e inconvenientes de la simulación de eventos discretos Como hemos visto hasta ahora, la simulación es una de las diversas herramientas con las que cuenta el analista para tomar decisiones y mejorar sus procesos. Sin embargo, es necesario destacar que, como todas las demás opciones de que disponemos, la simulación de eventos discretos presenta ventajas y desventajas que, es preciso tomar en cuenta al determinar si es apta para resolver un problema determinado. Dentro de las ventajas más comunes que ofrece la simulación podemos citar las siguientes: a) Es muy buena herramienta para conocer el impacto de los cambios en los procesos sin necesidad de llevarlos a cabo en la realidad. b) Mejora el conocimiento del proceso actual al permitir que el analista vea cómo se comporta el modelo generado bajo diferentes escenarios. c) Puede utilizarse como medio de capacitación para la toma de decisiones. d) Es más económico realizar un estudio de simulación que hacer muchos cambios en los procesos reales. e) Permite probar varios escenarios en busca de las mejores condiciones de trabajo de los procesos que se simulan. f) En problemas de gran complejidad, la simulación permite generar una buena solución. g) En la actualidad los paquetes de software para simulación tienden a ser más sencillos, lo que facilita su aplicación. h) Gracias a las herramientas de animación que forman parte de muchos de esos paquetes es posible ver cómo se comportará un proceso una vez que sea mejorado.
Entre las desventajas que pueden llegar a presentar la simulación están: a) Aunque muchos paquetes de software permiten obtener el mejor escenario a partir de una combinación de variaciones posibles, la simulación no es una herramienta de optimización. b) La simulación puede ser costosa cuando se quiere emplearla en problemas relativamente sencillos de resolver, en lugar de utilizar soluciones analíticas que se han desarrollado de manera específica para ese tipo de casos. c) Se requiere bastante tiempo — generalmente meses — para realizar un buen estudio de simulación; por desgracia, no todos los analistas tienen la disposición (o la oportunidad) de esperar ese tiempo para obtener una respuesta. d) Es preciso que el analista domine el uso del paquete de simulación y que tenga sólidos conocimientos de estadística para interpretar los resultados.
Unidad II. Generación de Números Aleatorios En este capítulo se discuten las técnicas de transformación inversa, el método de convolución y más brevemente la técnica de aceptación-rechazo. Otra técnica el método de composición, es discutida por Fisherman [1978] y Law y Kelton [1991]. Todas las técnicas en este capítulo consideran que se conoce como fuente la uniformidad U(0,1) de los números aleatorios R 1,R 2,...., donde cada R i tiene una función de densidad de probabilidad (FDP).
Y la función de densidad acumulada de probabilidad (FDA)
2.1. Números aleatorios: definición, propiedades, generadores y tablas Historia En el siglo XVII, un noble francés, Antoine Gombauld (1607-1684), puso en tela de juicio el fundamento matemático del éxito y fracaso en las mesas de juego. Formuló esta pregunta al matemático francés Balies Pascal (1623-1662): ¿Cuáles son las posibilidades de que me salgan dos seises por lo menos una vez en veinticuatro lanzamientos de un par de dados?, Pascal resolvió el problema, pues la teoría de la probabilidad empezaban a interesarle tanto como a Gombauld. Ambos compartieron sus ideas con el famoso matemático Pierre de Fermat (16011665), y las cartas escritas por los tres constituyen la primera revista académica dedicada a la probabilidad. Algunos de los problemas que ellos resolvieron habían permanecido si solución durante unos 300 años. Sin embargo, ciertas probabilidades numéricas para ciertas combinaciones de dados ya habían sido calculadas por Giordamo Cardano (1501-1576) y por Galileo Galileo (1564-1642). Más tarde, Jacob Bernoulli (1654-1705), Abraham de Moivre (1667-1754), el reverendo Thomas Bayes (1702-1761) y Joseph Lagrange (1736-1813) inventaron formulas y técnicas de probabilidad. En el siglo XIX, Pierre Simón, marqués de Laplace (1749-1827), unifico esas primeras ideas y formuló la primera teoría general de la probabilidad, la cual fue aplicada inicialmente con buenos resultados a los juegos de azar; con el tiempo también se aplicó en la búsqueda de soluciones analíticas a problemas de naturaleza no determinística. La teoría de la probabilidad ha sido constantemente desarrollada desde el siglo XVII y ampliamente aplicada en diversos campos de estudio. Hoy es una herramienta importante en la mayoría de las áreas
de ingeniería, ciencias y administración, y se constituye en la base para el estudio de las leyes de azar.
Definición Los números aleatorios son aquellos que pueden ser generados a partir de fuentes de aleatoriedad, las cuales, generalmente, son de naturaleza física (dados, ruletas, mecanismos electrónicos o mecánicos), y son gobernados por las leyes del azar; éstos exhiben verdadera aleatoriedad en la realización de experimentos. Por su parte, los números pseudo-aleatorios son aquellas que tienen un comportamiento similar a la naturaleza aleatoria, pero están ceñidos a un patrón, generalmente de naturaleza matemática, que hace que su comportamiento sea determinante.
Los números aleatorios son números que deben de cumplir los requisitos de espacio equiprobable, es decir, que todo elemento tenga la misma probabilidad de ser elegido y que la elección de uno no dependa de la elección del otro. Son generados por medio de una función determinista (no aleatoria) y que aparentan ser aleatorios.
Propiedades de los números aleatorios 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Cualquier número que pertenezca al rango de interés debe tener la misma probabilidad de resultar sorteado. La distribución de los números debe ser uniforme en todo el intervalo [0,1]. La aparición de un número en la secuencia, no afecta la probabilidad de sortear otro (o el mismo) número. Los números deben ser independientes dentro de toda la serie generada. El ciclo del generador debe ser lo suficientemente grande. La serie debe volverse a repetir. Capaz de generar números pseudo-aleatorios a altas velocidades. Requerir una mínima cantidad de la capacidad de memoria de Computadora Estadísticamente independientes. Su media debe ser estadísticamente igual a 1/2. Su varianza debe ser estadísticamente igual a 1/12. Su periodo o ciclo de vida debe ser largo. Deben ser generados a través de un método rápido. Generados a través de un método que no requiera mucha capacidad de almacenamiento de la computadora
Generadores de números aleatorios Los métodos para generar números aleatorios involucran algún proceso físico cuasi-aleatorio, que genera sucesiones de números aleatorios de determinada longitud. El requisito general para las sucesiones es la independencia estadística. Para esto, existen varios métodos:
Métodos manuales: Dispositivos mecánicos o electrónicos, lanzamientos de monedas o dados, empleo de barajas, ruletas. Son menos prácticos pero simples, lentos, atractivos, pedagógico. Pero no pueden reproducirse. Tablas de bibliotecas: Generados por los métodos anteriores. Están en tablas. Siempre pueden reproducirse, pero es un sistema lento. Determinados problemas requieren más números aleatorios que los publicados. Métodos de computación analógica: Dependen de procesos físicos aleatorios, por ejemplo: el ruido térmico de un circuito con semiconductores, que convertido en un número binario, representa un valor numérico aleatorio. Se considera que conducen a verdaderos números aleatorios. Métodos de computación digital: Se han sugerido tres métodos para producir números aleatorios cuando se usan computadoras digitales; provisión externa, generación interna, relación de recurrencia. En los modelos estocásticos existirán una o más variable aleatorias interactuando. Estas variables siguen distribuciones de probabilidad teóricas o empíricas, diferentes a la distribución uniforme (0-1). Para generar números que sigan el comportamiento de éstas variables, se pueden utilizar algunos métodos como los siguientes: 1. Método de la transformada inversa 2. Método de rechazo 3. Método de composición, y 4. Procedimientos especiales Existen en la actualidad técnicas para generar con una computadora, variables aleatorias uniformemente distribuidas, r (en donde r ≥ 0 y
1 ≥ r). Los números generados por estas
subrutinas de computadora se denominan números pseudo-aleatorios, porque se generan a partir de una fórmula totalmente determinística mediante la computación. Sus propiedades
estadísticas, coinciden con las de los números generados a través de un dispositivo fortuito idealizado que selecciona números de un intervalo unitario (0,1) de un modo independiente en donde son igualmente probables todos los números. A condición de que estos números pseudo aleatorios puedan pasar el conjunto de pruebas estadísticas (las de frecuencia, auto correlación, producto rezagado, corridas, de distancia y así sucesivamente) implicadas por un dispositivo fortuito idealizado, tales números pseudoaleatorios se pueden tratar corno si "en realidad lo fueran" a pesar de que no lo son.
Ejemplos de aplicación
Simulación: La reproducción de fenómenos naturales necesita números aleatorios. En Física los ejemplos clásicos: Física Estadística, Física de Partículas Muestreo: Muchas veces es poco práctico examinar todos los casos posibles. Un muestreo aleatorio puede revelar un comportamiento típico. Análisis Numérico: Técnicas numéricas necesitan números aleatorios Programación de ordenadores: Tests de efectividad de algoritmos Toma de decisiones: Se rumorea que algunos ejecutivos tiran monedas al aire para tomar decisiones. Estética: Un toque de aleatoriedad puede resultar agradable Juegos: De aquí proviene el propio método para generación de números aleatorios
Generación de números pseudo-aleatorios
Para realizar una simulación se requieren números aleatorios en el intervalo (0,1), a los cuales se hará referencia como es decir, una secuencia que contiene n números, todos ellos diferentes; n recibe el nombre de periodo o ciclo de vida del generador que creó la secuencia .
Los constituyen la parte medular de la simulación de procesos estocásticos, y generalmente se usan para generar el comportamiento de variables aleatorias, tanto continuas como discretas. Debido a que no es posible generar números realmente aleatorios, consideramos los como números pseudo aleatorios, generados por medio de algoritmos determinísticos que requieren parámetros de arranque.
–
Para simular el comportamiento de una o más variables aleatorias es necesario contar con un conjunto suficientemente grande de que permita, por ejemplo, que la secuencia tenga al menos un periodo de vida de . De acuerdo con L'Ecuyer una secuencia de con periodo de vida de es relativamente pequeña; de hecho, incluso una secuencia de que contenga un ciclo de vida de se considera pequeña. En la
actualidad contamos ya con generadores y procesadores capaces de construir una secuencia de con periodo de vida de .
Algoritmo de cuadrados medios
Este algoritmo no congruencial fue propuesto en la década de los cuarenta del siglo XX por Von Neumann y Metrópolism. Requiere un número entero detonador (llamado semilla) con D dígitos, el cual es elevado al cuadrado para seleccionar del resultado los D dígitos del centro; el primer número r¡ se determina simplemente anteponiendo el "0."a esos dígitos. Para obtener el segundo se sigue el mismo procedimiento, sólo que ahora se elevan al cuadrado los D dígitos del centro que se seleccionaron para obtener el primer Este método se repite hasta obtener n números A continuación se presentan con más detalle los pasos para generar números con el algoritmo de cuadrados medios.
1. Seleccionar una semilla (Xo) con D dígitos (D > 3).
2. Sea Xo = resultado de elevar dígitos del centro.
al cuadrado; sea X, = los D dígitos del centro, y sea
3. Sea Y. = resultado de elevar al cuadrado; sea =0.D dígitos del centro para toda 4. Repetir el paso 3 hasta obtener los n números
= los D dígitos del centro, y sea
deseados.
Nota: Si no es posible obtener los D dígitos del centro del número izquierda del número .
Ejemplo 1.
Generar los primeros 5 números observar que D = 4 dígitos.
a partir de una semilla
agregue ceros a la
, de donde se puede
El algoritmo de cuadrados medios generalmente es incapaz de generar una secuencia de t¡ con periodo de vida n grande. Además, en ocasiones sólo es capaz de generar un número, por ejemplo, si ;, entonces ; y se dice que el algoritmo se degenera con la semilla de
Algoritmo de productos medios
La mecánica de generación de números pseudo aleatorios de este algoritmo no congruencial es similar a la del algoritmo de cuadrados medios. La diferencia entre ambos radica en que el algoritmo de productos medios requiere dos semillas, ambas con D dígitos; además, en lugar de elevarlas al cuadrado, las semillas se multiplican y del producto se seleccionan los D dígitos del centro, los cuales formarán el primer número pseudo aleatorio = 0.D dígitos. Después se elimina una semilla, y la otra se multiplica por el primer número de D dígitos, para luego seleccionar del producto los D dígitos que conformarán un segundo número ri. Entonces se elimina la segunda semilla y se multiplican el primer número de D dígitos por el segundo número de D dígitos; del producto se obtiene el tercer número . Siempre se irá eliminando el
número más antiguo, y el procedimiento se repetirá hasta generar “n” números pseudo
aleatorios. A continuación se presentan con más detalle los pasos del método para generar números con el algoritmo de producto medios. 1. Seleccionar una semilla (Xo) con D dígitos (D > 3). 2. Seleccionar una semilla (X}) con D dígitos (D > 3). 3. Sea
; sea
4. Sea centro para toda
= los D dígitos del centro, y sea
sea
= los D dígitos del centro, y sea
dígitos del centro.
dígitos del
5. Repetir el paso 4 hasta obtener los n números r¡ deseados.
Nota: Si no es posible obtener los D dígitos del centro del número /^agregue ceros a la izquierda del número
Ejemplo 2.
Generar los primeros 5 números a partir de las semillas que ambas semillas tienen D = 4 dígitos.
y
; observe
Algoritmo de multiplicador constante Este algoritmo no congruencial es similar al algoritmo de productos medios. Los siguientes son los pasos necesarios para generar números pseudo aleatorios con el algoritmo de multiplicador constante. 1. Seleccionar una semilla (Xo) con D dígitos (D > 3). 2. Seleccionar una constante (a) con D dígitos (D > 3). 3. Sea
4. Sea para toda
; sea X, = los D dígitos del centro, y sea
; sea
= los D dígitos del centro, y sea
5. Repetir el paso 4 hasta obtener los n números
deseados.
Nota: Si no es posible obtener los D dígitos del centro del número izquierda del número
Ejemplo 3
dígitos del centro. dígitos del centro
agregue ceros a la
Generar los primeros 5 números ri a partir de la semilla Xo = 9 803 y con la constante a = 6 965. Observe que tanto la semilla como la constante tienen D = 4 dígitos.
Algoritmo lineal Este algoritmo congruencial fue propuesto por D. H. Lehmer15' en 1951. Según Law y Kelton, este algoritmo ha sido el más usado. El algoritmo congruencial lineal genera una secuencia de números enteros por medio de la siguiente ecuación recursiva:
Donde es la semilla, a es la constante multiplicativa, c es una constante aditiva y m es el módulo; X_o >0, a>0, c>0 y m>0 deben ser números enteros. La operación "mod m" significa multiplicar por a, sumar c y dividir el resultado entre m para obtener el residuo . Es importante señalar que la ecuación recursiva del algoritmo congruencial lineal genera una secuencia de números enteros y que para obtener números pseudo aleatorios en el intervalo (0,1) se requiere la siguiente ecuación
Ejemplo 4
Generar 4 números entre (0
= 37, a= 19, c=33 y m =
En el ejemplo anterior se colocaron de manera arbitraria cada uno de los parámetros requeridos^, a, c, m. Sin embargo, para que el algoritmo sea capaz de lograr el máximo periodo de vida n, es preciso que dichos parámetros cumplan ciertas condiciones. Banks, Carson, Nelson y Nicol sugieren lo siguiente.
Bajo estas condiciones se obtiene un periodo de vida máximo ejemplo más, tomando en cuenta lo anterior.
Ejemplo 5
. Veamos un
Generar suficientes números entre (0 y 1) con los parámetros y , hasta encontrar el periodo de vida máximo (N). Como podemos ver, si se cumplen las condiciones que Banks, Carson, Nelson y Nicol sugieren, se logrará el periodo máximo . A continuación se presenta el desarrollo de la generación de los números r¡.
2.2. Propiedades de los números atorios Las propiedades de los números aleatorios, son las que se muestran a continuación:
Los números deben estar uniformemente distribuidos es decir, los números aleatorios pueden estar entre 0 y 1, y en algún momento serán 0 o 1. La media establecida por los números aleatorios debe ser de 0.5. μ= 0.5.
La probabilidad de salir un número de forma aleatoria es: , debe estar entre 0 y 1. La desviación estándar de los números aleatorios debe ser de aproximadamente 0.29, es decir Son estadísticamente independientes. Sin repetición dentro de una longitud determinada de la sucesión. Los números aleatorios debe ser reproducibles, es decir, la misma semilla utilizada para generar los números aleatorios debe dar la misma sucesión.
Prueba de póker utilizado como método de independencia estadística en números aleatorios. La varianza de los números aleatorios debe ser de 1/12. Es impredecible conocer qué valor va a tener cada número aleatorio y cuál va a ser su secuencia
Propiedades de los números pseudoaleatorios Es deseable que los números pseudoaleatorios uniformes posean las siguientes características:
Uniformemente distribuidos. Estadísticamente independientes. Reproducibles. Periodo largo. Generados mediante un método rápido. Generados mediante un método que no requiera mucha capacidad de almacenamiento de la computadora.
2.3. Pruebas estadísticas de aleatoriedad para los números pseudoaleatorios: de medias, de varianza, de independencia y de bondad de ajuste. Existen algunos métodos disponibles para verificar varios aspectos de la calidad de los números pseudoaleatorios. Si no existiera un generador particular de números aleatorios disponible, se le recomienda al analista usar estos métodos cuando se realice una simulación.
Una de las propiedades que deben cumplir los números del conjunto , es que el valor esperado sea igual a 0.5. La prueba que busca determinar lo anterior es la llamada prueba de medias, en la cual se plantean las siguientes hipótesis:
La prueba de medias consiste en determinar el promedio de los “n” números que contiene el conjunto , mediante la ecuación siguiente:
Posteriormente se calculan los límites de aceptación inferior y superior con las ecuaciones siguientes:
̅ (√ ) ̅ (√ )
Si el valor de r se encuentra entre los límites de aceptación, concluimos que no se puede rechazar que el conjunto tiene un valor esperado de 0.5 con un nivel de aceptación de . En caso contrario se rechaza que el conjunto ri tiene un valor esperado de 0.5. Para el cálculo de los límites de aceptación se utiliza el estadístico por medio de la tabla de distribución normal estándar. Ejemplo
, el cual se determina
.
̅ (√ ) (√ ) ̅ (√ ) (√ )
Prueba de variancia
Consiste en verificar si los números aleatorios generados tienen una variancia de 0.083, del tal forma que la hipótesis queda expresada como:
Paso: 1 calcular la varianza de los números aleatorios
̅ ∑
Paso: 2 calcular los límites de aceptación
Paso: 3 Si V(x) se encuentra entre los valores de los límites, aceptamos la hipótesis nula y los números aleatorios tienen una varianza estadísticamente igual. Ejemplo. Realice la prueba de varianza a los siguientes 30 números con nivel de confianza del 95% 0.72484 0.71890 0.34565 0.82345 0.03991
0.48999 0.61234 0.02345 0.12387 0.10461
0.50502 0.86322 0.67347 0.05389 0.93716
0.39528 0.94134 0.10987 0.82474 0.16894
0.36782 0.99872 0.25678 0.59289 0.98953
0.90234 0.27657 0.25593 0.36782 0.73231
Por lo tanto el valor se encuentra dentro de los limites por lo que aceptamos que la varianza de la muestra es estadísticamente igual a
Pruebas de independencia
Las pruebas de independencia consisten en demostrar que los números generados son estadísticamente independientes entre sí, esto es, que no depende uno de otro. Para esto se propone la siguiente hipótesis:
Independiente Dependiente
Para realizar esta prueba de hipótesis existen varios métodos, puede seleccionarse cualquiera de la siguiente lista: i. ii. iii. iv. v. vi. vii.
Prueba de póker. Prueba de corridas arriba y abajo. Prueba de corridas arriba y abajo de la media. Prueba de la longitud de las corridas. Prueba de distancia. Prueba de series. Prueba de huecos.
Los procedimientos para demostrar la independencia utilizando 3 de ellas son los siguientes:
Prueba de póker
Independiente Dependiente
Paso 1
Calcular las probabilidades esperadas para un juego de póker con 5 cartas numeradas del O al 9 con remplazo, se tienen 7 eventos o intervalos, con las siguientes probabilidades:
Paso 2
Calcular la frecuencia esperada de cada uno de los eventos ( ) multiplicando la probabilidad de cada evento por el número de números aleatorios generados. Paso 3 Para cada número aleatorio generado verificar (imaginando que es una mano de póker) si es Pachuca, un par, dos pares, etcétera, tomando los primeros cinco dígitos a la derecha del punto decimal. Por ejemplo, 0.03408 es un par, 0.44343 es un full, 0.00321 dos pares, etcétera. Con
esos resultados se generan una tabla de frecuencias de estos eventos. La frecuencia observada de cada uno de los eventos se conoce como (FO). Paso 4 Calcular el estadístico C con la ecuación 3.8 con
Paso 5
.
Si el valor de C es menor o igual al estadístico de tablas con 6 grados de libertad y una probabilidad de rechazo a, entonces se acepta que los datos son estadísticamente independientes entre sí.
Ejemplo. Realice la prueba de póker a los siguientes 30 números con un nivel de confianza del 95%.
Agrupando los números de acuerdo con sus dígitos, como si fuera una mano de póker se obtiene la siguiente tabla de frecuencias: Intervalo Pachuca Un par Dos pares Una tercia Full Póker Quintilla
FO 14 15 1 1 0 0 0
PE 0.3024 0.5040 0.1080 0.0720 0.0090 0.0045 0.0001
FE=n*PE) 9.072 15.120 3.240 2.160 0.270 0.135 .003
El cálculo de C utilizando de nuevo la ecuación es igual a 4.25 que comparado contra el valor de tablas con grados de libertad, y con un nivel de 5%, que es igual a 12.59, indica que los números generados son estadísticamente independientes.
La prueba de Kolmogorov-Smirnov Esta prueba compara la fdp (función de densidad de probabilidad) uniforme con el fdp (función de densidad de probabilidad) empírico, N observaciones. Por definición
Conforme N crece, nula sea verdadera.
|| deberá tener una mejor aproximación de
, de la distribución de una muestra de
dado que la hipótesis
La prueba Kolmogorov-Smirnov está basada en la desviación máxima absoluta entre sobre el rango de la variable aleatoria- Esto es, basado en la estadística.
y
La distribución de la muestra D es conocida y es tabulada como una función de N en la tabla Kolmogorov-Smirnov. Para probar contra una fdp uniforme, el procedimiento sigue los pasos siguientes:
[ ] [ ]
Paso 1: Ordene los datos en forma ascendente. Sea , en la tal que Paso 2: Usando la fdp teórica
más pequeña observación,
, calcule
Paso 3: Calcule
Paso 4: Encuentre el valor crítico de muestra N.
de la tabla
para un nivel de significancia y un tamaño
Paso 5: Si al valor crítico , acepte la distribución candidato como aquella que tiene un buen ajuste a los datos observados; de otra forma rechace.
Esta prueba está basada en la desviación absoluta mayor entre las fdp empírica y teórica para todo valor dado de Esta desviación es comparada con los valores críticos de tabulados para determinar si la desviación puede ser atribuida a los efectos aleatorios y por lo tanto sea una distribución candidato a ser aceptada tener un buen ajuste a los datos observados. Más específicamente, la prueba tiene los pasos siguientes:
Ejemplo:
En este ejemplo se usa la prueba para examinar bajo un nivel de significancia de si un conjunto de datos representa números aleatorios (por ejemplo esta la distribución uniforme entre 0 y 1). Suponga que cinco datos son dados: 0.53, 0.35, 0.03, 0.94, y 0.22 Solución. Para la distribución Uniforme la fdp es
Para este caso particular . Por lo tanto en forma ascendente y se realizan los cálculos relativos. La tabla siguiente resume los cálculos realizados:
1 2 3 4 5
. Ahora se ordenan los valores
0.03 0.22 0.35 0.53 0.94
0.20 0.40 0.60 0.80 1.00
0.17 0.18 0.25 0.27 0.06
0.03 0.02 -0.05 -0.07 - 0.14
De acuerdo a los cálculos . El valor crítico de 1 de la tabla en el apéndice de tablas para un tamaño de 5 y un nivel de significancia de 0.05 es . Debido a que D es menor que este valor crítico, la hipótesis de que los datos dados pertenecen a una distribución Uniforme es aceptada.
EJEMPLO 5. Efectuar la prueba de Kolmogorov – Smirnov a la siguiente muestra de números aleatorios uniformes. 0.15 0.26 0.33 0.25 0.18
1
0.31 0.34 0.49 0.83 0.11
KS kolmorov Smirnov
0.81 0.70 0.77 0.68 0.03
0.48 0.31 0.04 0.97 0.59
0.01 0.07 0.43 0.11 0.25
0.60 0.06 0.92 0.00 0.55
Sustituyendo los valores en las fórmulas correspondientes se tiene que: i
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
0.00 0.01 0.03 0.04 0.06 0.07 0.11 0.11 0.15 0.18 0.25 0.25 0.26 0.31 0.33 0.34 0.34 0.43 0.48 0.49 0.55 0.59 0.60 0.68 0.70 0.77 0.81 0.83 0.92 0.97
0.03 0.07 0.10 0.13 0.17 0.20 0.23 0.27 0.30 0.33 0.36 0.40 0.43 0.47 0.50 0.53 0.57 0.60 0.63 0.67 0.70 0.73 0.77 0.80 0.83 0.87 0.90 0.93 0.97 1.00
0.03 0.06 0.07 0.09 0.11 0.13 0.12 0.16 0.15 0.15 0.11 0.15 0.17 0.16 0.17 0.19 0.23 0.17 0.15 0.18 0.15 0.14 0.17 0.12 0.13 0.1 0.09 0.1 0.05 0.03
Siguiendo con el paso 4
| – |
Comparamos el valor (calculado) contra el valor en tablas de la distribución KolmogorovSmirnov con y un nivel de significancia el cual es , como 0.23 es menor que 0.242, entonces, no se puede rechazar la uniformidad de los números aleatorios.
Prueba de bondad de ajuste ji cuadrada. Procedimiento:
1. Generar la muestra de números aleatorios de tamaño N. 2. Subdividir el intervalo [0,1] en n sub-intervalos.
3. Para cada sub-intervalo contar la frecuencia observada y calcular la frecuencia esperada FE de números aleatorios, la cual se obtiene dividiendo N/n. 4. Calcular el estadístico de prueba.
5. Comparar el valor calculado contra el valor tabulado de la distribución con ( grados de libertad y una significancia ?. Si es menor que entonces no se puede rechazar la uniformidad de los números aleatorios.
EJEMPLO 4. Realizar la prueba de bondad de ajuste Ji-cuadrada a la siguiente muestra de tamaño 30 de números aleatorios uniformes. 0.15 0.26 0.33 0.25 0.18
0.31 0.34 0.49 0.83 0.11
0.81 0.70 0.77 0.68 0.03
0.48 0.31 0.04 0.97 0.59
0.01 0.07 0.43 0.11 0.25
INTERVALO
F E
F O
(
0.00 - 0.20 0.21 - 0.40 0.41 - 0.60 0.61 - 0.80 0.81 - 1.00
6 6 6 6 6
10 7 6 3 4
2.67 0.17 0.00 1.50 0.67
Sea = 5%. Tenemos distribución Ji cuadrada es:
0.60 0.06 0.92 0.00 0.55
grados de libertad, es decir
. El valor en tablas de la
Como es menor que es decir; 5.01 es menor que 9.49, entonces no se puede rechazar la uniformidad de los números aleatorios.
Corridas por arriba y por abajo del promedio Procedimiento
Generar la muestra de tamaño N de números aleatorios. Con base en esta muestra, obtener una nueva sucesión binaria, según el criterio siguiente:
Si es menor o igual a 0.50 entonces asignarle a el símbolo 0. Si es mayor a 0.50 entonces asignarle a: el símbolo 1. La frecuencia esperada para cada longitud de corrida i, es:
EJEMPLO 6. Dada la siguiente muestra de tamaño 30 de números aleatorios, aplicar la prueba de corridas, para la independencia 0.15 0.26 0.33 0.25 0.18
0.31 0.34 0.49 0.83 0.11
0.81 0.31 0.77 0.68 0.03
0.48 0.70 0.04 0.97 0.59
0.01 0.07 0.43 0.11 0.25
0.60 0.06 0.92 0.00 0.55
Comparando los números aleatorios según el criterio establecido, se obtiene la siguiente sucesión binaria. Leyendo de izquierda a derecha se agrupan los símbolos del mismo tipo para formar las corridas. 0 0 0 0 0
0 0 0 1 0
1 0 1 1 0
0 1 0 1 1
0 0 0 0 0
1 0 1 0 1
En la siguiente tabla se resume la información necesaria para el cálculo de la Ji-cuadrada. Longitud de corrida i 1 2 3
FE 8.000 3.875 1.875
FO 9 3 2
0.125 0.197 0.008
4 5
0.906 0.438
1 1
0.010 0.721
Como para las longitudes de corrida ; las frecuencias observadas son menores o igual a cinco, agrupamos estas longitudes de corridas en una sola longitud de corrida? 2. i
F E
F O
1 >=2
8 7.04
9 7
El valor en tablas de números aleatorios.
0.125 0.936
; entonces no se puede rechazar la independencia de los
Corridas ascendentes y descendentes Procedimiento
1. Generar la muestra de tamaño N de números aleatorios. 2. Construir la sucesión binaria de acuerdo al siguiente criterio: Si es menor o igual a r j+1 entonces asignarle a el símbolo Si es mayor que entonces asignarle al el símbolo .
| |
Con base en la distribución efectuar la prueba, donde la frecuencia esperada de las longitudes de corrida se calculará con:
EJEMPLO 7. Aplicar la prueba de las corridas ascendentes y descendentes a la muestra de números aleatorios del ejemplo anterior. Compararemos a los números por fila, pero es indistinto hacerlo por columna. 0.15 0.26 0.33 0.25 0.18
0.31 0.34 0.49 0.83 0.11
0.81 0.70 0.77 0.68 0.03
0.48 0.31 0.04 0.97 0.59
0.01 0.07 0.43 0.11 0.25
0.60 0.06 0.92 0.00 0.55
Ahora la sucesión binaria es 0 0 0 0 1
0 0 0 1 1
1 0 1 0 0
1 1 0 1 1
0 1 1 1 0
1 0 1 0
Obsérvese que la última celda se deja en blanco, pues no hay con qué número comparar. (Aquí N = 29) 2
L ongitud de corr ida i
F E
F O
(FE-FO) /F E
1 2 3 4 5
11.500 5.083 1.400 0.292 0.005
11 5 2 -
0.020 0.001 0.257
2
i
F E
F O
(FE-FO) /F E
1 >=2
11.500 6.483
11 7
0.020 0.004 2 X 0 = 0.024
Como el valor calculado de 0.024 es menor que el valor en tablas de Ji-cuadrada , no se puede rechazar la independencia de los números aleatorios.
2.4. Obtención de números pseudoaleatorios utilizando paquetes computacionales. Los lenguajes precursores en Simulación fueron los de propósito general, entre ellos por mencionar solo algunos tenemos: FORTRAN, ALGOL, COBOL, RPG, BASIC, PASCAL, MODULA, PL/1, etc. Los principales lenguajes utilizados en Simulación son:
Simulación de cambio continuo y de cambio discreto en computadoras híbridas H01; Simulación de incremento continuo con orientación a ecuaciones directas con énfasis en ecuaciones diferenciales DSL/90, MIMIC, BHSL, DIHYSYS y S/360 CSMP; Simulación de
incremento continuo con simuladores orientados a bloques con énfasis en ecuaciones diferenciales MIDAS, PACTOLUS, SCADS, MADBLOC, COBLOC y 1130 CSMP; Simulación de incremento continuo con simuladores orientados a bloques con énfasis en ecuaciones de diferencias DYNAMO, DYSMAP 2; Simulación de incremento discreto con orientación a actividades CSL, CLP, GSP, GERT, FORSIM, ESP, MONTECODE y MILITRAN; Simulación de incremento discreto con orientación a eventos SIMSCRIPT, GASP, SIMCOM, SIMULATE y SIMPAC; Simulación de incremento discreto con orientación a procesos SIMULA, OPS, SLAM y SOL; Simulación de incremento discreto con orientación a flujo de transacciones GPSS y BOS. Los paquetes de mayor utilización en Simulación son: EXCEL, STELLA, SIMAN, RISK, STORM, LINDO, CRYSTAL BALL, QSB, MOR/DS, OR/MS, BEER GAME, GREENPACE, SIMULACION, TAYLOR II, CAPRE, SIMNET II, PROMODEL, ITHINK, URBAN DYNAMICS y POWERSIM. En Simulación Gerencial podemos citar: FISH BANK, FINANACAT, BUGA-BUGA y MARKOPS, TREE PLAN entre otros.
2.5. Método de Monte Carlo El método Montecarlo es un método numérico que permite resolver problemas físicos y matemáticos mediante la simulación de variables aleatorias. Lo vamos a considerar aquí desde un punto de vista didáctico para resolver un problema del que conocemos tanto su solución analítica como numérica. El método Montecarlo fue bautizado así por su clara analogía con los juegos de ruleta de los casinos, el más célebre de los cuales es el de Montecarlo, casino cuya construcción fue propuesta en 1856 por el príncipe Carlos III de Mónaco, siendo inaugurado en 1861. La importancia actual del método Montecarlo se basa en la existencia de problemas que tienen difícil solución por métodos exclusivamente analíticos o numéricos, pero que dependen de factores aleatorios o se pueden asociar a un modelo probabilística artificial (resolución de integrales de muchas variables, minimización de funciones, etc.). Gracias al avance en diseño de los ordenadores, cálculos Montecarlo que en otro tiempo hubieran sido inconcebibles, hoy en día se presentan como asequibles para la resolución de ciertos problemas. En estos métodos el error , donde N es el número de pruebas y, por tanto, ganar una cifra decimal en la precisión implica aumentar N en 100 veces. La base es la generación de números aleatorios de los que nos serviremos para calcular probabilidades. Conseguir un buen generador de estos números así como un conjunto estadístico adecuado sobre el que trabajar son las primeras dificultades con la nos vamos a encontrar a la hora de utilizar este método. En el caso que presentamos hemos hecho uso de la función random(x) incluida en la clase Math que la máquina virtual Java trae por defecto como generador. Las pruebas realizadas, algunas de las
√
cuales se propondrán como ejercicio, verifican su calidad a la hora de calcular números aleatorios sin tendencia aparente a la repetición ordenada. El método de Montecarlo permite resolver problemas matemáticos mediante la simulación de variables aleatorias. John Von Neumann, en los años 40 y con los primeros ordenadores, aplica la simulación para resolver problemas complejos que no podían ser resueltos de forma analítica. Montecarlo y su casino están relacionados con la simulación. La ruleta, juego estrella de los casinos, es uno de los aparatos mecánicos más sencillos que nos permiten obtener números aleatorios para simular variables aleatorias.
Ejemplo
Una cadena de distribución de material informático ha de decidir cuantas licencias de un nuevo sistema operativo ha de comprar para maximizar su beneficio. Dispone de información histórica que le informa sobre la probabilidad de vender cierto número de copias. El costo de adquisición de cada licencia es de 75 €, el precio de venta de 100 €. Cuando salga a la venta el nuevo S.O. el almacén podrá devolver al fabricante las copias no vendidas obteniendo un ingreso de 25 € por cada licencia
devuelta.
nºLic.Vendidas Prob. Prob. Acum. 100 0.30 0.30 150 0.20 0.50 200 0.30 0.80 250 0.15 0.95 300 0.05 1.00
Costo de cada licencia Precio de venta unitario Ingresos por devolución Cantidad Lic. a comprar Bº Media muestral Desv. Estandar Máx. Bº Mín. Bº Nivel significación (alpha) Amplitud intervalos confianza
Ext.Inf.Interv. 0.00 0.30 0.50 0.80 0.95
Ext.Sup.Interv. 0.30 0.50 0.80 0.95 1.00
nºLic.Vendidas 100 150 200 250 300
75.00 € 100.00 € 25.00 €
200 1,625 €
3175.724685 5000 -2500 0.05 622.43 €
1,002.57 €
IC para la madia a nivel (1-alpha)%
2,247.43 €
Resumen de escenario
Vtas. Bajas
Vtas. Medio Bajas
Vtas. Medias
Vtas. Medio Altas
Vtas. Altas
Celdas cambiantes: nºLic.Vendidas
100
150
200
250
300
Bº Media muestral
2,500 €
2,646 €
2,033 €
267 €
Desv. Estandar
0
1721.320178
3279.37797
4155.016529
4530.576624
Máx. Bº
2500
3750
5000
6250
7500
Mín. Bº
2500
0
-2500
-5000
-7500
Nivel significación (alpha)
0.05
0.05
0.05
0.05
0.05
Amplitud intervalor confianza
- €
33.63 €
63.98 €
82.51 €
88.74 €
IC para la madia a nivel (1alpha)%
2,500.00 €
2,626.12 €
1,950.91 €
129.47 €
- 2,144.08 €
2,500.00 €
2,688.05 €
2,125.47 €
319.45 €
- 2,013.20 €
Celdas de resultado:
Aleat.
Vtas.
Dev.
Costo
Ing. Vtas
Ing. Dev.
-
2,053 €
Benef,
0.984
200
0
15,000 €
20,000 €
- €
5,000 €
0.215
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.476
150
50
15,000 €
15,000 €
1,250.00 €
1,250 €
0.725
200
0
15,000 €
20,000 €
- €
5,000 €
0.368
150
50
15,000 €
15,000 €
1,250.00 €
1,250 €
0.416
150
50
15,000 €
15,000 €
1,250.00 €
1,250 €
0.124
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.452
150
50
15,000 €
15,000 €
1,250.00 €
1,250 €
0.376
150
50
15,000 €
15,000 €
1,250.00 €
1,250 €
0.626
200
0
15,000 €
20,000 €
- €
5,000 €
0.907
200
0
15,000 €
20,000 €
- €
5,000 €
0.076
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.648
200
0
15,000 €
20,000 €
- €
5,000 €
0.289
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.952
200
0
15,000 €
20,000 €
- €
5,000 €
0.308
150
50
15,000 €
15,000 €
1,250.00 €
1,250 €
0.724
200
0
15,000 €
20,000 €
- €
5,000 €
0.209
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.965
200
0
15,000 €
20,000 €
- €
5,000 €
0.254
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.273
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.178
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.343
150
50
15,000 €
15,000 €
1,250.00 €
1,250 €
0.439
150
50
15,000 €
15,000 €
1,250.00 €
1,250 €
0.048
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.247
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.371
150
50
15,000 €
15,000 €
1,250.00 €
1,250 €
0.931
200
0
15,000 €
20,000 €
- €
5,000 €
0.741
200
0
15,000 €
20,000 €
- €
5,000 €
0.577
200
0
15,000 €
20,000 €
- €
5,000 €
0.5
150
50
15,000 €
15,000 €
1,250.00 €
1,250 €
0.273
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.685
200
0
15,000 €
20,000 €
- €
5,000 €
0.063
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.521
200
0
15,000 €
20,000 €
- €
5,000 €
0.164
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.402
150
50
15,000 €
15,000 €
1,250.00 €
1,250 €
0.168
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.875
200
0
15,000 €
20,000 €
- €
5,000 €
0.928
200
0
15,000 €
20,000 €
- €
5,000 €
0.803
200
0
15,000 €
20,000 €
- €
5,000 €
0.13
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.338
150
50
15,000 €
15,000 €
1,250.00 €
1,250 €
0.031
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.699
200
0
15,000 €
20,000 €
- €
5,000 €
0.531
200
0
15,000 €
20,000 €
- €
5,000 €
0.68
200
0
15,000 €
20,000 €
- €
5,000 €
0.081
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.23
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.493
150
50
15,000 €
15,000 €
1,250.00 €
1,250 €
0.259
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.927
200
0
15,000 €
20,000 €
- €
5,000 €
0.205
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.538
200
0
15,000 €
20,000 €
- €
5,000 €
0.057
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.853
200
0
15,000 €
20,000 €
- €
5,000 €
0.361
150
50
15,000 €
15,000 €
1,250.00 €
1,250 €
0.305
150
50
15,000 €
15,000 €
1,250.00 €
1,250 €
0.945
200
0
15,000 €
20,000 €
- €
5,000 €
0.362
150
50
15,000 €
15,000 €
1,250.00 €
1,250 €
0.317
150
50
15,000 €
15,000 €
1,250.00 €
1,250 €
0.874
200
0
15,000 €
20,000 €
- €
5,000 €
0.232
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.757
200
0
15,000 €
20,000 €
- €
5,000 €
0.25
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.923
200
0
15,000 €
20,000 €
- €
5,000 €
0.055
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.255
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.297
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.778
200
0
15,000 €
20,000 €
- €
5,000 €
0.065
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.576
200
0
15,000 €
20,000 €
- €
5,000 €
0.079
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.433
150
50
15,000 €
15,000 €
1,250.00 €
1,250 €
0.488
150
50
15,000 €
15,000 €
1,250.00 €
1,250 €
0.358
150
50
15,000 €
15,000 €
1,250.00 €
1,250 €
0.199
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.803
200
0
15,000 €
20,000 €
- €
5,000 €
0.424
150
50
15,000 €
15,000 €
1,250.00 €
1,250 €
0.618
200
0
15,000 €
20,000 €
- €
5,000 €
0.846
200
0
15,000 €
20,000 €
- €
5,000 €
0.846
200
0
15,000 €
20,000 €
- €
5,000 €
0.816
200
0
15,000 €
20,000 €
- €
5,000 €
0.763
200
0
15,000 €
20,000 €
- €
5,000 €
0.611
200
0
15,000 €
20,000 €
- €
5,000 €
0.483
150
50
15,000 €
15,000 €
0.678
200
0
15,000 €
20,000 €
- €
5,000 €
0.937
200
0
15,000 €
20,000 €
- €
5,000 €
0.964
200
0
15,000 €
20,000 €
- €
5,000 €
0.299
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.876
200
0
15,000 €
20,000 €
- €
5,000 €
0.423
150
50
15,000 €
15,000 €
1,250.00 €
1,250 €
0.058
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.449
150
50
15,000 €
15,000 €
1,250.00 €
1,250 €
0.201
100
100
15,000 €
10,000 €
2,500.00 €
- 2,500 €
0.824
200
0
15,000 €
20,000 €
- €
5,000 €
0.44
150
50
15,000 €
15,000 €
1,250.00 €
1,250 €
0.996
200
0
15,000 €
20,000 €
- €
5,000 €
0.885
200
0
15,000 €
20,000 €
- €
5,000 €
0.389
150
50
15,000 €
15,000 €
1,250.00 €
1,250 €
1,250.00 €
1,250 €
Beneficio esperado
3,000 € 2,000 €
Bº medio
1,000 € -
Bº peor
€
-1,000 €
100
150
200
-2,000 € Licencias Vendidas
-3,000 €
250
300
Bº mejor
Unidad III. Generación de Variables Aleatorias 3.1. Introducción Una vez obtenida toda la información, es decir, los datos de entrada del sistema real, es necesario convertirlos en información o datos de entrada del modelo de simulación. Es posible distinguir dos tipos de información: Información determinística. Esta información entra directamente al modelo con su valor correspondiente en el sistema real. Información probabilística. Es necesario crear modelos de simulación que imiten el comportamiento de esas variables. De esta forma, al crear un modelo de simulación debemos ser capaces de crear ese comportamiento y modelarlo. Los números aleatorios uniformes (0-1) son la base en los modelos de simulación donde hay variables estocásticas, ya que dichos números son la herramienta para generar eventos de tipo probabilístico. La generación de cualquier variable aleatoria se va a basar en la generación previa de una distribución uniforme (0,1). Y las transformaciones de dichos números generados en valores de otras distribuciones.
La mayoría de las técnicas utilizadas para la generación se pueden agrupar en: Método de la transformada inversa Método de aceptación rechazo Método de composición Método de convolución
MÉTODO DE LA TRANSFORMADA INVERSA INTRODUCCIÓN Existen varios métodos que nos permiten generar variables aleatorias. Lo normal es que existan varias opciones para generar una misma variable aleatoria. La elección del método adecuado se puede basar en una serie de factores como:
Exactitud. Se prefiere un método exacto frente a métodos aproximados, como soluciones numéricas. Velocidad. Uno de los datos que se toma en consideración es el °em tiempo de generación de la variable. Espacio. Necesidades de memoria del método utilizado. En general, los métodos no consumen mucha memoria. Simplicidad.
La mayoría de las técnicas utilizadas para la generación se pueden agrupar en:
Método de la transformada inversa Método de aceptación-rechazo Método de composición Método de convolución
GENERACIÓN DE VARIABLES ALEATORIAS La variabilidad de eventos y actividades se presentan a través de funciones de densidad para fenómenos continuos, y mediante distribuciones de probabilidad para fenómenos de tipo discreto. La simulación de estos eventos o actividades se realiza con la ayuda de la generación de variables aleatorias.
MÉTODO DE LA TRANSFORMADA INVERSA El método de la transformada inversa puede utilizarse para simular variables aleatorias continuas, lo cual se logra mediante la función acumulada f(x) y la generación de números pseudoaleatorios .
El método consiste en:
Definir la función de Densidad f(x) que representa la variable a modelar. Calcular la función acumulada f(x). Despejar la variable aleatoria x y obtener la función acumulada inversa f(x)-1. Generar las variables aleatorias x, sustituyendo valores con números pdeudoaleatorios . en la función acumulada inversa.
El método de la transformada inversa también puede emplearse para simular variables aleatorias de tipo discreto, como en las distribuciones de Poisson, de Bernoulli, binomial, geométrica, discreta general, etc. La generación se lleva a cabo a través de la probabilidad acumulada P(x) y la generación de números pseudoaleatorios .
Metodología para generar variables aleatorias continuas.
Metodología para generar variables aleatorias discretas.
Distribución Uniforme A partir de la función de la densidad de las variables aleatorias uniformes entre a y b.
Se obtiene la función acumulada
Igualando la función acumulada F(x) con el número pseudoaleatorio despejando x se obtiene:
, y
Ejemplo 1:
Los datos del tiempo de servicio en la caja de un banco se comportan de forma exponencial con media de 3 minutos/cliente. Una lista de números pseudoleatorios y la ecuación generadora exponencial xi = -3In (1 - r i) nos permite simular el comportamiento de la variable aleatoria
Distribución de Bernoulli A partir de la distribución de probabilidad de las variables aleatorias de Bernoulli con media p(x) = px (1 – p)1 – x para x=0,1 Se calculan las probabilidades para x=0 y x=1, para obtener X P(x)
0 1-p
1 p
Acumulando los valores de p(x) se obtiene: X P(x)
0 1-p
1 p
{
Generando números pseudoaleatorios
se aplica la regla:
La tabla siguiente muestra la demanda diaria de cepillos dentales en un supermercado. Día 1 Demanda 1
2 2
3 2
4 1
5 3
6 0
7 3
8 1
9 3
Simular el comportamiento de la demanda mediante el método de la transformada inversa.
A partir de la información histórica se calculan las probabilidades puntuales y las acumuladas para X 0 1 2 3
P(x) 0.111 0.222 0.333 0.333
P(x) 0.111 0.222 0.666 1
La regla para generar esta variable aleatoria estaría dada por:
Con la lista de números pseudoaleatorios y la regla anterior es posibles simular la demanda diaria de cepillos dentales, tal como se muestra Dia 1 2 3 4 5
0.213 0.345 0.021 0.987 0.543
Demanda diaria 1 2 0 3 2
Ejemplo. La distribución exponencial Supongamos que tiene una distribución exponencial de media beta. La función densidad de probabilidad es:
La función de distribución (acumulativa) es:
Método de aceptación rechazo Este método es más probabilístico que el anterior. Los métodos de inversión, composición y convolución son métodos de generación directos, en el sentido en que tratan directamente con la función de distribución. El método de aceptación-rechazo es menos directo en su aproximación. Se va aplicar este método en el caso de que la variable aleatoria sea continua, el caso discreto es análogo y está tratado en Prob. En este caso tenemos la función de densidad f(x) de la variable y necesitamos una función t(x) que la acote, es decir t(x)³f(x) "x. Hay que notar que t(x) no es, en general, una función de densidad
Pero la función r(x)=t(x)/c, si es claramente una función de densidad. (Suponemos que t es tal que c<¥ ). Debemos de poder generar (esperamos que de forma fácil y rápida) un valor de la variable aleatoria que sigue la función r(x). El algoritmo general queda como sigue: Generar x que siga la distribución r(x)
Generar
independiente de x entonces devolver x si no volver a repetir el algoritmo
El algoritmo continúa repitiéndose hasta que se genera un valor que es aceptado. Para hacer que se rechacen el menor número de puntos posibles la función t(x) debe ser la mínima función que acote a f(x).
Método de composición Este método va a poder ser aplicado cuando la función de densidad es fácil de siendo n el número de trozos en los que se ha dividido la función.
Cada uno de los fragmentos se puede expresar como producto de una función de distribución y un peso y la función de distribución global la podemos obtener como
El método consiste en generar dos números aleatorios, uno sirve para seleccionar un trozo y el otro se utiliza para generar un valor de una variable que sigue la distribución de dicho trozo. El valor de la variable obtenida es el valor buscado.
El algoritmo general queda como sigue: Generar Si entonces generar ) Si no Si entonces generar
3.2. Generación de variables aleatorias discretas y continuas utilizando paquetes Computacionales como Excel, ProModel, Arena. Métodos para Generar Variables aleatorias discretas y continuas utilizando programas computacionales Excel GENERACIÓN DE VARIABLES ALEATORIAS NO UNIFORMES Si el modelo de simulación es estocástico, la simulación debe ser capaz de generar variables aleatorias no uniformes de distribuciones de probabilidad teóricas o empíricas. Lo anterior puede obtenerse si se cuenta con un generador de números uniformes y una función que transforme estos números en valores de la distribución de probabilidad deseada. A este respecto, se han desarrollado una gran cantidad de generadores para las distribuciones más comunes como; la distribución normal, exponencial, Poisson, Erlang, Binomial, Gamma, Beta, F, t, Simulación. 2. LENGUAJE DE PROGRAMACION. Las primeras etapas de un estudio de simulación se refieren a la definición del sistema a ser modelado y a la descripción del sistema en términos de relaciones lógicas de sus variables y diagramas de flujo. Sin embargo, llega el momento de describir el modelo en un lenguaje que sea aceptado por la computadora que va utilizar (PC compatible). En esta etapa se tienen dos cursos de acción a seguir si no se tiene nada de software de simulación, que son: Desarrollar el software requerido, o Comprar software (lenguaje de programación d propósito especial). Para esta alternativa es necesario analizar y evaluar varios paquetes de simulación
(GPSS, GPSSH, PROMODEL SIMFACTORY, SLAM, MICROMANAGER, etc.) antes de tomar la decisión final.
Condiciones iniciales. La mayoría de los modelos de simulación estocástica se corren con la idea de estudiar al sistema en una situación de estado estable. Sin embargo, la mayor parte de estos modelos presentan en su etapa inicial estados es tados transigentes los cuales no son típicos del estado estable. Por consiguiente es necesario establecer claramente las alternativas o cursos de acción que existen para resolver este problema. Algunos autores piensan que la forma de atacar este problema sería a través de: Usar un tiempo de corrida suficientemente grande de modo que los períodos transientes sean relativamente insignificantes con respecto a la condición de estado estable. •
Excluir una parte apropiada de la parte inicial de la corrida.
•
Utilizar simulación regenerativa.
Basado en la experiencia, de las tres alternativas presentadas, la que presenta menos desventajas es el uso de simulación regenerativa. Las otras alternativas presentan las desventajas de ser prohibitivamente excesivas en costo.
•
Tamaño de la muestra. Uno de los factores principales a considerar en un estudio de simulación es el tamaño de la muestra (número de corridas en la computadora). La selección de un tamaño de muestra apropiado que asegure un nivel deseado de precisión y a la vez minimice el costo de operación del modelo, es un problema algo difícil pero muy importante. Puesto que la información proporcionada por el experimento de simulación sería la base para decidir con respecto a la operación del sistema real. Esta información deberá ser tan exacta y precisa como sea posible o al menos el grado de imprecisión presente en la información proporcionada por el modelo debe ser conocida. Por consiguiente, es necesario que un análisis estadístico se a realizado para determinar el tamaño de la muestra requerido. El tamaño de la muestra puede obtenerse de dos maneras: •
Previa e independientemente de la operación del modelo, o
Durante la operación del modelo basado en los resultados arrojados por el mismo. Para la última alternativa se utiliza la técnica estadística de intervalos de confianza.
•
Diseño de experimentos. El diseño de experimentos es un tópico cuya relevancia en experimentos en estudios de simulación ha sido reconocida, pero raramente aplicada. El diseño de experimentos en estudios de simulación puede ser varios tipos, dependiendo de los propósitos específicos que se hayan planteado. Existen diferentes formas de análisis que pueden ser utilizados. Entre los más comunes e importantes, se pueden mencionar los siguientes: •
Comparación de las medias y varianzas de las alternativas analizadas.
Determinación de la importancia y el efecto de diferentes variables en los resultados de la simulación. •
•
Búsqueda de los valores óptimos de un conjunto de variables.
Para realizar el primer tipo de análisis, al cual se le denomina comúnmente diseño de experimentos de un factor simple, es necesario tomar muy en cuenta el tamaño de la muestra, las condiciones iniciales y la presencia o ausencia de autocorrelación. Para el segundo tipo de análisis, existe una gran cantidad de literatura, puesto que la gran mayoría de los libros de texto de diseño de experimentos, explican o tratan el tema de análisis de varianza y técnicas de regresión como medios para evaluar la importancia y el efecto de varias variables en los resultados de operación de un sistema. Para el tercer tipo de análisis, generalmente se requiere utilizar algoritmos heurísticos de búsqueda como por ejemplo el algoritmo de Hookes y Jeeves.
Ventajas y desventajas en el uso de la simulación Aunque la técnica de simulación generalmente se ve como un método de último recurso, recientemente avances en las metodologías de simulación y la gran disponibilidad de software que actualmente existe en el mercado, han hecho posible que la técnica de simulación sea una de las herramientas más ampliamente usadas en el análisis de sistemas. Además de las razones antes mencionadas, Tomas H. Naylor (1977), ha sugerido que un estudio de simulación es muy recomendable porque presenta las siguientes ventajas: a) A través de la técnica de simulación, se puede estudiar el efecto de cambios internos y externos del sistema, al hacer alteraciones en el modelo del sistema y observando los efectos de estas alteraciones en el comportamiento del sistema. b) Una observación detallada del sistema que se está simulando puede conducir a un mejor entendimiento del sistema y por consiguiente a sugerir estrategias que mejoren la operación y eficiencia del sistema. c) La técnica de simulación puede ser utilizada como un instrumento pedagógico, para estudiantes al enseñarles los conocimientos básicos en el análisis teórico, el análisis estadístico, y en la toma de decisiones.
d) La simulación de sistemas complejos puede producir un valioso y profundo conocimiento acerca de cuáles variables son más importantes que otras en el sistema y cómo ellas obran entre sí. e) La técnica de simulación puede utilizarse para experimentar con nuevas situaciones, sobre las cuales se tiene poca o nula información. A través de esta experimentación se puede anticipar mejor a los posibles resultados no previstos. pr evistos. f) La técnica de la simulación de sistemas complejos puede producir un valioso y profundo conocimiento cono cimiento acerca de cuáles cu áles variables son más importantes que otras en el sistema y cómo ellas obran entre sí. g) Se puede utilizar también para entrenamiento de personal. En algunas ocasiones se puede tener una buena representación de un sistema (como por ejemplo los juegos de negocios), y entonces a través de él es posible entrenar y dar experiencia a cierto tipo de personal. h) La simulación de sistemas complejos puede producir un valioso y profundo conocimiento acerca de cuáles variables son más importantes que otras en el sistema y cómo ellas entre sí. i) Cuando nuevos elementos son introducidos en un sistema, la simulación puede utilizarse para anticipar cuellos de botella o algún otro problema que puede surgir en el comportamiento del sistema. A diferencia de las ventajas mencionadas, la técnica de simulación presenta el problema de requerir equipo de cómputo y recursos humanos, en ocasiones costosas. Además, generalmente se requiere bastante tiempo para que un modelo de simulación sea desarrollado y perfeccionado. Finalmente, es posible que la alta administración de una organización no entienda esta técnica y esto crea dificultad en vender la idea.
Unidad IV. Lenguajes de Simulación y Simuladores de Eventos Discretos 4.1. Antecedentes de los lenguajes de simulación y simuladores La historia y la evolución de la simulación por ordenador han ido paralelas a la evolución de la Informática. Sus orígenes los encontramos en la segunda Guerra Mundial cuando dos matemáticos, J. VNeumann y S. Ulam, tenían el reto de resolver un problema complejo relacionado con el comportamiento de los neutrones. Los experimentos basados en prueba y error eran muy caros y el problema era demasiado complicado para abordarlo mediante técnicas analíticas. La aproximación que cogieron se basa en la utilización de números aleatorios y distribuciones de probabilidad. El método desarrollado fue llamado "método de Montecarlo" por el paralelismo entre la generación de números aleatorios y el juego de la ruleta. Simulación implica crear un modelo que aproxima cierto aspecto de un sistema del mundo real y que puede ser usado para generar historias artificiales del sistema, de forma tal que nos permite predecir cierto aspecto del comportamiento del sistema. En particular, usaremos computadores para imitar comportamientos del sistema evaluando numéricamente un modelo del mismo. Estas evaluaciones numéricas son las que nos permiten generar las historias artificiales que no son más que experimentos.
Modelo Un modelo es una representación de un objeto, idea, o sistema en una forma diferente a la entidad misma. En nuestro caso el modelo es un conjunto de relaciones matemáticas o lógicas derivadas de supuestos sobre el comportamiento del sistema. La simulación por eventos discretos es una técnica informática de modelado dinámico de sistemas. Frente a su homóloga, la simulación de tiempo continuo, esta se caracteriza por un control en la variable del tiempo que permite avanzar a éste a intervalos variables, en función de la planificación de ocurrencia de tales eventos a un tiempo futuro. Un requisito para aplicar esta técnica es que las variables que definen el sistema no cambien su comportamiento durante el intervalo simulado.
-Descripción Estos sistemas se caracterizan por mantener un estado interno global del sistema, que puede no obstante estar física o lógicamente distribuido, y que cambia parcialmente debido a la ocurrencia de un evento. El estado del sistema solo cambia mediante la ejecución de eventos, que se almacenan en un contenedor, y uno o varios procesos dedicados a su ejecución avanzan el tiempo de simulación a medida que se van ejecutando y eliminando los eventos pendientes para el valor de tiempo actual. La ejecución de un evento puede desencadenar la generación de nuevos eventos futuros. Cada uno está marcado por su tiempo, por lo que el orden de generación puede no coincidir con el orden de ejecución. La simulación de eventos discretos ha sido caracterizada por dos tendencias significantes en años recientes. El primero fue el uso creciente de simulación con respecto a lo complejo de sistemas industriales. El segundo ha sido el uso creciente de gráficos de la computadora por displays animados en movimiento. Estas tendencias han originado una nueva generación de software o paquetes de simulación; sin embargo, ningún software podría utilizarse única y necesariamente con todos los usuarios probables.
Simulador de restaurante Juega Gratis a estos Fabulosos juegos en el que tendrás que llevar un restaurante sirviendo las mesas y tomando el control del restaurante.
Simulador de gimnasio Simulador de Gimnasio Online. Entrénate con este personaje flacucho en el gimnasio para ponerle cachas y que se vuelvan todas las mujeres locas por él.
Simulador puerto marítimo Juego al estilo Sim City en el que tendrás que crear un puerto marítimo rentable con todas las instalaciones necesarias. Tú eres el director del puerto.
Comprando en la ciudad Hazte empresario. Crea negocios en tu ciudad y hazte con el poder económico. Juego Simulador de montar negocios en una ciudad e intentar ganar el máximo de dinero sin arruinarte
Simulador tienda de ropa Deberás llevar una tienda de ropa y atender en todo lo que te pidan tus clientes. ¿Serás capaz de llevar a lo más alto tu negocio?
Simulador Mac Donald en español Hacer dinero con una gran empresa no es fácil, controla todo el proceso hasta que la hamburguesa llega al cliente.
Volar como una paloma Eres una paloma en la ciudad y estas en busca de patatas fritas para alimentarte y después cagar sobre los policías de la ciudad. Fantástico simulador de vuelo. Lo mejor es que puedes jugar a 1 o 2 jugadores.
Mezclador musical Estupendo Juego Mezclador Musical. Crea tu propia música sin conocimientos musicales. Puedes combinar distintos ritmos hasta conseguir el tuyo propio.
Ejemplos de Simulaciones Te invitamos a conocer ejemplos de Simulaciones llevadas a cabo con ProModel.
Avión Este modelo muestra cómo se pueden incorporar fácilmente fotografías digitales a ProModel. El modelo ilustra el cálculo de la utilización de los operarios, permitiendo variar el número de operarios
Bodega ¿Cuántos montacargas necesitamos? ¿Cuál es el inventario que puede mover el centro de distribución? ¿Cómo nos afectan los horarios dentro del centro de trabajo? ¿Cómo nos afecta el mantenimiento a los montacargas? ¿El diseño de la operación de la bodega, nos permitirá absorber la estacionalidad de la demanda?
Celda Qué capacidad tenemos en piezas por hora? ¿Cuál es el tiempo de entrega? ¿Cuál es el tiempo de ciclo? ¿Cuál es el Takt Time? ¿Cómo nos afecta el diseño de turnos en la celda de manufactura? ¿Podemos meter un producto nuevo a la línea? ¿Cuál es el impacto de los tiempos de preparación
Conveyors ProModel permite representar bandas transportadoras que representen manejo de materiales a través de filas y bandas (conveyors).
Container ¿El itinerario que tenemos es satisfactorio? ¿Podemos satisfacer la demanda adecuadamente? ¿Las unidades de transporte son suficientes? ¿Cómo se comportarán los inventarios en cada una de las estaciones de servicio? ¿Cómo impacta al proceso el mantenimiento de las unidades de transporte?
Container 3D Una vez terminado el análisis, para fines de una buena presentación se transfiere el modelo a 3D Animator. Rápidamente se configura la animación en 3 Dimensiones para mostrar claramente el problema y su solución.
Ejemplos de Conveyors Una de las facilidades mejor aprovechadas por los usuarios de ProModel son las bandas transportadoras, y las grúas viajeras. En este modelo están representados y nos muestran cómo el sistema podría saturarse por la velocidad de proceso del sistema.
Demand Based Las preocupaciones de los Directores Generales hoy día es la eficiencia y la optimización de las cadenas de abasto (Supply Chain). Este modelo permite el análisis del sistema tomando en cuenta la variabilidad en la demanda, los recursos de la empresa y todo el proceso de manufactura. Simplemente, no hay otra forma de hacer el análisis y al mismo tiempo incorporando todas las variables en el proceso.
Distribución ¿Cuantas bodegas? ¿De qué capacidad? ¿Qué utilización tendremos del espacio? ¿Cuántos camiones? ¿En qué horarios podemos trabajar? ¿Toda la demanda será satisfecha? ¿Qué pasa durante los cambios debido la estacionalidad de la demanda? ProModel permite representar fácilmente el sistema y poderle hacer cambios y optimizar el sistema total.
Distribución 2 ¿Cuantas bodegas? ¿De qué capacidad? ¿Qué utilización tendremos del espacio? ¿Cuántos camiones? ¿En qué horarios podemos trabajar? ¿Toda la demanda será satisfecha? ¿Qué pasa durante los cambios debido la estacionalidad de la demanda? ProModel permite representar fácilmente el sistema incorporando plantas, bodegas y clientes finales y poderle hacer cambios y optimizar el desempeño.
Fábrica ProModel nos permite representar la realidad de una fábrica, con las entregas de materia prima, operadores, factores de calidad, aleatoriedad en los tiempos de proceso, en la duración y frecuencia de los mantenimientos, de tal manera que podemos calcular la capacidad de la
planta (Capacity Planning), Takt Time, Lead Time. Muchos de los usos actualmente van hacia la manufactura esbelta.
Ferrocarril Con ProModel, los usuarios que tienen relación con la industria del transporte han hecho muchísimas aplicaciones que les han permitido ahorrar millones de dólares. Preguntas como ¿Cuántos contenedores? ¿De qué tipo? ¿Qué plan de mantenimiento se puede seguir? ¿Cómo afectamos los inventarios y la demanda de nuestros clientes?
Grúas Viajeras El objeto de grúas de techo o viajeras de ProModel permite que rápidamente se construyan modelos incorporando este método de manejo de materiales. ¿Cuál es la utilización de la grúa? ¿Qué políticas deben usarse en la asignación de prioridades de servicio de la grúa? ¿El layout favorece el uso de grúas?
Logística 3D En este modelo, se presenta una aplicación de logística de cadena de abasto, en 3D Animator, en el que se muestra desde que el acero es chatarra hasta que es producto terminado y llega al cliente final. El modelo permite presentar los indicadores clave en la pantalla para visualización.
Manufactura Automotriz ProModel permite incorporar el layout de AutoCAD de la planta, para visualizar la implementación del proceso directamente en él y así poder comunicarlo a la audiencia. Este modelo utiliza el SimRunner adicionalmente, para optimizar la velocidad de la banda de transporte, así como el número de contenedores que se deben usar en el proceso. Se muestran en color rojo, aquellos productos que fallan la prueba.
Panel Este modelo ilustra un proceso de manufactura en el cual se desea conocer en dónde está el cuello de botella, y cuál es la capacidad de la línea. Tanto el layout cómo el producto se incorporó a la biblioteca de gráficos de ProModel. Las estadísticas críticas en este modelo son el uso de los recursos y el uso de los equipos.
Los Simpson Este modelo cómico, está diseñado para ilustrar que cualquier gráfico puede ser colocado dentro de ProModel, de tal manera que gráficamente se logre el objetivo. Para ProModel, Simulación es Visualizar, Analizar y Optimizar.
4.2. Aprendizaje y uso de un Simulador como: ProModel, Arena, entre otros. ProModel es un simulador con animación para computadoras personales. Permite simular cualquier tipo de sistemas de manufactura, logística, manejo de materiales, etc. Puedes simular bandas de transporte, grúas viajeras, ensamble, corte, talleres, logística, etc. ProModel es un paquete de simulación que no requiere programación, aunque sí lo permite. Corre en equipos 486 en adelante y utiliza la plataforma Windows®. Tiene la combinación perfecta entre facilidad de uso y flexibilidad para aplicaciones complejas. Puedes simular Justo a Tiempo, Teoría de Restricciones, Sistemas de Empujar, Jalar, Logística, etc. Prácticamente, cualquier sistema puede ser modelado. Una vez hecho el modelo, éste puede ser optimizado para encontrar los valores óptimos de los parámetros claves del modelo. Algunos ejemplos incluyen determinar la mejor combinación de factores para maximizar producción minimizando costo, minimizar el número de camiones sin penalizar el servicio, etc. El módulo de optimización nos ayuda a encontrar rápidamente la solución óptima, en lugar de solamente hacer prueba y error. ProModel cuenta con 2 optimizadores disponibles y permite de esta manera explotar los modelos de forma rápida y confiable.
4.3. Características del software Rápido aprendizaje con interfaces muy amigables. Fácil manejo y análisis de los datos a través de la exportación de los resultados en formato Microsoft® Excel. Agregue el detalle necesario incorporando máquinas, operadores, grúas horquillas, grúas puente, correas transportadoras, asignación de turnos de trabajo, tiempos muertos, etc. Capture la variabilidad y aleatoriedad de su proceso utilizando más de 20 tipos de distribuciones de probabilidad estadística, o importe directamente sus propios datos. Distribuya fácilmente, a través del correo electrónico, los modelos desarrollados por usted a otras divisiones o departamentos.
4.4. Construcción de modelos ¿Qué son los modelos? Aquellos que manejan y controlan sistemas de hombres y equipos se enfrentan al problema constante de mejorar (por ejemplo, optimizar) el rendimiento del sistema. El problema puede ser reducir el costo de operación y a la vez mantener un nivel aceptable de servicio, utilidades de las operaciones actuales, proporcionar un mayor nivel de servicio sin aumentar los costos, mantener un funcionamiento rentable cumpliendo a la vez con las reglamentaciones gubernamentales establecidas, o "mejorar" un aspecto de la calidad del producto sin reducir la calidad de otros aspectos. Para identificar la mejora del funcionamiento del sistema, se debe construir una representación sintética o modelo del sistema físico, que puede utilizarse para describir el efecto de una variedad de soluciones propuestas.
Pasos para la construcción de un modelo 1. 2. 3. 4. 5. 6.
Definición del problema de interés y recolección de los datos relevantes Formulación de un modelo que represente el problema Solución del modelo Prueba del modelo Preparación para la aplicación del modelo Puesta en marcha
4.5. Consideraciones económicas en la simulación. 4.6. Realizar prácticas utilizando el simulador para procesos productivos, de transporte, líneas de espera, calidad, inventarios, entre otros. 4.7. Interpretación de los resultados obtenidos y generación de propuestas de mejora para el modelo analizado.
Unidad V. Proyecto de Aplicación 5.1. Elaboración de un proyecto final 5.2. Análisis, modelado, simulación e interpretación de resultados para sistemas reales de empresas de manufactura o de servicios, a fin de detectar las mejoras posibles a realizar y proponer acciones que mejoren su desempeño, considerando aspectos económicos.