INSTITUTO TECNOLOGICO SUPERIOR DE LAS CHOAPAS
SIMULACION
CATEDRATICO: ING. RAUL RAMOS URGELL
PROYECTO: UNIDAD I.
EXPONE: JORGE GIOVANY HERNANDEZ HERNANDEZ
GRADO: 6 TO. GRUPO: "B"
INGENIERIA INDUSTRIAL VI
SABADO 14 DE MARZO DEL 2015
Introducción a la Simulación de eventos discretos.
Introducció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.
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ísticas 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 aleatorias, 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: Montecarlo. 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 Montecarlo, 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.
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.
Definiciones y Aplicaciones
Para comprender mejor la simulación es necesario estudiar a fondo sus conceptos y definiciones, por este motivo se presentan los siguientes conceptos:
Enfoque de sistemas: El enfoque de sistemas establece que "el mundo y cualquiera de sus partes puede visualizarse como un conjunto de sistemas en interacción dinámica". Es un punto de vista, una forma de pensar, que en la confrontación de una situación problemática, busca no ser reduccionista. Es decir visualizar la situación desde un punto en donde se consideren todos los elementos que intervienen en un problema.
Sistema: Se entiende una colección de entidades relacionadas, cada una de las cuales se caracteriza por atributos o características que pueden estar relacionados entre sí. Los objetivos que se persiguen al estudiar uno o varios fenómenos en función de un sistema son aprender cómo cambian los estados, predecir el cambio y controlarlo.
Todo sistema consta de tres características. Tienen fronteras, existe dentro de un medio ambiente y tiene subsistemas. El medio ambiente es el conjunto de circunstancias dentro de las cuales está una situación problemática, mientras que las fronteras distinguen las entidades dentro de un sistema de las entidades que constituyen su medio ambiente. Por lo tanto podemos definir a un sistema como: "una estructura dinámica de personas, objetos y procedimientos organizados para el propósito de lograr ciertas funciones".
El conjunto de elementos que forman un sistema tiene las siguientes tres propiedades:
Las propiedades o el comportamiento de cada elemento del conjunto tienen un efecto en las propiedades o el comportamiento del conjunto como un todo.
Las propiedades y comportamiento de cada elemento y la forma en que se afectan al todo, dependen de las propiedades y comportamiento al menos de otro elemento en el conjunto. En consecuencia, no hay parte alguna que tenga un efecto independiente en el todo y cada una está afectada al menos por alguna otra.
Cada subgrupo posible de elementos del conjunto tienen las dos primeras propiedades: cada uno tiene efecto no interdependiente en el total. En consecuencia no se puede descomponer el total en subconjuntos independientes. No se puede subdividir un sistema en subsistemas independientes.
Entidad: Una entidad es algo que tiene realidad física u objetiva y distinción de ser o de carácter. Las entidades tienen ciertas propiedades que las distinguen a unas de otras.
Relación: Es la manera en la cual dos o más entidades dependen entre sí. Relación es la unión que hay entre las propiedades de una o más entidades; por consiguiente, el cambio en alguna propiedad de una entidad ocasiona un cambio en una propiedad de otra entidad.
Estructura: Es un conjunto de relaciones entre las entidades en la que cada entidad tiene una posición, en relación a las otras, dentro del sistema como un todo.
Estado: El estado de un sistema en un momento del tiempo, es el conjunto de propiedades relevantes que el sistema tiene en este momento. Cuando se habla del estado de un sistema, se entiendes los valores de los atributos de sus entidades. Analizar un sistema supone estudiar sus cambios de estado conforme transcurre el tiempo.
Jerarquía De Sistemas:
Subsistemas: Un subsistema es "Un elemento o componente funcional de un sistema mayor que tiene las condiciones de un sistema en sí mismo, pero que también tiene un papel en la operación de un sistema mayor"
Suprasistema: El suprasistema es un sistema mayor a cuya función global el sistema está contribuyendo y del cual forma parte.
Frontera: La frontera de un sistema representa el límite de acción en donde tiene autoridad la persona que toma decisiones en ese sistema. La frontera delimita lo que es y lo que no es el sistema.
Ambiente: El ambiente de un sistema es todo lo está situado fuera de su frontera.
Sistema parcial: Un sistema parcial es una visión del sistema en la cual parte de las relaciones, aquellas que no son relevantes al aspecto del sistema que se está estudiando, son eliminadas.
Sistema en Simulación: Colección de entradas que pasan a través de las fases de cierto proceso, produciendo respuestas. Por ejemplo:
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)
Modelo: Es una representación de un objeto, sistema o idea, de forma diferente al de la entidad misma. el propósito de los modelos es ayudarnos a explicar, entender o mejorar un sistema. Un modelo de un objeto puede ser una réplica exacta de éste o una abstracción de las propiedades dominantes del objeto.
Estructura de los modelos de simulación:
Los componentes son las partes constituyentes del sistema. También se les denomina elementos o subsistemas.
Las variables son aquellos valores que cambian dentro de la simulación y forman parte de funciones del modelo o de una función objetivo.
Los parámetros son cantidades a las cuales se les asignar valores, una vez establecidos los parámetros, son constantes y no varían dentro de la simulación.
Las relaciones funcionales muestran el comportamiento de las variables y parámetros dentro de un componente o entre componentes de un sistema. Estas características operativas pueden ser de naturaleza determinística o estocástica. Las relaciones determinísticas son identidades o definiciones que relacionan ciertas variables o parámetros, donde una salida de proceso es singularmente determinada por una entrada dada. Las relaciones estocásticas son aquellas en las que el proceso tiene de manera característica una salida indefinida para una entrada determinada.
Las restricciones son limitaciones impuestas a los valores de las variables o la manera en la cual los recursos pueden asignarse o consumirse.
En las funciones de objetivos se definen explícitamente los objetivos del sistema y cómo se evaluarán, es una medida de la eficiencia del sistema.
Tiempo de simulación: Es el valor del tiempo que el simulador puede avanzar a una velocidad superior a la habitual de un reloj común, evolucionando así el estado de un sistema de forma acelerada.
Evento: Es un suceso que hace cambiar las variables de estado del sistema. Durante el procesamiento de un evento el tiempo de simulación permanece fijo. Un evento pertenece a una entidad, o actor en el sistema, y normalmente solo cambiara atributos de esta, dejando invariante el resto del sistema.
Actividad: Secuencia de eventos pertenecientes a una entidad que cierran un ciclo funcional. A diferencia de un evento, que se ejecuta a tiempo de simulación constante, una actividad se desarrolla dentro de un intervalo de tiempo de simulación no puntual.
Simulación en tiempo acelerado: Se da cuando el avance del tiempo de simulación es mayor de un segundo por cada segundo de tiempo real.
Simulación en tiempo real: Se da cuando el avance del tiempo de simulación es exactamente de un segundo por cada segundo de tiempo real.
La simulación tiene numerosas aplicaciones por ejemplo (dadas por Hussey, 1972; Shannon, 1975):
Experimentación: Hay dos situaciones que requieren un modelo, cuando la experimentación directa sobre el sistema real es muy costosa o imposible; la otra es la del diseño de un nuevo sistema, así el modelo puede ir modificándose fácilmente hasta obtener el comportamiento deseado.
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.
Enseñanza y "training": así se puede utilizar para el adiestramiento de astronautas, en los juegos de negocios, etc.
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:
Diseño y análisis en los sistemas de manufactura.
Evaluación de los requerimientos hardware y software en un computador.
Evaluación de nuevas armas o tácticas militares.
Determinación de distintas políticas para sistemas de inventario.
Diseños de sistemas de comunicación y protocolos de mensajes para ellos.
Diseño y operación de sistemas de transporte tales como autopistas, aeropuertos, puertos, ferrocarriles, etc.
Evaluación de diferentes diseños para organizaciones de servicios tales como hospitales, oficinas de correos, restaurantes de comida rápida, etc.
Análisis financieros o sistemas económicos.
Análisis medioambientales.
Aunque la simulación está ampliamente utilizada también presenta una serie de problemas. Por un lado, los modelos usados para estudiar sistemas de larga escala de tiempo suelen ser muy complicados y además necesitan utilizar muchos recursos de computación, aunque en la actualidad y gracias al desarrollo de paquetes software que ofrecen automáticamente muchas de las características necesarias para codificar los modelos y al abaratamiento del costo de computación, estos inconvenientes están disminuyendo.
Estructura y características de la simulación de eventos discretos.
También conocida como simulación de tiempo continúo lo cual quiere decir que una vez iniciado la simulación no se detendrá hasta verla terminado, esta técnica está apoyada en su totalidad de software especializados tales como arena, Promodel, GPSS, entre otros.
Sus principales características son:
1.- Están basadas en su totalidad por actividades lógicas y matemáticas.
2.- El modelo va cambiando parcialmente conforme ocurren los eventos.
3.- El sistema solo cambia cuando ocurre un evento estos cambios se van registrando para poder comprender el comportamiento del modelo.
4.- Cuando un evento se realiza el tiempo de la simulación avanza.
5.- La lista de eventos pendientes va reduciéndose conforme los eventos se van realizando
6.- La ejecución de un evento puede generar nuevos eventos.
7.- Una simulación tiene que poder ser repetida múltiples ocasiones generando los mismos resultados, siempre y cuando las variables sean las mismas.
Etapas.
Definición del sistema: Es entender el problema, estudiarlo y analizarlo, para poder interpretar que es lo que buscamos y que es lo que necesitamos de este modo podemos generar una simulación más adecuada a lo que nosotros necesitamos.
Formulación del modelo: Es la creación teórica de un posible modelo que ya hemos delimitado e identificado todas sus variables que pueden afectar el resultado. Esto es teórico que nos ayudara a introducir el modelo al software.
Recolección de datos: Es el proceso de estudiar el sistema he identificar las variables de este. Una vez identificadas estas variables se tiene que tomar un registro de ellas generando datos históricos que estadísticamente podrían predecir el comportamiento del sistema. E ahí la importancia de los datos.
Implementar el modelo en el programa de computadora: En este paso solo es diseñar una solución a nuestro problema e introducirla a un software especializado, para que este programa basado en herramientas matemáticas y estadísticas pueda generar los resultados de un modelo que más se asemejan a la realidad y que es probable que ocurra.
Verificar el modelo: Es la comprobación de que nuestro simulador está bien hecho, tomando en cuenta a todas nuestras variables y por lo tanto comprobaremos que los resultados obtenidos son los que deseamos.
Validar el sistema: Esto no es más que la aprobación del modelo puesto que ya comprobamos que está bien diseñado y que cubre nuestras necesidades y está listo para usarse.
Experimentar: Esto implica correr varias veces el programa para comparar los resultados y embace a estos crear nuestra estrategia que solucione nuestros problemas de la forma más eficiente.
Interpretar los datos arrojados por el programa: No es más que la evaluación de los pros y los contras que genera ese modelo y basándose en estos datos interpretar si ese sistema es eficiente y factible o definitivamente hay que intentarlo con otros modelos.
Documentar: Es plasmar nuestro modelo ya comprobado y bien definido para poderlo presentar ante los interesados, capacitarlos y adaptarlos para aplicar este nuevo modelo que tiene por objeto la mejora.
Modelo de simulación de eventos discretos (MSED)
(Una aproximación a través de ejemplos enfocados al tratamiento de pacientes)
MSED y técnicas de simulación.
Los MSED se utilizan para estudiar sistemas y procesos cuyo estado va cambiando con el tiempo de forma discreta, por lo que permiten conceptualizar el curso de una enfermedad y su manejo en términos de los eventos que pueden suceder durante el modelado, y cuyo impacto afecta tanto a los pacientes como a otros componentes del sistema (p. ej., el uso de recursos).
Estos modelos representan procesos y situaciones complejas, en función de los eventos que puedan ocurrir, por lo que pueden representar tanto situaciones clínicas (agudización de un proceso, descompensación patológica, aparición de una nueva situación clínica), como una determinada utilización de recursos sanitarios relacionados con dichas situaciones. Asimismo, las probabilidades de que ocurran cada uno de los eventos según se asocian con las características personales de los pacientes. Todos estos elementos, en conjunto, simulan la evolución natural de la enfermedad o proceso analizado, así como la historia de los pacientes cuya simulación se realiza en el modelo.
Por todo ello, y dado que en el mundo real es frecuente encontrarse con procesos y sistemas cuyo análisis, mediante métodos matemáticos, resulta extraordinariamente complejo o incluso imposible de llevar a cabo, el uso de MSED permite resolver problemas de esta índole. En tales circunstancias, la alternativa más eficaz para afrontar este tipo de estudios consiste en construir unos modelos lógico-matemáticos de forma que permitan imitar o simular el comportamiento del mundo real. Como resultado de repetir dicha simulación un número suficiente de veces, se obtendrá un histórico artificial de observaciones sobre el comportamiento del sistema o proceso. A partir de dichas observaciones, y utilizando técnicas de análisis estadístico, será posible extraer conclusiones sobre el funcionamiento de dicho sistema.
Etapas de los MSED.
El diseño, el desarrollo y el análisis de resultados de una simulación es un proceso sofisticado, que requiere del analista unos mínimos conocimientos sobre programación, matemáticas, estadística, gestión de proyectos y también sobre el propio sistema estudiado.
La principal característica de un sistema de eventos discretos es que el sistema está determinado por una secuencia de eventos que ocurren en momentos aleatorios de tiempo t1, t2... y el cambio de estado del sistema tiene lugar en esos instantes. Los pacientes son las entidades del sistema y los diferentes eventos serán las visitas y cambios de estado de salud (respuesta) desde un nivel basal al final, tras la toma de un tratamiento farmacológico que modificará la fisiología del paciente o la aplicación de una tecnología sanitaria.
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):
1. Formulación de la problemática y determinación de los objetivos: consiste en establecer de forma clara, cuál es el problema que se pretende abordar, qué objetivos globales se desean alcanzar y con qué recursos será necesario contar para lograrlos en el tiempo previsto.
2. Modelado del sistema: se trata de crear el diseño del sistema que permita su simulación por ordenador. El modelo deberá reflejar convenientemente la estructura interna del sistema y sus características, de modo que los resultados que se deriven sean extrapolables al sistema real. Por ejemplo, resultará fundamental modelar los fenómenos aleatorios del sistema mediante distribuciones estadísticas, como la interrupción del tratamiento, la hospitalización por urgencias u otro evento. Para llevar esto a cabo, sería interesante disponer de una serie histórica de observaciones sobre el comportamiento de dichos fenómenos aleatorios, como los resultados de un ensayo clínico, un meta análisis o un registro de pacientes.
3. Implementación del modelo en el ordenador. El modelo desarrollado desde el punto de vista teórico ha de ser implementado en el ordenador a través de algún software específico. Más adelante, se describen las principales características de cada una de las herramientas informáticas disponibles.
4. Verificación del programa: comprobación de la correcta implementación del modelo en el ordenador. Para ello, debemos comprobar que el programa resultante se comporta según lo deseado, es decir, que los resultados deben ser coherentes para las diversas combinaciones de variables de entrada (inputs) del modelo, y no ha habido ningún error sintáctico a la hora de programar las diferentes instrucciones.
5. Validación del modelo. Consiste en comprobar que el modelo refleja convenientemente el mundo real. Para ello, se procede a comparar, para distintas combinaciones de variables de entrada, los resultados que produce el modelo con los observables en el sistema real. En dicho proceso de validación es frecuente el uso de técnicas estadísticas que permitan comparar dos conjuntos de datos.
6. Diseño de la simulación y pruebas piloto. Una vez aceptado el modelo como válido, el siguiente paso es diseñar las características del experimento o experimentos de simulación que se van a llevar a cabo, es decir, responder a preguntas como cuál será el número de iteraciones, las variables de entrada empleadas, la conveniencia de usar técnicas de reducción de la varianza. Suele ser de gran utilidad la realización de pruebas piloto (simulaciones cortas) que proporcionen orientaciones sobre cómo conviene afrontar el estudio y calcular el número de réplicas necesarias.
7. Ejecución de la simulación. Se procede a llevar a cabo la simulación establecida en el paso anterior.
8. Análisis de resultados. Los resultados procedentes de un experimento de simulación suelen requerir un análisis estadístico no trivial que permita obtener información útil sobre el comportamiento analizado.
9. Documentación del experimento. Una vez finalizado el experimento, éste debe ser convenientemente documentado, de modo que se fomente su credibilidad y la validez de las conclusiones obtenidas.
Componentes de los modelos de simulación de eventos discretos (MSED)
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 tn, y que el evento n + 1 se producirá en el instante virtual tn+1, 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 tn+1, 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.
Atributos: 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 coste-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).
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 (ejemplo: 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 (ejemplo: 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 costes 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) y 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 coste 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 coste efectividad). Algunos ejemplos de acumuladores estadísticos son la supervivencia, los costes 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 coste 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 (ejemplo: la duración de los exámenes médicos), e implícitos, causados por otras acciones o condiciones en la simulación del modelo (ejemplo: colas para acceder a una prueba diagnóstica).
Ecuaciones de riesgo y generadores de números aleatorios: Las primeras se refieren a ecuaciones que se aplican de forma individual a cada individuo del modelo, y pueden ser: funciones (lineales, logarítmicas, de riesgo etc.) o distribuciones estadísticas de probabilidad (normal, exponencial, weibull, beta, gamma, etc.).
Los números aleatorios se generan mediante algoritmos computacionales avanzados para asegurar la aleatorización y crear el comportamiento estocástico del modelo, y se basan en variables pseudoaleatorias, creadas a través de un procedimiento determinístico.
En la mayoría de las simulaciones, los experimentos tienen por objetivo obtener valores medios de los resultados de sus distribuciones probabilísticas. Hay numerosos estudios sobre generación de números aleatorios y técnicas de simulación, así como de su optimización, que quedan fuera del abasto de este artículo10, 17-20.
Funcionamiento y software para su realización
Cómo funciona un MSED: El desarrollo del modelo comienza por la definición y creación de la población objetivo mediante la especificación de las características de los pacientes que serán simulados. Así, el modelo se alimenta con información proveniente de ensayos clínicos, evidencia publicada y otros estudios, a partir de los cuales el investigador puede generar una serie de algoritmos y caminos por los que el paciente puede transitar y que sirve para diseñar la historia de la enfermedad o proceso evaluado en el modelo.
Si estudiamos 2 alternativas de tratamiento excluyentes, los pacientes para los que estas terapias estén indicadas pueden someterse a una u otra intervención. La metodología que se sigue para evaluar ambas terapias es generar aleatoriamente unos valores de entrada de las variables que conforman el perfil clínico y sociodemográfico de los pacientes que se van a simular. Al inicio de la simulación se generan pares de individuos "gemelos", es decir, con los mismos valores, que acceden a cada una de las 2 estrategias de tratamiento comparadas en el modelo, de tal forma que la diferencia en el tratamiento que se les aplica a cada gemelo es la única distinción entre ellos a la entrada del modelo.
El esquema típico de simulación de un MSED se presenta en la figura. La simulación arranca con la puesta en marcha del reloj de simulación, tras lo cual se da la lectura de los diferentes valores iniciales, introducidos en él, como las características de la población, los detalles del manejo de los eventos y los costes en función del tratamiento asignado. Estos valores de entrada son almacenados y leídos por el modelo diseñado en el software de simulación empleado.
Figura. Motor de simulación de un modelo de simulación de eventos discretos.
A los pacientes creados se les asigna unas características basadas en las distribuciones de partida (ejemplo: sexo, edad, valores basales de entrada de incapacidad o enfermedad, etc.). En este punto, se estima la expectativa vital de cada individuo. La persona que realiza el análisis define el tamaño de la cohorte de pacientes que recibirá cada tratamiento (ejemplo: 1.000) y el número de réplicas (número de veces que toda la simulación será repetida).
Procedimientos de evaluación y análisis de los resultados de los MSED
El último paso es analizar los resultados obtenidos al ejecutar el modelo varias veces para poder inferir el efecto de la intervención evaluada. Una vez obtenidos los resultados al ejecutar el modelo, éstos se evalúan a través del análisis de sensibilidad.
Ejemplo de uso de MSED: Para ilustrar los modelos MSED, partiremos de un ejemplo en el que se evalúa un proceso de pacientes con enfermedad cardiovascular, que presentan bradicardia, para la cual estaría indicada la implantación de un marcapasos. Podríamos implantar 2 tipos diferentes de marcapasos: marcapasos de estimulación monocameral (sólo en ventrículo), o VVI(R), o bien un marcapasos de estimulación bicameral (estimulación auricular y ventricular), o DDD(R).
Los pacientes implantados pueden sufrir diferentes eventos cardiovasculares con el tiempo, como fibrilación auricular (FA) o accidente cerebrovascular (ACV), efectos adversos, como el síndrome del marcapasos, o incluso morir.
Dependiendo de la efectividad de los 2 tipos de marcapasos, estos eventos se podrían dar en diferente proporción de pacientes y tardarían más o menos tiempo en suceder, producirse en momentos diferentes o incluso coincidir en el tiempo; por ello, el uso de un modelo de Markov no es apropiado. Dichos eventos llevarán asociados una utilización de recursos, que implican costos y cambios en la evaluación clínica del paciente, e incluso valores de su calidad de vida, si ésta se ha incorporado en el análisis del estudio. Este proceso se resume en la figura.
Figura. Ejemplo del proceso de simulación en un modelo de eventos discretos en bradicardia.
Se simulan pacientes con una serie de características de entrada en el modelo: sociodemográficas (edad y sexo), factores de riesgo (presión arterial, diabetes, enfermedad vascular previa) y tipo de indicación para el marcapasos (bloqueo de rama, o enfermedad del nodo sinusal). Para cada uno de los pacientes simulados se genera un gemelo, el cual presenta las mismas características basales y sólo se diferencia en la intervención del modelo evaluado a la que es sometido (uno de los gemelos va por la ruta de implantación de marcapasos monocamerales y otro por la de bicamerales). Los pacientes transitarán por el modelo durante los eventos clínicos de estudio (FA, ACV, muerte, supervivencia libre de enfermedad, síndrome del marcapasos y otras complicaciones), así como los costes asociados a la utilización de recursos que suponen dicha diferencia de eventos (figura).
Ejemplo del motor del modelo de simulación de eventos discretos en pacientes con bradicardia, en el que se representa la lógica del MSED anteriormente expuesto.
Los datos clínicos que alimentan el modelo son: el registro británico de marcapasos, los ensayos clínicos MOST y CTOPP y el Framingham Herat Study. Se realizan 100 simulaciones de 1.000 pares de pacientes durante 5 años, los beneficios se descontaron al 1,5% anual y los costes al 6%, tal como aconseja el NICE.
El resultado del modelo indica que supone un coste adicional medio en los pacientes implantados con marcapasos bicamerales de 43 libras por paciente, y un incremento de 0,09 AVAC, con un cociente coste/efectividad incremental de 477 libras por AVAC; estos resultados son consistentes durante el análisis de sensibilidad realizado.
Software en simulación de modelos de eventos discretos: Aunque la programación de este tipo de modelos puede hacerse a través de hojas de cálculo como Excel, ésta sólo se usa para modelos muy simplificados. Para modelos más complejos se utilizan paquetes de software específicos. Por ello, una de las primeras decisiones importantes consiste en seleccionar qué tipo de software se utilizará. Las opciones posibles son básicamente dos:
1. Usar un lenguaje de programación (C/C++, Pascal, Java, Visual Basic, etc.). Esta opción implica, en principio, tener que modelar todos los detalles del sistema, lo cual a su vez supone un elevado coste respecto al tiempo de desarrollo del proyecto. Hay que tener presente, sin embargo, que en los últimos años se han desarrollado librerías de funciones y clases de objetos para C/C++, Pascal, Java e incluso VB.Net, que permiten agilizar este proceso de modelado. Por otra parte, al optar por un lenguaje de programación general, se dispone de una mayor flexibilidad a la hora de construir el modelo y, además, el código resultante puede ser muy eficiente y rápido de ejecutar (especialmente cuando se usa C/C++).
2. Usar programas de simulación (lenguajes de simulación y simuladores) de ámbito genérico (Arena, SIMSCRIPT II.5, AweSim, SIMPLE++, Extend, GPSS/H, Micro Saint, MODSIM III, LeanSim, SIGMA, Simul 8). Esta opción puede acortar significativamente el tiempo requerido para desarrollar el proyecto, puesto que no será necesario desarrollar desde cero todos los detalles de la simulación: este tipo de programas suele incluir un lenguaje de programación especialmente orientado a la simulación, así como librerías de clases, objetos o funciones que agilizan el modelado del sistema, la obtención de valores aleatorios, la generación de informes, el análisis estadístico de resultados, etc. A cambio de ello, se prescinde de un cierto grado de flexibilidad con respecto a la opción anterior.
Ventajas e inconvenientes de la simulación de eventos discretos
Ventajas del uso de MSED: Los MSED tienen ventajas muy significativas, por ejemplo, con respecto a la población de estudio, ya que facilitan el diseño de la población, teniendo en cuenta las características fundamentales que la definen: perfiles de riesgo, indicaciones y contraindicaciones de las terapias, flexibilidad en la asignación de los costes a cada una, asignación de valores de calidad de vida y utilidades según las características de cada paciente. Además, tienen capacidad de manejar la población de una manera dinámica y vinculada a los eventos que realmente suceden en la historia natural de la enfermedad en cada paciente.
Los MSED permiten diseñar una estructura más clara, de forma que los eventos a los que se someten los pacientes, así como sus consecuencias, son más explícitos, y en el que las alternativas, a través de las que los pacientes discurren, suelen representarse de una forma más transparente. Además, la estructura del modelo se puede cambiar fácilmente, lo que permite un análisis de sensibilidad estructural.
Otra ventaja importante de los MSED es la variable tiempo, ya que en este caso se considera de forma explícita en el diseño del modelo, y no se restringe a ciclos fijos e invariables, de modo que las unidades que se manejan son adecuadas al problema o evento que se analiza en cada momento. Además, los MSED permiten el uso de diferentes tiempos, en función de los eventos que vayan a suceder y en los momentos que se vayan a producir.
Respecto a los resultados, los MSED permiten contemplar resultados múltiples, lo que se adecua más a la realidad, puesto que realmente una enfermedad o situación evaluada mediante técnica de modelado puede tener diferentes puntos finales que han de considerarse de forma simultánea a la hora de evaluar el resultado global de las intervenciones. Esto se realiza de una manera mucho más sencilla y natural con este tipo de modelos, dado que manejan de forma desagregada los costes y los recursos utilizados, producen diferentes medidas de eficacia, como el tiempo libre de enfermedad, la recuperación y la salida del hospital, el cambio de clase funcional o la ausencia de episodios. Además, informan sobre los resultados intermedios en los diferentes momentos de definidos en la simulación (a los 6 meses de tratamiento, al año, a la aparición de complicaciones o muerte), y ofrecen simultáneamente resultados desde varias perspectivas (comprador, sistema sanitario, sociedad), sin necesidad de volver a ejecutar el modelo.
Asimismo, los MSED permiten un estudio más realista de los tratamientos evaluados: cambios de dosis, comienzo y monitorización, prueba de dosis o período de lavado farmacológico previo a un cambio de tratamiento. También es posible, mediante algunos programas de simulación avanzada, animar el modelo, lo cual permite visualizarlo de una forma clara mejorando su transparencia.
Inconvenientes de los MSED: En general, el uso de los MSED conlleva también una serie de limitaciones. Por un lado, requieren mayor cantidad de datos y pueden necesitar un mayor tiempo de ejecución que los modelos de Markov, si no disponemos de simuladores de alto rendimiento. El análisis de sensibilidad empleado suele ser multivariante, lo cual aumenta todavía más el tiempo de cálculo.
Otra limitación es el escaso acceso al software necesario para programar este tipo de modelos, o bien la falta de un entrenamiento adecuado de sus usuarios, especialmente en el caso de simuladores complejos, como Arena o LeanSim. Su programación también suele ser costosa con respecto al tiempo necesario para su implementación. Aunque es posible implementar este tipo de modelos por medio de programas como Excel, programando macros en Visual Basic para Aplicaciones (VBA). Es poco usual realizarlo a través de esta plataforma, ya que tiene ciertas limitaciones importantes, como por ejemplo el motor de generación de números seudoaleatorios no es suficientemente bueno desde el punto de vista estadístico o la velocidad de ejecución del código VBA es relativamente baja.
Sistemas, Modelos y Control.
Existen tres tipos de modelos, los cuales se mencionan a continuación:
Modelo teórico: basado en datos estadísticos.
Modelo conceptual: basado en cuestionarios e investigaciones de campo.
Modelo sistemático: es una representación total.
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):
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.
2.- 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.
3.- 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.
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 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).
Por modelo entendemos la representación de un sistema, desarrollado con el propósito de estudiar dicho sistema.
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.
Clasificación de los modelos.
Nos vamos a centrar en los modelos matemáticos y su estudio por medio de simulación. Los modelos se pueden clasificar en:
Estáticos frente a Dinámicos: Un modelo estático es una representación de un sistema en un punto particular del tiempo, o uno que representa un sistema en el cual el tiempo no juega ningún papel; ejemplos de simulaciones estáticas son los modelos Montecarlo. De otro lado, los modelos dinámicos representan sistemas que evolucionan con el tiempo.
Determinísticos frente a Probabilísticos: Si un modelo no contiene 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).
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.
Etapas de un Proyecto de simulación.
Formulación del problema
Aunque se van a presentar una serie de pasos de forma secuencial, realmente es un proceso iterativo, tal y como se muestra en la figura:
En la 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:
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).
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.
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.
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.
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.
Análisis y recolección de datos
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 costo 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:
Determiní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.
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.
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.
En el ejemplo del supermercado, si se sigue la primera aproximación, hay dos posibilidades para la traza de entidades: clientes y cajas. Sin embargo los clientes son el interés principal, mientras que las cajas tienen una importancia secundaria. Comienza la traza de un cliente cuando éste se aproxima a la caja. En este instante el cliente decide en qué cola se situará, basándose en algo como en elegir la más corta. Esta decisión determina la ruta que va a seguir por el sistema. El cliente queda esperando en la cola hasta que sea atendido (hasta que se le asigne el elemento cajero). Aquí ocurren tres procesos: se hace la cuenta de los productos comprados, se paga por ellos, se embolsan. Entonces, el cliente abandona el sistema. En la Figura se muestra el diagrama de flujo.
En la segunda aproximación, se pueden considerar como variables de estado el número de clientes en cola o el número de clientes que están siendo servidos actualmente.
Tales variables se pueden utilizar para calcular medidas de comportamiento, tales como el tiempo de espera de los clientes. Cuando un cliente llega a una de las colas en el supermercado, el estado varía ya que se ve alterado el número de clientes en dicha cola, con lo que la llegada se considera un evento.
Se puede describir completamente el comportamiento del sistema incorporando al modelo la capacidad de modificar las variables de estado conforme van ocurriendo los eventos. Para el ejemplo del supermercado la atención se puede fijar en una caja particular, pues la operación es idéntica en todas.
La principal variable de estado es el número de clientes en el supermercado y el número de clientes en cada una de las colas.
Otras variables de estado son las que indican los estados de los cajeros y empaquetadores, si el están ocupados o no. Algunos eventos que cambian el estado del sistema, y por tanto las variables de estado, son una llegada al sistema, la selección de una cola y el añadirse a ella, salida del sistema una vez que ha pagado los productos.
Ej.: Suponemos una sola caja en el supermercado
Variables de estado:
Número de consumidores en el sistema (N).
Número de consumidores en cola (M).
Sucesos:
Llegada de un consumidor a la cola.
Consumidor empieza a ser servido.
Consumidor sale de caja.
Cambios provocados en las variables por estos sucesos:
Suceso 1: N N+1, M M+1
Suceso 2: NN, M M-1
Suceso 3: NN-1, MM
Construcción del modelo
Las tareas principales en la construcción de un modelo son:
1. Elección del Mecanismo de avance de tiempo (visto anteriormente)
2. 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.
3. 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.
4. 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.
Verificación y validación
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.
Experimentación y optimización
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.
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 optimilidad 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 (Figura).
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.
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 iniciales (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.
Experimentación de resultados
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.
Bibliografía consultada.
Fuente:
Barrera Sanabria, Gareth. Universidad Autónoma de Bucaramanga. http://fis.unab.edu.co/docentes/gbarrera/Introduccion_Simulacion.pdf
Torres, Armando. Instituto Tecnológico de Sonora. www.itson.mx/dii/atorres/Introd.doc
Enciclopedia de contenido libre WIKIPEDIA. http://es.wikipedia.org/wiki/Simulaci%C3%B3n_por_eventos_discretos
Rodríguez, José. Serrano, David. Monleón, Tony. Caro, Jaime. Gaceta Sanitari. Barcelona 2008.
http://scielo.isciii.es/scielo.php?pid=S021391112008000200012&script=sci_arttext