AccueilđŸ‡«đŸ‡·Chercher

Mersenne Twister

Le Mersenne Twister est un gĂ©nĂ©rateur de nombres pseudo-alĂ©atoires, rĂ©putĂ© pour sa qualitĂ©, dĂ©veloppĂ© par Makoto Matsumoto et Takuji Nishimura en 1997. L’algorithme est fondĂ© sur un TGSFR (twisted generalised shift feedback register, un type particulier de registre Ă  dĂ©calage Ă  rĂ©troaction) et tient son nom d’un nombre premier de Mersenne. Il existe au moins deux variantes majeures, la plus rĂ©pandue Ă©tant MT 19937, utilisant le nombre premier de Mersenne et prĂ©sente les propriĂ©tĂ©s suivantes :

  • sa pĂ©riode est de ;
  • il est uniformĂ©ment distribuĂ© sur un grand nombre de dimensions (623 pour les nombres de 32 bits) ;
  • il est plus rapide que la plupart des autres gĂ©nĂ©rateurs (sauf les plus mĂ©diocres statistiquement) ;
  • il est alĂ©atoire quel que soit le poids du bit considĂ©rĂ©, suivant les tests Diehard[1], mais Ă©choue systĂ©matiquement sur deux des tests BigCrush de TestU01 (en).

Une révision de l'algorithme a été faite afin de combler quelques lacunes, notamment l'initialisation correcte, afin d'assurer la maximisation de la période.

Applications

L'algorithme Mersenne Twister a Ă©tĂ© optimisĂ© pour ĂȘtre utilisĂ© dans le cadre de simulations de Monte-Carlo dans un grand nombre de domaines, migration de photons, coalescence du gĂ©nome, biologie cellulaire et finance informatique. Le Mersenne Twister est le gĂ©nĂ©rateur de nombres alĂ©atoires par dĂ©faut en Python, Ruby, R, PHP, MATLAB et Stata depuis la version 2014. Il est Ă©galement disponible en C++ depuis la version 2011 du standard[2].

C'est également un générateur de nombres pseudo-aléatoires de SPSS.

Avantages

La version la plus communément utilisée de Mersenne Twister, MT19937, qui crée une suite d'entiers de 32-bits, possÚde une propriété intéressante : il possÚde une trÚs longue période.

Sécurité cryptographique

Mersenne Twister, contrairement Ă  l’algorithme Blum Blum Shub, est insuffisant pour une utilisation en cryptographie car des algorithmes tels que Berlekamp-Massey ou Reed-Sloane permettent d’en prĂ©dire le comportement. Il reste cependant trĂšs utilisĂ© dans tous les domaines hors de la cryptographie en raison de son efficacitĂ©.

Voir aussi

Les générateurs congruentiels linéaires (Linear Congruential Generator) ont une période inférieure ou égale à leur modulo. Hugo Foulon a écrit, en 1985, dans sa thÚse nommée Les aléas du hasard qu'un générateur était de bonne qualité s'il respectait les rÚgles de Knuth.

Références

  1. « Why MT? », sur hiroshima-u.ac.jp (consulté le ).
  2. ISO C++ - 26.5.3.2 Class template mersenne_twister_engine
  • M. Matsumoto et T. Nishimura, Mersenne twister: A 623-dimensionally equidistributed uniform pseudorandom number generator, ACM Trans. dans Modeling and Computer Simulations, 1998.

Liens externes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.