NÚMEROS PSEUDOALEATORIOS
SIMULACIÓN
RAUL VALDIVIESO ALEGRIA
NO.CONTROL: 09011251
Numeros pseudoaleatorios Un número pseudo-aleatorio es un número generado en un proceso que parece producir números al azar, pero no lo hace realmente. Las secuencias de números pseudo-aleatorios no muestran ningún patrón o regularidad aparente desde un punto de vista estadístico, a pesar de haber sido generadas por un algoritmo completamente determinista, en el que las mismas condiciones iniciales producen siempre el mismo resultado. Los mecanismos de generación de números aleatorios que se utilizan en la mayoría de los sistemas informáticos son en realidad procesos pseudo-aleatorios. Una Sucesión de números pseudoaleatorios es una sucesión de números que ha sido obtenida mediante un proceso aritmético definido, pero que es una secuencia de números aleatorios efectiva para el propósito para el que se la requiere.
Propiedades mínimas que deberán satisfacer los N ú m e r o s pseudoaleatorios:
Ajustarse a una distribución U (0,1). Ser estadísticamente independientes (no debe deducirse un número conociendo otros ya generados). Ser reproducibles (la misma semilla debe dar la misma sucesión). Ciclo repetitivo muy largo. Facilidad de obtención. Ocupar poca memoria
Métodos para Generar números Psedualeatorios A continuación se presentan diferentes algoritmos determinísticos para generar números pseudoaleatorios, los cuales se clasifican en congruenciales y no congruenciales. Algoritmos no congruenciales Los algoritmos no congruenciales que se incluyen en este proyecto son cuadrados medios, productos medios y multiplicador constante.
Algoritmo de cuadrados medios Este algoritmo no congruencial fue propuesto propuesto en la década de los cuarenta del siglo XX por Von Neumann y Metrópolis. Requiere Requiere un número entero detonador detonador con D dígitos, el cual es elevado al cuadrado para seleccionar seleccionar del resultado los D dígitos del centro; el primer número se determina simplemente anteponiendo el “0.” a esos dígitos. Para obtener el segundo número se sigue el mismo procedimiento, procedimiento, solo que ahora ahora se eleva al al cuadrado los D dígitos del centro que se seleccionaron para obtener el primer número. Este método se repite hasta obtener n números. A continuación se presentan con más detalle los pasos para generar números con el algoritmo de cuadrados medios. 1. Seleccionar la semilla ( ) Xo con con D dígitos (D > 3). 2. Sea Yo= resultado resultado de de elevar Xo al cuadrado; cuadrado; sea X1 = los D dígitos dígitos del centro y sea r1= 0.D dígitos del centro. 3. Sea Yi = resultado de elevar Xi al cuadrado; cuadrado; sea sea Xi+1= los D dígitos del centro y sea ri+1= 0.D dígitos del centro para toda i = 1, 2, 3,...,n . 4. Repetir el paso 3 hasta obtener los n números i r deseados. El algoritmo de cuadrados medios generalmente es incapaz de generar una una secuencia de números con período de vida n grande. Además, en ocasiones solo es capaz de generar un solo número.
Algoritmo de productos medios La mecánica de generación de números pseudoaleatorios 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 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 ri= 0.D . Después se elimina una semilla y la otra se multiplica multiplica por el primer número de de D dígitos, para luego 4 seleccionar del producto los D dígitos que conformarán un segundo segundo número ir . Entonces se elimina la segunda semilla y se multiplican el primer número de D dígitos por el segundo número número de D dígitos; del producto se obtiene el tercer número ir . Siempre se irá el iminando el número más antiguo, y el procedimiento se repetirá hasta generar generar los n números pseudoaleatorios. pseudoaleatorios. A continuación se presentan con más detalle los pasos del método para generar números con el algoritmo de productos medios.
1. Seleccionar una una semilla ( ) X0 con D dígitos. 2. Seleccionar una una semilla ( ) X1con D dígitos. 3. Sea Y0= X0* X1; X1; sea X 2= los D dígitos del del centro y sea r1= 0.D dígitos del del centro. 4. Sea Yi= XiXi+1: sea sea Xi+2 = los D dígitos del centro y sea ri+1= 0.D dígitos del centro para para toda i = 1, 2, 3,..., n . 5. Repetir el paso 4 hasta obtener los n números ir deseados
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. 1. Selecciona una semilla ( ) X0 con D dígitos (D > 3). 2. Seleccionar una constante constante (a) con D dígitos (D > 3). 3. Sea Y0= a * X0; sea X1 = los D dígitos del centro centro y sea r1= 0.D dígitos del del centro. 4. Sea Yi= a * Xi; sea Xi+1 = los los D dígitos del centro y sea ri+1= 0.D dígitos del centro centro para toda i = 1, 2, 3,..., n . 5. Repetir el paso 4 hasta obtener los n números ir deseados. deseados.
Algoritmos congruenciales Entre los algoritmos congruenciales se encuentran los algoritmos congruenciales lineales y los no lineales.
Algoritmos congruenciales lineales En este trabajo abordaremos los algoritmos congruenciales lineales como el algoritmo congruencial lineal, el multiplicativo y el aditivo.
Algoritmo Lineal Este algoritmo congruencial fue propuesto por D. H. Lehmer en 1955. Según Law y Kelton, este algoritmo ha sido el más utilizado. El algoritmo congruencial lineal genera una secuencia de números enteros por medio de la siguiente ecuación recursiva:
es la semilla, semilla, a es la constante multiplicativa, c es una constante 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 y que para obtener números pseudo aleatorios en el intervalo (0, 1) se requiere de la siguiente ecuación:
MÉTODO DE LA TRANSFORMADA INVERSA. El método de la transformada inversa utiliza la distribución acumulada F(x) de la distribución que se va a simular. Puesto que F(x) está definida en el intervalo (0 – (0 –1), 1), se puede generar un número aleatorio uniforme R y tratar de determinar el valor de la variable aleatoria para cual su distribución acumulada es igual a R, es decir, el valor simulado de la variable aleatoria que sigue un distribución de probabilidad f(x), se determina al resolver la siguiente ecuación. F(x) = R ó x = F^−1 ® La dificultad principal de este método descansa en el hecho de que en algunas ocasiones es difícil encontrar la transformada inversa. Sin embargo si esta función inversa ya ha sido establecida, generando números aleatorios uniformes se podrán obtener valores de la variable aleatoria que sigan la distribución de probabilidad deseada.
Método De Composición En esta técnica f(x), la función de densidad probabilidad de la distribución que se va simular, esta expresada como una mezcla de probabilidad de funciones de densidad propiamenteseleccionadas.Este propiamenteselecciona das.Este procedimiento está basado en la definición de probabilidad condicional o la ley de probabilidades compuestas. compuestas. Matemáticamente sea g(x|y) una familia de funciones de densidad de un parámetro donde Y es el parámetro que identifica de manera única a g(x). Si un valor de y es ahora descrito de unafunción de distribución acumulada H(y) y entonces si x es una muestra de g(x), para seleccionar Y , la función de densidad para x será
Usando este principio, distribuciones más complicadas pueden ser generadas de distribuciones más simples las cuales son en sí mismas fácilmente generadas, por la técnica de l a transformación inversa o la técnica de rechazo