clase3.-generación y verificación de numeros aleatorios

Click here to load reader

Upload: jhon-pichihua-h

Post on 19-Jan-2016

9 views

Category:

Documents


0 download

TRANSCRIPT

Construccin de modelos de simulacin

Para generar una simulacin se requiere numeros aleatorios en el intervalo de [0,1]Generacin de nmeros pseudo aleatoriosPropiedades deseadas de buenos generadoresEl mtodo ms comn es generar el siguiente nmero a partir de los ltimos nmeros generados

Una de estas funciones es:

Si comenzamos con xo = 5, los primeros 32 nmeros generados son: 10, 3, 0, 1, 6, 15, 12, 13, 2, 11, 8, 9, 14, 7, 4, 5, 10, 3, 0, 1, 6, 15, 12, 13, 2, 11, 8, 9, 14, 7, 4, 5

Propiedades deseadas de buenos generadoresLos nmeros generados: 10, 3, 0, 1, 6, 15, 12, 13, 2, 11, 8, 9, 14, 7, 4, 5, 10, 3, 0, 1, 6, 15, 12, 13, 2, 11, 8, 9, 14, 7, 4, 5

Algoritmos de cuadrados mediosPropuesto por Von Neumann y Metropolis.Seleccionar una semilla (Xo) con D dgitos (D>3)Sea Yo= resultado de elevar Xo al cuadrado, sea X1= los D dgitos del centro, y sea ri=0.D dgitos del centro.Sea Yi=resultado de elevar Xi al cuadrado; sea Xi+1=los D dgitos del centro, y sea ri=0.D dgitos del centro para toda i=1,2,3,n.Repetir el paso 3 hasta obtener los n nmeros ri, deseados.

Ejemplo: Generar los primeros 5 nmeros ri, a partir de una semilla Xo=6736, de donde se puede observar que D=4 dgitos

Algoritmos de productos mediosSeleccionar una semilla (Xo) con D dgitos (D>3)Seleccionar una semilla (X1) con D dgitos (D>3)Sea Yo= Xo * X1, sea X2= los D dgitos del centro, y sea r1=0.D dgitos del centro.Sea Yi= Xi * Xi+1; sea Xi+2=los D dgitos del centro, y sea ri+1 = 0.D dgitos del centro para toda i=1,2,3,n.Repetir el paso 4 hasta obtener los n nmeros ri, deseados.

Ejemplo: Generar los primeros 5 nmeros ri, a partir de una semilla Xo=5015 y X1=5734; observe que ambas semillas tienen D=4 dgitos.

Algoritmo de multiplicador constanteSeleccionar una semilla (Xo) con D dgitos (D>3)Seleccionar una constante (a) con D dgitos (D>3)Sea Yo= a * X0, sea X1= los D dgitos del centro, y sea r1=0.D dgitos del centro.Sea Yi= a *Xi; sea Xi+1 = los D dgitos del centro, y sea ri+1 = 0.D dgitos del centro para toda i=1,2,3,n.Repetir el paso 4 hasta obtener los n nmeros ri, deseados.

Ejemplo: Generar los primeros 5 nmeros ri, a partir de una semilla Xo = 9803 y con la constante a = 6915. Algoritmo linealAlgoritmo congruencial propuesto por D.H. Lehmer en 1951.Xi+1=(aXi + c) mod (m) i=0,1,2,3,.,n.ri = Xi+1 / (m-1) i = 1,2,3,,n.

Ejemplo: Generar 5 nmeros entre 0 y 1 con los siguientes parmetros: Xo=37, a=19, c=33 y m=100.

Donde: Xo= semillaa= constante multiplicativac= constante aditivam = moduloAlgoritmo linealPara lograr un mximo periodo de vida n. Banks,Carson, Nelson y Nicol sugiere:m=2^ga = 1+4kDonde: k y g debe ser enteroC relativamente primo a m.Bajo estas condiciones el periodo de vida mximo: N = m = 2^g

Ejemplo: Generar nmeros entre 0 y 1 con los parmetros Xo=6, k=3, g=3 y c=7, hasta encontrar el periodo mximo (N)a= 1+4(3)=13 y m = 2^3=8Algoritmo lineala= 1+4(3)=13 y m=2^3=8

Xo=6X1=(13*6 +7)mod 8 = 5r1=5/7=0.714X2=(13*5 +7)mod 8 = 0r2=0/7=0.000X3=(13*0 +7)mod 8 = 7r3=7/7=1.000X4=(13*7 +7)mod 8 = 2r4=2/7=0.285X5=(13*2 +7)mod 8 = 1r5=1/7=0.142X6=(13*1 +7)mod 8 = 4r6=4/7=0.571X7=(13*4 +7)mod 8 = 3r7=3/7=0.428X8=(13*3 +7)mod 8 = 6r8=6/7=0.857

Xi+1=(a *Xi + c)mod(m) i=0,1,2,3,.,n.ri=Xi/m-1 i=0,1,2,3,,n.Algoritmo congruencial multiplicativoSurge del algoritmo congruencial lineal cuando c=0. entonces la ecuacin recursiva es:Xi+1=(aXi) mod (m) i=0,1,2,3,.,n.ri=Xi/(m-1)De acuerdo con Banks,Carson, Nelson y Nicol sugieren lo siguiente:m = 2^ga = 3+8k a=5+8k

A partir de estas condiciones se logra un periodo de vida mximo N = m/4 = 2^(g-2)

K=0,1,2,3,.Xo debe ser imparg debe ser enteroAlgoritmo congruencial multiplicativoEjemplo: Generar los suficientes nmeros entre 0 y 1 con los siguientes parmetros: Xo=17, k=2 y g=5, hasta encontrar el periodo o ciclo de vida.

Xi+1=(aXi)mod(m) i=0,1,2,3,.,n.ri=Xi/(m-1)N=m/4=2^(g-2)m=2^ga = 3+8k a=5+8kAlgoritmo congruencial aditivoEste algoritmo requiere una secuencia previa de n nmeros enteros X1, X2,,Xn para generar una nueva secuencia de nmeros enteros que empieza en Xn+1, Xn+2,..

Su ecuacin recursiva es:Xi=(Xi-1 + Xi-n) mod (m) i=n+1, n+2, n+3,., NLos nmeros ri = Xi / (m-1)Algoritmo congruencial aditivoEjemplo: Generar 7 nmeros pseudo aleatorios entre cero y uno a partir de la siguiente secuencia de nmeros enteros: 65, 89, 98, 03, 69. m=100Xi=(Xi-1 + Xi-n) mod (m) i=n+1, n+2, n+3,., NAlgoritmo congruencial cuadrtico

Xi+1=(a*(Xi)^2 + b*Xi +c) mod (m) i=0,1,2,,Nri=Xi/(m-1)De acuerdo con LEcuyer las condiciones que debe cumplir los parmetros m,a,b y c para alcanzar un periodo mximo de N=m son:m=2^g

Donde: a= debe ser numero parc= debe ser numero imparg debe ser entero(b-1)mod 4 = 1Algoritmo congruencial cuadratico

Ejemplo: Generar, a partir del algoritmo congruencial cuadrtico, suficientes nmeros enteros hasta alcanzar el periodo de vida, considerando los parmetros Xo=13, m=8, a=26, b=27 y c=27Xi+1=(a*(Xi)^2 + b*Xi +c) mod(m) i=0,1,2,,Nri=Xi/(m-1)