UNIDAD 1.- Introducción a la Simulación de eventos discretos 1.1 Introducción WHAT IS SIMULATION? Computer simulation is the discipline of designing a model of an actual or theoretical physical system, executing the model on a digital computer, and analyzing the execution output. Simulation embodies the principle of ``learning by doing'' --- to learn about the system we must first build a model of some sort and then operate the model. The use of simulation is an activity that is as natural as a child who role plays. Children understand the world around them by simulating (with toys and figurines) most of their interactions with other people, animals and objects. As adults, we lose some of this childlike behavior but recapture it later on through computer simulation. To understand reality and all of its complexity, we must build artificial objects and dynamically act out roles with them. Computer simulation is the electronic equivalent of this type of role playing and it serves to drive synthetic environments and virtual worlds. Within the overall task of simulation, there are three primary subfields: model design, model execution and model analysis (see Fig. 1). The chapter annotations in Fig. 1 relate to the author's recent simulation textbook (see the section READ MORE ABOUT IT) which focuses on the first two sub-fields. Figure 1: Three Sub-Fields of Computer Simulation. To simulate something physical, you will first need to create a mathematical model which represents that physical object. Models can take many forms including declarative, functional, constraint, spatial or multimodel. A multimodel is a model containing multiple integrated models each of which represents a level of granularity for the physical system. The next task, once a model has been developed, is to execute the model on a computer --- that is, you need to create a computer program which steps through time while updating the state and event variables in your mathematical model. There are many ways to ``step through time.'' You can, for instance, leap through time using event scheduling or you can employ small time increments using time slicing. You can also execute (i.e., simulate) the program on a massively parallel computer. This is called parallel and distributed simulation. For many large-scale models, this is the only feasible way of getting answers back in a reasonable amount of time. Simulation of a system can be done at many different levels of fidelity so that whereas one reader will think of physics-based models and output, another may think of more abstract models which yield higher-level, less detailed output as in a queuing network. Models are designed to provide answers at a given abstraction level --- the more detailed the model, the more detailed the output. The kind of output you need will suggest the type of model you will employ. An example of graphical output from a physically-based model (generated using the program AERO is shown as a stereo pair of ``rigid bodies'' in Fig. 2). You can view this stereo pair without the use of external viewing aids, by diverging the eyes . Figure 2: Falling cans stereo pair. 1.2 Definiciones y Aplicaciones SIMULACION DE EVENTOS DISCRETOS Modelado de un sistema en términos de sus estados en cada instante de tiempo y de varios eventos cuya ocurrencia provoca un cambio en los estados del sistema. ENFOQUES A LA SIMULACION DE EVENTOS DISCRETOS: a) Programación de eventos. La concentración es en los eventos y su impacto en el estado del sistema. b) Interacción de procesos. La concentración es en una entidad y la secuencia de eventos y actividades que realiza mientras 'vive' en el sistema. A manera de recordatorio de los conceptos básicos de simulación de sistemas orientadas a eventos, se presenta la Tabla 1. Con referencia a esta tabla y debido a que es de interés los sistemas dinámicos, es importante mencionar que los siguientes elementos son función del tiempo: Estado, Atributos de entidades, Número de entidades activas, Contenido de las colas, Actividades, Retrasos. Esto implica que debe haber un mecanismo que lleve registro de todos estos elementos a lo largo de una simulación. Este mecanismo se le llama RELOJ de la simulación, el cual se explicará más adelante. La definición de los componentes del modelo porporciona una relación estática del mismo; sin embargo, las relaciones dinámicas son necesarias conocerlas para la simulación. Para ello es necesario definir lo siguiente: Evento Estado, atributos de entidades y contenido de las colas. Definición Determinística o Estocástica de actividades Qué evento marca el fin o inicio de una actividad Qué actividad inicia en función del estado del sistema Qué eventos producen retrasos (inicio / fin) Condiciones iniciales del sistema Concepto Definición Sistema Colección de entidades que interactúan entre sí a lo largo del tiempo para realizar uno o varios objetivos. Modelo Representación abstracta de un sistema (relaciones lógicas y/o matemáticas) para describir al sistema en términos de sus estados, entidades y sus atributos, conjuntos o colas, eventos, actividades y retrasos. Estado Sistema del Una colección de variables que contiene toda la información necesaria para descrbir al sistema en cualquier instante de tiempo. Entidad Cualquier objeto o componente que requiere una representación explícita en el modelo. Atributos Las propiedades de una entidad dada (priori-dad de un cliente esperando, ruteo de una pieza en un taller, etc.). Conjunto o Cola Una colección (permanente o temporal) de entidades asociadas, ordenadas en una forma lógica (FIFO, LIFO, cola con prioridad, etc.). Evento Una ocurrencia instantánea que cambia el estado del sistema (llegada de un nuevo cliente). Actividad Un intervalo de tiempo específico (tiempo de servicio o tiempo entre arribos) cuya duración es conocida y cuándo inicia (aún cuando sea aleatoria). Retraso Un intervalo de tiempo de duración no especificada, cuya duración no se conoce hasta que acaba (retraso de un cliente en una cola esperando su turno). Tabla 1. Elementos constitutivos de un sistema. 1.3.Estructura y característica de la simulación de eventos discretos. La simulación de eventos discretos es un de las herramientas de programación mas utilizadas en la actualidad debido a su estructura mas fácil y rápida de aprender. Además de la disponibilidad de los lenguajes de propósito especial SIMULACION DE EVENTOS DISCRETOS Modelado de un sistema en términos de sus estados en cada instante de tiempo y de varios eventos cuya ocurrencia provoca un cambio en los estados del sistema. ENFOQUES A LA SIMULACION DE EVENTOS DISCRETOS: a) Programación de eventos. La concentración es en los eventos y su impacto en el estado del sistema. b) Interacción de procesos. La concentración es en una entidad y la secuencia de eventos y actividades que realiza mientras 'vive' en el sistema. A manera de recordatorio de los conceptos básicos de simulación de sistemas orientadas a eventos, se presenta la Tabla 1. Con referencia a esta tabla y debido a que es de interés los sistemas dinámicos, es importante mencionar que los siguientes elementos son función del tiempo: Estado, Atributos de entidades, Número de entidades activas, Contenido de las colas, Actividades, Retrasos. Esto implica que debe haber un mecanismo que lleve registro de todos estos elementos a lo largo de una simulación. Este mecanismo se le llama RELOJ de la simulación, el cual se explicará más adelante. La definición de los componentes del modelo porporciona una relación estática del mismo; sin embargo, las relaciones dinámicas son necesarias conocerlas para la simulación. Para ello es necesario definir lo siguiente: Evento Estado, atributos de entidades y contenido de las colas. Definición Determinística o Estocástica de actividades Qué evento marca el fin o inicio de una actividad Qué actividad inicia en función del estado del sistema Qué eventos producen retrasos (inicio / fin) Condiciones iniciales del sistema LISTA DE EVENTOS FUTUROS La simulación de eventos discretos produce un conjunto de FOTOS que representan la evolución del sistema en el tiempo. Cada una de ellas contiene la información sobre los estados del sistema, los eventos que van a ocurrir en el futuro, el registro del tiempo, las estadísticas que se necesiten para el criterio de desempeño, etc. Un elemento clave para toda simulación de eventos discretos es la LISTA DE EVENTOS FUTUROS, la cual consiste de llevar un registro sobre cuál evento se va a iniciar o terminar y en qué instante de tiempo ocurrirá. A continuación, se presenta una foto ejemplificando esto. reloj Estado t (x,y..) entidad atributos c.1 c.2 ... LEF estadísticas (3,t 1) (1,t 2) ... L, W, ... (2,t n) Tabla 6.2. Foto de una simulación, mostrando la lista de eventos futuros. El avance del tiempo y la garantía de que todos los eventos ocurran en su orden correcto cronológico depende de la LISTA DE EVENTOS FUTUROS (LEF). Esta lista contiene todos los eventos programados que van a ocurrir en el futuro. Programar un evento quiere decir que cuando se inicia una actividad, se calcula su duración y el evento fin de actividad junto con su instante de ocurrencia se mete a la LEF. Esta lista contiene a los eventos ordenados en orden cronológico: t t 1 t 2 ... t n ... El evento asociado a t1 se le conoce como el evento inminente. Cuando el reloj avanza a este instante, se produce otra foto y así sucede hasta acabar la simulación. Al mecanismo encargado de mover el reloj y construir una nueva foto se le conoce como algoritmo de programación de eventos y avance de tiempo. Las operaciones que se pueden realizar sobre la LEF son: a) remoción del evento inminente, b) adición de un nuevo evento y, c) remoción de un evento cancelado. La LEF es una lista ordenada con algoritmos muy eficientes de búsqueda y recorrido Ejemplo de avance de tiempo y actualización de fotos. Para fines de ejemplo, considere la foto mostrada en la Tabla 6.3: reloj estado ... LEF t (5,1,6) ... (3,t1) - evento tipo 3 en t1 (1,t2) - evento tipo 1 en t2 (1,t3) - evento tipo 1 en t3 . . Tabla 6.3. Foto mostrando el estado de la simulación, antes de la ocurrencia de un nuevo evento. El algoritmo de avance de tiempo y programación de eventos operaría de la siguiente manera: paso 1. Remover el evento inminente (3,t1) de la LEF. paso 2. Avanzar el reloj al tiempo de ocurrencia del evento inminente t1. paso 3. Ejecutar el evento inminente: actualiza estado, atributos y colas (si es necesario). paso 4. Generar eventos futuros (si es necesario) y localizarlos en la LEF. Ejemplo: evento 4 ocurrirá en t*, donde t2<t*<t3. El resultado de esta ocurrencia en la LEF se ilustra en la Tabla 6.4. paso 5. Actualizar estadísticas y contadores. reloj estado ... LEF t1 (5,1,5) ... (1,t2) - evento tipo 1 en t2 (4,t*) - evento tipo 4 en t* (1,t3) - evento tipo 1 en t3 . . Tabla 6.4. Actualización de la LEF, después de la ocurrencia del evento 4. Toda simulación debe tener un evento de paro, el cual define cuánto tiempo Tp durará la simulación. Hay dos formas de programar un paro, a saber: 1. Al inicio, se programa un evento PARO en un tiempo futuro Tp, detrminando el intervalo de tiempo de la simulación [0,Tp]. 2. Tp lo determina la misma simulación, de tal manera que en este instante ocurre un evento prespecificado. Por ejemplo, Tp indicaría la llegada del cliente número 100 a la cola. EJEMPLOS DE SIMULACION DE EVENTOS DISCRETOS Ejemplo 1. Cola de un sólo canal. Considere una tienda con una sóla caja. Los clientes llegan a la caja aleatoriamente separados entre 1 y 8 minutos, con la misma probabilidad (tabla 6.5). El tiempo de servicio varía entre 1 y 6 minutos, de acuerdo con la probabilidad mostrada en la tabla 6.6. En la tabla 6.7 se muestran los números aleatorios que se usarán en esta simulación. Simular el comportamiento del sistema para 60 minutos. tiempo entre arribos (minutos) probabilidad probabilidad acumulada números aleatorios 1 0.125 0.125 001-125 2 0.125 0.250 126-250 3 0.125 0.375 251-375 4 0.125 0.500 376-500 5 0.125 0.625 501-625 6 0.125 0.750 626-750 7 0.125 0.875 751-875 8 0.125 1.000 876-000 Tabla 6.5. Distribución de tiempos de arribos. Tiempo de servicio (minutos) probabilidad probabilidad acumulada números aleatorios 1 0.10 0.10 01-10 2 0.20 0.30 11-30 3 0.30 0.60 31-60 4 0.25 0.85 61-85 5 0.10 0.95 86-95 6 0.05 1.00 96-00 Tabla 6.6. Distribución de tiempos de servicio. Cliente 1 2 3 4 # aleatorio para tiempo entre arribos 913 727 015 # aleatorio para tiempos de servicio 84 10 74 53 Cliente 5 6 7 8 9 # aleatorio para tiempo entre arribos 948 309 922 753 235 # aleatorio para tiempos de servicio 17 79 91 67 89 1.4 Sistemas, Modelos y Control Un modelo es la representación explicita de lo que uno extiende de una situación, puede expresarse en símbolos, matemáticas pero en esencia es una descripción de entidades procesos o atributos pero relacionados entre ellos. Puede ser descriptivo o ilustrativo pero sobre todo útil Clasificaciones de los Mecánico, Mental/Verbal, Analítico y Simulación modelos: El decisor debe identificar cuál es el tipo de modelo que mejor se adecua al problema de decisión. Es por eso que analizaremos una clasificación de los modelos antes de entrar en el proceso de construcción del modelo. Si bien la IO/CA se concentra principalmente en los modelos matemáticos, los otros tipos de modelos también prevalecen en la práctica. Los modelos pueden clasificarse según sus características, como sus tipos, evolución en el tiempo y disponibilidad de información, como se ilustra, por ejemplo, en la siguiente figura. Una clasificación de los modelos Los modelos icónicos son usualmente estáticos por naturaleza, como el billete de un dólar. Los modelos análogos también son físicos; sin embargo, aunque fueron diseñados para actuar como la realidad habitualmente no se le parecen. Son en su mayor parte modelos mecánicos. En cambio, las actividades de negocios son procesos dinámicos. El negocio es un proceso que sigue patrones matemáticos. Por lo tanto, puede representarse mediante modelos simbólicos (es decir, algebraicos, numéricos, lógicos). Entre los modelos simbólicos encontramos una gran clase, conocidos como modelos matemáticos y de simulación por computadora (computer simulation). Modelos mecánicos: El modelo que adopta la apariencia física del objeto que debe representar se llama modelo físico. Este tipo de modelo se usa para mostrar o probar el diseño de elementos, desde nuevas construcciones hasta nuevos productos. En la industria de la aviación, se construyen modelos a escala de las nuevas aeronaves que se prueban en túneles de viento para registrar la aerodinamia del diseño. El fabricante de repuestos automotrices puede tener un modelo a escala tridimensional del piso de la planta, completo con máquinas y equipos en miniatura, para poder analizar un nuevo diseño de la distribución. Las máquinas en el modelo pueden reubicarse y estudiarse nuevas distribuciones con el objeto de mejorar el flujo de materiales. Los modelos mecánicos ofrecen la ventaja de que pueden usarse para experimentar. En el ejemplo de la aeronave, los ensayos con un diseño diferente quizás impliquen construir un modelo completamente nuevo. Además de la ventaja de la experimentación, los modelos mecánicos lúcidamente describen el problema o sistema que se está estudiando; resultan útiles para generar alternativas innovadoras de diseño con el objeto de resolver el problema de decisión. No obstante, sólo una clase de problemas relativamente pequeña puede resolverse con modelos mecánicos. Algunos ejemplos de problemas que no pueden analizarse con modelos mecánicos son la selección de carteras, la selección de medios y la planificación de producción. Básicamente, los modelos mecánicos son útiles sólo para los problemas de diseño, e incluso en algunos de estos casos se puede hacer un análisis más eficiente y completo con modelos matemáticos que puedan correrse en computadora. Además, estos modelos mecánicos no contienen relaciones explícitas entre las alternativas de decisión y las variables y objetivos dependientes, debiendo usarse métodos de prueba y error para resolver el problema. Si bien esto, de por sí, no es una terrible desventaja, el proceso de prueba y error, sumado a la necesidad de reconstruir el modelo con cada cambio de diseño, puede demandar mucho tiempo y muchos gastos, en algunos casos. Modelos mentales/verbales: El modelo verbal es la traducción del modelo mental. Así, el modelo mental/verbal expresa todas las relaciones funcionales entre las variables de un pasaje. Por ejemplo, consideremos al gerente de publicidad de una compañía que fabrica cereal y que hace la siguiente afirmación en relación con los comerciales de televisión del sábado a la mañana: "Un spot de 20 segundos tiene mucho más impacto en nuestro target de audiencia que uno de 15 segundos". En este ejemplo, las distintas duraciones del comercial son las alternativas de decisión; el "impacto"-que podemos inferir tiene que ver con la propensión de los padres de los televidentes a comprar el cereal de la compañía-es la variable dependiente. De este modo, tenemos una relación entre las alternativas de decisión y una variable dependiente que está relacionada con los objetivos de la compañía. Estos modelos se utilizan ampliamente en el mundo de los negocios y ofrecen la ventaja de ser fáciles de entender. Con frecuencia son el afloramiento de muchos años de experiencia gerencial y sirven para resumir esa experiencia en lenguaje comprensible. Sin embargo, los modelos mentales/verbales tienen una serie de deficiencias. El decisor no puede experimentar con ellos, tampoco indican específicamente cómo cambian los resultados o las medidas de su eficacia según la alternativa de decisión de que se trate. En el modelo mental/verbal precedente no sabemos cuánto más impacto tiene un comercial de 20 segundos versus uno de 15 segundos. La otra desventaja es que no es fácil mostrar cómo cambian las relaciones según la alternativa de decisión. Si construyéramos un modelo mental/verbal que respondiera estas preguntas con todas las duraciones posibles del comercial, tendríamos un modelo mental/verbal muy extenso que sería difícil de entender y no se podría experimentar. No obstante, los modelos mentales/verbales pueden jugar un rol importante en el proceso de decisión. Pueden usarse para verbalizar estrategias de decisión logradas con modelos más sofisticados. Modelos analíticos: Los modelos analíticos son modelos matemáticos, destinados a hacer una cierta simplificación y abstracción de sistemas reales, para poder obtener más información y para entender algún aspecto de interés de la realidad. . Sin embargo, debiera conectarse la modelización de la realidad por abstracción con problemas y dominios reales, y practicarse mediante la verificación y/o la validación. Estos tipos de modelos se aplican principalmente en los sistemas estáticos y/o deterministas. En comparación con los modelos mecánicos, los modelos matemáticos facilitan la experimentación, porque todas las variables dependientes, las variables independientes, las constantes y los parámetros están explícitamente relacionados por el lenguaje de la matemática. El decisor puede poner a prueba los efectos de las diferentes alternativas de decisión, las constantes y los valores de los parámetros en las variables dependientes con mucha más facilidad que con cualquier otro tipo de modelo. Además, los modelos matemáticos pueden representar muchos problemas complejos de modo eficiente y conciso y, en muchos casos, pueden ser la manera más barata de analizar los problemas. Es por estas razones que vamos a analizar los distintos modelos matemáticos y las técnicas de solución que se usan con más frecuencia en la práctica. Los procedimientos de solución pueden ser de pasada única o iterativos. El procedimiento de solución de pasada única es aquél en el que los valores finales de todas las variables de decisión se determinan simultáneamente, de acuerdo con algún procedimiento bien definido. La técnica de solución iterativa, por otra parte, es aquélla en que se requiere una serie de pasos para arribar a una solución final y donde en cada paso se reciben soluciones parciales o completas. Con frecuencia se necesitan variables discretas o continuas para algún determinado problema. Finalmente, la óptima es aquélla que puede demostrarse que es por lo menos tan buena como cualquier otra, dadas las presunciones del modelo, mientras que la solución satisfactoria es la que se considera "buena" con respecto a los objetivos y las restricciones, pero que sin embargo no se puede demostrar que es la mejor. De este modo, si en el ejemplo previo del modelo normativo-estático-determinista, las variables de decisión son continuas, las relaciones son lineales y se desea hallar la solución óptima, la lista de técnicas de solución potenciales para el modelo se reduce a sólo una: la programación lineal. Entonces, ahora pueden identificarse una o más alternativas viables para la metodología de solución y puede comenzar la formulación del modelo. Modelos de simulación: El grado de abstracción que tienen los modelos matemáticos es un impedimento definido para su aceptación por parte de los gerentes. No es de sorprender que exista resistencia entre gerentes que no han recibido suficiente capacitación o exposición a estos modelos, y también entre gerentes que sí están capacitados pero que no tienen tiempo para prestar la debida atención al modelo. Los modelos matemáticos usan el lenguaje simbólico de la matemática que tiene sus propias limitaciones. Los modelos análogos también son físicos; si bien están diseñados para actuar como la realidad habitualmente no se le parecen. Los modelos pueden ser demasiado complejos (como, por ejemplo, el de un aeropuerto internacional) no pudiendo ser resueltos con eficiencia, y requiriendo groseras simplificaciones del problema real para poder llegar a una buena solución estratégica. En tales circunstancias, el problema que queda "resuelto" ya no se asemeja al problema original y de implementarse la solución podría resultar en efectos desastrosos en la organización. Una selección apropiada del tipo de modelo y de la técnica de solución debiera minimizar este tipo de error. Los modelos de simulación son las duplicaciones computarizadas de los sistemas reales y, de lejos, son mucho más realistas, en especial en la modelización de sistemas dinámicos y/o probabilísticos, como el de un aeropuerto internacional. La importancia de la realimentación y el control: Es necesario hacer nuevamente énfasis en la importancia que tiene pensar en los aspectos de realimentación y control en un problema de decisión. Sería un error en el análisis del contexto del proceso de decisión en IO/CA ignorar el hecho de que jamás encontraremos una solución inmutable al problema de decisión de negocios. La misma naturaleza del medio donde se toma la decisión es de cambio, y por lo tanto, la realimentación y el control son una parte importante del contexto del proceso de modelización en IO/CA. Validación del modelo: La validación es el proceso de comparación de la salida del modelo con el comportamiento del fenómeno; es decir, compara la ejecución del modelo con la realidad. Validar tiene que ver con la siguiente pregunta: "¿Estamos construyendo el modelo correcto?" La validación sólo puede demostrarse en relación con algún uso pretendido del modelo. No hay duda de esto, ya que ningún modelo puede capturar siempre perfectamente todos los detalles de un sistema real (ni tampoco queremos que lo haga). De hecho, tradicionalmente tampoco querríamos capturar todas las partes de la realidad en un modelo único (no parsimonioso). Sólo se puede decidir qué tipo y grado de desviación entre el modelo y la realidad es aceptable en relación con el marco al cual se lo va a destinar. Verificación del modelo: La verificación es el proceso de comparación entre el programa informático y el modelo para garantizar que el programa sea la implementación correcta del modelo. Durante la verificación, se controla la implementación informática del modelo. Para aprender efectivamente sobre el proceso de toma de decisiones estratégicas acertadas es muy útil contar con apoyo informático, que asegura al usuario los procesos de Análisis de Sistemas, Diseño y Control que necesita para tomar decisiones estratégicas acertadas, sin importar si el usuario es un novato o un experto en la organización. SISTEMA: Colección de objetos relacionados entre sí, cada uno de los cuales se caracteriza por sus propiedades relacionadas entre sí, provocando cambios en el sistema. SISTEMA • • Atributo propiedades de entidad Evento ocurrencia en tiempo que modifica el estado • Actividad intervalo de tiempo específico • Retraso intervalo de tiempo de duración no conocida CLASIFICACIÓN DE SISTEMAS a) NATURALEZA DE LOS EVENTOS: • Estocásticos • Determinísticos b) APARICIÓN DEL TIEMPO • Estáticos • Dinámicos COMPONENTES DE UN SISTEMA Modelos de simulación • Dinámicos vs. Estáticos Si interviene el tiempo o no (fábrica/localización) • Continuos vs. Discretos Si cambia el estado del sistema continuamente o no (proceso químico/restaurante) • Estocásticos vs. Deterministas Si los valores de entrada son aleatorios o no (banco/fabricación flexible) • De ciclo abierto vs. De ciclo cerrado Si la estructura del sistema es abierta o no (supermercado/ciclo de vapor) 1.5.Mecanismos de tiempo fijo y tiempo variable 1.6 Etapas de un Proyecto de simulación 1.6.1. Formulación del problema 1.6.2. Análisis y recolección de 1.6.2.1.1. datos 1.6.3. Desarrollo del modelo DESARROLLO DE MODELOS ES MUCHO MAS FACIL ASI: • LAS LEYES DE LA FISICA PERTENECEN AL SISTEMA • EXISTEN FORMAS DE REPREESNETAR LO GRAFICAMENTE • LA VARIEDAD DE INFORMACION ELEMENTOS Y RESULTADOS A PROCESAR SON CONTROLABLE PERO EN LOS SIGUIEBNTES COMPLEJOS: • POCAS LEYES FUNDAMENTALES DISPONIBLES • MUCHOS ELEMENTOS BASICOS DIFICILES DE PROCESAR • TOMA DE DECISIONES POR PARTE DE PERSONAS EN EL SISTEMA • ALGUNOS ELEMENTOS SIGNIFICATIVOS SON DE AZAR 1.6.4. Verificación y validación 1.6.5. Experimentación y optimización 1.6.6. Experimentación de resultados UNIDAD 2.- Números Aleatorios y Pseudoaleatorios 2.1Números aleatorios definición propiedades, generadores y tablas Generación de números aleatorios En simulación de sucesos discretos, la primera etapa consiste en generar números aleatorios que nos permitan crear los sucesos a simular (generación de valores de entrada). El procedimiento general para generar tales números será: primero generar números aleatorios que se originen a partir de la distribución uniforme: y aplicarles una transformación que los convierta en los números aleatorios deseados para utilizarlos en la simulación. • Generación de números aleatorios: tienen que ser independientes e idénticamente distribuidos según U (0, 1). Los números aleatorios aparecen típicamente en ciertos procesos físicos (ruleta, lotería, 5 últimos dígitos del DNI, etc.). Son muy costosos de conseguir y de reproducir. Nos conformaremos con generar números pseudo-aleatorios: en apariencia idénticos a los realmente aleatorios y muy poco costosos de generar (provienen de un procedimiento algorítmico). Suelen estar basados en generadores congruenciales. Recordar que x = y mod m si x e y dan el mismo resto al dividir por m. 2.2.Números Pseudo aleatorios propiedades Generación de números pseudo-aleatorios Dadas constantes enteras positivas a, b y m y un valor inicial o semilla, x0, la generación de números pseudo-aleatorios, uk, se obtiene como: xk+1 = (axk + b) modm uk+1 = xk+1 m Para que la sucesión de números se parezca cada vez más a la uniforme, m tiene que ser más grande, pero por limitaciones, no puede ser más grande que el tamaño del mayor entero que pueda almacenar un ordenador, por lo que típicamente m _ 231. Un problema de esta generación es la aparición de ciclos: una vez que un valor de x se repite, los valores siguientes en la sucesión también. Dado que los posibles valores de x son finitos, el ciclo siempre se va a producir, por lo que hay que intentar que los ciclos sean lo más largos posibles, esto es, más próximos al valor de m. Para conseguir que el ciclo sea m, es necesario que se satisfagan las siguientes condiciones: 1. b y m tienen que ser primos entre sí. 2. a − 1 tiene que ser múltiplo de p para cualquier p primo divisor de m. 3. a − 1 tiene que ser múltiplo de 4 si m es múltiplo de 4. En la práctica se suele tomar b = 0 para simplificar los cálculos. Si b = 0 entonces, para conseguir que el ciclo sea m, es necesario que se satisfagan las siguientes condiciones: 1. m tiene que ser primo. 2. ai − 1 tiene que ser múltiplo de m para i = m − 1 pero no para i < m− 1. Diversos programas de software soportan la generación de datos uniformes. Habitualmente utilizan, a = 16807, b = 0, m = 231 − 1. a = 6303600167, b = 0, m = 231 − 1. a = 65539, b = 0, m = 231. Una vez generados los números pseudo-aleatorios hay que comprobar (aunque no se suele hacer) que se parecen a los realmente aleatorios. • Hay que comprobar que los datos se distribuyen como una U (0, 1) mediante contrastes de bondad de ajuste (Kolmogorov-Smirnov, χ2, . . . ). • Hay que comprobar que los datos son independientes mediante contrastes de independencia (tests de rachas, basados en autocorrelaciones, . . . ). ¿Cómo generar datos que procedan de una distribución distinta a la U (0, 1)? Software específico. Simulación Monte Carlo. La generación de números no uniformes se obtiene a partir de números uniformes. En muchas ocasiones es útil el siguiente resultado: Si u es un número uniforme, entonces x = F−1(u) se distribuye según la función de distribución F. 2.2.1 Técnicas para Generar números Pseudo aleatorios 2.2.1.1 Métodos de Centros al Cuadrado 2.2.1.2 Métodos de Congruencia: multiplicativo y mixto 2.3 Pruebas de Aleatoriedad 2.4 Método de Monte Carlo Introducción El metodo de monte carlo es muy usado es los lenguajes de programación ya que se usa para hallar la probabilidad de un suceso, el trabajo que les presento explica el Metodo Monte Carlo , usado en la simulación de la mecanica estadistica.. Esperando su sugerencia . Pedidos del libro de TRUCOS PARA PC(consta de 150 pg con trucos para Windows e internet que ni te imaginas) Monte Carlo simulación puede inspeccionarse como un método de resolver ecuaciones integrales. Considere el problema de calcular el valor medio real-valor función T(x) definido sobre un espacio de un : (1) Cada valor x es una posiblemente multidimensional cantidad caracterizando el estado del sistema. La función f es una función de densidad de probabilidad (PDF) determinado la probabilidad ese que el estado del sistema yace entre x y x+dx. Una estimación de Monte Carlo de es obtenida por dibujar al azar N muestras desde la distribución f. Muestra desde f medios esta probabilidad de elegir un muestreo x* desde el intervalo (x,x+ x) es f(x) x. El Monte Carlo de estimación es dada por (2) Este, la intratable integral, Ecuación 1, es reemplazado por una suma finita. La estadística bondad o fiabilidad de la estimación depende de ambos tamaño de muestreo N y la variabilidad del la estimación T(x) que es descrita por la variancia (3) Debajo condiciones suficientemente generales, el teorema del limite central muestra que para grandes N, es aproximadamente una distribución normal con significados de cero y una varianza de uno. Simbólicamente: (4) Donde P(x) denota la probabilidad de suceso x. Por ejemplo, la probabilidad esa yace dentro de el intervalo es 0.95. La ecuación 4 implica esta precisión de la estimación aumenta con la raíz cuadrado del número de historias. Ese, para cada dígito adicional de importancia, el número de historias debe aumentarse un ciento. La táctica bruta de fuerza de N creciente para mejorar precisión rápidamente alcanza el punto de cifras decrecientes. Practica las técnicas de reducción de varianza, discutidas en la Sección VI, apuntadas a reducir la varianza por la unidad de calcular esfuerzo, por alterar los marcando y muestra procedimientos. 2. Implementacion practica de una simulación de Monte Carlo Hasta ahora, la meta de este capítulo ha sido desarrollar las herramientas matemáticas necesitadas atacar el problema de escoger el fotón al azar las trayectorias del núcleo de dispersión (Ecuación 20). Nosotros discutiremos ahora métodos prácticos de generar foton historias. A. Sistema Coordenadas El sistema coordenada para describir colisión sitios y foton vuelo de las trayectorias. Para designar la situación espacial de sitios de la colisión r, la usual coordenada cartesiana r=(x,y,z) son usadas. Los tres cosenos directores (u,v,w) con respecto a los ejes x, y, y z constituye la anotación más eficaz por describir la dirección . Los cosenos directores son relativas a las coordenadas esféricas angulares usuales (donde denota el ángulo polar) por; Una ventaja de esta anotación es que permanece sin cambiar debajo los desplazamientos lineales S: (38) donde r ' designa la posición final después de un desplazamiento S a lo largo de originar a r. Usa más acuerdo vector anotación: (39) Más pretenciosamente, como demostración en las secciones siguientes, esta anotación elimina la necesidad explícitamente evaluar tiempo - consumiendo funciones seno y coseno. Descripción matemática del problema transporte de Foton En esta sección, el problema de transporte se caracterizará matemáticamente como una ecuación integral tener la forma de ecuación 1. Para este fin, ambos las formas diferenciales e integrales de la ecuación transporte de Boltzmann se derivan. Esta comprensión formal del problema provee una base conceptual sana para métodos generales crecientes de la reducción de varianza y marcando necesidad eficiente para Monte Carlo de simulación. A. La densidad de flujo y cantidades relacionada La distribución de fotones dentro de un sistema de absorber y las fuentes pueden ser completamente descritas por especificar la partícula fluidez espacial coordenada r, dirección de trayectoria y la energía del foton E. a cada es el radio dN/dA, dónde dN es el número de fotones que pase mediante el área dA alineó normal a y . Este y ubicó a r con tiene las unidades de fotones por cm2 por la unidad de ángulo sólido y energía. Si es integrado sobre todas las energías y direcciones, nosotros hemos partícula fluidez como definido por el Comisión Internacional sobre Medidas y Unidades de Radiación (ICRU), esto es., dN/dA, el número de fotones: dN que entra en una esfera de la sección de cruz de area dA se centran a r. La integración sobre las variables y E será indicada por los omitidos desde el argumento de de . Para Simplificar el problema, la dependencia es ignorada. Dada la partícula fluidez, todo el otro dosimetría las cantidades de interés pueden, en el principio, se calculan. Por ejemplo, debajo condiciones de equilibrio electrónico, la dosis al mediano puede ser calculado por (5) Dónde es la masa - energía coeficiente de absorción y Encomendar partícula de equilibrio aproximadamente existe cuando la carga en el foton partícula fuente es pequeño sobre el electrón secundario de rango. En un extendido mediano, nosotros siempre desde contorno y primario foton las fuentes, esta condición es aproximadamente satisfecha cuando el electrón secundario de rango es pequeña comparada a la foton medio - libre trayectoria. En el caso donde el medio es el aire. La ecuación (5) es proporcional a la exposición. El calculo de requiere tres tipos de datos elementales: 1. La probabilidad de cada interacción elemental procesa como una función de incidencia foton energía E y propiedades pertinentes del absorbentes mediano. Estos datos se tabulan desde el punto de vista de foton las secciones de cruz , donde Z es el número atómico del mediano. La sección de cruz tiene las unidades de barns/átomo (10-28 m2/átomo). Equivalente, el coeficiente lineal de atenuación puede usarse con unidades de m-1. 2. Para cada proceso de interacción, la función de densidad de probabilidad (PDF) da la probabilidad de cada posible resultado de la interacción especificada desde el punto de vista de esparcir ángulo y emergente foton energía E’. Esta cantidad es conocido como la sección diferencial de cruz, . Desde y E’ son deterministica relacionada para todo procesos discutidos en este capítulo, la anotación diferencial doble es innecesaria en práctica . 3. El conocimiento del PDF que gobierna el transporte de una dispersión o primario foton desde un sitio de colisión a otro. Esta distribución, discutida en forma detallada en la Sección IV B.I. es estrechamente relativo a la ley de atenuación exponencial. B. Ecuación de transporte de Boltzmann –Monte Carlo La densidad de flujo para cualquier combinación de foton fuente y contorno condiciones es completamente determinada por el tiempo - invarianza ecuación de transporte de Boltzmann. La derivación heurística siguiente se adapta desde Fano. Considere un cilindro derecho con sección cruz área dA y la longitud dL con este eje paralelo igual a dirección (Figura 1.). El número neto de fotones con la dirección y la energía E creó en el cilindro por el tiempo de unidad es Esta diferencia es la suma de tres contribuciones: 1. La atenuación dada por . 2. Foton de fuentes y descender dentro de el volumen dadas por donde S tiene unidades de fotones por el volumen de unidad, ángulo sólido, y energía. 3. Dispersión de fotones desde el estado en el estado el diferencial cruz sección/ longitud de trayectoria de unidad, . Dejar regido por y poniendo estos términos juntos, nosotros obtenemos (6) La ecuación 6 es el punto de partida para un tratamiento riguroso del problema afianzado de absorber. Aunque analítico y seminumerico los métodos que se hayan usado exitosamente para resolver la Ecuación 6 en el caso de absorber ilimitado, simulación de Monte Carlo ofrece un general método para la solución que involucra absorber con dirección. 1. La Forma Integral de la Ecuación de Boltzmann La transformación de Ecuación 6 es la forma integral más claramente da a conocer la naturaleza estocástica de transporte de radiación. Nosotros iniciamos por expandir la ecuación 6 en ordenes de dispersión: (7) donde representa la densidad de flujo de dispersión de fotones. Para cada onden de esparcir n, la Ecuación 6 llega a ser (8) dónde es la función delta Kronecker. Considere ahora el problema de calcular la fuente proviniendo desde dispersión de fotones a lo largo de una línea , donde r y se fijan y R es una variable positivo numero real. Dejar y anote que. y (9) Aplicar ecuaciones 9 a 8, son obtenidas Integrando ambos lado a lo largo de la línea Finalmente dar desde R=0 a R , (10) Estas ecuaciones simplemente afirman que la fuente única de n de veces dispersión de fotones con la energía E y la dirección a r son (n-1) las veces que dispersión de fotones esparciendo en el estado en alguna parte a lo largo de la línea . El exponencial término rinde cuentas para esos fotones que son atenuadas por el mediano antes de alcanzar r. A este punto, probará útil a reformular la ecuación de transporte desde el punto de vista de la densidad de colisión x, más bien que la partícula fuente, (11) donde representa el número de fotones con el estado entrando en colisión por el volumen de unidad, sterioradian, energía y tiempo. Similarmente, es la densidad de fotones entrando en colisión a . Ecuación revisar 10 desde el punto de vista de , sumando sobre todas las ordenes de esparcir, y reemplazando que la línea integral con la integración sobre todos de espacio por el uso de la Función Delta de Dirac de , nosotros obtenemos (12) Donde es la dispersión Kernel (13) Y . La inspección de Ecuación 13 da a conocer que es una condicional PDF, exhibición que foton el transporte es un proceso de Markov. Que es, la probabilidad que un foton experimenta su colisión al es dada por la transición de probabilidad que depende solo en , el foton estado justo simplemente con anterioridad a esta(n-1) colisión. Más fundamentalmente, la Ecuación 12 implica que la solución posible caminatas aleatorias a través de es equivalente al conjunto de todas -espacio. 2. El calculo de valores esperados En muchos casos práctico de transporte de problemas, la especificación completa del campo de radiación desde el punto de vista de o es innecesaria. Las cantidades típicas de interés son la cantidad de energía depositada en un detector de una geometría y composición especificada o el número de fotones transmitido mediante un superficie determinado, una barrera de protección de radiación. Estas cantidades pueden describirse en nuestro formalismo por medio de una función que representa la contribución relativa de un foton colisionando a cantidad de interés. El significar valor por emitido foton sobre todos posible estados. a la es dado por promediar la función marcar (14a) (14aa) La correspondiente varianza es (14b) En términos de la notación usada en la Sección II para introducir Monte Carlo, designa el estado del sistema donde PDF asociado del sistema es la solución de la ecuación integral Fredholm (14c) Como un ejemplo de un marcador función, considerando un detector esférico de radio centró en unidad, es . El T, con dar la energía depositado al detector por la masa de (15) 4. Solución de monte Carlo de la ecuacion de boltzmann Un Monte Carlo (MC) simulación de un sistema de fuentes y absorver involucra azar selección de un conjunto finito de trayectoria de fotones o "historias", desde el conjunto de toda posible trayectorias dadas por la solución de la ecuación de transporte de Boltzmann. Esto es entonces la posible a reemplazar la integral de Ecuación 14 por una suma finita para obtener una estimación estadística de la cantidad de interés . En su forma más simple, MC es un juego de oportunidad, donde cada elección aleatoria es dictada por reglas isomorficas (formas iguales) a el elemental PDF que gobierna la absorción y dispersión de radiación en el sistema físico real. Por ejemplo, considerar una isotropico (direcciones iguales, no dependen de la dirección en que se miden) la fuente de punto empotró en un absorber finito. Cada foton de la trayectoria, o historia, se genera según el siguiente prescripción. El primero, una trayectoria es escogido para el emitido foton por probando el isotropico emisión PDF. Próxima, distancia al próximo sitio de colisión se prueba accidentalmente desde la exponencial ley de atenuación. Entonces, una trayectoria y la energía para la dispersión foton sacan forma la sección normalizada de cruz diferencial . A cada paso, el marcando función T, "Haga el foton interaccionar con el detector", poder ser aplicado. Este proceso de seleccionar el sitio de interacción , dispersión energía, y la trayectoria es repetida hasta que los fotones sea absorbió completamente o escapo desde la absorción. A. La Descripción Formal De La Simulacion De Monte Carlo Cada recorrido al azar o foton "historia" k puede ser representada por el conjunto donde cada vector simplemente antes de la colisión: denota el estado del foton (16) Donde , , y indica la posición, dirección, y energía de del foton inmediatamente antes de la colisión. El número , el foton de peso , es la probabilidad que el foton ha escapado absorción durante las primeras j-1 colisiones. Cada secuencia claramente tiene la estructura de un Markov de Cadena, desde cada estado es escogido por muestreo la probabilidad condicional distribución, . Así, en orden a demostrar ese cada es al azar dibujado desde el conjunto de todo posible trayectoria de Boltzmann, esto es suficientemente a mostrar ese Eligiendo determinado que tienen la forma de Ecuación 13. , involucra las opciones aleatorias siguientes: 1. Asigne energía y dirección saliendo (j-1) colisión. a. j=1: Primera Colisión de foton Primario, al azar asigna una trayectoria inicial, sitio de origen distribución de función b. j y, energía por muestreo la fuente . 2: Anteriormente dispersión del foton. a. Al azar escoja el proceso de interacción a (j-1) la colisión, basado sobre las magnitudes relativas de las secciones totales de cruz de compitiendo procesos ( absorción fotoeléctrico, dispersión coherente y incoherente, etc.). b. Pruebe el PDF, definido por la cruz diferencial sección de el proceso escogido en el Paso i), para encontrar la dirección saliendo el (j-1) colisión, esto es probando desde (17) c. Calcule la energía el Ej, saliendo la (j-1) colisión desde la energía dispersión ángulo la relación. 1. Asigne el peso saliendo el (j-1) colisión. 2. Encuentre el sitio de colisión rj (18) probando la distribución (ver IV.B.1) (19) para S, la distancia entre (j-1) y la colisión. 3. Encuentre la contribución de esta colisión a la cantidad de interés. 4. Retorne al paso 1. Desde estas elecciones aleatorias son independientes de uno otra, la probabilidad de elegir dadas es el producto de estos Individual PDFs. (20) donde la probabilidad condicional probada en el paso 1b: denota la distribución compuesta (21) k=1,.....m denota el proceso de dispersión, y . Anote esa Ecuación 20 es idéntico a la Ecuación 13, estableciendo que desde luego al azar sacada el muestreo desde la población deseada. es 5. El Monte Carlo estima de expectativa Valora; para simulaciones que involucran bajas número atómico medios, un suceso fotoeléctrico para todos los intentos prácticos termina la historia desde la baja-energía características de los rayos-x se absorben localmente. Así, estocasticamente simula colisiones fotoeléctricas representa "derrochado" calculo esfuerzo. Un común método de reducción calculo de tiempo relativo a la muestra de la varianza (" reducción de varianza") es á eliminar efecto fotoeléctrico como un posible mecanismo de interacción y reduce el foton peso , que saliendo la (j-1) colisión por la probabilidad de sobrevivir fotoeléctrico absorción. Específicamente, el PE de término se elimina Ecuación de forma 21 y reemplaza por . Entonces (22) sumando entonces encima de todas las historias simuladas rinde estimaciones estadísticas de la verdadera media y muestra la varianza : (23) Comparación de Ecuaciones 23 y 14 muestra que normalizaron colisión densidad es la contraparte analítica de foton peso. La convergencia de la estimación a con M creciente es garantizada por el teorema de límite central. A. La Generacion De Muestreos Al Azar La simulación de Monte Carlo se ha mostrada para ser una secuencia de distancia aleatoria a próxima colisión, tipo de proceso de colisión, y trayectoria y foton la energía que dejar colisión. Cada de estos pasos involucra selección de un muestreo x* desde la distribución apropiada f(x). Tal algoritmo es necesariamente altamente repetitivo, como las secuencias de azar las opciones deben repetirse para cada suceso de dispersión evento en el foton historia. Los números grandes de tales historias, sobre la orden de 5,000 a 500,000 deben ser simulados para obtener un intervalo de confianza suficientemente pequeña sobre la respuesta final. La precisión lograble es limitada por la computadora del usuario de los recursos: disponible memoria y tiempo procesador central. Para extender estos recursos, es deseable para aumentar al máximo la eficiencia de la técnica de muestreo empleada. La más usualmente usó digital - computadora de técnica es la reducción del problema, eligiendo X* desde f(x), al problema más simple de al azar eligiendo uniformemente distribución número desde el intervalo de unidad. Así, la selección de unas secuencias de variables aleatorias es equivalente a la generación uniformemente distribuida secuencia . La reducción de la muestra procesa a la generación de uniformemente distribuida al azar variables es descrita por el fundamental teorema de la inversión: Teorema. Dejar X ser al azar variable con PDF f(X), la función de distribución acumulativa (CPD) F(x), y dejar r* denotado un uniformemente distribuido número al azar sacado desde el intervalo de unidad. Entonces la probabilidad de elegir x* como definir por (24) es f(x*). Permita F-1(r) denota la inversa de F(x): Permita x*=F-1(r*), Estas igualdades, afirman que es igual al valor de la probabilidad que la escogido la variante uniforme r* es menos de F(y). Desde P(r*)=1 para todo r*, Esto muestra que el conjunto de variables al azar x* tiene el mismo acumulativo distribución de probabilidad (CPD) como el X determinado al azar variable X. El problema de azar eligiendo una de N posibilidades discretas probabilidades regido por tal que es el caso discreto de inversión analítica. Dado un número aleatorio r*, la variable aleatoria se encuentra por (25) si no, donde 6. Dispersión Compton - Monte Carlo En dispersión Compton, un foton es dispersado por un electrón en reposo, impartiendo algo de su energía al electrón. La energía, , del foton incidente es así compartidos entre la dispersión del foton, , y el efecto Compton, , de la cinemática de coliciones, que puede mostrarse que la energía del foton dispersado es relacionado con la energía y el angulo de dispersión del foton del foton incidente como sigue: (1) Donde y MeV. La seccion transversal para la dispersión Compton, basado en el trabajo de KleinNishi (2) Donde ro=2.81794*10-13cm es el radio clásico de los electrones. Esta sección transversal será tabulada y ploteado por NBS. La diferencial de la sección transversal de Klein-Nishina para dispersiones de un foton de energía a un angulo de con d de es dado por (3) Usando la transformación obtenemos (4) Para una energía dado del foton incidente, esta expresión tiene una función de densidad de probabilidad de (5) Donde, por y es él limite inferior de x. Definiendo la función densidad de probabilidad puede ser escrita como donde (6) y la acumulada función de probabilidad como (7) La muestra de distribución de Monte Carlo requiere soluciones de esta ecuación para x, un numero randon igualmente distribuido en [0,1). Everett y Cashwell usan un método de aproximación la cual es mas sesillo a implementar y razonablemente exacto. Ellos aproximan la inversa de la función como (8) Resumiendo, la decisión a simular es basado en la total sección transversal de Compton, y la partícula en el final estado son simulada por la muestra x de la ecu. 7 y calculando la energía y dirección de dispersión de fotones de las expresiones: (9) El electrón retorna teniendo energía cinética de (10) en unidades de , y el angulo de deflexión del electrón es dado por (11) La dispersión del foton y del electrón Compton son entonces transportados como una nueva generación de particulas. 2.4.1.Simulación de procesos aleatorios (usando números ) manuales y usando Lenguajes de propósito general como ; C, C++, Delphi, Visual´,etc. De problemas aplicados a servicios, sistemas productivos, de calidad, de inventarios, económicos, etc. Programa en fortran 90 Similacion con Monte Carlo SIMULATION OF THE MICROCANONICAL ENSEMBLE ON THE COEXSISTENCE CURVE AND IN THE METASTABLE REGION FOR THE NEAREST NEIGHBOURSING MODEL !......................................................................................... !......SIMULATION OF THE MICROCANONICAL ENSEMBLE !......ON THE COEXSISTENCE CURVE AND IN THE METASTABLE !......REGION FOR THE NEAREST NEIGHBOUR ISING MODEL !.........FIELD VERSIÓN !........DIETER W. HERMAN !.......GRUPO FUSION !.......................................................... ................................ DIMENSION ISS(12,12,12),IM(12),IP(12)DIMENSIÓN IDIST(2000) REAL DEMON,H REAL ENERGY,ET REAL RCLUDE RAL MODM2,PB,RAM REAL DMAV,MAGAV !.............................................................................................. H=0.0 L=12 MCSMAX=100 M=L*L*L/2 ISEED=4711 PB=0.0155 IPLAG=2 RECLUDE=L*L*L !.......INITIZALIZE DO 1 I=1,L IM(I)=I-1 IP(I)=I+1 1 CONTINUE DO 2 I=1,1000 IDIST(I)=0 2 CONTINUE DO 5 I=1,L DO 5 J=1,L DO 5K=1,L ISS(I,J,K)-13 5 CONTINUE C=0 DO 10 I=1,L DO 10 J=1,L DO 10 K=1,L RAN=RANF(ISEED) IF (RAN.GT,PB) GOTO 10 M=M+1 ISS(I,J,K)=ISS(I,J,K)+14 ISS(IM(I),J,K)=ISS(IM(I),J,K)+2 ISS(IP(I),J,K)=ISS(IP(I),J,K)+2 ISS(I,IM(J),K)=ISS(I,IM(J),K)+2 ISS(I,IP(J),K)=ISS(I,IP(J),K)+2 ISS(I,J,IM(K))=ISS(I,J,IM(K))+2 ISS(I,J,IP(K))=ISS(I,J,IP(K))+2 10 CONTINUE ENERGY=0.0 DO 20 I=1,L DO 20 J=1,L DO 20 K=1,L ICT=ISS(I,J,K) IVORZ=ISIGN(1,ICI) ICIA=ICI*IVORZ ENERGY=ENERGY+ICIA-7 20 CONTINUE ENERGY=-ENERGY*2.0*3.0/8.0-H*2.0*M ENERGY=ENERGY/32768.0 H=H*4.0/3.0 WRITE(*,6000) PB,ENERGY,M IF (IFLAG.EQ.1) STOP 1 !.............................................................................................. ! MONTE CARLO DEMAV=0.0 MAGAV=0.0 DEMON=0.0 FLDEM=0.0 DO 200 MCS=1,MCSMAX DO 100 IZ=1,L IMZ=IM(IZ) IPZ=IP(IZ) DO 100 IY=1,L IMY=IM(IY) IPY=IP(IY) DO 100 IX=1,L ICI=ISS(IX,IY,IZ) IVORZ=ISIGN(1,ICI) IEN=ICI*IVORZ-7 IF (DEMON-IEN-H*IVORZ.LT.0) GOTO 100 DEMON= DEMON-IEN-H*IVORZ !........FLIP SPIN…………. M=M-IVORZ ISS(IX,IY,IZ)=ICI-IVPRZ*14 ICH=-2*IVORZ ISS(IM(IX),IY,IZ)=ISS(IM(IX)IY,IZ)+ICH ISS(IP(IX),IY,IZ)=ISS(IP(IX),IY,IZ)+ICH ISS(IX,IMY,IZ)=ISS(IX,IMY,IZ)+ICH ISS(IX,IY,IZ)=ISS(IX,IPY,IZ)+ICH ISS(IX,IY,IPZ)=ISS(IX,IY,IPZ)+ICH 100 CONTINUE !......IPTR=10*DEMON+1 !......IDIST(IPTR)=IDIST(IPTR)+1 DEMAV=DEMAV/MCSMAX MAGAV=MAGAV/MCSMAX WRITE(*,6200) DEMAV, MAGAV FLUCT=(FLDEM-DEMAV*DEMAV/MCSMAX)/MCSMAX WRITE(*,6400) FLUCT ! DO 900 J=1,991,10 ! WRITE(*,6500) (IDIST(J-1+I),I=1,10) ! 900 CONTINUE !.........FORMATS 6000 FORMAT(1H,1E20.6,2X,1E20.6,2X,1I10) 6100 FORMAT (1H,1I10,3X,1E20.6,3X,1I10) 6200 FORMAT (IHO,’DEMON AV=’,1E20.6,3X,’MAG AV=’,1E20.6) 6300 FORMAT(1HO,1I10,1X,1E20.6,1X,1E2O.6,1X,1E20.6,1X,1I10) 6400 FORMAT(1HO,’DEMON FLUCTUATION=’,1E20.6) 6500 FORMAT(1HO,10(2X,1I10)) STOP END UNIDAD 3.- Generación de Variables Aleatorias 3.1 Introducción 3.2.Métodos para Generar Variables aleatorias 3.2.1Transformada inversa, aceptación, rechazo, convolución, directos. 3.2.1.1.Generación de variables aleatorias discretas: distribuciones poisson, binomial, y geométrica 3.2.1.2 Generación de variables aleatorias continuas: distribuciones uniforme, exponencial, normal, Erlang, Gamma, Beta, y Triangular 3.2.2.Distribuciones Empíricas de probabilidad 3.2.3 Simulación de procesos aleatorios manuales y usando Variables Aleatorias usando lenguajes de propósito general: C, C++, Delphi, Visual´s, de problemas aplicados a servicios, sistemas productivos, de calidad, de inventarios, económicos, etc. UNIDAD 4.- Lenguajes de Simulación y Simuladores de Eventos Discretos 4.1 Lenguajes de simulación y simuladores LENGUAJES DE PROPOSITO GENERAL En los años 50 se realizaron varios compiladores primitivos y fue en 1957 cuando apareció el primer compilador de FORTRAN. El compilador de FORTRAN (FORmula TRANslator) estaba diseñado para traducir a lenguaje máquina expresiones y operaciones matemática, e incluso permitía la manipulación de matrices. La aparición del FORTRAN fue un gran cambio para los programadores que no todos aceptaron de buen grado. FORTRAN se ha utilizado extensivamente desde que apareció hasta hoy en día, y puede considerarse el lenguaje estandard del cálculo científico. Unos años después de aparecer el FORTRAN apareció el lenguaje ALGOL 60 (Algorithm Language), que fue diseñado para ser independiente del ordenador con una gramática bien definida. También de aquella época es el COBOL (Common Business Oriented Language) que se diseño para para las manipulaciones de datos normales en aplicaciones de negocios y con un uso mayor del lenguaje inglés en sus frases. lenguajes de alto nivel entre los que podemos mencionar : BASIC (Beginners All-purpose Symbolic Instructional Code), PL/I , APL, PASCAL, ADA, MODULA , C , RPG, PROLOG, LISP, ... etc. Alguno de estos lenguajes han sido diseñados para un tipo concreto de aplicaciones. Por ejemplo, el ADA para aplicaciones relacionadas con defensa, RPG para transacciones usuales en los bancos. La evolución de los lenguajes de programación ha estado guiada por la evolución de: • Los ordenadores y sus sistemas operativos. • Las aplicaciones. • Los métodos de programación. • Los fundamento teóricos. • La importancia dada a la estandarización. 4.1.1 Características, aplicación y uso lenguajes: SLAM, ECSL, SIMAN, GPSS, etc. LENGUAJES DE PROPOSITO ESPECIFICO (ORIENTACION POR PROCESO) VENTAJAS DE LENGUAJES DE SIMULACION • REDUCCION EN LA TAREA DE PROGRAMACION: El tiempo se reduce, GPPS simula con pocas instruciones eventos que con fortran llevarian un considerable No. De lineas. • PUEDE SER USADA MUCHAS VECES MIENTRAS EL MODELO HALLA SIDO CONTRUIDO • MEJOR DEFINICIÓN DEL SISTEMA:Se definen con facilidad las interrelaciones entre entidades del sistema. • LA SIMULACION PERMITE ESTIMAR MEDIDAS DE DESEMPEÑO DEL SISTEMA EXISTENTE BAJO DIFERENTES ESENARIOS DE OPERACIÓN • PERMITE ESTUDIAR AL SISTEMA POR PERIODOS MUY LARGOS EN PERIODOS COMPRIMIDOS Lenguajes de proposito especial • GPSS ( General Purpose Somulation Sistem): • SIMSCRIPT ( No tiene significado): Fortran y • GASP ( General Activity Simulation Program): • SLAM (Simulation Language for Alternative • SIMNETT II: Fortran, insertos de C (archivos). Ensamblador. ensamblador. Fortran. Modeling): Fortran. Selección del lenguaje de simulación. • • • • • • Manuales disponibles. Entender e interpretarlos. Compilador compatible. Eficiencia: tiempo de organizar, programar , compilar y ejecutar. Costos : Adquisición del paquete, instalación, mantenimiento actualización. Conocimiento del lenguaje. Justificación económica: Inversión. y GPSS/H (GENERAL PURPOSE SIMULATION SYSTEM) • LENGUAJE DE SIMULACION DISCRETA • FUE DISEÑADO CON UN LENGUAJES EMSAMBLADOR • DISEÑADO POR GEOFREY GORDON EN LA DECADA DE LOS 80’as • EXISTEN DIFERENTES PRESENTACIONES • CONSIDERA LOS PROCESOS COMO ENTIDADES QUE SE MUEVEN DENTRO DEL SISTEMA ESTOS PROCESOS SE CONOCEN COMO TRANSACCIONES DESCRIPCION GENERAL • UN BLOQUE REPRESENTA UNA ACCION O EVENTO QUE PUEDE AFECTAR A UNA O MAS TRANSACCIONES Y CAMBIAR EL ESTADO DEL SISTEMA • LA COLECCIÓN DE BLOQUES REPRESENTA AL SISTEMA TOTAL LLAMADO DIAGRAMA DE BLOQUES • CADA BLOQUE EN EL DIAGRAMA DE BLOQUE REPRESENTA UNA LINEA EN EL PROGRAMA FUENTE • NO ES UN LENGUAJE ESTRUCTURADO FUNCIONES y VARIABLES, PARAMETROS y SAVEVALUES. Utilizando el lenguaje GPSS VARIABLES Cuando es necesario realizar un cálculo se define una variable (expresión aritmética que devuelve un valor). Es decir, en GPSS, una variable devuelve un valor cada vez que se la invoca. A diferencia de otros lenguajes, no es posible asignar valor a una variable, ya que esta define una expresión aritmética, la cual se evalúa cada vez que una transacción hace referencia a la variable así definida. SINTAXIS DEL BLOQUE VARIABLE La sintaxis de este bloque es la siguiente: nombr VARIABLE operandos y operadores numer VARIABLE operandos y operadores nombr : es el nombre de la variable numer : es el número de la variable (Sólo en main frames) operadores: # para multiplicar (* en main frames) / para dividir @ para obtener el resto de la división + para sumar - para restar ^ para colocar el exponente (sólo para PC) operandos: cualquier atributo numérico estandar (SNA). El bloque VARIABLE (lo mismo que el bloque FUNCTION que veremos después), puede definirse en cualquier parte del modelo (similar a los bloques TABLE, QTABLE, STORAGE que son definiciones que el GPSS toma antes de comenzar la simulación). En las VARIABLE se truncan los decimales de los cálculos intermedios y del resultado final. Si en lugar de definir una VARIABLE se define una FVARIABLE, los cálculos intermedios se realizan con decimales; el resultado final se trunca. Series de números al azar (RN11, RN2, RN3, ..., RN7, RN8,RN92,...,RN1000,...): Existen series independientes de números al azar que el sistema ofrece al usuario. Basta con hacer referencia a RN3, por ejemplo, y el GPSS entrega un número al azar x de la tercera serie de números al azar: 0 x 999. Fácilmente es posible aumentar el rango de definición mediante el uso de una variable: AZAR VARIABLE 1000#RN3+RN3 En este caso V$AZAR entregará números x al azar tal que: 0 x 999999 Teniendo definida la variable AZAR (se la invoca con V$AZAR) es posible simular la generación de números al azar dentro de cualquier rango, con una distribución aproximadamente uniforme dentro del mismo. Para simular una ruleta (números al azar entre 0 y 36): RULA VARIABLE V$AZAR@37 (obtiene el resto de la división por 37) Para simular un dado (números al azar entre 1 y 6): DADO VARIABLE 1+V$AZAR@6 Para generar un número al azar entre 11 y 18: NUME VARIABLE 11+V$AZAR@8 Recordar que el azar de computadora es pseudoazar, ya que el método de obtención es algorítmico (conociendo el algoritmo se puede predecir la serie completa). Si se quiere cambiar la semilla de generación de las series RN1 a RN8 se debe utilizar el bloque RMULT. No es posible cambiar la semilla de generación de las serie RN9 en adelante. FUNCIONES Muchos de los datos que se manejan en los sistemas reales son empíricos. No se tiene una expresión analítica. Se tienen las coordenadas X,Y producto de las mediciones con los cuales se define una función (FUNCTION). La función devuelve un valor cada vez que se la invoca. Basándose en el valor que tiene la variable independiente; la función obtiene un valor como resultado de la interpolación correspondiente que entrega a la transacción que invocó a la función. Dicho valor se trunca, excepto cuando se utiliza en un GENERATE o en un ADVANCE como segundo operando (operando B). En este caso el truncamiento se realiza luego de haber multiplicado el valor de la función por el operando A del bloque. SINTAXIS DEL BLOQUE FUNCTION La sintaxis de este bloque es la siguiente: nombr FUNCTION A,B numer FUNCTION A,B · nombr: es el nombre de la función · numer: es el número de la función (Sólo en main frames) · A : es la variable independiente: cualquier SNA. · B : es el tipo de función y el número de puntos. Se escribe el bloque FUNCTION y luego los pares de X,Y definidos por B. Los pares de valores se separan mediante una barra (/). X se separa de Y por una coma (,). Como ejemplo, se define la función VEHIC, discreta, de 4 puntos: VEHIC FUNCTION RN6,D4 Devuelve el tipo de vehículo, suponiendo que: .2,1/.5,2/.9,3/1,4 vehic tipo 1=20%; vehic tipo 2=30%; vehic tipo 3=40%; vehic tipo 4=10% Si la variable independiente de una función es cualquiera de las series de números al azar (RN1 a RNn3), cada vez que se invoca a la función el GPSS genera un número al azar x, tal que 0 x < 1, con una precisión de partes por millón que ingresa como valor de interpolación en la función. Con la probabilidad acumulada de una distribución (tal como la usada en el ejemplo de la página anterior para generar el tipo de vehículo) y utilizando como variable independiente a cualquiera de las series de números al azar provistos por el lenguaje, es posible generar cualquier tipo de distribución. Teniendo la distribución para valor medio igual a uno, se puede hacer que la duración de una tarea o los tiempos entre arribos de transacciones tengan esa distribución. Basta con poner dicha función como operando B del ADVANCE o del GENERATE respectivo. El valor medio de la tarea o de tiempo entre arribos se coloca como operando A (recordar que el sistema multiplicará el valor de la función por este valor A; al estar definida la función para valor medio igual a uno y al multiplicarse todos los valores por A, el valor medio de dichos valores será A, salvo el problema del truncamiento que afecta los resultados). TIPOS DE FUNCION C: Continua. Al momento de la evaluación se realiza una interpolación lineal entre los puntos definidos que están a uno y otro lado del valor x de la variable independiente. Si x está entre xi y xi+1 se interpola linealmente entre yi e yi+1. D: Discreta. Al momento de la evaluación si x está entre xi y xi+1 devuelve el valor yi+1 (toma "el valor de la derecha"). E: Discreta de atributos numéricos. Igual que en el tipo D devuelve también el valor yi+1 para x entre xi y xi+1; con la diferencia que las ordenadas que se definen en este tipo de función son atributosnuméricos estandar. No son un valor sino que son una referencia a un SNA que tiene un valor. Ejemplos Para simular una ruleta (números al azar entre 0 y 36): RULA FUNCTION RN2,C2 (RN2 nunca alcanza el valor 1, por 0,0/1,37 lo que nunca puede salir el 37) Para simular un dado (números al azar entre 1 y 6): DADO FUNCTION RN2,C2 Mínimo valor es 1; Máximo valor es 6.999... 0,1/1,7 Recordar que trunca los decimales Ambas funciones son continuas. El sistema interpola linealmente entre los dos puntos definidos, entregando un valor entero (trunca los decimales). Un hecho común es tener arribos de transacciones en forma totalmente al azar ("random"). El arribo puede ocurrir en cualquier momento; la probabilidad de arribo aumenta con el tiempo. Es decir la probabilidad p de un arribo se define: p = valor medio x t Se demuestra que la distribución es exponencial: f(t)=valor medio . e -valor medio.t La probabilidad acumulada y=F(t) se obtiene integrando la función f(t) entre 0 y t. y=1-e-valor medio.t -valor medio . t = ln(1-y) Para valor medio igual a uno: t = -ln(1-y) Se puede definir la función POISS basándose en lo anterior: POISS FUNCTION RN4,C24 0.0,0.0/0.1,0.104/0.2,0.222/0.3,0.355/0.4,0.509/0.5,0.69 0.6,0.915/0.7,1.2/0.75,1.38/0.8,1.6/0.84,1.83/0.88,2.12 0.9,2.3/0.92,2.52/0.94,2.81/0.95,2.99/0.96,3.2/0.97,3.5 0.98,3.9/0.99,4.6/0.995,5.3/0.998,6.2/0.999,7.0/0.9997,8.0 Si se quiere generar arribos de personas con un valor medio igual a 60 y distribución exponencial, basta con representar este arribo con el bloque: GENERATE 60,FN$POISS Si se quiere bifurcar en un 20% al rótulo CAJA en un 30% al rótulo BAR en un 40% al rótulo INF en un 10% al rótulo CHAU se define la función UNO, con la probabilidad acumulada: UNO FUNCTION RN2,D4 .2,CAJA/.5,BAR/.9,INF/1,CHAU y se representa la bifurcación a las cuatro opciones propuestas: TRANSFER ,FN$UNO En un sistema en dónde se comienza a simular partir de las 8 de la mañana, si se quiere simular que: hasta las 10 de la mañana bifurca el 50% al rótulo BAR entre las 10 y las 12 hrs bifurca el 70% al rótulo BAR a partir de las 12 horas bifurca el 100% al rótulo BAR BIF FUNCTION AC1,D3 se supone que la unidad de tiempo es 7200,500/14400,700/28800,1000 el segundo; AC1 es el reloj (cero al comenzar la simulación; vuelve a cero con CLEAR). Para representar la bifurcación propuesta, se debe colocar: TRANSFER FN$BIF,,BAR (en PC) TRANSFER .FN$BIF,,BAR (en "main frame") Parámetros y Savevalues Los atributos de las entidades de un sistema pueden variar a lo largo de una simulación. Por ejemplo, la cantidad de cajas habilitadas en un lugar de atención al público ó la cola que elige cada persona a la salida de un supermercado. En GPSS existen casilleros de memoria donde se pueden almacenar estos valores. Existen dos tipos bien diferenciados: - Pertenecientes a las transacciones (parámetros): cada transacción tiene sus casilleros de memoria que le son propios (Al nacer la transacción se inicializan en cero; al morir son destruidos, liberándose la memoria utilizada). Son como "bolsillos" de la transacción; cada transacción tiene acceso a sus propios parámetros. En "main frame" la cantidad de parámetros que tiene una transacción es fija y es igual a 12 (aunque se puede modificar utilizando el sexto operando del GENERATE). En PC arma una lista con el nombre/número de cada parámetro utilizado. - Comunes al sistema (Savevalues): Es como un vector con casilleros de carácter público a los que todas las transacciones tienen acceso. Son como carteles con valores numéricos que todas las transacciones tienen a su alcance. Se inicializan en cero antes de comenzar la simulación (salvo indicación en contrario en el bloque INITIAL). Parámetros, asignación de valores: Mediante el bloque ASSIGN se modifica el valor de los parámetros. SINTAXIS DEL BLOQUE ASSIGN La sintaxis de este bloque es la siguiente: ASSIGN A,B ASSIGN A+,B ASSIGN A-,B · A: es el número del parámetro a asignar; sumar; restar · B: valor a asignar; sumar; restar del parámetro A. NOTA: En PC, el operando A puede ser un nombre. Ejemplos ASSIGN 1,10 significa P1=10 ASSIGN 2+,5 significa P2=P2+5 ASSIGN 3-,2 significa P3=P3-2 ASSIGN SUEL+,100 significa P$SUEL=P$SUEL+100 (en PC) Mediante el bloque SELECT es posible asignar a un parámetro el número de recurso seleccionado: SELECT NU A,B,C,,,F (selecciona la Facility no usada) SELECT MIN A,B,C,,E (selecciona el recurso de valor mínimo) · A: Es el número de parámetro que recibe lo seleccionado · B: Número de recurso desde se comienza la selección · C: Número de recurso donde finaliza la selección · E: ¿Qué es lo que se está seleccionando? · F: Rótulo al que bifurca si no pudo seleccionar ninguno NOTA: NU, significa "not used". Sólo se aplica para FACILITIES. MIN, significa mínimo y siempre existe un mínimo. Por tanto, NU no lleva operando E (se sabe que es FACILITY); MIN no lleva operando F (siempre existe un mínimo por lo que no tiene sentido el rótulo alternativo) . Ejemplos SELECT NU 1,11,18,,,OCUP Intenta seleccionar entre las Facilities 11 a 18 la Facility no utilizada; en caso de estar todas en uso, bifurca al rótulo OCUP. Si la selección fue exitosa el parámetro 1 recibe el número de FACILITY seleccionado. La selección comienza en la Facility 11 y finaliza al encontrar una Facility que no está en uso ó al llegar a la Facility 18. SELECT MIN 1,11,18,,Q Selecciona la cola mínima entre las colas 11 a 18. En caso de igualdad se queda con el número de cola menor (similar al ejemplo anterior). El parámetro 1 recibe un número de cola, para este caso un número entre 11 y 18 inclusive. Direccionamiento indirecto: Mediante el uso de parámetros es posible hacer referencia a un recurso cuyo número es el número de parámetro. Si se quiere simular que al salir de un supermercado donde hay ocho cajas habilitadas (representadas por las FACILITIES 11 a 18) el cliente busca si hay alguna caja desocupada y se ubica en ella, o en caso de estar todas ocupadas selecciona la de cola mínima para hacer lo propio: SELECT NU 1,11,18,,,OCUP TRANSFER ,CAJA OCUP SELECT MIN 1,11,18,,Q Es interesante observar que CAJA QUEUE *1 este único conjunto de SEIZE *1 bloques representa DEPART *1 ocho caminos distintos, ADVANCE 60,30 los que simultáneamente se RELEASE *1 representan aquí El direccionamiento indirecto permite también seleccionar una función o variable cuyo número es el valor de un parámetro, tal como puede verse en el siguiente ejemplo: COBRANZAS DE SERVICIOS A un banco destinado a la cobranza de servicios, arriban personas cada 15 ± 5 seg, las cuales pertenecen a cuatro tipos distintos de clientes, según la tabla siguiente: Tipo probabilidad Tiempo en pagar el servicio ------ ---------------- ------------------------------------01 40% 90 ± 30 seg. 02 25% 60 ± 30 seg. 03 15% 45 ± 15 seg. 04 20% 120 ± 60 seg. ------ ---------------- ------------------------------------Para efectuar el pago hay seis cajas con una cola por caja. El cliente selecciona la caja desocupada o la que tiene menor cola, demorando un tiempo que es función del tipo de cliente. Terminada la operación los clientes se retiran del banco. Simular durante el horario bancario de 10 a 15 hs. Modelo en GPSS: 10 UNO EQU 1 ;equivalencia entre 20 DOZ EQU 2 ;los números en 30 TRES EQU 3 ;castellano y su 40 CUATRO EQU 4 ;valor numérico 50 UNO FUNCTION RN3,D4 ;prob. acum. tipo cliente .40,1/.65,2/.80,3/1,4 60 AZAR VARIABLE RN4#1000+RN4 ;0<=azar<=999999 70 UNO VARIABLE 60+V$AZAR@61 ;90 ± 30 80 DOZ VARIABLE 30+V$AZAR@61 ;60 ± 30 90 TRES VARIABLE 30+V$AZAR@31 ;45 ± 15 100 CUATRO VARIABLE 60+V$AZAR@121 ;120 ± 60 110 GENERATE 15,5 ;llegada de clientes 120 ASSIGN 1,FN1 ;P1=tipo de cliente 130 SELECT NU 2,1,6,,,OCUP ;P2=cajero desocupado 140 TRANSFER ,PAG 150 OCUP SELECT MIN 2,1,6,,Q ;P2=cola mínima 160 PAG QUEUE *2 ;se ubican en la cola 170 SEIZE *2 ;toman al cajero elegido 180 DEPART *2 ;dejan la cola 190 ADVANCE V*1 ;c/tipo usa su variable 200 RELEASE *2 ;liberan al cajero 210 TERMINATE ;se van del sistema 220 GENERATE 60 ;reloj 230 TERMINATE 1 ;es un minutero Resultados obtenidos: START_TIME END_TIME BLOCKS FACILITIES STORAGES FREE_MEMORY 0 18000 13 6 0 308768 LINE LOC BLOCK_TYPE ENTRY_COUNT CURRENT_COUNT RETRY 110 1 GENERATE 1190 0 0 120 2 ASSIGN 1190 0 0 130 3 SELECT 1190 0 0 140 4 TRANSFER 651 0 0 150 OCUP SELECT 539 0 0 160 PAG QUEUE 1190 2 0 170 7 SEIZE 1188 0 0 180 8 DEPART 1188 0 0 190 9 ADVANCE 1188 5 0 200 10 RELEASE 1183 0 0 210 11 TERMINATE 1183 0 0 220 12 GENERATE 300 0 0 230 13 TERMINATE 300 0 0 FACILITY ENTRIES UTIL. AVE._TIME AVAILABLE OWNER PEND INTER RETRY DELAY 1 205 0.989 86.85 1 1488 0 0 0 1 2 215 0.973 81.50 1 1485 0 0 0 1 3 210 0.940 80.59 1 1483 0 0 0 0 4 199 0.893 80.82 1 1484 0 0 0 0 5 183 0.859 84.52 1 1481 0 0 0 0 6 176 0.832 85.16 1 0 0 0 0 0 QUEUE MAX CONT. ENTRIES ENTRIES(0) AVE.CONT. AVE.TIME AVE.(0) RETRY 1 2 1 206 23 0.70 61.26 68.96 0 2 2 1 216 56 0.51 42.45 57.31 0 3 1 0 210 109 0.26 22.28 46.32 0 4 1 0 199 148 0.15 13.79 53.82 0 5 1 0 183 157 0.08 8.25 58.04 0 6 1 0 176 161 0.04 4.15 48.67 0 Otro modelo en GPSS (representa al mismo sistema de otra manera): 10 MEDIA FUNCTION P1,D4 ;valor medio pago 1,90/2,60/3,45/4,120 20 DESVIO FUNCTION P1,D4 ;desvío máximo pago 1,30/2,30/3,15/4,60 30 DESVIO VARIABLE FN$DESVIO ;operando B del ADVANCE 50 UNO FUNCTION RN5,D4 ;probab. acumulada tipo .40,1/.65,2/.80,3/1,4 110 GENERATE 15,5 ;llegada de clientes 120 ASSIGN 1,FN$UNO 130 SELECT NU 2,1,6,,,OCUP ;P2=camino elegido 140 TRANSFER ,PAG 150 OCUP SELECT MIN 2,1,6,,Q ;P2=cola minima 160 PAG QUEUE *2 ;se ubica en la cola 170 SEIZE *2 ;toman al cajero 180 DEPART *2 ;dejan la cola 190 ADVANCE FN$MEDIA,V$DESVIO;tiempo f(tipo) 200 RELEASE *2 ;liberan al cajero 210 TERMINATE ;se van del sistema 220 GENERATE 60 ;reloj 230 TERMINATE 1 ;es un minutero Resultados obtenidos: START_TIME END_TIME BLOCKS FACILITIES STORAGES FREE_MEMORY 0 18000 13 6 0 317360 LINE LOC BLOCK_TYPE ENTRY_COUNT CURRENT_COUNT RETRY 110 1 GENERATE 1188 0 0 120 2 ASSIGN 1188 0 0 130 3 SELECT 1188 0 0 140 4 TRANSFER 788 0 0 150 OCUP SELECT 400 0 0 160 PAG QUEUE 1188 1 0 170 7 SEIZE 1187 0 0 180 8 DEPART 1187 0 0 190 9 ADVANCE 1187 6 0 200 10 RELEASE 1181 0 0 210 11 TERMINATE 1181 0 0 220 12 GENERATE 300 0 0 230 13 TERMINATE 300 0 0 FACILITY ENTRIES UTIL. AVE._TIME AVAILABLE OWNER PEND INTER RETRY DELAY 1 224 0.980 78.83 1 1478 0 0 0 1 2 204 0.953 84.09 1 1487 0 0 0 0 3 208 0.920 79.69 1 1479 0 0 0 0 4 194 0.878 81.53 1 1485 0 0 0 0 5 187 0.839 80.83 1 1488 0 0 0 0 6 170 0.756 80.05 1 1480 0 0 0 0 QUEUE MAX CONT. ENTRIES ENTRIES(0) AVE.CONT. AVE.TIME AVE.(0) RETRY 1 2 1 225 49 0.52 41.60 53.18 0 2 1 0 204 91 0.34 29.85 53.88 0 3 1 0 208 144 0.17 14.32 46.53 0 4 1 0 194 164 0.07 6.63 42.87 0 5 1 0 187 174 0.03 2.72 39.15 0 6 1 0 170 168 0.00 0.32 27.50 0 MARCO DE REFERENCIA DE LA MODELACIÓN CON SIMNET El diseño de simnet se basa en la idea general de los modelos de simulación discreta pueden crearse de una u otra manera como sistemas de líneas de espera Los nodos en sinnet II estan conectados por ramas. Conforme las transacciones recorren las ramas estas ejecutan importantes funciones en las entre las que se encuentran • Controlar el flujo de transacciones en cualquier parte de la red • Recolectar estadísticas pertinentes • Efectuar cálculos aritméticos OTRAS CAPACIDADES DE SIMNET II • Ambiente interactivo de depuración y ejecución • Estimación del periodo fe transmisión usando graficas interactivas • Implementación interactiva de los métodos del subintervalo y de replica para recolectar estadísticas globales • Lectura y escritura de desde archivos externos durante la ejecución • Uso de indexación para presentar segmentos de modelación repetitiva • Simnet se basa en el uso de cuatro nodos solamente lo que hace muy fácil de aprender y usar a pesar de la simplicidad el lenguaje es simplemente poderoso para abordar las situaciones mas complejas • Simnet es total mente interactivo tanto como para depurar así como parar también obtener resultados estadísticos globales, permite la estimación del periodo de transmisión y luego la implementación del método estadístico global del subintervalo o de replica siempre sin salir del método interactivo de ejecución. 4.1.2 Simuladores: PROMODEL, TAYLOR ED, ARENA, WITNESS , etc. 4.2 Aprendizaje y Uso de un Simulador 4.2.1 Características del software 4.2.2 Elementos del modelo 4.2.3 Menús principales 4.2.4 Construcción del modelo 4.2.5 Practicas usando el simulador de problemas aplicados a servicios, sistemas productivos, de calidad, de inventarios, económicos, etc., UNIDAD 5.- Proyecto de Aplicación 5.1 Proyecto Final el cuál consiste en el análisis, modelado y simulación de sistema de servicios o productivo de una empresa para detectar las mejoras posibles a realizar, y plantear acciones que mejoren el desempeño de sistemas y que en el caso de poder implementarse se lleve hasta este nivel. http://www.cis.ufl.edu/~fishwick/introsim/node5.html#SECTION00050000000000000000 http://www.investigacion-operaciones.com/conceptos_modelos.htm