Спектральный тест
Спектральный тест — это статистический тест качества класса генераторов псевдослучайных чисел (PRNG), линейных конгруэнтных генераторов (LCG). [1] LCG обладают свойством: при построении в двух или более измерениях образуются линии или гиперплоскости, на которых можно найти все возможные выходные данные. [2] Спектральный тест сравнивает расстояние между этими плоскостями; чем дальше они друг от друга, тем хуже генератор. [3] Поскольку этот тест разработан для изучения решетчатых структур LCG, его нельзя применять к другим семействам PRNG.
По словам Дональда Кнута , [4] это, безусловно, самый мощный из известных тестов, поскольку он может не дать результатов LCG, которые проходят большинство статистических тестов. Подпрограмма IBM RANDU [5] [6] LCG не проходит этот тест для трех измерений и выше.
Пусть ГПСЧ генерирует последовательность . Позволять — максимальное расстояние между покрывающими параллельными плоскостями последовательности . Спектральный тест проверяет, что последовательность не разлагается слишком быстро.
Кнут рекомендует проверить, что каждое из следующих 5 чисел больше 0,01. где – модуль ЛКГ.
Цифры достоинств
[ редактировать ]Кнут определяет показатель качества , который описывает, насколько близко разделение находится на теоретическом минимуме. В новой нотации Стила и Винья для измерения , фигура определяется как: [7] : 3
- ,
где определяются, как и раньше, и постоянная Эрмита размерности d . – минимально возможное межплоскостное расстояние. [7] : 3
L'Ecuyer 1991 далее вводит две меры, соответствующие минимуму во многих измерениях. [8] Опять же под повторной записью, это минимум для LCG от габаритов от 2 до , и то же самое для мультипликативного конгруэнтного генератора псевдослучайных чисел (MCG), т.е. такого, в котором используется только умножение, или . Стил и Винья отмечают, что в этих двух случаях рассчитывается по-разному, что требует отдельных значений. [7] : 13 Они также определяют «гармоничный» средневзвешенный показатель качества, (и ). [7] : 13
Примеры
[ редактировать ]Небольшой вариант печально известного RANDU , с имеет: [4] : (Таблица 1)
д | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|
н 2 д | 536936458 | 118 | 116 | 116 | 116 | ||
μмкд | 3.14 | 10 −5 | 10 −4 | 10 −3 | 0.02 | ||
ж д [а] | 0.520224 | 0.018902 | 0.084143 | 0.207185 | 0.368841 | 0.552205 | 0.578329 |
Совокупные показатели достоинств таковы: , . [а]
Джорджа Марсальи (1972) Соображения как «кандидат на лучший из всех множителей», потому что его легко запомнить и он имеет особенно большие спектральные тестовые числа. [9]
д | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|
н 2 д | 4243209856 | 2072544 | 52804 | 6990 | 242 | ||
μмкд [б] | 3.10 | 2.91 | 3.20 | 5.01 | 0.017 | ||
ж д [а] | 0.462490 | 0.313127 | 0.457183 | 0.552916 | 0.376706 | 0.496687 | 0.685247 |
Совокупные показатели достоинств таковы: , . [а]
Steele & Vigna (2020) предоставляют множителям самые высокие совокупные показатели качества для многих вариантов m = 2. н и заданная битовая длина файла . Они также обеспечивают индивидуальное значения и пакет программ для расчета этих значений. [7] : 14–5 Например, они сообщают, что лучший 17-битный a для m = 2 32 является:
Дополнительная иллюстрация
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: Перейти обратно: а б с д Рассчитано с использованием программного обеспечения Steele & Vigna (2020), программа «mspect» (src/spect.cpp, мультипликативный режим).
- ^ Рассчитано по ν 2
d сообщил Марсалья.
- ^ Уильямс, КБ; Дуайер, Джерри (1 августа 1996 г.), «Тестирование генераторов случайных чисел, часть 2» , Журнал доктора Добба , получено 26 января 2012 г.
- ^ Марсалья, Джордж (сентябрь 1968 г.). «Случайные числа падают в основном в плоскостях» (PDF) . ПНАС . 61 (1): 25–28. Бибкод : 1968ПНАС...61...25М . дои : 10.1073/pnas.61.1.25 . ПМЦ 285899 . ПМИД 16591687 .
- ^ Джайн, Радж. «Тестирование генераторов случайных чисел (лекция)» (PDF) . Вашингтонский университет в Сент-Луисе . Проверено 2 декабря 2016 г.
- ^ Jump up to: Перейти обратно: а б Кнут, Дональд Э. (1981), «3.3.4: Спектральный тест», Искусство компьютерного программирования, том 2: Получисловые алгоритмы (2-е изд.), Аддисон-Уэсли .
- ^ IBM, Пакет научных подпрограмм System/360, версия II, Руководство программиста, H20-0205-1, 1967, стр. 54.
- ^ Международная корпорация бизнес-машин (1968). «Пакет подпрограмм IBM/360 Scientific (360A-CM-03X), версия III» (PDF) . Библиотека Стэна . II . Уайт-Плейнс, штат Нью-Йорк: Отдел технических публикаций IBM: 77. doi : 10.3247/SL2Soft08.001 . Программа научного применения H20-0205-3.
- ^ Jump up to: Перейти обратно: а б с д и ж г Стил, Гай Л. младший ; Винья, Себастьяно (февраль 2022 г.) [15 января 2020 г.]. «Простые в вычислении спектрально хорошие множители для конгруэнтных генераторов псевдослучайных чисел» (PDF) . Программное обеспечение: практика и опыт . 52 (2): 443–458. arXiv : 2001.05304 . дои : 10.1002/сп.3030 . Сопутствующее программное обеспечение и данные доступны по адресу https://github.com/vigna/CPRNG .
- ^ Л'Экуйер, Пьер (январь 1999 г.). «Таблицы линейных конгруэнтных генераторов разных размеров и хорошей решетчатой структуры» (PDF) . Математика вычислений . 68 (225): 249–260. Бибкод : 1999MaCom..68..249L . CiteSeerX 10.1.1.34.1024 . дои : 10.1090/S0025-5718-99-00996-5 . Обязательно прочтите « Ошибки» . также
- ^ Марсалья, ДЖОРДЖ (1972-01-01), Заремба, С.К. (редактор), «Структура линейных конгруэнтных последовательностей» , «Приложения теории чисел к численному анализу » , Academic Press, стр. 249–285, ISBN 978-0-12-775950-0 , получено 29 января 2024 г.
Дальнейшее чтение
[ редактировать ]- Энтачер, Карл (январь 1998 г.). «Плохие подпоследовательности известных линейных конгруэнтных генераторов псевдослучайных чисел». ACM-транзакции по моделированию и компьютерному моделированию . 8 (1): 61–70. дои : 10.1145/272991.273009 . – перечисляет (обозначается как в этом тексте) многих известных LCG
- Расширенная версия этой работы доступна по адресу: Энтачер, Карл (2001). «Коллекция избранных генераторов псевдослучайных чисел с линейными структурами — расширенная версия» .