simulacin - Servidor de Apoyo al Sistema Escolarizado

Anuncio
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
Descargar