2013
JOSE DEL C. VAZQUEZ HDEZ
INGENIERIA INDUSTRIAL
21/02/2013
MATERIA: SIMULACION
INSTITUTO TECNOLOGICO DE
TUXTLA GUTIERREZ
Índice general
Unidad Temas Subtemas 1 Introducción a la
Simulación de eventos
discretos
1.1. Introducción
1.2. Definiciones y Aplicaciones
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
1.6. Etapas de un Proyecto de simulación
2 Generación de Números
Aleatorios
2.1. Números aleatorios: definición, propiedades,
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.
2.5. Método de Monte Carlo
3 Generación de Variables
Aleatorias
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
y Simuladores de
Eventos Discretos
4.1. Antecedentes de los lenguajes de simulación y
simuladores
4.2. Aprendizaje y uso de un Simulador como:
ProModel, Arena, entre otros.
4.3. Características del software
4.4. Construcción de modelos
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.
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
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 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 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 J. V. Neumann S. Ulman desarrollan el método de Montecarlo
1950's Estudios de capacidad de las líneas telefónicas
1961 G. Gordon diseña el lenguaje de simulación GPSS
1961-1979 Impulso de los ordenadores por transistores, Conferencias sobre Aplicación de la
simulación
1977 J Henriksen mostró el pseudocódigo para la implementación de modelos de simulación
de eventos discretos
1980's Nuevos lenguajes donde integran resultados de simulación, animación SIMAN IV y
CINEMA IV. Surgen metodologías independientes del lenguaje de simulación
1990's- Nuevos sistemas donde el proceso de simulación está totalmente integrado,
acercamiento de la simulación a la empresa privada
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 costo-
utilidad, 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
R1,R2,...., donde cada Ri 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 (1601-
1665), 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. Cualquier número que pertenezca al rango de interés debe tener la misma probabilidad de
resultar sorteado.
2. La distribución de los números debe ser uniforme en todo el intervalo [0,1].
3. La aparición de un número en la secuencia, no afecta la probabilidad de sortear otro (o el
mismo) número.
4. Los números deben ser independientes dentro de toda la serie generada.
5. El ciclo del generador debe ser lo suficientemente grande.
6. La serie debe volverse a repetir.
7. Capaz de generar números pseudo-aleatorios a altas velocidades.
8. Requerir una mínima cantidad de la capacidad de memoria de Computadora
9. Estadísticamente independientes.
10. Su media debe ser estadísticamente igual a 1/2.
11. Su varianza debe ser estadísticamente igual a 1/12.
12. Su periodo o ciclo de vida debe ser largo.
13. Deben ser generados a través de un método rápido.
14. 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 pseudo-
aleatorios 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 al cuadrado; sea X, = los D dígitos del centro, y sea
dígitos del centro.
3. Sea Y. = resultado de elevar al cuadrado; sea = los D dígitos del centro, y sea
=0.D dígitos del centro para toda
4. Repetir el paso 3 hasta obtener los n números 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 1.
Generar los primeros 5 números a partir de una semilla , de donde se puede
observar que D = 4 dígitos.
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 = los D dígitos del centro, y sea dígitos del centro.
4. Sea ( ) sea = los D dígitos del centro, y sea dígitos del
centro para toda
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 y ; observe
que ambas semillas tienen D = 4 dígitos.
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 ; sea X, = los D dígitos del centro, y sea dígitos del centro.
4. Sea ; sea = los D dígitos del centro, y sea dígitos del centro
para toda
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 agregue ceros a la
izquierda del número
Ejemplo 3
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<A<1) con los siguientes parámetros: = 37, a= 19, c=33 y m =
100.
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 . Veamos un
ejemplo más, tomando en cuenta lo anterior.
Ejemplo 5
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 , el cual se determina
por medio de la tabla de distribución normal estándar.
Ejemplo
.
∑
(
√ )
(
√ )
(
√ )
(
√ )
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.48999 0.50502 0.39528 0.36782 0.90234
0.71890 0.61234 0.86322 0.94134 0.99872 0.27657
0.34565 0.02345 0.67347 0.10987 0.25678 0.25593
0.82345 0.12387 0.05389 0.82474 0.59289 0.36782
0.03991 0.10461 0.93716 0.16894 0.98953 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. Prueba de póker.
ii. Prueba de corridas arriba y abajo.
iii. Prueba de corridas arriba y abajo de la media.
iv. Prueba de la longitud de las corridas.
v. Prueba de distancia.
vi. Prueba de series.
vii. 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 FO PE FE=n*PE)
Pachuca 14 0.3024 9.072
Un par 15 0.5040 15.120
Dos pares 1 0.1080 3.240
Una tercia 1 0.0720 2.160
Full 0 0.0090 0.270
Póker 0 0.0045 0.135
Quintilla 0 0.0001 .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) ( ), de la distribución
uniforme con el fdp (función de densidad de probabilidad) empírico, ( ) de una muestra de
N observaciones.
Por definición
( )
Conforme N crece, ( ) deberá tener una mejor aproximación de ( ) dado que la hipótesis
nula sea verdadera.
( )
La prueba Kolmogorov-Smirnov está basada en la desviación máxima absoluta entre ( ) y
( ) sobre el rango de la variable aleatoria- Esto es, basado en la estadística.
| ( ) ( )|
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 más pequeña observación,
tal que
Paso 2: Usando la fdp teórica ( ), calcule
[
]
[
]
Paso 3: Calcule ( )
Paso 4: Encuentre el valor crítico de la tabla para un nivel de significancia y un tamaño
de muestra N.
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 ( ) . Ahora se ordenan los valores
en forma ascendente y se realizan los cálculos relativos.
La tabla siguiente resume los cálculos realizados:
( )
(
( ) ) ( )
( )
1 0.03 0.20 0.17 0.03
2 0.22 0.40 0.18 0.02
3 0.35 0.60 0.25 -0.05
4 0.53 0.80 0.27 -0.07
5 0.94 1.00 0.06 -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.31 0.81 0.48 0.01 0.60
0.26 0.34 0.70 0.31 0.07 0.06
0.33 0.49 0.77 0.04 0.43 0.92
0.25 0.83 0.68 0.97 0.11 0.00
0.18 0.11 0.03 0.59 0.25 0.55
1 KS kolmorov Smirnov
Sustituyendo los valores en las fórmulas correspondientes se tiene que:
i ( ) ( )
1 0.00 0.03 0.03
2 0.01 0.07 0.06
3 0.03 0.10 0.07
4 0.04 0.13 0.09
5 0.06 0.17 0.11
6 0.07 0.20 0.13
7 0.11 0.23 0.12
8 0.11 0.27 0.16
9 0.15 0.30 0.15
10 0.18 0.33 0.15
11 0.25 0.36 0.11
12 0.25 0.40 0.15
13 0.26 0.43 0.17
14 0.31 0.47 0.16
15 0.33 0.50 0.17
16 0.34 0.53 0.19
17 0.34 0.57 0.23
18 0.43 0.60 0.17
19 0.48 0.63 0.15
20 0.49 0.67 0.18
21 0.55 0.70 0.15
22 0.59 0.73 0.14
23 0.60 0.77 0.17
24 0.68 0.80 0.12
25 0.70 0.83 0.13
26 0.77 0.87 0.1
27 0.81 0.90 0.09
28 0.83 0.93 0.1
29 0.92 0.97 0.05
30 0.97 1.00 0.03
Siguiendo con el paso 4
| – ( )|
Comparamos el valor (calculado) contra el valor en tablas de la distribución Kolmogorov-
Smirnov 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.31 0.81 0.48 0.01 0.60
0.26 0.34 0.70 0.31 0.07 0.06
0.33 0.49 0.77 0.04 0.43 0.92
0.25 0.83 0.68 0.97 0.11 0.00
0.18 0.11 0.03 0.59 0.25 0.55
INTERVALO FE FO ( )
0.00 - 0.20 6 10 2.67
0.21 - 0.40 6 7 0.17
0.41 - 0.60 6 6 0.00
0.61 - 0.80 6 3 1.50
0.81 - 1.00 6 4 0.67
Sea = 5%. Tenemos ( ) grados de libertad, es decir . El valor en tablas de la
distribución Ji cuadrada es:
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.31 0.81 0.48 0.01 0.60
0.26 0.34 0.31 0.70 0.07 0.06
0.33 0.49 0.77 0.04 0.43 0.92
0.25 0.83 0.68 0.97 0.11 0.00
0.18 0.11 0.03 0.59 0.25 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 1 0 0 1
0 0 0 1 0 0
0 0 1 0 0 1
0 1 1 1 0 0
0 0 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 FE FO ( )
1 8.000 9 0.125
2 3.875 3 0.197
3 1.875 2 0.008
4 0.906 1 0.010
5 0.438 1 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 FE FO ( )
1 8 9 0.125
>=2 7.04 7 0.936
El valor en tablas de ; entonces no se puede rechazar la independencia de los
números aleatorios.
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 rj+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.31 0.81 0.48 0.01 0.60
0.26 0.34 0.70 0.31 0.07 0.06
0.33 0.49 0.77 0.04 0.43 0.92
0.25 0.83 0.68 0.97 0.11 0.00
0.18 0.11 0.03 0.59 0.25 0.55
Ahora la sucesión binaria es
0 0 1 1 0 1
0 0 0 1 1 0
0 0 1 0 1 1
0 1 0 1 1 0
1 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)
Longitud de corrida i FE FO (FE-FO)2/FE
1 11.500 11 0.020
2 5.083 5 0.001
3 1.400 2 0.257
4 0.292 -
5 0.005 -
i FE FO (FE-FO)2/FE
1 11.500 11 0.020
>=2 6.483 7 0.004
X02 = 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. Ext.Inf.Interv. Ext.Sup.Interv. nºLic.Vendidas
100 0.30 0.30 0.00 0.30 100
150 0.20 0.50 0.30 0.50 150
200 0.30 0.80 0.50 0.80 200
250 0.15 0.95 0.80 0.95 250
300 0.05 1.00 0.95 1.00 300
Costo de cada licencia 75.00 €
Precio de venta unitario 100.00 €
Ingresos por devolución 25.00 €
Cantidad Lic. a comprar 200
Bº Media muestral 1,625 €
Desv. Estandar 3175.724685
Máx. Bº 5000
Mín. Bº -2500
Nivel significación (alpha) 0.05
Amplitud intervalos confianza 622.43 €
IC para la madia a nivel (1-alpha)% 1,002.57 €
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
Celdas de resultado:
Bº Media muestral 2,500 € 2,646 € 2,033 € 267 € - 2,053 €
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 (1-
alpha)%
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 €
Aleat. Vtas. Dev. Costo Ing. Vtas Ing. Dev. 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 € 1,250.00 € 1,250 €
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 €
-3,000 €
-2,000 €
-1,000 €
- €
1,000 €
2,000 €
3,000 €
100 150 200 250 300
Licencias Vendidas
Beneficio esperado
Bº medio
Bº peor
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 ( ), y
despejando x se obtiene:
( ) ( )
( )
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 - ri) 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 0 1
P(x) 1-p p
Acumulando los valores de p(x) se obtiene:
X 0 1
P(x) 1-p 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 2 3 4 5 6 7 8 9
Demanda 1 2 2 1 3 0 3 1 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 P(x) P(x)
0 0.111 0.111
1 0.222 0.222
2 0.333 0.666
3 0.333 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 Demanda diaria
1 0.213 1
2 0.345 2
3 0.021 0
4 0.987 3
5 0.543 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 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.
f) La técnica de 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í.
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. Definición del problema de interés y recolección de los datos relevantes
2. Formulación de un modelo que represente el problema
3. Solución del modelo
4. Prueba del modelo
5. Preparación para la aplicación del modelo
6. 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.
Bibliografía
1. Azarang, M. R. y García Dunna, E., Simulación y Análisis de Modelos Estocásticos. Mc Graw Hill
(1998)
2. Banks, J. y Carson, J. S. Discrete Event System Simulation. Prentice Hall (2001)
3. Law A. y Kelton W., Simulation Modelling and Analisis, Mc Graw Hill (2000)
4. García Dunna Eduardo, García Reyes Heriberto, Cárdenas Barrón Leopoldo. Simulación y Análisis
de Sistemas con Promodel. Pearson (2006)
5. García F., Sierra J., y Guzmán V., Simulación de Sistemas para Administración e Ingeniería.
CECSA (2005)
6. Harrell Ch., Ghosh B., y Borden Royce., Simulation Using Promodel. Mc Graw Hill (2004)
7. Kelton W David., Sadowski Randall P., Sturrock David T., Simulación con software Arena. 4a
Edicion. México. McGraw Hill
Top Related