SlideShare una empresa de Scribd logo
1 de 99
Descargar para leer sin conexión
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
1
Instituto Tecnológico de Acapulco
Ingeniería en Sistemas
Computacionales
Apuntes de
Apuntes de
Apuntes de
Apuntes de
Simulación
Simulación
Simulación
Simulación
Catedrático
Ing. Vales Ortiz Gilberto
Alumno
Horario
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
2
Índice
Unidad I. Introducción a la simulación
Unidad I. Introducción a la simulación
Unidad I. Introducción a la simulación
Unidad I. Introducción a la simulación
Introducción................................................................................................................... 4
Proceso de la simulación ............................................................................................... 5
Actividades de presimulación........................................................................................ 5
Actividades de desarrollo .............................................................................................. 7
Actividades de operación .............................................................................................. 8
Consideraciones relativas a la simulación..................................................................... 9
Variables exógenas...................................................................................................... 11
Variables de estado...................................................................................................... 12
Variables endógenas.................................................................................................... 12
Parámetros................................................................................................................... 12
Características de operación........................................................................................ 12
Identidades................................................................................................................... 12
Métodos analíticos, numéricos y de simulación.......................................................... 14
Simulación de un sistema de inventarios..................................................................... 17
Unidad II. Generación de Números Pseudoaleatorios
Unidad II. Generación de Números Pseudoaleatorios
Unidad II. Generación de Números Pseudoaleatorios
Unidad II. Generación de Números Pseudoaleatorios
Método de congruencias.............................................................................................. 25
Método multiplicativo ................................................................................................. 26
Computadoras binarias................................................................................................ 27
Computadoras decimales............................................................................................. 28
Pruebas estadísticas ..................................................................................................... 29
Prueba de medias......................................................................................................... 31
Prueba de varianzas..................................................................................................... 34
Prueba de poker........................................................................................................... 35
Prueba de series........................................................................................................... 37
Apéndice...................................................................................................................... 40
Definiciones................................................................................................................. 40
Teoremas ..................................................................................................................... 42
Unidad III. Generación de valores de variables aleatorias
Unidad III. Generación de valores de variables aleatorias
Unidad III. Generación de valores de variables aleatorias
Unidad III. Generación de valores de variables aleatorias
Método de transformación inversa.............................................................................. 44
Método de rechazo ...................................................................................................... 47
Método de composición .............................................................................................. 50
Distribución de POISSON........................................................................................... 51
Distribución ERLANG................................................................................................ 53
Distribución binomial.................................................................................................. 53
Método de transformación inversa para distribuciones discretas................................ 54
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
3
Unidad IV. Lenguaje de Simulación
Unidad IV. Lenguaje de Simulación
Unidad IV. Lenguaje de Simulación
Unidad IV. Lenguaje de Simulación
Estructura del lenguaje ................................................................................................ 58
Lenguajes específicos de simulación........................................................................... 60
Características de los lenguajes de simulación............................................................ 60
Clasificación de los lenguajes de simulación.............................................................. 61
Introducción a los bloques GPSS ................................................................................ 62
Lenguaje GPSS............................................................................................................ 64
Tipos de bloques de GPSS .......................................................................................... 70
Símbolos de los diagramas de bloques de GPSS ........................................................ 71
Simulación de los sistemas discretos........................................................................... 83
Unidad V.
Unidad V.
Unidad V.
Unidad V. Validación
Validación
Validación
Validación
Cálculo del número óptimo de simulación.................................................................. 90
Cálculo de número de réplicas .................................................................................... 92
Reducción de varianza................................................................................................. 93
Validación de resultados.............................................................................................. 95
Optimización ............................................................................................................... 97
Sensibilidad y experimentación................................................................................... 98
Monitoreo .................................................................................................................... 98
Bibliografía.................................................................................................................. 99
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
4
UNIDAD I
Introducción A La Simulación
La simulación consiste básicamente en construir modelos informáticos que describen la
parte esencial del comportamiento de un sistema de interés, así como en diseñar y realizar
experimentos con el modelo y extraer conclusiones de sus resultados para apoyar la toma de
decisiones. Típicamente, se utiliza en el análisis de sistemas tan complejos que no es posible su
tratamiento analítico o mediante métodos de análisis numéricos. Sus orígenes están en los
trabajos de Student para aproximar la distribución que lleva su nombre, y los métodos que Von
Neumann y Ulam introdujeron para resolver ecuaciones integrales. Desde entonces, la
Simulación ha crecido como una metodología de experimentación fundamental en campos tan
diversos como la Economía, la estadística, la Informática o la Física, y con enormes aplicaciones
industriales y comerciales, como los simuladores de vuelo, los juegos de simulación, o la
predicción bursátil o meteorológica.
Existen diversas maneras para definir el término simulación. Sin embargo debido a que se
considera a la simulación como una extensión lógica y natural de los modelos analíticos y
matemáticos, inherentes a la Investigación de Operaciones, la siguiente definición es considerada
como una de las más completas.
Simulación: “Es una técnica numérica para conducir experimentos en un computador
digital, la cual incluye ciertos tipos de relaciones lógicas y matemáticas necesarias para describir
la estructura y comportamiento de un sistema complejo del mundo real sobre un periodo de
tiempo”.
También se considera a la simulación como un proceso para describir la esencia de la
realidad, el cual incluye la construcción, experimentación y manipulación de un modelo
complejo en un computador.
El uso de la metodología de simulación ofrece ventajas y desventajas, entre las cuales
podemos mencionar las siguientes:
Ventajas:
1. La simulación hace posible estudiar y experimentar con las interacciones complejas de un
sistema dado (sin importar cuál).
2. A través de la simulación podemos estudiar el efecto de cambios ambientales,
organizacionales de cierta información, en la operación del sistema.
3. La observación detallada del sistema simulado nos permite tener una mejor comprensión
del mismo.
4. La experiencia al diseñar un modelo de simulación para computadora es más valiosa que
la simulación en sí.
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
5
5. La simulación nos permite experimentar con situaciones nuevas, para los cuales no se
tiene o hay poca información.
Desventajas:
1. Los modelos de simulación para computadora son costosos y requiere tiempo para
desarrollarse y validarse.
2. Se requiere gran cantidad de corridas para encontrar “soluciones óptimas”.
3. Es difícil aceptar los modelos de simulación.
4. Los modelos de simulación no son de optimización directa (son modelos de análisis).
5. Se pueden tener restricciones o limitaciones en la disponibilidad del software requerido.
Filosofía, Desarrollo E Implementación De Un Modelo De Simulación
La simulación es una de las herramientas más fáciles de usar en la ciencia administrativa,
pero posiblemente una de las más difíciles de aplicar apropiadamente.
El Proceso De La Simulación.
Es apropiado examinar el proceso completo para el cuál el análisis de simulación es
planeado y ejecutado. El diseño del modelo de simulación es en sí mismo una parte crítica de
cualquier estudio.
El proceso comprende tres tipos de actividades:
1. Actividades de presimulación.
2. Actividades de desarrollo.
3. Actividades de operación.
Actividades De Presimulación
La primera actividad es el reconocimiento del problema, este nos lleva al estudio y
análisis del sistema y culmina en el establecimiento de un objetivo dirigido a la solución del
problema.
Estos objetivos se pueden categorizar en:
Caracterización del sistema a ejecutar esto nos lleva a:
1. Selección de los parámetros de operación del sistema ya existente.
2. Selección de los parámetros de operación de un sistema propuesto.
3. Exploración del comportamiento del sistema.
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
6
Modificación De Un Sistema Existente
Diseño de un nuevo sistema.
En esta etapa del proceso el usuario debe evaluar las diferentes herramientas disponibles
relacionadas con su objetivo.
Ejemplos:
• EOQ: Modelo Tamaño de lote (control de inventarios) método de solución
deductivo.
• SIMPLEX: Es una solución algorítmica.
La simulación es una técnica apropiada donde no es factible experimentar con el sistema
mismo o donde las técnicas analíticas directas no son disponibles.
ACTIVIDADES DE PRESIMULACIÓN
RECONOCIMIENTO
DEL PROBLEMA
ANÁLISIS DEL
SISTEMA
ESTABLECIMIENTO
DEL OBJETIVO
DEDUCTIVO SIMULACIÓN ALGORITMO
SELECCIÓN
APROXIMADA
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
7
Actividades De Desarrollo
Las primeras actividades de desarrollo son el diseño y la implementación del modelo de
simulación. Después que estas tareas son completadas la siguiente actividad es la “verificación
del modelo”.
En el estudio del diseño de sistemas, el propósito es producir un sistema que satisfaga
algunas especificaciones. El diseñador puede elegir o planear determinados sistemas de
componentes y conceptualmente elige una combinación determinada de componentes para
construir un sistema.
El sistema propuesto se modela y se predice su comportamiento. Un modelo validado es
aquel que ha probado comportarse tal como el diseñador lo intento. Fishman y Kiviat sugieren
técnicas para verificación incluyendo métodos estadísticos que nos llevan más allá de las
prácticas usuales de simples análisis comparativos.
La validación y verificación de un modelo parecieran ser lo mismo, pero difieren
conceptualmente de manera sutil.
Un modelo validado, es aquel que ha probado ser una “abstracción” razonable del sistema
del mundo real que intenta representar.
La aproximación usual de “validación” es la corrida del modelo con datos históricos y
comparar los resultados del modelo con los resultados del sistema para los mismos datos. Tal
comparación usualmente no es válida debido a que el modelo puede ser de naturaleza
experimental o predictivo.
El diseño estratégico se refiere a la actividad de planeación y diseño de la
experimentación, incluye la especificación de la información que va a ser determinada y la
exactitud de esta información. Existen técnicas apropiadas de diseño experimental, tales como
factorial completo, fracción factorial, etc.
La experimentación al establecer un objetivo sirve para:
1. Exploración del comportamiento del sistema
2. Optimización de los parámetros del sistema
La exploración del comportamiento del sistema intenta explicar la relación entre los
resultados de la Simulación y los parámetros controlables.
La optimización es ejecutada para encontrar la combinación de los niveles de los
parámetros los cuales minimizan o maximizan los resultados de la simulación.
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
8
Actividades De Operación
En esta etapa el proceso de simulación, el modelo ha sido diseñado, implementado y ha
sido planeado.
Las actividades posteriores son las de llevar a cabo la experimentación. Esta debe iniciar
con el diseño táctico de los experimentos que van a ser ejecutados. Estas actividades son: la
determinación de número de corrida, y la cantidad de datos a utilizar en cada corrida.
También incluye el establecimiento de las condiciones iniciales de las variables del
modelo, la estimación de los parámetros que alcanzan el estado de equilibrio del sistema. El
usuario debe determinar como debe reconocer el equilibrio.
Otras consideraciones son: el tamaño de la muestra requerido para los datos, las técnicas a
utilizar en la comparación del sistema alternativo, sí éste es el objeto de estudio.
Si el objetivo ha sido alcanzado, el estudio de simulación ha sido completado. No
obstante, debido a que la simulación es un proceso de prueba-error, con frecuencia el objetivo no
se puede alcanzar, entonces optamos por las dos alternativas generales disponibles.
• La primera es la de modificar el modelo.
• La segunda es la de utilizar el mismo modelo alternando el diseño del
experimento, usando nuevas técnicas.
ACTIVIDADES DE DISEÑO
DISEÑO DEL
MODELO
DISEÑO
ESTRATÉGICO DEL
EXPERIMENTAL
VERIFICACIÓN DEL
MODELO
VALIDACIÓN DEL
MODELO
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
9
ACTIVIDADES DE OPERACIÓN
DISEÑO TÁCTICO DE
EXPERIMENTACIÓN
OPERACIÓN DEL
MODELO
¿EXPERIMENT
O COMPLETO?
CAMBIOS EN LOS
PARAMETROS
NO
SI
ANÁLISIS DE DATOS
SIMULADOS
SE CUMPLEN
LOS OBJETIVOS?
NO
SI
MODIFICAR
EXPERIMENTO
MODELO
ALTO
Consideraciones Relativas A La Simulación
Los siguientes tópicos generalmente son cubiertos en textos de simulación:
• Control de tiempo
• Generación de números aleatorios
• Generación de V.V.A.A.
• Técnicas de reducción de varianzas
• Lenguajes de simulación
El objeto del modelo científico es permitir al analista la determinación de uno o más
cambios en los aspectos del sistema modelado que afectan otros aspectos del sistema e incluso la
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
10
totalidad del mismo. Un modelo útil debe necesariamente incorporar elementos de dos atributos
en discrepancia: realismo y simplicidad.
Por un lado el modelo ha de ser una aproximación razonable del sistema real y por tanto
incorporar la mayor parte de los aspectos importantes de este; por otro lado, no es conveniente
que un modelo resulte tan complejo que se vuelva imposible entenderlo.
Los modelos matemáticos de sistemas económicos constan de 4 elementos bien definidos:
los componentes, las variables, los parámetros y las relaciones funcionales.
Las variables se usan para relacionar un componente con otro y se clasifican en:
a) Variables Exógenas (Independientes o de entrada del modelo)
b) Variables de Estado (Controlables o no controlables)
c) Variables Endógenas (Dependientes o de salida del sistema)
Las variables que aparecen en los modelos económicos se emplean para relacionar un
componente con otro y se clasifican, convenientemente, como variables exógenas, variables de
estado y variables endógenas.
Las variables exógenas son las independientes o de entrada del modelo y se supone que
han sido predeterminadas y proporcionadas independientemente del sistema que se modela.
Es posible clasificar las variables exógenas en controlables y no controlables. Las
controlables son aquellas variables o parámetros susceptibles de manipulación o control por
quienes toman decisiones. Las no controlables las genera el medio ambiente en el cual el sistema
modelado existe y no el sistema en si o los encargados de tomar decisiones.
Las variables de estado describen el estado de un sistema o uno de sus componentes, ya
sea al comienzo, al final o durante un período de tiempo.
El valor de una variable de estado, durante un período particular de tiempo, puede
depender no solamente de los valores de una o más variables exógenas en algún período
precedente, sino también del valor de ciertas variables de salida en períodos anteriores.
Las variables de estado de una empresa podrían incluir el efectivo, el inventario y el
pasivo de un período particular (de tiempo), así como también las ventas en algún período
precedente y los gastos de propagandas para algún período futuro.
Las variables endógenas son las dependientes o de salida del sistema y son generadas por
la interacción de las variables exógenas con las de estado, de acuerdo con las características de
operación del último.
El hecho que una variable en particular este clasificado como exógena, de estado o
endógena, depende del propósito de la investigación.
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
11
Las variables exógenas se emplean en dos formas diferentes en experimentos de
simulación: es posible tratarlas como los parámetros dados, las cuales tienen, por supuesto, que
estimarse con anterioridad y almacenarse dentro de la computadora como datos de entrada; si
son variables estocásticas, existe la posibilidad de generarlas internamente en la computadora.
Hay dos relaciones funcionales que describen la interacción de las variables y los
componentes de un modelo económico: las identidades y las características de operación.
Las identidades tomaran la forma de definiciones o declaraciones tautológicas, relativas a
los componentes del modelo. Una característica de operación es una hipótesis, generalmente
una ecuación matemática, que relacionan las variables endógenas y de estado del sistema, con sus
variables exógenas.
Para ilustrar el sistema de clasificación de elementos de los modelos matemáticos
considérese el siguiente ejemplo:
Se considera un modelo simple de un fenómeno de espera, de un solo canal y con
estaciones múltiples para una empresa. Los componentes de este modelo se ilustran en la figura
1. Y consiste de ordenes que llegan a la empresa y procesos, a través de los cuales, una orden
pasara antes de completarse.
El propósito del modelo es relacionar el tiempo total que requiere una orden para pasar a
través de n procesos, con la forma en que llegan las órdenes y el tiempo que consume cada uno
de tales procesos.
El modelo contiene las siguientes variables, parámetros, características de operación e
identidades.
Variables Exógenas.
ATi = El intervalo de tiempo entre la llegada de la i-ésima orden y la (i-1)-ésima orden, en
donde i=1,2,...,m.
STij = El tiempo de procesamiento para la i-ésima orden en el j-ésimo proceso en donde
i=1,...,m y j=1,2,...,n.
PEDIDOS DE
FÁBRICA
PROCESO
1
PROCESO
2
PROCESO
n
…
Fig1. Diagrama de flujo de una empresa con procesos múltiples.
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
12
AT1 = 0
WT11 = 0, WT12 = 0,..., WT1n = 0 n-1
IDT11 = 0, IDT12 = ST11,..., IDT1n = ∑ST1j
j=1
T11 = ST11, T12 = ST12,..., T1n = ST1n
Variables De Estado.
WTij = el tiempo que la i-ésima orden espera para entrar al j-ésimo proceso, en donde
i=1,...,m y j=1,...,n.
IDTij = el tiempo que el proceso j-ésimo permanece ocioso mientras que espera la llegada
de la i-ésima orden, en donde i=1,...,m y j=1,...n.
Tij = el tiempo total que la i-ésima orden esta en el j-ésimo proceso, donde i=1,...,m y
j=1,...,n.
Variables Endógenas.
Ti = el tiempo total que la i-ésima orden esta en el sistema, es decir, el tiempo requerido
para pasar a través de los n procesos.
Parámetros
E (AT) = El intervalo de tiempo esperado entre las órdenes.
Var (AT) = La varianza del intervalo del tiempo entre las órdenes.
E (STij) = El tiempo esperado para el j-ésimo proceso donde j=1,2,...n.
Var (STij) = La varianza del tiempo para el j-ésimo proceso donde j=1,2,...n.
Características De Operación
f (ATi) = La función de densidad de probabilidad para el intervalo de tiempo entre las
órdenes.
f (STij) = La función de densidad de probabilidad para el tiempo de procesamiento del
j-ésimo proceso donde j=1,...,n.
Identidades
Cuando la primera orden llega a la empresa, es decir, cuando i=1, se supone que las
siguientes ecuaciones describen el sistema de procesos múltiples:
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
13
Para órdenes subsiguientes, esto es, cuando i = 2,3,...,m, estas ecuaciones se modifican
adecuadamente; las ecuaciones de tiempo se convierten en:
Que el tiempo de espera o el tiempo de ocio, ocurra en un momento particular, depende
del signo de las diferencias siguientes, donde i = 2,. . .,m :
Si DIFj es positiva para el j-ésimo proceso, entonces el tiempo de ocio será nulo y el
tiempo de espera puede calcularse con:
Si DIFj es negativo para un proceso en particular, entonces el tiempo de espera será nulo y
el tiempo de ocio será igual a:
Si DIFj es igual a cero para un proceso en particular, entonces el tiempo de espera y el
tiempo de ocio, serán nulos para ese proceso.
Este modelo de una empresa con procesos múltiples, tiene varias aplicaciones posibles,
por ejemplo, supóngase que al comprar un equipo nuevo, la empresa reducirá, un 50% el tiempo
esperado de procesamiento, para un proceso en particular. El modelo servirá entonces para
estimar el aumento esperado en el número total de órdenes, que es posible procesar
completamente durante un período particular de planeación, para determinar sí la empresa esta
justificada en la compra del nuevo equipo.
Ti1 = WTi1 + STi1 i=2,...,m
Ti2 = WTi2 + STi2 i=2,...,m
. . . . . . . . . . . . . . .
Tin = WTin + STin i=2,...,m
DIF1 = Ti-1, 1 - ATi
DIF2 = (Ti-1, 1 + Ti-1, 2) – (ATi + WTi1 + STi1)
...................................................................................
DIFn = (Ti-1, 1 + Ti-1, 2 + ... + Ti-1, n) – (ATi + WTi1 + STi1 + ... + WTi, n-1 + STi, n-1)
WTij = DIFj i = 2,...,m j = 1,...,n
IDTij = - DIFj i = 2,...,m j = 1,...,n
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
14
Métodos Analíticos, Numéricos Y De Simulación
Consideremos un ejemplo simplificado de un ordenador, compuesto por un sistema de
entrada/salida (E/S) y una unidad de proceso (CPU). El ordenador falla cuando lo hace alguno de
los componentes. Expresado matemáticamente, si X1 designa el fallo de E/S, X2 el tiempo hasta
el fallo de la CPU, y T el tiempo hasta el fallo del ordenador, tenemos T= min(X1, X2).
Habitualmente, habrá incertidumbre sobre los tiempos anteriores, por lo que consideramos que
X1, X2 y T son variables aleatorias. Supongamos que estamos interesados en calcular el tiempo
esperado E(T) hasta el fallo, tal vez como parte de un estudio destinado a mejorar la fiabilidad del
ordenador. Para simplificar la exposición, supongamos que Xi es exponencial de parámetro
2
,
1
, =
i
i
µ , y ambas variables aleatorias son independientes. En este caso, tenemos que
∫ ∫
∞ ∞
−
−
=
0 0
2
1
2
1
2
1
2
2
1
1
)
,
min(
)
( dx
dx
e
e
x
x
T
E x
x µ
µ
µ
µ
Aproximación Analítica
Apelamos a resultados del Cálculo de Probabilidades, teniendo en cuenta la independencia y el
tipo de distribuciones. Resulta
( ) ( ) ( ) ( )t
t
t
e
e
e
t
X
P
t
X
t
X
P
t
T
P 2
1
2
1
1
2
1 , µ
µ
µ
µ +
−
−
−
=
=
>
=
>
>
=
>
Por lo tanto, T tiene distribución exponencial de parámetro 2
1 µ
µ + , con lo cual
2
1
1
)
(
µ
µ +
=
T
E .
Por ejemplo, si 1
1 =
µ , 2
2 =
µ ,
3
1
)
( =
T
E .
Observemos que para esta aproximación resulta esencial emplear hipótesis de independencia y
exponencialidad, de manera que el razonamiento empleado es poco robusto; si cambiamos alguna
de esas dos hipótesis, el cálculo exacto puede resultar mucho más complicado e, incluso,
imposible de obtener mediante un método analítico.
Aproximación Numérica.
Una posibilidad, en tal caso, es apelar a algún procedimiento de integración numérica.
Típicamente, un paso inicial será reparametrizar el problema, de manera que la región de
integración sea acotada. Por ejemplo, tenemos que, haciendo el cambio de variable
( )
i
i
i
u
X
µ
−
−
=
1
ln
( )
( ) ( )
2
1
1
0
1
0 2
2
1
1 1
ln
,
1
ln
min du
du
u
u
T
E ∫∫ 






 −
−
−
=
µ
µ
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
15
y podemos aplicar, por ejemplo, la regla del trapecio. En nuestro caso, con 15 nodos y, como
antes, 1
1 =
µ , 2
2 =
µ , obtenemos el valor .317 como aproximación del tiempo esperado hasta el
fallo.
Obsérvese que la estrategia numérica adoptada es más robusta, en el sentido de que si sustituimos
alguna de las dos hipótesis, somos aún capaces de utilizarla. El inconveniente estará en que al
aumentar la dimensión de la región de integración, la aproximación resultará cada vez más
ineficaz.
Aproximación Basada en Simulación.
La aproximación basada en simulación consistirá en construir un programa que describa el
comportamiento del sistema y realizar experimentos con él. En este caso, podríamos utilizar
tiempofallo=0
desde i=1 hasta n
desde j=1 hasta 2
generar Uj uniforme en (0,1)
hacer j
j
j u
X µ
))
1
(ln( −
−
=
tiempofallo=tiempofallo + min(X1, X2)
esp(tiempofallo)=tiempofallo/n
Esencialmente, el programa simula tiempos de fallo X1, X2 y calcula el mínimo de ellos,
repitiéndose el proceso n veces, esto es, simulando n caídas del sistema.
El proceso de generar U1 y luego transformarla mediante i
i
i u
X µ
))
1
(ln( −
−
= , nos permite
simular tiempos hasta rotura del componente i-ésimo. Para la aplicación particular, supongamos
que tenemos acceso a la tabla 1.1 de números aleatorios. Por ejemplo, si decidimos que n=20,
podemos escoger los 20 primeros números para generar los U1
16 82 39 86 86 73 07 32 72 35 12 82 87 21 30 30 60 53 89 92
Y los últimos para generar U2.
38 63 63 30 36 25 66 30 53 98 49 78 40 92 80 97 67 46 38 34
Para ello, asociamos al número correspondiente el cociente resultante son 16 y 38, con lo cual
U1=.16, U2=.38, X1=.17, X2=.24 y min(X1, X2)=.17. Repitiendo el proceso, resulta la estimación
.308.
16 82 39 86 86 73 07 32 72 35 12 82 87 21 30 30 60 53 89 92
99 77 85 43 72 34 52 99 30 86 81 40 18 61 20 16 92 39 34 44
01 48 69 32 37 05 99 27 23 55 88 47 38 48 53 79 41 08 73 95
08 34 04 83 42 92 64 49 51 23 44 62 75 43 09 22 55 51 38 18
09 22 76 47 23 99 48 66 26 73 95 53 37 47 00 43 66 80 44 18
64 18 83 13 90 95 64 21 97 09 86 59 99 70 20 73 35 11 81 57
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
16
77 67 94 40 00 12 26 45 77 54 21 51 91 91 28 74 47 00 53 95
73 01 20 47 86 40 71 03 13 36 98 50 48 45 30 23 40 85 76 63
72 67 37 77 52 79 93 67 57 78 77 07 58 19 48 32 72 94 66 11
58 96 79 92 08 88 46 62 58 96 75 18 57 89 21 17 26 92 26 63
41 69 24 18 81 29 14 06 67 15 23 70 27 89 40 77 31 98 71 15
16 45 84 78 49 17 84 92 51 12 08 78 30 35 63 84 34 68 97 10
92 09 48 47 40 81 30 44 03 98 19 38 33 07 00 55 70 65 24 19
26 92 58 75 64 61 49 58 68 45 09 32 76 03 29 08 73 11 33 79
17 33 86 83 91 26 51 12 57 73 21 12 09 58 24 64 91 53 24 92
91 41 97 06 57 45 39 16 64 92 66 18 78 71 55 99 29 18 02 56
52 00 40 81 14 06 94 03 71 39 09 33 74 08 42 15 85 08 35 30
10 07 82 40 99 00 91 31 44 73 51 42 08 28 31 35 20 07 85 96
70 70 14 24 43 71 60 86 17 85 61 05 65 10 68 73 03 31 45 23
96 50 32 72 89 62 28 76 60 00 52 94 67 16 32 08 88 27 01 94
20 89 41 95 46 28 45 92 21 97 51 15 02 82 11 95 65 27 50 08
30 99 84 95 47 72 38 22 55 44 50 61 71 58 86 49 25 60 69 17
94 53 29 42 38 74 90 06 18 71 99 27 84 88 03 43 07 53 96 02
50 61 25 57 55 50 92 14 39 77 29 17 73 75 83 38 40 02 06 47
38 63 63 30 36 25 66 30 53 98 49 78 40 92 80 97 67 46 38 34
Tabla 1.1 Números Aleatorios
Por supuesto, si escogemos otra muestra de la tabla, lo que correspondería a una nueva
replicación del experimento, obtendremos una estimación diferente.
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
17
Simulación De Un Sistema De Inventarios
La simulación es usada para comparar alternativas ordenando políticas para un sistema de
inventarios. Muchos de los elementos de modelos representativos son encontrados en sistemas
de inventarios actuales.
Planteamiento del problema
Una compañía vende un producto en particular. Desea saber cuantos de estos productos se
tendría en el inventario para cada uno de los próximos “n” meses.
Los tiempos entre las demandas son variables aleatorias IID, con una media de 0.1 mes.
Los tamaños de las demandas D, son variables aleatorias IID, con
Al inicio de cada mes la compañía revisa el nivel del inventario y decide cuantos artículos
ordenar de su proveedor. Si la compañía ordena Z artículos, incurre en un costo de K+iZ, donde
K = $32 que es el costo de preparación e i = $3 que es el costo incremental por artículo ordenado.
(si Z = 0, este costo no ocurre). Cuando una orden es colocada, el tiempo requerido para que esta
llegue (llamado periodo de entrega o Leadtime) es una variable aleatoria que esta distribuida
uniformemente entre 0.5 y 1 mes.
La compañía usa una política (s,S) para decidir cuanto ordenar, i.e.
S – I si I < s
Z =
0 si I ≥ s
donde I es el nivel del inventario al inicio del mes.
Cuando una demanda ocurre, esta es satisfecha inmediatamente si el nivel del inventario
es al menos tan grande como la demanda. Si la demanda excede el nivel del inventario, el exceso
sobre el suministro es acumulado y satisfecho por futuras entregas. (En este caso, el nuevo nivel
del inventario es igual al nivel del inventario anterior menos el tamaño de la demanda, resultando
en un nivel del inventario negativo). Cuando una orden llega, primero es usada para eliminar
cuando mucho tanto como sea posible las demandas pendientes; el resto de la orden es agregada
al inventario.
Hasta ahora, hemos discutido solamente un tipo de costo incurrido por el sistema de
inventario, el costo de ordenar. Sin embargo, en la mayoría de los sistemas reales también hay
dos tipos de costos adicionales, costo de mantenimiento y de escasez o déficit, los cuales
1 w.p 1/6
2 w.p 1/3
3 w.p 1/3
4 w.p 1/6
D = donde w.p. se lee ”con probabilidad”.
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
18
discutiremos después de introducir algunas anotaciones adicionales. Sea I(t) el nivel del
inventario en el tiempo t[ note que I(t) podría ser positivo, negativo o cero]; sea I+
(t)= max
[I(t),0] el número de artículos físicamente disponibles en el inventario en el tiempo t[note que
I+
(t)≥0]; y I-
(t)= max [-I(t),0] los pendientes en el tiempo t[I-
(t)≥0 también]. Una posible
realización de I(t), I+
(t), I-
(t) se muestra en la figura 1.41. Los puntos en el tiempo que I(t)
decrece son los únicos en los cuales la demanda ocurre.
I(t): Nivel del inventario en el tiempo t, siendo el valor de t positivo, negativo o cero.
I^+(t)=max {I(t),0}: Es el número de artículos físicamente disponibles en el tiempo t del
inventario.
El tiempo de los puntos al cual I(t) decrece son los únicos puntos donde ocurre la demanda.
Para nuestro modelo, debemos asumir que la compañía incurre en un costo de
mantenimiento de h=1 por artículo por mes mantenido en el inventario. El costo de
mantenimiento incluye tales costos como la renta del almacén, seguros, impuestos, y
mantenimiento también como el costo de oportunidad de tener el capital en el inventario que
invertir en otra parte.
Hemos ignorado en nuestra formulación el hecho de que algunos costos de mantenimiento
ya incurrieron cuando I+
(t)=0. Sin embargo, dado que nuestro objetivo es comparar políticas de
ordenar, ignorando este factor, que después de todo es independiente de la política usada, no
afectará en nuestra evaluación de qué política es la mejor. Ahora dado que I+
(t) es el número de
Punto de Orden Orden de arribo Punto de Orden
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
19
artículos mantenidos en el inventario en el tiempo t, el tiempo promedio (por mes) número de
artículos mantenidos en el inventario por un periodo de n meses es
Que es semejante a la definición del número de tiempo promedio de clientes en la cola.
Así el tiempo promedio del costo de mantenimiento por mes es hI+
Similarmente, suponga que la compañía incurre un costo de déficit de ∏=$5 por artículo
por mes en déficit; esto cuenta para el registro de los costos extraguardado cuando existe un
déficit, también la perdida de buenos clientes. El número de promedio de veces de artículos en
déficit esta dado por es
Así que el costo promedio de atrasos por mes es ∏I-
.
Asuma que el nivel de inventario inicial es I(0)=60 y que no ordenar no es importante.
Simulemos el sistema de inventario para n = 120 meses y use el costo total promedio por mes
(que es la suma del costo de ordenar promedio por mes, el costo de mantenimiento promedio por
mes y el costo de déficit promedio por mes) para comparar las siguientes nueve políticas de
inventario.
s 20 20 20 20 40 40 40 60 60
S 40 60 80 100 60 80 100 80 100
No discutiremos aquí el resultado de cómo estas políticas particulares fueron elegidas para
su consideración, técnicas estadísticas para hacer tal consideración serán discutidas más adelante.
Note que las variables de estado para un modelo de simulación de este sistema de
inventario son el nivel de inventario I(t), la cantidad de una orden prominente de la compañía al
proveedor, y el tiempo del ultimo evento.[el cual es necesaria para calcular las áreas bajo las
funciones I+
(t) e I-
(t)]
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
20
ORGANIZACIÓN Y LÓGICA DEL PROGRAMA
El modelo de sistema de inventario usa los siguientes tipos de eventos.
Descripción del evento Tipo del evento
Llegada de una orden a la compañía del proveedor 1
Demanda para el producto de un cliente 2
Termino de la simulación después de n-meses 3
Evaluación del inventario (al inicio de mes) 4
Hemos tenido que hacer el fin de la simulación, como un evento de tipo 3 en lugar del
tipo 4, ambos eventos “fin-simulación” y “evaluación-inventario” desde el tiempo 120 que serán
eventualmente programar y querer ejecutar el primer evento anterior en este tiempo. (Puesto que
la simulación se hace después del tiempo 120, no hay sentido en la evaluación del inventario y un
posible ordenamiento, incurriendo en un costo de ordenar por una orden que nunca llegará). La
ejecución del evento tipo 3 antes del evento tipo 4 es garantizado por que la rutina del tiempo da
preferencia al mas bajo evento numerado, si dos o mas eventos son programados para ocurrir al
mismo tiempo. En general un modelo de simulación sería designado a procesar eventos en un
orden apropiado cuando un ciclo de tiempo ocurra.
La grafica de un evento aparece en la figura 1.42
Hay tres tipos de variables aleatorias que se necesitan para simular este sistema. Los
tiempos indeterminados son distribuidos exponencialmente, así que el mismo algoritmo (y
código) como se desarrollo en la sección 1.4 pueden ser usados aquí.
El tamaño de demanda de la variable aleatoria D deberá ser discreta, como se describió
anteriormente, y puede ser generada como sigue. Primero se divide el intervalo unitario en
subintervalos contiguos C1 [0, 1/6), C2=[1/6, 1/2), C3=[1/2, 5/6), y C4=[5/6,1], y se obtiene una
variable aleatoria uniformemente distribuida en el intervalo U(0,1), si U cae en C1, regresa D=1;
si U cae en C2, regresa D=2 ; y así sucesivamente.
Orden de
llegada
Demanda Evaluación
Termino de
la simulación
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
21
Evento de
orden de llegada
Incremento del nivel de
inventario por la cantidad
previamente ordenada
Eliminar evento de orden de
llegada de consideración
Regreso
Por tanto el ancho de C1 es 1/6–0=1/6 , y por tanto U (generador de Nº aleatorios) es
uniformemente distribuido sobre [0,1] , la probabilidad que U caiga en C1, (y así que regresamos
D=1) es 1/6; esto concuerda con la probabilidad deseada que D=1, similarmente regresamos a
D=2, si U cae en C2 teniendo una probabilidad igual al ancho de C2, ½ - 1/6= 1/3, como se
deseó y así para los siguientes intervalos.
Los subprogramas para generar los tamaños de demandas todos usan estos principios y
toman como entrada el interruptor de puntos definiendo los subintervalos de llegada anterior los
cuales son las probabilidades acumuladas de la distribución de D.
Los atrasos en las entregas son uniformemente distribuidos pero no sobre el intervalo
unitario [0,1]. En general podemos generar una variable aleatoria uniformemente distribuida
sobre cualquier intervalo [a,b] generando un numero aleatorio U(0,1) y después regresar a
a+U(b – a).
De los cuatro eventos solamente 3 involucran verdaderamente el cambio de estado (el
termino de eventos de simulación es la excepción) por lo tanto su lógica, es un lenguaje
independiente.
En el evento llegada – orden, se muestra en la figura 1.43 y debemos hacer los cambios
necesarios cuando una orden llegue del proveedor. El nivel del inventario es incrementado y
desde su consideración del evento llegada de una orden debe ser eliminada.
Evento de Orden de Llegada
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
22
Evento evaluación
del inventario
Si
I(t)<s?
Determine la cuenta de
orden [S – I(t)]
Costo de orden incurrido y
recoger estadísticas
Programar el evento orden
de llegada para esta orden
Programar el próximo
evento evaluación del
inventario
Return
El evento de la demanda está dado en la figura 1.44 y procesa los cambios necesarios para
representar un caso de demanda. Primero, el tamaño de la demanda es generada, y el inventario
es decrementado por esta cantidad. Finalmente el tiempo de la próxima demanda es programada
en la lista de eventos. Note que esto ocurre donde el nivel del inventario pueda ser negativo.
El evento evaluación del inventario tiene lugar en el comienzo de cada mes, su diagrama
de flujo es el siguiente. Fig. 1.45
Si el nivel del inventario I(t) en el tiempo de evaluación es al menos s, entonces ninguna
orden se coloca, y no se hace nada excepto la programación de la siguiente evaluación en la lista
de eventos. En cambio, si I(t)<s, colocamos una orden para S – I(t) artículos. Esto es hecho para
almacenar la cantidad de ordenar [S – I(t)]hasta la llegada de la orden, y programar su tiempo de
llegada. En este caso también, queremos programar el próximo evento evaluación del inventario.
Como en el modelo de colas de un solo servidor, es conveniente escribir una rutina para
actualizar los acumuladores de la estadística de tiempo continuo. Para este modelo, sin embargo,
haciendo esto ligeramente mas complicado, daremos al diagrama de flujo.
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
23
El principal punto es si necesitamos actualizar el área debajo de I-
(t) o I+
(t) (o ninguno).
Si el nivel de inventario ha sido negativo desde el ultimo evento, entonces tenemos un atraso, en
el área debajo de I-
(t) solo estaríamos actualizando. En cambio si el nivel del inventario ha sido
positivo necesitamos actualizar en el área I+
(t). Si el nivel de inventario ha sido cero no se
necesita actualizar. El código en ambos lenguajes para esta rutina también trae la variable de
tiempo del último evento al tiempo presente. Esta rutina será invocada desde el programa
principal justo después de regresar de la rutina coordinada. Ignorando el tipo de evento o si le
nivel del inventario esta actualizado en los cambios en estos puntos. Esto proporciona una simple
manera de actualizar integrales para estadísticas de tiempos continuos.
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
24
0 x<0
x 0<x<1
1 x>1
F(X) =
UNIDAD II
Generación De Números Pseudoaleatorios
En principio definiremos la función de distribución acumulada para la distribución
uniforme estandarizada como:
En la práctica, se requieren sucesiones de números aleatorios para la generación de los
datos de entrada para el proceso de simulación.
Se tienen cuatro métodos alternativos para generar o proveer sucesiones de números
aleatorios:
1. Métodos manuales {lanzamiento de monedas, dados, cartas, ruleta, etc.}
2. Tablas {corporación rand}
3. Métodos analógicos de computación
4. Métodos de computación digitales
Los métodos analógicos comprenden el uso de procesos físicos aleatorios
(comportamiento de corriente eléctrica), se considera que producen verdaderos números
aleatorios.
En el caso de los métodos digitales hay 3 formas para proveerse de números aleatorios:
provisión externa, generación interna por medio de un proceso físico al azar, generación interna
por medio de una relación de recurrencia.
En el caso de provisión externa, lo que se hace es, grabar las tablas de números aleatorios
en una cinta del sistema de la computadora digital.
La segunda alternativa utiliza un aditamento de la computadora que puede registrar los
resultados de algún proceso aleatorio y que los traduzca a sucesiones de dígitos, tales procesos
pueden ser el decaimiento radiactivo, el ruido térmico, entre otros.
El defecto de estos procedimientos analógicos es el de que las sucesiones así generadas no
pueden reproducirse.
La generación interna por medio de una relación de recurrencia, comprende la
generación por medio de una “transformación indefinidamente continuada” aplicada a un grupo
de números elegidos en forma arbitraria.
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
25
ni+1 ≡ a ni + c (mod m) → 1
donde:
ni, a, c y m : son enteros no negativos
para i= 0,1,2,... al desarrollar la ecuación
n1= a n0 + c (mod m)
n2= a n1 c= a(an0 + c) + c ≡ a2
n0 + (a +1)c (mod m)
n3= a3
n0 (a2
-a+1)c = a3
n0 + c (a2
-1) (mod m)
. (a-1)
.
.
ni= ai
no + c(ai
-1) (mod m) → 2
(a-1)
n0 = constante inicial
c = constante aditiva
a = constante multiplicativa
El primer método conocido para generar números aleatorios de manera recurrente se
considera que es de los “cuadrados centrales”, en el que cada número de la sucesión se obtiene
tomando los dígitos centrales del cuadrado del número precedente.
En la actualidad se prefiere el uso del método de “congruencias” para generar números
aleatorios satisfactorios.
Cualquiera que sea el método para generar números aleatorios debe satisfacer las
siguientes condiciones:
Deben ser:
1. Uniformemente distribuidos
2. Estadísticamente independientes
3. Reproducibles
4. Sin repetición dentro de una longitud determinada de la sucesión
5. Generación a grandes velocidades
6. Requerir el mínimo de capacidad de almacenamiento
Método De Congruencias:
Estos métodos se basan en una relación fundamental de congruencias que se expresa
como:
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
26
Los términos de la sucesión {ni} forman una sucesión de residuos modulo m, es decir, ni <
m ∀ ni; a partir de los números enteros de la sucesión {ni} se pueden obtener números racionales
en el intervalo (0,1) con solo formar la sucesión:
{ri} = {ni / m}
Respecto a la pregunta de que si existe un mínimo valor positivo para i, i=h tal que nh = n0
donde h es el período de la sucesión {ni}; si h existe, cabe preguntarse que condiciones se pueden
imponer sobre n0, a, c y m de manera que el periodo de {ni} sea lo más largo posible.
Se tienen 3 versiones del método de congruencias para generar números
pseudoaleatorios:
1. Método Aditivo
Ni+1 = ni + ni-k (mod m)
Si k = 1 se tiene la sucesión de Fibonacci
2. Método Multiplicativo
Produce una sucesión {ni} donde cada número es menor que m.
Ni+1 ≡ ani (mod m)
Este método tiene buenos resultados estadísticos en relación con las
pruebas de aleatoriedad e independencia.
3. Método Mixto
Ni+1 ≡ ani + c (mod m)
Método Multiplicativo
El modulo que emplea este método es m = pe
donde “p” representa el número de
guarismos del sistema numérico que usa la computadora y “e” denota el número de dígitos en
una palabra. En computadoras binarias p=2; en computadoras decimales p=10.
La ecuación recursiva para generar residuos potenciales es:
ni+1 ≡ ani (mod pe
)
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
27
Computadoras Binarias
m = 2b
b = número de bits de palabra b >2
h = 2b-2
máximo período que se puede obtener
El problema se reduce a encontrar multiplicadores que tengan orden h=2b-2
; a tiene que
ser primo relativo de m=2b
y por lo tanto tiene que ser impar.
Los valores de a se encuentran en una clase residual que se representa por:
a ≡ ± 3 (mod 8) ó a = 8t ± 3
t = 0, 1, 2, 3,..... entero positivo
Los valores de a próximos a 2b/2
minimizan la correlación en serie de primer orden. Con
respecto al valor inicial no, este debe ser primo relativo de m = 2b
, entonces n0 puede ser
cualquier número entero impar.
Procedimiento:
1. Se escoge cualquier número impar como valor inicial n0
2. Se elige un entero a = 8t ± 3
3. Se calcula an0 usando aritmética entera de punto fijo. Este producto consta de 2b
bits, de los cuales se descartan los bits de orden superior, dejando para n1 los bits
restantes.
4. Se calcula r1 = n1 / 2b
= n1 / 2b
5. Cada número aleatorio sucesivo ni+1 se obtiene a partir de los bits de menor
orden en el producto ani
Ejemplo:
Sea b = 4, m = 24
= 16 y h = 24-2
= 4
1.- n0 = 7 n0 = 0111
2.- a cerca de 2b/2
= 4 si t = 1, a puede ser 5 ó 3
si a = 5 a = 0101
3.- ano = (0101)(0111) = 00100011
n1 = 0011 r1 = 3/16 = 0.1875
4.- an1 = (0101)(0011) = 00001111
n2 = 1111 r2 = 15/16 = 0.9375
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
28
5.- an2 = (0101)(1111) = 01001011
n3 = 1011 r3 = 11/16 = 0.6875
6.- an3 = (0101)(1011) = 00110111
n4 = 0111 r4 = 7/16 = 0.4375
y así sucesivamente...
Computadoras Decimales
m = 10d
= 2d
5d
d = número de dígitos decimales de la palabra. d>3
a = debe ser número primo relativo de 10d
El orden h de a (mod 10d
) es: h = m.c.m. [2d-2
,4 * 5d-1
] = 5 * 10d-2
Los multiplicadores constantes con período 5 * 10d-2
se pueden ubicar en 32 clases
residuales distintas mod 200, dado por:
a = ± (3, 11, 13, 19, 21, 27, 29, 37, 53, 59, 61, 67,69, 77, 83, 91) (mod 200)
ó también se puede expresar como:
a = 200t ± p t = 0, 1, 2, 3, ...
p = uno de los 32 números dados anteriormente.
De igual modo n0 debe ser primo relativo de m = 10d
, lo cual implica que tiene que ser
impar, no divisible entre 5 para seleccionarse como valor inicial.
a ≈ 10d/2
El procedimiento es semejante al caso binario:
1. Selecciónese n0, un número impar no divisible entre 5.
2. Selecciónese a = 200t ± p
a ≈ 10d/2
3. Calcular an0 utilizando aritmética entera de punto fijo.
4. Calcular r1 = n1/10d
5. Cada número aleatorio subsecuente ni+1 se obtiene a partir de los dígitos de
menor orden del producto ani.
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
29
Ejemplo:
Sea d = 4, m = 104
= 10,000, h = 5*104-2
= 500
1.- n0 = 5379
2.- a ≈ 102
= 100
a = 200(0)+91 ó a = 200(1)-91
a = 91 ó a =109
3.- an0 = (0091)(5379) =00489489
n1 = 9489 r1 = 9489 = 0.9484
10000
y así sucesivamente...
Pruebas Estadísticas
Las propiedades estadísticas que deben poseer los números pseudoaleatorios generados
por los métodos congruenciales tiene que ver con independencia y aleatoriedad estadísticas.
La prueba de la frecuencia se usa para comprobar la uniformidad de una sucesión de N
números pseudoaleatorios. Para cada conjunto de N números pseudoaleatorios r1, r2,...rn, se
divide el intervalo unitario (0,1) en x subintervalos iguales; el número esperado de números
pseudoaleatorios que se encontrarán en cada subintervalo es N/x. Si fj (j=1, 2...x) denota el
número que realmente se tiene de números pseudoaleatorios ri (i=1,2,...N) en el subintervalo (j-
1)/ x ≤ ri < j/x entonces el estadístico:






=
N
x
2
1
χ
2
1
∑
=






−
x
j
j
x
N
f
tiene aproximadamente una distribución x2
con x-1 g.l…
La hipótesis de que los números pseudoaleatorios en el de conjunto de N números
pseudoaleatorios, son verdaderos números pseudoaleatorios, debe rechazarse si x1
2
con x-1 g.l.
excede su valor critico fijado por el nivel de significancia deseado.
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
30
Ejercicio:
Verificar que el conjunto de 100 números aleatorios se distribuye uniformemente, con
α = 5%.
0.001213 0.898980 0.578800 0.676216 0.050106
0.499629 0.282693 0.730594 0.701195 0.182840
0.108501 0.386183 0.769105 0.683348 0.551702
0.557434 0.799824 0.456790 0.216310 0.876167
0.092645 0.589628 0.332164 0.031858 0.611683
0.762627 0.696237 0.170288 0.054759 0.915126
0.032722 0.299315 0.308614 0.833586 0.517813
0.352862 0.574100 0.265936 0.859031 0.433081
0.941875 0.240002 0.655595 0.385079 0.908297
0.199044 0.936553 0.888098 0.817720 0.369820
0.339548 0.543258 0.624006 0.091330 0.416789
0.155062 0.582447 0.858532 0.887525 0.337294
0.751033 0.239493 0.535597 0.333813 0.493837
0.634536 0.199621 0.650020 0.745759 0.791130
0.227241 0.191479 0.406443 0.081288 0.734352
0.721023 0.222878 0.072814 0.641837 0.442675
0.789616 0.052303 0.106994 0.558774 0.141519
0.760869 0.120791 0.277380 0.657266 0.792691
0.805180 0.826543 0.294530 0.208524 0.429894
0.585186 0.986111 0.344882 0.343580 0.115375
Fo 10 11 11 11 8 11 10 13 10 5
Para resolverlo se utiliza la siguiente ecuación:
( )
∑
−
=
E
F
E
F
O
F
.
.
.
2
2
1
χ
0 - 0.1 0.1 – 0.2 0.2 – 0.3 0.3 - 0.4 0.4 – 0.5 0.5 – 0.6 0.6 – 0.7 0.7 – 0.8 0.8 – 0.9 0.9 – 1.0
0.001213 0.108501 0.227241 0.352862 0.499629 0.557434 0.634536 0.762627 0.805480 0.941875
0.092645 0.199044 0.282693 0.339548 0.456790 0.585186 0.696237 0.751033 0.898980 0.936553
0.032722 0.155062 0.299315 0.386183 0.406443 0.589628 0.655595 0.721023 0.826543 0.986111
0.052303 0.199621 0.210002 0.332164 0.433081 0.574100 0.624006 0.789616 0.888098 0.915126
0.072814 0.191479 0.239493 0.308614 0.416789 0.543258 0.650020 0.760869 0.858532 0.908297
0.031858 0.120791 0.222878 0.344882 0.493837 0.582447 0.676216 0.799824 0.833586
0.054759 0.170288 0.265936 0.385079 0.442675 0.578800 0.683348 0.730594 0.859031
0.091330 0.106944 0.277380 0.333813 0.429894 0.535597 0.641837 0.779105 0.817720
0.081128 0.182840 0.294530 0.343580 0.558774 0.657266 0.701195 0.887525
0.050106 0.141519 0.216310 0.369820 0.551502 0.611683 0.745795 0.876167
0.115375 0.208524 0.337294 0.517813 0.791130
0.734352
0.792691
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
31
Donde:
F.E. = Total de números aleatorios = 100 = 10
Números de subintervalos 10
F.O. = Total de números observados en cada subintervalo.
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
2
.
4
10
10
5
10
10
10
10
10
13
10
10
10
10
10
11
10
10
8
10
10
11
10
10
11
10
10
11
10
10
10
2
1
2
2
2
2
2
2
2
2
2
2
2
1
=
−
+
−
+
−
+
−
+
−
+
−
+
−
+
−
+
−
+
−
=
χ
χ
Nosotros especificamos arbitrariamente un valor de α = 0.05 (esto significa un error del tipo
I del 5%) el valor obtenido de χ1
2
= 4.2 así pues podemos compararlo con el valor crítico de:
X2
0.05(9) = 16.919
Puesto que X2
0.05(9) = 16.919 > χ1
2
= 4.2, entonces podemos decir que la tabla de números
aleatorios se distribuye uniformemente.
Prueba De Medias
Consiste en verificar que los números generados tengan una media estadísticamente igual
a 1/2, de este modo la hipótesis planteada es:
Ho = hipótesis nula: µ
µ
µ
µ = ½
H1 = hipótesis alternativa: µ
µ
µ
µ ≠
≠
≠
≠ ½
Paso 1 Calcular la media de los n números generados
∑
∑ =
=
=
n
n
i
l
r
n
r
n
X 1
1
1
1
Paso 2 Calcular los límites superior e inferior de aceptación






+
=
n
Z
lsx
12
1
2
2
/
1 α






−
=
n
Z
lix
12
1
2
2
/
1 α
Paso 3 Si el valor X se encuentra entre li y ls, aceptamos que los números tienen una
media estadísticamente igual a ½ con un nivel de aceptación 1-α.
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
32
Ejemplo:
Realice la prueba de medias a los primeros 30 números aleatorios producidos con un
generador congruencial mixto, con un nivel de confianza del 95%.
Los números generados son:
0.03991 0.10461 0.93716 0.16894 0.98953 0.73231
0.25543 0.34565 0.02345 0.67347 0.10987 0.25678
0.71890 0.61234 0.86322 0.94134 0.99872 0.27657
0.82345 0.12387 0.05389 0.82474 0.59289 0.36782
0.72484 0.48999 0.50502 0.39528 0.36782 0.90234
2.56253 1.67646 2.38274 3.00377 3.05883 2.53582
Σ = 15.22015
X = 15.22015/30 = 0.507338
X ≈ 0.5000






−
=






+
=
30
12
1
5
.
0
30
2
1
5
.
0
025
.
0
025
.
0
Z
li
Z
ls
x
x
Para buscar el valor de Z0.025 se resta 1 - 0.025 = 0.975 y se busca en la tabla
|Z0.025| = 1.96
lsx = 0.5298 lix ≤ X ≤ lsx
lix = 0.4701 ⇓
Ho se acepta
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
33
2
α
x
i
l
x
s
l
2
α
2
1
=
µ
n
Z
x
i
12
2
2
1
α
+
=
l
n
Z
x
s
12
2
2
1
α
+
=
l
2
1
1
2
1
0
≠
=
=
=
µ
µ
H
H
Ejemplo: Generar números aleatorios dados por la siguiente función
( )
100
mod
3
1 n
n X
X =
+
( ) ( ) ( ) ( )
[ ]
( ) ( ) ( )
[ ]
( ) ( )
( ) ( )
( ) [ ]
( )
43
20
100
20
20
,
2
.
.
100
20
5
4
5
1
5
25
2
2
1
2
1
2
4
5
,
2
.
100
,
,
,
.
.
2
5
2
5
5
2
2
25
2
2
50
2
100
0
1
2
1
2
2
2
2
1
2
2
2
1
=
=
=
=
=
=
⋅
=
−
=
=
⋅
=
−
=
=
=
=
=
⋅
⋅
⋅
=
⋅
⋅
=
⋅
=
−
−
X
h
m
c
m
cm
m
P
P
P
m
c
m
m
d
s
e
s
e
e
λ
λ
λ
λ
λ
λ
λ
λ
λ
λ
λ
λ K
Pruebas de frecuencias
( ) ( ) ( ) ( ) ( )
49
.
9
4
4
4
4
4
4
4
4
4
4
0
4
5
4
,
05
.
0
2
2
2
2
2
2
2
1
2
1
5
20
2
1
2
1
=
−
+
−
+
−
+
−
+
−
=
=
=
=
=






−






= ∑
=
χ
λ
χ
χ
x
N
x
j
j
x
x
N
f
N
x
Pruebas de medias
n Xn rn
1 29 0.29
2 87 0.87
3 61 0.61
4 83 0.83
5 49 0.49
6 47 0.47
7 41 0.41
8 23 0.23
9 69 0.69
10 7 0.07
n Xn rn
11 21 0.21
12 63 0.63
13 89 0.89
14 67 0.67
15 1 0.01
16 3 0.03
17 9 0.09
18 27 0.27
19 81 0.81
20 43 0.43
21 29 0.29
Sub int Fj
0 - 0.2 4
0.2 - 0.4 4
0.4 - 0.6 4
0.6 - 0.8 4
0.8 - 1 4
α = nivel de confianza de la prueba
α = 1% o 5%
n
x
X
∑
=
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
34
Prueba De Varianza
Consiste en verificar si los números aleatorios generados tienen una variancia de 0.083, de
tal forma que la hipótesis queda expresada como:
Ho: V(x) = 1/12
Hi: V(x) ≠
≠
≠
≠ 1/12
Paso 1. Calcular la variancia de los n números generados V(x).
( )
( )
1
1
2
−
−
=
∑
=
n
x
r
x
V
n
i
i
Paso 2. Calcular los límites superior e inferior de aceptación.
( )
( )
1
12
1
,
2
2
−
=
−
n
ls
n
x
V
α
χ
( )
( )
1
12
1
,
2
1
2
−
=
−
−
n
li
n
x
V
α
χ
Paso 3. Si V(x) se encuentra entre los valores de liv(x) y lsv(x), aceptamos la hipótesis nula
y los números aleatorios tiene una variancia estadísticamente igual a 1/12.
Ejemplo:
Realice la prueba de variancia a los siguientes 30 números con un nivel de confianza del
95%.
.72484 .48999 .50502 .39528 .36728 .90234
.71890 .61234 .86322 .94134 .99872 .27657
.34565 .02345 .67347 .10987 .25678 .25593
.82345 .12387 .05389 .82474 .59289 .36782
.03991 .10461 .93716 .16894 .98953 .73231
x = 0.507337
Aplicando la ecuación del paso 1 se tiene V(x)= 0.104. Al calcular los límites de
aceptación para muestras de tamaño 30,
( )
( ) ( )
1313
.
0
29
12
7
.
45
1
12
1
,
2
2
=
=
−
=
−
n
ls
n
x
V
α
χ
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
35
( )
( ) ( )
046
.
0
29
12
00
.
16
1
12
1
,
2
1
2
=
=
−
=
−
−
n
li
n
x
V
α
χ
El valor se encuentra dentro de límites de aceptación por lo que se acepta que la variancia
de la muestra es estadísticamente igual a 1/12.
Prueba De Poker
Las pruebas de independencia consisten en demostrar que los números generados son
estadísticamente independientes entre sí, esto es, que no depende uno de otro.
Hay varios métodos, entre los cuales están:
• La prueba de Poker
• La prueba de corridas arriba y abajo
• La prueba de corridas arriba debajo de la media
• La prueba de la longitud de las corridas
• La prueba de series
La prueba de poker plantea la siguiente hipótesis:
Ho : ri ∼ independiente
H1 : ri ∼ dependiente
Paso 1. Calcular las probabilidades esperadas para un juego de poker con 5 cartas
numeradas del 0 al 9 con reemplazos. Se tienen 7 eventos con las siguientes
probabilidades:
P (Pachuca) = 0.3024
P (par) = 0.5040
P (2 pares) = 0.1080
P (1 tercia) = 0.0720
P (Full) = 0.0090
P (Poker) = 0.0045
P (Quintilla) = 0.0001
Paso 2. Calcular la frecuencia esperada de cada uno de los eventos multiplicando la
probabilidad de cada evento por la cantidad de números aleatorios generados.
Paso 3. Para cada número aleatorio generado verificar si es Pachuca, 1 par, 2 pares,
etc., tomando los primeros 5 dígitos a la derecha del punto decimal. Con estos resultados
se genera una tabla de frecuencias observadas de cada uno de los eventos.
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
36
Paso 4. Calcular la estadística:
( )
∑
=
−
=
m
i FE
Foi
FEi
1
2
2
1
χ
Paso 5. Si el valor de C2
no excede al estadístico de tablas χi
2
con 6 g.l. y una
probabilidad de rechazo alfa =α, entonces se acepta que los datos son estadísticamente
independientes entre sí.
Ejemplo:
Realice la prueba de Poker a los siguientes 30 números con un nivel de confianza del
95%. (∞ = 5%)
0.72484 0.48999 0.50502 0.39528 0.36782 0.90234
0.71890 0.61234 0.86322 0.94134 0.99872 0.27657
0.34565 0.02345 0.67347 0.10987 0.25678 0.25593
0.82345 0.12387 0.05389 0.82474 0.59289 0.36782
0.03991 0.10461 0.93716 0.16894 0.98953 0.73231
( ) ( ) ( ) ( )
336
.
5
003
.
0
135
.
0
27
.
0
548
.
1
622
.
0
082
.
0
676
.
2
003
.
0
135
.
0
27
.
0
24
.
3
1
24
.
3
16
.
2
1
16
.
2
12
.
15
14
12
.
15
072
.
9
14
072
.
9
2
1
2
1
2
2
2
2
2
1
=
+
+
+
+
+
+
=
+
+
+
−
+
−
+
−
+
−
=
χ
χ
χ
χ2
0.05, 6 = 12.6
6
,
05
.
0
2
2
1 χ
χ ≤ ∴ H0 se acepta
FO PE FE
Pachuca 14 0.3024 9.072
Un Par 14 0.5040 15.12
Tercia 1 0.0720 2.16
Dos Pares 1 0.1080 3.24
Full 0 0.0090 0.27
Poker 0 0.0045 0.135
Quintilla 0 0.0001 0.003
FE = PE.n
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
37
Prueba De Series
Ho : ri ∼ independiente
H1 : ri ∼ dependiente
Paso 1 Crear un histograma de dos dimensiones con m intervalos, clasificando cada
pareja de números consecutivos (ri, ri + 1) dentro de las casillas de dicho histograma de
frecuencias. El número total de pares ordenados en cada casilla formará la frecuencia
observada: Foi.
Paso 2 Calcular la frecuencia esperada en cada casilla FE de acuerdo con FE=núm/m
donde núm. es el número total de parejas ordenadas.
Paso 3 Calcular el error χ1
2
, con la ecuación:
( )
∑
=
−
=
m
i i
i
i
FE
FO
FE
1
2
2
1
χ
Paso 4 Si el valor de χ1
2
es menor o igual al estadístico de tablas χ1
2
con m-1 grados de
libertad y una probabilidad de rechazo α, entonces aceptamos que estadísticamente los
números son independientes.
Ejemplo:
Realice la prueba de series a los siguientes 30 números con un nivel de confianza del 95%
0.72484 0.48999 0.50502 0.39528 0.36782 0.90234
0.71890 0.61234 0.86322 0.94134 0.99872 0.27657
0.34565 0.02345 0.67347 0.10987 0.25678 0.25593
0.82345 0.12387 0.05389 0.82474 0.59289 0.36782
0.03991 0.10461 0.93716 0.16894 0.98953 0.73231
Al formar parejas ordenadas se obtiene:
(.72484, .48999) (.48999, .50502) (.50502, .39528) ... (.98953, .73231)
La clasificación en una tabla de frecuencias de dos dimensiones de 4 x 4, (m=16), queda
ri+1 1 3 2 1 2
0.75 1 1 1 3
0.50 1 3 3 1
0.25 2 2 1 2
0 0.25 0.50 0.75 1 ri
Tomando en cuenta que se tienen 29 parejas ordenadas clasificadas uniformemente en 16
casillas, la frecuencia esperada FE en cada una es 1.8125 y al calcular el error con la ecuación del
paso 3, para cada una de las 16 celdas o intervalos de la tabla anterior se tiene:
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
38
( ) ( )
∑
∑ =
=
−
=
−
=
16
1
2
1
2
2
1
8125
.
1
8125
.
1
i
i
m
i i
i
i FO
FE
FO
FE
χ
( ) ( ) ( )
[ ] 75
.
5
3
8125
.
1
4
2
8125
.
1
5
1
8125
.
1
7
8125
.
1
1 2
2
2
2
1 =
−
+
−
+
−
=
χ
El valor de la tabla χ2
con un nivel de confianza del 95% y con 15 grados de libertad es
igual a 25. Si se compara χ1
2
=5.75 con este valor, se acepta la independencia de la secuencia de
números.
15
,
05
.
0
2
2
1 χ
χ ≤
Por consiguiente Ho se acepta.
Ejemplo:
Realice la prueba de Poker y la prueba de series a los siguientes 30 números con un nivel
de confianza de 95%
Prueba de poker
( ) ( ) ( ) ( ) 003
.
0
135
.
0
27
.
0
24
.
3
24
.
3
3
16
.
2
16
.
2
5
12
.
15
12
.
15
15
072
.
9
072
.
9
7
2
2
2
2
2
1 +
+
+
−
+
−
+
−
+
−
=
χ
11
.
2
2
1 =
χ
6
.
12
2
6
,
05
.
0 =
χ
2
6
,
05
.
0
2
1 χ
χ <
0.03991 0.24122 0.10461 0.66591 0.93716 0.27699
0.38555 0.61196 0.95554 0.30231 0.32886 0.92962
0.17546 0.30532 0.73704 0.21704 0.92052 0.10274
0.32643 0.03788 0.52861 0.97599 0.95189 0.75867
0.69572 0.48228 0.68777 0.63379 0.39510 0.85783
Evento PE FO FE
Pachuca 0.3024 7 9.072
Par 0.5040 15 15.12
Tercia 0.0720 5 2.16
2 Pares 0.1080 3 3.24
Full 0.0090 0 0.27
Poker 0.0045 0 0.135
Quintilla 0.0001 0 0.003
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
39
3
1
3
2 1
3
1
3
2
1
Prueba de series
IIIIII
6
II
2
III
3
III
3 0
IIII
4
III
3
IIIII
5
III
3
22
.
3
9
29
=
=
FE
( ) ( ) ( ) ( ) ( ) ( )
[ ]
2
2
2
2
2
2
2
1 22
.
3
6
22
.
3
5
22
.
3
4
22
.
3
3
4
22
.
3
2
22
.
3
0
22
.
3
1
−
+
−
+
−
+
−
+
−
+
−
=
χ
31
.
7
2
1 =
χ
51
.
15
2
8
,
05
.
0 =
χ
2
8
,
05
.
0
2
1 χ
χ <
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
40
Apéndice A
Elementos de la teoría de números
A fin de comprender totalmente y apreciar los métodos para generar números
pseudoaleatorios que se consideran, es requisito previo tener un conocimiento básico de los
elementos de la teoría de los números. El apéndice A contiene un conjunto básico de definiciones,
ejemplos y teoremas de la teoría de números que resultan pertinentes para la comprensión de los
fundamentos racionales sobre los que se basan los métodos.
Definiciones
Definición 1. Para dos enteros a y b, con b ≠ 0, existe un único par de enteros t y n, tal que a = bt
+ n 0 ≤ n < b, en donde t es el cociente n es el residuo.
Definición 2. Un entero a es divisible entre un entero b si existe un entero t tal que bt
a =
Definición 3. Un entero p es un número primo si no es 0 ni ± 1 y si sus únicos divisores son ±1 y
± p. Por ejemplo, los primeros primos positivos son 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37.
Definición 4. Un entero g es el máximo común divisor (m.c.d.) de dos enteros a, b, si g es un
divisor común de a y b, además es un múltiplo de cualquier otro divisor común de a y b.
Notación: m.c.d. (a,b) = g, o similar a (a b) = g.
Definición 5. Un entero d es el mínimo común múltiplo (m.c.m.) de dos enteros a y b si d es un
divisor de cada múltiplo común de a y de b, y es a su vez un múltiplo común. Notación: m.c.m.
[a, b] = d o [a, b] = d.
Definición 6. Se dice que los enteros a y b son primos relativos si (a, b) = 1.
Definición 7. Dos enteros a y b son congruentes módulo m si su diferencia es un múltiplo entero
de m. La relación de congruencia se expresa por la notación a ≡ b (mod m), que se lee “a es
congruente con b módulo m”, esto también significa que:
1) (a-b) es divisible entre m, y
2) a y b dan el mismo residuo al ser divididos entre m.
Ejemplo: 5590 ≡
≡
≡
≡ 6 (mod 8) y 2327 ≡
≡
≡
≡ 27 (mod 102
).
Definición 8. Para una a dada, el menor entero positivo n tal que a ≡ n (mod m) recibe el nombre
de residuo módulo m. Existe m residuos distintos (mod m); 0, 1, 2, . . .,m – 1.
Definición 9. Una clase de enteros mutuamente congruentes para un módulo dado, forman una
clase residual. Existen m distintas clases residuales (mod m). Ejemplo: si m=2, las dos clases
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
41
residuales distintas son: la colección de todos los números impares y la de los números pares,
respectivamente.
Definición 10. Para un módulo dado m, el conjunto de los m enteros congruentes en algún orden
con los residuos 0, 1, 2, . . ., m – 1, forman un sistema residual completo.
Definición 11. Un subconjunto de un sistema residual completo que contenga todos los enteros
que sean primos relativos de m, recibe el nombre de un sistema residual reducido.
Definición 12. El número de enteros positivos menores que m y primos relativos de m, se
conoce como la función Fi de Euler y se denota por ϕ (m). Un sistema residual reducido
contiene ϕ (m) enteros. Si m = p, es un número primo, entonces ϕ (p) = p – 1.
Definición 13. Los residuos potenciales son los residuos de las potencias sucesivas de un entero
a módulo m. Si el residuo de la i-ésima potencia de a (mod m) se denota por ni, entonces todos
los residuos potenciales satisfacen la relación de congruencia ni ≡ ai
(mod m) (i = 1, 2, 3, . .)
Definición 14. Si (a, m) = 1, el mínimo exponente positivo i = h, tal que ai
≡ 1 (mod m), se dice
que es el orden de a (mod m). El mínimo exponente positivo h también recibe el nombre de
multiplicador de m cuando a se dice que pertenece a m. En este caso, h se denota por h = λ (m).
El orden h de a (mod m) es igual al número total de números distintos, esto es, la longitud de una
sucesión que no se repite de residuos potenciales de a, llamada el período de la sucesión {ni};
i = 1, 2, . . ., h (mod m).
Definición 15. Un entero a de orden h = ϕ (m) (mod m) es la raíz primitiva de m. Ejemplo: h =
3 ≠ ϕ (31) para a = 5 en el ejemplo (1) de la definición 13, pero h = 30 = ϕ (31) para a = 3 en el
ejemplo (2); consecuentemente 3 es la raíz primitiva de 31.
Ejemplos de residuos potenciales son:
(1) a = 5, m = 31, ϕ (m) = 30
i ai
ni ≡ ai
(mod m)
1 5 5
2 25 25
3 125 1*
4 625 5
. . . . . . .
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
42
(2) a = 3, m = 31, ϕ (m) = 30
i ai
ni i ni i ni
1 3 3 11 13 21 15
2 9 9 12 8 22 14
3 27 27 13 24 23 11
4 81 19 14 10 24 2
5 243 26 15 30 25 6
6 729 16 16 28 26 18
7 2187 17 17 22 27 23
8 6561 20 18 4 28 7
9 19683 29 19 12 29 21
10 59049 25 20 5 30 1*
• La sucesión de los residuos potenciales se repite para potencias de orden superior.
Teoremas
Teorema 1. Si a ≡ b(mod m) y x ≡ y(mod m), entonces a ± x ≡ b ± y(mod m), y ax ≡ by(mod m).
Teorema 2. Si (d, m) ≡ g, entonces dx ≡ dy (mod m) implica que x ≡ y (mod m/g).
Teorema 3. Si a ≡ b (mod m) y d es un divisor de m, entonces a ≡ b (mod d). Las
demostraciones de los teoremas 1, 2 y 3, resultan de la definición [2 p.24].
Teorema 4. Cualquier entero m (distinto de 0 ó ± 1) se puede factorizar de forma única en
números primos, esto es, m = π piei
, (i = 1, 2, 3, . . .), donde ei es una constante y π denota al
producto p1ei
x p2
e2
x p3
e3
. . . La prueba de esto se debe a Euclides [2, p.21].
Teorema 5. Si (a, m) = 1, entonces aϕ(m)
≡ 1 (mod m), de lo cual se sigue que:
1. El mayor orden posible de a es h = ϕ(m) cuando a es una raíz primitiva de m.
2. Para n < m tales que (m, n) = 1, nah
≡ n (mod m), donde h = ϕ(m). La prueba de
esto se atribuye a Euler y se obtiene de los teoremas 2 y 3.
Teorema 6. Para todas las potencias de un número primo p > 2 existen las raíces primitivas, i.e.
existe un número tal que (a, pe
) = 1 y aϕ(pe)
≡ 1 (mod pe
) donde h ≡ ϕ (pe
).
Teorema 7. Si m = πpi
ei
, entonces ϕ (m) = π(pi - 1)pi
ei-1
. La demostración se debe a Euler.
Teorema 8. Si m = πpe
y p es un primo impar entonces h = λ(m) = (p-1) pe-1
= ϕ (m) para valores
de a que son raíces primitivas de m.
Corolario: Si p = 2, i.e., h = λ(m) = 2e-2
para e > 2, entonces λ(m) ≠ ϕ (m). La prueba se
debe a Euler.
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
43
Teorema 9. Si m = πpi
ei
para i = 1, 2, 3, . . ., s, entonces:
1. λ(m) = m.c.m.[ λ(p1
e1
), λ(p2e2
), . . ., λ(pses
)].
2. Existe valores de a cuyo orden es igual a (esto es, pertenece conjuntamente a) cada
λ(pi
ei
). La demostración está en [21, p.293] y se sigue del teorema chino del
residuo debido a Sun-Tse [21, p.246].
Corolario: Si p1 = 2, entonces λ(m) = m.c.m. [λ(2e1
), ϕ(p2
e2
), ϕ(p3
e3
), . . .].
Teorema 10. El menor entero positivo a tal que (ah
- 1)/ (a - 1) ≡ 0 (mod m) es h = m, si (1) a ≡ 1
(mod p) si p es un factor primo de m y (2) a ≡ 1 (mod 4) si 4 es un factor de m. La prueba se
debe a Hull y Dobell.
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
44
UNIDAD III
Generación De Valores De Variables Aleatorias
La generación de estadísticas simuladas o sea de valores de las variables aleatorias, es de
naturaleza numérica y debe configurarse mediante la aportación de números pseudoaleatorios.
Al querer reproducir algún proceso estocástico particular, se recurre al empleo de las
distribuciones teóricas convencionales y en su defecto a una distribución empírica.
Al considerar procesos estadísticos que involucran variables aleatorias continuas o
discretas, se tiene que definir F(x), ó función de densidad acumulada (fn
Dn
).
Si la variable aleatoria es discreta, x tomará valores específicos y F(x) será una función
escalonada. Si la variable aleatoria es continua, x tomará valores en un rango especificado.
Si F(x) es continua en el dominio de x, entonces F(x) se podrá diferenciar, para lo cual se
define ( ) ( )
dx
x
dF
x
f = {Función de densidad de probabilidad}
Luego entonces: ( ) ( ) ( )
( ) 1
0 ≤
≤
=
≤
= ∫∞
−
x
F
dt
t
f
x
x
P
x
F
x
f(t) representa el valor de la función de densidad de probabilidad de la variable aleatoria
cuando x = t.
También tenemos que: 0 ≤ r ≤ 1 y F(x) = r.
Existen tres métodos para generar los valores de variables aleatorias a partir de
distribuciones de probabilidad:
1. Método de la transformación inversa
2. Método de rechazo
3. Método de composición (convolución)
Método De La Transformación Inversa
Se quiere generar valores de xi a partir de F(x). En primer lugar hay que obtener F(x).
Puesto que F(x) se define en el rango de 0 a 1 se pueden generar números aleatorios para
sustituir a F(x)=r.
De manera unívoca cada valor de ri define un valor de F(x).
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
45
( )
( )
2
1
4
3
2
1
4
3
4
3
4
3
4
1
4
3
4
1
1
−
=
−
=






−
+
=
+
= ∫
x
r
x
x
x
F
dt
x
F
x
Al considerarla función inversa de F ó F-1
(x) en caso de ser conocida, podemos hacer:
x0 = F-1
(r0).
Podemos de manera general establecer que: ( ) ( )
∫∞
−
=
=
x
dt
t
f
x
F
r
Entonces ( ) ( ) ( )
[ ] ( )
[ ]
x
x
F
p
x
F
r
p
x
F
x
x
p ≤
=
≤
=
=
≤ −1
Ejemplo:
Genérese los valores x de variables aleatorias con una función de densidad f(x) = 2x
0 ≤ x ≤ 1
( ) ∫
=
x
tdt
x
F
0
2
( ) 2
x
x
F
r =
= ó r
x = 1
0 ≤
≤ r
Ejemplo:
Genérese los valores x de variables aleatorias con función de densidad
4
1
1
0 ≤
≤ x
( )=
x
f
4
3
2
1 ≤
≤ x
1° parte 2° parte
( )
( )
4
4
4
1
0
x
r
x
x
F
dt
x
F
x
=
=
= ∫
F(x)
1
F(xi) = ri
0 xi X
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
46
Al tomar la transformación inversa y resolviendo:
r
x 4
= si 4
1
0 ≤
≤ r
3
2
3
4
+
= r
x si 1
4
1
≤
≤ r
Para generar un valor de x se debe en primer lugar generar un valor de r; cuando r < ¼
el valor de x estará determinado por x = 4r.
Si r > ¼ entonces x = 4
/3 r + 2
/3
Ejemplo:
Se desea simular una variable aleatoria con dn
exponencial ( ) x
e
x
f λ
λ −
= 0
≥
x
( ) ( )
( ) [ ] [ ] [ ]
( )
( ) ( ) r
x
r
x
x
r
e
r
r
e
x
F
e
e
e
e
x
F
dt
e
dt
e
x
F
t
t
t
t
x
t
t
x x
t
ln
1
ln
1
ln
1
1
1
1
1
0
0
0 0
λ
λ
λ
λ
λ
λ
λ
λ
λ
λ
λ
λ
λ
−
=
∴
−
−
=
∴
−
=
−
=
−
∴
=
−
=
−
−
=
−
−
=
−
=
−
=
=
−
−
−
−
−
−
−
−
∫ ∫
Ejemplo:
Se desea simular n números aleatorios con dn
uniforme entre (a,b):
( ) b
x
a
a
b
x
f ≤
≤
−
=
1
( )
( ) [ ] ( )
( )
( )
a
b
r
a
x
a
b
a
x
r
a
b
a
x
x
F
a
b
a
x
t
a
b
x
F
dt
a
b
dt
a
b
x
F
x
a
x
a
x
a
−
+
=
−
−
=
−
−
=
−
−
=
−
=






−
=
−
= ∫
∫
1
1
1
1
( )
a
b
r
a
x
b
x
a
−
=
−
∴
≤
≤
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
47
Método De Rechazo
Este método requiere que f(x) sea una distribución de probabilidad acotada y con rango
finito ó a a ≤ x ≤ b.
Los pasos requeridos son:
1. Generar 2 números aleatorios r1 y r2
2. Determinar el valor de la variable aleatoria X de acuerdo a la relación lineal de r1:
X = a + (b-a)r1
3. Evaluar la función de probabilidad en x = a + (b-a)r1: ƒ[x = a+(b-a)r1]
4. Determinar si se cumple:
r2 ≤ ƒ[a+(b-a)r1]/M
M = es cota superior.
f(x)
M
a b X
Si r2 > f(x)/M entonces r1 y r2 se descartan y se seleccionan otros valores de r1 y r2
Ejemplo: Se desea generar números aleatorios con la distribución.
2x 0 ≤ x ≤ 1
f(x)
0 en otra parte
En este caso:
a = 0 b = 1 M = 2
1. Generar R1 y R2
2. Calcular x = r1
3. f(x) = 2r1
4. r2 ≤ 2r1 = 2r1 r2 ≤ r1 → x = r1
M 2
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
48
f(x) =
Ejemplo: Se desea generar variables aleatorias X para la siguiente densidad de probabilidad.
( )( )
( )
a
x
a
b
a
c
−
−
−
2
si a ≤ x ≤ b
( )( )
( )
c
x
b
c
a
c
−
−
−
− 2
si b ≤ x ≤ c
M=
)
(
2
a
c −
Como la función se compone de 2 partes:
f(x)
M
a b c X
Los pasos para simular esta distribución son:
1. Generar r1 y r2
2. Calcular x = a + (c – a)r1
3. Es x < b si la respuesta es afirmativa
( )
( )( )
( )
[ ]
( )
( )
a
b
r
a
r
a
c
a
a
b
a
c
x
f
−
=
−
−
+
−
−
= 1
1
2
2
si la respuesta es negativa, entonces f(x) es :
( )
( )( )
( )
( ) ( ) ( )
b
c
r
b
c
r
c
r
a
c
a
b
c
a
c
x
f
−
−
=
−
−
=
−
−
+
−
−
−
= 1
1
1
1
2
1
2
2
4. Es
( )( )
2
2
α
−
≤
c
x
f
r
Si la respuesta es afirmativa, entonces se considera como valor x = a + (c – a)r1 Simulada, en
caso contrario regresemos al paso 1.
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
49
( )
( ) [ ]
( )
4
3
3
4
4
3
4
3
0
4
3
0
4
3
0 ≤
≤
=
=
=
=
= ∫
r
r
x
r
x
F
t
x
F
dt
x
F
x
x
x
x
( )
( )
( )
8
15
8
9
4
3
8
9
8
9
8
9
8
9
4
3
3
2
4
3
4
3
3
5
4
3
4
3
1
2
1
2
1
1
1
1
1
0
+
−
=
+
+
−
=
+
−
=
−
−
−
=
−
−
−
−
=
−
−
−
−
=
−
+
=
x
y
x
y
x
y
x
y
x
y
x
x
x
x
y
y
y
y
b
mx
y
( ) ( )( )
( )
1
9
1
12
15
1
2
4
2
4
4
3
8
9
2
3
8
15
8
9
4
9
4
9
8
15
8
9
16
36
256
324
64
255
8
15
8
9
16
36
256
324
64
255
8
15
16
9
16
9
16
9
2
8
15
8
15
2
≤
≤
−
±
=
−
±
=
−
±
=
−
−
±
=
−
−
±
=
+
−
−
±
=
−
±
−
=
r
r
x
r
x
r
x
r
x
r
x
r
x
a
ac
b
b
x
( )=
x
f
8
15
8
9
+
− x
1
0 ≤
≤ x
3
5
1 ≤
≤ x
Ejemplo.
Calculando la segunda parte de la función 1° parte
2° parte
( ) ( )
( ) [ ]
( ) ( )
[ ]
( )
( )
0
16
9
8
15
2
16
9
16
9
8
15
2
16
9
16
9
8
15
2
16
9
8
15
16
9
8
15
2
16
9
4
3
8
15
16
9
8
15
2
16
9
4
3
1
8
15
16
9
4
3
1
8
15
8
9
4
3
2
=
+
+
−
−
+
−
=
−
+
−
=
−
+
+
−
=
+
−
−
+
−
+
=
+
−
+
=
+
−
+
= ∫
r
x
x
x
x
r
x
x
x
F
x
x
x
F
x
x
x
F
t
x
F
dt
t
x
F
x
t
x
Resolviendo la ecuación de segundo grado
mediante la fórmula general
4
3
4
3
3
5
( )
2
2 , y
x
( )
1
1, y
x
1
x
( )
x
f
0
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
50
Método De Composición
En esta técnica f(x), la función de densidad probabilidad de la distribución que se va
simular, esta expresada como una mezcla de probabilidad de funciones de densidad propiamente
seleccionadas.
Este procedimiento está basado en la definición de probabilidad condicional o la ley de
probabilidades compuestas.
Matemáticamente sea g(x|y) una familia de funciones de densidad de un parámetro donde
y es el parámetro que identifica de manera única a g(x). Si un valor de y es ahora descrito de una
función de distribución acumulada H(y) y entonces si x es una muestra de g(x), para seleccionar
y, la función de densidad para x será:
( ) ( ) ( )
y
dH
y
x
g
x
f
f ∫
∞
∞
−
=
=
Usando este principio, distribuciones más complicadas pueden ser generadas de
distribuciones más simples las cuales son en sí mismas fácilmente generadas, por la técnica de la
transformación inversa o la técnica de rechazo.
Ejemplo: Generar una varianza aleatoria de ( ) ∫
∞
∞
−
−
−
= dy
e
y
n
x
f xy
n
cuando (sea) ( ) 1
+
= n
y
dy
n
y
dH
1
,
1 ≥
∞
<
< n
y y ( ) yx
ye
x
g −
=
Una varianza es ahora obtenida desde una función de densidad cuya su función de
distribución acumulativa es H(y). Una vez que y es seleccionada, esta determina una particular
g(x) = ye-yx. La varianza deseada de f(x) es entonces una varianza simplemente generada de
g(x) = ye-yx. Para continuar con las siguientes instrucciones, genera dos varianzas uniformes R1
y R2, y cuando:
Entonces x es la varianza deseada de:
( ) ∫
∞
−
−
=
1
dy
e
y
n
x
f yx
n
Esta técnica es apropiada cuando se desea generar distribuciones de tipo mas alto usando
distribuciones La dificultad recae en identificar la H(y) y g(xy) la cuál se necesita para
producir una f(x) dada dentro de la relación.
2
1
1
1
log
1
1
R
X
R
s
s
n
=
=
−
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
51
( ) ( ) ( )
y
dH
y
x
g
x
f ∫
∞
∞
−
=
Afortunadamente, las estadísticas matemáticas nos han provisto de varias relaciones
funcionales llamadas “convoluciones” que pueden ser usadas en la generación de ciertas
desviaciones aleatorias. Los siguientes ejemplos sirven para ilustrar el procedimiento.
La Distribución De Poisson
Si los intervalos de eventos similares están distribuidos exponencialmente, el número de
eventos ocurridos en un intervalo unitario de tiempo, tiene la distribución de Poisson.
Las aplicaciones de las variables aleatorias de Poisson incluyen tantas áreas tales como
control de los inventario, teoría de colas, control de calidad, flujo de tráfico y muchas otras áreas
ciencias administrativas.
La función de densidad de probabilidad para la distribución de Poisson esta dada por:
( )
!
X
e
x
f
x λ
λ −
= ∞
= ,
,
2
,
1
,
0 K
x
donde λ es el número esperado de sucesos por unidad de tiempo. Esto implica que el
tiempo entre eventos esta distribuido exponencialmente con media de λ
1
Podemos utilizar esta relación entre la distribución Poisson y la exponencial para generar
desviaciones de la distribución de Poisson.
Una desviación x de Poisson puede ser definida de la siguiente manera:
∑
∑
+
=
=
≤
≤
1
1
1
1
x
i
i
x
i
i y
y
donde y1, y2,....,yx+1 son desviaciones aleatorias de una distribución exponencial teniendo
como media 1/λ y son generadas por (la técnica de transformada inversa)
i
i R
y ln
1
λ
−
=
donde Ri está dada por la distribución uniforme. En conclusión, las sumas acumulativas
son generadas hasta que se obtiene la desigualdad. Cuando esto ocurre, x es la desviación
aleatoria de Poisson deseada.
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
52
Otra forma de este mismo procedimiento es definir la desviación x de Poisson cuando:
∑
∑
+
=
=
≤
≤
1
1
1
x
i
i
x
i
i y
y λ
donde yi es otra vez las desviaciones de la distribución exponencial pero con media 1/λ,
esto es:
λ
i
i
R
y
ln
−
=
Las 2 técnicas son esencialmente las mismas, pero la primera parece ser más apropiada
con la definición de la distribución exponencial donde las yi’s tiene una media de λ
1
.
Ejemplo.
Sabemos que por la teoría de la probabilidad que si el número de eventos se puede
describir a través del flujo de Poisson, el tiempo entre la ocurrencia de eventos debe ser
exponencial. En la distribución de Poisson el resultado se expresa como el número de eventos n
que ocurren en un determinado tiempo t. Por lo tanto para muestrear la distribución exponencial
con media λ
1 tantas veces como sea necesario hasta que la suma de las variables aleatorias
generadas exceda a t por vez primera. En este caso, el valor de Poisson muestreado n se toma
igual al número de veces que se muestreo la distribución exponencial -1.
Supóngase que se desea muestrear una distribución de Poisson 3
=
λ durante un periodo
de 1.4 hrs.
( )
i
i
x
r
t
x
e
x
f
ln
1
!
λ
λ λ
−
=
=
−
n 1 2 3 4 5
rn 0.058962 0.673284 0.479909 0.948578 0.61396
tn 0.9436 0.1318 0.2447 0.1075 0.1624
∑
=
n
i
i
t
1
0.9436 1.0754 1.3201 1.3376 1.5002
t = 1.4
∑ ∑
=
+
=
≤
≤
n
i
n
i
i
i t
t
t
1
1
1
X = 0, 1, 2,…, α
λ= 3 eventos por hora.
X = Variable aleatoria de Poisson
X = 4 número de eventos que llegan en 1.4 hrs.
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
53
Distribución Erlang
La distribución Erlang es una forma de la distribución gamma con K igual a un entero
positivo. Estadísticos Matemáticos han probado que esta distribución es solo la suma de las
variables exponenciales de K, cada una con un valor esperado 1/k.
Para generar una desviación Erlang, nosotros solo necesitamos la suma de las
desviaciones exponenciales K, cada una con el valor esperado 1/k. De esta manera la varianza x
de Erlang es esperada como:
∑ ∑
= =
∞
−
=
=
k
i
k
i
i
i R
y
X
1 1
1
ln
donde yi es una desviación exponencial generada por la técnica de la transformada inversa
Ri es un número aleatorio de la distribución uniforme.
Distribución Binomial
Una variable aleatoria x definida como el número de eventos exitosos en una secuencia de
n tiradas o intentos independientes de Bernoulli, cada una con probabilidad de éxito p, es
conocida como una variable aleatoria binomial. La distribución binomial es una de las más
importantes en las distribuciones estadísticas usadas en un área de ejemplificación y control de
calidad. La función de densidad de probabilidad binomial está dada por:
( ) x
n
x
q
p
x
n
x
f −








= n
x ,
,
1
,
0 L
=
donde
p = probabilidad de éxito por tirada
q = 1-p
n = número de tiradas
x = número de éxitos, en entero
Para generar una desviación binomial con parámetros p y n el procedimiento es el
siguiente:
1. Generar n desviaciones aleatorias uniformes
2. Contar el número de varianzas uniformes menor o igual a p
3. El número encontrado en el paso 2 es igual al valor de la varianza binomial
Este procedimiento puede entonces ser repetido tantas veces como sea necesario para
generar otras desviaciones binomiales.
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
54
Otro procedimiento involucrado que usa la distribución normal como una aproximación a
la binomial para casos donde n ≥ 20 y np ≤ 10. Desde que la varianza binomial es un entero, la
varianza normal usada como una aproximación debe ser redondeada al valor entero más cercano.
Este método es más rápido pero es solo una aproximación.
Método De Transformación Inversa Para Distribuciones Discretas
Se utiliza cuando se desea simular variables aleatorias de tipo discreto, como la
distribución de Bernoulli, binomial, Poisson, discreta general, etc., El procedimiento es similar al
continuo pero el valor de F(x) se encuentra acumulando las probabilidades de los eventos
individuales p(x). También en este caso, F(x) está definida en el intervalo 0 a 1; se genera un
número aleatorio ri y se determina el valor de la variable aleatoria cuya distribución acumulada es
igual a ri.
La figura nos muestra en forma gráfica el procedimiento anterior para una función
cualquiera p(x) discreta.
La dificultad de este método radica en que no existe una expresión final sencilla, como en
el caso de la continua.
Metodología
Paso 1 Calcular todos los valores de p(x) para la distribución propuesta.
Paso 2 Calcular la probabilidad acumulada F(x) para cada valor de x.
Paso 3 Generar un valor ri. Verificar en F(x) a qué intervalo de x pertenece y ese será el
número aleatorio generado por la distribución propuesta.
f(x)
0 x
F(x)
0 Xi= F -1
(Ri) x
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
55
Ejemplo.
( )
( )( )
( ) ( )
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( ) 00032
.
0
80
.
0
0.20
5
5
5
0064
.
0
80
.
0
0.20
4
5
4
0512
.
0
80
.
0
0.20
3
5
3
2048
.
0
80
.
0
0.20
2
5
2
4096
.
0
80
.
0
0.20
1
5
1
32768
.
0
80
.
0
0.20
0
5
0
!
!
!
!
!
1
2
1
-
n
n
20
.
0
80
.
0
5
0
5
1
4
2
3
3
2
4
1
5
0
=








=
=








=
=








=
=








=
=








=
=








=
−
=
−
−
=








=
=
=








= −
P
P
P
P
P
P
x
n
x
n
x
n
x
n
x
n
p
q
n
q
p
x
n
x
P x
n
x
K
0.4
0.3
0.2
0.05
( )
x
f
x
0 1 2 3 4 5
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
56
Números aleatorios
43999
.
0
03991
.
0
82745
.
0
34565
.
0
71997
.
0
72484
.
0
6
5
4
3
2
1
=
=
=
=
=
=
r
r
r
r
r
r
1
0
2
1
1
1
6
5
4
3
2
1
=
=
=
=
=
=
x
x
x
x
x
x
0.25
0.50
0.75
0.90
1
0 1 2 3 4 5
( )
x
F
x
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
57
UNIDAD IV
Lenguajes De Simulación
Introducción
El GPSS/TM y el GPSS/H  son aplicaciones nuevas e interactivas dentro del
ambiente IBM del GPSS, General Purpose Simulating System (en español, Simulación de
Sistemas de propósito General) desarrollado a principios de la década de los 60 por Geoffrey
Gordon. El objetivo principal del GPSS es la modelación de sistemas discretos.
Cualquier sistema por simular en este lenguaje se debe describir mediante un diagrama de
bloques que representan las actividades, unidos mediante líneas que representan la secuencia que
seguirán un grupo de transacciones, que a su vez se mueven a través de los bloques. Las
transacciones dependen de la naturaleza del sistema, por ejemplo un sistema de comunicaciones
se refiere al movimiento de mensajes; un sistema de transporte se refiere al vehículos
motorizados; un sistema de producción, al movimiento de piezas.
La simulación mediante GPSS se realiza con dos elementos básicos conocidos como
transacciones y bloques. Una transacción es aquello que fluye a través del sistema de
manufactura, y que puede ser: información, piezas, órdenes de producción, fallas, operarios,
mecánicos, etcétera, mientras que un bloque se define como cualquier operación que realiza una
transacción dentro de un sistema; algunas operaciones pueden ser las siguientes: procesamiento,
entrada a un almacén, salida de un almacén, inicio de proceso, fin de proceso, salida del sistema,
ensamble, desensamble, etcétera.
En un principio los lenguajes de simulación se elaboran utilizando algún lenguaje de
propósito general como FORTRAN, ALGOL, PL/1, etc. Esto requería un gran trabajo de
programación; con el paso del tiempo se fueron identificando diferentes situaciones, hasta llegar
a estandarizarse ciertas instrucciones de programación en rutinas bien definidas.
De este concepto nació el diseño de lenguaje específico para programas de simulación con
los cuales se ha ido facilitando al usuario la programación de sus modelos.
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
58
Definición de funciones FUNCTION
Definición de números de máquinas STORAGE
Definición de matrices MATRIX
Asignación numérica a variables EQU
Inicialización de variables INITIAL
Definición de histogramas TABLE
Definición de operaciones VARIABLE Y FVARIABLE
Estructura Del Lenguaje:
Para usar el GPSS se requiere tener conocimientos de los comandos más comunes del
sistema DOS. Dentro de un programa de GPSS se pueden distinguir cuatro tipos de
instrucciones, cada una de las cuales se detalla a continuación:
a) Instrucciones de acceso al sistema GPSS. Estas instrucciones permiten al usuario el acceso
al compilador del GPSS y dependen de cada tipo de versión utilizada; en este punto se
recomienda hacer referencia al manual respectivo.
b) Instrucciones de definición de variables. Son un tipo de instrucciones especiales de carácter
opcional; su inclusión depende del sistema a modelar. Estas instrucciones siempre se
encuentran relacionadas con las instrucciones de lógica del programa. Dentro de las
instrucciones se encuentran las siguientes: definición de las funciones a utilizar, definición de
capacidad de los almacenes, definición del número de operarios o maquinas por estación,
inicialización de variables, definición de las operaciones matemáticas por utilizar, etcétera. A
continuación se muestra una lista de las definiciones más comunes utilizadas en GPSS:
c) Instrucciones de Lógica del programa. Este tipo de instrucciones son las conocidas como
bloques; son las que se ejecutarán durante la simulación; la lógica dependerá de cada sistema
que se desee simular. Teniendo en cuenta la función que realizan, una clasificación de los
bloques o instrucciones de lógica es la siguiente:
Simulación de inicio de proceso y captura de máquina SEIZE
ENTER
PREEMPT
Simulación de fin de proceso y liberación de máquina RELEASE
LEAVE
RETURN
Simulación de entrada de transacciones a un almacén QUEUE
ENTER
LINK
Simulación de salida de transacciones de un almacén DEPART
ENTER
UNLINK
Simulación de entrada transacciones al sistema GENERATE
SPLIT
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
59
Simulación de la salida de transacciones del sistema TERMINATE
Simulación de diversos tipos de proceso ADVANCE
ASSEMBLE
MATCH
GATHER
Simulación del control de flujo de transacciones TRANSFER
TEST
GATE
LOGIC
SELECT
LOOP
BUFFER
Bloques de operaciones aritméticas SAVEVALUE
MSAVEVALUE
ASSIGN
INDEX
PRIORITY
Bloque de creación de estadísticas TABULATE
Las instrucciones de tipo b) y c) se codifican siguiendo un formato general, dentro del
cual se pueden distinguir los siguientes elementos:
2 8 19 31
Loc Bloque Operandos Comentarios
Donde:
• Loc: Representa el nombre de una etiqueta o una dirección. La etiqueta es un campo
opcional y su existencia depende de la lógica del programa. Está localizado en la
“columna 2”. Su función es similar a las etiquetas en Fortran.
• Bloque: Es la instrucción específica por ejecutar. Representa la acción que va a llevar a
cabo cada una de las transacciones que cruza por allí. Se coloca en la “columna 8”.
• Operandos: Cada bloque representa la acción por ejecutar, sin embargo, es necesario
incluir un complemento, como puede ser la duración o el lugar de dicha acción. Los
operandos son las características individuales de cada bloque, y dependerán de la lógica
del sistema. Se colocan en la “columna 19”.
• Comentarios: Es el espacio donde el usuario puede colocar cualquier indicación o
identificación de la instrucción.
Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto
Ingeniería en Sistemas Computacionales Simulación
60
En algunas versiones del GPSS, como en la de GPSS/PC, cada instrucción debe ir precedida de
un número de instrucción en forma ascendente de acuerdo con la lógica, pero se utiliza sólo como
referencia para la edición del programa.
d) Instrucciones de control de la simulación. Estas instrucciones son las que controlan la
ejecución, edición y manejo de archivos en GPSS/PC. Las principales son: END, START,
SIMULATE.
Así, una vez dados los lineamientos generales, elementos y estructura del GPSS, a
continuación se explican de manera más detallada los principales bloques del GPSS, incluyendo
algunos ejemplos ilustrativos.
Lenguajes Específicos De Simulación
Ventajas:
1. El tiempo de desarrollo de la programación es muy corto porque se trata de
lenguajes sintéticos basados en programación por bloques o subrutinas, e incluso
algunos de ellos están encaminados al usuario de tal forma que ya no es
indispensable programar.
2. Permite realizar análisis de sensibilidad fácilmente y en un corto tiempo. Tiene
alta flexibilidad para hacer cambios.
3. Integra funciones como generación de números aleatorios, análisis estadístico y
gráficas.
4. Tiene una alta fiabilidad que conduce a una validación de resultados sencilla y
rápida.
5. Permite definir y entender el sistema a simular gracias a que se tiene una
visibilidad superior de la estructura general del modelo y se aprecian más
fácilmente las interrelaciones.
Desventajas
1. Es necesario invertir en adquisición del software.
2. Se requiere invertir tiempo y costo en la capacitación de los programadores del
nuevo lenguaje.
3. La computadora de la compañía y el software a adquirir deben ser compatibles.
Características De Los Lenguajes De Simulación
En la actualidad los lenguajes que existen en el mercado tienen una serie de características
propias que los distinguen de otros, entre esas características están las siguientes:
1. El procedimiento utilizado para generar los números aleatorios uniformes y las
variables no uniformes conocidas.
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf
Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf

Más contenido relacionado

Similar a Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf

Simulaci%c3%b3n%20y%20 finanzas%20(mim)
Simulaci%c3%b3n%20y%20 finanzas%20(mim)Simulaci%c3%b3n%20y%20 finanzas%20(mim)
Simulaci%c3%b3n%20y%20 finanzas%20(mim)Carlos Llerena
 
Octave calculo numerico
Octave calculo numericoOctave calculo numerico
Octave calculo numericoLUIS COAQUIRA
 
kipdf.com_teoria-y-ejercicios-practicos-de-dinamica-de-siste_5ae2927f7f8b9a64...
kipdf.com_teoria-y-ejercicios-practicos-de-dinamica-de-siste_5ae2927f7f8b9a64...kipdf.com_teoria-y-ejercicios-practicos-de-dinamica-de-siste_5ae2927f7f8b9a64...
kipdf.com_teoria-y-ejercicios-practicos-de-dinamica-de-siste_5ae2927f7f8b9a64...MOISESJOSAFATVALENCI
 
Postgres programmer josue
Postgres programmer josuePostgres programmer josue
Postgres programmer josueJosué Ruiz
 
Fundamentos de Programación con Lenguaje de Programación C++
Fundamentos de Programación con Lenguaje de Programación C++Fundamentos de Programación con Lenguaje de Programación C++
Fundamentos de Programación con Lenguaje de Programación C++Andy Juan Sarango Veliz
 
El lenguaje de programación c++
El lenguaje de programación c++El lenguaje de programación c++
El lenguaje de programación c++Darkcame
 
Practica 8 practica indices-citas-bibliografias
Practica 8 practica indices-citas-bibliografiasPractica 8 practica indices-citas-bibliografias
Practica 8 practica indices-citas-bibliografiaserikaselenacoronel
 
Introducción a la navegación de robots en ambientes inteligentes
Introducción a la navegación de robots en ambientes inteligentesIntroducción a la navegación de robots en ambientes inteligentes
Introducción a la navegación de robots en ambientes inteligentesPablo Iñigo Blasco
 
Manual referencia cxx
Manual referencia cxxManual referencia cxx
Manual referencia cxxAbefo
 
MANUAL DE LENGUAJE C
MANUAL DE LENGUAJE CMANUAL DE LENGUAJE C
MANUAL DE LENGUAJE Cclaudiocj7
 
Manual simulink
Manual simulinkManual simulink
Manual simulinkcosococo
 
Informe final practica pre_ii_francisco_flores_v6
Informe final practica pre_ii_francisco_flores_v6Informe final practica pre_ii_francisco_flores_v6
Informe final practica pre_ii_francisco_flores_v6Francisco Flores Murrieta
 
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0KathaBCN
 
Pysafet workflow and json library documentation
Pysafet workflow and json library documentation Pysafet workflow and json library documentation
Pysafet workflow and json library documentation Víctor Bravo Bravo
 

Similar a Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf (20)

Simulaci%c3%b3n%20y%20 finanzas%20(mim)
Simulaci%c3%b3n%20y%20 finanzas%20(mim)Simulaci%c3%b3n%20y%20 finanzas%20(mim)
Simulaci%c3%b3n%20y%20 finanzas%20(mim)
 
Octave calculo numerico
Octave calculo numericoOctave calculo numerico
Octave calculo numerico
 
kipdf.com_teoria-y-ejercicios-practicos-de-dinamica-de-siste_5ae2927f7f8b9a64...
kipdf.com_teoria-y-ejercicios-practicos-de-dinamica-de-siste_5ae2927f7f8b9a64...kipdf.com_teoria-y-ejercicios-practicos-de-dinamica-de-siste_5ae2927f7f8b9a64...
kipdf.com_teoria-y-ejercicios-practicos-de-dinamica-de-siste_5ae2927f7f8b9a64...
 
Postgres programmer josue
Postgres programmer josuePostgres programmer josue
Postgres programmer josue
 
Modulo herramientas
Modulo herramientasModulo herramientas
Modulo herramientas
 
Simulacion 3
Simulacion 3Simulacion 3
Simulacion 3
 
Fundamentos de Programación con Lenguaje de Programación C++
Fundamentos de Programación con Lenguaje de Programación C++Fundamentos de Programación con Lenguaje de Programación C++
Fundamentos de Programación con Lenguaje de Programación C++
 
El lenguaje de programación c++
El lenguaje de programación c++El lenguaje de programación c++
El lenguaje de programación c++
 
Practica 8 practica indices-citas-bibliografias
Practica 8 practica indices-citas-bibliografiasPractica 8 practica indices-citas-bibliografias
Practica 8 practica indices-citas-bibliografias
 
Apuntes de simulink (1)
Apuntes de simulink (1)Apuntes de simulink (1)
Apuntes de simulink (1)
 
Estocasticos
EstocasticosEstocasticos
Estocasticos
 
Introducción a la navegación de robots en ambientes inteligentes
Introducción a la navegación de robots en ambientes inteligentesIntroducción a la navegación de robots en ambientes inteligentes
Introducción a la navegación de robots en ambientes inteligentes
 
Manual referencia cxx
Manual referencia cxxManual referencia cxx
Manual referencia cxx
 
MANUAL DE LENGUAJE C
MANUAL DE LENGUAJE CMANUAL DE LENGUAJE C
MANUAL DE LENGUAJE C
 
Manual simulink
Manual simulinkManual simulink
Manual simulink
 
Informe final practica pre_ii_francisco_flores_v6
Informe final practica pre_ii_francisco_flores_v6Informe final practica pre_ii_francisco_flores_v6
Informe final practica pre_ii_francisco_flores_v6
 
Exp algoritmos
Exp algoritmosExp algoritmos
Exp algoritmos
 
Unidd 3
Unidd 3Unidd 3
Unidd 3
 
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
 
Pysafet workflow and json library documentation
Pysafet workflow and json library documentation Pysafet workflow and json library documentation
Pysafet workflow and json library documentation
 

Último

Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptxolgakaterin
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 

Último (20)

Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptx
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 

Instituto_Tecnologico_de_Acapulco - APUNTES DE SIMULACION.pdf

  • 1. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 1 Instituto Tecnológico de Acapulco Ingeniería en Sistemas Computacionales Apuntes de Apuntes de Apuntes de Apuntes de Simulación Simulación Simulación Simulación Catedrático Ing. Vales Ortiz Gilberto Alumno Horario
  • 2. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 2 Índice Unidad I. Introducción a la simulación Unidad I. Introducción a la simulación Unidad I. Introducción a la simulación Unidad I. Introducción a la simulación Introducción................................................................................................................... 4 Proceso de la simulación ............................................................................................... 5 Actividades de presimulación........................................................................................ 5 Actividades de desarrollo .............................................................................................. 7 Actividades de operación .............................................................................................. 8 Consideraciones relativas a la simulación..................................................................... 9 Variables exógenas...................................................................................................... 11 Variables de estado...................................................................................................... 12 Variables endógenas.................................................................................................... 12 Parámetros................................................................................................................... 12 Características de operación........................................................................................ 12 Identidades................................................................................................................... 12 Métodos analíticos, numéricos y de simulación.......................................................... 14 Simulación de un sistema de inventarios..................................................................... 17 Unidad II. Generación de Números Pseudoaleatorios Unidad II. Generación de Números Pseudoaleatorios Unidad II. Generación de Números Pseudoaleatorios Unidad II. Generación de Números Pseudoaleatorios Método de congruencias.............................................................................................. 25 Método multiplicativo ................................................................................................. 26 Computadoras binarias................................................................................................ 27 Computadoras decimales............................................................................................. 28 Pruebas estadísticas ..................................................................................................... 29 Prueba de medias......................................................................................................... 31 Prueba de varianzas..................................................................................................... 34 Prueba de poker........................................................................................................... 35 Prueba de series........................................................................................................... 37 Apéndice...................................................................................................................... 40 Definiciones................................................................................................................. 40 Teoremas ..................................................................................................................... 42 Unidad III. Generación de valores de variables aleatorias Unidad III. Generación de valores de variables aleatorias Unidad III. Generación de valores de variables aleatorias Unidad III. Generación de valores de variables aleatorias Método de transformación inversa.............................................................................. 44 Método de rechazo ...................................................................................................... 47 Método de composición .............................................................................................. 50 Distribución de POISSON........................................................................................... 51 Distribución ERLANG................................................................................................ 53 Distribución binomial.................................................................................................. 53 Método de transformación inversa para distribuciones discretas................................ 54
  • 3. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 3 Unidad IV. Lenguaje de Simulación Unidad IV. Lenguaje de Simulación Unidad IV. Lenguaje de Simulación Unidad IV. Lenguaje de Simulación Estructura del lenguaje ................................................................................................ 58 Lenguajes específicos de simulación........................................................................... 60 Características de los lenguajes de simulación............................................................ 60 Clasificación de los lenguajes de simulación.............................................................. 61 Introducción a los bloques GPSS ................................................................................ 62 Lenguaje GPSS............................................................................................................ 64 Tipos de bloques de GPSS .......................................................................................... 70 Símbolos de los diagramas de bloques de GPSS ........................................................ 71 Simulación de los sistemas discretos........................................................................... 83 Unidad V. Unidad V. Unidad V. Unidad V. Validación Validación Validación Validación Cálculo del número óptimo de simulación.................................................................. 90 Cálculo de número de réplicas .................................................................................... 92 Reducción de varianza................................................................................................. 93 Validación de resultados.............................................................................................. 95 Optimización ............................................................................................................... 97 Sensibilidad y experimentación................................................................................... 98 Monitoreo .................................................................................................................... 98 Bibliografía.................................................................................................................. 99
  • 4. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 4 UNIDAD I Introducción A La Simulación La simulación consiste básicamente en construir modelos informáticos que describen la parte esencial del comportamiento de un sistema de interés, así como en diseñar y realizar experimentos con el modelo y extraer conclusiones de sus resultados para apoyar la toma de decisiones. Típicamente, se utiliza en el análisis de sistemas tan complejos que no es posible su tratamiento analítico o mediante métodos de análisis numéricos. Sus orígenes están en los trabajos de Student para aproximar la distribución que lleva su nombre, y los métodos que Von Neumann y Ulam introdujeron para resolver ecuaciones integrales. Desde entonces, la Simulación ha crecido como una metodología de experimentación fundamental en campos tan diversos como la Economía, la estadística, la Informática o la Física, y con enormes aplicaciones industriales y comerciales, como los simuladores de vuelo, los juegos de simulación, o la predicción bursátil o meteorológica. Existen diversas maneras para definir el término simulación. Sin embargo debido a que se considera a la simulación como una extensión lógica y natural de los modelos analíticos y matemáticos, inherentes a la Investigación de Operaciones, la siguiente definición es considerada como una de las más completas. Simulación: “Es una técnica numérica para conducir experimentos en un computador digital, la cual incluye ciertos tipos de relaciones lógicas y matemáticas necesarias para describir la estructura y comportamiento de un sistema complejo del mundo real sobre un periodo de tiempo”. También se considera a la simulación como un proceso para describir la esencia de la realidad, el cual incluye la construcción, experimentación y manipulación de un modelo complejo en un computador. El uso de la metodología de simulación ofrece ventajas y desventajas, entre las cuales podemos mencionar las siguientes: Ventajas: 1. La simulación hace posible estudiar y experimentar con las interacciones complejas de un sistema dado (sin importar cuál). 2. A través de la simulación podemos estudiar el efecto de cambios ambientales, organizacionales de cierta información, en la operación del sistema. 3. La observación detallada del sistema simulado nos permite tener una mejor comprensión del mismo. 4. La experiencia al diseñar un modelo de simulación para computadora es más valiosa que la simulación en sí.
  • 5. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 5 5. La simulación nos permite experimentar con situaciones nuevas, para los cuales no se tiene o hay poca información. Desventajas: 1. Los modelos de simulación para computadora son costosos y requiere tiempo para desarrollarse y validarse. 2. Se requiere gran cantidad de corridas para encontrar “soluciones óptimas”. 3. Es difícil aceptar los modelos de simulación. 4. Los modelos de simulación no son de optimización directa (son modelos de análisis). 5. Se pueden tener restricciones o limitaciones en la disponibilidad del software requerido. Filosofía, Desarrollo E Implementación De Un Modelo De Simulación La simulación es una de las herramientas más fáciles de usar en la ciencia administrativa, pero posiblemente una de las más difíciles de aplicar apropiadamente. El Proceso De La Simulación. Es apropiado examinar el proceso completo para el cuál el análisis de simulación es planeado y ejecutado. El diseño del modelo de simulación es en sí mismo una parte crítica de cualquier estudio. El proceso comprende tres tipos de actividades: 1. Actividades de presimulación. 2. Actividades de desarrollo. 3. Actividades de operación. Actividades De Presimulación La primera actividad es el reconocimiento del problema, este nos lleva al estudio y análisis del sistema y culmina en el establecimiento de un objetivo dirigido a la solución del problema. Estos objetivos se pueden categorizar en: Caracterización del sistema a ejecutar esto nos lleva a: 1. Selección de los parámetros de operación del sistema ya existente. 2. Selección de los parámetros de operación de un sistema propuesto. 3. Exploración del comportamiento del sistema.
  • 6. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 6 Modificación De Un Sistema Existente Diseño de un nuevo sistema. En esta etapa del proceso el usuario debe evaluar las diferentes herramientas disponibles relacionadas con su objetivo. Ejemplos: • EOQ: Modelo Tamaño de lote (control de inventarios) método de solución deductivo. • SIMPLEX: Es una solución algorítmica. La simulación es una técnica apropiada donde no es factible experimentar con el sistema mismo o donde las técnicas analíticas directas no son disponibles. ACTIVIDADES DE PRESIMULACIÓN RECONOCIMIENTO DEL PROBLEMA ANÁLISIS DEL SISTEMA ESTABLECIMIENTO DEL OBJETIVO DEDUCTIVO SIMULACIÓN ALGORITMO SELECCIÓN APROXIMADA
  • 7. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 7 Actividades De Desarrollo Las primeras actividades de desarrollo son el diseño y la implementación del modelo de simulación. Después que estas tareas son completadas la siguiente actividad es la “verificación del modelo”. En el estudio del diseño de sistemas, el propósito es producir un sistema que satisfaga algunas especificaciones. El diseñador puede elegir o planear determinados sistemas de componentes y conceptualmente elige una combinación determinada de componentes para construir un sistema. El sistema propuesto se modela y se predice su comportamiento. Un modelo validado es aquel que ha probado comportarse tal como el diseñador lo intento. Fishman y Kiviat sugieren técnicas para verificación incluyendo métodos estadísticos que nos llevan más allá de las prácticas usuales de simples análisis comparativos. La validación y verificación de un modelo parecieran ser lo mismo, pero difieren conceptualmente de manera sutil. Un modelo validado, es aquel que ha probado ser una “abstracción” razonable del sistema del mundo real que intenta representar. La aproximación usual de “validación” es la corrida del modelo con datos históricos y comparar los resultados del modelo con los resultados del sistema para los mismos datos. Tal comparación usualmente no es válida debido a que el modelo puede ser de naturaleza experimental o predictivo. El diseño estratégico se refiere a la actividad de planeación y diseño de la experimentación, incluye la especificación de la información que va a ser determinada y la exactitud de esta información. Existen técnicas apropiadas de diseño experimental, tales como factorial completo, fracción factorial, etc. La experimentación al establecer un objetivo sirve para: 1. Exploración del comportamiento del sistema 2. Optimización de los parámetros del sistema La exploración del comportamiento del sistema intenta explicar la relación entre los resultados de la Simulación y los parámetros controlables. La optimización es ejecutada para encontrar la combinación de los niveles de los parámetros los cuales minimizan o maximizan los resultados de la simulación.
  • 8. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 8 Actividades De Operación En esta etapa el proceso de simulación, el modelo ha sido diseñado, implementado y ha sido planeado. Las actividades posteriores son las de llevar a cabo la experimentación. Esta debe iniciar con el diseño táctico de los experimentos que van a ser ejecutados. Estas actividades son: la determinación de número de corrida, y la cantidad de datos a utilizar en cada corrida. También incluye el establecimiento de las condiciones iniciales de las variables del modelo, la estimación de los parámetros que alcanzan el estado de equilibrio del sistema. El usuario debe determinar como debe reconocer el equilibrio. Otras consideraciones son: el tamaño de la muestra requerido para los datos, las técnicas a utilizar en la comparación del sistema alternativo, sí éste es el objeto de estudio. Si el objetivo ha sido alcanzado, el estudio de simulación ha sido completado. No obstante, debido a que la simulación es un proceso de prueba-error, con frecuencia el objetivo no se puede alcanzar, entonces optamos por las dos alternativas generales disponibles. • La primera es la de modificar el modelo. • La segunda es la de utilizar el mismo modelo alternando el diseño del experimento, usando nuevas técnicas. ACTIVIDADES DE DISEÑO DISEÑO DEL MODELO DISEÑO ESTRATÉGICO DEL EXPERIMENTAL VERIFICACIÓN DEL MODELO VALIDACIÓN DEL MODELO
  • 9. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 9 ACTIVIDADES DE OPERACIÓN DISEÑO TÁCTICO DE EXPERIMENTACIÓN OPERACIÓN DEL MODELO ¿EXPERIMENT O COMPLETO? CAMBIOS EN LOS PARAMETROS NO SI ANÁLISIS DE DATOS SIMULADOS SE CUMPLEN LOS OBJETIVOS? NO SI MODIFICAR EXPERIMENTO MODELO ALTO Consideraciones Relativas A La Simulación Los siguientes tópicos generalmente son cubiertos en textos de simulación: • Control de tiempo • Generación de números aleatorios • Generación de V.V.A.A. • Técnicas de reducción de varianzas • Lenguajes de simulación El objeto del modelo científico es permitir al analista la determinación de uno o más cambios en los aspectos del sistema modelado que afectan otros aspectos del sistema e incluso la
  • 10. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 10 totalidad del mismo. Un modelo útil debe necesariamente incorporar elementos de dos atributos en discrepancia: realismo y simplicidad. Por un lado el modelo ha de ser una aproximación razonable del sistema real y por tanto incorporar la mayor parte de los aspectos importantes de este; por otro lado, no es conveniente que un modelo resulte tan complejo que se vuelva imposible entenderlo. Los modelos matemáticos de sistemas económicos constan de 4 elementos bien definidos: los componentes, las variables, los parámetros y las relaciones funcionales. Las variables se usan para relacionar un componente con otro y se clasifican en: a) Variables Exógenas (Independientes o de entrada del modelo) b) Variables de Estado (Controlables o no controlables) c) Variables Endógenas (Dependientes o de salida del sistema) Las variables que aparecen en los modelos económicos se emplean para relacionar un componente con otro y se clasifican, convenientemente, como variables exógenas, variables de estado y variables endógenas. Las variables exógenas son las independientes o de entrada del modelo y se supone que han sido predeterminadas y proporcionadas independientemente del sistema que se modela. Es posible clasificar las variables exógenas en controlables y no controlables. Las controlables son aquellas variables o parámetros susceptibles de manipulación o control por quienes toman decisiones. Las no controlables las genera el medio ambiente en el cual el sistema modelado existe y no el sistema en si o los encargados de tomar decisiones. Las variables de estado describen el estado de un sistema o uno de sus componentes, ya sea al comienzo, al final o durante un período de tiempo. El valor de una variable de estado, durante un período particular de tiempo, puede depender no solamente de los valores de una o más variables exógenas en algún período precedente, sino también del valor de ciertas variables de salida en períodos anteriores. Las variables de estado de una empresa podrían incluir el efectivo, el inventario y el pasivo de un período particular (de tiempo), así como también las ventas en algún período precedente y los gastos de propagandas para algún período futuro. Las variables endógenas son las dependientes o de salida del sistema y son generadas por la interacción de las variables exógenas con las de estado, de acuerdo con las características de operación del último. El hecho que una variable en particular este clasificado como exógena, de estado o endógena, depende del propósito de la investigación.
  • 11. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 11 Las variables exógenas se emplean en dos formas diferentes en experimentos de simulación: es posible tratarlas como los parámetros dados, las cuales tienen, por supuesto, que estimarse con anterioridad y almacenarse dentro de la computadora como datos de entrada; si son variables estocásticas, existe la posibilidad de generarlas internamente en la computadora. Hay dos relaciones funcionales que describen la interacción de las variables y los componentes de un modelo económico: las identidades y las características de operación. Las identidades tomaran la forma de definiciones o declaraciones tautológicas, relativas a los componentes del modelo. Una característica de operación es una hipótesis, generalmente una ecuación matemática, que relacionan las variables endógenas y de estado del sistema, con sus variables exógenas. Para ilustrar el sistema de clasificación de elementos de los modelos matemáticos considérese el siguiente ejemplo: Se considera un modelo simple de un fenómeno de espera, de un solo canal y con estaciones múltiples para una empresa. Los componentes de este modelo se ilustran en la figura 1. Y consiste de ordenes que llegan a la empresa y procesos, a través de los cuales, una orden pasara antes de completarse. El propósito del modelo es relacionar el tiempo total que requiere una orden para pasar a través de n procesos, con la forma en que llegan las órdenes y el tiempo que consume cada uno de tales procesos. El modelo contiene las siguientes variables, parámetros, características de operación e identidades. Variables Exógenas. ATi = El intervalo de tiempo entre la llegada de la i-ésima orden y la (i-1)-ésima orden, en donde i=1,2,...,m. STij = El tiempo de procesamiento para la i-ésima orden en el j-ésimo proceso en donde i=1,...,m y j=1,2,...,n. PEDIDOS DE FÁBRICA PROCESO 1 PROCESO 2 PROCESO n … Fig1. Diagrama de flujo de una empresa con procesos múltiples.
  • 12. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 12 AT1 = 0 WT11 = 0, WT12 = 0,..., WT1n = 0 n-1 IDT11 = 0, IDT12 = ST11,..., IDT1n = ∑ST1j j=1 T11 = ST11, T12 = ST12,..., T1n = ST1n Variables De Estado. WTij = el tiempo que la i-ésima orden espera para entrar al j-ésimo proceso, en donde i=1,...,m y j=1,...,n. IDTij = el tiempo que el proceso j-ésimo permanece ocioso mientras que espera la llegada de la i-ésima orden, en donde i=1,...,m y j=1,...n. Tij = el tiempo total que la i-ésima orden esta en el j-ésimo proceso, donde i=1,...,m y j=1,...,n. Variables Endógenas. Ti = el tiempo total que la i-ésima orden esta en el sistema, es decir, el tiempo requerido para pasar a través de los n procesos. Parámetros E (AT) = El intervalo de tiempo esperado entre las órdenes. Var (AT) = La varianza del intervalo del tiempo entre las órdenes. E (STij) = El tiempo esperado para el j-ésimo proceso donde j=1,2,...n. Var (STij) = La varianza del tiempo para el j-ésimo proceso donde j=1,2,...n. Características De Operación f (ATi) = La función de densidad de probabilidad para el intervalo de tiempo entre las órdenes. f (STij) = La función de densidad de probabilidad para el tiempo de procesamiento del j-ésimo proceso donde j=1,...,n. Identidades Cuando la primera orden llega a la empresa, es decir, cuando i=1, se supone que las siguientes ecuaciones describen el sistema de procesos múltiples:
  • 13. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 13 Para órdenes subsiguientes, esto es, cuando i = 2,3,...,m, estas ecuaciones se modifican adecuadamente; las ecuaciones de tiempo se convierten en: Que el tiempo de espera o el tiempo de ocio, ocurra en un momento particular, depende del signo de las diferencias siguientes, donde i = 2,. . .,m : Si DIFj es positiva para el j-ésimo proceso, entonces el tiempo de ocio será nulo y el tiempo de espera puede calcularse con: Si DIFj es negativo para un proceso en particular, entonces el tiempo de espera será nulo y el tiempo de ocio será igual a: Si DIFj es igual a cero para un proceso en particular, entonces el tiempo de espera y el tiempo de ocio, serán nulos para ese proceso. Este modelo de una empresa con procesos múltiples, tiene varias aplicaciones posibles, por ejemplo, supóngase que al comprar un equipo nuevo, la empresa reducirá, un 50% el tiempo esperado de procesamiento, para un proceso en particular. El modelo servirá entonces para estimar el aumento esperado en el número total de órdenes, que es posible procesar completamente durante un período particular de planeación, para determinar sí la empresa esta justificada en la compra del nuevo equipo. Ti1 = WTi1 + STi1 i=2,...,m Ti2 = WTi2 + STi2 i=2,...,m . . . . . . . . . . . . . . . Tin = WTin + STin i=2,...,m DIF1 = Ti-1, 1 - ATi DIF2 = (Ti-1, 1 + Ti-1, 2) – (ATi + WTi1 + STi1) ................................................................................... DIFn = (Ti-1, 1 + Ti-1, 2 + ... + Ti-1, n) – (ATi + WTi1 + STi1 + ... + WTi, n-1 + STi, n-1) WTij = DIFj i = 2,...,m j = 1,...,n IDTij = - DIFj i = 2,...,m j = 1,...,n
  • 14. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 14 Métodos Analíticos, Numéricos Y De Simulación Consideremos un ejemplo simplificado de un ordenador, compuesto por un sistema de entrada/salida (E/S) y una unidad de proceso (CPU). El ordenador falla cuando lo hace alguno de los componentes. Expresado matemáticamente, si X1 designa el fallo de E/S, X2 el tiempo hasta el fallo de la CPU, y T el tiempo hasta el fallo del ordenador, tenemos T= min(X1, X2). Habitualmente, habrá incertidumbre sobre los tiempos anteriores, por lo que consideramos que X1, X2 y T son variables aleatorias. Supongamos que estamos interesados en calcular el tiempo esperado E(T) hasta el fallo, tal vez como parte de un estudio destinado a mejorar la fiabilidad del ordenador. Para simplificar la exposición, supongamos que Xi es exponencial de parámetro 2 , 1 , = i i µ , y ambas variables aleatorias son independientes. En este caso, tenemos que ∫ ∫ ∞ ∞ − − = 0 0 2 1 2 1 2 1 2 2 1 1 ) , min( ) ( dx dx e e x x T E x x µ µ µ µ Aproximación Analítica Apelamos a resultados del Cálculo de Probabilidades, teniendo en cuenta la independencia y el tipo de distribuciones. Resulta ( ) ( ) ( ) ( )t t t e e e t X P t X t X P t T P 2 1 2 1 1 2 1 , µ µ µ µ + − − − = = > = > > = > Por lo tanto, T tiene distribución exponencial de parámetro 2 1 µ µ + , con lo cual 2 1 1 ) ( µ µ + = T E . Por ejemplo, si 1 1 = µ , 2 2 = µ , 3 1 ) ( = T E . Observemos que para esta aproximación resulta esencial emplear hipótesis de independencia y exponencialidad, de manera que el razonamiento empleado es poco robusto; si cambiamos alguna de esas dos hipótesis, el cálculo exacto puede resultar mucho más complicado e, incluso, imposible de obtener mediante un método analítico. Aproximación Numérica. Una posibilidad, en tal caso, es apelar a algún procedimiento de integración numérica. Típicamente, un paso inicial será reparametrizar el problema, de manera que la región de integración sea acotada. Por ejemplo, tenemos que, haciendo el cambio de variable ( ) i i i u X µ − − = 1 ln ( ) ( ) ( ) 2 1 1 0 1 0 2 2 1 1 1 ln , 1 ln min du du u u T E ∫∫         − − − = µ µ
  • 15. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 15 y podemos aplicar, por ejemplo, la regla del trapecio. En nuestro caso, con 15 nodos y, como antes, 1 1 = µ , 2 2 = µ , obtenemos el valor .317 como aproximación del tiempo esperado hasta el fallo. Obsérvese que la estrategia numérica adoptada es más robusta, en el sentido de que si sustituimos alguna de las dos hipótesis, somos aún capaces de utilizarla. El inconveniente estará en que al aumentar la dimensión de la región de integración, la aproximación resultará cada vez más ineficaz. Aproximación Basada en Simulación. La aproximación basada en simulación consistirá en construir un programa que describa el comportamiento del sistema y realizar experimentos con él. En este caso, podríamos utilizar tiempofallo=0 desde i=1 hasta n desde j=1 hasta 2 generar Uj uniforme en (0,1) hacer j j j u X µ )) 1 (ln( − − = tiempofallo=tiempofallo + min(X1, X2) esp(tiempofallo)=tiempofallo/n Esencialmente, el programa simula tiempos de fallo X1, X2 y calcula el mínimo de ellos, repitiéndose el proceso n veces, esto es, simulando n caídas del sistema. El proceso de generar U1 y luego transformarla mediante i i i u X µ )) 1 (ln( − − = , nos permite simular tiempos hasta rotura del componente i-ésimo. Para la aplicación particular, supongamos que tenemos acceso a la tabla 1.1 de números aleatorios. Por ejemplo, si decidimos que n=20, podemos escoger los 20 primeros números para generar los U1 16 82 39 86 86 73 07 32 72 35 12 82 87 21 30 30 60 53 89 92 Y los últimos para generar U2. 38 63 63 30 36 25 66 30 53 98 49 78 40 92 80 97 67 46 38 34 Para ello, asociamos al número correspondiente el cociente resultante son 16 y 38, con lo cual U1=.16, U2=.38, X1=.17, X2=.24 y min(X1, X2)=.17. Repitiendo el proceso, resulta la estimación .308. 16 82 39 86 86 73 07 32 72 35 12 82 87 21 30 30 60 53 89 92 99 77 85 43 72 34 52 99 30 86 81 40 18 61 20 16 92 39 34 44 01 48 69 32 37 05 99 27 23 55 88 47 38 48 53 79 41 08 73 95 08 34 04 83 42 92 64 49 51 23 44 62 75 43 09 22 55 51 38 18 09 22 76 47 23 99 48 66 26 73 95 53 37 47 00 43 66 80 44 18 64 18 83 13 90 95 64 21 97 09 86 59 99 70 20 73 35 11 81 57
  • 16. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 16 77 67 94 40 00 12 26 45 77 54 21 51 91 91 28 74 47 00 53 95 73 01 20 47 86 40 71 03 13 36 98 50 48 45 30 23 40 85 76 63 72 67 37 77 52 79 93 67 57 78 77 07 58 19 48 32 72 94 66 11 58 96 79 92 08 88 46 62 58 96 75 18 57 89 21 17 26 92 26 63 41 69 24 18 81 29 14 06 67 15 23 70 27 89 40 77 31 98 71 15 16 45 84 78 49 17 84 92 51 12 08 78 30 35 63 84 34 68 97 10 92 09 48 47 40 81 30 44 03 98 19 38 33 07 00 55 70 65 24 19 26 92 58 75 64 61 49 58 68 45 09 32 76 03 29 08 73 11 33 79 17 33 86 83 91 26 51 12 57 73 21 12 09 58 24 64 91 53 24 92 91 41 97 06 57 45 39 16 64 92 66 18 78 71 55 99 29 18 02 56 52 00 40 81 14 06 94 03 71 39 09 33 74 08 42 15 85 08 35 30 10 07 82 40 99 00 91 31 44 73 51 42 08 28 31 35 20 07 85 96 70 70 14 24 43 71 60 86 17 85 61 05 65 10 68 73 03 31 45 23 96 50 32 72 89 62 28 76 60 00 52 94 67 16 32 08 88 27 01 94 20 89 41 95 46 28 45 92 21 97 51 15 02 82 11 95 65 27 50 08 30 99 84 95 47 72 38 22 55 44 50 61 71 58 86 49 25 60 69 17 94 53 29 42 38 74 90 06 18 71 99 27 84 88 03 43 07 53 96 02 50 61 25 57 55 50 92 14 39 77 29 17 73 75 83 38 40 02 06 47 38 63 63 30 36 25 66 30 53 98 49 78 40 92 80 97 67 46 38 34 Tabla 1.1 Números Aleatorios Por supuesto, si escogemos otra muestra de la tabla, lo que correspondería a una nueva replicación del experimento, obtendremos una estimación diferente.
  • 17. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 17 Simulación De Un Sistema De Inventarios La simulación es usada para comparar alternativas ordenando políticas para un sistema de inventarios. Muchos de los elementos de modelos representativos son encontrados en sistemas de inventarios actuales. Planteamiento del problema Una compañía vende un producto en particular. Desea saber cuantos de estos productos se tendría en el inventario para cada uno de los próximos “n” meses. Los tiempos entre las demandas son variables aleatorias IID, con una media de 0.1 mes. Los tamaños de las demandas D, son variables aleatorias IID, con Al inicio de cada mes la compañía revisa el nivel del inventario y decide cuantos artículos ordenar de su proveedor. Si la compañía ordena Z artículos, incurre en un costo de K+iZ, donde K = $32 que es el costo de preparación e i = $3 que es el costo incremental por artículo ordenado. (si Z = 0, este costo no ocurre). Cuando una orden es colocada, el tiempo requerido para que esta llegue (llamado periodo de entrega o Leadtime) es una variable aleatoria que esta distribuida uniformemente entre 0.5 y 1 mes. La compañía usa una política (s,S) para decidir cuanto ordenar, i.e. S – I si I < s Z = 0 si I ≥ s donde I es el nivel del inventario al inicio del mes. Cuando una demanda ocurre, esta es satisfecha inmediatamente si el nivel del inventario es al menos tan grande como la demanda. Si la demanda excede el nivel del inventario, el exceso sobre el suministro es acumulado y satisfecho por futuras entregas. (En este caso, el nuevo nivel del inventario es igual al nivel del inventario anterior menos el tamaño de la demanda, resultando en un nivel del inventario negativo). Cuando una orden llega, primero es usada para eliminar cuando mucho tanto como sea posible las demandas pendientes; el resto de la orden es agregada al inventario. Hasta ahora, hemos discutido solamente un tipo de costo incurrido por el sistema de inventario, el costo de ordenar. Sin embargo, en la mayoría de los sistemas reales también hay dos tipos de costos adicionales, costo de mantenimiento y de escasez o déficit, los cuales 1 w.p 1/6 2 w.p 1/3 3 w.p 1/3 4 w.p 1/6 D = donde w.p. se lee ”con probabilidad”.
  • 18. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 18 discutiremos después de introducir algunas anotaciones adicionales. Sea I(t) el nivel del inventario en el tiempo t[ note que I(t) podría ser positivo, negativo o cero]; sea I+ (t)= max [I(t),0] el número de artículos físicamente disponibles en el inventario en el tiempo t[note que I+ (t)≥0]; y I- (t)= max [-I(t),0] los pendientes en el tiempo t[I- (t)≥0 también]. Una posible realización de I(t), I+ (t), I- (t) se muestra en la figura 1.41. Los puntos en el tiempo que I(t) decrece son los únicos en los cuales la demanda ocurre. I(t): Nivel del inventario en el tiempo t, siendo el valor de t positivo, negativo o cero. I^+(t)=max {I(t),0}: Es el número de artículos físicamente disponibles en el tiempo t del inventario. El tiempo de los puntos al cual I(t) decrece son los únicos puntos donde ocurre la demanda. Para nuestro modelo, debemos asumir que la compañía incurre en un costo de mantenimiento de h=1 por artículo por mes mantenido en el inventario. El costo de mantenimiento incluye tales costos como la renta del almacén, seguros, impuestos, y mantenimiento también como el costo de oportunidad de tener el capital en el inventario que invertir en otra parte. Hemos ignorado en nuestra formulación el hecho de que algunos costos de mantenimiento ya incurrieron cuando I+ (t)=0. Sin embargo, dado que nuestro objetivo es comparar políticas de ordenar, ignorando este factor, que después de todo es independiente de la política usada, no afectará en nuestra evaluación de qué política es la mejor. Ahora dado que I+ (t) es el número de Punto de Orden Orden de arribo Punto de Orden
  • 19. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 19 artículos mantenidos en el inventario en el tiempo t, el tiempo promedio (por mes) número de artículos mantenidos en el inventario por un periodo de n meses es Que es semejante a la definición del número de tiempo promedio de clientes en la cola. Así el tiempo promedio del costo de mantenimiento por mes es hI+ Similarmente, suponga que la compañía incurre un costo de déficit de ∏=$5 por artículo por mes en déficit; esto cuenta para el registro de los costos extraguardado cuando existe un déficit, también la perdida de buenos clientes. El número de promedio de veces de artículos en déficit esta dado por es Así que el costo promedio de atrasos por mes es ∏I- . Asuma que el nivel de inventario inicial es I(0)=60 y que no ordenar no es importante. Simulemos el sistema de inventario para n = 120 meses y use el costo total promedio por mes (que es la suma del costo de ordenar promedio por mes, el costo de mantenimiento promedio por mes y el costo de déficit promedio por mes) para comparar las siguientes nueve políticas de inventario. s 20 20 20 20 40 40 40 60 60 S 40 60 80 100 60 80 100 80 100 No discutiremos aquí el resultado de cómo estas políticas particulares fueron elegidas para su consideración, técnicas estadísticas para hacer tal consideración serán discutidas más adelante. Note que las variables de estado para un modelo de simulación de este sistema de inventario son el nivel de inventario I(t), la cantidad de una orden prominente de la compañía al proveedor, y el tiempo del ultimo evento.[el cual es necesaria para calcular las áreas bajo las funciones I+ (t) e I- (t)]
  • 20. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 20 ORGANIZACIÓN Y LÓGICA DEL PROGRAMA El modelo de sistema de inventario usa los siguientes tipos de eventos. Descripción del evento Tipo del evento Llegada de una orden a la compañía del proveedor 1 Demanda para el producto de un cliente 2 Termino de la simulación después de n-meses 3 Evaluación del inventario (al inicio de mes) 4 Hemos tenido que hacer el fin de la simulación, como un evento de tipo 3 en lugar del tipo 4, ambos eventos “fin-simulación” y “evaluación-inventario” desde el tiempo 120 que serán eventualmente programar y querer ejecutar el primer evento anterior en este tiempo. (Puesto que la simulación se hace después del tiempo 120, no hay sentido en la evaluación del inventario y un posible ordenamiento, incurriendo en un costo de ordenar por una orden que nunca llegará). La ejecución del evento tipo 3 antes del evento tipo 4 es garantizado por que la rutina del tiempo da preferencia al mas bajo evento numerado, si dos o mas eventos son programados para ocurrir al mismo tiempo. En general un modelo de simulación sería designado a procesar eventos en un orden apropiado cuando un ciclo de tiempo ocurra. La grafica de un evento aparece en la figura 1.42 Hay tres tipos de variables aleatorias que se necesitan para simular este sistema. Los tiempos indeterminados son distribuidos exponencialmente, así que el mismo algoritmo (y código) como se desarrollo en la sección 1.4 pueden ser usados aquí. El tamaño de demanda de la variable aleatoria D deberá ser discreta, como se describió anteriormente, y puede ser generada como sigue. Primero se divide el intervalo unitario en subintervalos contiguos C1 [0, 1/6), C2=[1/6, 1/2), C3=[1/2, 5/6), y C4=[5/6,1], y se obtiene una variable aleatoria uniformemente distribuida en el intervalo U(0,1), si U cae en C1, regresa D=1; si U cae en C2, regresa D=2 ; y así sucesivamente. Orden de llegada Demanda Evaluación Termino de la simulación
  • 21. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 21 Evento de orden de llegada Incremento del nivel de inventario por la cantidad previamente ordenada Eliminar evento de orden de llegada de consideración Regreso Por tanto el ancho de C1 es 1/6–0=1/6 , y por tanto U (generador de Nº aleatorios) es uniformemente distribuido sobre [0,1] , la probabilidad que U caiga en C1, (y así que regresamos D=1) es 1/6; esto concuerda con la probabilidad deseada que D=1, similarmente regresamos a D=2, si U cae en C2 teniendo una probabilidad igual al ancho de C2, ½ - 1/6= 1/3, como se deseó y así para los siguientes intervalos. Los subprogramas para generar los tamaños de demandas todos usan estos principios y toman como entrada el interruptor de puntos definiendo los subintervalos de llegada anterior los cuales son las probabilidades acumuladas de la distribución de D. Los atrasos en las entregas son uniformemente distribuidos pero no sobre el intervalo unitario [0,1]. En general podemos generar una variable aleatoria uniformemente distribuida sobre cualquier intervalo [a,b] generando un numero aleatorio U(0,1) y después regresar a a+U(b – a). De los cuatro eventos solamente 3 involucran verdaderamente el cambio de estado (el termino de eventos de simulación es la excepción) por lo tanto su lógica, es un lenguaje independiente. En el evento llegada – orden, se muestra en la figura 1.43 y debemos hacer los cambios necesarios cuando una orden llegue del proveedor. El nivel del inventario es incrementado y desde su consideración del evento llegada de una orden debe ser eliminada. Evento de Orden de Llegada
  • 22. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 22 Evento evaluación del inventario Si I(t)<s? Determine la cuenta de orden [S – I(t)] Costo de orden incurrido y recoger estadísticas Programar el evento orden de llegada para esta orden Programar el próximo evento evaluación del inventario Return El evento de la demanda está dado en la figura 1.44 y procesa los cambios necesarios para representar un caso de demanda. Primero, el tamaño de la demanda es generada, y el inventario es decrementado por esta cantidad. Finalmente el tiempo de la próxima demanda es programada en la lista de eventos. Note que esto ocurre donde el nivel del inventario pueda ser negativo. El evento evaluación del inventario tiene lugar en el comienzo de cada mes, su diagrama de flujo es el siguiente. Fig. 1.45 Si el nivel del inventario I(t) en el tiempo de evaluación es al menos s, entonces ninguna orden se coloca, y no se hace nada excepto la programación de la siguiente evaluación en la lista de eventos. En cambio, si I(t)<s, colocamos una orden para S – I(t) artículos. Esto es hecho para almacenar la cantidad de ordenar [S – I(t)]hasta la llegada de la orden, y programar su tiempo de llegada. En este caso también, queremos programar el próximo evento evaluación del inventario. Como en el modelo de colas de un solo servidor, es conveniente escribir una rutina para actualizar los acumuladores de la estadística de tiempo continuo. Para este modelo, sin embargo, haciendo esto ligeramente mas complicado, daremos al diagrama de flujo.
  • 23. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 23 El principal punto es si necesitamos actualizar el área debajo de I- (t) o I+ (t) (o ninguno). Si el nivel de inventario ha sido negativo desde el ultimo evento, entonces tenemos un atraso, en el área debajo de I- (t) solo estaríamos actualizando. En cambio si el nivel del inventario ha sido positivo necesitamos actualizar en el área I+ (t). Si el nivel de inventario ha sido cero no se necesita actualizar. El código en ambos lenguajes para esta rutina también trae la variable de tiempo del último evento al tiempo presente. Esta rutina será invocada desde el programa principal justo después de regresar de la rutina coordinada. Ignorando el tipo de evento o si le nivel del inventario esta actualizado en los cambios en estos puntos. Esto proporciona una simple manera de actualizar integrales para estadísticas de tiempos continuos.
  • 24. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 24 0 x<0 x 0<x<1 1 x>1 F(X) = UNIDAD II Generación De Números Pseudoaleatorios En principio definiremos la función de distribución acumulada para la distribución uniforme estandarizada como: En la práctica, se requieren sucesiones de números aleatorios para la generación de los datos de entrada para el proceso de simulación. Se tienen cuatro métodos alternativos para generar o proveer sucesiones de números aleatorios: 1. Métodos manuales {lanzamiento de monedas, dados, cartas, ruleta, etc.} 2. Tablas {corporación rand} 3. Métodos analógicos de computación 4. Métodos de computación digitales Los métodos analógicos comprenden el uso de procesos físicos aleatorios (comportamiento de corriente eléctrica), se considera que producen verdaderos números aleatorios. En el caso de los métodos digitales hay 3 formas para proveerse de números aleatorios: provisión externa, generación interna por medio de un proceso físico al azar, generación interna por medio de una relación de recurrencia. En el caso de provisión externa, lo que se hace es, grabar las tablas de números aleatorios en una cinta del sistema de la computadora digital. La segunda alternativa utiliza un aditamento de la computadora que puede registrar los resultados de algún proceso aleatorio y que los traduzca a sucesiones de dígitos, tales procesos pueden ser el decaimiento radiactivo, el ruido térmico, entre otros. El defecto de estos procedimientos analógicos es el de que las sucesiones así generadas no pueden reproducirse. La generación interna por medio de una relación de recurrencia, comprende la generación por medio de una “transformación indefinidamente continuada” aplicada a un grupo de números elegidos en forma arbitraria.
  • 25. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 25 ni+1 ≡ a ni + c (mod m) → 1 donde: ni, a, c y m : son enteros no negativos para i= 0,1,2,... al desarrollar la ecuación n1= a n0 + c (mod m) n2= a n1 c= a(an0 + c) + c ≡ a2 n0 + (a +1)c (mod m) n3= a3 n0 (a2 -a+1)c = a3 n0 + c (a2 -1) (mod m) . (a-1) . . ni= ai no + c(ai -1) (mod m) → 2 (a-1) n0 = constante inicial c = constante aditiva a = constante multiplicativa El primer método conocido para generar números aleatorios de manera recurrente se considera que es de los “cuadrados centrales”, en el que cada número de la sucesión se obtiene tomando los dígitos centrales del cuadrado del número precedente. En la actualidad se prefiere el uso del método de “congruencias” para generar números aleatorios satisfactorios. Cualquiera que sea el método para generar números aleatorios debe satisfacer las siguientes condiciones: Deben ser: 1. Uniformemente distribuidos 2. Estadísticamente independientes 3. Reproducibles 4. Sin repetición dentro de una longitud determinada de la sucesión 5. Generación a grandes velocidades 6. Requerir el mínimo de capacidad de almacenamiento Método De Congruencias: Estos métodos se basan en una relación fundamental de congruencias que se expresa como:
  • 26. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 26 Los términos de la sucesión {ni} forman una sucesión de residuos modulo m, es decir, ni < m ∀ ni; a partir de los números enteros de la sucesión {ni} se pueden obtener números racionales en el intervalo (0,1) con solo formar la sucesión: {ri} = {ni / m} Respecto a la pregunta de que si existe un mínimo valor positivo para i, i=h tal que nh = n0 donde h es el período de la sucesión {ni}; si h existe, cabe preguntarse que condiciones se pueden imponer sobre n0, a, c y m de manera que el periodo de {ni} sea lo más largo posible. Se tienen 3 versiones del método de congruencias para generar números pseudoaleatorios: 1. Método Aditivo Ni+1 = ni + ni-k (mod m) Si k = 1 se tiene la sucesión de Fibonacci 2. Método Multiplicativo Produce una sucesión {ni} donde cada número es menor que m. Ni+1 ≡ ani (mod m) Este método tiene buenos resultados estadísticos en relación con las pruebas de aleatoriedad e independencia. 3. Método Mixto Ni+1 ≡ ani + c (mod m) Método Multiplicativo El modulo que emplea este método es m = pe donde “p” representa el número de guarismos del sistema numérico que usa la computadora y “e” denota el número de dígitos en una palabra. En computadoras binarias p=2; en computadoras decimales p=10. La ecuación recursiva para generar residuos potenciales es: ni+1 ≡ ani (mod pe )
  • 27. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 27 Computadoras Binarias m = 2b b = número de bits de palabra b >2 h = 2b-2 máximo período que se puede obtener El problema se reduce a encontrar multiplicadores que tengan orden h=2b-2 ; a tiene que ser primo relativo de m=2b y por lo tanto tiene que ser impar. Los valores de a se encuentran en una clase residual que se representa por: a ≡ ± 3 (mod 8) ó a = 8t ± 3 t = 0, 1, 2, 3,..... entero positivo Los valores de a próximos a 2b/2 minimizan la correlación en serie de primer orden. Con respecto al valor inicial no, este debe ser primo relativo de m = 2b , entonces n0 puede ser cualquier número entero impar. Procedimiento: 1. Se escoge cualquier número impar como valor inicial n0 2. Se elige un entero a = 8t ± 3 3. Se calcula an0 usando aritmética entera de punto fijo. Este producto consta de 2b bits, de los cuales se descartan los bits de orden superior, dejando para n1 los bits restantes. 4. Se calcula r1 = n1 / 2b = n1 / 2b 5. Cada número aleatorio sucesivo ni+1 se obtiene a partir de los bits de menor orden en el producto ani Ejemplo: Sea b = 4, m = 24 = 16 y h = 24-2 = 4 1.- n0 = 7 n0 = 0111 2.- a cerca de 2b/2 = 4 si t = 1, a puede ser 5 ó 3 si a = 5 a = 0101 3.- ano = (0101)(0111) = 00100011 n1 = 0011 r1 = 3/16 = 0.1875 4.- an1 = (0101)(0011) = 00001111 n2 = 1111 r2 = 15/16 = 0.9375
  • 28. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 28 5.- an2 = (0101)(1111) = 01001011 n3 = 1011 r3 = 11/16 = 0.6875 6.- an3 = (0101)(1011) = 00110111 n4 = 0111 r4 = 7/16 = 0.4375 y así sucesivamente... Computadoras Decimales m = 10d = 2d 5d d = número de dígitos decimales de la palabra. d>3 a = debe ser número primo relativo de 10d El orden h de a (mod 10d ) es: h = m.c.m. [2d-2 ,4 * 5d-1 ] = 5 * 10d-2 Los multiplicadores constantes con período 5 * 10d-2 se pueden ubicar en 32 clases residuales distintas mod 200, dado por: a = ± (3, 11, 13, 19, 21, 27, 29, 37, 53, 59, 61, 67,69, 77, 83, 91) (mod 200) ó también se puede expresar como: a = 200t ± p t = 0, 1, 2, 3, ... p = uno de los 32 números dados anteriormente. De igual modo n0 debe ser primo relativo de m = 10d , lo cual implica que tiene que ser impar, no divisible entre 5 para seleccionarse como valor inicial. a ≈ 10d/2 El procedimiento es semejante al caso binario: 1. Selecciónese n0, un número impar no divisible entre 5. 2. Selecciónese a = 200t ± p a ≈ 10d/2 3. Calcular an0 utilizando aritmética entera de punto fijo. 4. Calcular r1 = n1/10d 5. Cada número aleatorio subsecuente ni+1 se obtiene a partir de los dígitos de menor orden del producto ani.
  • 29. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 29 Ejemplo: Sea d = 4, m = 104 = 10,000, h = 5*104-2 = 500 1.- n0 = 5379 2.- a ≈ 102 = 100 a = 200(0)+91 ó a = 200(1)-91 a = 91 ó a =109 3.- an0 = (0091)(5379) =00489489 n1 = 9489 r1 = 9489 = 0.9484 10000 y así sucesivamente... Pruebas Estadísticas Las propiedades estadísticas que deben poseer los números pseudoaleatorios generados por los métodos congruenciales tiene que ver con independencia y aleatoriedad estadísticas. La prueba de la frecuencia se usa para comprobar la uniformidad de una sucesión de N números pseudoaleatorios. Para cada conjunto de N números pseudoaleatorios r1, r2,...rn, se divide el intervalo unitario (0,1) en x subintervalos iguales; el número esperado de números pseudoaleatorios que se encontrarán en cada subintervalo es N/x. Si fj (j=1, 2...x) denota el número que realmente se tiene de números pseudoaleatorios ri (i=1,2,...N) en el subintervalo (j- 1)/ x ≤ ri < j/x entonces el estadístico:       = N x 2 1 χ 2 1 ∑ =       − x j j x N f tiene aproximadamente una distribución x2 con x-1 g.l… La hipótesis de que los números pseudoaleatorios en el de conjunto de N números pseudoaleatorios, son verdaderos números pseudoaleatorios, debe rechazarse si x1 2 con x-1 g.l. excede su valor critico fijado por el nivel de significancia deseado.
  • 30. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 30 Ejercicio: Verificar que el conjunto de 100 números aleatorios se distribuye uniformemente, con α = 5%. 0.001213 0.898980 0.578800 0.676216 0.050106 0.499629 0.282693 0.730594 0.701195 0.182840 0.108501 0.386183 0.769105 0.683348 0.551702 0.557434 0.799824 0.456790 0.216310 0.876167 0.092645 0.589628 0.332164 0.031858 0.611683 0.762627 0.696237 0.170288 0.054759 0.915126 0.032722 0.299315 0.308614 0.833586 0.517813 0.352862 0.574100 0.265936 0.859031 0.433081 0.941875 0.240002 0.655595 0.385079 0.908297 0.199044 0.936553 0.888098 0.817720 0.369820 0.339548 0.543258 0.624006 0.091330 0.416789 0.155062 0.582447 0.858532 0.887525 0.337294 0.751033 0.239493 0.535597 0.333813 0.493837 0.634536 0.199621 0.650020 0.745759 0.791130 0.227241 0.191479 0.406443 0.081288 0.734352 0.721023 0.222878 0.072814 0.641837 0.442675 0.789616 0.052303 0.106994 0.558774 0.141519 0.760869 0.120791 0.277380 0.657266 0.792691 0.805180 0.826543 0.294530 0.208524 0.429894 0.585186 0.986111 0.344882 0.343580 0.115375 Fo 10 11 11 11 8 11 10 13 10 5 Para resolverlo se utiliza la siguiente ecuación: ( ) ∑ − = E F E F O F . . . 2 2 1 χ 0 - 0.1 0.1 – 0.2 0.2 – 0.3 0.3 - 0.4 0.4 – 0.5 0.5 – 0.6 0.6 – 0.7 0.7 – 0.8 0.8 – 0.9 0.9 – 1.0 0.001213 0.108501 0.227241 0.352862 0.499629 0.557434 0.634536 0.762627 0.805480 0.941875 0.092645 0.199044 0.282693 0.339548 0.456790 0.585186 0.696237 0.751033 0.898980 0.936553 0.032722 0.155062 0.299315 0.386183 0.406443 0.589628 0.655595 0.721023 0.826543 0.986111 0.052303 0.199621 0.210002 0.332164 0.433081 0.574100 0.624006 0.789616 0.888098 0.915126 0.072814 0.191479 0.239493 0.308614 0.416789 0.543258 0.650020 0.760869 0.858532 0.908297 0.031858 0.120791 0.222878 0.344882 0.493837 0.582447 0.676216 0.799824 0.833586 0.054759 0.170288 0.265936 0.385079 0.442675 0.578800 0.683348 0.730594 0.859031 0.091330 0.106944 0.277380 0.333813 0.429894 0.535597 0.641837 0.779105 0.817720 0.081128 0.182840 0.294530 0.343580 0.558774 0.657266 0.701195 0.887525 0.050106 0.141519 0.216310 0.369820 0.551502 0.611683 0.745795 0.876167 0.115375 0.208524 0.337294 0.517813 0.791130 0.734352 0.792691
  • 31. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 31 Donde: F.E. = Total de números aleatorios = 100 = 10 Números de subintervalos 10 F.O. = Total de números observados en cada subintervalo. ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) 2 . 4 10 10 5 10 10 10 10 10 13 10 10 10 10 10 11 10 10 8 10 10 11 10 10 11 10 10 11 10 10 10 2 1 2 2 2 2 2 2 2 2 2 2 2 1 = − + − + − + − + − + − + − + − + − + − = χ χ Nosotros especificamos arbitrariamente un valor de α = 0.05 (esto significa un error del tipo I del 5%) el valor obtenido de χ1 2 = 4.2 así pues podemos compararlo con el valor crítico de: X2 0.05(9) = 16.919 Puesto que X2 0.05(9) = 16.919 > χ1 2 = 4.2, entonces podemos decir que la tabla de números aleatorios se distribuye uniformemente. Prueba De Medias Consiste en verificar que los números generados tengan una media estadísticamente igual a 1/2, de este modo la hipótesis planteada es: Ho = hipótesis nula: µ µ µ µ = ½ H1 = hipótesis alternativa: µ µ µ µ ≠ ≠ ≠ ≠ ½ Paso 1 Calcular la media de los n números generados ∑ ∑ = = = n n i l r n r n X 1 1 1 1 Paso 2 Calcular los límites superior e inferior de aceptación       + = n Z lsx 12 1 2 2 / 1 α       − = n Z lix 12 1 2 2 / 1 α Paso 3 Si el valor X se encuentra entre li y ls, aceptamos que los números tienen una media estadísticamente igual a ½ con un nivel de aceptación 1-α.
  • 32. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 32 Ejemplo: Realice la prueba de medias a los primeros 30 números aleatorios producidos con un generador congruencial mixto, con un nivel de confianza del 95%. Los números generados son: 0.03991 0.10461 0.93716 0.16894 0.98953 0.73231 0.25543 0.34565 0.02345 0.67347 0.10987 0.25678 0.71890 0.61234 0.86322 0.94134 0.99872 0.27657 0.82345 0.12387 0.05389 0.82474 0.59289 0.36782 0.72484 0.48999 0.50502 0.39528 0.36782 0.90234 2.56253 1.67646 2.38274 3.00377 3.05883 2.53582 Σ = 15.22015 X = 15.22015/30 = 0.507338 X ≈ 0.5000       − =       + = 30 12 1 5 . 0 30 2 1 5 . 0 025 . 0 025 . 0 Z li Z ls x x Para buscar el valor de Z0.025 se resta 1 - 0.025 = 0.975 y se busca en la tabla |Z0.025| = 1.96 lsx = 0.5298 lix ≤ X ≤ lsx lix = 0.4701 ⇓ Ho se acepta
  • 33. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 33 2 α x i l x s l 2 α 2 1 = µ n Z x i 12 2 2 1 α + = l n Z x s 12 2 2 1 α + = l 2 1 1 2 1 0 ≠ = = = µ µ H H Ejemplo: Generar números aleatorios dados por la siguiente función ( ) 100 mod 3 1 n n X X = + ( ) ( ) ( ) ( ) [ ] ( ) ( ) ( ) [ ] ( ) ( ) ( ) ( ) ( ) [ ] ( ) 43 20 100 20 20 , 2 . . 100 20 5 4 5 1 5 25 2 2 1 2 1 2 4 5 , 2 . 100 , , , . . 2 5 2 5 5 2 2 25 2 2 50 2 100 0 1 2 1 2 2 2 2 1 2 2 2 1 = = = = = = ⋅ = − = = ⋅ = − = = = = = ⋅ ⋅ ⋅ = ⋅ ⋅ = ⋅ = − − X h m c m cm m P P P m c m m d s e s e e λ λ λ λ λ λ λ λ λ λ λ λ K Pruebas de frecuencias ( ) ( ) ( ) ( ) ( ) 49 . 9 4 4 4 4 4 4 4 4 4 4 0 4 5 4 , 05 . 0 2 2 2 2 2 2 2 1 2 1 5 20 2 1 2 1 = − + − + − + − + − = = = = =       −       = ∑ = χ λ χ χ x N x j j x x N f N x Pruebas de medias n Xn rn 1 29 0.29 2 87 0.87 3 61 0.61 4 83 0.83 5 49 0.49 6 47 0.47 7 41 0.41 8 23 0.23 9 69 0.69 10 7 0.07 n Xn rn 11 21 0.21 12 63 0.63 13 89 0.89 14 67 0.67 15 1 0.01 16 3 0.03 17 9 0.09 18 27 0.27 19 81 0.81 20 43 0.43 21 29 0.29 Sub int Fj 0 - 0.2 4 0.2 - 0.4 4 0.4 - 0.6 4 0.6 - 0.8 4 0.8 - 1 4 α = nivel de confianza de la prueba α = 1% o 5% n x X ∑ =
  • 34. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 34 Prueba De Varianza Consiste en verificar si los números aleatorios generados tienen una variancia de 0.083, de tal forma que la hipótesis queda expresada como: Ho: V(x) = 1/12 Hi: V(x) ≠ ≠ ≠ ≠ 1/12 Paso 1. Calcular la variancia de los n números generados V(x). ( ) ( ) 1 1 2 − − = ∑ = n x r x V n i i Paso 2. Calcular los límites superior e inferior de aceptación. ( ) ( ) 1 12 1 , 2 2 − = − n ls n x V α χ ( ) ( ) 1 12 1 , 2 1 2 − = − − n li n x V α χ Paso 3. Si V(x) se encuentra entre los valores de liv(x) y lsv(x), aceptamos la hipótesis nula y los números aleatorios tiene una variancia estadísticamente igual a 1/12. Ejemplo: Realice la prueba de variancia a los siguientes 30 números con un nivel de confianza del 95%. .72484 .48999 .50502 .39528 .36728 .90234 .71890 .61234 .86322 .94134 .99872 .27657 .34565 .02345 .67347 .10987 .25678 .25593 .82345 .12387 .05389 .82474 .59289 .36782 .03991 .10461 .93716 .16894 .98953 .73231 x = 0.507337 Aplicando la ecuación del paso 1 se tiene V(x)= 0.104. Al calcular los límites de aceptación para muestras de tamaño 30, ( ) ( ) ( ) 1313 . 0 29 12 7 . 45 1 12 1 , 2 2 = = − = − n ls n x V α χ
  • 35. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 35 ( ) ( ) ( ) 046 . 0 29 12 00 . 16 1 12 1 , 2 1 2 = = − = − − n li n x V α χ El valor se encuentra dentro de límites de aceptación por lo que se acepta que la variancia de la muestra es estadísticamente igual a 1/12. Prueba De Poker Las pruebas de independencia consisten en demostrar que los números generados son estadísticamente independientes entre sí, esto es, que no depende uno de otro. Hay varios métodos, entre los cuales están: • La prueba de Poker • La prueba de corridas arriba y abajo • La prueba de corridas arriba debajo de la media • La prueba de la longitud de las corridas • La prueba de series La prueba de poker plantea la siguiente hipótesis: Ho : ri ∼ independiente H1 : ri ∼ dependiente Paso 1. Calcular las probabilidades esperadas para un juego de poker con 5 cartas numeradas del 0 al 9 con reemplazos. Se tienen 7 eventos con las siguientes probabilidades: P (Pachuca) = 0.3024 P (par) = 0.5040 P (2 pares) = 0.1080 P (1 tercia) = 0.0720 P (Full) = 0.0090 P (Poker) = 0.0045 P (Quintilla) = 0.0001 Paso 2. Calcular la frecuencia esperada de cada uno de los eventos multiplicando la probabilidad de cada evento por la cantidad de números aleatorios generados. Paso 3. Para cada número aleatorio generado verificar si es Pachuca, 1 par, 2 pares, etc., tomando los primeros 5 dígitos a la derecha del punto decimal. Con estos resultados se genera una tabla de frecuencias observadas de cada uno de los eventos.
  • 36. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 36 Paso 4. Calcular la estadística: ( ) ∑ = − = m i FE Foi FEi 1 2 2 1 χ Paso 5. Si el valor de C2 no excede al estadístico de tablas χi 2 con 6 g.l. y una probabilidad de rechazo alfa =α, entonces se acepta que los datos son estadísticamente independientes entre sí. Ejemplo: Realice la prueba de Poker a los siguientes 30 números con un nivel de confianza del 95%. (∞ = 5%) 0.72484 0.48999 0.50502 0.39528 0.36782 0.90234 0.71890 0.61234 0.86322 0.94134 0.99872 0.27657 0.34565 0.02345 0.67347 0.10987 0.25678 0.25593 0.82345 0.12387 0.05389 0.82474 0.59289 0.36782 0.03991 0.10461 0.93716 0.16894 0.98953 0.73231 ( ) ( ) ( ) ( ) 336 . 5 003 . 0 135 . 0 27 . 0 548 . 1 622 . 0 082 . 0 676 . 2 003 . 0 135 . 0 27 . 0 24 . 3 1 24 . 3 16 . 2 1 16 . 2 12 . 15 14 12 . 15 072 . 9 14 072 . 9 2 1 2 1 2 2 2 2 2 1 = + + + + + + = + + + − + − + − + − = χ χ χ χ2 0.05, 6 = 12.6 6 , 05 . 0 2 2 1 χ χ ≤ ∴ H0 se acepta FO PE FE Pachuca 14 0.3024 9.072 Un Par 14 0.5040 15.12 Tercia 1 0.0720 2.16 Dos Pares 1 0.1080 3.24 Full 0 0.0090 0.27 Poker 0 0.0045 0.135 Quintilla 0 0.0001 0.003 FE = PE.n
  • 37. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 37 Prueba De Series Ho : ri ∼ independiente H1 : ri ∼ dependiente Paso 1 Crear un histograma de dos dimensiones con m intervalos, clasificando cada pareja de números consecutivos (ri, ri + 1) dentro de las casillas de dicho histograma de frecuencias. El número total de pares ordenados en cada casilla formará la frecuencia observada: Foi. Paso 2 Calcular la frecuencia esperada en cada casilla FE de acuerdo con FE=núm/m donde núm. es el número total de parejas ordenadas. Paso 3 Calcular el error χ1 2 , con la ecuación: ( ) ∑ = − = m i i i i FE FO FE 1 2 2 1 χ Paso 4 Si el valor de χ1 2 es menor o igual al estadístico de tablas χ1 2 con m-1 grados de libertad y una probabilidad de rechazo α, entonces aceptamos que estadísticamente los números son independientes. Ejemplo: Realice la prueba de series a los siguientes 30 números con un nivel de confianza del 95% 0.72484 0.48999 0.50502 0.39528 0.36782 0.90234 0.71890 0.61234 0.86322 0.94134 0.99872 0.27657 0.34565 0.02345 0.67347 0.10987 0.25678 0.25593 0.82345 0.12387 0.05389 0.82474 0.59289 0.36782 0.03991 0.10461 0.93716 0.16894 0.98953 0.73231 Al formar parejas ordenadas se obtiene: (.72484, .48999) (.48999, .50502) (.50502, .39528) ... (.98953, .73231) La clasificación en una tabla de frecuencias de dos dimensiones de 4 x 4, (m=16), queda ri+1 1 3 2 1 2 0.75 1 1 1 3 0.50 1 3 3 1 0.25 2 2 1 2 0 0.25 0.50 0.75 1 ri Tomando en cuenta que se tienen 29 parejas ordenadas clasificadas uniformemente en 16 casillas, la frecuencia esperada FE en cada una es 1.8125 y al calcular el error con la ecuación del paso 3, para cada una de las 16 celdas o intervalos de la tabla anterior se tiene:
  • 38. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 38 ( ) ( ) ∑ ∑ = = − = − = 16 1 2 1 2 2 1 8125 . 1 8125 . 1 i i m i i i i FO FE FO FE χ ( ) ( ) ( ) [ ] 75 . 5 3 8125 . 1 4 2 8125 . 1 5 1 8125 . 1 7 8125 . 1 1 2 2 2 2 1 = − + − + − = χ El valor de la tabla χ2 con un nivel de confianza del 95% y con 15 grados de libertad es igual a 25. Si se compara χ1 2 =5.75 con este valor, se acepta la independencia de la secuencia de números. 15 , 05 . 0 2 2 1 χ χ ≤ Por consiguiente Ho se acepta. Ejemplo: Realice la prueba de Poker y la prueba de series a los siguientes 30 números con un nivel de confianza de 95% Prueba de poker ( ) ( ) ( ) ( ) 003 . 0 135 . 0 27 . 0 24 . 3 24 . 3 3 16 . 2 16 . 2 5 12 . 15 12 . 15 15 072 . 9 072 . 9 7 2 2 2 2 2 1 + + + − + − + − + − = χ 11 . 2 2 1 = χ 6 . 12 2 6 , 05 . 0 = χ 2 6 , 05 . 0 2 1 χ χ < 0.03991 0.24122 0.10461 0.66591 0.93716 0.27699 0.38555 0.61196 0.95554 0.30231 0.32886 0.92962 0.17546 0.30532 0.73704 0.21704 0.92052 0.10274 0.32643 0.03788 0.52861 0.97599 0.95189 0.75867 0.69572 0.48228 0.68777 0.63379 0.39510 0.85783 Evento PE FO FE Pachuca 0.3024 7 9.072 Par 0.5040 15 15.12 Tercia 0.0720 5 2.16 2 Pares 0.1080 3 3.24 Full 0.0090 0 0.27 Poker 0.0045 0 0.135 Quintilla 0.0001 0 0.003
  • 39. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 39 3 1 3 2 1 3 1 3 2 1 Prueba de series IIIIII 6 II 2 III 3 III 3 0 IIII 4 III 3 IIIII 5 III 3 22 . 3 9 29 = = FE ( ) ( ) ( ) ( ) ( ) ( ) [ ] 2 2 2 2 2 2 2 1 22 . 3 6 22 . 3 5 22 . 3 4 22 . 3 3 4 22 . 3 2 22 . 3 0 22 . 3 1 − + − + − + − + − + − = χ 31 . 7 2 1 = χ 51 . 15 2 8 , 05 . 0 = χ 2 8 , 05 . 0 2 1 χ χ <
  • 40. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 40 Apéndice A Elementos de la teoría de números A fin de comprender totalmente y apreciar los métodos para generar números pseudoaleatorios que se consideran, es requisito previo tener un conocimiento básico de los elementos de la teoría de los números. El apéndice A contiene un conjunto básico de definiciones, ejemplos y teoremas de la teoría de números que resultan pertinentes para la comprensión de los fundamentos racionales sobre los que se basan los métodos. Definiciones Definición 1. Para dos enteros a y b, con b ≠ 0, existe un único par de enteros t y n, tal que a = bt + n 0 ≤ n < b, en donde t es el cociente n es el residuo. Definición 2. Un entero a es divisible entre un entero b si existe un entero t tal que bt a = Definición 3. Un entero p es un número primo si no es 0 ni ± 1 y si sus únicos divisores son ±1 y ± p. Por ejemplo, los primeros primos positivos son 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37. Definición 4. Un entero g es el máximo común divisor (m.c.d.) de dos enteros a, b, si g es un divisor común de a y b, además es un múltiplo de cualquier otro divisor común de a y b. Notación: m.c.d. (a,b) = g, o similar a (a b) = g. Definición 5. Un entero d es el mínimo común múltiplo (m.c.m.) de dos enteros a y b si d es un divisor de cada múltiplo común de a y de b, y es a su vez un múltiplo común. Notación: m.c.m. [a, b] = d o [a, b] = d. Definición 6. Se dice que los enteros a y b son primos relativos si (a, b) = 1. Definición 7. Dos enteros a y b son congruentes módulo m si su diferencia es un múltiplo entero de m. La relación de congruencia se expresa por la notación a ≡ b (mod m), que se lee “a es congruente con b módulo m”, esto también significa que: 1) (a-b) es divisible entre m, y 2) a y b dan el mismo residuo al ser divididos entre m. Ejemplo: 5590 ≡ ≡ ≡ ≡ 6 (mod 8) y 2327 ≡ ≡ ≡ ≡ 27 (mod 102 ). Definición 8. Para una a dada, el menor entero positivo n tal que a ≡ n (mod m) recibe el nombre de residuo módulo m. Existe m residuos distintos (mod m); 0, 1, 2, . . .,m – 1. Definición 9. Una clase de enteros mutuamente congruentes para un módulo dado, forman una clase residual. Existen m distintas clases residuales (mod m). Ejemplo: si m=2, las dos clases
  • 41. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 41 residuales distintas son: la colección de todos los números impares y la de los números pares, respectivamente. Definición 10. Para un módulo dado m, el conjunto de los m enteros congruentes en algún orden con los residuos 0, 1, 2, . . ., m – 1, forman un sistema residual completo. Definición 11. Un subconjunto de un sistema residual completo que contenga todos los enteros que sean primos relativos de m, recibe el nombre de un sistema residual reducido. Definición 12. El número de enteros positivos menores que m y primos relativos de m, se conoce como la función Fi de Euler y se denota por ϕ (m). Un sistema residual reducido contiene ϕ (m) enteros. Si m = p, es un número primo, entonces ϕ (p) = p – 1. Definición 13. Los residuos potenciales son los residuos de las potencias sucesivas de un entero a módulo m. Si el residuo de la i-ésima potencia de a (mod m) se denota por ni, entonces todos los residuos potenciales satisfacen la relación de congruencia ni ≡ ai (mod m) (i = 1, 2, 3, . .) Definición 14. Si (a, m) = 1, el mínimo exponente positivo i = h, tal que ai ≡ 1 (mod m), se dice que es el orden de a (mod m). El mínimo exponente positivo h también recibe el nombre de multiplicador de m cuando a se dice que pertenece a m. En este caso, h se denota por h = λ (m). El orden h de a (mod m) es igual al número total de números distintos, esto es, la longitud de una sucesión que no se repite de residuos potenciales de a, llamada el período de la sucesión {ni}; i = 1, 2, . . ., h (mod m). Definición 15. Un entero a de orden h = ϕ (m) (mod m) es la raíz primitiva de m. Ejemplo: h = 3 ≠ ϕ (31) para a = 5 en el ejemplo (1) de la definición 13, pero h = 30 = ϕ (31) para a = 3 en el ejemplo (2); consecuentemente 3 es la raíz primitiva de 31. Ejemplos de residuos potenciales son: (1) a = 5, m = 31, ϕ (m) = 30 i ai ni ≡ ai (mod m) 1 5 5 2 25 25 3 125 1* 4 625 5 . . . . . . .
  • 42. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 42 (2) a = 3, m = 31, ϕ (m) = 30 i ai ni i ni i ni 1 3 3 11 13 21 15 2 9 9 12 8 22 14 3 27 27 13 24 23 11 4 81 19 14 10 24 2 5 243 26 15 30 25 6 6 729 16 16 28 26 18 7 2187 17 17 22 27 23 8 6561 20 18 4 28 7 9 19683 29 19 12 29 21 10 59049 25 20 5 30 1* • La sucesión de los residuos potenciales se repite para potencias de orden superior. Teoremas Teorema 1. Si a ≡ b(mod m) y x ≡ y(mod m), entonces a ± x ≡ b ± y(mod m), y ax ≡ by(mod m). Teorema 2. Si (d, m) ≡ g, entonces dx ≡ dy (mod m) implica que x ≡ y (mod m/g). Teorema 3. Si a ≡ b (mod m) y d es un divisor de m, entonces a ≡ b (mod d). Las demostraciones de los teoremas 1, 2 y 3, resultan de la definición [2 p.24]. Teorema 4. Cualquier entero m (distinto de 0 ó ± 1) se puede factorizar de forma única en números primos, esto es, m = π piei , (i = 1, 2, 3, . . .), donde ei es una constante y π denota al producto p1ei x p2 e2 x p3 e3 . . . La prueba de esto se debe a Euclides [2, p.21]. Teorema 5. Si (a, m) = 1, entonces aϕ(m) ≡ 1 (mod m), de lo cual se sigue que: 1. El mayor orden posible de a es h = ϕ(m) cuando a es una raíz primitiva de m. 2. Para n < m tales que (m, n) = 1, nah ≡ n (mod m), donde h = ϕ(m). La prueba de esto se atribuye a Euler y se obtiene de los teoremas 2 y 3. Teorema 6. Para todas las potencias de un número primo p > 2 existen las raíces primitivas, i.e. existe un número tal que (a, pe ) = 1 y aϕ(pe) ≡ 1 (mod pe ) donde h ≡ ϕ (pe ). Teorema 7. Si m = πpi ei , entonces ϕ (m) = π(pi - 1)pi ei-1 . La demostración se debe a Euler. Teorema 8. Si m = πpe y p es un primo impar entonces h = λ(m) = (p-1) pe-1 = ϕ (m) para valores de a que son raíces primitivas de m. Corolario: Si p = 2, i.e., h = λ(m) = 2e-2 para e > 2, entonces λ(m) ≠ ϕ (m). La prueba se debe a Euler.
  • 43. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 43 Teorema 9. Si m = πpi ei para i = 1, 2, 3, . . ., s, entonces: 1. λ(m) = m.c.m.[ λ(p1 e1 ), λ(p2e2 ), . . ., λ(pses )]. 2. Existe valores de a cuyo orden es igual a (esto es, pertenece conjuntamente a) cada λ(pi ei ). La demostración está en [21, p.293] y se sigue del teorema chino del residuo debido a Sun-Tse [21, p.246]. Corolario: Si p1 = 2, entonces λ(m) = m.c.m. [λ(2e1 ), ϕ(p2 e2 ), ϕ(p3 e3 ), . . .]. Teorema 10. El menor entero positivo a tal que (ah - 1)/ (a - 1) ≡ 0 (mod m) es h = m, si (1) a ≡ 1 (mod p) si p es un factor primo de m y (2) a ≡ 1 (mod 4) si 4 es un factor de m. La prueba se debe a Hull y Dobell.
  • 44. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 44 UNIDAD III Generación De Valores De Variables Aleatorias La generación de estadísticas simuladas o sea de valores de las variables aleatorias, es de naturaleza numérica y debe configurarse mediante la aportación de números pseudoaleatorios. Al querer reproducir algún proceso estocástico particular, se recurre al empleo de las distribuciones teóricas convencionales y en su defecto a una distribución empírica. Al considerar procesos estadísticos que involucran variables aleatorias continuas o discretas, se tiene que definir F(x), ó función de densidad acumulada (fn Dn ). Si la variable aleatoria es discreta, x tomará valores específicos y F(x) será una función escalonada. Si la variable aleatoria es continua, x tomará valores en un rango especificado. Si F(x) es continua en el dominio de x, entonces F(x) se podrá diferenciar, para lo cual se define ( ) ( ) dx x dF x f = {Función de densidad de probabilidad} Luego entonces: ( ) ( ) ( ) ( ) 1 0 ≤ ≤ = ≤ = ∫∞ − x F dt t f x x P x F x f(t) representa el valor de la función de densidad de probabilidad de la variable aleatoria cuando x = t. También tenemos que: 0 ≤ r ≤ 1 y F(x) = r. Existen tres métodos para generar los valores de variables aleatorias a partir de distribuciones de probabilidad: 1. Método de la transformación inversa 2. Método de rechazo 3. Método de composición (convolución) Método De La Transformación Inversa Se quiere generar valores de xi a partir de F(x). En primer lugar hay que obtener F(x). Puesto que F(x) se define en el rango de 0 a 1 se pueden generar números aleatorios para sustituir a F(x)=r. De manera unívoca cada valor de ri define un valor de F(x).
  • 45. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 45 ( ) ( ) 2 1 4 3 2 1 4 3 4 3 4 3 4 1 4 3 4 1 1 − = − =       − + = + = ∫ x r x x x F dt x F x Al considerarla función inversa de F ó F-1 (x) en caso de ser conocida, podemos hacer: x0 = F-1 (r0). Podemos de manera general establecer que: ( ) ( ) ∫∞ − = = x dt t f x F r Entonces ( ) ( ) ( ) [ ] ( ) [ ] x x F p x F r p x F x x p ≤ = ≤ = = ≤ −1 Ejemplo: Genérese los valores x de variables aleatorias con una función de densidad f(x) = 2x 0 ≤ x ≤ 1 ( ) ∫ = x tdt x F 0 2 ( ) 2 x x F r = = ó r x = 1 0 ≤ ≤ r Ejemplo: Genérese los valores x de variables aleatorias con función de densidad 4 1 1 0 ≤ ≤ x ( )= x f 4 3 2 1 ≤ ≤ x 1° parte 2° parte ( ) ( ) 4 4 4 1 0 x r x x F dt x F x = = = ∫ F(x) 1 F(xi) = ri 0 xi X
  • 46. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 46 Al tomar la transformación inversa y resolviendo: r x 4 = si 4 1 0 ≤ ≤ r 3 2 3 4 + = r x si 1 4 1 ≤ ≤ r Para generar un valor de x se debe en primer lugar generar un valor de r; cuando r < ¼ el valor de x estará determinado por x = 4r. Si r > ¼ entonces x = 4 /3 r + 2 /3 Ejemplo: Se desea simular una variable aleatoria con dn exponencial ( ) x e x f λ λ − = 0 ≥ x ( ) ( ) ( ) [ ] [ ] [ ] ( ) ( ) ( ) r x r x x r e r r e x F e e e e x F dt e dt e x F t t t t x t t x x t ln 1 ln 1 ln 1 1 1 1 1 0 0 0 0 λ λ λ λ λ λ λ λ λ λ λ λ λ − = ∴ − − = ∴ − = − = − ∴ = − = − − = − − = − = − = = − − − − − − − − ∫ ∫ Ejemplo: Se desea simular n números aleatorios con dn uniforme entre (a,b): ( ) b x a a b x f ≤ ≤ − = 1 ( ) ( ) [ ] ( ) ( ) ( ) a b r a x a b a x r a b a x x F a b a x t a b x F dt a b dt a b x F x a x a x a − + = − − = − − = − − = − =       − = − = ∫ ∫ 1 1 1 1 ( ) a b r a x b x a − = − ∴ ≤ ≤
  • 47. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 47 Método De Rechazo Este método requiere que f(x) sea una distribución de probabilidad acotada y con rango finito ó a a ≤ x ≤ b. Los pasos requeridos son: 1. Generar 2 números aleatorios r1 y r2 2. Determinar el valor de la variable aleatoria X de acuerdo a la relación lineal de r1: X = a + (b-a)r1 3. Evaluar la función de probabilidad en x = a + (b-a)r1: ƒ[x = a+(b-a)r1] 4. Determinar si se cumple: r2 ≤ ƒ[a+(b-a)r1]/M M = es cota superior. f(x) M a b X Si r2 > f(x)/M entonces r1 y r2 se descartan y se seleccionan otros valores de r1 y r2 Ejemplo: Se desea generar números aleatorios con la distribución. 2x 0 ≤ x ≤ 1 f(x) 0 en otra parte En este caso: a = 0 b = 1 M = 2 1. Generar R1 y R2 2. Calcular x = r1 3. f(x) = 2r1 4. r2 ≤ 2r1 = 2r1 r2 ≤ r1 → x = r1 M 2
  • 48. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 48 f(x) = Ejemplo: Se desea generar variables aleatorias X para la siguiente densidad de probabilidad. ( )( ) ( ) a x a b a c − − − 2 si a ≤ x ≤ b ( )( ) ( ) c x b c a c − − − − 2 si b ≤ x ≤ c M= ) ( 2 a c − Como la función se compone de 2 partes: f(x) M a b c X Los pasos para simular esta distribución son: 1. Generar r1 y r2 2. Calcular x = a + (c – a)r1 3. Es x < b si la respuesta es afirmativa ( ) ( )( ) ( ) [ ] ( ) ( ) a b r a r a c a a b a c x f − = − − + − − = 1 1 2 2 si la respuesta es negativa, entonces f(x) es : ( ) ( )( ) ( ) ( ) ( ) ( ) b c r b c r c r a c a b c a c x f − − = − − = − − + − − − = 1 1 1 1 2 1 2 2 4. Es ( )( ) 2 2 α − ≤ c x f r Si la respuesta es afirmativa, entonces se considera como valor x = a + (c – a)r1 Simulada, en caso contrario regresemos al paso 1.
  • 49. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 49 ( ) ( ) [ ] ( ) 4 3 3 4 4 3 4 3 0 4 3 0 4 3 0 ≤ ≤ = = = = = ∫ r r x r x F t x F dt x F x x x x ( ) ( ) ( ) 8 15 8 9 4 3 8 9 8 9 8 9 8 9 4 3 3 2 4 3 4 3 3 5 4 3 4 3 1 2 1 2 1 1 1 1 1 0 + − = + + − = + − = − − − = − − − − = − − − − = − + = x y x y x y x y x y x x x x y y y y b mx y ( ) ( )( ) ( ) 1 9 1 12 15 1 2 4 2 4 4 3 8 9 2 3 8 15 8 9 4 9 4 9 8 15 8 9 16 36 256 324 64 255 8 15 8 9 16 36 256 324 64 255 8 15 16 9 16 9 16 9 2 8 15 8 15 2 ≤ ≤ − ± = − ± = − ± = − − ± = − − ± = + − − ± = − ± − = r r x r x r x r x r x r x a ac b b x ( )= x f 8 15 8 9 + − x 1 0 ≤ ≤ x 3 5 1 ≤ ≤ x Ejemplo. Calculando la segunda parte de la función 1° parte 2° parte ( ) ( ) ( ) [ ] ( ) ( ) [ ] ( ) ( ) 0 16 9 8 15 2 16 9 16 9 8 15 2 16 9 16 9 8 15 2 16 9 8 15 16 9 8 15 2 16 9 4 3 8 15 16 9 8 15 2 16 9 4 3 1 8 15 16 9 4 3 1 8 15 8 9 4 3 2 = + + − − + − = − + − = − + + − = + − − + − + = + − + = + − + = ∫ r x x x x r x x x F x x x F x x x F t x F dt t x F x t x Resolviendo la ecuación de segundo grado mediante la fórmula general 4 3 4 3 3 5 ( ) 2 2 , y x ( ) 1 1, y x 1 x ( ) x f 0
  • 50. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 50 Método De Composición En esta técnica f(x), la función de densidad probabilidad de la distribución que se va simular, esta expresada como una mezcla de probabilidad de funciones de densidad propiamente seleccionadas. Este procedimiento está basado en la definición de probabilidad condicional o la ley de probabilidades compuestas. Matemáticamente sea g(x|y) una familia de funciones de densidad de un parámetro donde y es el parámetro que identifica de manera única a g(x). Si un valor de y es ahora descrito de una función de distribución acumulada H(y) y entonces si x es una muestra de g(x), para seleccionar y, la función de densidad para x será: ( ) ( ) ( ) y dH y x g x f f ∫ ∞ ∞ − = = Usando este principio, distribuciones más complicadas pueden ser generadas de distribuciones más simples las cuales son en sí mismas fácilmente generadas, por la técnica de la transformación inversa o la técnica de rechazo. Ejemplo: Generar una varianza aleatoria de ( ) ∫ ∞ ∞ − − − = dy e y n x f xy n cuando (sea) ( ) 1 + = n y dy n y dH 1 , 1 ≥ ∞ < < n y y ( ) yx ye x g − = Una varianza es ahora obtenida desde una función de densidad cuya su función de distribución acumulativa es H(y). Una vez que y es seleccionada, esta determina una particular g(x) = ye-yx. La varianza deseada de f(x) es entonces una varianza simplemente generada de g(x) = ye-yx. Para continuar con las siguientes instrucciones, genera dos varianzas uniformes R1 y R2, y cuando: Entonces x es la varianza deseada de: ( ) ∫ ∞ − − = 1 dy e y n x f yx n Esta técnica es apropiada cuando se desea generar distribuciones de tipo mas alto usando distribuciones La dificultad recae en identificar la H(y) y g(xy) la cuál se necesita para producir una f(x) dada dentro de la relación. 2 1 1 1 log 1 1 R X R s s n = = −
  • 51. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 51 ( ) ( ) ( ) y dH y x g x f ∫ ∞ ∞ − = Afortunadamente, las estadísticas matemáticas nos han provisto de varias relaciones funcionales llamadas “convoluciones” que pueden ser usadas en la generación de ciertas desviaciones aleatorias. Los siguientes ejemplos sirven para ilustrar el procedimiento. La Distribución De Poisson Si los intervalos de eventos similares están distribuidos exponencialmente, el número de eventos ocurridos en un intervalo unitario de tiempo, tiene la distribución de Poisson. Las aplicaciones de las variables aleatorias de Poisson incluyen tantas áreas tales como control de los inventario, teoría de colas, control de calidad, flujo de tráfico y muchas otras áreas ciencias administrativas. La función de densidad de probabilidad para la distribución de Poisson esta dada por: ( ) ! X e x f x λ λ − = ∞ = , , 2 , 1 , 0 K x donde λ es el número esperado de sucesos por unidad de tiempo. Esto implica que el tiempo entre eventos esta distribuido exponencialmente con media de λ 1 Podemos utilizar esta relación entre la distribución Poisson y la exponencial para generar desviaciones de la distribución de Poisson. Una desviación x de Poisson puede ser definida de la siguiente manera: ∑ ∑ + = = ≤ ≤ 1 1 1 1 x i i x i i y y donde y1, y2,....,yx+1 son desviaciones aleatorias de una distribución exponencial teniendo como media 1/λ y son generadas por (la técnica de transformada inversa) i i R y ln 1 λ − = donde Ri está dada por la distribución uniforme. En conclusión, las sumas acumulativas son generadas hasta que se obtiene la desigualdad. Cuando esto ocurre, x es la desviación aleatoria de Poisson deseada.
  • 52. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 52 Otra forma de este mismo procedimiento es definir la desviación x de Poisson cuando: ∑ ∑ + = = ≤ ≤ 1 1 1 x i i x i i y y λ donde yi es otra vez las desviaciones de la distribución exponencial pero con media 1/λ, esto es: λ i i R y ln − = Las 2 técnicas son esencialmente las mismas, pero la primera parece ser más apropiada con la definición de la distribución exponencial donde las yi’s tiene una media de λ 1 . Ejemplo. Sabemos que por la teoría de la probabilidad que si el número de eventos se puede describir a través del flujo de Poisson, el tiempo entre la ocurrencia de eventos debe ser exponencial. En la distribución de Poisson el resultado se expresa como el número de eventos n que ocurren en un determinado tiempo t. Por lo tanto para muestrear la distribución exponencial con media λ 1 tantas veces como sea necesario hasta que la suma de las variables aleatorias generadas exceda a t por vez primera. En este caso, el valor de Poisson muestreado n se toma igual al número de veces que se muestreo la distribución exponencial -1. Supóngase que se desea muestrear una distribución de Poisson 3 = λ durante un periodo de 1.4 hrs. ( ) i i x r t x e x f ln 1 ! λ λ λ − = = − n 1 2 3 4 5 rn 0.058962 0.673284 0.479909 0.948578 0.61396 tn 0.9436 0.1318 0.2447 0.1075 0.1624 ∑ = n i i t 1 0.9436 1.0754 1.3201 1.3376 1.5002 t = 1.4 ∑ ∑ = + = ≤ ≤ n i n i i i t t t 1 1 1 X = 0, 1, 2,…, α λ= 3 eventos por hora. X = Variable aleatoria de Poisson X = 4 número de eventos que llegan en 1.4 hrs.
  • 53. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 53 Distribución Erlang La distribución Erlang es una forma de la distribución gamma con K igual a un entero positivo. Estadísticos Matemáticos han probado que esta distribución es solo la suma de las variables exponenciales de K, cada una con un valor esperado 1/k. Para generar una desviación Erlang, nosotros solo necesitamos la suma de las desviaciones exponenciales K, cada una con el valor esperado 1/k. De esta manera la varianza x de Erlang es esperada como: ∑ ∑ = = ∞ − = = k i k i i i R y X 1 1 1 ln donde yi es una desviación exponencial generada por la técnica de la transformada inversa Ri es un número aleatorio de la distribución uniforme. Distribución Binomial Una variable aleatoria x definida como el número de eventos exitosos en una secuencia de n tiradas o intentos independientes de Bernoulli, cada una con probabilidad de éxito p, es conocida como una variable aleatoria binomial. La distribución binomial es una de las más importantes en las distribuciones estadísticas usadas en un área de ejemplificación y control de calidad. La función de densidad de probabilidad binomial está dada por: ( ) x n x q p x n x f −         = n x , , 1 , 0 L = donde p = probabilidad de éxito por tirada q = 1-p n = número de tiradas x = número de éxitos, en entero Para generar una desviación binomial con parámetros p y n el procedimiento es el siguiente: 1. Generar n desviaciones aleatorias uniformes 2. Contar el número de varianzas uniformes menor o igual a p 3. El número encontrado en el paso 2 es igual al valor de la varianza binomial Este procedimiento puede entonces ser repetido tantas veces como sea necesario para generar otras desviaciones binomiales.
  • 54. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 54 Otro procedimiento involucrado que usa la distribución normal como una aproximación a la binomial para casos donde n ≥ 20 y np ≤ 10. Desde que la varianza binomial es un entero, la varianza normal usada como una aproximación debe ser redondeada al valor entero más cercano. Este método es más rápido pero es solo una aproximación. Método De Transformación Inversa Para Distribuciones Discretas Se utiliza cuando se desea simular variables aleatorias de tipo discreto, como la distribución de Bernoulli, binomial, Poisson, discreta general, etc., El procedimiento es similar al continuo pero el valor de F(x) se encuentra acumulando las probabilidades de los eventos individuales p(x). También en este caso, F(x) está definida en el intervalo 0 a 1; se genera un número aleatorio ri y se determina el valor de la variable aleatoria cuya distribución acumulada es igual a ri. La figura nos muestra en forma gráfica el procedimiento anterior para una función cualquiera p(x) discreta. La dificultad de este método radica en que no existe una expresión final sencilla, como en el caso de la continua. Metodología Paso 1 Calcular todos los valores de p(x) para la distribución propuesta. Paso 2 Calcular la probabilidad acumulada F(x) para cada valor de x. Paso 3 Generar un valor ri. Verificar en F(x) a qué intervalo de x pertenece y ese será el número aleatorio generado por la distribución propuesta. f(x) 0 x F(x) 0 Xi= F -1 (Ri) x
  • 55. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 55 Ejemplo. ( ) ( )( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) 00032 . 0 80 . 0 0.20 5 5 5 0064 . 0 80 . 0 0.20 4 5 4 0512 . 0 80 . 0 0.20 3 5 3 2048 . 0 80 . 0 0.20 2 5 2 4096 . 0 80 . 0 0.20 1 5 1 32768 . 0 80 . 0 0.20 0 5 0 ! ! ! ! ! 1 2 1 - n n 20 . 0 80 . 0 5 0 5 1 4 2 3 3 2 4 1 5 0 =         = =         = =         = =         = =         = =         = − = − − =         = = =         = − P P P P P P x n x n x n x n x n p q n q p x n x P x n x K 0.4 0.3 0.2 0.05 ( ) x f x 0 1 2 3 4 5
  • 56. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 56 Números aleatorios 43999 . 0 03991 . 0 82745 . 0 34565 . 0 71997 . 0 72484 . 0 6 5 4 3 2 1 = = = = = = r r r r r r 1 0 2 1 1 1 6 5 4 3 2 1 = = = = = = x x x x x x 0.25 0.50 0.75 0.90 1 0 1 2 3 4 5 ( ) x F x
  • 57. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 57 UNIDAD IV Lenguajes De Simulación Introducción El GPSS/TM y el GPSS/H  son aplicaciones nuevas e interactivas dentro del ambiente IBM del GPSS, General Purpose Simulating System (en español, Simulación de Sistemas de propósito General) desarrollado a principios de la década de los 60 por Geoffrey Gordon. El objetivo principal del GPSS es la modelación de sistemas discretos. Cualquier sistema por simular en este lenguaje se debe describir mediante un diagrama de bloques que representan las actividades, unidos mediante líneas que representan la secuencia que seguirán un grupo de transacciones, que a su vez se mueven a través de los bloques. Las transacciones dependen de la naturaleza del sistema, por ejemplo un sistema de comunicaciones se refiere al movimiento de mensajes; un sistema de transporte se refiere al vehículos motorizados; un sistema de producción, al movimiento de piezas. La simulación mediante GPSS se realiza con dos elementos básicos conocidos como transacciones y bloques. Una transacción es aquello que fluye a través del sistema de manufactura, y que puede ser: información, piezas, órdenes de producción, fallas, operarios, mecánicos, etcétera, mientras que un bloque se define como cualquier operación que realiza una transacción dentro de un sistema; algunas operaciones pueden ser las siguientes: procesamiento, entrada a un almacén, salida de un almacén, inicio de proceso, fin de proceso, salida del sistema, ensamble, desensamble, etcétera. En un principio los lenguajes de simulación se elaboran utilizando algún lenguaje de propósito general como FORTRAN, ALGOL, PL/1, etc. Esto requería un gran trabajo de programación; con el paso del tiempo se fueron identificando diferentes situaciones, hasta llegar a estandarizarse ciertas instrucciones de programación en rutinas bien definidas. De este concepto nació el diseño de lenguaje específico para programas de simulación con los cuales se ha ido facilitando al usuario la programación de sus modelos.
  • 58. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 58 Definición de funciones FUNCTION Definición de números de máquinas STORAGE Definición de matrices MATRIX Asignación numérica a variables EQU Inicialización de variables INITIAL Definición de histogramas TABLE Definición de operaciones VARIABLE Y FVARIABLE Estructura Del Lenguaje: Para usar el GPSS se requiere tener conocimientos de los comandos más comunes del sistema DOS. Dentro de un programa de GPSS se pueden distinguir cuatro tipos de instrucciones, cada una de las cuales se detalla a continuación: a) Instrucciones de acceso al sistema GPSS. Estas instrucciones permiten al usuario el acceso al compilador del GPSS y dependen de cada tipo de versión utilizada; en este punto se recomienda hacer referencia al manual respectivo. b) Instrucciones de definición de variables. Son un tipo de instrucciones especiales de carácter opcional; su inclusión depende del sistema a modelar. Estas instrucciones siempre se encuentran relacionadas con las instrucciones de lógica del programa. Dentro de las instrucciones se encuentran las siguientes: definición de las funciones a utilizar, definición de capacidad de los almacenes, definición del número de operarios o maquinas por estación, inicialización de variables, definición de las operaciones matemáticas por utilizar, etcétera. A continuación se muestra una lista de las definiciones más comunes utilizadas en GPSS: c) Instrucciones de Lógica del programa. Este tipo de instrucciones son las conocidas como bloques; son las que se ejecutarán durante la simulación; la lógica dependerá de cada sistema que se desee simular. Teniendo en cuenta la función que realizan, una clasificación de los bloques o instrucciones de lógica es la siguiente: Simulación de inicio de proceso y captura de máquina SEIZE ENTER PREEMPT Simulación de fin de proceso y liberación de máquina RELEASE LEAVE RETURN Simulación de entrada de transacciones a un almacén QUEUE ENTER LINK Simulación de salida de transacciones de un almacén DEPART ENTER UNLINK Simulación de entrada transacciones al sistema GENERATE SPLIT
  • 59. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 59 Simulación de la salida de transacciones del sistema TERMINATE Simulación de diversos tipos de proceso ADVANCE ASSEMBLE MATCH GATHER Simulación del control de flujo de transacciones TRANSFER TEST GATE LOGIC SELECT LOOP BUFFER Bloques de operaciones aritméticas SAVEVALUE MSAVEVALUE ASSIGN INDEX PRIORITY Bloque de creación de estadísticas TABULATE Las instrucciones de tipo b) y c) se codifican siguiendo un formato general, dentro del cual se pueden distinguir los siguientes elementos: 2 8 19 31 Loc Bloque Operandos Comentarios Donde: • Loc: Representa el nombre de una etiqueta o una dirección. La etiqueta es un campo opcional y su existencia depende de la lógica del programa. Está localizado en la “columna 2”. Su función es similar a las etiquetas en Fortran. • Bloque: Es la instrucción específica por ejecutar. Representa la acción que va a llevar a cabo cada una de las transacciones que cruza por allí. Se coloca en la “columna 8”. • Operandos: Cada bloque representa la acción por ejecutar, sin embargo, es necesario incluir un complemento, como puede ser la duración o el lugar de dicha acción. Los operandos son las características individuales de cada bloque, y dependerán de la lógica del sistema. Se colocan en la “columna 19”. • Comentarios: Es el espacio donde el usuario puede colocar cualquier indicación o identificación de la instrucción.
  • 60. Instituto Tecnológico de Acapulco Catedrático: Ing. Vales Ortiz Gilberto Ingeniería en Sistemas Computacionales Simulación 60 En algunas versiones del GPSS, como en la de GPSS/PC, cada instrucción debe ir precedida de un número de instrucción en forma ascendente de acuerdo con la lógica, pero se utiliza sólo como referencia para la edición del programa. d) Instrucciones de control de la simulación. Estas instrucciones son las que controlan la ejecución, edición y manejo de archivos en GPSS/PC. Las principales son: END, START, SIMULATE. Así, una vez dados los lineamientos generales, elementos y estructura del GPSS, a continuación se explican de manera más detallada los principales bloques del GPSS, incluyendo algunos ejemplos ilustrativos. Lenguajes Específicos De Simulación Ventajas: 1. El tiempo de desarrollo de la programación es muy corto porque se trata de lenguajes sintéticos basados en programación por bloques o subrutinas, e incluso algunos de ellos están encaminados al usuario de tal forma que ya no es indispensable programar. 2. Permite realizar análisis de sensibilidad fácilmente y en un corto tiempo. Tiene alta flexibilidad para hacer cambios. 3. Integra funciones como generación de números aleatorios, análisis estadístico y gráficas. 4. Tiene una alta fiabilidad que conduce a una validación de resultados sencilla y rápida. 5. Permite definir y entender el sistema a simular gracias a que se tiene una visibilidad superior de la estructura general del modelo y se aprecian más fácilmente las interrelaciones. Desventajas 1. Es necesario invertir en adquisición del software. 2. Se requiere invertir tiempo y costo en la capacitación de los programadores del nuevo lenguaje. 3. La computadora de la compañía y el software a adquirir deben ser compatibles. Características De Los Lenguajes De Simulación En la actualidad los lenguajes que existen en el mercado tienen una serie de características propias que los distinguen de otros, entre esas características están las siguientes: 1. El procedimiento utilizado para generar los números aleatorios uniformes y las variables no uniformes conocidas.