Documente Academic
Documente Profesional
Documente Cultură
- Introducción a la Simulación
Las primeras referencias sobre simulación se encuentran hacia el año 1940, cuando Von
Neumann y Ullman trabajaron sobre la simulación del flujo de neutrones para la construcción de la
bomba atómica en el proyecto “Montecarlo”. Desde entonces se conocían las técnicas de simulación
como procesos Montecarlo, aunque en la actualidad se diferencian ambas cosas, siendo los segundos
un tipo particular de simulación. También se realizó un proceso de simulación para el proyecto
APOLLO dentro del plan espacial de la N.A.S.A, acerca del movimiento dentro de la atmósfera de la
luna.
1.1.- Introducción
Actualmente, la simulación es una poderosa técnica para la resolución de problemas. Sus
orígenes están en la teoría de muestreo estadístico y análisis de sistemas físicos probabilísticos
complejos. El aspecto común de ambos es el uso de números y muestras aleatorias para aproximar
soluciones.
Una de las más famosas aplicaciones de muestras aleatoria s, ocurre durante la segunda guerra
mundial, cuando la simulación se utilizó para estudiar el flujo de neutrones dentro del desarrollo de la
bomba atómica. Esta investigación era secreta y le dieron un nombre en código: Monte Carlo. Este
nombre se mantiene, y durante mucho tiempo se usaba para hacer referencia a algunos esfuerzos en
simulación. Pero el término métodos Monte Carlo, se refiere actualmente a una rama de las
matemáticas experimentales que trata con experimentos de números aleatorios, mientras que el
término simulación, o simulación de sistemas, cubre una técnica de análisis más práctico, y es lo que
vamos a estudiar.
Introducción a la Simulación
Vamos a ver técnicas que utilizan los computadores para imitar, o simular, el comportamiento
de sistemas del mundo real. Para estudiar científicamente estos sistemas, a menudo se han de hacer
una serie de suposiciones acerca de cómo trabaja éste. Estas suposiciones que usualmente toman la
forma de relaciones matemáticas o lógicas, constituyen un modelo que va a ser usado para intentar
comprender el comportamiento del sistema correspondiente.
Si las relaciones que componen el modelo son suficientemente simples, es posible usar
métodos matemáticos (tales como álgebra, cálculo o teoría de la probabilidad) para obtener una
información exacta de las cuestiones de interés; a esto se le llama solución analítica. Sin embargo, la
mayoría de los sistemas del mundo real son demasiado complejos y normalmente los modelos realistas
de los mismos, no pueden evaluarse analíticamente. Lo que se puede hacer es estudiar dichos modelos
mediante simulación. En una simulación se utiliza el ordenador para experimentar con un modelo
numéricamente, de forma que con los resultados obtenidos se haga una estimación de las
características del sistema.
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.
• 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
2
Introducción a la Simulación
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.
Sistema
Experimentación Experimentación
con el Sistema con un Modelo
del Sistema
Modelo Modelo
Físico Matemático
Solución
Analítica Simulación
Por tanto podemos definir la simulación como “la técnica de resolución de problemas
siguiendo en el tiempo los cambios de un modelo de un sistema” (Gordon, 1969), o como “el proceso
de diseñar un modelo de un sistema real y realizar experimentos con dicho modelo con el propósito de
3
Introducción a la Simulación
comprender el funcionamiento del sistema o de evaluar diferentes estrategias (dentro de los límites
impuestos por un criterio o conjunto de criterios) para la operación del sistema (Shannon, 1975)“, para
este último autor , simulación incluye tanto la modelización como el uso del modelo para estudiar el
sistema. Otra posible definición es entender la simulación como “el proceso de diseñar un modelo
matemático o lógico de un sistema real y realizar una serie de experimentos con el ordenador sobre él
para describir, explicar y predecir el comportamiento del sistema real” (Naylor y otros).
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.
• 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 implentar con un lenguaje de programación.
• Probabilidad y Estadística: la probabilidad es necesaria para definir y estudiar las
variables ale atorias 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.
4
Introducción a la Simulación
Carlo. De otro lado, los modelos dinámicos representan sistemas que evolucionan con el
tiempo.
• Determinísticos frente a Probabilísticos: Si un modelo no continene ningún componente
probabilístico se conoce como determinístico (ej, un complicado sistema de ecuaciones
diferenciales que describen una sustancia química). En un modelo determinístico la
salida es determinada una vez que se especifican las relaciones, cantidades y entradas.
Sin embargo muchos sistemas tienen ciertos componentes aleatorios de entrada y éstos
se representan mediante modelos probabilísticos (por ejemplo la mayoría de los
sistemas de colas e inventarios). Los modelos de simulación probabilísticos producen
salidas que son aleatorias y deben ser tratadas como tales, es decir como una estimación
de las verdaderas características del modelo; esta es una de las desventajas de la
simulación.
• Continuos frente a Discretos: Los modelos de simulación continuos y los discretos se
definen de forma análoga a la de los sistemas. Sólo decir que no siempre es usado para
modelar un sistema discreto y viceversa. La decisión de utilizar un modelo discreto o
continuo para un sistema particular depende de los objetivos del estudio. Por ejemplo un
modelo del flujo de tráfico en una autovía podría ser discreto si son importantes las
características y movimientos de los coches individuales. Alternativamente, si los
coches se tratan en conjunto el flujo de tráfico se puede describir mediante ecuaciones
diferenciales en un modelo continuo.
• Prescriptivos frente a Descriptivos: Los primeros pretenden tomar decisiones sobre el
sistema; se utilizan cuando se desea responder y optimizar una cuestión acerca del
sistema, tratan de dar la mejor solución. Los segundos se limitan a describir el
comportamiento del sistema y dejan la totalidad del proceso de optimización en manos
del analista.
• De Ciclo Abierto frente a de Ciclo Cerrado: En los primeros no hay realimentación, es
decir, las salidas no afectan a las entradas. En los segundos las salidas sí afectan a las
entradas (ej: un sistema de calefacción).
Predicción: El modelo se puede usar para predecir el comportamiento del objeto real bajo
ciertos estímulos. Se puede hacer así una evaluación de diferentes estrategias de acción.
5
Introducción a la Simulación
Las áreas de aplicación de la simulación son diversas y muy numerosas. Debajo hay un listado
de algunas clases de problemas para los que la simulación constituye una poderosa herramienta:
• Las suposiciones hechas para describir el sistema puede ser poco realistas.
6
Introducción a la Simulación
• Las fórmulas matemáticas pueden ser muy complicadas impidiendo llegar a una
solución.
7
Introducción a la Simulación
Esta aproximación mixta tiene la ventaja de los modelos analíticos de producir soluciones
óptimas, mientras que con los modelos de simulación refleja el grado apropiado de realismo y
precisión en la descripción del sistema. Sin embargo, esta combinación presenta la desventaja de
requerir un mayor nivel de familiaridad con los modelos analíticos y más ingenio que si se usan sólo
modelos de simulación.
Esta fase es muy importante para poder alcanzar un modelo válido, se puede dividir a su vez
en 5 fases
Se hace una abstracción del tipo de problema que se va a tratar. Se identifican los recursos a
utilizar, los requisitos que se van a exigir (relaciones a establecer).
8
Introducción a la Simulación
Formulación del
problema
Recolección de
datos y análisis
Desarrollo del
modelo
Verificación y
Validación del
modelo
Experimentación
y Análisis de las
Salidas
Implantación de
los resultados
de la Simulación
Se han de identificar las variables que interviene en el sistema y que son de interés para
nuestro modelo, éstas se pueden clasificar en:
• Variables exógenas: son variables externas al modelo y existen con independencia de él.
Se consideran variables de entrada. Éstas a su vez se pueden dividir en dos grupos:
• Variables controlables o de decisión (factores) : son aquellas sobre las que el
analista puede decidir su valor dentro de ciertos límites.
• Variables incontrolables o parámetros: sus valores no se pueden decidir sino que
vienen fijados. Las variables serán controlables o incontrolables dependiendo de
quién las defina.
• Variables endógenas: son variables internas y las variables de salida del modelo. Son
función de las variables exógenas y de la estructura del modelo.
9
Introducción a la Simulación
Incluso en el caso de que las variables sean controlables, están limitadas o restringidas a
ciertos límites dentro de los cuales se pueden modificar.
1.6.1.4.- Desarrollar una estructura preliminar del modelo que interrelacione las
variables del sistema y las medidas de ejecución.
Hay veces en las que existe una única función objetivo dominante y entonces se intenta
optimizar ésta sin tener en cuenta las otras variables, aunque siempre considerando las restricciones.
En otras ocasiones existe más de una función dominante, en este caso, hay que estudiar las distintas
funciones objetivo e intentar encontrar valores para los cuales las funciones son óptimas.
Los modelos son abstracciones de las partes esenciales del sistema. Se ha de intentar ver si con
las variables que se han especificado se tiene suficiente para describir estos aspectos importantes del
sistema (si no se tienen suficientes entonces el modelo no será una buena representación del sistema),
o por el contrario se han definido más de las necesarias (esto puede oscurecer las relaciones entre las
10
Introducción a la Simulación
variables realmente importantes). En resumen, lo que se tiene que fijar en este paso es el nivel de
detalle al que se debe llegar en el modelo. El nivel de detalle depende de:
Los métodos de recogida de datos son tan variados como los problemas a los que éstos se
pueden aplicar. Si se clasifican por su sencillez, se puede ir desde las aproximaciones manuales hasta
las técnicas más sofisticadas de alta tecnología. En la selección de un método se pueden tener en
cuenta los siguientes factores:
Una vez realizado el muestreo, los datos se han de analizar e introducir en el modelo. Los
datos usados para definir el modelo pueden ser de dos tipos:
• Deteminísticos: son datos conocidos con certeza. Éstos se pueden introducir fácilmente
en el modelo.
• Probabilísticos: hay dos formas de incluirlos en el modelo:
• Usar la muestra de datos recogida para representar la distribución de
probabilidades.
11
Introducción a la Simulación
12
Introducción a la Simulación
Cajero y empaquetador
Cliente en cola
Recuento compra Pago Embolsar
Elección
de Cola
Cajero y empaquetador
Cliente en cola
Recuento compra Pago Embolsar
Variables de estado:
Sucesos:
13
Introducción a la Simulación
Resulta útil representar esto de forma gráfica mediante el grafo de sucesos. Los eventos se
representan mediante nodos y la progresión de los eventos mediante flechas (Figura 1.4).
Sucesos
1. Llegada del Cliente.
1 2 3 4
2. Cliente selecciona caja.
3. Cajero empieza.
4. Cajero termina.
7
5 6 5. Empaquetador empieza.
6. Empaquetador termina.
7. Salida del Cliente.
~ =Enlace condicional.
Elección Mecanismo de avance del 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:
14
Introducción a la Simulación
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.
Entre los lenguajes de simulación destacan: GPSS (General Purpose Simulation System),
SLAM (Simulation Language for Alternative Modeling), SIMAN (Simulation Analysis), y
SIMSCRIPT. Muchos lenguajes de propósito general son completamente adecuados para la
simulación, por ejemplo, FORTRAM, PASCAL,…, pero los lenguajes de simulación proporcionan
una serie de características que hacen la programación, depuración y experimentación más eficientes
en tiempo y esfuerzo, aunque consuman más tiempo en la ejecución. Quizás la más importante ventaja
de los lenguajes de simulación es la correspondencia entre los elementos del sistema y los elementos
del lenguaje. Por ejemplo, en GPSS hay bloques de diagramas de flujo y conjuntos de sentencias de
programa llamados QUEUE que procesan entidades a través de una cola de espera y acumulan datos
de variables de salida tales como tiempo de espera en la cola.
El lenguaje seleccionado puede influir en la forma exacta del diagrama de flujo del programa
de computador.
15
Introducción a la Simulación
Aunque se ha hecho referencia a que los números usados en simulación son aleatorios, no lo
son totalmente, ya que se producen a partir de algoritmos determinísticos. Sin embargo las
propiedades de los números producidos se pueden hacer lo suficientemente cerradas de forma que
éstos sean completamente utilizables para la simulación. Si el modelo se implementa con un lenguaje
de propósito general, se puede seleccionar e incluir algoritmos necesarios para generar las variables
aleatorias requeridas. Pero si se utiliza un lenguaje de simulación estos algoritmos están incluidos y
pueden ser fácilmente accesibles por el usuario.
La Validación consiste en asegurar que existe la una correspondencia entre el sistema real y el
modelo. Un buen método para la validación es hacer un test para ver cómo el modelo predice el
comportamiento del sistema ante determinadas entradas.
Se dice que un modelo es válido si sus medidas de salida tie nen una correspondencia
apropiada con las mismas medidas en el sistema real. La comprobación última para la validez de un
modelo es ver cómo el modelo puede predecir un comportamiento futuro del sistema ante unas
determinadas entradas.
16
Introducción a la Simulación
Usando varias estrategias se pueden alcanzar puntos altos en el terreno, y quizás llegar a la
cumbre. Una estrategia es el método de escalado ascendente. Esta requiere que el modelo se ejecute
suficientemente para hacer que se pueda determinar qué dirección (qué cambios en los valores de los
factores) parece conducir a un incremento en la altitud (incremento en la medida de salida). Las
variables de decisión se van cambiando de esta forma y el proceso continúa hasta que ya no se puede
llegar más alto, en ese momento se ha alcanzado un óptimo local o global.
Medida de ejecución
Variable
de decisión 2
Variable de decisión 1
Figura 1.7. Respuesta en Superficie para dos variables de decisión.
17
Introducción a la Simulación
En la interpretación de las salidas del modelo, hay algunos aspectos que son únicos de la
simulación. Mientras que los modelos analíticos proporcionan soluciones con medidas de ejecución
completamente definidas, los modelos de simulación producen estimaciones de las medidas que están
sujetas a error.
Las salidas del modelo de simulación se consideran muestras. Los principales cuestiones en la
obtención de estimaciones útiles a partir de muestras son: que la muestra sea representativa del
comportamiento del sistema, y que el tamaño de la muestra sea lo suficientemente grande para que las
estimaciones de las medidas de ejecución alcancen un buen nivel de precisión. El tamaño de la
muestra es algo que está bien definido, pero la representatividad del comportamiento del sistema
depende de la naturaleza de las cuestiones que tienen que ser contestadas por el modelo.
Análisis para sistemas con final definido: la ejecución del modelo finaliza cuando ocurre un
evento específico. Se tomaría una muestra por ejecución.
En ambos casos, las condiciones inicia les (estado del sistema el empezar la ejecución) pueden
influir en la estimación de las medidas de comportamiento.
Este paso final es uno de los más importantes y el que más se descuida de todo el proceso.
Parece obvio que los beneficios de un largo y costoso análisis no se realizarán sin una implementación
apropiada y una aceptación por parte de los usuarios.
18
Introducción a la Simulación
Entre las razones por las que los esfuerzos de implantación son a menudo inútiles, se incluyen
las siguientes:
19