WikiDer > Test U01

TestU01

Test U01 a dasturiy ta'minot kutubxonasi, amalga oshirilgan ANSI C uchun kommunal xizmatlar to'plamini taqdim etadigan til empirik tasodifiy test ning tasodifiy raqamlar generatorlari (RNG).[1] Kutubxona birinchi marta 2007 yilda Per L'Ekuyer va Richard Simard tomonidan taqdim etilgan Montreal universiteti.[2]

Kutubxonada tasodifiy sonli generatorlarning bir nechta turlari, shu jumladan adabiyotlarda tavsiya etilganlari va keng qo'llaniladigan dasturlarda mavjud bo'lgan turlari mavjud. U tasodifiy sonlar generatorlari uchun klassik statistik testlarning umumiy qo'llanmalarini, shuningdek adabiyotda taklif qilingan bir nechta va asl nusxalarini taqdim etadi. Ushbu testlarni kutubxonada oldindan belgilangan generatorlar, foydalanuvchi tomonidan belgilangan generatorlar va fayllarda saqlanadigan tasodifiy sonlar oqimiga qo'llash mumkin. Ikkala ketma-ketlik uchun maxsus testlar to'plamlari bir xil [0,1] yoki bit ketma-ketlikdagi tasodifiy sonlar ham mavjud. Jeneratorlar tomonidan ishlab chiqarilgan nuqtalar vektorlarini chizish uchun asosiy vositalar ham taqdim etilgan.

Tarix

RNGlar uchun tasodifiy testlarning dastlabki batareyasi 1969 yil birinchi nashrida taklif qilingan Kompyuter dasturlash san'ati tomonidan Donald Knuth. Keyinchalik Knutning sinovlari to'xtatildi Jorj Marsagliya"s Diehard sinovlari (1996) o'n besh xil testdan iborat. Sinov parametrlarini o'zgartirish yoki yangi testlarni qo'shishning iloji yo'qligi TestU01 kutubxonasining rivojlanishiga olib keldi.

Xususiyatlari

TestU01 RNGlarni tahlil qilish uchun to'rtta modul guruhini taklif etadi:

  1. RNGlarni amalga oshirish (oldindan dasturlashtirilgan);
  2. Maxsus statistik testlarni amalga oshirish;
  3. Statistik testlarning batareyalarini amalga oshirish;
  4. RNGlarning butun oilalariga testlarni qo'llash.

Hajmi namunasiga ma'lum bir sinov qo'llanilganda n RNG tomonidan ishlab chiqarilgan p- qiymat Sinov odatda oqilona bo'lib qoladi, chunki namuna kattaligi urilguncha namuna kattalashadi n0, demoq. Shundan so'ng, p- qiymat eksponent tezlik bilan 0 yoki 1 ga farq qiladi. 4-modul tadqiqotchiga ma'lum bir sinov va ma'lum bir RNG oilasi tomonidan ishlab chiqarilgan nuqta to'plamlari tuzilishi o'rtasidagi o'zaro bog'liqlikni o'rganishga imkon beradi. Ushbu metod yordamida generator muntazam ravishda ishdan chiqa boshlaguncha, generatorning davri uzunligiga qarab, namuna hajmi qanchalik katta bo'lishi kerakligini aniqlashda foydalanish mumkin.

TESTU01 "Kichik Crush" (10 ta testdan iborat), "Crush" (96 ta test) va "Big Crush" (160 ta test) kabi bir nechta sinov batareyalarini taqdim etadi. Har bir akkumulyator tomonidan qo'llaniladigan maxsus sinovlar foydalanuvchi qo'llanmasida batafsil bayon etilgan.[3] 1,7 gigagertsli chastotada Pentium 4 yugurish Red Hat Linux 9.0, oddiy RNG uchun Small Crush taxminan 2 daqiqa davom etadi. Siqish taxminan 1,7 soat davom etadi. Big Crush taxminan 4 soat davom etadi. Keyinchalik murakkab RNG uchun bu vaqtlarning barchasi ikki yoki undan ko'p marta ko'payadi. Taqqoslash uchun, Diyehard testlarini o'tkazish uchun 15 soniya kerak bo'ladi.

Cheklovlar

TestU01 faqat 32-bitli kirishni qabul qiladi va ularni [0, 1) oralig'idagi qiymat sifatida sharhlaydi. Bu uning ahamiyatsiz bitlardan ko'ra eng muhim bitlardagi nuqsonlarga nisbatan sezgir bo'lishiga olib keladi. Umumiy maqsadlar uchun mo'ljallangan generatorlarni bit-teskari shaklda sinab ko'rish, ularning past tartibli bitlardan foydalanadigan dasturlarga mosligini tekshirish muhimdir.[4]:4

64 bitli mahsulot ishlab chiqaradigan generatorlar qo'shimcha ravishda yuqori va past yarmi uchun alohida sinovlarni talab qiladi.[5]:51

Shuningdek qarang

Adabiyotlar

  1. ^ TestU01 veb-sayti.
  2. ^ Per L'Ekuyer va Richard Simard (2007), "TestU01: Tasodifiy sonlar generatorlarini empirik sinovdan o'tkazish uchun ANSI C dasturiy ta'minot kutubxonasi", Matematik dasturiy ta'minot bo'yicha ACM operatsiyalari, 33: 22.
  3. ^ TestU01 foydalanuvchi qo'llanmasi.
  4. ^ Vigna, Sebastiano (2016 yil iyul). "Marsaglia xorshift generatorlarini eksperimental tadqiq qilish, aralashtirilgan" (PDF). Matematik dasturiy ta'minot bo'yicha ACM operatsiyalari. 42 (4): 30. arXiv:1402.6246. doi:10.1145/2845077.
  5. ^ O'Nil, Melissa E. (2014 yil 5 sentyabr). PCG: Tasodifiy raqamlarni yaratish uchun oddiy tezkor makon va statistik jihatdan yaxshi algoritmlar oilasi (PDF) (Texnik hisobot). Harvi Mudd kolleji. HMC-CS-2014-0905.