Generator MIXMAX

Generator MIXMAX
Mixmax rplot.png
Klasa generator liczb pseudolosowych
Struktura danych Szyk
Wydajność w najgorszym przypadku O( n )
Najlepsza wydajność O( n )
Średnia wydajność O( n )
Złożoność przestrzeni w najgorszym przypadku O( n )

Generator MIXMAX jest rodziną generatorów liczb pseudolosowych (PRNG) i jest oparty na C-układach Anosowa ( dyfeomorfizm Anosowa ) i K-systemach Kołmogorowa ( automorfizm Kołmogorowa ). Został wprowadzony w przeddruku z 1986 roku przez G. Savvidy'ego i N. Ter-Arutyunyana-Savvidy'ego i opublikowany w 1991 roku.

Szybka implementacja generatora w C / C++ została opracowana przez Konstantina Savvidy'ego. Okres generatora wynosi , a entropia Kołmogorowa wynosi dla rozmiaru macierzy . Ten generator zajmuje mniej niż 2 kb, a jeśli wymagany jest mniejszy stan generatora, istnieje również wersja N = 17 z wymaganiami pamięci mniejszymi niż 200 bajtów.

Generator działa na większości systemów 64-bitowych, w tym 64-bitowych odmianach Linuksa i Intel Mac. Został również przetestowany na PPC i ARM . Najnowsza wersja działa również w systemach 32-bitowych i Windows. Generator jest równie użyteczny z programami C++, został wybrany jako domyślny generator w CLHEP do użytku w Geant4 i istnieje interfejs ROOT . Został ostatnio szeroko przetestowany na bardzo różnych platformach, jako część wydania CLHEP/Geant4.

Analiza przeprowadzona przez L'Ecuyera, Wambergue i Bourcereta, patrz także, wykazała, że ​​generatory MIXMAX, podobnie jak wszystkie inne generatory rekurencyjne wielokrotne i generatory kongruencji liniowej , mają strukturę kratową, gdy generowane liczby losowe są rozpatrywane w przestrzeni n -wymiarowej większej niż wymiar N generatora macierzy i tylko w tym wysokim wymiarze n > N leżą na zbiorze równoległych hiperpłaszczyzn i wyznaczyły maksymalną odległość między pokrywającymi się hiperpłaszczyznami.

Linki zewnętrzne