TestU01

経験的ランダム性検定のためのユーティリティ集

TestU01は、 ANSI C言語で実装されたソフトウェアライブラリで、乱数発生器(RNG)経験的ランダム性テスト用のユーティリティコレクションを提供しています。 [1]このライブラリは、2007年にモントリオール大学 のピエール・ルキュイエとリチャード・シマールによって初めて導入されました[2]

このライブラリは、文献で提案されているものや広く使用されているソフトウェアで使用されているものなど、様々な種類の乱数生成器を実装しています。乱数生成器に対する古典的な統計的検定の一般的な実装に加え、文献で提案されているものや独自の検定もいくつか提供しています。これらの検定は、ライブラリで定義済みの生成器、ユーザー定義の生成器、そしてファイルに保存された乱数ストリームに適用できます。 [0,1]の一様乱数列またはビット列を対象とした特定の検定スイートも利用可能です。生成器によって生成された点のベクトルをプロットするための基本的なツールも提供されています。

歴史

RNGのための最初の一連のランダム性テストは、1969年にドナルド・クヌースによって出版された『The Art of Computer Programming』初版で提案されました。クヌースのテストはその後、15種類の異なるテストからなるジョージ・マルサリアダイハードテスト(1996年)に取って代わられました。テストパラメータを変更したり、新しいテストを追加したりすることができなかったため、TestU01ライブラリが開発されました

機能

TestU01は、RNGを解析するための4つのモジュールグループを提供します。

  1. (事前にプログラムされた)RNGの実装
  2. 特定の統計テストを実装する。
  3. 一連の統計的テストの実施。
  4. RNG ファミリ全体にテストを適用します。

RNGによって生成されたサイズnのサンプルに特定のテストを適用すると、サンプルサイズが増加しても、例えばn 0に達するまでは、テストのp値は通常、妥当な値を維持します。その後、p値は指数関数的に0または1に発散します。モジュール4では、研究者は特定のテストと、特定のRNGファミリーによって生成された点集合の構造との相互作用を研究できます。この手法は、ジェネレータの周期長の関数として、ジェネレータがテストに体系的に失敗するようになる前に、どの程度のサンプルサイズが必要かを決定するために使用できます。

TESTU01は、「Small Crush」(10個のテスト)、「Crush」(96個のテスト)、「Big Crush」(106個のテスト)など、複数のテストバッテリーを提供しています。各バッテリーで適用される具体的なテストについては、ユーザーガイドに記載されています。[3] Red Hat Linux 9.0を搭載した1.7GHz Pentium 4マシンでは、単純なRNGの場合、Small Crushは約2分、Crushは約1.7時間、Big Crushは約4時間かかります。より複雑なRNGの場合、これらの時間はすべて2倍以上に長くなります。比較のために、Diehardテストの実行時間は約15秒です。

制限事項

TestU01は32ビットの入力のみを受け付け、[0, 1]の範囲の値として解釈します。そのため、最上位ビットの欠陥に対して最下位ビットよりも敏感になります。汎用ジェネレータをビット反転形式でテストし、下位ビットを使用するアプリケーションへの適合性を検証することが重要です。[4] : 4 

64ビットの出力を生成するジェネレータでは、さらに上位半分と下位半分を個別にテストする必要があります。[5] : 51 

参照

参考文献

  1. ^ TestU01ウェブサイト
  2. ^ Pierre L'Ecuyer & Richard Simard (2007)、「TestU01:乱数生成器の実証的テストのためのANSI Cソフトウェアライブラリ」、ACM Transactions on Mathematical Software、33: 22
  3. ^ TestU01 ユーザーズ ガイド。
  4. ^ Vigna, Sebastiano (2016年7月). 「MarsagliaのXORシフト生成器の実験的探究、スクランブル化」(PDF) . ACM Transactions on Mathematical Software . 42 (4): 30. arXiv : 1402.6246 . doi :10.1145/2845077. S2CID  13936073.
  5. ^ O'Neill, Melissa E. (2014年9月5日). PCG: シンプルで高速、かつ空間効率に優れ、統計的に優れた乱数生成アルゴリズム群(PDF) (技術レポート).ハーベイ・マッド・カレッジ. HMC-CS-2014-0905.
「https://en.wikipedia.org/w/index.php?title=TestU01&oldid=1167043929」から取得