Professional Documents
Culture Documents
Las primeras referencias sobre simulacin se encuentran hacia el ao 1940, cuando Von
Neumann y Ullman trabajaron sobre la simulacin del flujo de neutrones para la construccin
de la bomba atmica en el proyecto Montecarlo. Desde entonces se conocan las tcnicas de
simulacin como procesos Montecarlo, aunque en la actualidad se diferencian ambas cosas,
siendo los segundos un tipo particular de simulacin. Tambin se realiz un proceso de
simulacin para el proyecto APOLLO dentro del plan espacial de la N.A.S.A, acerca del
movimiento dentro de la atmsfera de la luna.
1.1 INTRODUCCION
Una de las ms famosas aplicaciones de muestras aleatorias, ocurre durante la segunda guerra
mundial, cuando la simulacin se utiliz para estudiar el flujo de neutrones dentro del
desarrollo de la bomba atmica. Esta investigacin era secreta y le dieron un nombre en
cdigo: Monte Carlo. Este nombre se mantiene, y durante mucho tiempo se usaba para hacer
referencia a algunos esfuerzos en simulacin. Pero el trmino mtodos Monte Carlo, se refiere
actualmente a una rama de las matemticas experimentales que trata con experimentos de
nmeros aleatorios, mientras que el trmino simulacin, o simulacin de sistemas, cubre una
tcnica de anlisis ms prctico, y es lo que vamos a estudiar.
Vamos a ver tcnicas que utilizan los computadores para imitar, o simular, el comportamiento
de sistemas del mundo real. Para estudiar cientficamente estos sistemas, a menudo se han de
hacer una serie de suposiciones acerca de cmo trabaja ste. Estas suposiciones que
usualmente toman la forma de relaciones matemticas o lgicas, 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
mtodos matemticos (tales como lgebra, clculo o teora de la probabilidad) para obtener
una informacin exacta de las cuestiones de inters; a esto se le llama solucin analtica. Sin
embargo, la mayora de los sistemas del mundo real son demasiado complejos y normalmente
los modelos realistas de los mismos, no pueden evaluarse analticamente. Lo que se puede
hacer es estudiar dichos modelos mediante simulacin. En una simulacin se utiliza el
ordenador para experimentar con un modelo numricamente, de forma que con los resultados
obtenidos se haga una estimacin de las caractersticas del sistema.
1
1.2 SISTEMAS, MODELOS Y SIMULACION
Un Sistema se define como una coleccin de entidades (por ejemplo, personas, mquinas,
etc.) que actan e interactan juntas para lograr un fin comn. En la prctica qu se entiende
por sistema, depende de los objetivos del estudio particular que se pretenda hacer. El conjunto
de entidades u objetos que componen el sistema para un estudio puede ser slo un conjunto de
todas las entidades utilizadas para otro estudio.
Un sistema est formado por entidades, atributos, actividades, eventos y estado del sistema.
Se llama entidad a un objeto de inters dentro del sistema; atributo es una caracterstica o
propiedad de una entidad; actividad es un proceso con determinada duracin o proceso que
implique cambios con una duracin dentro del sistema; evento es un inicio o fin de una
actividad del sistema y estado del sistema es la descripcin de las entidades, atributos,
actividades segn su existencia en algn punto del tiempo.
Ejemplo:
Sistema: Banco
Entidad: Cliente
Atributos: Saldo, Crdito, #Cuenta, etc.
Actividades: Deposito, Retiro
Ejemplo:
Sistema: Supermercado
Entidades: Clientes, Carrito, Caja
Atributos: Artculos a comprar, Disponibilidad del carrito, Cantidad de
artculos a comprar, Nmero de caja, etc.
Actividades: Entrada, Compra, Pagar / Cobrar, Devolver el carrito, Salida, etc.
Existen actividades que influyen dentro del sistema para lo cual hay que definir las fronteras
como tal. El medio ambiente es todo lo que pasa fuera del sistema. La frontera es aquella que
separa al medio ambiente del sistema.
Las actividades que ocurren en el medio ambiente se llaman Exgenas y las que se desarrollan
dentro del sistema se llaman Endgenas.
2
Los sistemas se pueden clasificar en dos tipos, discretos y continuos. Un sistema discreto es
aquel en el que las variables de estado cambian instantneamente 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 prctica 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 construccin del mismo (sistemas de
fabricacin, 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 fsico frente a modelo matemtico: Para muchos la palabra modelo, evoca
imgenes de miniaturas, cabinas separadas de los aviones para el entrenamiento de los
pilotos, etc. Estos son ejemplos de modelos fsicos (tambin conocidos como modelos
icnicos). Sin embargo la mayora de los modelos construidos para estudiar los
sistemas son matemticos, los cuales representan un sistema en trminos de relaciones
cuantitativas y lgicas que pueden ser cambiadas para ver cmo el modelo reacciona y
ver as como debera comportarse el sistema, si el modelo es vlido.
3
Figura 1.1 Formas de estudiar un Sistema
Los modelos deben contener slo 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 haran sera obscurecer las relaciones entre las entradas y
las salidas. En qu punto se debe parar de incluir realismo en el modelo? Esto depende del
propsito para el cual el modelo se haya desarrollado.
1
Gordon 1969
2
Shannon, 1975
3
Naylor y otros
4
A continuacin se detallan algunas caractersticas que deben presentar los modelos:
Deben ser una buena aproximacin del sistema real, que controle el mayor nmero
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).
Modelacin: Necesarios para disear el modelo que permita dar respuestas vlidas del
sistema real que represente. El diseo es una fase muy importante, ya que los errores
proporcionarn modelos falsos.
Mtodos Heursticos: Para permitir llegar a una solucin buena del problema
planteado.
Los modelos pueden ser fsicos o matemticos. Los fsicos son aquellos que tienen un
comportamiento fsico, es decir, utilizando la fsica se representa un sistema. Los matemticos
son aquellos que utilizan mtodos de resolucin, variables, condiciones lgicas, con la
utilizacin de las matemticas obtenemos parmetros del modelo.
Nos vamos a centrar en los modelos matemticos y su estudio por medio de simulacin. Los
modelos se pueden clasificar en:
5
cantidades y entradas. Sin embargo muchos sistemas tienen ciertos componentes
aleatorios de entrada y stos se representan mediante modelos probabilsticos (por
ejemplo la mayora de los sistemas de colas e inventarios). Los modelos de simulacin
probabilsticos producen salidas que son aleatorias y deben ser tratadas como tales, es
decir como una estimacin de las verdaderas caractersticas del modelo; esta es una de
las desventajas de la simulacin.
La simulacin tiene numerosas aplicaciones por ejemplo (dadas por Hussey, 1972; Shannon,
1975), las que se describen a continuacin:
Prediccin: El modelo se puede usar para predecir el comportamiento del objeto real
bajo ciertos estmulos. Se puede hacer as una evaluacin de diferentes estrategias de
accin.
6
Diseo y anlisis en los sistemas de manufactura.
Anlisis medioambientales.
Aunque la simulacin est ampliamente utilizada tambin presenta una serie de problemas.
Por un lado, los modelos usados para estudiar sistemas de larga escala de tiempo suelen ser
muy complicados y adems necesitan utilizar muchos recursos de computacin, aunque en la
actualidad y gracias al desarrollo de paquetes software que ofrecen automticamente muchas
de las caractersticas necesarias para codificar los modelos y al abaratamiento del costo de
computacin, estos inconvenientes estn disminuyendo.
Ventajas:
Desventajas:
Las suposiciones hechas para describir el sistema puede ser poco realistas.
Las frmulas matemticas pueden ser muy complicadas impidiendo llegar a una
solucin.
7
1.4.2 MODELO DE SIMULACION
Ventajas:
Pueden ser usados para experimentar con sistemas que todava no existan, o para
experimentar con sistemas existentes sin que stos se alteren. (Esto tambin los
pueden hacer los mtodos analticos siempre y cuando el sistema no sea muy
complejo).
Desventajas:
Cada cambio en las variables de entrada requiere una solucin separada o conjunto de
ejecuciones.
Despus de ver estas ventajas e inconvenientes del uso de la simulacin puede no haber
quedado muy claro cundo se debe utilizar. El estudio de un sistema se va a realizar mediante
simulacin cuando se de una o varias de las condiciones siguientes establecidas por Shannon
en 1975:
Existen el modelo y los mtodos, pero los procedimientos son tediosos, por lo que
resulta ms sencilla y menos costosa la simulacin.
8
Puede experimentarse sobre el sistema, pero motivos ticos lo impiden (Ej.: sistemas
biolgicos humanos).
Se quiere observar un sistema de evolucin muy lenta, reduciendo la escala del tiempo
(Ej.: anlisis de sistemas ecolgicos).
Esta aproximacin mixta tiene la ventaja de los modelos analticos de producir soluciones
ptimas, mientras que con los modelos de simulacin refleja el grado apropiado de realismo y
precisin en la descripcin del sistema. Sin embargo, esta combinacin presenta la desventaja
de requerir un mayor nivel de familiaridad con los modelos analticos y ms ingenio que si se
usan slo modelos de simulacin.
Aunque se van a presentar una serie de pasos de forma secuencial, realmente es un proceso
iterativo, tal y como se muestra en Figura 1.2.
9
Figura 1.2 Pasos en la Simulacin
Se definen las cuestiones para las que se buscan las respuestas, las variables implicadas y las
medidas de ejecucin que se van a usar.
Esta fase es muy importante para poder alcanzar un modelo vlido, se puede dividir a su vez
en 5 fases, las que se describen a continuacin.
Se hace una abstraccin 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).
10
1.6.1.2 Reconocer las variables del sistema
Se han de identificar las variables que interviene en el sistema y que son de inters para
nuestro modelo, stas se pueden clasificar en:
Variables endgenas: Son variables internas y las variables de salida del modelo.
Incluso en el caso de que las variables sean controlables, estn limitadas o restringidas a
ciertos lmites 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 ejecucin
Hay veces en las que existe una nica funcin objetivo dominante y entonces se intenta
optimizar sta sin tener en cuenta las otras variables, aunque siempre considerando las
restricciones.
En otras ocasiones existe ms de una funcin dominante, en este caso, hay que estudiar las
distintas funciones objetivo e intentar encontrar valores para los cuales las funciones son
ptimas.
11
Establecer compromisos implcitos entre las medidas. Esta aproximacin es muy
subjetiva y no se va a considerar. Se dan los resultados a quin tenga que tomar la
decisin y l ser quien establezca la relacin entre las variables conflictivas.
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
representacin del sistema), o por el contrario se han definido ms de las necesarias (esto
puede oscurecer las relaciones entre las 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:
No es igual si lo que se desea hacer es un modelo para una previsin a largo plazo, en cuyo
caso la precisin puede ser menor, debido a que al transcurrir el tiempo las variables van a
cambiar e incluso podrn aparecer otras nuevas, que si se desea una previsin a corto plazo,
entonces se deber profundizar ms en el nivel de detalle.
Aunque la recogida de datos se va a ver como el segundo paso, es bastante posible que se
hayan tenido que recoger datos para la formulacin del problema. Sin embargo, durante este
paso se recoge el mayor volumen de datos, se reduce y se analiza.
Los mtodos 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 tcnicas ms sofisticadas de alta tecnologa. En la seleccin de un mtodo
se pueden tener en cuenta los siguientes factores:
12
El impacto que pueda producir el proceso de recoleccin sobre el comportamiento del
sistema real. Puede producir perturbaciones reales o fsicas en el sistema o
psicolgicas.
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:
Incluye la construccin y depuracin del modelo del sistema real, incluyendo la seleccin de
un lenguaje de programacin, codificacin del modelo. Esta etapa se va a dividir en dos
partes: Comprensin del sistema y Construccin del modelo.
13
Aproximacin de Flujo Fsico: Se ha de identificar las entidades cuyo procesamiento
o transformacin constituye el propsito principal del sistema. Estas entidades pueden
tomar diferentes caminos en el sistema, las rutas que siguen se determinan mediante
reglas de decisin. La representacin del sistema vendr dada mediante un diagrama
de flujo de entidad y los elementos de procesamiento del sistema.
14
son las que indican los estados de los cajeros y empaquetadores, si estn ocupados o no.
Algunos eventos que cambian el estado del sistema, y por tanto las variables de estado, son
una llegada al sistema, la seleccin de una cola y el aadirse a ella, salida del sistema una vez
que ha pagado los productos.
Variables de estado:
Sucesos:
Suceso 2: N N, MM-1
Suceso 3: NN-1, MM
Resulta til representar esto de forma grfica mediante el grafo de sucesos. Los eventos se
representan mediante nodos y la progresin de los eventos mediante flechas (Figura 1.4).
15
1.6.3.2 Construccin del Modelo
Eleccin del Mecanismo de avance del tiempo: Este depender de la aproximacin elegida
para describir el comportamiento del sistema. Si se eligi la aproximacin de flujo fsico, este
diagrama de flujo podra refinarse para convertirse en el diagrama de flujo del programa. Si se
sigui la aproximacin de cambio de estado, el diagrama de flujo desarrollado debera
describir el procedimiento que efecta los cambios de estado en el tiempo. Otros dos factores
inciden en la construccin del diagrama de flujo del programa: elegir un mecanismo de
avance del tiempo y el lenguaje de programacin que se seleccione. Hay fundamentalmente
dos formas de considerar el avance del tiempo en un modelo de simulacin:
Incrementos por los eventos (N.E.T.A., Next Event Time Advance): Las
comprobaciones y modificaciones de las variables afectadas se realizan slo despus
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 simulacin depende de cul 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 actualizacin 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 ningn cambio o que por el
contrario que hayan ocurrido ms de un suceso con lo cual se tendr que decidir cul atender
antes (por ejemplo dando prioridad a los sucesos). En esta aproximacin 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 eleccin del incremento de tiempo. Si ste es demasiado pequeo
se realizar trabajo intil, ya que se comprobarn cambios cuando en realidad no ha ocurrido
ningn suceso. Por el contrario si es demasiado grande se producirn muchos errores de
redondeo y la dinmica del modelo ser ineficiente.
16
Eleccin de un Lenguaje de Programacin: Hay un creciente nmero de lenguajes de
programacin disponibles para la implementacin de modelos de simulacin.
Entre los lenguajes de simulacin se destacan: GPSS (General Purpose Simulation System),
SLAM (Simulation Language for Alternative Modeling), SIMAN (Simulation Analysis), y
SIMSCRIPT. Muchos lenguajes de propsito general son completamente adecuados para la
simulacin, por ejemplo, FORTRAM, PASCAL,, pero los lenguajes de simulacin
proporcionan una serie de caractersticas que hacen la programacin, depuracin y
experimentacin ms eficientes en tiempo y esfuerzo, aunque consuman ms tiempo en la
ejecucin. Quizs la ms importante ventaja de los lenguajes de simulacin 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 travs 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.
Aunque se ha hecho referencia a que los nmeros usados en simulacin son aleatorios, no lo
son totalmente, ya que se producen a partir de algoritmos determinsticos. Sin embargo las
propiedades de los nmeros producidos se pueden hacer lo suficientemente cerradas de forma
que stos sean completamente utilizables para la simulacin. Si el modelo se implementa con
un lenguaje de propsito general, se puede seleccionar e incluir algoritmos necesarios para
generar las variables aleatorias requeridas. Pero si se utiliza un lenguaje de simulacin estos
algoritmos estn incluidos y pueden ser fcilmente accesibles por el usuario.
La Verificacin del modelo consiste en ver cul es la consistencia interna del modelo.
La verificacin y validacin del modelo se realiza en todas los niveles de modelacin: modelo
conceptual, modelo lgico y un modelo de ordenador. La verificacin se centra en la
consistencia interna del modelo, mientras que la validacin se interesa por la correspondencia
entre el modelo y la realidad.
17
Se dice que un modelo es vlido si sus medidas de salida tienen una correspondencia
apropiada con las mismas medidas en el sistema real. La comprobacin ltima para la validez
de un modelo es ver cmo el modelo puede predecir un comportamiento futuro del sistema
ante unas determinadas entradas.
Se han de disear los experimentos que se van a llevar a cabo sobre el modelo y luego
analizar las salidas obtenidas, de forma que podamos responder a las cuestiones que se
plantearon.
18
en donde se puede escalar. De hecho, la representacin en 2 dimensiones de la respuesta de
superficie es como las lneas de contorno de un mapa topogrfico (Figura 1.7).
Usando varias estrategias se pueden alcanzar puntos altos en el terreno, y quizs llegar a la
cumbre. Una estrategia es el mtodo de escalado ascendente. Esta requiere que el modelo se
ejecute suficientemente para hacer que se pueda determinar qu direccin (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 decisin se van cambiando de esta forma y el proceso
contina hasta que ya no se puede llegar ms alto, en ese momento se ha alcanzado un ptimo
local o global.
En la interpretacin de las salidas del modelo, hay algunos aspectos que son nicos de la
simulacin. Mientras que los modelos analticos proporcionan soluciones con medidas de
ejecucin completamente definidas, los modelos de simulacin producen estimaciones de las
medidas que estn sujetas a error.
Las salidas del modelo de simulacin se consideran muestras. Las principales cuestiones en la
obtencin de estimaciones tiles a partir de muestras son: que la muestra sea representativa
del comportamiento del sistema, y que el tamao de la muestra sea lo suficientemente grande
para que las estimaciones de las medidas de ejecucin alcancen un buen nivel de precisin. El
tamao 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.
Anlisis para sistemas con final definido: La ejecucin del modelo finaliza cuando ocurre
un evento especfico. Se tomara una muestra por ejecucin.
19
En ambos casos, las condiciones iniciales (estado del sistema al empezar la ejecucin) pueden
influir en la estimacin de las medidas de comportamiento.
Este paso final es uno de los ms importantes y el que ms se descuida de todo el proceso.
Parece obvio que los beneficios de un largo y costoso anlisis no se realizarn sin una
implementacin apropiada y una aceptacin por parte de los usuarios.
20