Le Twister Mersenne est largement considéré comme bon. Heck, la source CPython dit qu’il est "l’un des générateurs les plus testés du monde". mais qu'est ce que ça veut dire? Quand on me demande de lister les propriétés de ce générateur, la plupart de ce que je peux offrir est mauvais:
- Il est massif et inflexible (par exemple, aucune recherche ou plusieurs flux),
- Il échoue aux tests statistiques standard malgré sa taille massive,
- Il a de sérieux problèmes autour de 0, suggérant qu'il se randomise assez mal,
- C'est à peine rapide
etc. Comparé à des GNA tels que XorShift *, il est également extrêmement compliqué.
J'ai donc cherché des informations sur les raisons pour lesquelles cela avait été considéré comme bon. Le document original fait de nombreux commentaires sur la période "super astronomique" et sur l’équidistribution à 623 dimensions, disant:
Parmi les nombreuses mesures connues, les tests basés sur l'uniformité dimensionnelle supérieure, tels que le test spectral (cf. Knuth [1981]) et le test de distribution k, décrits ci-dessous, sont considérés comme les plus puissants.
Mais, pour cette propriété, le générateur est battu par un compteur de longueur suffisante! Cela ne fait aucun commentaire sur les distributions locales , c'est ce qui compte vraiment dans un générateur (bien que "local" puisse signifier différentes choses). Et même les CSPRNG ne s’inquiètent pas de ces longues périodes, car ce n’est tout simplement pas très important.
Il y a beaucoup de maths dans le journal, mais pour autant que je sache, il s'agit en réalité de qualité aléatoire. Presque toutes les mentions à ce sujet reviennent rapidement à ces revendications originales, en grande partie inutiles.
Il semble que les gens se sont engagés dans ce mouvement au détriment de technologies plus anciennes et plus fiables. Par exemple, si vous augmentez à 3 le nombre de mots d'un LCG (beaucoup moins que le "seulement 624" d'un Twister Mersenne) et que vous transmettez le mot du haut à chaque passage, il passe BigCrush ( la partie la plus difficile de la suite de tests TestU01 ), malgré l’échec du Twister ( papier PCG, fig. 2 ). Compte tenu de cela et de la faiblesse des preuves que j’ai pu trouver à l’appui de Mersenne Twister, qu’est - ce qui a attiré l’attention sur son choix par rapport aux autres choix?
Ce n'est pas purement historique non plus. On m'a dit en passant que le Twister Mersenne était au moins plus éprouvé dans la pratique que, par exemple, PCG aléatoire . Mais les cas d'utilisation sont-ils si intelligents qu'ils peuvent faire mieux que nos batteries de tests? Certains Google suggèrent qu'ils ne le sont probablement pas.
En bref, je me demande comment le Twister Mersenne a obtenu sa réputation positive généralisée, à la fois dans son contexte historique et ailleurs. D'un côté, je suis évidemment sceptique quant à ses qualités, mais de l'autre, il est difficile d'imaginer qu'il s'agisse d'un événement entièrement aléatoire.