1.3 METODOLOGIA DE LA SIMULACION

1.3 METODOLOGÍA DE SIMULACIÓN

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.

Deja un comentario