এলোমেলোভাবে প্রজন্মের অ্যালগরিদমগুলি পরীক্ষা করা হচ্ছে


12

এলোমেলোভাবে প্রজন্মের অ্যালগরিদমগুলি পরীক্ষা করার জন্য কোন পদ্ধতি ব্যবহার করা হয়?


1
এসও তে একই প্রশ্ন: স্ট্যাকওভারফ্লো.com
অমি

উত্তর:


9

Diehard টেস্ট সুইট র্যান্ডম সংখ্যা জেনারেটর পরীক্ষার জন্য গোল্ডেন স্ট্যান্ডার্ড পাসে কিছু। এটি বেশ কয়েকটি পরীক্ষার অন্তর্ভুক্ত যেখানে একটি ভাল এলোমেলো নম্বর জেনারেটরের ফলাফল বিতরণ করা উচিত কিছু জেনে বিতরণ অনুযায়ী যা পরীক্ষিত জেনারেটর ব্যবহারের ফলাফলের সাথে তারপরে তুলনা করা যেতে পারে।

সম্পাদনা

আমি একে একে আপডেট করতে হয়েছিলাম যেহেতু আমি ঠিক ঠিক ছিলাম না: ডিয়েহার্ড এখনও প্রচুর ব্যবহৃত হতে পারে তবে এটি আর রক্ষণাবেক্ষণ করা হয় না এবং অত্যাধুনিকও নয় not এনআইএসটি এর পর থেকে উন্নত পরীক্ষার একটি সেট নিয়ে এসেছে।


9

হংকের উত্তরে কিছুটা যুক্ত করার জন্য, ডেইহার্ড টেস্ট স্যুট (জর্জ মার্সাগালিয়া দ্বারা বিকাশিত) হ'ল পিআরএনজির মানক পরীক্ষা।

একটি দুর্দান্ত ডিহার্ড সি লাইব্রেরি রয়েছে যা আপনাকে এই পরীক্ষাগুলিতে অ্যাক্সেস দেয়। পাশাপাশি স্ট্যান্ডার্ড ডিহার্ড পরীক্ষাগুলি বিট অর্ডার (অন্যান্য জিনিসগুলির মধ্যে) জড়িত কয়েকটি অন্যান্য পিআরএনজি পরীক্ষার জন্যও ফাংশন সরবরাহ করে। আরএনজির গতি পরীক্ষা করার জন্য এবং আপনার নিজের পরীক্ষাগুলি লেখার জন্য একটি সুবিধাও রয়েছে।

ডিহাইডার লাইব্রেরিতে একটি আর ইন্টারফেস রয়েছে, যার নাম আরডিহার্ডার :

library(RDieHarder)
dhtest = dieharder(rng="randu", test=10, psamples=100, seed=12345)
print(dhtest)

Diehard Count the 1s Test (byte)

       data:  Created by RNG `randu' with seed=12345, 
              sample of size 100 p-value < 2.2e-16

এটি দেখায় যে RANDU আরএনজি জেনারেটর ন্যূনতম-দূরত্ব / 2 ডিগ্রি পরীক্ষাতে ব্যর্থ।


8

এলোমেলো সংখ্যা জেনারেটর দ্বারা উত্পাদিত সংখ্যার পরীক্ষার জন্য ডেইহার্ড পরীক্ষাগুলি ব্যবহারিক পদ্ধতি। তবে এই পরীক্ষাগুলি একরকম স্বেচ্ছাচারী বলে মনে হচ্ছে এবং আরও কিছু অন্তর্ভুক্ত করা উচিত কিনা বা সত্যিই এলোমেলোভাবে পরীক্ষা করার কোনও উপায় আছে কিনা তা ভেবে অবাক হয়ে যেতে পারে।

এলোমেলো ক্রমের সংজ্ঞা দেওয়ার জন্য সেরা প্রার্থী মনে হয় মার্টিন-ল্যাফ এলোমেলোভাবে । এ জাতীয় এলোমেলোতার মূল ধারণাটি নূথের ৩.৫ অংশে সুন্দরভাবে বিকাশ করা হয়েছে , এলোমেলো সংখ্যার ক্রমের সমস্ত ধরণের উপ-অনুক্রমের জন্য অভিন্নতার জন্য পরীক্ষা করা। যে সকল ধরণের উপসর্গ সংজ্ঞাটি ডান হয়ে গেছে তা সত্যই শক্ত হয়ে উঠেছে এমনকি যখন কেউ গণনার ধারণাগুলি ব্যবহার করে।

ডিয়েহার্ড পরীক্ষাগুলি এমন কয়েকটি সম্ভাব্য অনুচ্ছেদ যা কেবল কেউ বিবেচনা করতে পারে এবং তাদের ব্যর্থতা মার্টিন-লফকে এলোমেলোভাবে বাদ দেয়।


4

আপনি প্রমাণ করতে পারবেন না, কারণ এটি অসম্ভব; আপনি কেবলমাত্র কোনও বিব্রতকর স্বায়ত্তর বা বিতরণে ঝামেলা আছে কিনা তা পরীক্ষা করে দেখতে পারেন এবং ডায়ার্ড তার পক্ষে এটি একটি মান। এটি পরিসংখ্যান / পদার্থবিজ্ঞানের জন্য, ক্রিপ্টোগ্রাফাররা মূলত ভবিষ্যতের মানগুলি পাওয়ার জন্য জেনারেটরকে ডেটাতে ফিট করা কতটা কঠিন তাও পরীক্ষা করে দেখবেন (অন্যান্য জিনিসের মধ্যে)।


4

কলিনের পোস্টে ছোট সংশোধন: সিআরএএন প্যাকেজ আরডি ডিওয়ার্ডার হল ডায়াহারডারের একটি ইন্টারফেস , রবার্ট জি ব্রাউন দ্বারা সম্পাদিত ডিয়েহার্ড পুনর্লিখন / সম্প্রসারণ / রক্ষণাবেক্ষণ (যিনি দয়া করে আমার আরডি ডিওয়ার্ডের মোড়কের উপর ভিত্তি করে আমাকে সহকারী হিসাবে তালিকাভুক্ত করেছেন) ডেভিড বাউয়ারের সাম্প্রতিক অবদানের সাথে।

অন্যান্য জিনিসের মধ্যে, ডায়াহার্ডারের মধ্যে মার্কের পোস্টে উল্লিখিত পরীক্ষাগুলির এনআইএসটি ব্যাটারি পাশাপাশি কিছু নতুন রয়েছে। এটি চলমান গবেষণা এবং কিছু সময়ের জন্য রয়েছে। আমি ব্যবহারের সময় একটি টক দিলাম! 2007 সম্পর্কে RDieHarder যা আপনার কাছ থেকে পেতে পারেন এখানে


3

বিমূর্তে কিছু "এলোমেলো" হয় তা উপসংহারে খুব কমই দরকারী। প্রায়শই আপনি এটি পরীক্ষা করতে চান এটির একটি নির্দিষ্ট ধরণের র্যান্ডম কাঠামো রয়েছে কিনা। উদাহরণস্বরূপ, আপনি পরীক্ষা করতে চাইতে পারেন কোনও কিছুর একটি অভিন্ন বন্টন রয়েছে কিনা, নির্দিষ্ট মানের সমস্ত মান সমানভাবে সম্ভাব্য with অথবা আপনি কোনও কিছুতে সাধারণ বিতরণ রয়েছে কিনা তা পরীক্ষা করে দেখতে চাইতে পারেন data


3

এলোমেলো নম্বর জেনারেটর পরীক্ষা করার জন্য দুটি অংশ রয়েছে। যদি আপনি কেবল ইউনিফর্ম জেনারেটর পরীক্ষা করার সাথে সম্পর্কিত হন তবে হ্যাঁ, ডিএইএইআরডিডিডিড স্যুইটের মতো কিছু ভাল ধারণা।

তবে প্রায়শই আপনাকে অভিন্ন জেনারেটরের রূপান্তর পরীক্ষা করতে হবে test উদাহরণস্বরূপ, আপনি তাত্পর্যপূর্ণ বা সাধারণত বিতরণ করা মানগুলি তৈরি করতে অভিন্ন জেনারেটর ব্যবহার করতে পারেন। আপনার একটি উচ্চ মানের ইউনিফর্ম জেনারেটর থাকতে পারে - বলুন যে আপনি মার্সেন টুইস্টার এর মতো একটি সুপরিচিত অ্যালগরিদমের বিশ্বস্ত বাস্তবায়ন করেছেন - তবে আপনাকে রূপান্তরিত আউটপুটটির সঠিক বিতরণ আছে কিনা তা পরীক্ষা করে দেখার দরকার। সেক্ষেত্রে কোলমোগোরভ-স্মারনভের মতো ফিটের পরীক্ষার জন্য আপনাকে কিছু ধরণের ধার্মিকতা করতে হবে। তবে শুরু করার জন্য, আপনি যাচাই করতে পারেন যে নমুনাটির অর্থ এবং বৈসাদৃশ্যগুলির আপনার প্রত্যাশাগুলি রয়েছে।

বেশিরভাগ লোকেরা স্ক্র্যাচ থেকে তাদের নিজস্ব ইউনিফর্ম এলোমেলো নম্বর জেনারেটর - এবং না করা উচিত। একটি ভাল জেনারেটর লেখা শক্ত এবং নিজেকে এই ভেবে বোকা বানানো সহজ যে আপনি কখনই ভাল লেখেন নি। উদাহরণস্বরূপ, ডোনাল্ড নথ তিনি লিখেছেন এমন একটি এলোমেলো সংখ্যা জেনারেটরের টিএওসিপি ভলিউম 2 তে গল্পটি বলেছেন । তবে নতুন বিতরণ থেকে এলোমেলো মান তৈরি করতে লোকদের নিজস্ব কোড লিখতে হবে এটি সাধারণ।


2

, NIST পরিসংখ্যানগত পরীক্ষার একটি তালিকা প্রকাশ করে সি একটি রেফারেন্স বাস্তবায়ন

রয়েছে TestU01 সম্মানিত PRNG গবেষক পিয়ের মধ্যে L'Ecuyer সহ কিছু স্মার্ট ভাবেন, দ্বারা। আবার সি-তে একটি রেফারেন্স বাস্তবায়ন রয়েছে

অন্যান্য মন্তব্যকারীদের দ্বারা নির্দেশিত হিসাবে, এগুলি সিউডো এলোমেলো বিট জেনারেশন পরীক্ষা করার জন্য। আপনি যদি এই বিটগুলিকে অন্য কোনও এলোমেলো পরিবর্তনশীল (যেমন বাক্স-মুলার ইউনিফর্ম থেকে নরমাল রূপান্তর করেন) রূপান্তর করেন তবে রূপান্তর অ্যালগরিদমের যথার্থতা নিশ্চিত করতে আপনার অতিরিক্ত পরীক্ষার প্রয়োজন need

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.