Il Mersenne Twister è ampiamente considerato buono. Diamine, la fonte CPython afferma che "è uno dei generatori più ampiamente testati esistenti". Ma cosa significa? Quando viene chiesto di elencare le proprietà di questo generatore, la maggior parte di ciò che posso offrire è negativo:
- È massiccio e poco flessibile (ad es. Nessuna ricerca o flussi multipli),
- Non supera i test statistici standard nonostante le enormi dimensioni dello stato,
- Ha seri problemi intorno a 0, suggerendo che si randomizza piuttosto male,
- È appena veloce
e così via. Rispetto ai semplici RNG come XorShift *, è anche irrimediabilmente complicato.
Quindi ho cercato alcune informazioni sul perché questo fosse mai stato considerato buono. L'articolo originale fa molti commenti sul periodo "super astronomico" e sull'equidistribuzione a 623 dimensioni
Tra le molte misure note, i test basati sull'uniformità dimensionale superiore, come il test spettrale (cfr. Knuth [1981]) e il test di distribuzione k, descritti di seguito, sono considerati i più forti.
Ma, per questa proprietà, il generatore è battuto da un contatore di lunghezza sufficiente! Questo non fa commenti sulle distribuzioni locali , che è ciò di cui ti preoccupi in un generatore (anche se "locale" può significare varie cose). E anche i CSPRNG non si occupano di periodi così grandi, dal momento che non è solo lontanamente importante.
Ci sono molti calcoli nel documento, ma per quanto ne so poco si tratta in realtà della qualità della casualità. Praticamente ogni menzione di ciò passa rapidamente a queste affermazioni originali, in gran parte inutili.
Sembra che le persone siano saltate su questo carro a spese di tecnologie più vecchie e più affidabili. Ad esempio, se aumenti il numero di parole in un LCG a 3 (molto meno del "solo 624" di un Mersenne Twister) e produci la parola in cima a ogni passaggio, passa BigCrush ( la parte più difficile della suite di test TestU01 ), nonostante il Twister non riesca ( carta PCG, fig. 2 ). Alla luce di ciò, e delle deboli prove che sono stato in grado di trovare a sostegno del Mersenne Twister, che cosa ha suscitato attenzione per favorirlo rispetto alle altre scelte?
Anche questo non è puramente storico. Mi è stato detto per inciso che il Mersenne Twister è almeno più provato in pratica che, diciamo, PCG casuale . Ma i casi d'uso sono così esigenti da poter fare meglio delle nostre batterie di test? Alcuni googling suggeriscono che probabilmente non lo sono.
In breve, mi chiedo come il Mersenne Twister abbia ottenuto la sua diffusa reputazione positiva, sia nel suo contesto storico che in altro modo. Da un lato sono ovviamente scettico sulle sue qualità, ma dall'altro è difficile immaginare che si sia trattato di un evento del tutto casuale.