Vous êtes sur la page 1sur 29

Modelamiento y Simulacion Digital

Generacin de nmeros pseudoaleatorios

Nmeros aleatorios
Elemento Central en la Simulacin digital. Elemento esencial en muchas reas del conocimiento Ingeniera, Economa, Fsica, Estadstica, etc. Definicin intuitiva: Una sucesin de nmeros aleatorios puros, se caracteriza por que no existe ninguna regla o plan que nos permita conocer sus valores. Los nmeros aleatorios obtenidos a travs de algoritmos recursivos se llaman pseudoaleatorios

Disponer de un buen generador de nmeros aleatorios es clave en:


Computacin Aleatorizada Computacin Evolutiva Algoritmos Aleatorizados Verificacin de Algoritmos Validacin de Algoritmos Criptografa etc.

MODELAR
MUNDO REAL

MODELO

EXPERIMENTAR?
DECISIONES OBTENER RESULTADOS: EXPERIMENTAR

IMAGEN DEL MUNDO REAL

Caractersticas deseables en una subrutina para generacin de nmeros aleatorios


Confiabilidad. Eficiencia Portabilidad. Ciclos largos Replicabilidad

Tcnicas para Generacin de Nmeros Aleatorios

Mtodos de Generacin de Nmeros Aleatorios


1.- Mtodo de los cuadrados medios 2.- Mtodos Congruenciales 3.- Transformada Inversa [Semilla - Algoritmo - Validacin] P1 : Obtener semilla (valores iniciales)

P2 : Aplicacin de Algoritmos recursivos


P3 : Validacin del conjunto de datos generados (Test de Aleatoriedad)

Mtodos de los cuadrados Medios


Consiste en que cada nmero de una sucesin es producido tomando los dgitos medios de un nmero obtenido mediante la elevacin al cuadrado.
P1 : Obtener semilla (valores iniciales 445) P2 : Aplicacin de Algoritmos recursivos (elevar al cuadrado) P3 : Validacin del conjunto de datos generados

Mtodos de los Cuadrados Medios


Ejemplo: Consideremos la semilla 445 N Aleatorio 0,9802 0,0792 0,2726 ...............

X 445 9802 792 2726

X2 1| 9802 | 5 96| 0792 | 04 6 | 2726 | 4 ...............

Mtodo Congruencial Lineal

Este mtodo genera una secuencia de m nmeros siguiendo la siguiente relacin recursiva:

Ni+1= (a * Ni+ c) mod m con i = 0, 1, 2..., n Si c es diferente a0 se denomina mtodo congruencial mixto. Si c = 0 se denomina mtodo congruencial multiplicativo. Los Ni pertenecen al intervalo (0,m-1).

La seleccin de a, c y m afectan drsticamente a la longitud del ciclo y las propiedades estadsticas. Es posible combinar varios generadores congruenciales lineales.

Ejercicio
Suponga que a = 3, c = 1, m = 5 y N0 = 4. El generador sera: Ni+1= (3*Ni+1) mod 5

i
0 1

Ni
4 3

3*Ni+1
13 10

2
3 4 5

0
1 4 3

1
4 13 10

Hay un ciclo tal que Ni = Ni+4 . El nmero aleatorio entre 0 y 1 se obtiene dividiendo Ni por m.

Generadores Congruenciales Multiplicativos


Siempre que c = 0, el generador posee la siguiente forma:
Ni+1 = (3*Ni ) mod m i=0, 1, , n Para asegurar la mxima longitud peridica de la secuencia, m y N0 deben ser primos entre s. La forma ms sencilla de asegurar esto para cualquier semilla N0 es utilizar un nmero primo para m. Para arquitecturas con aritmtica de 32-bits el generador ms empleado posee:

a = 16.807 y m = 231-1 = 3.147.483.647

Mejoras de los Generadores


Generadores Multiplicativos Recursivos Este mtodo genera cada valor de la secuencia como una combinacin lineal de los valores que le preceden: Ni-1 =(a1Ni+a2Ni-1++atNi-t-1)mod m Un generador de este tipo que ha demostrado

poseer muy buenas propiedades estadsticas es:


Ni-1 = (107.374.182*Ni+104.104.480*Ni-4 ) mod (231-1)

Test para Nmeros Aleatorios


Existen varios test tendientes a establecer si una secuencia de nmeros pseudo-aleatorios respeta las propiedades de los nmeros aleatorios: Tests de Frecuencia Tests de Corridas Tests de Autocorrelacin Tests de Gap Tests de Poker

Tests de Frecuencia
Este

test evala la uniformidad de la distribucin de los valores en la secuencia.


Generalmente

se utiliza los test de Kolmogorov-Smirnov o el Test Chi-Cuadrado para comparar la frecuencia con que aparece cada valor en la secuencia respecto de la frecuencia esperada para dicho valor.

Si

el test es superado, entonces podemos afirmar, con cierto grado de certeza, que los valores siguen una distribucin uniforme.

Tests de Corridas
Corridas

descendentes y ascendentes Este test determina la existencia o no de subsecuencias crecientes o decrecientes dentro de la secuencia aleatoria. Si dichas secuencias existen, entonces la propiedad de independencia de los valores no se verifica para el generador de nmeros aleatorios.

Corridas por debajo y arriba de la media Este test determina la existencia o no de subsecuencias de nmeros por debajo o por encima de la media. Nuevamente, si dichas secuencias existen, entonces la propiedad de independencia de los valores no se verifica para el generador de nmeros aleatorios.

Tests de Autocorrelacin

Este test analiza la independencia entre los nmeros de la secuencia tratando de detectar la existencia de alguna correlacin entre los valores generados. Estos tests requieren el calculo de correlaciones entre los valores comprendidos cada m posiciones de la secuencia comenzando desde una posicin i. Estas tcnicas a veces pueden llegar a determinar una correlacin cuando en realidad no existe.

Test de Gap

Este test analiza el intervalo o gap entre la repeticin de un dgito y su prxima aparicin buscando detectar un patrn general que invalide la propiedad de independencia. Para aplicar a nmeros aleatorios entre 0 y 1, {Ui}, se efecta una discretizacin por clases. 0 = [0,0.1), 1 = [1,0.2), ...

Test de Poker

Este tipo de test tambin busca verificar la propiedad de independencia analizando cmo se repiten los dgitos a lo largo de los nmeros que forman la secuencia pseudo-aleatoria.

Por ejemplo, en la siguiente secuencia todos los nmeros repiten dos dgitos: 0.255 0.577 0.331 0.414 0.828 0.909 0.001

Con lo cual se concluye que no hay independencia entre los nmeros de la secuencia .

Generacin de Variables Aleatorias Distribuciones No Uniformes


Cuando

el valor aleatorio a generar no sigue una distribucin uniforme, es necesario emplear otras tcnicas. Dentro de las tcnicas ms empleadas estn: El mtodo de la transformacin inversa. Mtodos especiales: El mtodo de aceptacin y rechazo El enfoque de convolucin Transformacin directa entre normal y lognormal otros...

Tcnica de la Transformada Inversa


Este mtodo explota las propiedades de las funciones de acumulacin de probabilidades de las distribuciones.

Dado que las funciones acumulativas son incrementales, en general estas poseen inversa. Es decir, dado un valor aleatorio r entre 0 y 1 existe un nico valor x tal que F(x) = r.

Luego, dado una valor r entre 0 y 1, el valor aleatorio x se puede obtener como: x = F-1(r)

Mtodo de la Transformacin Inversa Interpretacin Grfica en Curvas de Acumulacin

Mtodo de la Transformacin Inversa Interpretacin Grfica en reas

Mtodo de la Transformacin Inversa Distribucin Exponencial


F ( X ) e dt 1 e
t 0 x x

r 1 e Ln(1 r ) x Ln(1 r ) x

Mtodo de AceptacinRechazo
Este mtodo es aplicable a cualquier variable aleatoria con distribucin continua que posea una funcin de densidad de probabilidad con rango bien definido, pero cuya funcin de distribucin de probabilidad acumulativa no pueda ser expresada mediante integracin directa.

Mtodo de AceptacinRechazo

Considere una variable aleatoria X, cuya funcin de densidad de probabilidad f(x) es tal que: 0 f(x) M para a x b f(x) = 0 para cualquier otro caso

M F(x) 0

Vous aimerez peut-être aussi