Introducción a la Simulación de eventos discretos

66
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

Transcript of Introducción a la Simulación de eventos discretos

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.

1.1. Introducción

Las primeras referencias sobre simulación seencuentran hacia el año 1940, cuando Von Neumann y Ullmantrabajaron sobre la simulación del flujo de neutronespara la construcción de la bomba atómica en el proyecto“Montecarlo”. Desde entonces se conocían las técnicas desimulación como procesos Montecarlo, aunque en laactualidad se diferencian ambas cosas, siendo lossegundos un tipo particular de simulación. También serealizó un proceso de simulación para el proyecto APOLLOdentro del plan espacial de la N.A.S.A, acerca delmovimiento dentro de la atmósfera de la luna.

Actualmente, la simulación es una poderosa técnicapara la resolución de problemas. Sus orígenes están en lateoría de muestreo estadístico y análisis de sistemasfísicos probabilísticas complejos. El aspecto común deambos es el uso de números y muestras aleatorias paraaproximar soluciones.

Una de las más famosas aplicaciones de muestrasaleatorias, ocurre durante la segunda guerra mundial,cuando la simulación se utilizó para estudiar el flujo deneutrones dentro del desarrollo de la bomba atómica. Estainvestigación era secreta y le dieron un nombre encódigo: Montecarlo. Este nombre se mantiene, y durantemucho tiempo se usaba para hacer referencia a algunosesfuerzos en simulación. Pero el término métodos

Montecarlo, se refiere actualmente a una rama de lasmatemáticas experimentales que trata con experimentos denúmeros aleatorios, mientras que el término simulación, osimulación de sistemas, cubre una técnica de análisis máspráctico.

Vamos a ver técnicas que utilizan los computadorespara imitar, o simular, el comportamiento de sistemas delmundo real. Para estudiar científicamente estos sistemas,a menudo se han de hacer una serie de suposiciones acercade cómo trabaja éste. Estas suposiciones que usualmentetoman la forma de relaciones matemáticas o lógicas,constituyen un modelo que va a ser usado para intentarcomprender el comportamiento del sistema correspondiente.

Si las relaciones que componen el modelo sonsuficientemente simples, es posible usar métodosmatemáticos (tales como álgebra, cálculo o teoría de laprobabilidad) para obtener una información exacta de lascuestiones de interés; a esto se le llama soluciónanalítica. Sin embargo, la mayoría de los sistemas delmundo real son demasiado complejos y normalmente losmodelos realistas de los mismos, no pueden evaluarseanalíticamente. Lo que se puede hacer es estudiar dichosmodelos mediante simulación. En una simulación se utilizael ordenador para experimentar con un modelonuméricamente, de forma que con los resultados obtenidosse haga una estimación de las características delsistema.

1.2. Definiciones y Aplicaciones

Para comprender mejor la simulación es necesarioestudiar a fondo sus conceptos y definiciones, por estemotivo se presentan los siguientes conceptos:

Enfoque de sistemas: El enfoque de sistemas estableceque "el mundo y cualquiera de sus partes puedevisualizarse como un conjunto de sistemas eninteracción dinámica". Es un punto de vista, unaforma de pensar, que en la confrontación de unasituación problemática, busca no ser reduccionista.Es decir visualizar la situación desde un punto endonde se consideren todos los elementos queintervienen en un problema.

Sistema: Se entiende una colección de entidadesrelacionadas, cada una de las cuales se caracterizapor atributos o características que pueden estarrelacionados entre sí. Los objetivos que se persiguenal estudiar uno o varios fenómenos en función de unsistema son aprender cómo cambian los estados,predecir el cambio y controlarlo.

Todo sistema consta de tres características. Tienenfronteras, existe dentro de un medio ambiente y tienesubsistemas. El medio ambiente es el conjunto decircunstancias dentro de las cuales está una situaciónproblemática, mientras que las fronteras distinguen lasentidades dentro de un sistema de las entidades queconstituyen su medio ambiente. Por lo tanto podemosdefinir a un sistema como: “una estructura dinámica depersonas, objetos y procedimientos organizados para elpropósito de lograr ciertas funciones".

El conjunto de elementos que forman un sistema tienelas siguientes tres propiedades:

Las propiedades o el comportamiento de cada elementodel conjunto tienen un efecto en las propiedades o elcomportamiento del conjunto como un todo.

Las propiedades y comportamiento de cada elemento yla forma en que se afectan al todo, dependen de laspropiedades y comportamiento al menos de otroelemento en el conjunto. En consecuencia, no hayparte alguna que tenga un efecto independiente en eltodo y cada una está afectada al menos por algunaotra.

Cada subgrupo posible de elementos del conjuntotienen las dos primeras propiedades: cada uno tieneefecto no interdependiente en el total. Enconsecuencia no se puede descomponer el total ensubconjuntos independientes. No se puede subdividirun sistema en subsistemas independientes.

Entidad: Una entidad es algo que tiene realidad físicau objetiva y distinción de ser o de carácter. Lasentidades tienen ciertas propiedades que lasdistinguen a unas de otras.

Relación: Es la manera en la cual dos o más entidadesdependen entre sí. Relación es la unión que hay entrelas propiedades de una o más entidades; porconsiguiente, el cambio en alguna propiedad de unaentidad ocasiona un cambio en una propiedad de otraentidad.

Estructura: Es un conjunto de relaciones entre lasentidades en la que cada entidad tiene una posición,en relación a las otras, dentro del sistema como untodo.

Estado: El estado de un sistema en un momento deltiempo, es el conjunto de propiedades relevantes queel sistema tiene en este momento. Cuando se habla delestado de un sistema, se entiendes los valores de losatributos de sus entidades. Analizar un sistemasupone estudiar sus cambios de estado conformetranscurre el tiempo.

Jerarquía De Sistemas:

Subsistemas: Un subsistema es "Un elemento ocomponente funcional de un sistema mayor que tienelas condiciones de un sistema en sí mismo, pero quetambién tiene un papel en la operación de un sistemamayor”

Suprasistema: El suprasistema es un sistema mayor acuya función global el sistema está contribuyendo ydel cual forma parte.

Frontera: La frontera de un sistema representa ellímite de acción en donde tiene autoridad la personaque toma decisiones en ese sistema. La fronteradelimita 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 delsistema en la cual parte de las relaciones, aquellasque no son relevantes al aspecto del sistema que seestá estudiando, son eliminadas.

Sistema en Simulación: Colección de entradas que pasan através de las fases de cierto proceso, produciendorespuestas. Por ejemplo:

MATERIA PRIMAPRESUPUESTOINFORMACIÓN

FACILIDADESSISTEMA DE

TRANSFORMACIÓN(distribución y asignación)

PRODUCTOTERMINADO

SISTEMA DE MANUFACTURAENTRADA PROCESO SALIDA EVALUACIÓN

1. EFICIENCIA2. COSTOS DE TRANSFORMACIÓN3.INVENTARIO EN PROCESO4.TIEMPO DE PROCESO5.PRODUCCIÓN/HORA6.AREA OCUPADA

CLIENTES

SISTEMA DE SERVICIO:SERVIDORES

DISCIPLINA DEL SERVICIOESPACIO DISPONIBLE

CLIENTE SATISFECHO

SISTEMA DE SERVICIOENTRADA PROCESO SALIDA EVALUACIÓN

1. COSTO DEL SISTEMA2. TIEMPO EN LA COLA 3.TIEMPO EN EL SISTEMA4.LONGITUD DE COLA5. OCUPACIÓN DE LOS SERVIDORES

Simulación es una técnica numérica para conducirexperimentos en una computadora digital. Estosexperimentos comprenden ciertos tipos de relacionesmatemáticas y lógicas, las cuales son necesarias para

describir el comportamiento y la estructura de sistemascomplejos del mundo real a través de largos periodos detiempo. (THOMAS H. NAYLOR)

Simulación es el desarrollo de un modelo lógicomatemático de un sistema, de tal forma que se tiene unaimitación de la operación de un proceso de la vida realo de un sistema a través del tiempo. La simulacióninvolucra la generación de una historia artificial de unsistema, la observación de esta historia mediante lamanipulación experimental, nos ayuda a inferir lascaracterísticas operacionales de tal sistema. (JERRYBANKS)

Simulación es una técnica numérica para realizarexperimentos en una computadora digital. Estosexperimentos involucran ciertos tipos de modelosmatemáticos y lógicos que describen el comportamiento desistemas 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 unmodelo de un sistema o proceso real y conducirexperimentos con el propósito de entender elcomportamiento del sistema o evaluar varias estrategias(dentro de límites impuestos por un criterio o conjuntode criterios) para la operación del sistema. (ROBERT.SHANNON)

Modelo: Es una representación de un objeto, sistema oidea, 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 objetopuede ser una réplica exacta de éste o unaabstracción de las propiedades dominantes del objeto.

Estructura de los modelos de simulación:

Los componentes son las partes constituyentes delsistema. También se les denomina elementos osubsistemas.

Las variables son aquellos valores que cambian dentrode la simulación y forman parte de funciones delmodelo o de una función objetivo.

Los parámetros son cantidades a las cuales se lesasignar valores, una vez establecidos los parámetros,son constantes y no varían dentro de la simulación.

Las relaciones funcionales muestran el comportamiento delas variables y parámetros dentro de un componente oentre componentes de un sistema. Estascaracterísticas operativas pueden ser de naturalezadeterminística o estocástica. Las relacionesdeterminísticas son identidades o definiciones querelacionan ciertas variables o parámetros, donde unasalida de proceso es singularmente determinada poruna entrada dada. Las relaciones estocásticas sonaquellas en las que el proceso tiene de maneracaracterística una salida indefinida para una entradadeterminada.

Las restricciones son limitaciones impuestas a losvalores de las variables o la manera en la cual losrecursos pueden asignarse o consumirse.

En las funciones de objetivos se definen explícitamentelos objetivos del sistema y cómo se evaluarán, es unamedida de la eficiencia del sistema.

Tiempo de simulación: Es el valor del tiempo que elsimulador puede avanzar a una velocidad superior a lahabitual de un reloj común, evolucionando así elestado de un sistema de forma acelerada.

Evento: Es un suceso que hace cambiar las variables deestado del sistema. Durante el procesamiento de unevento el tiempo de simulación permanece fijo. Unevento pertenece a una entidad, o actor en elsistema, y normalmente solo cambiara atributos deesta, dejando invariante el resto del sistema.

Actividad: Secuencia de eventos pertenecientes a unaentidad que cierran un ciclo funcional. A diferenciade un evento, que se ejecuta a tiempo de simulaciónconstante, una actividad se desarrolla dentro de unintervalo de tiempo de simulación no puntual.

Simulación en tiempo acelerado: Se da cuando el avance deltiempo de simulación es mayor de un segundo por cadasegundo de tiempo real.

Simulación en tiempo real: Se da cuando el avance deltiempo de simulación es exactamente de un segundo porcada 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 unmodelo, cuando la experimentación directa sobre elsistema real es muy costosa o imposible; la otra esla del diseño de un nuevo sistema, así el modelopuede ir modificándose fácilmente hasta obtener elcomportamiento deseado.

Predicción: El modelo se puede usar para predecir elcomportamiento del objeto real bajo ciertosestímulos. Se puede hacer así una evaluación dediferentes estrategias de acción.

Enseñanza y “training”: así se puede utilizar para eladiestramiento de astronautas, en los juegos denegocios, etc.

Las áreas de aplicación de la simulación son diversasy muy numerosas. Debajo hay un listado de algunas clasesde problemas para los que la simulación constituye unapoderosa 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 deinventario.

Diseños de sistemas de comunicación y protocolos demensajes para ellos.

Diseño y operación de sistemas de transporte talescomo autopistas, aeropuertos, puertos, ferrocarriles,etc.

Evaluación de diferentes diseños para organizacionesde servicios tales como hospitales, oficinas decorreos, restaurantes de comida rápida, etc.

Análisis financieros o sistemas económicos.

Análisis medioambientales.

Aunque la simulación está ampliamente utilizadatambién presenta una serie de problemas. Por un lado, losmodelos usados para estudiar sistemas de larga escala detiempo suelen ser muy complicados y además necesitanutilizar muchos recursos de computación, aunque en laactualidad y gracias al desarrollo de paquetes softwareque ofrecen automáticamente muchas de las característicasnecesarias para codificar los modelos y al abaratamientodel costo de computación, estos inconvenientes estándisminuyendo.

1.3. Estructura y características de lasimulación de eventos discretos.

También conocida como simulación de tiempo continúolo cual quiere decir que una vez iniciado la simulaciónno se detendrá hasta verla terminado, esta técnica estáapoyada en su totalidad de software especializados talescomo arena, Promodel, GPSS, entre otros.

Sus principales características son:

1.- Están basadas en su totalidad por actividades lógicasy matemáticas.

2.- El modelo va cambiando parcialmente conformeocurren los eventos.

3.- El sistema solo cambia cuando ocurre un evento estoscambios se van registrando para poder comprender elcomportamiento del modelo.

4.- Cuando un evento se realiza el tiempo de lasimulación avanza.

5.- La lista de eventos pendientes va reduciéndoseconforme los eventos se van realizando

6.- La ejecución de un evento puede generar nuevoseventos.

7.- Una simulación tiene que poder ser repetidamú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 quees lo que buscamos y que es lo que necesitamos deeste modo podemos generar una simulación más adecuadaa lo que nosotros necesitamos.

Formulación del modelo: Es la creación teórica de unposible modelo que ya hemos delimitado eidentificado todas sus variables que pueden afectarel resultado. Esto es teórico que nos ayudara aintroducir el modelo al software.

Recolección de datos: Es el proceso de estudiar elsistema he identificar las variables de este. Una vezidentificadas estas variables se tiene que tomar unregistro de ellas generando datos históricos queestadísticamente podrían predecir el comportamientodel sistema. E ahí la importancia de los datos.

Implementar el modelo en el programa de computadora: En estepaso solo es diseñar una solución a nuestroproblema e introducirla a un software especializado,para que este programa basado en herramientasmatemáticas y estadísticas pueda generar losresultados de un modelo que más se asemejan a larealidad y que es probable que ocurra.

Verificar el modelo: Es la comprobación de que nuestrosimulador está bien hecho, tomando en cuenta a todasnuestras variables y por lo tanto comprobaremosque los resultados obtenidos son los que deseamos.

Validar el sistema: Esto no es más que la aprobación delmodelo puesto que ya comprobamos que está biendiseñado y que cubre nuestras necesidades y estálisto para usarse.

Experimentar: Esto implica correr varias veces elprograma para comparar los resultados y embace aestos crear nuestra estrategia que solucionenuestros problemas de la forma más eficiente.

Interpretar los datos arrojados por el programa: No es más quela evaluación de los pros y los contras que generaese modelo y basándose en estos datos interpretar siese sistema es eficiente y factible o definitivamentehay que intentarlo con otros modelos.

Documentar: Es plasmar nuestro modelo ya comprobado ybien definido para poderlo presentar ante losinteresados, capacitarlos y adaptarlos para aplicareste 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 procesoscuyo estado va cambiando con el tiempo de forma discreta,por lo que permiten conceptualizar el curso de unaenfermedad y su manejo en términos de los eventos quepueden suceder durante el modelado, y cuyo impacto afectatanto a los pacientes como a otros componentes delsistema (p. ej., el uso de recursos).

Estos modelos representan procesos y situacionescomplejas, 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 sanitariosrelacionados con dichas situaciones. Asimismo, lasprobabilidades de que ocurran cada uno de los eventossegún se asocian con las características personales delos pacientes. Todos estos elementos, en conjunto,simulan la evolución natural de la enfermedad o procesoanalizado, así como la historia de los pacientes cuyasimulación se realiza en el modelo.

Por todo ello, y dado que en el mundo real esfrecuente encontrarse con procesos y sistemas cuyoanálisis, mediante métodos matemáticos, resultaextraordinariamente complejo o incluso imposible dellevar a cabo, el uso de MSED permite resolver problemasde esta índole. En tales circunstancias, la alternativamás eficaz para afrontar este tipo de estudios consisteen construir unos modelos lógico-matemáticos de forma quepermitan imitar o simular el comportamiento del mundoreal. Como resultado de repetir dicha simulación unnúmero suficiente de veces, se obtendrá un históricoartificial de observaciones sobre el comportamiento delsistema o proceso. A partir de dichas observaciones, yutilizando técnicas de análisis estadístico, será posibleextraer conclusiones sobre el funcionamiento de dichosistema.

Etapas de los MSED.

El diseño, el desarrollo y el análisis de resultadosde una simulación es un proceso sofisticado, que requieredel analista unos mínimos conocimientos sobre

programación, matemáticas, estadística, gestión deproyectos y también sobre el propio sistema estudiado.

La principal característica de un sistema de eventosdiscretos es que el sistema está determinado por unasecuencia de eventos que ocurren en momentos aleatoriosde tiempo t1, t2... y el cambio de estado del sistematiene lugar en esos instantes. Los pacientes son lasentidades del sistema y los diferentes eventos serán lasvisitas y cambios de estado de salud (respuesta) desde unnivel basal al final, tras la toma de un tratamientofarmacológico que modificará la fisiología del paciente ola aplicación de una tecnología sanitaria.

Cuando se escribe un programa de simulación para MSEDse puede realizar una aproximación del esquema temporalde funcionamiento de las entidades en el sistema. Así,deberá describirse la secuencia de eventos y actividadesque realizarán las entidades durante su estancia en elsistema y cómo se modificarán. Algunos de los sistemasmás estudiados son los problemas de colas que se aplicanen determinadas situaciones, como la espera que debentener los pacientes entre visita y visita, si los centrosdonde son tratados no pueden absorber toda su demanda (p.ej., en un centro e instante de tiempo sólo puede sertratado un paciente a la vez).

A modo de resumen, para llevar a cabo la simulacióndel sistema se deben seguir una serie de etapas,ampliamente identificadas y discutidas en la literaturacientífica (Figura):

1. Formulación de la problemática y determinación de losobjetivos: consiste en establecer de forma clara, cuál esel problema que se pretende abordar, qué objetivosglobales 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 delsistema que permita su simulación por ordenador. Elmodelo deberá reflejar convenientemente la estructurainterna del sistema y sus características, de modo quelos resultados que se deriven sean extrapolables alsistema real. Por ejemplo, resultará fundamental modelarlos fenómenos aleatorios del sistema mediante

distribuciones estadísticas, como la interrupción deltratamiento, la hospitalización por urgencias u otroevento. Para llevar esto a cabo, sería interesantedisponer de una serie histórica de observaciones sobre elcomportamiento de dichos fenómenos aleatorios, como losresultados de un ensayo clínico, un meta análisis o unregistro de pacientes.

3. Implementación del modelo en el ordenador. El modelodesarrollado desde el punto de vista teórico ha de serimplementado en el ordenador a través dealgún software específico. Más adelante, se describen lasprincipales características de cada una de lasherramientas informáticas disponibles.

4. Verificación del programa: comprobación de la correctaimplementación del modelo en el ordenador. Para ello,debemos comprobar que el programa resultante se comportasegún lo deseado, es decir, que los resultados deben sercoherentes para las diversas combinaciones de variablesde entrada (inputs) del modelo, y no ha habido ningúnerror sintáctico a la hora de programar las diferentesinstrucciones.

5. Validación del modelo. Consiste en comprobar que elmodelo refleja convenientemente el mundo real. Para ello,se procede a comparar, para distintas combinaciones devariables de entrada, los resultados que produce elmodelo con los observables en el sistema real. En dichoproceso de validación es frecuente el uso de técnicasestadísticas que permitan comparar dos conjuntos dedatos.

6. Diseño de la simulación y pruebas piloto. Una vezaceptado el modelo como válido, el siguiente paso esdiseñar las características del experimento oexperimentos de simulación que se van a llevar a cabo, esdecir, responder a preguntas como cuál será el número deiteraciones, las variables de entrada empleadas, laconveniencia de usar técnicas de reducción de lavarianza. Suele ser de gran utilidad la realización depruebas piloto (simulaciones cortas) que proporcionenorientaciones sobre cómo conviene afrontar el estudio ycalcular el número de réplicas necesarias.

7. Ejecución de la simulación. Se procede a llevar a cabola simulación establecida en el paso anterior.

8. Análisis de resultados. Los resultados procedentes deun experimento de simulación suelen requerir un análisisestadístico no trivial que permita obtener informaciónútil sobre el comportamiento analizado.

9. Documentación del experimento. Una vez finalizado elexperimento, éste debe ser convenientemente documentado,de modo que se fomente su credibilidad y la validez delas conclusiones obtenidas.

Componentes de los modelos de simulación de eventosdiscretos (MSED)

Reloj de simulación: Puesto que en este tipo de simulaciónse está considerando la evolución temporal del sistema,cuyo estado se modifica sólo en instantes discretos detiempo 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 puestaen marcha del sistema, y que permita referenciar elinstante exacto en que ocurre cada uno de los eventos. Esimportante no confundir el tiempo virtual que marca elreloj de simulación con el tiempo de computación, el cualregistra el tiempo real transcurrido desde que lasimulación se puso en marcha.

El tiempo marcado por el reloj de simulación haceexplícito el paso del tiempo a lo largo del modelo. Estohace posible señalar el comienzo y el final de lasimulación, y la aparición de eventos clínicos en sumomento exacto, sin necesidad de ciclos de duración fija.Esto permite una simulación más eficiente y realista enfunción de la aparición de los eventos durante el cursode la enfermedad en los pacientes.

También permite la creación de relojes secundarios quemarcan tiempos importantes, como la estanciahospitalaria, el tiempo de ausencia de efectos adversos ola supervivencia.

Puesto que los cambios en el sistema se producen sólocuando ocurre algún evento, queda claro que el estado delsistema no sufrirá ninguna variación entre 2 eventosconsecutivos. Este hecho da sentido a una de laspolíticas más habituales para controlar el reloj desimulación: si se sabe que el evento n se acaba deproducir en el instante virtual actual tn, y que elevento 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 instantetn+1, y se asignará dicho instante a la variable del

programa que representa el reloj de simulación. Trasavanzar el reloj hasta el instante tn+1, se lleva a cabola actualización de las variables de estado yestadísticas del sistema. Este proceso de «avance hastael siguiente evento y actualización de variables» serepite de forma indefinida hasta que se verifique algunacondición de fin de la simulación.

Entidades: Son los elementos dinámicos que se simulan através del modelo, cambian de estatus, afectan y sonafectados por otras entidades y son los protagonistas delos eventos clínicos de estudio del modelo.

Normalmente, en la simulación de una enfermedad serepresentan pacientes, pero pueden representarse tambiéndistintos componentes, como enfermeras, familiares omédicos. Estas entidades suponen una diferenciaimportante respecto a los árboles de decisión o a losmodelos de Markov, en los cuales se especifican losresultados clínicos, estados o transiciones de lospacientes, pero éstos en sí no son caracterizados comoelementos explícitos del modelo, tal como ocurre en losMSED.

Atributos: Son las características de las entidades, conlas cuales se describen y diferencian. Por ejemplo, sonatributos de los pacientes, como la edad, el sexo, laduración de su enfermedad, la gravedad de ésta y elcumplimiento del tratamiento.

Un atributo importante en las evaluaciones económicas,fundamental en los estudios de coste-utilidad, sería lacalidad de vida. Ésta se puede estudiar de formadetallada incluyéndola mediante un atributo.

Todas las entidades tienen los mismos tipos deatributos, pero con diferentes valores para cada entidad;los valores de los atributos están, por tanto, ligados auna entidad concreta. Por ejemplo, todos los pacientestienen “edad” o “presión arterial”, pero cada uno poseeun valor específico. El atributo puede asignarse como unvalor específico, una muestra de una distribución o elresultado de una expresión (p. ej., de una ecuacióncondicional).

Eventos: Es todo aquello que puede ocurrir durante lasimulación en función del proceso que estamos estudiando.Por ejemplo, un evento puede ser un efecto adverso, unaadmisión hospitalaria, el alta del hospital, un cambio dedosis o una baja laboral. El concepto de evento va másallá de las transiciones de los modelos de Markov, ya quela aparición de un evento no necesariamente implica elcambio de estado de salud del paciente (ejemplo: unavisita al médico).

A pesar de que hay una secuencia temporal dada, loseventos pueden suceder de forma casi simultánea y puedenhacerlo en cualquier secuencia lógica en relación con lahistoria plausible del proceso de estudio (ejemplo: falloen un órgano diana o fallo multiorgánico en un pacientecon sepsis). Al contrario que en los modelos de Markov,

estos eventos no presentan ningún tipo de restricción dememoria.

Los riesgos de que los diferentes eventos ocurranpueden tomar la forma de funciones dependientes de losdatos y depender de algunos atributos y variables. Estasfunciones pueden cambiar durante la simulación.

Variables: Las variables definen el modelo y reflejanuna característica del conjunto, no de entidadesespecíficas. Son especificaciones que se mantienen a lolargo del modelo, aunque sus valores pueden cambiardurante el proceso de simulación, y van a definir elentorno de la simulación afectándolo a lo largo de todoel proceso. Las variables de uso común son: el horizontetemporal (duración de la simulación), las tasas dedescuento para los costes y los beneficios, las tasas deincidencia, la proporción de cada tratamiento al inicio,la tasa de admisión o la perspectiva de uso. Sólo hay unacopia de cada variable que se mantiene para todo elmodelo.

Recursos: Definidos en un tiempo determinado, suconsumo lleva asociado el gasto de una serie de unidadesde dichos recursos en momentos de tiempo concretos. En elámbito sanitario estos recursos se pueden dividir enpersonas (médicos, enfermeras, cuidadores), bienes(medicamentos, pruebas de laboratorio), espacios (camashospitalarias, quirófanos) y otros.

Algunos recursos pueden consumirse de manerasimultánea en un momento dado, pero lo más frecuente esque las entidades tengan que competir por estos recursos,que además tienen un coste unitario de uso.

Un recurso puede tener diferentes unidades decapacidad (pensemos, por ejemplo, en las camas en unasala de emergencia o en el número de médicos en una zonageográfica determinada).

Acumuladores estadísticos: Son variables que acumulan lainformación de lo que ha pasado sin participar en elsuceso mismo, es decir, son pasivos. Dependen de lacaracterización de los resultados pedidos al modelo. Alfinal de la simulación, se usan para obtener el resultadofinal, y las medidas de éstos (cocientes costeefectividad). Algunos ejemplos de acumuladoresestadísticos son la supervivencia, los costes asociados alos pacientes o el número de visitas en un tiempodeterminado.

Colas: Cuando un paciente utiliza un determinadorecurso, éste deja de estar disponible para el resto delos pacientes, lo cual puede generar colas en el sistema.Esta situación no suele tenerse en cuenta en otro tipo demodelos, en los que los recursos parecen gozar de unacapacidad infinita (lo cual está alejado de la máxima dela escasez de recursos en función de las necesidades dela población, que es una característica de la toma dedecisiones en sanidad). Esta conceptualización está

vinculada a la idea del coste de oportunidad de losrecursos 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 deacción o proceso (ejemplo: la duración de los exámenesmédicos), e implícitos, causados por otras acciones ocondiciones en la simulación del modelo (ejemplo: colaspara acceder a una prueba diagnóstica).

Ecuaciones de riesgo y generadores de números aleatorios: Lasprimeras se refieren a ecuaciones que se aplican de formaindividual a cada individuo del modelo, y pueden ser:funciones (lineales, logarítmicas, de riesgo etc.) odistribuciones estadísticas de probabilidad (normal,exponencial, weibull, beta, gamma, etc.).

Los números aleatorios se generan mediante algoritmoscomputacionales avanzados para asegurar la aleatorizacióny crear el comportamiento estocástico del modelo, y sebasan en variables pseudoaleatorias, creadas a través deun procedimiento determinístico.

En la mayoría de las simulaciones, los experimentostienen por objetivo obtener valores medios de losresultados de sus distribuciones probabilísticas. Haynumerosos estudios sobre generación de números aleatoriosy 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 comienzapor la definición y creación de la población objetivomediante la especificación de las características de lospacientes que serán simulados. Así, el modelo se alimentacon información proveniente de ensayos clínicos,evidencia publicada y otros estudios, a partir de loscuales el investigador puede generar una serie dealgoritmos y caminos por los que el paciente puedetransitar y que sirve para diseñar la historia de laenfermedad o proceso evaluado en el modelo.

Si estudiamos 2 alternativas de tratamientoexcluyentes, los pacientes para los que estas terapiasestén indicadas pueden someterse a una u otraintervención. La metodología que se sigue para evaluarambas terapias es generar aleatoriamente unos valores deentrada de las variables que conforman el perfil clínicoy 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 accedena cada una de las 2 estrategias de tratamiento comparadasen el modelo, de tal forma que la diferencia en eltratamiento que se les aplica a cada gemelo es la únicadistinción entre ellos a la entrada del modelo.

El esquema típico de simulación de un MSED se presentaen la figura. La simulación arranca con la puesta enmarcha del reloj de simulación, tras lo cual se da lalectura de los diferentes valores iniciales, introducidosen él, como las características de la población, losdetalles del manejo de los eventos y los costes en

función del tratamiento asignado. Estos valores deentrada son almacenados y leídos por el modelo diseñadoen el software de simulación empleado.

Figura. Motor de simulación de un modelo de simulación de eventosdiscretos.

A los pacientes creados se les asigna unascaracterísticas basadas en las distribuciones de partida(ejemplo: sexo, edad, valores basales de entrada deincapacidad o enfermedad, etc.). En este punto, se estimala expectativa vital de cada individuo. La persona querealiza el análisis define el tamaño de la cohorte depacientes que recibirá cada tratamiento (ejemplo: 1.000)y el número de réplicas (número de veces que toda lasimulación será repetida).

Procedimientos de evaluación y análisis de los resultados de los MSED

El último paso es analizar los resultados obtenidos alejecutar el modelo varias veces para poder inferir elefecto de la intervención evaluada. Una vez obtenidos losresultados al ejecutar el modelo, éstos se evalúan atravé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 procesode pacientes con enfermedad cardiovascular, que presentanbradicardia, para la cual estaría indicada laimplantación de un marcapasos. Podríamos implantar 2tipos diferentes de marcapasos: marcapasos deestimulació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 diferenteseventos cardiovasculares con el tiempo, como fibrilaciónauricular (FA) o accidente cerebrovascular (ACV), efectosadversos, como el síndrome del marcapasos, o inclusomorir.

Dependiendo de la efectividad de los 2 tipos demarcapasos, estos eventos se podrían dar en diferenteproporción de pacientes y tardarían más o menos tiempo ensuceder, producirse en momentos diferentes o inclusocoincidir en el tiempo; por ello, el uso de un modelo deMarkov no es apropiado. Dichos eventos llevarán asociadosuna utilización de recursos, que implican costos ycambios en la evaluación clínica del paciente, e inclusovalores de su calidad de vida, si ésta se ha incorporadoen el análisis del estudio. Este proceso se resume en lafigura.

Figura. Ejemplo del proceso de simulación en un modelo de eventosdiscretos en bradicardia.

Se simulan pacientes con una serie de característicasde 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 elmarcapasos (bloqueo de rama, o enfermedad del nodosinusal). Para cada uno de los pacientes simulados segenera un gemelo, el cual presenta las mismascaracterísticas basales y sólo se diferencia en laintervención del modelo evaluado a la que es sometido(uno de los gemelos va por la ruta de implantación demarcapasos monocamerales y otro por la de bicamerales).Los pacientes transitarán por el modelo durante loseventos clínicos de estudio (FA, ACV, muerte,supervivencia libre de enfermedad, síndrome delmarcapasos y otras complicaciones), así como los costesasociados a la utilización de recursos que suponen dichadiferencia de eventos (figura).

Ejemplo del motor del modelo de simulación de eventos discretos enpacientes con bradicardia, en el que se representa la lógica del MSEDanteriormente expuesto.

Los datos clínicos que alimentan el modelo son: elregistro británico de marcapasos, los ensayos clínicosMOST y CTOPP y el Framingham Herat Study. Se realizan 100simulaciones de 1.000 pares de pacientes durante 5 años,los beneficios se descontaron al 1,5% anual y los costesal 6%, tal como aconseja el NICE.

El resultado del modelo indica que supone un costeadicional medio en los pacientes implantados conmarcapasos bicamerales de 43 libras por paciente, y unincremento de 0,09 AVAC, con un cocientecoste/efectividad incremental de 477 libras por AVAC;estos resultados son consistentes durante el análisis desensibilidad realizado.

Software en simulación de modelos de eventos discretos: Aunquela programación de este tipo de modelos puede hacerse a

través de hojas de cálculo como Excel, ésta sólo se usapara modelos muy simplificados. Para modelos máscomplejos se utilizan paquetes de software específicos.Por ello, una de las primeras decisiones importantesconsiste en seleccionar qué tipo de software seutilizará. 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 cuala su vez supone un elevado coste respecto al tiempo dedesarrollo del proyecto. Hay que tener presente, sinembargo, que en los últimos años se han desarrolladolibrerías de funciones y clases de objetos para C/C++,Pascal, Java e incluso VB.Net, que permiten agilizar esteproceso de modelado. Por otra parte, al optar por unlenguaje de programación general, se dispone de una mayorflexibilidad a la hora de construir el modelo y, además,el código resultante puede ser muy eficiente y rápido deejecutar (especialmente cuando se usa C/C++).

2. Usar programas de simulación (lenguajes de simulacióny simuladores) de ámbito genérico (Arena, SIMSCRIPT II.5,AweSim, SIMPLE++, Extend, GPSS/H, Micro Saint, MODSIMIII, LeanSim, SIGMA, Simul 8). Esta opción puede acortarsignificativamente el tiempo requerido para desarrollarel proyecto, puesto que no será necesario desarrollardesde cero todos los detalles de la simulación: este tipode programas suele incluir un lenguaje de programaciónespecialmente orientado a la simulación, así comolibrerías de clases, objetos o funciones que agilizan elmodelado 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 uncierto grado de flexibilidad con respecto a la opciónanterior.

Ventajas e inconvenientes de la simulación de eventos discretos

Ventajas del uso de MSED: Los MSED tienen ventajas muysignificativas, por ejemplo, con respecto a la poblaciónde estudio, ya que facilitan el diseño de la población,teniendo en cuenta las características fundamentales quela definen: perfiles de riesgo, indicaciones ycontraindicaciones de las terapias, flexibilidad en laasignación de los costes a cada una, asignación devalores de calidad de vida y utilidades según lascaracterísticas de cada paciente. Además, tienencapacidad de manejar la población de una manera dinámicay vinculada a los eventos que realmente suceden en lahistoria natural de la enfermedad en cada paciente.

Los MSED permiten diseñar una estructura más clara, deforma que los eventos a los que se someten los pacientes,así como sus consecuencias, son más explícitos, y en elque las alternativas, a través de las que los pacientesdiscurren, suelen representarse de una forma mástransparente. Además, la estructura del modelo se puedecambiar fácilmente, lo que permite un análisis desensibilidad estructural.

Otra ventaja importante de los MSED es la variabletiempo, ya que en este caso se considera de formaexplícita en el diseño del modelo, y no se restringe aciclos fijos e invariables, de modo que las unidades que

se manejan son adecuadas al problema o evento que seanaliza en cada momento. Además, los MSED permiten el usode diferentes tiempos, en función de los eventos quevayan a suceder y en los momentos que se vayan aproducir.

Respecto a los resultados, los MSED permitencontemplar resultados múltiples, lo que se adecua más ala realidad, puesto que realmente una enfermedad osituación evaluada mediante técnica de modelado puedetener diferentes puntos finales que han de considerarsede forma simultánea a la hora de evaluar el resultadoglobal de las intervenciones. Esto se realiza de unamanera mucho más sencilla y natural con este tipo demodelos, dado que manejan de forma desagregada los costesy los recursos utilizados, producen diferentes medidas deeficacia, como el tiempo libre de enfermedad, larecuperación y la salida del hospital, el cambio de clasefuncional o la ausencia de episodios. Además, informansobre los resultados intermedios en los diferentesmomentos de definidos en la simulación (a los 6 meses detratamiento, al año, a la aparición de complicaciones omuerte), y ofrecen simultáneamente resultados desdevarias perspectivas (comprador, sistema sanitario,sociedad), sin necesidad de volver a ejecutar el modelo.

Asimismo, los MSED permiten un estudio más realista delos tratamientos evaluados: cambios de dosis, comienzo ymonitorización, prueba de dosis o período de lavadofarmacológico previo a un cambio de tratamiento. Tambiénes posible, mediante algunos programas de simulación

avanzada, animar el modelo, lo cual permite visualizarlode una forma clara mejorando su transparencia.

Inconvenientes de los MSED: En general, el uso de los MSEDconlleva también una serie de limitaciones. Por un lado,requieren mayor cantidad de datos y pueden necesitar unmayor tiempo de ejecución que los modelos de Markov, sino disponemos de simuladores de alto rendimiento. Elanálisis de sensibilidad empleado suele sermultivariante, lo cual aumenta todavía más el tiempo decálculo.

Otra limitación es el escaso acceso al softwarenecesario para programar este tipo de modelos, o bien lafalta de un entrenamiento adecuado de sus usuarios,especialmente en el caso de simuladores complejos, comoArena o LeanSim. Su programación también suele sercostosa con respecto al tiempo necesario para suimplementación. Aunque es posible implementar este tipode modelos por medio de programas como Excel, programandomacros en Visual Basic para Aplicaciones (VBA). Es pocousual realizarlo a través de esta plataforma, ya quetiene ciertas limitaciones importantes, como por ejemploel motor de generación de números seudoaleatorios no essuficientemente bueno desde el punto de vista estadísticoo la velocidad de ejecución del código VBA esrelativamente baja.

1.4. Sistemas, Modelos y Control.

Existen tres tipos de modelos, los cuales semencionan 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 einteractúan juntas para lograr un fin común. En lapráctica, ¿qué se entiende por sistema?, depende de losobjetivos del estudio particular que se pretenda hacer.El conjunto de entidades que componen el sistema para unestudio puede ser sólo un conjunto de todas las entidadesutilizadas para otro estudio.

Se puede definir el estado de un sistema con unconjunto de variables necesarias para describir elsistema en un punto particular de tiempo, relativo a losobjetivos del estudio. Los sistemas se pueden clasificaren dos tipos, discretos y continuos. Un sistema discretoes aquel en el que las variables de estado cambianinstantáneamente en puntos separados en el tiempo. Unsistema continuo es aquel en el que las variables deestado cambian continuamente con respecto al tiempo. Enla práctica muchos sistemas no son completamentediscretos o continuos, usualmente es posibleclasificarlos en base al tipo de cambios que predominenen el mismo.

En algunos momentos en la vida de un sistema esnecesario estudiar el mismo para entender las relaciones

entre sus componentes o predecir su comportamiento bajonuevas condiciones que se consideran. Existen diferentesformas de estudiar un sistema (Figura 1.1):

1.- Experimentar sobre el sistema actual frente aexperimentar con un modelo del sistema. Lo primero espreferible siempre y cuando se pueda alterar el sistemacon las nuevas condiciones y no sea muy costoso. Sinembargo es muy raro que esto se pueda llevar a cabo, yaque normalmente estos experimentos suelen ser muycostosos o muy destructivos para el sistema. Inclusopuede ocurrir que el sistema no exista pero se quieraestudiar posibles alternativas de construcción del mismo(sistemas de fabricación, armas nucleares, etc.). Porestas razones es necesario construir un modelo querepresente al sistema y estudiar éste para poderresponder a las cuestiones planteadas sobre el sistema.

2.- Modelo físico frente a modelo matemático: Para muchosla palabra modelo, evoca imágenes de miniaturas, cabinasseparadas de los aviones para el entrenamiento de lospilotos, etc. Estos son ejemplos de modelos físicos(también conocidos como modelos icónicos). Sin embargo lamayoría de los modelos construidos para estudiar lossistemas son matemáticos, los cuales representan unsistema en términos de relaciones cuantitativas y lógicasque pueden ser cambiadas para ver cómo el modeloreacciona 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 quese ha construido un modelo matemático, éste debeexaminarse para poder concluir el comportamiento del

sistema y así responder a las cuestiones planteadas sobreel mismo. Si el modelo es simple, es posible trabajar conestas cantidades y relaciones y obtener una soluciónanalítica exacta. Sin embargo hay veces en las queobtener una solución analítica resulta complejo ynecesita muchos recursos de computación. En estos casosel modelo puede ser estudiado por medio de simulación, esdecir, se ejercita el modelo numéricamente por medio deentradas para ver cómo éstas afectan a las medidas desalida o ejecución.

Por tanto podemos definir la simulación como “latécnica de resolución de problemas siguiendo en el tiempolos cambios de un modelo de un sistema” (Gordon, 1969), ocomo “el proceso de diseñar un modelo de un sistema realy realizar experimentos con dicho modelo con el propósitode comprender el funcionamiento del sistema o de evaluardiferentes estrategias (dentro de los límites impuestospor un criterio o conjunto de criterios) para laoperación del sistema (Shannon, 1975)“, para este último

autor , simulación incluye tanto la modelización como eluso del modelo para estudiar el sistema. Otra posibledefinición es entender la simulación como “el proceso dediseñar un modelo matemático o lógico de un sistema realy realizar una serie de experimentos con el ordenadorsobre él para describir, explicar y predecir elcomportamiento 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 aspectosesenciales del sistema real que representan. Aquellosaspectos del sistema que no contribuyensignificativamente en su comportamiento no se debenincluir, ya que lo que harían sería obscurecer lasrelaciones 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 hayadesarrollado.

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 delmismo y que éstos contribuyan de forma significativaal sistema (hay relaciones en el sistema que no sonsignificativas y pueden obviarse en el modelo).

El diseño y control de modelos de modelos obliga a tenerconocimientos de cuatro áreas de conocimiento distintas:

Modelización: necesarios para diseñar el modelo quepermita dar respuestas válidas del sistema real querepresente. El diseño es una fase muy importante, yaque los errores proporcionarán modelos falsos.

Programación: ya que el modelo se ha de implantar conun lenguaje de programación.

Probabilidad y Estadística: la probabilidad es necesariapara definir y estudiar las variables aleatorias delas entradas, y la estadística para permitir eldiseño y análisis de los experimentos.

Métodos Heurísticos: para permitir llegar a una soluciónbuena del problema planteado.

Clasificación de los modelos.

Nos vamos a centrar en los modelos matemáticos y suestudio por medio de simulación. Los modelos se puedenclasificar en:

Estáticos frente a Dinámicos: Un modelo estático es unarepresentación de un sistema en un punto particulardel tiempo, o uno que representa un sistema en elcual el tiempo no juega ningún papel; ejemplos desimulaciones estáticas son los modelos Montecarlo. Deotro lado, los modelos dinámicos representan sistemasque evolucionan con el tiempo.

Determinísticos frente a Probabilísticos: Si un modelo nocontiene ningún componente probabilístico se conocecomo determinístico (ej. un complicado sistema deecuaciones diferenciales que describen una sustanciaquímica). En un modelo determinístico la salida es

determinada una vez que se especifican lasrelaciones, cantidades y entradas. Sin embargo muchossistemas tienen ciertos componentes aleatorios deentrada y éstos se representan mediante modelosprobabilísticos (por ejemplo la mayoría de lossistemas de colas e inventarios). Los modelos desimulación probabilísticos producen salidas que sonaleatorias y deben ser tratadas como tales, es decircomo una estimación de las verdaderas característicasdel modelo; esta es una de las desventajas de lasimulación.

Continuos frente a Discretos: Los modelos de simulacióncontinuos y los discretos se definen de forma análogaa la de los sistemas. Sólo decir que no siempre esusado para modelar un sistema discreto y viceversa.La decisión de utilizar un modelo discreto o continuopara un sistema particular depende de los objetivosdel estudio. Por ejemplo un modelo del flujo detráfico en una autovía podría ser discreto si sonimportantes las características y movimientos de loscoches individuales. Alternativamente, si los cochesse tratan en conjunto el flujo de tráfico se puededescribir mediante ecuaciones diferenciales en unmodelo continuo.

Prescriptivos frente a Descriptivos: Los primeros pretendentomar decisiones sobre el sistema; se utilizan cuandose desea responder y optimizar una cuestión acercadel sistema, tratan de dar la mejor solución. Lossegundos se limitan a describir el comportamiento delsistema y dejan la totalidad del proceso deoptimización en manos del analista.

De Ciclo Abierto frente a de Ciclo Cerrado: En los primeros nohay realimentación, es decir, las salidas no afectana las entradas. En los segundos las salidas síafectan a las entradas (ej. un sistema decalefacción).

1.5. Mecanismos de tiempo fijo y tiempovariable.

Parte de la construcción de modelos es el mecanismode avance de tiempo. Este dependerá de la aproximaciónelegida para describir el comportamiento del sistema. Sise eligió la aproximación de flujo físico, este diagramade flujo podría refinarse para convertirse en el diagramade flujo del programa. Si se siguió la aproximación decambio de estado, el diagrama de flujo desarrolladodebería describir el procedimiento que efectúa loscambios de estado en el tiempo.

Otros dos factores inciden en la construcción deldiagrama de flujo del programa: elegir un mecanismo deavance del tiempo y el lenguaje de programación que seseleccione.

Hay fundamentalmente dos formas de considerar elavance del tiempo en un modelo de simulación:

Incrementos fijos de tiempo: se considera un intervalofijo de tiempo y el estado del modelo se compruebadespués de transcurrido cada uno de estos incrementosconstantes.

Incrementos por los eventos (N.E.T.A., Next Event Time Advance):las comprobaciones y modificaciones de las variablesafectadas se realizan sólo después de la ocurrenciade un evento. Aquí el incremento de tiempo esvariable, va desde la ocurrencia de un evento a otro.

El avance del tiempo de simulación depende de cuál delas aproximaciones se elija. Si se elige el incrementopor eventos, el reloj se inicializa a 0, y se incrementaal siguiente tiempo en que vaya a ocurrir un suceso, enese momento, en este momento de actualización del relojse modifican las variables que se vean afectadas por laocurrencia del suceso. Si por el contrario se elige unincremento de tiempo fijo, el reloj se inicia a 0 y se vaactualizando cada vez que pase el incremento de tiempofijado. En esos instantes se observará el sistema pararealizar los cambios.

En ese momento puede ocurrir que no haya sucedidoningún cambio o que por el contrario que hayan ocurridomás de un suceso con lo cual se tendrá que decidir cuálatender antes (por ejemplo dando prioridad a lossucesos). En esta aproximación pueden ocurrir “errores deredondeo”, que hacen referencia a la diferencia de tiempoque pasa desde que sucede un suceso hasta que éste secomputa (cuando el reloj se incrementa).

Hay que tener cuidado en la elección del incrementode tiempo. Si éste es demasiado pequeño se realizarátrabajo inútil, ya que se comprobarán cambios cuando enrealidad no ha ocurrido ningún suceso. Por el contrariosi es demasiado grande se producirán muchos errores deredondeo 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.

1.6. Etapas de un Proyecto de simulación.

Formulación del problema

Aunque se van a presentar una serie de pasos de formasecuencial, realmente es un proceso iterativo, tal y comose muestra en la figura:

En la formulación del problema se definen lascuestiones para las que se buscan las respuestas, lasvariables implicadas y las medidas de ejecución que sevan a usar. Esta fase es muy importante para poderalcanzar un modelo válido, se puede dividir a su vez en 5fases:

Identificación del Problema: Se hace una abstracción deltipo de problema que se va a tratar. Se identifican losrecursos a utilizar, los requisitos que se van a exigir(relaciones a establecer).

Reconocer las variables del sistema: Se han de identificarlas variables que interviene en el sistema y que son de

interés para nuestro modelo, éstas se pueden clasificaren:

Variables exógenas: son variables externas al modelo yexisten con independencia de él. Se consideranvariables de entrada. Éstas a su vez se puedendividir en dos grupos:

o Variables controlables o de decisión (factores): sonaquellas sobre las que el analista puede decidirsu valor dentro de ciertos límites.

o Variables incontrolables o parámetros: sus valores no sepueden decidir sino que vienen fijados. Lasvariables serán controlables o incontrolablesdependiendo de quién las defina.

Variables endógenas: son variables internas y lasvariables de salida del modelo. Son función de lasvariables 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 seancontrolables, están limitadas o restringidas a ciertoslímites dentro de los cuales se pueden modificar. Esimportante considerar cuidadosamente las restriccionessobre las variables de decisión, ya que definen elposible espacio de soluciones dentro del cual se buscaráuna buena solución o la óptima usando el modelo desimulación.

Desarrollar una estructura preliminar del modelo queinterrelacione las variables del sistema y las medidas deejecución.

Para evaluar la efectividad de un sistema, se debeidentificar una medida o medidas de comportamiento (oejecución) para juzgarlo. Estas medidas se seleccionandel conjunto de variables endógenas. La medida o medidasque se pretenden optimizar se conocen como funciónobjetivo.

Hay veces en las que existe una única función objetivodominante y entonces se intenta optimizar ésta sin teneren cuenta las otras variables, aunque siempreconsiderando las restricciones. En otras ocasiones existemás de una función dominante, en este caso, hay queestudiar las distintas funciones objetivo e intentarencontrar valores para los cuales las funciones sonóptimas.

Cuando se quiere tener en cuenta varias medidas decomportamiento, a menudo no se podrán optimizarsimultáneamente. Lo ideal sería hacer mínimas ambasmedidas, el tiempo de espera y el costo de tener losempleados, pero si se minimiza una de ellas la otraaumenta. 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 aconsiderar. Se dan los resultados a quién tenga quetomar la decisión y él será quien establezca larelación entre las variables conflictivas.

Establecer compromisos explícitos, realizando unacombinación de todas las medidas usando una dimensióncomún tal como el costo. A estas técnicas se lessuele conocer como análisis de toma de decisionesmultiatributo o multiobjetivo. Para realizar estatécnica se tiene que decidir una dimensión común paratodas las medidas, factores pesos, y formar unafunción que las combine.

Restricción y corte: seleccionar una medida como laque más interesa optimizar y hacer que las otrasestén dentro de un rango de valores aceptable. Estoreduce la posibilidad de encontrar un óptimo, o almenos las mejores soluciones.

Desarrollo de un modelo apropiado

Los modelos son abstracciones de las partes esencialesdel sistema. Se ha de intentar ver si con las variablesque se han especificado se tiene suficiente paradescribir estos aspectos importantes del sistema (si nose tienen suficientes entonces el modelo no será unabuena representación del sistema), o por el contrario sehan definido más de las necesarias (esto puede oscurecerlas relaciones entre las variables realmenteimportantes). En resumen, lo que se tiene que fijar eneste paso es el nivel de detalle al que se debe llegar enel 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 parauna previsión a largo plazo, en cuyo caso la precisiónpuede ser menor, debido a que al transcurrir el tiempolas variables van a cambiar e incluso podrán aparecerotras nuevas, que si se desea una previsión a cortoplazo, entonces se deberá profundizar más en el nivel dedetalle.

Análisis y recolección de datos

Aunque la recogida de datos se va a ver como elsegundo paso, es bastante posible que se hayan tenido querecoger datos para la formulación del problema. Sinembargo, durante este paso se recoge el mayor volumen dedatos, se reduce y se analiza.

Los métodos de recogida de datos son tan variados comolos problemas a los que éstos se pueden aplicar. Si seclasifican por su sencillez, se puede ir desde lasaproximaciones manuales hasta las técnicas mássofisticadas de alta tecnología. En la selección de unmétodo se pueden tener en cuenta los siguientes factores:

Capacidad de quien recoja los datos.

El impacto que pueda producir el proceso derecolección sobre el comportamiento del sistema real.Puede producir perturbaciones reales o físicas en elsistema o psicológicas.

La facilidad de conversión de los datos a unarepresentación procesable por el ordenador.

El costo del método.

En muchas situaciones es suficiente con la observacióndirecta y la recogida manual de los atributos deinterés. Pero si la medida que se quiere observar dependede una persona, su comportamiento se puede ver afectadopor estar siendo observada. Otras veces puede ocurrir quela acción que se quiere observar sea muy rápida y que nosea posible realizar una observación humana.

Para decidir el número de muestras necesarias, se hade establecer una relación costo-exactitud y hacer unaoptimización de dicha relación.

Una vez realizado el muestreo, los datos se han deanalizar e introducir en el modelo. Los datos usados paradefinir el modelo pueden ser de dos tipos:

Determinísticos: son datos conocidos con certeza. Éstosse pueden introducir fácilmente en el modelo.

Probabilísticos: hay dos formas de incluirlos en elmodelo:

o Usar la muestra de datos recogida pararepresentar la distribución de probabilidades.

o Determinar una distribución probabilísticateórica que se comporte como la muestra y usarésta en el modelo. Esto permite tener una mejorcomprensión (generalización) del modelo.

Desarrollo del modelo

Incluye la construcción y depuración del modelo delsistema real, incluyendo la selección de un lenguaje deprogramación, codificación del modelo. Esta etapa se va adividir 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 desimulación es adquirir el suficiente conocimiento delsistema para poder desarrollar un modelo apropiado, esdecir, conocer el comportamiento del sistema. Dostécnicas comúnmente usadas son la aproximación de flujofísico y la aproximación de cambio de estado.

Aproximación de Flujo Físico: Se ha de identificar lasentidades cuyo procesamiento o transformaciónconstituye el propósito principal del sistema. Estasentidades pueden tomar diferentes caminos en elsistema, las rutas que siguen se determinan mediantereglas de decisión. La representación del sistemavendrá dada mediante un diagrama de flujo de entidady los elementos de procesamiento del sistema.

Aproximación de Cambio de Estado: Para describir estaaproximación, se debe definir unas variablesendógenas adicionales que son las variables de estadoe introducir un nuevo concepto, el de suceso oevento. Las variables de estado describen el estadodel sistema en cada momento. Dados los valoresactuales de las variables de estado, las variablesexógenas y la estructura del modelo, se puededeterminar el estado futuro del sistema. Un evento es

un instante particular en el tiempo en el que elsistema cambia de estado. La evolución del sistema sepuede representar mediante un grafo de sucesos.

En el ejemplo del supermercado, si se sigue la primeraaproximación, hay dos posibilidades para la traza deentidades: clientes y cajas. Sin embargo los clientes sonel interés principal, mientras que las cajas tienen unaimportancia secundaria. Comienza la traza de un clientecuando éste se aproxima a la caja. En este instante elcliente decide en qué cola se situará, basándose en algocomo en elegir la más corta. Esta decisión determina laruta que va a seguir por el sistema. El cliente quedaesperando en la cola hasta que sea atendido (hasta que sele asigne el elemento cajero). Aquí ocurren tresprocesos: se hace la cuenta de los productos comprados,se paga por ellos, se embolsan. Entonces, el clienteabandona el sistema. En la Figura se muestra el diagramade flujo.

En la segunda aproximación, se puedenconsiderar como variables de estado el número declientes en cola o el número de clientes que estánsiendo servidos actualmente.

Tales variables se pueden utilizar paracalcular medidas de comportamiento, tales como el

tiempo de espera de los clientes. Cuando uncliente llega a una de las colas en elsupermercado, el estado varía ya que se vealterado el número de clientes en dicha cola, conlo que la llegada se considera un evento.

Se puede describir completamente elcomportamiento del sistema incorporando al modelola capacidad de modificar las variables de estadoconforme van ocurriendo los eventos. Para elejemplo del supermercado la atención se puedefijar en una caja particular, pues la operación esidéntica en todas.

La principal variable de estado es el número declientes en el supermercado y el número declientes en cada una de las colas.

Otras variables de estado son las que indicanlos estados de los cajeros y empaquetadores, si elestán ocupados o no. Algunos eventos que cambianel estado del sistema, y por tanto las variablesde estado, son una llegada al sistema, laselección de una cola y el añadirse a ella, salidadel 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 unmodelo son:

1. Elección del Mecanismo de avance de tiempo (vistoanteriormente)

2. Elección de un lenguaje de programación

Hay un creciente número de lenguajes deprogramación disponibles para la implementación demodelos 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. Muchoslenguajes de propósito general son completamenteadecuados para la simulación, por ejemplo,FORTRAM, PASCAL,…, pero los lenguajes desimulación proporcionan una serie decaracterísticas que hacen la programación,depuración y experimentación más eficientes entiempo y esfuerzo, aunque consuman más tiempo enla ejecución.

Quizás la más importante ventaja de loslenguajes de simulación es la correspondenciaentre los elementos del sistema y los elementos

del lenguaje. Por ejemplo, en GPSS hay bloques dediagramas de flujo y conjuntos de sentencias deprograma llamados QUEUE que procesan entidades através de una cola de espera y acumulan datos devariables de salida tales como tiempo de espera enla cola.

El lenguaje seleccionado puede influir en laforma exacta del diagrama de flujo del programa decomputador.

3. Generación de números y variables aleatorias

Se van a necesitar muestras aleatorias pararepresentar valores de variables de entradaprobabilísticas. Utilizando estos númerosaleatorios podemos obtener valores de variablesaleatorias que sigan ciertas distribuciones deprobabilidad.

Aunque se ha hecho referencia a que los númerosusados en simulación son aleatorios, no lo sontotalmente, ya que se producen a partir dealgoritmos determinísticos. Sin embargo laspropiedades de los números producidos se puedenhacer lo suficientemente cerradas de forma queéstos sean completamente utilizables para lasimulación. Si el modelo se implementa con unlenguaje de propósito general, se puedeseleccionar e incluir algoritmos necesarios para

generar las variables aleatorias requeridas. Perosi se utiliza un lenguaje de simulación estosalgoritmos están incluidos y pueden ser fácilmenteaccesibles por el usuario.

4. Implementación y depuración del modelo.

La facilidad o dificultad en esta etapadependen en gran medida del lenguaje deprogramación que se haya elegido.

Verificación y validación

La Verificación del modelo consiste en vercuál es la consistencia interna del modelo.

La Validación consiste en asegurar que existela una correspondencia entre el sistema real yel modelo. Un buen método para la validaciónes hacer un test para ver cómo el modelopredice el comportamiento del sistema antedeterminadas entradas.

La verificación y validación del modelo serealiza en todas los niveles de modelización:modelo conceptual, modelo lógico y un modelo deordenador. La verificación se centra en laconsistencia interna del modelo, mientras que la

validación se interesa por la correspondenciaentre el modelo y la realidad.

Se dice que un modelo es válido si sus medidasde salida tienen una correspondencia apropiada conlas mismas medidas en el sistema real. Lacomprobación última para la validez de un modeloes ver cómo el modelo puede predecir uncomportamiento futuro del sistema ante unasdeterminadas entradas.

Experimentación y optimización

Se han de diseñar los experimentos que se van allevar a cabo sobre el modelo y luego analizar lassalidas obtenidas, de forma que podamos respondera las cuestiones que se plantearon.

Experimentación con el modelo

El propósito último de la experimentación conel modelo es obtener información acerca delcomportamiento del sistema para que esto nos ayudeen la toma de decisiones. Cuando consideramos laejecución de un sistema se puede desear conocercómo se comporta dicho sistema en sentido

absoluto, o comparativamente, para podercontrastar varias configuraciones alternativas delsistema. O se podrían considerar dos medidassimultáneamente.

Es evidente que el número de exploraciones quese tendrían que realizar es extremadamente largo.Hasta para los diseños de experimentos másmodestos, la exploración de todas las posiblessoluciones en la búsqueda de la mejor solución, noes algo factible. Se necesita una aproximaciónestructurada más directa para encontrar unasolución que merezca la pena. Podemos considerardos aproximaciones diferentes para abordar esteproblema: conjunto predeterminado de experimentosy técnicas de búsqueda de óptimos.

Conjunto de experimentos predeterminado

Esta aproximación impone identificar factoresque podrían afectar a la medida de salida yejecutar los experimentos con los factores puestosa determinados valores. Una vez realizados losexperimentos se aplicarían unas técnicasestadísticas denominadas análisis de la varianza(ANOVA), para decidir cuál o cuáles de losfactores seleccionados tiene realmente algúnimpacto en la medida de salida. Las medidas de

salida se pueden adaptar de forma que lassuposiciones estadísticas de esta técnica sesatisfagan de forma razonable y puedan seraplicadas en la experimentación del modelo.

Un diseño experimental particularmente generales el diseño factorial. Se consideran dos o másfactores pudiendo estar cada uno a dos o másniveles. El uso de un conjunto predeterminado deexperimentos es efectivo para encontrar buenassoluciones si se puede aproximar una región deoptimilidad con experimentos previos o con laexperiencia que se tenga sobre el problema. Sinembargo esta técnica no puede conducir a la mejorsolución global, ni siquiera puede garantizar unóptimo local.

Técnicas de búsqueda de óptimos

Un conjunto de estas técnicas se conoce comoMetodología de Superficie de Respuesta (RSM). Lasuperficie de respuesta es la función que describelas relaciones de las medidas de ejecución con losfactores o variables de decisión. Dos factoresdefinen una superficie de 3 dimensiones, la cualpuede ser vista como un terreno en donde se puedeescalar. De hecho, la representación en 2

dimensiones de la respuesta de superficie es comolas líneas de contorno de un mapa topográfico(Figura).

Usando varias estrategias se pueden alcanzarpuntos altos en el terreno, y quizás llegar a lacumbre. Una estrategia es el método de escaladoascendente. Esta requiere que el modelo se ejecutesuficientemente para hacer que se pueda determinarqué dirección (qué cambios en los valores de losfactores) parece conducir a un incremento en laaltitud (incremento en la medida de salida). Lasvariables de decisión se van cambiando de estaforma y el proceso continúa hasta que ya no sepuede llegar más alto, en ese momento se haalcanzado 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 lasimulación. Mientras que los modelos analíticosproporcionan soluciones con medidas de ejecucióncompletamente definidas, los modelos de simulaciónproducen estimaciones de las medidas que estánsujetas a error.

Las salidas del modelo de simulación seconsideran muestras.

Las principales cuestiones en la obtención deestimaciones útiles a partir de muestras son: quela muestra sea representativa del comportamientodel sistema, y que el tamaño de la muestra sea losuficientemente grande para que las estimacionesde las medidas de ejecución alcancen un buennivel de precisión.

El tamaño de la muestra es algo que está biendefinido, pero la representatividad delcomportamiento del sistema depende de lanaturaleza de las cuestiones que tienen que sercontestadas por el modelo.

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

Análisis para sistemas con final definido: la ejecucióndel modelo finaliza cuando ocurre un evento

específico. Se tomaría una muestra porejecución.

Análisis para sistemas con final no definido (sistemas enestado de equilibrio o estacionario): el interés estáen medias de las medidas de comportamiento deejecuciones largas, después de que el sistemaha pasado por algún periodo de comportamientotransitorio. Las medidas en estadoestacionario se pueden definir como el valorde las medidas en el límite, cuando lalongitud 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 decomportamiento.

El tamaño de la muestra es importante ya que laprecisión de las estimaciones depende de lavarianza de la media de la muestra, y la varianzacambia de forma inversamente proporcional altamaño de la muestra (si se cuadriplica el tamañode la muestra la desviación estándar se reduce ala mitad). La definición de tamaño de muestra parasimulación depende del tipo de análisis que sehaya hecho. Para el análisis de un sistema confinal definido se podría reproducir el periodo deinterés, con las condiciones iniciales apropiadas,

un determinado número de veces hasta conseguir laprecisión deseada de la estimación. En cadaejecución de obtendrá un elemento de la muestra.Con un análisis en estado estacionario el tamañode la muestra está estrechamente enlazado con eltamaño de la ejecución del modelo o cantidad detiempo de simulación.

Experimentación de resultados

Se ha de asegurar que los resultados sonaceptados por el usuario.

Este paso final es uno de los más importantes yel que más se descuida de todo el proceso. Pareceobvio que los beneficios de un largo y costosoanálisis no se realizarán sin una implementaciónapropiada y una aceptación por parte de losusuarios.

Entre las razones por las que los esfuerzos deimplantación son a menudo inútiles, se incluyenlas siguientes:

Existe un vacío de comunicación entre elanalista de la simulación y los encargados yusuarios del sistema.

Falta de entendimientos por parte de losencargados del sistema debido a lostecnicismos utilizados.

El compromiso de implementación es tardío.

Resistencia al cambio.

Falta de coincidencia entre el personaldisponible y los objetivos marcados por elmodelo.

Hay aproximaciones que tratan estosobstáculos potenciales. Estas aproximacionesrequieren que los usuarios y los analistas esténimplicados desde el comienzo en el proyectosimulació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