Generador lineal congruencial

Visualización de la generación de números pseudoaleatorios en el intervalo discreto utilizando un generador lineal congruencial. Las dos filas superiores muestran un generador con , y obteniéndose los números mostrados de izquierda a derecha hasta que se obtiene la semilla, y la secuencia repite. Una semilla de permite un ciclo de longitud pero una semilla de solo permite un ciclo de longitud . Utilizando y (fila inferior) se obtiene un ciclo de longitud para cualquier semilla.

Un generador lineal congruencial (GLC) es un algoritmo que permite obtener una secuencia de números pseudoaleatorios calculados con una función lineal definida a trozos discontinua. Es uno de los métodos más antiguos y conocidos para la generación de números pseudoaleatorios.[1]​ La teoría que sustenta el proceso es relativamente fácil de entender, el algoritmo en sí es de fácil implementación y su ejecución es rápida, especialmente cuando el hardware del ordenador puede soportar aritmética modular al truncar el bit de almacenamiento correspondiente.

Definición

La secuencia de números enteros está definida por la relación de recurrencia:

con donde (el módulo), (el multiplicador), (el incremento) y (la semilla o valor inicial) son números enteros no negativos.

Además a los números y se les impone las condiciones , , y .

Si , el generador es llamado frecuentemente Generador Congruencial Lineal Multiplicativo (GLMC) o generador de números pseudoaleatorios de Lehmer pero si , el generador es llamado Generador Congruencial Lineal Mixto (GLMC).[2]

Cada entero queda completamente determinado por las constantes y pues puede demostrarse por inducción matemática que para

Periodo

Se dice que un generador congruencial cumple un ciclo cuando el número entero , con , coincide con la semilla , cuando sucede esto, la secuencia de números generados se repetirá en el mismo orden.

El período de un generador congruencial se define como la longitud de un ciclo y dado que depende de y entonces el periodo máximo puede ser a lo más su módulo y en tal caso diremos que el generador congruencial tiene un periodo completo.

Si un generador congruencial tiene un periodo completo entonces para cualquier valor que tome la semilla en producirá un ciclo en algún orden pero si el generador no tiene un periodo completo, esto es, su periodo es menor a entonces la longitud del ciclo dependerá del valor escogido de la semilla .

Teorema

El generador congruencial lineal dado por

tendrá período completo para cualquier valor de la semilla en si y sólo si:[2][3]

  1. y son primos relativos, es decir, .
  2. es múltiplo de todos los factores primos de , es decir, para todo factor primo de .
  3. Si es múltiplo de entonces también lo es, es decir, .

Estas tres condiciones son conocidas como el Teorema Hull-Dobell.[4][5]

El Generador Congruencial Lineal Multiplicativo (GLMC) no cumple la primera condición, pues , por lo que no tienen periodo completo .

Aunque los GLC son capaces de producir números pseudoaleatorios que pueden pasar las pruebas de aleatoriedad, esta posibilidad es extremadamente sensible a la elección de los parámetros y .[aclaración requerida]

Históricamente, elecciones inadecuadas llevaron a implementaciones inefectivas de GLC. Un ejemplo que ilustra esta situación es el generador RANDU, que fue ampliamente utilizado a inicios de los 1970, y ha llevado a que en la actualidad, varios resultados sean puestos en entredicho por el uso de este GLC inefectivo.[6]

Parámetros de uso común

Los GLC más eficientes tienen un módulo igual a una potencia de 2, siendo más frecuentes o , porque esto permite que el operador módulo opere tan solo truncando todos los bits excepto los 32 o 64 bits más cercanos a la derecha (de hecho, esto puede lograrse simplemente al no computar en absoluto los bits más significativos). La siguiente tabla enlista los parámetros de varios GLC comúnmente usados, incluyendo las funciones "rand()" presentes en las bibliotecas runtime de varios compiladores.

Fuente m (multiplicador) a (incremento) c Bits de salida en rand() o Random(L)
Numerical Recipes 232 1664525 1013904223
Borland C/C++ 232 22695477 1 bits 30..16 en rand(), 30..0 en lrand()
glibc (usado por GCC)[7] 231 - 1 1103515245 12345 bits 30..0
ANSI C: Watcom, Digital Mars, CodeWarrior, IBM VisualAge C/C++[8]
C99, C11: Suggestion in the ISO/IEC 9899[9]
231 1103515245 12345 bits 30..16
Borland Delphi, Virtual Pascal 232 134775813 1 bits 63..32 de (semilla * L)
Turbo Pascal 232 134775813 (0x808840516) 1
Microsoft Visual/Quick C/C++ 232 214013 (343FD16) 2531011 (269EC316) bits 30..16
Microsoft Visual Basic (6 and earlier)[10] 224 1140671485 (43FD43FD16) 12820163 (C39EC316)
RtlUniform from Native API[11] 231 − 1 2147483629 (7FFFFFED16) 2147483587 (7FFFFFC316)
Apple CarbonLib, C++11's minstd_rand0[12] 231 − 1 16807 0 ver MINSTD
C++11's minstd_rand[12] 231 − 1 48271 0 ver MINSTD
MMIX by Donald Knuth 264 6364136223846793005 1442695040888963407
Newlib, Musl 264 6364136223846793005 1 bits 63...32
VMS's MTH$RANDOM,[13]​ old versions of glibc 232 69069 (10DCD16) 1
.Random en Java, POSIX [ln]rand48, glibc [ln]rand48[_r] 248 − 1 25214903917 (5DEECE66D16) 11 bits 47...16

random0[14][15][16][17][18]

Si Xn es par, entonces Xn+1 será impar, y viceversa—el bit más bajo oscila a cada paso.

134456 = 2375 8121 28411
POSIX[19]​ [jm]rand48, glibc [mj]rand48[_r] 248 25214903917 (5DEECE66D16) 11 bits 47...15
POSIX [de]rand48, glibc [de]rand48[_r] 248 25214903917 (5DEECE66D16) 11 bits 47...0
cc65[20] 223 65793 (1010116) 4282663 (41592716) bits 22...8
cc65 232 16843009 (101010116) 826366247 (3141592716) bits 31...16
Anteriormente de uso común: RANDU[6] 231   65539 0

Como se puede observar, los GLC no siempre usan todos los bits en el valor que producen. Por ejemplo, la implementación de Java opera con valores de bits en cada iteración, pero solo retorna los bits más significativos. Esto se debe a que los bits superiores tienen periodos más largos que los inferiores (ver más abajo). Los GLC que usan esta técnica de truncado producen valores estadísticamente mejores en comparación a aquellos que no lo hacen.

Ventajas y desventajas

Los GLC son rápidos, y requieren poca memoria (normalmente 32 o 64 bits) para retener su estado. Esto los hace valiosos para simular flujos múltiples.

Hiperplanos de un generador lineal congruencial en tres dimensiones

Los GLC no deberían ser usados en aplicaciones para las que se requiera aleatoriedad de alta calidad. Por ejemplo, esta técnica es inadecuada para el uso en una simulación de Monte Carlo debido a la correlación serial de la secuencia (entre otros motivos). Tampoco deberían usarse para aplicaciones criptográficas; ejemplos de generadores más adecuados para esta función se pueden encontrar en Generador de números pseudoaleatorios criptográficamente seguro. Si un GLC es sembrado con un carácter e iterado una única vez, el resultado es un sencillo cifrado afín clásico, el cual puede ser descifrado con un análisis de frecuencia estándar.

Los GLC tienden a exhibir severos defectos. Por ejemplo, si un GLC es usado para elegir puntos en un espacio n-dimensional, los puntos yacerán ,a lo sumo, sobre (n!m)1/n hiperplanos (teorema desarrollado por George Marsaglia). Esto se debe a la correlación serial entre valores sucesivos en la secuencia Xn. La prueba espectral, la cual es una simple evaluación de la calidad de un GLC, está basada en este hecho.

Otro inconveniente del uso de esta técnica es que los bits de menor valor de la secuencia generada tienen un periodo mucho menor a la secuencia como un todo, si a le es asignado una potencia de 2. En términos generales, el bit menos significativo, ocupando el lugar en base en la secuencia de salida (tal que para un cierto entero ), se repite con periodo de, a lo sumo, .

Sin embargo, para varias aplicaciones los GLC son una buena opción. Un ejemplo puede verse en los sistemas embebidos, en los que la memoria disponible se ve severamente limitada. De manera similar, en un ambiente como una consola de videojuegos puede bastar referirse a los bits más significativos de la secuencia de salida. Los bits de menor orden de un GLC no deberían ser usados para ningún nivel de aleatoriedad si el valor m de dicho generador es una potencia de dos. En particular, cualquier GLC de ciclo completo cuando m es una potencia de 2 producirá alternativamente resultados pares e impares.

Comparación con otros generadores de números pseudoaleatorios

Los generadores basados en recurrencias lineales (como xorshift*) superan el desempeño de los GLC, incluso para un número total de estados pequeño, y si son adecuadamente perturbados en la señal de salida, pueden superar pruebas estadísticas difíciles. Varios ejemplos pueden encontrarse en la familia de generadores Xorshift.

El algoritmo Mersenne twister provee un periodo largo y uniformidad variada, pero no supera algunas pruebas estadísticas.[21]​ Una implementación común del Mersenne twister, usa un GLC para generar su semilla.[cita requerida]

Los generadores lineales congruenciales presentan el inconveniente de generar secuencias de salida cuyos bits presentan distintos niveles de aleatoriedad. Un generador que haga uso de un registro de desplazamiento con retroalimentación lineal produce un flujo de bits, cada uno realmente pseudoaleatorio,[22]​ y puede ser implementado en esencia, con la misma cantidad de memoria que un GLC, aunque usando más cómputos.

El registro de desplazamiento con retroalimentación lineal tiene una fuerte relación con los GLCs.[23]​ Dados algunos valores en la secuencia, ciertas técnicas pueden predecir los siguientes valores en la secuencia, no solo para los GLC, sino también para cualquier otro generador congruencial polinomial.[23]

Referencias

  1. "Linear Congruential Generators" por Joe Bolte, Wolfram Demonstrations Project.
  2. a b Donald E. Knuth (6 de mayo de 2014). Art of Computer Programming, Volume 2: Seminumerical Algorithms. Addison-Wesley Professional. pp. 4-. ISBN 978-0-321-63576-1. 
  3. Knuth, Donald E. Art of Computer Programming, Volume 2: Seminumerical Algorithms (3ra edición). Addison-Wesley Professional. pp. 17-19. ISBN 978-0-321-63576-1. 
  4. Hull, T. E.; Dobell, A. R. (1 de enero de 1962). «Random Number Generators». SIAM Review 4 (3): 230-254. doi:10.1137/1004061. Consultado el 26 de junio de 2016. 
  5. Severance, Frank (2001). System Modeling and Simulation. John Wiley & Sons, Ltd. pp. 86. ISBN 0-471-49694-4. 
  6. a b Press, William H. (1992). Numerical Recipes en Fortran 77: The Art of Scientific Computing (2nd edición). ISBN 0-521-43064-X. 
  7. El rand() de la librería C de GNU en stdlib.h usa un GLC simple (de estado único) sólo en caso de que el estado sea declarado como de 8 bytes. Si el estado es más grande (un arreglo), el generador se vuelve un generador de retroalimentación aditiva y el período se incrementa. Véase también el código simplificado que reproduce la secuencia aleatoria de esta librería.
  8. «A collection of selected pseudorandom number generators with linear structures, K. Entacher, 1997». Consultado el 16 de junio de 2012. 
  9. «Last public Committee Draft from April 12, 2011, page 346f». Consultado el 21 Dec 2014. 
  10. «How Visual Basic Generates Pseudo-Random Numbers for the RND Function». Microsoft Support. Microsoft. Consultado el 17 de junio de 2011. 
  11. A pesar de la documentación hallada en MSDN, RtlUniform usa GLC, y no el algoritmo de Lehmer, implementaciones anteriores a Windows Vista contienen errores, porque el resultado de la multiplicación es truncada a 32 bits antes de la aplicación del operador módulo.
  12. a b «ISO/IEC 14882:2011». ISO. 2 de septiembre de 2011. Consultado el 3 de septiembre de 2011. 
  13. GNU Scientific Library: Other random number generators
  14. Stephen J. Chapman. "Example 6.4 - Random Number Generator". "MATLAB Programming for Engineers". 2015. p. 253-256.
  15. Stephen J. Chapman. "Example 6.4 - Random Number Generator". "MATLAB Programming with Applications for Engineers". 2012. p. 292-295.
  16. S. J. Chapman. random0. 2004.
  17. Stephen J. Chapman. "Introduction to Fortran 90/95". 1998. p. 322-324.
  18. Wu-ting Tsai. "'Module': A Major Feature of the Modern Fortran" Archivado el 24 de febrero de 2021 en Wayback Machine.. p. 6-7.
  19. The Open Group Base Specifications Issue 7 IEEE Std 1003.1, 2013 Edition
  20. Cadot, Sidney. «rand.s». cc65. Consultado el 8 de julio de 2016. 
  21. Matsumoto, Makoto, and Takuji Nishimura (1998) ACM Transactions on Modeling and Computer Simulation 8
  22. * Neil Gershenfeld. The Nature of Mathematical Modeling, Primera Edición. Cambridge University Press, 1999. ISBN 0-521-57095-6. Sección 5.3.2: Linear Feedback, p. 59.
  23. a b RFC 4086 Sección 6.1.3 "Traditional Pseudo-random Sequences"

Read other articles:

Halaman ini berisi artikel tentang studi struktural di bidang teknik. Untuk penggunaan ilmu sosial, lihat strukturalisme. [1]Analisis struktur merupakan ilmu untuk menentukan efek dari beban pada struktur fisik dan komponennya. Adapun cabang pemakaiannya meliputi analisis bangunan, jembatan, perkakas, mesin, tanah, dll. Analisis struktur menggabungkan bidang mekanika teknik, teknik material dan matematika teknik untuk menghitung deformasi struktur, kekuatan internal, tegangan, tekanan...

 

American politician (born 1968) Darin LaHoodMember of theU.S. House of Representativesfrom IllinoisIncumbentAssumed office September 17, 2015Preceded byAaron SchockConstituency18th district (2015–2023)16th district (2023–present)Member of the Illinois Senatefrom the 37th districtIn officeMarch 1, 2011 – September 10, 2015Preceded byDale RisingerSucceeded byChuck Weaver Personal detailsBornDarin McKay LaHood (1968-07-05) July 5, 1968 (age 55)Peoria, Illinois, U.S.Politi...

 

Artikel ini membutuhkan rujukan tambahan agar kualitasnya dapat dipastikan. Mohon bantu kami mengembangkan artikel ini dengan cara menambahkan rujukan ke sumber tepercaya. Pernyataan tak bersumber bisa saja dipertentangkan dan dihapus.Cari sumber: Persatuan Bulu Tangkis Seluruh Indonesia – berita · surat kabar · buku · cendekiawan · JSTOR (Agustus 2022) Persatuan Bulu Tangkis IndonesiaOlahragaBulutangkisYurisdiksiNasionalSingkatanPBSIBerdiri5 Mei 1951;...

يمحاض المدة؟   عاصمة حلب  نظام الحكم غير محدّد نظام الحكم ملكية مطلقة  التاريخ التأسيس 2004 ق.م  التأسيس 2004 ق.م  النهاية 1595 ق.م  تعديل مصدري - تعديل   يمحاض مملكة في شمال غرب سوريا ازدهرت من القرن التاسع عشر قبل الميلاد وحتى النصف الثاني من القرن السابع عشر قبل �...

 

الدوري الإندونيسي الممتاز 2011–12 تفاصيل الموسم الدوري الإندونيسي الممتاز  [لغات أخرى]‏  البلد إندونيسيا  البطل نادي سيمين بادانغ  عدد المشاركين 12   دوري السوبر الإندونيسي 2010–11  الدوري الإندونيسي الممتاز 2013  تعديل مصدري - تعديل   الدوري الإندونيسي �...

 

2008 2012 Élections législatives américaines de 2010 435 sièges de la Chambre des représentants 2 novembre 2010 Parti républicain – John Boehner Voix 44 827 441 51,7 %   9,1 Sièges obtenus 242  64 Parti démocrate – Nancy Pelosi Voix 38 980 192 44,9 %   8,3 Sièges obtenus 193  64 Président de la Chambre des représentants Sortant Élu Nancy Pelosi Parti démocrate John Boehner Parti républicain ...

Questa voce sugli argomenti aree naturali protette della Francia e patrimoni dell'umanità è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Riserva naturale di Scandola Tipo di areaRiserva naturale Codice WDPA7168 Class. internaz.Categoria IUCN IV: area di conservazione di habitat/specie Stato Francia RegioneCorsica DipartimentoCorsica settentrionaleCorsica del Sud ComuniCalenzana, Galeria, Ota, Osani, Partinello, Piana, Serriera Superficie a terr...

 

Guanxi Hanzi tradisional: 關係 Hanzi sederhana: 关系 Alih aksara Mandarin - Hanyu Pinyin: guānxi - Wade-Giles: kuan-hsi - Bopomofo: ㄍㄨㄢ ㄒㄧ˙ Min Nan - Romanisasi POJ: koan-hē Yue (Kantonis) - Romanisasi Yale: gwāan haih - Jyutping: gwaan1 hai6 Guanxi (Hanzi sederhana: 关系; Hanzi tradisional: 關係; Pinyin: guānxi) merupakan dinamika mendasar dalam jaringan sosial kekuasaan yang dipersonalisasi dan telah menjadi sebuah sistem kepercayaan yang penting dalam bu...

 

News agency of the Chinese Communist Party China News Service中国新闻社Logo of CNSHeadquarters in 2020Founded1 October 1952; 71 years ago (1952-10-01)TypeBroadcast radio, television and onlineLocationChinaParent organizationUnited Front Work Department of the Central Committee of the Chinese Communist PartyWebsiteecns.cnchinanews.com.cn Politics of China Leadership Leadership generations Succession of power Hu–Wen Administration (2002–2012) Xi–Li Administratio...

Biographical encyclopedia Not to be confused with Australian Dictionary of Biography. Dictionary of Australian Biography AuthorPercival Serle (1871–1951)CountryAustraliaLanguageEnglishSubjectBiographies of notable Australians who died before 1942GenreEncyclopediaPublisherAngus and RobertsonPublication date1949Dewey Decimal920.094 The Dictionary of Australian Biography, published in 1949, is a reference work by Percival Serle containing information on notable people associated with Australia...

 

This article's lead section may be too short to adequately summarize the key points. Please consider expanding the lead to provide an accessible overview of all important aspects of the article. (November 2021) City in Illinois, United StatesElmhurst, IllinoisCity FlagSealMottoes: Close to Everything, Unlike AnythingIdeal for your business, your family, your lifeLocation of Elmhurst in DuPage County, Illinois.Coordinates: 41°53′58″N 87°56′25″W / 41.89947°N 87.9...

 

Berikut merupakan daftar 353 komune di département Ille-et-Vilaine, di Prancis. (CAR) Agglomeration community of the Rennes Métropole, dibentuk tahun 2000. (CAS) Agglomeration community of Pays de Saint-Malo, dibentuk tahun 2001. (CAV) Agglomeration community of the Vitré community, dibentuk tahun 2002. Kode INSEE Kode pos Komune 35001 35690 Acigné (CAR) 35002 35150 Amanlis 35003 35250 Andouillé-Neuville 35004 35560 Antrain 35005 35130 Arbrissel 35006 35370 Argentré-du-Plessis (CAV) 35...

First Congregational Church of Ceredo, West Virginia. Salah satu gereja kongregasional di Amerika Serikat. Kongregasional (Inggris: Congregational) adalah jenis pemerintahan gereja yang berpusat pada kongregasi atau jemaat atau gereja lokal.[1] Kata kongregasional memiliki akar kata kongregasi yang berasal bahasa Latin, congregationes, yang berarti pertemuan bersama-sama atau pertemuan rutin.[1] Nama Kongregasional pertama kali muncul dari sebuah perkumpulan di Skotlandia pada...

 

† Стеллерова корова Муляж стеллеровой коровы в Лондонском музее естествознания Научная классификация Домен:ЭукариотыЦарство:ЖивотныеПодцарство:ЭуметазоиБез ранга:Двусторонне-симметричныеБез ранга:ВторичноротыеТип:ХордовыеПодтип:ПозвоночныеИнфратип:Челюстно�...

 

  لمعانٍ أخرى، طالع نادي الخلود (توضيح). نادي الخلود الاسم الكامل نادي الخلود السعودي اللقب فخر الرس الألوان الأخضر    الأحمر     الأبيض     تأسس عام 1970  الملعب ملعب نادي الحزم البلد السعودية  الدوري دوري الدرجة الأولى السعودي 2023-2024 ال�...

British politician (1767–1794) The Right HonorableLord Mount StartJohn Stuart (study for full-length portrait by Thomas Lawrence)Member of Parliamentfor CardiffIn office1790–1794Preceded byHerbert MackworthSucceeded byLord Evelyn Stuart Personal detailsBorn(1767-09-25)25 September 1767Grosvenor Square, LondonDied22 January 1794(1794-01-22) (aged 26)Bassingbourn Hall, Stansted, EssexSpouseElizabeth Penelope McDouall-CrichtonChildrenJohn Crichton-Stuart, 2nd Marquess of ButeLord Patric...

 

Esta é uma lista de municípios do Rio de Janeiro ordenados por Índice FIRJAN de Desenvolvimento Municipal (IFDM) conforme dados divulgados pelo Sistema FIRJAN em 2015 com base no ano de 2013.[1] O Índice FIRJAN de Desenvolvimento Municipal (IFDM) é um estudo anual criado para acompanhar o desenvolvimento humano, econômico e social dos municípios do Estado do Rio de Janeiro e do Brasil (5.565 no total),[2] com base exclusivamente em estatísticas oficiais.[3] Ele lev...

 

This article is about the San Francisco office building. For the Los Angeles office building, see One California Plaza. For the bank, see OneCalifornia Bank. For the anti-partition California political group, see Six Californias. For other uses, see 1 California. Commercial offices in San Francisco, CaliforniaOne CaliforniaIn 2021Location within San FranciscoShow map of San FranciscoOne California (California)Show map of CaliforniaOne California (the United States)Show map of the United State...

جوائز الأكاديمية البريطانية للأفلاممعلومات عامةنوع الجائزة جائزة أفلام البلد المملكة المتحدة مقدمة من الأكاديمية البريطانية لفنون السينما والتلفزيون أول جائزة 29 مايو 1949 موقع الويب awards.bafta.org (الإنجليزية) تعديل - تعديل مصدري - تعديل ويكي بيانات جوائز الأكاديمية البريطانية...

 

British publishing and television group Northern & Shell plcThe Northern & Shell Building in front of Tower 42, with 20 Fenchurch Street under construction, in August 2012.Company typeLimited companyFoundedDecember 1974; 49 years ago (1974-12)FounderRichard DesmondHeadquartersLower Thames StreetLondon, EC3United KingdomServicesPublishing and televisionOwnerRichard DesmondWebsitenorthernandshell.co.uk Northern & Shell (holding company name Northern and Shell ...