Está en la página 1de 117

SIMULACIÓN

UNIDAD 2. NÚMEROS ALEATORIOS


Y PSEUDOALEATORIOS

MTI. MA. ANTONIETA HDZ.


Objetivo de la Unidad 2

Conocerá las características, formas


de generación de números
aleatorios y pseudoaleatorios.

Investigará y aplicará las pruebas


de aleatoriedad a un conjunto de
números generados.

MTI. MA. ANTONIETA HDZ.


Los números
pseudo aleatorios
Los números pseudo
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 aleatoriedad se extrapole al
modelo de simulación que se está construyendo.

MTI. MA. ANTONIETA HDZ.


…Los números pseudo
aleatorios
Así, una de las primeras
tareas que es necesario • por desgracia, precisar lo anterior con
llevar a cabo consiste en absoluta certidumbre resulta muy
determinar si los números complicado, ya que para ello tendríamos
que utilizaremos para que generar un número infinito de valores
"correr" o ejecutar la que nos permitiera comprobar la
simulación son realmente inexistencia de correlaciones entre ellos.
aleatorios o no;

• volviendo impráctico el uso de la


Esto sería muy costoso y
tardado,
simulación aun con las computadoras más
avanzadas.

MTI. MA. ANTONIETA HDZ.


…Los números pseudo
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.

MTI. MA. ANTONIETA HDZ.


…Los números pseudo
aleatorios

En esta unidad discutiremos algunos de los métodos de generación


de números pseudo aleatorios, y precisaremos qué características
deben tener para emplearlos como una fuente confiable de
variabilidad dentro de los modelos.

Asimismo se mostrarán algunas de las pruebas más


comunes para comprobar qué tan aleatorios son los
números obtenidos con dichos generadores.

MTI. MA. ANTONIETA HDZ.


Generación de números
pseudo aleatorios
Generación de números
pseudo aleatorios
 Para realizar 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 r¡ ={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 creó la secuencia r¡.

MTI. MA. ANTONIETA HDZ.


…Generación de números
pseudo aleatorios
Los F¡ 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 pseudo aleatorios, generados
por medio de algoritmos determinísticos que
requieren parámetros de arranque.

MTI. MA. ANTONIETA HDZ.


…Generación de números
pseudoaleatorios

Para simular el comportamiento de una o más variables


aleatorias 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 = 231 = 2 1 47 483 648.

De acuerdo con L'Ecuyer una secuencia de ri con periodo de


vida de n = 231 es relativamente pequeña; de hecho, incluso
una secuencia de r¡ que contenga un ciclo de vida de n = 264
se considera pequeña.
En la actualidad contamos ya con generadores y procesadores
capaces de construir una secuencia de r¡ con periodo de vida de
n = 2200.

MTI. MA. ANTONIETA HDZ.


…Generación de números
pseudoaleatorios

¿por qué debe


interesarnos construir A continuación
una secuencia de ilustraremos la
números r¡ razón mediante
suficientemente un ejemplo.
grande?

MTI. MA. ANTONIETA HDZ.


Ejemplo de Aleatoriedad

Sabes que es el módulo aritmético

el residuo aritmético

MTI. MA. ANTONIETA HDZ.


EL MODULO ARITMÉTICO
cociente
428/2= 214
2 14
428 2= 214
dividendo

2 428
divisor 028
08
428 div 2= 214 0 Residuo o

428 mod 2= 0
modulo

MTI. MA. ANTONIETA HDZ.


Ejemplos de generar números
aleatorios (pseudo)
 Para obtener números en un rango de 0 a 9, es decir
el divisor sería 10.
 23 mod 10 = 3
 45 mod 10 = 5
 69 mod 10 = 9
 71 mod 10 = 1
 37 mod 10 = 7
 84 mod 10 = 4
 56 mod 10 = 6
 92 mod 10 = 2
 85 mod 10 = 5
 31 mod 10 = 1
MTI. MA. ANTONIETA HDZ.
Es importante…
contar con un conjunto de r¡ suficientemente grande, en esta
sección se presentan diferentes algoritmos Determinísticos para
obtenerlo.

Por otra parte, es conveniente señalar que el conjunto de r¡


debe ser sometido a una variedad de pruebas para verificar si
los números que lo conforman son realmente independientes y
uniformes.

Una vez generado el conjunto r¡ mediante un algoritmo


determinístico, es necesario someterlo a las pruebas
estadísticas: si las supera, podrá utilizarse en la simulación; de
lo contrario, simplemente deberemos desecharlo.

MTI. MA. ANTONIETA HDZ.


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

1, 0<r<=1
f(r)
0, en cualquier otro valor

MTI. MA. ANTONIETA HDZ.


Para generar el conjunto

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

MTI. MA. ANTONIETA HDZ.


…Para generar el conjunto

Lo que resulta difícil es y que además pase sin


diseñar un algoritmo problema las pruebas de
que genere un conjunto uniformidad e
de r. con periodo de independencia, lo cual
vida suficientemente implica evitar problemas
como los siguientes:
grande (N),

MTI. MA. ANTONIETA HDZ.


Algunos problemas:
Que los números del conjunto r¡ no estén
uniformemente distribuidos, es decir, que haya
demasiados r¡ en un subintervalo y en otro muy
pocos o ninguno.

Que los números r¡ generados sean discretos en


lugar de continuos.

• Que la media del conjunto sea muy alta o muy


baja, es decir, que esté por arriba o por debajo de
1/2.

• Que la varianza del conjunto sea muy alta o muy


baja, es decir, que se localice por arriba o por
debajo del 1/2

MTI. MA. ANTONIETA HDZ.


Un problema más:

En ocasiones se presentan
también anomalías como
números r¡ seguidos por arriba o
por debajo de la media;

secuencia de r¡ por arriba de la


media, seguida de una
secuencia por debajo de la
media, y viceversa,

o varios r¡ seguidos en forma


ascendente o descendente.

MTI. MA. ANTONIETA HDZ.


Algoritmos determinísticos
para generar los r¡
Algoritmos determinísticos
• Algoritmos no
A continuación congruenciales y
se presentan • Algoritmos
diferentes congruenciales.
algoritmos
determinísticos
para generar los
r¡, los cuales se
clasifican en

MTI. MA. ANTONIETA HDZ.


…Algoritmos determinísticos

cuadrados
medios

Los algoritmos
no
congruenciales
que
analizaremos
son

multiplicador productos
constante. medios

MTI. MA. ANTONIETA HDZ.


…Algoritmos determinísticos
Entre los algoritmos congruenciales se encuentran
los algoritmos congruenciales lineales y los no
lineales.

Abordaremos los y los algoritmos


algoritmos congruenciales no
congruenciales lineales lineales

tales como algoritmo como el algoritmo de


congruencial lineal, Blum, Blum y Shub, y el
multiplicativo y aditivo congruencial cuadrático.

MTI. MA. ANTONIETA HDZ.


ALGORITMOS NO
CONGRUENCIALES
Algoritmo de
cuadrados medios
Algoritmo de cuadrados
medios
Este algoritmo no congruencial fue propuesto en la década de los cuarenta del
siglo XX por Von Neumann y Metrópolis.

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 primer número r¡ se determina simplemente anteponiendo el "0.“ a esos
dígitos.

Para obtener el segundo r¡ 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 r¡.

Este método se repite hasta obtener n números ri

MTI. MA. ANTONIETA HDZ.


A continuación se presentan con más detalle los
pasos para generar números con el algoritmo de
cuadrados medios.
1. Seleccionar una semilla (X0) con D dígitos (D > 3).

2. Sea X0 = resultado de elevar X0 al cuadrado;


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

3. Sea Y i = resultado de elevar X¡ al cuadrado;


sea Xi+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 r i 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.
MTI. MA. ANTONIETA HDZ.
Para ilustrar la mecánica del
algoritmo de cuadrados medios
se presenta el siguiente
ejemplo.
Ejemplo Cuadrados medios

Generar los primeros 5 números r¡ a partir de una


semilla X0= 5 735, de donde se puede observar
que D = 4 dígitos. (cumple con D>3 dígitos)

MTI. MA. ANTONIETA HDZ.


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


Ejemplo Cuadrados medios

Generar los primeros 5 números r¡ a partir de una semilla


X0= 445, de donde se puede observar que D = 3 dígitos.
Por lo que es necesario colocar un “0” al principio para
que D>3 dígitos (mínimo D=4)

MTI. MA. ANTONIETA HDZ.


Y0=(0445)2 = 198025 x1 = 9802 r1= 0.9802

Y1=(9802)2 = 79 245 604 x2 = 2456 r2= 0.2456

Y2=(2 456)2 = 96079204 x3 = 0792 r3= 0.0792

Y3=(0792)2 = 627264 x4 = 2726 r4= 0.2726

Y4=(2726)2 = 07431076 x5 = 4310 r5= 0. 4310


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=1 000,
entonces X1 = 0000;
r¡=0.0000
y se dice que el algoritmo se degenera con la semilla de
X0 = 1 000.

MTI. MA. ANTONIETA HDZ.


Algoritmo de
productos medios
Algoritmo de productos
medios
La mecánica de generación de números pseudo 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 r¡= 0.D
dígitos.

MTI. MA. ANTONIETA HDZ.


Algoritmo de productos
medios
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 ri.

Entonces se elimina la segunda semilla y se


multiplican el primer número de D dígitos por el
segundo número de D dígitos; del producto se
obtiene el tercer número r¡.

Siempre se irá eliminando el número más


antiguo, y el procedimiento se repetirá hasta
generar los n números pseudo aleatorios.

MTI. MA. ANTONIETA HDZ.


A continuación se presentan
con más detalle los pasos del
método para generar números
con el algoritmo de producto
medios.

MTI. MA. ANTONIETA HDZ.


Algoritmo de productos medios
1. Seleccionar una semilla (X0) con D dígitos (D > 3).
2. Seleccionar una semilla (Xi con D dígitos
(D > 3).
3. Sea Y0 = X0 * X1; sea X2 = los D dígitos del centro,
y sea r i = 0.D dígitos del centro.
4. Sea Y1 = Xi * Xi+1; sea X2 = los D dígitos del centro,
y sea ri+1 = 0.D dígitos del centro para toda
¡=1,2,3,…n;
5. Repetir el paso 4 hasta obtener los n números r¡
deseados.
Nota: Si no es posible obtener los D dígitos del centro del número Y¡,
agregue ceros a la izquierda del número Y¡.
MTI. MA. ANTONIETA HDZ.
Ejemplo de productos medios
Generar los primeros 5 números r¡ a partir
de las semillas
X0 = 5 015 y
X1 = 5 734;
observe que ambas semillas tienen
D = 4 dígitos.

MTI. MA. ANTONIETA HDZ.


ejemplo

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


Y1= (5 734) (7 560) = 43 349 040 X3 = 3 490 r2= 0.3490
Y2= (7 560) (3 490) = 26 384 400 X4 = 3 844 r3= 0.3844
Y3 = (3 490) (3 844) =13 415 560 X5 = 4 155 r4= 0.4155
Y4 = (3 844) (4155) = 15 971 820 X6 = 9718 r5= 0.9718

MTI. MA. ANTONIETA HDZ.


Algoritmo de multiplicador
constante
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.

MTI. MA. ANTONIETA HDZ.


Algoritmo multiplicador constante
1. Seleccionar una semilla (X0) con D dígitos (D > 3).
2. Seleccionar una constante (a) con D dígitos (D>3).
3. Sea Y0 =a*X0 ; sea X1 = los D dígitos del centro, y
sea r¡ = 0.D dígitos del centro.
4. Sea Y¡ = a*X¡ ; sea Xi+1 = los D dígitos del centro, y
sea r¡ +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 r¡ .
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
MTI. MA. ANTONIETA HDZ.
Ejemplo multiplicador
constante
Generar los primeros 5 números r¡ a partir
de la semilla
X0 = 9 803 y
con la constante a = 6 965.
Observe que tanto la semilla como la
constante tienen D = 4 dígitos.

MTI. MA. ANTONIETA HDZ.


ejemplo

Y0= (6 965) (9 803) = 68 277 895 X2 = 2 778 r1= 0. 2 778


Y1= (6 965) (2 778) = 19 348 770 X3 = 3 487 r2= 0. 3 487
Y2= (6 965) (3 487) = 24 286 955 X4 = 2 869 r3= 0. 2 869
Y3 = (6 965) (2 869) = 19 982 585 X5 =9825 r4= 0.9825
Y4 = (6 965) (9 825) = 68 431 125 X6 =4311 r5= 0.4311

MTI. MA. ANTONIETA HDZ.


Algoritmos Congruenciales
lineales
Algoritmos congruenciales

El método congruente es un procedimiento


aritmético que sirve para generar una
secuencia finita de números uniformemente
distribuidos por medio de tres algoritmos.

MTI. MA. ANTONIETA HDZ.


MÉTODO CONGRUENCIAL

Se pueden usar varias relaciones recursivas y se han


desarrollado numerosos métodos congruentes.

Cada uno de éstos utiliza la relación congruente


fundamental, y los tres más populares son los métodos:

Congruencial Congruencial Mixto Congruencial


Multiplicativo (Algoritmo lineal) Aditivo

MTI. MA. ANTONIETA HDZ.


Congruencial Mixto
o Algoritmo lineal
Algoritmo Lineal
 Este algoritmo congruencial fue
propuesto por D. H. Lehmer en 1951.
Según Law y Kel-ton,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:

MTI. MA. ANTONIETA HDZ.


…Algoritmo lineal

Xi+1 = (aXi + c)mod(m)

i=0,1,2,3,n

MTI. MA. ANTONIETA HDZ.


…Algoritmo lineal

donde X0 es la semilla, a es la constante multiplicativa, c es una


constante aditiva y m es el módulo; X0 >0, a>0, c>0 y m>0
deben ser números enteros.

La operación "mod m" significa multiplicar Xi por a, sumar c y


dividir el resultado entre m para obtener el residuo Xi+1.

Es importante señalar que la ecuación recursiva del algoritmo


congruencial lineal genera una secuencia de números enteros
S = {0,1,2,3, ...,m - 1},y que para obtener números pseudo
aleatorios en el intervalo (0,1) se requiere la siguiente ecuación:

MTI. MA. ANTONIETA HDZ.


…Algoritmo lineal

i-1,2,3,…,n

MTI. MA. ANTONIETA HDZ.


…Algoritmo lineal
Analice el ejemplo siguiente para comprender
mejor la mecánica del algoritmo congruencial
lineal.
Ejemplo
Generar 4 números entre 0 y 1 con los
siguientes parámetros:
Xo = 37,
a = 19,
c = 33 y
m = 100.
MTI. MA. ANTONIETA HDZ.
…Algoritmo lineal

Xi+1 = (aXi + c)mod(m); ri=xi/m-1

 X1= (19*37 + 33) mod 100 = 36 r1= 36/99 = 0.3636


 X2 = (19*36+ 33) mod 100= 17 r2 = 17/99 = 0.1717
 X3 = (19*17 + 33) mod 100 = 56 r3 = 56/99 = 0.5656
 X4 = (19*56 + 33) mod 100 = 97 r4 = 97/99 = 0.9797

MTI. MA. ANTONIETA HDZ.


Condiciones Algoritmo lineal

En el ejemplo anterior se colocaron de manera


arbitraria cada uno de los parámetros requeridos Xo,
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:

MTI. MA. ANTONIETA HDZ.


Condiciones Banks, Carson,
Nelson y Nicol
m =2g
 a = 1 + 4k
 k debe ser entero
c relativamente primo a m
g debe ser entero

MTI. MA. ANTONIETA HDZ.


…Condiciones Banks, Carson,
Nelson y Nicol
Bajo estas condiciones se obtiene un
periodo de vida máximo: N = m = 2g.

Veamos un ejemplo más, tomando en


cuenta lo anterior.

MTI. MA. ANTONIETA HDZ.


Ejemplo
Generar suficientes números entre 0 y 1 con los parámetros
Xo= 6, k = 3, g = 3 y c = 7,

hasta encontrar el periodo de vida máximo (N).

Como podemos ver, si se cumplen las condiciones que


Banks, Carson, Nelson y Nicol

sugieren, se logrará el periodo máximo N= m = 8.

A continuación se presenta el desarrollo de la generación de


los números r¡.
MTI. MA. ANTONIETA HDZ.
observación
Es importante mencionar que el número generado en
X8 = 6 es exactamente igual a la semilla Xo

y si continuáramos generando más números, éstos se


repetirían.

Además sabemos que el algoritmo congruencial lineal


genera una secuencia de números enteros S = {0,1,2,3,...,
m - 1}.

Observe que en este caso se genera la secuencia S =


{0,1,2,3,4,5,6,7}.
MTI. MA. ANTONIETA HDZ.
Ejemplo
Consideremos nuevamente el ejemplo anterior, pero tratemos
de violar de manera arbitraria alguna de las condiciones.

Supongamos que a = 12; se sabe que a no es el resultado de


1 + 4k ,donde k es un entero.

Veamos el comportamiento del algoritmo congruencial lineal


ante tal cambio.

MTI. MA. ANTONIETA HDZ.


Cumplir condiciones

Como conclusión tenemos


El periodo de vida en este que si no se cumple alguna
caso es N = 3, de manera de las condiciones, el periodo
que, como puede ver, el de vida máximo N = m no se
periodo de vida máximo no se garantiza, por lo que el
logra. periodo de vida será menor
que m.

MTI. MA. ANTONIETA HDZ.


Algoritmo congruencial
multiplicativo
Método congruente multiplicativo
 La relación básica del método multiplicativo
congruente es la siguiente:

Xi+1 = aXi(mod m)
 Donde a y m son números no negativos.
 Esta expresión nos indica que tomemos el
último número aleatorio Xi, lo multiplicamos
por la constante a y tomar el módulo
resultante m.
MTI. MA. ANTONIETA HDZ.
… Método multiplicativo
congruente
 Por consiguiente, para generar una
secuencia de números X, necesitamos
un número inicial o de origen (X0), un
multiplicador (a) y un módulo (m).
 En el caso de cualquier generador de
números pseudoaleatorios, únicamente
puede generarse un número finito de
enteros diferentes, después de lo cual la
secuencia se repite así misma.
MTI. MA. ANTONIETA HDZ.
… Método multiplicativo
congruente
El periodo o longitud de la secuencia (P) depende
de la elección del valor inicial (semilla) y del
multiplicador.

La selección de a, X0, m se ve por consiguiente


influida por el deseo de un periodo máximo así
como de un grado mínimo de correlación entre los
números generados.

MTI. MA. ANTONIETA HDZ.


… Método multiplicativo congruente

La elección adecuada del


módulo m depende del
sistema numérico de cómputo
que se está usando.

En el caso de una máquina


La selección más común de m
binaria, m sería igual a 2b,
es aquella que equivale a la
donde b es el número de bits
capacidad de una palabra de
que se encuentran en la
la computadora.
palabra de la computadora.

MTI. MA. ANTONIETA HDZ.


… Método multiplicativo congruente

En una máquina decimal, m equivaldría a 10d,


donde d es el número de dígitos que tiene la
palabra de la computadora.
El período máximo que se puede obtener
cuando a y X0 se selecciona en forma
adecuada, es, entonces:

P=2b-2=m/4 para sistemas binarios b>2

P= (5) 10d-2 =m/20 para sistemas decimales


d>2

MTI. MA. ANTONIETA HDZ.


Ventaja del algoritmo multiplicativo

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 Xo, a y m, todos los cuales deben ser
números enteros y mayores que cero.

Para transformar los números Xi en el intervalo


(0,1) se usa la ecuación r¡ = xi/(m - 1).

MTI. MA. ANTONIETA HDZ.


De acuerdo 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:

A partir de estas condiciones se logra un periodo


de vida máximo
N = k/4 = 2g-2
Ejemplo 2.7
Generar suficientes números entre 0 y 1
con los siguientes parámetros:

Xo = 17,
k=2y
g = 5,

hasta encontrar el periodo o


ciclo de vida.
solución

a= 5 + 8(2)=21 y m =32

X0= 17

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


X2= (21*5) mod 32 = 9 r2= 9/31 = 0.2903
X3= (21*9) mod 32= 29 r3= 29/31 = 0.9354
X4= (21*29) mod 32 = 1 r4= 1/31 = 0.3225
X5= (21*1) mod 32 =21 r5= 21/31 = 0.6774
X6= (21*21) mod 32 = 25 r6= 25/31 = 0.8064
X7= (21*25) mod 32= 13 r7= 13/31 = 0.4193
X8= (21*13) mod 32 = 17 r8= 17/31 = 0.5483
observar

Toda vez que la semilla


X0 se repite, volverán 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.
MTI. MA. ANTONIETA HDZ.
Ejemplo
Ahora bien, si violamos la condición de que la semilla sea un número impar,
digamos con Xo = 12, tenemos:

Solución:

X0=12

X1 = (21*12) mod 32 = 28 r1 = 28/31 = 0.9032

X2 = (21 *28) mod 32 = 12 r2 = 12/31 = 0.3870

En vista de que la semilla X0 se repite, volverán a generarse los mismos


números.

Por lo tanto, el periodo de vida es N=2.

MTI. MA. ANTONIETA HDZ.


Algoritmo congruencial
aditivo
Algoritmo congruencial aditivo
Este algoritmo requiere una secuencia previa de n números enteros

X1,X2,X3,X4 , . . . , X n

Para generar una nueva secuencia de números enteros que empieza en

Xn+1,Xn+2,Xn+3,Xn+4,...

Su ecuación recursiva es:

Xn+1=(Xn+Xn+k)mod 10m
MTI. MA. ANTONIETA HDZ.
fórmula del método congruencial aditivo

Xn+1=(Xn+Xn+k)mod 10m

Donde

Xn+1 = El siguiente número generado a partir de la


fórmula.
Xn = El número actual en el que se encuentra.
K+1=es el número de valores iniciales para empezar a
generar los números pseudoaleatorios.
m = El número máximo de cifras significativas.

MTI. MA. ANTONIETA HDZ.


Ejemplo
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 X1+k, X2+k, X3+k, X4+k, X5+k, X6+k, X7+k,

MTI. MA. ANTONIETA HDZ.


Solución:
X6 = (X5 + X1) mod 100 = (60+ 65) mod 100 = 34 ri = 34/99 = 0.3434
X7 = (X6 + X2) mod 100 = (34 + 89) mod 100 = 23 r2 = 23/99 = 0.2323
X8 = (X7 + X3) mod 100 = (23 + 98) mod 100 = 21 r3 = 21/99 = 0.2121
X9 = (X8 + X4) mod 100 = (21 +03) mod 100 = 24 r4 = 24/99 = 0.2424
X10 = (X9 + X5) mod 100 = (24 + 69) mod 100 = 93 r5 = 93/99 = 0.9393
Xn = ( X 1 0 + X6 ) mod 100 = (93 + 34) mod 100 = 27 r6 = 27/99 = 0.2727
Xn+1 = ( X n +X7) mod 100 = (27 + 23) mod 100 = 50 r7 = 50/99 = 0.5050
Algoritmos Congruenciales
no lineales
Algoritmos congruenciales
no lineales

Algoritmo congruencial cuadrático

Algoritmo de Blum, Blum y Shub

MTI. MA. ANTONIETA HDZ.


Algoritmo congruencial
cuadrático
Algoritmo congruencial
cuadrático
 Este algoritmo tiene la siguiente
ecuación recursiva:
 Xi+1 = (aX2 + bX¡ + c) mod (m)
 i= 0,1,2,3,..., N

MTI. MA. ANTONIETA HDZ.


En este caso, los números ri pueden ser
generados con la ecuación
• r¡ = x ¡ +1/(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 = 29
• a debe ser un número par
• c debe ser un número impar
• g debe ser entero (b- 1) mod 4= 1

De esta manera se logra un periodo de vida


máximo N = m.
MTI. MA. ANTONIETA HDZ.
Ejemplo de Algoritmo
congruencial cuadrático
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.

Como todas las condiciones estipuladas para los


parámetros se satisfacen, es de esperarse que el
periodo de vida del generador sea N = m = 8, tal
como podrá comprobar al revisar los cálculos
correspondientes, que se presentan a continuación.

MTI. MA. ANTONIETA HDZ.


…Algoritmo congruencial
cuadrático
X1 = (26*132 + 27*13 + 27) mod (8) = 4
X2 = (26*42 + 27*4 + 27) mod (8) = 7
X3 = (26*72 + 27*7 + 27) mod (8) = 2
X4 = (26*22 + 27*2 + 27) mod (8) = 1
X5 = (26*12 + 27*1 + 27) mod (8) = 0
X6 = (26*02 + 27*0 + 27) mod (8) = 3
X7 = (26*32 + 27*3 + 27) mod (8) = 6
X8 = (26*62 + 27*6 + 27) mod (8) = 5
X9 = (26*52 + 27*5 + 27) mod (8) = 4

MTI. MA. ANTONIETA HDZ.


…Algoritmo congruencial
cuadrático
 Por otro lado, el algoritmo cuadrático
genera una secuencia de números
enteros S = {0,1, 2,3,..., m - 1}, al igual
que el algoritmo congruencial lineal.

MTI. MA. ANTONIETA HDZ.


Algoritmo de Blum, Blum y
Shub
Algoritmo de Blum, Blum y
Shub
 Si en el algoritmo congruencial
cuadrático a = 1,b = 0 y c = 0, entonces
se construye una nueva ecuación
recursiva:
 Xi+1 = (Xi2)mod(m) i = 0,1,2,3,…, n
 La ecuación anterior fue propuesta por
Blum, Blum y Shub como un nuevo
método para generar números que no
tienen un comportamiento predecible.

MTI. MA. ANTONIETA HDZ.


Propiedades de los números
pseudo aleatorios entre 0 y 1
Propiedades de los números
pseudoaleatorios
Hemos visto cómo generar números aleatorios usando diferentes métodos.

Sin embargo,

¿de qué manera se puede garantizar que tales números son realmente aleatorios entre 0 y 1 ?,

¿cuáles son las características que los identifican?,

¿cuáles son sus parámetros?

La respuesta a las preguntas anteriores 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.

MTI. MA. ANTONIETA HDZ.


…propiedades
 Media de los aleatorios entre 0 y 1.
 Varianza de los números aleatorios.
 Independencia.

MTI. MA. ANTONIETA HDZ.


Propiedad de la media

Media de los aleatorios entre 0 y 1.

• En vista de que estos números deben tener la


misma probabilidad 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:
• f(x) = 1/(b-a) a<=x <=b; en este caso, a=0 y b=1
MTI. MA. ANTONIETA HDZ.
Gráficamente se vería de la
siguiente manera:

MTI. MA. ANTONIETA HDZ.


…propiedades
 Para obtener la media de la distribución
multiplicamos la función de densidad por
x, y la integramos en todo el rango de la
misma distribución de la siguiente
manera:

MTI. MA. ANTONIETA HDZ.


…propiedades de la media
 Sustituyendo los valores de a y b

 Por lo tanto, el valor esperado (es decir,


la media de los números aleatorios entre
0 y 1) es

MTI. MA. ANTONIETA HDZ.


Propiedad de la Varianza

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:

MTI. MA. ANTONIETA HDZ.


…propiedades de la varianza
 Lo que nos da E(X)2:

 Al sustituir se tiene

 Por lo tanto

MTI. MA. ANTONIETA HDZ.


Propiedades

Dados estos resultados podemos decir que los


números aleatorios entre 0 y 1 deben tener:

MTI. MA. ANTONIETA HDZ.


Propiedad de Independencia

Independencia.
• Ésta es una propiedad muy
importante, e implica que los
números aleatorios no deben tener
correlación entre sí;
• es decir, deben ser independientes,
de manera que puedan dispersarse
uniformemente dentro de todo el
espectro de valores posibles.

MTI. MA. ANTONIETA HDZ.


…propiedad de independencia

La figura 2.2a muestra una gráfica


totalmente dispersa en los valores posibles,

y la figura 2.2b presenta una acumulación


de los valores en la parte central, lo cual
quiere decir que hay una correlación entre
los mismos.

MTI. MA. ANTONIETA HDZ.


…propiedad de independencia
Ejemplo de las propiedades
Del método congruencial:
• xn+1 = (axn + c) mod m

Las constantes X0, a, c, y m, se eligen para que el periodo sea máximo con:

• i. c y m son primos entre sí


• ii. a –1 es múltiplo de todos los primos que dividen a m
• iii. si m es múltiplo de 4, a–1 también lo es

El parámetro m determina el número de cifras, se suelen tomar potencias de dos.

Cuando c = 0 el generador se denomina multiplicativo. Este tipo de métodos es más


rápido y, aunque se reduce un poco la longitud del ciclo, la aparición de estos no es
problema si m se elige suficientemente grande.
¿Cómo conseguir números
pseudoaleatorios?

Figura 1. Donde no se cumplen las condiciones y por tanto no hay Figura 2. Donde sí se cumplen las condiciones y por tanto sí hay
apariencia de aleatoriedad. apariencia de aleatoriedad.
Características o Propiedades de los
números obtenidos deben ser:
1 Uniformemente distribuidos.

2. Estadísticamente independientes.

3. Su media debe ser estadísticamente igual a 1/2.

4. Su varianza debe ser estadísticamente igual a 1/12.

5. Su periodo o ciclo de vida debe ser largo.

6. Deben ser generados a través de un método rápido.

7. Generados a través de un método que no requiera mucha


capacidad de almacenamiento de la computadora.
MTI. MA. ANTONIETA HDZ.
Generador Uniforme Generador Uniforme

1.25 1.25
1 1
0.75 0.75

random
random

0.5 0.5
0.25 0.25
0 0
-0.251 27 53 79 05 31 57 83 09 35 61 87 -0.25 0
1 1 1 1 2 2 2 2
-0.5 -0.5

Generador Uniforme?

1
0.8
0.6
0.4
0.2
0
0 50 100
De Propiedades a Pruebas

Es posible realizar una serie de pruebas para corroborar que


no existe correlación entre los números aleatorios, e incluso
para garantizar que no exista un sesgo o tendencia entre los
dígitos de cada uno de ellos.

Estas pruebas se revisarán con más detalle a continuación

MTI. MA. ANTONIETA HDZ.


Pruebas estadísticas
para los números
pseudo aleatorios
Pruebas Estadísticas
Prueba de Prueba de
medias varianza

Pruebas de • Prueba Chi-cuadrada


• Prueba Kolmogorov-Smirnov
uniformidad

• Prueba de corridas arriba y abajo


Pruebas de • Prueba de corridas arriba y abajo de la media
• Prueba poker
independencia • Prueba de series
• Prueba de huecos

MTI. MA. ANTONIETA HDZ.


Pruebas Estadísticas
Se han presentaron diversos algoritmos para construir un conjunto ri, pero ése es
sólo el primer paso, ya que el conjunto resultante debe ser sometido a una serie
de pruebas para validar si los números que lo integran son aptos para usarse en
un estudio de simulación.

A continuación se analizarán las pruebas estadísticas básicas que se emplean


generalmente para determinar si un conjunto de números pseudo aleatorios
entre cero y uno cumplen con las propiedades básicas de independencia y
uniformidad.

El objetivo, en otras palabras, es validar que el conjunto ri realmente está


conformado por números aleatorios.

Es importante mencionar que las pruebas que se discutirán no son únicas; si


desea conocer otras, consulte Banks, Carson, Nelson y Nico.

MTI. MA. ANTONIETA HDZ.


Prueba de medias
Prueba de Medias
Una de las
propiedades
que deben • La prueba que busca
cumplir los determinar lo anterior
números del es la llamada prueba
conjunto r¡, de medias, en la cual
es que el se plantean las
valor siguientes hipótesis:
esperado sea
igual a 0.5.

MTI. MA. ANTONIETA HDZ.


Hipótesis de la prueba de
medias

MTI. MA. ANTONIETA HDZ.

También podría gustarte