Está en la página 1de 5

ALGORITMOS CONGRUENCIALES:

Lineales: a) Algoritmo Lineal:


CARACTERISTICAS Y CONDICIONES:

Este algoritmo fue propuesto por D.H. Lehmer en 1951. Genera una secuencia de nmeros enteros por medio de esta ecuacin recursiva: Xi+1 = (aXi +C) mod (m) i=1,2,3,4n

Donde: Xo = semilla, X0>0 y debe ser entero a = constante multiplicativa a > 0 y entero. c = constante aditiva c>0 y entero. Mod m = modulo, significa realizar las operaciones anteriores y dividir el resultado entre el valor de m para obtener solamente el residuo. Para convertir los nmeros aleatorios generados, a nmeros pseudo-aleatorios debemos realizar esta operacin: =

m = 28 a = 1 + 4k k = entero c = relativamente primo a n g = entero

Para lograr el mximo periodo de vida n al algoritmo lineal es necesario que se cumplan las siguientes condiciones:

Semilla X0 = 37 a =19,c=33,mod=100 X0=37


EJEMPLO

Xi+1 =(axi+c)mod(m) X=(19*37+33)/100 X=(19*36+33)/100 X=(19*17+33)/100 X=(19*56+33)/100

residuo 7.36 7.17 3.56 10.97 36 17 56 97

X0

Ri = xi/m-1 36/100-1 = 0.3636 17/99=0.1717 56/99=0.5656 97/99=0.9797

X0=36 X0=17 X0=56

ALGORITMOS CONGRUENCIALES:

Surge del algoritmo lineal cuando c = 0. Entonces la ecuacin recursiva es: Xi+1 = (aXi) mod (m) i=0,1,2,3,4n

b) Algoritmo multiplicativo:
CARACTERISTICAS Y CONDICIONES:

Donde: Xo = semilla, X0>0 y debe ser entero a = constante multiplicativa a > 0 y entero. Mod m = modulo, significa realizar las operaciones anteriores y dividir el resultado entre el valor de m para obtener solamente el residuo. Para convertir los nmeros aleatorios generados, a nmeros pseudo-aleatorios debemos realizar esta operacin: =

m debe ser mltiplo de 2g,donde g debe ser entero ,a=n+8k,donde k=0,1,2,3 , x0 y n debe ser un nmero
impar.

De acuerdo con Banks, Carson, Nelson y Nicol, las condiciones que deben cumplir los parmetros para que el algoritmo congruencial multiplicativo alcance su mximo perodo son:

Semilla X0 = 17 k=2,g=5. X0=17,a=5+8(2),m=25


EJEMPLO

Xi+1 =(axi)mod(m) a = n+8k y m = 2g X=(21*17)mod(32) X=(21*5)mod(32) X=(21*9)mod(32) X=(21*29)mod(32)

X0 5 9 29 1

Ri = xi/m-1 5/32-1 = 0.1612 9/31=0.2903 29/31=0.9354 1/31=0.3225

X0=5 X0=9 X0=29

ALGORITMOS CONGRUENCIALES:

Este algoritmo requiere una secuencia previa de n nmeros enteros x1,x2,x3,x4xn para generar una nueva secuencia de numero enteros que empiecen en xn+1,xn+2 su ecuacin recursiva es: Xi+1 = (Xi-1 + Xi-n ) mod (m) i=n+1,n+2,n+3,,N. Para convertir los nmeros aleatorios generados, a nmeros pseudo-aleatorios debemos realizar esta operacin: =

c) Algoritmo aditivo:
CARACTERISTICAS

Generar 4 nmeros pseudo-aleatorios entre cero y uno a partir de la siguiente frecuencia de nmeros 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.

EJEMPLO

X6=(x5+x1)mod(100) (69+65)mod 100 = 34 ------> r1=33/100-1 r1=0.3434 X7=(x6+x2)mod(100) (34+89)mod 100 = 23 ------> r1=23/100-1 r1=0.2323 X8=(x7+x3)mod(100) (23+98)mod 100 = 21 ------> r1=21/100-1 r1=0.2121 X9=(x8+x4)mod(100) (21+03)mod 100 = 24 ------> r1=24/100-1 r1=0.2424 X10=(x9+x5)mod(100) (24+69)mod 100 = 93 ------> r1=93/100-1 r1=0.9393

ALGORITMOS CONGRUENCIALES:
No lineal a) Algoritmo cuadrtico:
CARACTERISTICAS Y CONDICIONES:

Este algoritmo requiere una secuencia previa de n nmeros enteros x1,x2,x3,x4xn para generar una nueva secuencia de numero enteros que empiecen en xn+1,xn+2 su ecuacin recursiva es: Xi+1 = (aXi 2 + bxi + c) mod (m) i=0,1,2,3,4n

De acuerdo con Lecuyer, las condiciones que deben cumplir los parmetros m, a, b y c para alcanzar un nivel mximo de N =m son: M=2g a=debe ser nmero impar o par. c=nmero impar g=entero.

Generar 5 nmeros a partir de los siguientes parmetros: X0=13 m=8 a=26 b=27 c=27 Xi+1 = (aXi 2 + bxi + c) mod (m) X1=[26*132 +27*13+27]mod(8) = 4 X1=[26*42 +27*4+27]mod(8) = 7 X1=[26*72 +27*7+27]mod(8) = 2 X1=[26*22 +27*2+27]mod(8) = 1 X1=[26*12 +27*1+27]mod(8) = 0

EJEMPLO

ALGORITMOS CONGRUENCIALES:
No lineal b) Algoritmo Blum Blum y Shub:
CARACTERISTICAS Y CONDICIONES:

Creado a mediados de la dcada de 1980 por Lenore Blum ,Manuel Blum y Michael Shub . Es un algoritmo basado en congruencias cuadrticas que permite generar una secuencia de nmeros pseudo-aleatorios su ecuacin recursiva es: Xi = (Xi-1 )2 mod pq i=0,1,2,3,4n

Consideraciones para generar una secuencia optima y larga: P y q son 2 numeros primos muy grande Tales que p =3mod4 y q=3mod4; esto permite asegurar que cada residuo posee una raz cuadrada

Generar 5 nmeros a partir de los siguientes parmetros: X0=317 p=199 q=151 Xi = (Xi-1 )2 mod pq i=0,1,2,3,4n

EJEMPLO

X1=(317)2 mod (199)(151)10342 X2=(10342)2 mod (199)(151)12573 X3=(12573)2 mod (199)(151)22589 X4=(22589)2 mod (199)(151)852 X5=(852)2 mod (199)(151)4728