You are on page 1of 24

NUMEROS ALEATORIOS

La idea es hallar un generador que sea fcil


de implementar en la computadora, que
sea rpido y que no ocupe mucho espacio
memoria, estos requerimientos pueden ser
satisfechos con una funcin matemtica
sencilla que genere una sucesin de
nmeros que satisfagan las condiciones que
definen una conjunto de nmeros
aleatorios.
Generadores no congruenciales
Mtodo del cuadrado medio
Fue propuesto inicialmente por Von Newman y
Metrpolis en el ao 1946.

Para generar el siguiente nmero pseudo-


aleatorio, se toman los n dgitos centrales del
cuadrado del nmero anterior de n dgitos.

Se requiere una semilla.


Mtodo del cuadrado medio
n R(n) R(n)2 M.R(n)2 Val 1 Val 2
0 154 23,716 371 371 0
1 371 137,641 3,764 376 764
2 376 141,376 4,137 413 137
3 413 170,569 7,056 705 056
4 705 497,025 9,702 970 702
5 970 940,900 4,090 409 090
6 409 167,281 6,728 672 728
7 672 451,584 5,158 515 158
8 515 265,225 6,522 652 522
9 652 425,104 2,510 251 510
10 251 63,001 300 300 0
11 300 90,000 0 0 0
12 0 0 0 0 0
Anlisis
El problema con este mtodo es que tiende a degenerar
rpidamente. Dependiendo del valor inicial el mtodo
puede degenerar al cabo de 20 trminos.
Por ejemplo, supngase que se quiere generar una serie
de nmeros pseudo-aleatorios de cuatro dgitos y se
tiene como i-simo termino generado es 3500, luego se
tendr:
n R(n) R(n)2 M.R(n)2 Random 1 Random 2
i 3500 12250000 2500 0 2500

i+1 2500 6250000 2500 0 2500

Se puede observar que hemos llegado a una condicin


degenerada. Por la tanto, es necesario verificar siempre la
serie de nmeros y protegerse contra este fenmeno
Mtodo del Producto Medio
Este mtodo es muy similar al anterior ya que se
tomar como nmero aleatorio siguiente de la
serie, a los n dgitos centrales del resultado de
una multiplicacin previa.

Se requiere dos semillas.


Mtodo del Producto Medio
n R(n) R(n+1) R(n)2 M.R(n)2 Val 1 Val 2
0 151 155 23,405 340 340 0
1 155 340 52,700 270 270 0
2 340 270 91,800 180 180 0
3 270 180 48,600 860 860 0
4 180 860 154,800 5,480 548 480
5 860 548 471,280 7,128 712 128
6 548 712 390,176 9,017 901 017
7 712 901 641,512 4,151 415 151
8 901 415 373,915 7,391 739 391
9 415 739 306,685 668 668 0
10 739 668 493,652 9,365 936 365
11 668 936 625,248 2,524 252 524
12 936 252 235,872 3,587 358 587
13 252 358 90,216 21 21 0
14 358 21 7,518 51 51 0
15 21 51 1,071 7 7 0
16 51 7 357 5 5 0
17 7 5 35 0 0 0
18 5 0 0 0 0 0
Anlisis
Una modificacin para este mtodo consiste en utilizar
un multiplicador constante, en lugar de dos nmeros
aleatorios como se muestra a continuacin:
Rn+1 = K * Rn

Estos mtodos son similares al cuadrado medio.


Sin embargo los dos tienen periodos ms extensos y los
nmeros parecen estar distribuidos uniformemente.
Este mtodo tiende a degenerar a un valor constante.
Tanto el mtodo de cuadrados medios como el de
producto medio tienen un periodo corto para la cantidad
de nmeros aleatorios que vamos a necesitaremos
generar en cada uno de nuestros Modelos.
Generadores Congruenciales

Congruencial Lineal (Mixto).


Congruencial Multiplicativo.
Mtodo Congruencial Lineal (MCL)
Los generadores congruenciales lineales generan
una serie de nmeros pseudo - aleatorios de tal
forma que se puede generar el siguiente a partir del
ultimo nmero derivado, es decir, que el nmero
Xn+1 es generado a partir de Xn.

La relacin de recurrencia para el mtodo


congruencial mixto es:

Xn+1 = (aXn + c) mod m


Donde:
X0 = semilla (X0 >0)
a = multiplicador (a >0)
c = constante aditiva (c >0)
m = mdulo (m >X0, m >a y m>c)
Mtodo Congruencial Lineal (MCL)
Si se quiere obtener nmeros Uniformes (0,1) se
normaliza el resultado:

Un = Xn / m

En el MCL, si se repite un nmero ya se repite toda


la secuencia.

Ventajas:
1. utiliza poca memoria y es muy rpido.
2. fcil de volver a generar la misma secuencia, guardando
un solo nmero, (se alcanza con partir desde la misma
semilla: X0).
Ejemplo
a c m
1 7 13
n X(n) a*X(n)+c [a*X(n)+c] mod m
0 7 14 1
1 1 8 8
2 8 15 2
3 2 9 9
4 9 16 3
5 3 10 10
6 10 17 4
7 4 11 11
8 11 18 5
9 5 12 12
10 12 19 6
11 6 13 0
12 0 7 7
13 7 14 1
14 1 8 8
15 8 15 2
Anlisis
Si no se escogen los valores adecuados de los
parmetros el perodo del generador de nmeros
pseudo aleatorios, ser menor que m.

En la Tabla A se muestra los valores obtenidos para un


generador con parmetros: a = 7, c = 9, X0 = 5 y m = 11.
Como puede apreciarse en la tabla el perodo del
generador es 10 que es menor que el mdulo que es
11.

Si bien este caso no es crtico si lo es el que se presenta


en la Tabla B donde los parmetros toman los valores
de a = X0 = c = 7 y m=10 cuyo perodo es de 4, que es
un caso muy critico que nos puede llevar a resultados
no deseables y poco confiables
Tabla A
a c m
7 9 11
n X(n) a*X(n)+c [a*X(n)+c] mod m
0 5 44 0
1 0 9 9
2 9 72 6
3 6 51 7
4 7 58 3
5 3 30 8
6 8 65 10
7 10 79 2
8 2 23 1
9 1 16 5
10 5 44 0
Tabla B
a c m
7 7 10
n X(n) a*X(n)+c [a*X(n)+c] mod m
0 7 56 6
1 6 49 9
2 9 70 0
3 0 7 7
4 7 56 6
5 6 49 9
6 9 70 0
Seleccin de m, a, c, X0
a) Seleccin de mdulo (m). Existen dos opciones que
son las siguientes:

a.1) Escoger al azar el mdulo m.

a.2) Tomar m de tal manera que sea el nmero primo


ms grande posible y adems que sea menor que pd-
1, donde p es la base del sistema que se esta usando
y d es el nmero de bits que tiene una palabra de
computadora en el sistema que se esta usando.

Por ejemplo una computadora XT que trabaja en el


sistema binario entonces se tiene que p = 2 y d = 16.
Seleccin de m, a, c, X0
b) Seleccin de a.
El valor de a debe ser un nmero entero impar,
que no deber ser divisible por 3 5. Pero
adems, para asegurarnos que el generador
tenga perodo completo, el valor que se tome
para a deber escogerse segn el siguiente
criterio:

(a-1) mod 4 = 0 si 4 es un factor de m.


(a-1) mod b = 0 si b es un factor primo de m.

Generalmente se toma a igual a 2k + 1 cuando se


trabaja en el sistema binario. En ambos casos el
valor que se asigne a k deber ser mayor o igual
que 2.
Seleccin de m, a, c, X0
c) Seleccin de c.
Este parmetro puede tomar cualquier valor.
Pero para asegurarnos de tener buenos
resultados se deber seleccionar segn la
siguiente regla:

c mod 8 = 5

En consecuencia c deber tomar un valor


entero impar y relativamente primo a m.
Seleccin de m, a, c, X0

d) Seleccin de X0
Se tiene que para el generador congruencial el
valor que tome X0 es irrelevante y tiene poca o
ninguna influencia sobre las propiedades
estadsticas de las series de nmeros pseudo -
aleatorios que se generen.
Mtodo Congruencial Multiplicativo
En forma semejante al mtodo anterior el
generador congruencial multiplicativo genera el
prximo nmero pseudo - aleatorio a partir del
ltimo nmero calculado, siguiendo la siguiente
relacin de recurrencia:

Xn+1 = aXnmod m

Para este generador tambin se deben escoger


adecuadamente los valores de a, X0, y m, con la
finalidad de que se pueda asegurar un perodo
mximo para la series pseudo - aleatorias generadas
por este mtodo. A continuacin se dan las reglas
que indican como se deben escoger estos valores.
Seleccin de m, a, X0
Para trabajar en el sistema binario los valores de los
parmetros debern escogerse siguiendo las siguientes
reglas:
El valor de X0 debe ser un nmero entero impar y
relativamente primo a m.
El valor de a debe ser obtenido a partir de la siguiente
expresin:
a = 8t 3
Donde t es cualquier entero.
El valor de m puede ser 2d .

Si m = 2d el perodo del generador es 2d-2 m/4.


A modo de ejemplo se obtendremos el perodo de un
generador cuyos parmetros son: a = 5, X0 = 5 y m =
32. En la siguiente tabla se muestra los elementos que
componen la serie generada cuyo perodo es de 8
Tabla C
a m
5 32
[a*X(n)] mod m
n X(n) a*X(n)
0 5 25 25
1 25 125 29
2 29 145 17
3 17 85 21
4 21 105 9
5 9 45 13
6 13 65 1
7 1 5 5
8 5 25 25
9 25 125 29
10 29 145 17
Tabla D
Parmetros
Caso a b m xo
1 6 0 13 1
2 7 0 13 10
3 5 0 13 5
4 7 0 11 5
5 6 0 11 3

Caso Salidas
1 6 10 8 9 2 12 7 3 5 4 11 1 6 10
2 5 9 11 12 6 3 8 4 2 1 7 10 5 9
3 12 8 1 5 12 8 1 5 12 8 1 5 12 8
4 2 3 10 4 6 9 8 1 7 5 2 3 10 4
5 7 9 10 5 8 4 2 1 6 3 7 9 10 4