Вы находитесь на странице: 1из 11

LENGUAJE DE SIMULACION Y SIMULADORES

En un principio, los programas de simulación se elaboraban utilizando algún lenguaje de


propósito general, como ASSEMBLER, FORTRAN, ALGOL o PL/I. A partir de la década
de 1960 hacen su aparición los lenguajes específicos para simulación como GPSS, GASP,
SIMSCRIPT, SLAM. En la última década del siglo pasado la aparición de las interfaces
gráficas revolucionaron el campo de las aplicaciones en esta área, y ocasionaron el
nacimiento de los simuladores.
En lo práctico, es importante utilizar la aplicación que mejor se adecúe al tipo de sistema a
simular, ya que de la selección del lenguaje o simulador dependerá el tiempo de desarrollo
del modelo de simulación. Las opciones van desde las hojas de cálculo, lenguajes de tipo
general (como Visual Basic, C++ o Fortan), lenguajes específicos de simulación (como
GPSS, SLAM, SIMAN, SIMSCRIPT, GAS y SSED), hasta simuladores específicamente
desarrollados para diferentes objetivos (como SIMPROCESS, ProModel, Witness, Taylor II
y Cristal Ball).

METODOLOGIA

Aunque se van a presentar una serie de pasos de forma secuencial, realmente es un proceso
iterativo.

1.3.1.- Formulación del problema

Se definen las cuestiones para las que se buscan las respuestas, las variables implicadas y
las medidas de ejecución que se van a usar.

Esta fase es muy importante para poder alcanzar un modelo válido, se puede dividir a su
vez en 5 fases

1.3.1.1.- Identificación del Problema

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

1.6.1.2.- Reconocer las variables del sistema

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.

1.3.1.3.- Especificación de las restricciones de las variables de decisió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.

Es importante considerar cuidadosamente las restricciones sobre las variables de decisión,


ya que definen el posible espacio de soluciones dentro del cual se buscará una buena
solución o la óptima usando el modelo de simulación.

1.3.1.4.- Desarrollar una estructura preliminar del modelo que interrelacione las
variables del sistema y las medidas de ejecución.

Para evaluar la efectividad de un sistema, se debe identificar una medida o medidas de


comportamiento (o ejecución) para juzgarlo. Estas medidas se seleccionan del conjunto de
variables endógenas. La medida o medidas que se pretenden optimizar se conocen como
función objetivo.

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.

Cuando se quiere tener en cuenta varias medidas de comportamiento, a menudo no se


podrán optimizar simultáneamente. Lo ideal sería hacer mínimas ambas medidas, el tiempo
de espera y el costo de tener los empleados, pero si se minimiza una de ellas la otra
aumenta. Se tienen tres formas de abordar este problema:

· Establecer compromisos implícitos entre las medidas. Esta aproximación es muy subjetiva
y no se va a considerar. Se dan los resultados a quién tenga que tomar la decisión y él será
quien establezca la relación entre las variables conflictivas.

· Establecer compromisos explícitos, realizando una combinación de todas las medidas


usando una dimensión común tal como el costo. A estas técnicas se les suele conocer como
análisis de toma de decisiones multiatributo o multiobjetivo. Para realizar esta técnica se
tiene que decidir una dimensión común para todas las medidas, factores pesos, y formar una
función que las combine.

· Restricción y corte: seleccionar una medida como la que más interesa optimizar y hacer
que las otras estén dentro de un rango de valores aceptable. Esto reduce la posibilidad de
encontrar un óptimo, o al menos las mejores soluciones.

1.3.1.5.- Desarrollo de un modelo apropiado

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 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:

· Propósito del modelo.

· Contribución de las variables al modelo.

No es igual si lo que se desea hacer es un modelo para una previsión a largo plazo, en cuyo
caso la precisión puede ser menor, debido a que al transcurrir el tiempo las variables van a
cambiar e incluso podrán aparecer otras nuevas, que si se desea una previsión a corto plazo,
entonces se deberá profundizar más en el nivel de detalle.
1.3.2.- Colección de datos y Análisis

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 formulación del problema. Sin embargo, durante
este paso se recoge el mayor volumen de datos, se reduce y se analiza.

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:

· Capacidad de quien recoja los datos.

· El impacto que pueda producir el proceso de recolección sobre el comportamiento del


sistema real. Puede producir perturbaciones reales o físicas en el sistema o psicológicas.

· La facilidad de conversión de los datos a una representación procesable por el ordenador.

· El coste del método.

En muchas situaciones es suficiente con la observación directa y la recogida manual de los


atributos de interés. Pero si la medida que se quiere observar depende de una persona, su
comportamiento se puede ver afectado por estar siendo observada. Otras veces puede
ocurrir que la acción que se quiere observar sea muy rápida y que no sea posible realizar
una observación humana.

Para decidir el número de muestras necesarias, se ha de establecer una relación costo-


exactitud y hacer una optimización de dicha relación.

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.

· Determinar una distribución probabilística teórica que se comporte como la

muestra y usar ésta en el modelo. Esto permite tener una mejor comprensión
(generalización) del modelo.

1.3.3.- Desarrollo del modelo

Incluye la construcción y depuración del modelo del sistema real, incluyendo la selección
de un lenguaje de programación, codificación del modelo. Esta etapa se va a dividir en dos
partes:

Comprensión del sistema y Construcción del modelo.

1.3.3.1.- Comprensión del sistema

Una de las tareas más difíciles en el análisis de simulación es adquirir el suficiente


conocimiento del sistema para poder desarrollar un modelo apropiado, es decir, conocer el
comportamiento del sistema. Dos técnicas comúnmente usadas son la aproximación de
flujo físico y la aproximación de cambio de estado.

· Aproximación de Flujo Físico. Se ha de identificar las entidades cuyo procesamiento o


transformación constituye el propósito principal del sistema. Estas entidades pueden tomar
diferentes caminos en el sistema, las rutas que siguen se determinan mediante reglas de
decisión. La representación del sistema vendrá dada mediante un diagrama de flujo de
entidad y los elementos de procesamiento del sistema.

· Aproximación de Cambio de Estado. Para describir esta aproximación, se debe definir


unas variables endógenas adicionales que son las variables de estado e introducir un nuevo
concepto, el de suceso o evento. Las variables de estado describen el estado del sistema en
cada momento. Dados los valores actuales de las variables de estado, las variables exógenas
y la estructura del modelo, se puede determinar el estado futuro del sistema. Un evento es
un instante particular en el tiempo en el que el sistema cambia de estado. La evolución del
sistema se puede representar mediante un grafo de sucesos.

1.3.3.2.- Construcción del Modelo


Las tareas principales en la construcción de un modelo son:

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:

· 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.
Elección de un Lenguaje de programación. Hay un creciente número de lenguajes de
programación disponibles para la implementación de modelos de simulación.

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.

Generación de números y variables aleatorias. Se van a necesitar muestras aleatorias


para representar valores de variables de entrada probabilísticas. Utilizando estos números
aleatorios podemos obtener valores de variables aleatorias que sigan ciertas distribuciones
de probabilidad.

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.

Implementación y depuración del modelo. La facilidad o dificultad en esta etapa


dependen en gran medida del lenguaje de programación que se haya elegido.

1.3.4.- Verificación y Validación del modelo

La Verificación del modelo consiste en ver cuál es la consistencia interna del modelo.
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.

La verificación y validación del modelo se realiza en todas los niveles de modelización:


modelo conceptual, modelo lógico y un modelo de ordenador. La verificación se centra en
la consistencia interna del modelo, mientras que la validación se interesa por la
correspondencia entre el modelo y la realidad.

Se dice que un modelo es válido si sus medidas de salida tienen 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.

1.3.5.- Experimentación y Análisis de las salidas

Se han de diseñar 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.

1.3.5.1.- Experimentación con el modelo

El propósito último de la experimentación con el modelo es obtener información acerca del


comportamiento del sistema para que esto nos ayude en la toma de decisiones. Cuando
consideramos la ejecución de un sistema se puede desear conocer cómo se comporta dicho
sistema en sentido absoluto, o comparativamente, para poder contrastar varias
configuraciones alternativas del sistema. O se podrían considerar dos medidas
simultáneamente.

Es evidente que el número de exploraciones que se tendrían que realizar es extremadamente


largo. Hasta para los diseños de experimentos más modestos, la exploración de todas las
posibles soluciones en la búsqueda de la mejor solución, no es algo factible. Se necesita una
aproximación estructurada más directa para encontrar una solución que merezca la pena.
Podemos considerar dos aproximaciones diferentes para abordar este problema: conjunto
predeterminado de experimentos y técnicas de búsqueda de óptimos.

Conjunto de experimentos predeterminado: esta aproximación impone identificar


factores que podrían afectar a la medida de salida y ejecutar los experimentos con los
factores puestos a determinados valores. Una vez realizados los experimentos se aplicarían
unas técnicas estadísticas denominadas análisis de la varianza (ANOVA), para decidir cuál
o cuáles de los factores seleccionados tiene realmente algún impacto en la medida de salida.
Las medidas de salida se pueden adaptar de forma que las suposiciones estadísticas de esta
técnica se satisfagan de forma razonable y puedan ser aplicadas en la experimentación del
modelo.

Un diseño experimental particularmente general es el diseño factorial. Se consideran dos o


más factores pudiendo estar cada uno a dos o más niveles.

El uso de un conjunto predeterminado de experimentos es efectivo para encontrar buenas


soluciones si se puede aproximar una región de optimalidad con experimentos previos o
con la experiencia que se tenga sobre el problema. Sin embargo esta técnica no puede
conducir a la mejor solución global, ni siquiera puede garantizar un óptimo local.

Técnicas de búsqueda de óptimos: un conjunto de estas técnicas se conoce como


Metodología de Superficie de Respuesta (RSM). La superficie de respuesta es la función
que describe las relaciones de las medidas de ejecución con los factores o variables de
decisión. Dos factores definen una superficie de 3 dimensiones, la cual puede ser vista
como un terreno en donde se puede escalar. De hecho, la representación en 2 dimensiones
de la respuesta de superficie es como las líneas de contorno de un mapa topográfico.
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.

1.3.5.2.- Análisis de las salidas

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. Las 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.

Se pueden realizar dos tipos de análisis con un modelo de simulación:

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.

Análisis para sistemas con final no definido (sistemas en estado de equilibrio o


estacionario): el interés está en medias de las medidas de comportamiento de ejecuciones
largas, después de que el sistema ha pasado por algún periodo de comportamiento
transitorio. Las medidas en estado estacionario se pueden definir como el valor de las
medidas en el límite, cuando la longitud de la ejecución tiende a infinito.

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.

El tamaño de la muestra es importante ya que la precisión de las estimaciones depende de la


varianza de la media de la muestra, y la varianza cambia de forma inversamente
proporcional al tamaño de la muestra (si se cuadriplica el tamaño de la muestra la
desviación estándar se reduce a la mitad). La definición de tamaño de muestra para
simulación depende del tipo de análisis que se haya hecho. Para el análisis de un sistema
con final definido se podría reproducir el periodo de interés, con las condiciones iniciales
apropiadas, un determinado número de veces hasta conseguir la precisión deseada de la
estimación. En cada ejecución de obtendrá un elemento de la muestra. Con un análisis en
estado estacionario el tamaño de la muestra está estrechamente enlazado con el tamaño de
la ejecución del modelo o cantidad de tiempo de simulación.

1.3.6.- Implantación de los resultados de la Simulación

Se ha de asegurar que los resultados son aceptados por el usuario.


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.

Entre las razones por las que los esfuerzos de implantación son a menudo inútiles, se
incluyen las siguientes:

· Existe un vacío de comunicación entre el analista de la simulación y los encargados y


usuarios del sistema.

· Falta de entendimientos por parte de los encargados del sistema debido a los tecnicismos
utilizados.

· El compromiso de implementación es tardío.

· Resistencia al cambio.

· Falta de coincidencia entre el personal disponible y los objetivos marcados por el modelo.

Hay aproximaciones que tratan estos obstáculos potenciales. Estas aproximaciones


requieren que los usuarios y los analistas estén implicados desde el comienzo en el proyecto
simulación.

Вам также может понравиться