Transcript
Page 1: Unidad 2 Numeros Aleatorios

0.5038

0.4072

0.5103

0.3481

0.54220.5031 0.5203

0.4945

0.64640.6270

0.0000

0.1000

0.2000

0.3000

0.4000

0.5000

0.6000

0.7000

1 2 3 4 5 6 7 8 9 10

0.5335 0.9541 0.0434 0.5995 0.0498 0.8032 0.8577 0.0388 0.1401 0.2347

0.7179 0.6382 0.4754 0.4203 0.4667 0.4948 0.0961 0.6174 0.0876 0.8015

0.9023 0.2916 0.5705 0.3670 0.5003 0.2147 0.5331 0.7133 0.8729 0.4857

0.2604 0.4492 0.7434 0.2079 0.8610 0.6582 0.8971 0.7643 0.9849 0.6914

0.2240 0.0369 0.2058 0.2594 0.4667 0.8803 0.2755 0.4341 0.5941 0.2880

0.3781 0.0733 0.3605 0.0845 0.8969 0.0483 0.8875 0.5444 0.9867 0.9071

0.5688 0.4417 0.6001 0.0001 0.4396 0.6957 0.4918 0.5824 0.8309 0.8877

0.6903 0.3127 0.9312 0.3360 0.8717 0.4425 0.3523 0.3431 0.8541 0.2237

0.1936 0.6810 0.2984 0.5253 0.5659 0.4143 0.4194 0.0864 0.6122 0.7562

0.5695 0.1933 0.8738 0.6813 0.3035 0.3791 0.3926 0.8208 0.5000 0.9944

0.5031 0.5203 0.4945 0.6464 0.62700.5038 0.4072 0.5103 0.3481 0.5422

ING. EN SISTEMA COMPUTACIONALES

Tema: Números Aleatorios

Mtro. Isidro R. Montoro

[email protected]

estabilidad

Unidad 2

Page 2: Unidad 2 Numeros Aleatorios

Subtemas

2.1 Números aleatorios definición y propiedades 2.2 Técnicas para generar números aleatorios 2.2.1 Métodos de Centros al Cuadrado 2.2.2 Métodos de Congruencia: Multiplicativo y Mixto. 2.3 Pruebas de Aleatoriedad

Page 3: Unidad 2 Numeros Aleatorios

Para poder realizar una simulación que incluya variabilidad dentro de sus eventos, es preciso generar una serie de números que sean aleatorios por sí mismos, y que su variabilidad se extrapole al modelo de simulación que se está construyendo. En la construcción del modelo los números aleatorios juegan un papel relevante.

Números Aleatorios

Page 4: Unidad 2 Numeros Aleatorios

Números Aleatorios

Una de las primeras tareas que es necesario llevar a cabo consiste en determinar si los números que utilizaremos para “correr” o ejecutar la simulación son realmente aleatorios o no; por desgracia, precisar lo anterior con absoluta certidumbre resulta muy complicado, ya que para ello tendríamos que generar un número infinito de valores que nos permitiera comprobar la inexistencia de correlaciones entre ellos. Esto sería muy costoso y tardado, volviendo impráctico el uso de la simulación.

Page 5: Unidad 2 Numeros Aleatorios

Números Aleatorios

A pesar de lo anterior, podemos asegurar con altos niveles de confiabilidad que el conjunto de números que utilizaremos en una simulación se comportan de manera muy similar a un conjunto de números totalmente aleatorios; por ello es que se les denomina números pseudo aleatorios. Casi todas las aplicaciones comerciales tienen varios generadores de números pseudo aleatorios que pueden generar un conjunto muy grande de números sin mostrar correlación entre ellos.

Page 6: Unidad 2 Numeros Aleatorios

Generación de números pseudo aleatorios

Para generar una simulación se requieren números aleatorios en el intervalo (0, 1), a los cuales se hará referencia como ri, es decir, una secuencia ri = {r1, r2, r3, … , rn} que contiene n números, todos ellos diferentes; n recibe el nombre de periodo o ciclo de vida del generador que creo la secuencia ri.

Page 7: Unidad 2 Numeros Aleatorios

Los ri constituyen la parte medular de la simulación de procesos estocásticos, y generalmente se usan para generar el comportamiento de variables aleatorias, tanto continuas como discretas. Debido a que no es posible generar números realmente aleatorios, consideramos los ri como números seudo aleatorios, generados por medio de algoritmos determinísticos que requieren parámetros de arranque.

Page 8: Unidad 2 Numeros Aleatorios

Para simular el comportamiento de una o más variables es necesario contar con un conjunto suficientemente grande de ri que permita, por ejemplo, que la secuencia tenga al menos un periodo de vida de n = 2^31= 2 147 483 648 o ciclo de vida de n = 2^62. En la actualidad ya se cuenta con generadores y procesadores capaces de construir una secuencia de ri que contenga un ciclo de vida de n = 2^200.

Probablemente usted se preguntará por qué debe interesarnos construir una secuencia de números ri suficientemente grande. A continuación ilustraremos la razón mediante un ejemplo.

Page 9: Unidad 2 Numeros Aleatorios

Ejemplo Supongamos que queremos simular el tiempo de atención a clientes en un banco que tiene cinco cajeros en paralelo, cada uno de los cuales atiende aproximadamente 50 clientes.

Page 10: Unidad 2 Numeros Aleatorios

http://www.auladeeconomia.com

Estructuras típicas de sistemas de colas: una línea, múltiples servidores

Llegadas

Sistema de colas del banco

Cola

Servidor cajero 1

Salidas

Servidor cajero 2

Servidor cajero 3

Salidas

Salidas

Servidor cajero 4

Salidas

Servidor cajero 5

Salidas

Page 11: Unidad 2 Numeros Aleatorios

Para simular el tiempo de atención se requiere un generador de variable aleatoria en función de ri, por ejemplo Ti = 5 + 2ri, expresado minutos para toda i=1, 2, 3, ... , n.

Page 12: Unidad 2 Numeros Aleatorios

Si simulamos el tiempo de atención de manera aislada, es decir, sin considerar el tiempo transcurrido desde la llegada de éstos, serán necesario 5 X 50 = 250 números ri para simular un día; si deseáramos simular 5 días se necesitarían 250 X 5 = 1250 ri. Ahora bien, si consideramos el tiempo desde la llegada de los clientes, precisaríamos de 250 ri para simular el tiempo transcurrido desde la llegada al banco de los 250 clientes por día, y 250 X 5 = 1250 ri para simular el correspondiente al total de clientes atendidos durante 5 días. Por lo tanto se requerirán 2500 números pseudoaleatorios ri para simular la operación del banco durante 5 días.

Page 13: Unidad 2 Numeros Aleatorios

Como los resultados no pueden basarse en una simulación del sistema, es necesario realizar varias réplicas de la misma, corriendo cada una de ellas con números pseudo aleatorios diferentes. Retomando el ejemplo del banco, simular 5 días otra vez significa que necesitamos otros 2500 números pseudo aleatorios en el intervalo (0, 1). En consecuencia, se requieren 5 000 ri para realizar la simulación de atención a clientes con dos replicas.

Page 14: Unidad 2 Numeros Aleatorios

El lector podrá imaginar cuántos números ri serán necesarios para simular la operación del banco durante un año con 9 réplicas, o cuantos números ri se requieren para simular un sistema productivo durante un año, con varias líneas de producción, y cada línea de producción con varias estaciones, y cada estación con uno o más procesos.

Page 15: Unidad 2 Numeros Aleatorios

Dada la importancia de contar con un conjunto de ri suficientemente grande, se presentan diferentes algoritmos determinísticos para obtenerlo.

Por otra parte, es conveniente señalar que el conjunto de ri debe ser sometido a una variedad de pruebas estadísticas para verificar si los números que lo conforman son realmente independientes y uniformes.

Una vez generado el conjunto ri mediante un algoritmo determinístico, es necesario someterlo a las pruebas estadísticas: si la supera podrá utilizarse en la simulación; de lo contrario, simplemente debemos desecharlo.

Page 16: Unidad 2 Numeros Aleatorios

Un conjunto de ri debe seguir una distribución uniforme continua, la cual está definida por:

f(r) =

1, 0 ≤ r ≤ 1

0, en cualquier otro valor

Generar un conjunto de ri es una tarea relativamente sencilla, para ello, el lector sólo tiene que diseñar su propio algoritmo de generación.

Page 17: Unidad 2 Numeros Aleatorios

Lo que resulta difícil es diseñar un algoritmo que genere un conjunto de ri con periodo de vida suficientemente grande (N), y que además pase sin problema las pruebas de uniformidad e independencia, lo cual implica evitar problemas como éstos:

• Que los números del conjunto ri no estén uniformemente distribuidos, es decir que haya demasiados ri en un subintervalo y en otro muy pocos o ninguno. • Que los números ri generados sean discretos en lugar de continuos. • Que la media del conjunto sea muy alta o muy baja, es decir, que se esté por arriba o por debajo de ½. • Que la varianza del conjunto sea muy alta o muy baja, es decir , que se localice por arriba o por debajo del ½.

Page 18: Unidad 2 Numeros Aleatorios

En ocasiones se presentan anomalías con números ri seguidos por arriba o por debajo de la media; secuencia de ri por arriba de la media, seguida de una secuencia por debajo de la media, y viceversa, o varios ri seguidos en forma ascendente o descendente

Page 19: Unidad 2 Numeros Aleatorios

Alg

ori

tmo

s

1) No congruenciales

2) Congruenciales

i) Cuadrados medios

ii) Productos medios

iii) Multiplicador constante

A)Lineales

B)No lineales

i) Lineal

ii) Multiplicativo

iii) Aditivo

i) Congruencial cuadrático

ii) Blum, Blum y Shub

Page 20: Unidad 2 Numeros Aleatorios

i) Algoritmo de cuadrados medios

Este algoritmo no congruencial fue propuesto en la década del siglo XX por Von Neuman y Metropolis. Requiere un número entero detonador (llamado semilla con D dígitos, el cual es elevado al cuadrado para seleccionar del resultado los D dígitos del centro; el primero número ri se determina simplemente anteponiendo el “0.” a esos dígitos. Para obtener el segundo ri se sigue el mismo procedimiento, sólo que ahora se elevan al cuadrado los D dígitos del centro que se seleccionaron para obtener el primer ri. Este método se repite hasta obtener n números ri.

Page 21: Unidad 2 Numeros Aleatorios

i) Algoritmo de cuadrados medios

Pasos para generar números con el algoritmo

1. Seleccionar una semilla (X0) con D dígitos (D>3). 2. Sea X0 = resultados de elevar X0 al cuadrado; sea

X1 = los D dígitos del centro, y sea ri = 0.D dígitos del centro.

3. Sea Yi = resultado de elevar Xi al cuadrado; sea X i+1 = los D dígitos del centro, y sea ri = 0.D dígitos del centro para toda i = 1, 2, 3, … , n.

4. Repetir el paso 3 hasta obtener los n números ri deseados.

Nota: Si no es posible obtener los D dígitos del centro del número Yi, agregue ceros a la izquierda del número Yi.

Page 22: Unidad 2 Numeros Aleatorios

i) Algoritmo de cuadrados medios

Pasos para generar números con el algoritmo

1. Seleccionar una semilla (X0) con D dígitos (D>3). 2. Sea X0 = resultados de elevar X0 al cuadrado; sea

X1 = los D dígitos del centro, y sea ri = 0.D dígitos del centro.

3. Sea Yi = resultado de elevar Xi al cuadrado; sea X i+1 = los D dígitos del centro, y sea ri = 0.D dígitos del centro para toda i = 1, 2, 3, … , n.

4. Repetir el paso 3 hasta obtener los n números ri deseados.

Nota: Si no es posible obtener los D dígitos del centro del número Yi, agregue ceros a la izquierda del número Yi.

Page 23: Unidad 2 Numeros Aleatorios

Ejemplo 2.1 Generar los primeros números ri a partir de una semilla X0 = 5 735, de donde se puede observar que D = 4 dígitos.

Nota: El algoritmo de cuadrados medios generalmente es incapaz de generar una secuencia de ri con periodo de vida n grande. Además, en ocasiones sólo es capaz de generar un número, por ejemplo, si X0 = 1000, entonces X1 = 0000; ri = 0.0000 y se dice que el algoritmo se genera con semilla de X0 = 1000.

Y0 = (5 735)2 = 32 890 225 X1 = 8902 r1= 0.8902

Y1 = (8 902)2 = 79 245 604 X2 = 2456 r2= 0.2456

Y2 = (2 456)2 = 06031936 X3 = 0319 r3 = 0.0319

Y3 = (0319)2 = 101 761 X4 = 0176 r4 = 0.0176

Y4 = (0176)2 = 030976 X5 = 3097 r5 = 0.3097

Page 24: Unidad 2 Numeros Aleatorios

ii) Algoritmo de productos medios

La mecánica de generación de números aleatorios de este algoritmo no congruencial es similar a la del algoritmo de cuadrados medios. La diferencia entre ambos radica en que el algoritmo de productos medios requiere dos semillas, ambas con D dígitos; además, en lugar de elevarlas al cuadrado, las semillas se multiplican y del producto se seleccionan los D dígitos del centro, los cuales formarán el primer número pseudo aleatorio ri = 0.D dígitos . Después se elimina una semilla, y la otra se multiplica por el primer número de D dígitos, para luego seleccionar del producto los D dígitos que conformarán un segundo número de

Page 25: Unidad 2 Numeros Aleatorios

ii) Algoritmo de productos medios

Siempre se irá eliminando el número más antiguo, y el procedimiento se repetirá hasta generar los n números más antiguos, el procedimiento se repetirá hasta generar los n números pseudo aleatorios.

Page 26: Unidad 2 Numeros Aleatorios

ii) Algoritmo de productos medios

Pasos del método para generar los n números con el algoritmo de productos medios.

1. Seleccionar una semilla (X0) con D dígitos (D>3).

2. Seleccionar una semilla (X1) con D dígitos (D>3).

3. Sea Y0 = X0*X1; sea X2 = los D dígitos del centro, y sea ri = 0.D dígitos del centro para toda i = 1, 2, 3, … , n

4. Sea Yi = Xi * Xi+1; sea Xi+2 = los D dígitos del centro, y sea ri+1 = 0.D dígitos del centro para toda i = 1, 2, 3, … , n.

5. Repetir el paso 4 hasta obtener los n números ri deseados .

Page 27: Unidad 2 Numeros Aleatorios

ii) Algoritmo de productos medios

Nota: Si no es posible obtener los D dígitos del centro del número Yi, agregue ceros a la izquierda del número Yi.

Ejemplo 2.2 Generar los primeros 5 números ri a partir de las semillas X0 = 5 015 y X1 = 5 734; observar que ambas semillas tienen D = 4 dígitos.

Y0 = (5 015)(5 734) = 28 756 010 X2 =7560 r1= 0.7560

Y1 = (5 734)(7 560) = 43 349 040 X3 = 3490 r2= 0.3490

Y2 = (7 560)(3 490) = 26 384 400 X4 = 3844 r3 =0.3844

Y3 = (3 490)(3 844) = 13 415 560 X5 = 4155 r4 =0.4155

Y4 = (3 844)(4 155) = 15 971 820 X6 = 9718 r5 =0.9718

Page 28: Unidad 2 Numeros Aleatorios

iii) Algoritmo de multiplicador constante

Este algoritmo no congruencial es similar al algoritmo de productos medios. Los siguientes son los pasos necesarios para generar números pseudo aleatorios con el algoritmo de multiplicador constante.

1. Seleccionar una semilla (X0) con D dígitos (D>3). 2. Seleccionar una constante con D dígitos (D>3). 3. Sea Y0 = a*X0; sea X1 = los D dígitos del centro, y

sea ri = 0.D dígitos del centro. 4. Sea Yi = a*Xi sea Xi+1 = los D dígitos del centro,

y sea ri+1 = 0.D dígitos del centro para toda i = 1, 2, 3, … , n.

5. Repetir el paso 4 hasta obtener los n números ri deseados .

Page 29: Unidad 2 Numeros Aleatorios

Nota: Si no es posible obtener los D dígitos del centro del número Yi, agregue ceros a la izquierda del número Yi.

Ejemplo 3. Mecánica del algoritmo de multiplicador constante

Genere los primeros 5 números ri a partir de la semilla X0 = 9803 y la constante a=6965. Observe que tanto la semilla como la constante tienen D=4 dígitos.

iii) Algoritmo de multiplicador constante

Page 30: Unidad 2 Numeros Aleatorios

iii) Algoritmo de multiplicador constante

Y0 = (6 965)(9 803) = 68 277 895 X1 = 2778 r1= 0.2778

Y1 = (6 965)(2 778) = 19 348 770 X2 = 3487 r2= 0.3487

Y2 = (6 965)(3 487) = 24 286 955 X3 = 2869 r3 =0.2869

Y3 = (6 965)(2 869) = 19 982 585 X4 = 9825 r4 =0.9825

Y4 = (6 965)(9 825) = 68 431 125 X5 = 4311 r5 =0.4311

Genere los primeros 5 números ri a partir de la semilla X0 = 9803 y la constante a=6965. Observe que tanto la semilla como la constante tienen D=4 dígitos.

Page 31: Unidad 2 Numeros Aleatorios

2) Algoritmos Congruenciales

A) Algoritmos Lineales B) No Lineales

Page 32: Unidad 2 Numeros Aleatorios

2) Algoritmos Congruenciales Lineales

i) Algoritmos Lineal Este algoritmo congruencial fue propuesto por

D: Lehmer en 1951. Según Law Kelton, este algoritmo ha sido el más usado. El algoritmo congruencial lineal genera una secuencia de números enteros por medio de la siguiente ecuación recursiva:

Xi+1 = (aXi + c) mod(m) i = 0, 1, 2, 3, … , n Donde: a = es la constante multiplicativa X0 = es la semilla, c = es la constante aditiva m = es la magnitud del modulo

Page 33: Unidad 2 Numeros Aleatorios

Los requisitos mínimos que estos parámetros deben satisfacer son: X0, a, c, m ≥ 0; enteros y m > a, m > c , m > X0

Aquí, mod representa a la operación aritmética módulo entre los enteros a y b tal que el recultado de (a mod b) es el residuo entre la división a entre b. Poe ejemplo, 16 mod 3 es igual a 1, ya que:

5

1 Residuo entero de la división

Page 34: Unidad 2 Numeros Aleatorios

Ejemplo 4. Mecánica del algoritmo congruencial lineal Generar 4 números entre 0 y 1 con los siguientes parámetros: X0 = 37, a = 19, c = 33 y m = 100.

r3 = 56/99 = 0.56

r4 = 97/99 = 0.97

r5 = 76/99 = 0.761876/100 = 18 + 76/100

No. Aleatorio Xi No. Aleatorio ri

X1 = 7 r1 = 36/99 = 0.36

X2 = 7

X3 = 3

X4 = 10

X5 = 18

r2 = 17/99 = 0.17

División real

736/100 = 7 + 36/100

717/100 = 7 + 17/100

356/100 = 3 + 56/100

1097/100 = 10 + 97/100

Gnerador

X1 = (19*37 + 33)mod(100)

X2 = (19 * 36 + 33)mod(100)

X3 = (19 * 17 +33)mod(100)

X4 = (19 * 56 +33)mod(100)

X5 = (19 * 97 + 33)mod(100)

En el ejemplo se colocaron de manera arbitraria cada uno de los parámetros requeridos: X0, a, c, m. Sin embargo, para que el algoritmo sea capaz de lograr el máximo periodo de vida n, es preciso que dichos parámetros cumplan ciertas condiciones. Banks, Carson, Nelson y Nicol sugieren lo siguiente:

Page 35: Unidad 2 Numeros Aleatorios

En el ejemplo se colocaron de manera arbitraria cada uno de los parámetros requeridos: X0, a, c, m. Sin embargo, para que el algoritmo sea capaz de lograr el máximo periodo de vida n, es preciso que dichos parámetros cumplan ciertas condiciones. Banks, Carson, Nelson y Nicol sugieren lo siguiente: m = 2 exp(g) a = 1 + 4k k debe ser entero c relativamente primo a m g debe ser entero Bajo estas condiciones se obtiene un periodo de vida máximo: N = m = 2 exp(g).

Page 36: Unidad 2 Numeros Aleatorios

Ejemplo 5. Generar suficientes números enteros entre 0 y 1 con los parámetros X0 = 6, k = 3, g = 3 y c = 7 Hasta encontrar el periodo de vida máximo (N). Si se cumplen las condiciones de Banks, Carson, Nelson y Nicol, se logrará el periodo máximo de N = m = 8. A continuación se presenta el desarrollo de la generación de los números ri.

X7 = (13 * 4 + 7)mod(8) 59/8 = 7 + 3/7 X7 = 7 r7 = 3/7 = 0.428

X8 = (13 * 3 + 7)mod(8) 46/8 = 5 + 6/7 X8 = 5 r8 = 6/7 = 0.857

X0 = 6

X6 = (13 * 1 + 7)mod(8) 20/8 = 2 + 4/7 X6 = 2 r6 = 4/7 = 0.571

Gnerador División real No. Aleatorio Xi No. Aleatorio ri

X1 = (13*6 + 7)mod(8) 85/8 = 10 + 5/7 X1 = 10 r1 = 5/7 = 0.714

X2 = (13 * 5 + 7)mod(8) 72/8 = 9 + 0/7 X2 = 9 r2 = 0/7 = 0.00

X5 = (13 * 2 + 7)mod(8) 33/8 = 4 + 1/7 X5 = 4 r5 = 1/7 = 0.142

X3 = (13 * 0 +7)mod(8) 7/8 = 0 + 7/7 X3 = 0 r3 = 7/7 = 1.00

X4 = (13 * 7 +7)mod(8) 98/8 = 12 + 2/7 X4 = 12 r4 = 2/7 = 0.285

Page 37: Unidad 2 Numeros Aleatorios

Es importante mencionar que el número generado en X8 = 6 es exactamente igual a la semilla X0, y si continuáramos generando más números, éstos se repetirían.

Page 38: Unidad 2 Numeros Aleatorios

ii) Algoritmo congruencial multiplicativo El algoritmo congruencial multiplicativo surge del algoritmo congruencial lineal cuando c=0. Entonces la ecuación recursiva es: Xi+1 = (aXi) mod(m) i = 0, 1, 2, 3, … , n En comparación con el algoritmo congruencial lineal, la ventaja del algoritmo multiplicativo es que implica una operación menos a realizar. Los parámetros de arranque de este algoritmo son X0, a, y m, todos los cuales deben ser enteros y mayores que cero. Para transformar los números Xi en el intervalo (0,1) se usa la ecuación ri = Xi /(m-1).

Page 39: Unidad 2 Numeros Aleatorios

De acurdo con Banks, Carson, Nelson y Nicol, las condiciones que deben cumplir los parámetros para que el algoritmo congruencial multiplicativo alcance su máximo periodo son: m = 2 expo g a = 3 + 8k o a = 5 + 8k k = 0, 1, 2,3, … X0 debe ser un número impar g debe ser entero A partir de estas condiciones se logra un periodo máximo N = k/4 = 2 exp (g-2)

Page 40: Unidad 2 Numeros Aleatorios

Ejemplo 6 Generar números entre 0 y 1 con los siguientes parámetros: X0 = 17, k = 2 y g = 5, hasta encontrar el periodo o ciclo de vida.

X7 = (21 * 25)mod(32) 525/31 = 16 + 13/31 X7 = 16 r7 = 13/31 = 0.4193

X8 = (21 * 13)mod(32) 273/31 = 8 + 17/31 X8 = 8 r8 = 17/32 = 0.5483

X5 = (21 * 1)mod(32) 21/31 = 0 + 21/31 X5 = 0 r5 = 21/31 = 0.6774

X6 = (21 * 21)mod(32) 441/31 = 13 + 25/31 X6 = 13 r6 = 25/31 = 0.8064

X3 = (21 * 9)mod(32) 189/31 = 5 + 29/31 X3 = 5 r3 = 29/31 = 0.9354

X4 = (21 * 29)mod(32) 609/31 = 19 + 1/31 X4 = 19 r4 = 1/31 = 0.3225

X1 = (21*17) mod(32) 357/31 = 11 + 5/31 X1 = 11 r1 = 5/31 = 0.1612

X2 = (21 * 5 )mod(32) 105/31 = 3 + 9/31 X2 = 3 r2 = 9/31 = 0.2903

Gnerador División real No. Aleatorio Xi No. Aleatorio ri

X0 = 17

Observación: Toda vez que la semilla X0 se repite, volverá a generarse los mismos números. Por lo tanto, el periodo de vida es n=8, el cual corresponde a N =m/4 = 32/4=8

Page 41: Unidad 2 Numeros Aleatorios

iii) Algoritmo Congruencial Aditivo Este algoritmo requiere una secuencia previa de n números enteros X1, X2, X3, X4, . . . , Xn para generar una nueva secuencia de numeros enteros que empieza en Xn+1, Xn+2, Xn+3, Xn+4 , . . . , Su ecuación recursiva es: Xi = (Xi-1 + Xi-n) mod(m) i = n+1, n+2, n+3, … ,N Los números ri pueden ser generados mediante la ecuación ri = Xi/(m-1)

Page 42: Unidad 2 Numeros Aleatorios

iii) Algoritmo Congruencial Aditivo Ejemplo 7 Generar 7 números pseudo aleatorios entre cero y uno a partir de la siguiente secuencia de números enteros: 65, 89, 98, 03, 69; m = 100 Sean X1=65, X2=89, X3=98, X4=03, X5=69. Para generar r1, r2, r3, r4, r5, r6 y r7 antes es necesario generar X6, X7, X8, X9, X10, X11, X12.

X6 = (X5 + X1) mod(100) X6=(69+65)mod100 34 r1 = 34/99 = 0.3434

X7 = (X6 + X2) mod(100) X7=(34+89)mod100 23 r2 = 23/99 = 0.2323

X8 = (X7 + X3) mod(100) X8=(23+98)mod100 21 r3 = 21/99 = 0.2121

X9 = (X8 + X4) mod(100) X9=(21+03)mod100 24 r4 = 24/99 = 0.2424

Gnerador División real No. Aleatorio Xi No. Aleatorio ri

X12 = (X11 + X7) mod(100) X12=(27+23)mod100 50 r7 = 50/99 = 0.5050

X10 = (X9 + X5) mod(100) X10=(24+69)mod100 93 r5 = 93/99 = 0.9393

X11 = (X10 + X6) mod(100) X11=(93+34)mod100 27 r6 = 27/99 = 0.2727

Page 43: Unidad 2 Numeros Aleatorios

B) Algoritmos Congruenciales no Lineales i) Algoritmo congruencial cuadrático Este algoritmo tiene la siguiente ecuación

recursiva: Xi+1 = (aXi ^2 + bXi +c) mod(m) i = 0, 1, 2, 3, … ,N En este caso, los números ri pueden ser generados con la

ecuación ri=Xi/(m-1). De acuerdo con L’Ecuyer, las condiciones que deben cumplir los parámetros m, a, b, y c para alcanzar un periodo máximo de N= m son:

m = 2^g g debe ser entero a debe ser un número par c debe ser un número impar (b-1) mod4 = 1 De esta manera se logra un periodo de vida máximo N= m

Page 44: Unidad 2 Numeros Aleatorios

Ejemplo 8. Generar, a partir del algoritmo congruencial cuadrático, suficientes números enteros hasta alcanzar el periodo de vida, considerando los parámetros X0 = 13, m = 8, a = 26, b = 27 y c = 27.

X8 = [(26*6^2)+(27*6)+27] mod(8) 5 r8 = 5/7 = 0.7143

X9 = [(26*5^2)+(27*5)+27] mod(8) 4 r9 = 4/7 = 0.5714

X6 = [(26*0^2)+(27*0)+27] mod(8) 3 r6 = 3/7 = 0.4286

X7 = [(26*3^2)+(27*3)+27] mod(8) 6 r7 = 6/7 = 0.8571

X4 = [(26*2^2)+(27*2)+27] mod(8) 1 r4 = 1/7 = 0.1429

X5 = [(26*1^2)+(27*1)+27] mod(8) 0 r5 = 0/7 = 0.0000

X2 = [(26*4^2)+(27*4)+27] mod(8) 7 r2 = 7/7 = 1.000

X3 = [(26*7^2)+(27*7)+27] mod(8) 2 r3 = 2/7 = 0.2857

Gnerador División real No. Aleatorio ri

X1 = [(26*13^2)+(27*13)+27] mod(8) 4 r1 = 4/7 = 0.5714

Page 45: Unidad 2 Numeros Aleatorios

B) Algoritmos Congruenciales no Lineales ii) Algoritmo de Blum, Blum y Shub Si el algoritmo congruencial cuadrático a=1, b=0 y

c=0, entonces se construye una nueva ecuación recursiva::

Xi+1 = (Xi ^2) mod(m) i = 0, 1, 2, 3, … ,N La ecuación fue propuesta por Blum, Blum y Shub como un

nuevo método para generar números que no tienen un comportamiento predecible.

Actividad en clase: Genere ud. Suficientes números aleatorios

aplicando el algoritmo lineal cuadrático hasta alcanzar el periodo de vida, considerando X0 su día de nacimiento y m su mes de cumpleaños.

Page 46: Unidad 2 Numeros Aleatorios

Propidades de los números pseudoaleatorios entre 0 y 1

Ya hablamos de cómo generar números aleatorios usando diferentes métodos. Sin embargo, debemos cuestionarnos lo siguiente: ¿De qué manera se puede garantizar que tales números son realmente aleatorios entre 0 y 1?, ¿Cuáles son las características que lo identifican?, ¿Cuáles son sus parámetros? La respuesta a estas preguntas es muy importante, dado que los números aleatorios serán utilizados en la simulación para generar los valores de cualquier variable aleatoria. En gran medida, conocer las propiedades que deben tener estos números aleatorios garantiza una buena simulación, por ello, se enumeran a continuación.

Page 47: Unidad 2 Numeros Aleatorios

Propidades de los números pseudoaleatorios entre 0 y 1

1. Media de los aleatorios entre 0 y 1. En vista de que estos números deben tener la mismas probabilidades de presentarse, es preciso que su comportamiento muestre una distribución de probabilidad uniforme continua, con límite inferior cero y límite superior uno. La función de densidad de una distribución uniforme es la siguiente:

en este caso a=0 y b=1

Gráficamente se vería de la siguiente manera:

f(x)

x

Page 48: Unidad 2 Numeros Aleatorios

Propidades de los números pseudoaleatorios entre 0 y 1

Para obtener la media de la distribución multiplicamos la función de densidad por x, y la integramos en toda el rango de la misma distribución de la siguiente manera: Sustituyendo los valores de a y b Por lo tanto, el valore esperado (es decir, la media de los números aleatorios entre 0 y 1 es µ = 0.5

Page 49: Unidad 2 Numeros Aleatorios

Propidades de los números pseudoaleatorios entre 0 y 1

2. Varianza de los números aleatorios. Partiendo de la misma distribución uniforme continua obtenemos la varianza de la distribución por medio de la ecuación:

Lo que nos da de : Por lo tanto Dado estos resultados podemos decir que los números

aleatorios entre 0 y 1 deben tener y

Page 50: Unidad 2 Numeros Aleatorios

Propidades de los números pseudoaleatorios entre 0 y 1

3. Independencia. Ésta es una propiedad muy importante, e implica que los números aleatorios no deben tener correlación entre si; es decir, deben ser independientes, de manera que puedan dispersarse uniformemente dentro de todo el espectro de valores posibles. Figura (a) Valores uniformemente Figura (b) Valores correlacionados

dispersos

Page 51: Unidad 2 Numeros Aleatorios

Propidades de los números pseudoaleatorios entre 0 y 1

0.5435 0.1138 0.3983 0.8623 0.8748 0.9661 0.5353 0.1175 0.5172 0.3731

0.5301 0.0823 0.9470 0.3970 0.8992 0.4609 0.1567 0.5896 0.6197 0.3560

0.9571 0.2676 0.0009 0.9726 0.1193 0.6392 0.3576 0.9131 0.5340 0.2758

0.1431 0.5595 0.4549 0.1316 0.6603 0.7702 0.9671 0.5010 0.7403 0.0919

0.1272 0.3215 0.3845 0.9109 0.4069 0.9413 0.6650 0.4604 0.2392 0.0521

0.0931 0.0674 0.7431 0.0870 0.4224 0.8649 0.6708 0.6637 0.3290 0.7647

0.4630 0.8818 0.7802 0.3244 0.8926 0.3135 0.5372 0.6596 0.5003 0.3348

0.9099 0.3075 0.6776 0.5239 0.5221 0.4691 0.6373 0.6851 0.6584 0.4458

0.0632 0.9491 0.4001 0.3519 0.8764 0.9973 0.4928 0.2997 0.8169 0.1498

0.2953 0.5993 0.1152 0.4922 0.0982 0.6123 0.9027 0.4616 0.0606 0.5056

0.4125 0.4150 0.4902 0.5054 0.5772 0.7035 0.5923 0.5351 0.5016 0.3350 0.5068

Promedio 0.5068

Varianza 0.07906