Generadores de Números Aleatorios Jorge Eduardo Ortiz Triviño
[email protected] http://www.docentes.unal.edu.co/jeortizt/
Contenido: • ¿Qué entendemos por secuencia de números aleatorios? • Cómo se generan n. aleatorios • Generadores congruenciales lineales • Propiedades de los GCL • Otros tipos de generadores – De Tausworthe (“feedback shift register”) – “Barajados” (??) (“shuffled”)
Números Aleatorios
• Elemento Central en la Simulación digital. • Definición formal controvertida. • Elemento esencial en muchas áreas del conocimiento Ingeniería, Economía, Física, Estadística, etc. • Definición intuitiva: Una sucesión de números aleatorios puros, se caracteriza por que no existe ninguna regla o plan que nos permita conocer sus valores. • Los números aleatorios obtenidos a través de algoritmos recursivos se llaman pseudoaleatorios.
Números Aleatorios Disponer de un buen generador de números aleatorios es clave en: • • • • • • •
Computación Aleatorizada Computación Evolutiva Algoritmos Aleatorizados Verificación de Algoritmos Validación de Algoritmos Criptografía etc.
Números Aleatorios • La gran disponibilidad de generadores de números aleatorios en muchos entornos y compiladores puede llevarnos a pensar que para un usuario de la simulación no sería necesario estudiar estas cuestiones. • Una lección del pasado reciente nos obliga a sacar lecciones y actuar con mucho cuidado con dichos generadores (RANDU - IBM). • El Uso progresivo de modelos de simulación cada vez más detallados exige una mayor calidad de los generadores de números aleatorios.
NÚMEROS ALEATORIOS f(x) 1, 0 x 1 f(x)
1 0, en otro caso
1 F(x) 0, x < 0 F(x)
x, 0 x 1
1
1, x disminución de frecuencia de los demás números. – Estudiar la recurrencia de : 2, 6, 6, 8, 7, 6, 6, 6, 4, 7, 2, 6, 5, 6, 2,6,6,7, 6, 5, 4, 3, 3, 6, 6, 6, 2, 9,4,8,6,4,6, 9,6,3,7,6,9,6, 0. – Hay 40 Números, por lo tanto la frecuencia teórica de cada uno de los dígitos (del 0 al 9) deberá ser 4. – De una tabla de frecuencias se obtiene que el digito 6->F(6)=18 veces.
Propiedades de los Números aleatorios • Estadísticamente independientes (sin periodicidad): – Tiene periodicidad cuando varios elementos, repetidos o no, formando una cadena, aparecen en la misma secuencia. – Estudiar periodicidad de: • 1,0,2,2,6,8,2,3,3,0,1,0,2,2,6,8,4,1,7,0,2,2,6,8, 7,6,5,3,3,5,1,0,2,2,6,8..... – Secuencia periódica 02268. . de Frecuencia 4
• 1,0,2,4,6,8,2,3,3,0,1,0,2,4,6,8,4,1,7,0,2,4,6,8, 7,6,5,3,3,5,1,0,2,4,6,8..... – Secuencia periódica 02468. de Frecuencia 4
Propiedades de los Números Pseudoaleatorios • Reproducibles: Cuando el Método comienza con la misma Semilla, DEBE dar la misma secuencia de números Pseudoaleatoreos. • Rápidos, velocidad de generación acorde a las necesidades. • Mínimos de memoria.
Conclusiones: •Hay que verificar la calidad estadísticas de las series. Comprobarlas en tiempo de Ejecución es una perdida de tiempo, entonces se prueba la calidad estadística del Método. •Por la cantidad de números que se necesitan y por la velocidad de su ocurrencia, es imprescindible generarlos en la medida que se lo necesiten.
Números Aleatorios
Algunas ideas o propiedades de los generadores I. Lagarias (1993) publicó un trabajo titulado “Pseudo Random Numbers” en Statistical Science. Donde estudia algunas propiedades tales como:
Expansividad : Una aplicación d [0,1] es expansiva si 2
| d ' ( x) | 1 x [0,1] La idea es escoger “d” como una aplicación expansiva de manera que la inestabilidad computacional proporcione aleatoriedad.
Números Aleatorios
No Linealidad: La composición de aplicaciones no lineales puede conducir a comportamientos crecientemente no lineales Ej: d(x) = x2; d(n)(x) = x2n Complejidad Computacional: La aleatoriedad de Kolmogorov, también denominada incomprensibilidad computacional. Consiste en constatar si la aleatoriedad de una sucesión de números es incomprensible (problema decidible).
Impredecibilidad
Números Aleatorios
• DEF 1: Kolmogorov (1987) [Complejidad Algorítmica] Una sucesión de números es aleatoria sino puede producirse eficientemente de una manera más corta que la propia serie. • DEF 2: L’Ecuyer (1990) [Impredicibilidad] Una sucesión de números es aleatoria si nadie que utilice recursos computacionales razonables puede distinguir entre la serie y una sucesión de números verdaderamente aleatoria de una forma mejor que tirando una moneda legal para decidir cuál es cuál. Obs: Esta definición conduce a los denominados generadores PT-perfectos usados en Criptografía.
Números Aleatorios • DEF 3: Un Número aleatorio es una realización de una variable aleatoria que tiene asociada una ley de probabilidades F, en un espacio o modelo de Probabilidades (, , P). Obs: Una particular Ley de Probabilidad base para la generación de números pseudo-aleatorios es: u1, u2,..., un : es la uniforme (0 ; 1) ui ~ U(0,1). • DEF 4: Una sucesión de números aleatorios {u1, u2,..., un} es una sucesión de números U(0;1), si tiene las mismas propiedades estadísticas relevantes que dicha sucesión de números aleatorios.
Números Aleatorios • DEF 5: Una sucesión de números aleatorios {ui} es aleatorio si h-úplas de números sucesivos no superpuestos se distribuyen aproximadamente. como una [0,1]h, con h=1,2,..,n, para n suficientemente grande. • Obs: h=2 tenemos (ui,ui+1) , i=1,2,..n , se distribuye como una ley uniforme en [0,1]2. • Existe una gran de métodos para generar {ui} U(0,1) : -Uniformente distribuidas - Independientes - E[U]= ½ ; V[U]= 1/12 - Período largo
Números Aleatorios
A las propiedades estadísticas anteriores se deben agregar otras relativas a la eficiencia computacional: • Velocidad de respuesta • Consumo de memoria
• Portabilidad • Parsimonia • Reproducibilidad
• Mutabilidad • Período
Números Aleatorios Métodos de Generación de Números Aleatorios
1.- Método de los cuadrados medios 2.- Métodos Congruenciales 3.- Método de registros desfasados [Semilla - Algoritmo - Validación] P1 : Obtener semilla (valores iniciales) P2 : Aplicación de Algoritmos recursivos
P3 : Validación del conjunto de datos generados (Test de Aleatoriedad)
Métodos de los cuadrados Medios
Consiste en que cada número de una sucesión es producido tomando los dígitos medios de un número obtenido mediante la elevación al cuadrado. P1 : Obtener semilla (valores iniciales 445)
P2 : Aplicación de Algoritmos recursivos (elevar al cuadrado) P3 : Validación del conjunto de datos generados
Métodos de los Cuadrados Medios
Ejemplo: Consideremos la semilla 445
X
X2
N° Aleatorio
445
1| 9802 | 5
0,9802
9802
96| 0792 | 04
0,0792
792
6 | 2726 | 4
0,2726
2726
...............
...............