
La prueba espectral es una prueba estadística para evaluar la calidad de una clase de generadores de números pseudoaleatorios (GNA), los generadores congruenciales lineales (GCL). [ 1 ] Los GCL tienen la propiedad de que, al representarlos en dos o más dimensiones, se forman líneas o hiperplanos en los que se pueden encontrar todas las salidas posibles. [ 2 ] La prueba espectral compara la distancia entre estos planos; cuanto mayor sea la distancia entre ellos, peor será el generador. [ 3 ] Dado que esta prueba está diseñada para estudiar las estructuras reticulares de los GCL, no puede aplicarse a otras familias de GNA.
Según Donald Knuth , [ 4 ] esta es, con mucho, la prueba más potente conocida, porque puede hacer fallar a LCG que pasan la mayoría de las pruebas estadísticas. La subrutina RANDU de IBM [ 5 ] [ 6 ] LCG falla en esta prueba para 3 dimensiones o más.
Dejemos que el generador de números pseudoaleatorios genere una secuencia . Sea la separación máxima entre planos paralelos que cubren la secuencia . La prueba espectral verifica que la secuencia no decaiga demasiado rápido.
Knuth recomienda comprobar que cada uno de los siguientes 5 números sea mayor que 0,01, donde es el módulo del LCG.
Figuras de mérito
Knuth define una figura de mérito que describe cuán cerca está la separación del mínimo teórico. Bajo la renotación de Steele y Vigna, para una dimensión , la figura se define como [ 7 ] : 3 donde se definen como antes, y es la constante de Hermite de dimensión d . es la separación interplanar más pequeña posible. [ 7 ] : 3
L'Ecuyer 1991 introduce además dos medidas correspondientes al mínimo de en varias dimensiones. [ 8 ] Nuevamente bajo una nueva notación, es el mínimo para un LCG de dimensiones 2 a , y es el mismo para un generador de números pseudoaleatorios congruenciales multiplicativos (MCG), es decir, uno donde solo se usa la multiplicación, o . Steele y Vigna señalan que se calcula de manera diferente en estos dos casos, lo que requiere valores separados. [ 7 ] : 13 Además definen una figura de mérito promedio ponderada "armónica" , (y ). [ 7 ] : 13
Ejemplos
Una pequeña variante del infame RANDU , con : [ 4 ] : (Tabla 1)
Las cifras agregadas de mérito son: , . [ a ]
George Marsaglia (1972) lo considera "un candidato para el mejor de todos los multiplicadores" porque es fácil de recordar y tiene números de prueba espectrales particularmente grandes. [ 9 ]
Las cifras agregadas de mérito son: , . [ a ]
Steele y Vigna (2020) proporcionan los multiplicadores con las mayores cifras de mérito agregadas para muchas opciones de m = 2 n y una longitud de bits dada de a . También proporcionan los valores individuales y un paquete de software para calcular estos valores. [ 7 ] : 14–5 Por ejemplo, informan que el mejor a de 17 bits para m = 2 32 es:
Ilustración adicional
Referencias
- ↑ Williams, KB; Dwyer, Jerry (1 de agosto de 1996), "Prueba de generadores de números aleatorios, parte 2" , Dr. Dobb's Journal , consultado el 26 de enero de 2012..
- ↑ Marsaglia, George (septiembre de 1968). "Los números aleatorios caen principalmente en los planos" (PDF) . PNAS . 61 (1 ) : 25– 28. Bibcode : 1968PNAS...61...25M . doi : 10.1073/pnas.61.1.25 . PMC 285899. PMID 16591687 .
- ↑ Jain, Raj. "Prueba de generadores de números aleatorios (Conferencia)" (PDF) . Universidad de Washington en St. Louis . Consultado el 2 de diciembre de 2016 .
- 1 2 Knuth, Donald E. (1981), "3.3.4: La prueba espectral", El arte de la programación informática volumen 2: Algoritmos seminuméricos (2.ª ed.), Addison-Wesley .
- ↑ IBM, Paquete de subrutinas científicas System/360, Versión II, Manual del programador, H20-0205-1, 1967, pág. 54.
- ↑ International Business Machines Corporation (1968). "Paquete de subrutinas científicas IBM/360 (360A-CM-03X) Versión III" (PDF) . Biblioteca de Stan . II . White Plains, NY: Departamento de Publicaciones Técnicas de IBM: 77. doi : 10.3247/SL2Soft08.001 . Programa de aplicación científica H20-0205-3.
- 1 2 3 4 5 6 7 Steele, Guy L. Jr. ; Vigna, Sebastiano (febrero de 2022) [15 de enero de 2020]. "Multiplicadores computacionalmente fáciles y espectralmente buenos para generadores de números pseudoaleatorios congruenciales" . Software: Practice and Experience . 52 (2): 443– 458. arXiv : 2001.05304 . doi : 10.1002/spe.3030 .Software y datos asociados en https://github.com/vigna/CPRNG .
- ↑ L'Ecuyer, Pierre (enero de 1999). "Tablas de generadores congruenciales lineales de diferentes tamaños y buena estructura reticular" (PDF) . Matemáticas de la computación . 68 (225): 249– 260. Bibcode : 1999MaCom..68..249L . CiteSeerX 10.1.1.34.1024 . doi : 10.1090/S0025-5718-99-00996-5 . Asegúrese de leer también las erratas .
- ↑ Marsaglia, GEORGE (1972-01-01), "La estructura de las secuencias congruenciales lineales" , en Zaremba, SK (ed.), Aplicaciones de la teoría de números al análisis numérico , Academic Press, pp. 249–285 , ISBN 978-0-12-775950-0, consultado el 29/01/2024
Lecturas adicionales
- Entacher, Karl (enero de 1998). "Subsecuencias erróneas de generadores de números pseudoaleatorios congruenciales lineales bien conocidos". ACM Transactions on Modeling and Computer Simulation . 8 (1): 61– 70. doi : 10.1145/272991.273009 .– enumera (anotado como en este texto) muchos LCG conocidos
- Una versión ampliada de este trabajo está disponible como: Entacher, Karl (2001). "Una colección de generadores de números pseudoaleatorios seleccionados con estructuras lineales - versión ampliada" .
- Generadores de números pseudoaleatorios