मेरसेन ट्विस्टर को क्यों अच्छा माना जाता है?


38

Mersenne ट्विस्टर व्यापक रूप से अच्छा माना जाता है। हेक, सीपीथॉन स्रोत का कहना है कि यह "अस्तित्व में सबसे बड़े पैमाने पर परीक्षण किए गए जनरेटर में से एक है।" लेकिन इसका क्या मतलब है? जब इस जनरेटर के गुणों को सूचीबद्ध करने के लिए कहा जाए, तो मैं जो पेशकश कर सकता हूं, वह सबसे खराब है:

  • यह बड़े पैमाने पर और अनम्य है (जैसे कोई मांग या कई धाराएँ),
  • यह बड़े पैमाने पर राज्य आकार के बावजूद मानक सांख्यिकीय परीक्षणों में विफल रहता है,
  • यह 0 के आसपास गंभीर समस्याएं हैं, यह सुझाव देता है कि यह खुद को बहुत खराब करता है,
  • यह शायद ही तेज हो

और इसी तरह। एक्सोरशिफ्ट * जैसे सरल आरएनजी की तुलना में, यह भी निराशाजनक रूप से जटिल है।

इसलिए मैंने इस बारे में कुछ जानकारी की तलाश की कि यह क्यों अच्छा समझा जाता है। मूल पेपर "सुपर एस्ट्रोनॉमिकल" अवधि और 623-आयामी समानता पर बहुत सारी टिप्पणियां करता है, कहता है

कई ज्ञात उपायों में, उच्च आयामी एकरूपता पर आधारित परीक्षण, जैसे कि वर्णक्रमीय परीक्षण (cf, Knuth [1981]) और नीचे दिए गए k- वितरण परीक्षण को सबसे मजबूत माना जाता है।

लेकिन, इस संपत्ति के लिए, जनरेटर को पर्याप्त लंबाई के काउंटर द्वारा पीटा जाता है ! यह स्थानीय वितरणों की कोई टिप्पणी नहीं करता है , जो कि आप वास्तव में एक जनरेटर में परवाह करते हैं (हालांकि "स्थानीय" का मतलब विभिन्न चीजों से हो सकता है)। और यहां तक ​​कि CSPRNGs भी इतने बड़े समय की परवाह नहीं करते हैं, क्योंकि यह सिर्फ दूर से महत्वपूर्ण नहीं है।

कागज में बहुत सारे गणित हैं, लेकिन जहां तक ​​मैं इस बारे में थोड़ा बता सकता हूं कि यह वास्तव में यादृच्छिकता गुणवत्ता के बारे में है। बहुत कुछ है कि हर उल्लेख जल्दी से इन मूल, बड़े पैमाने पर बेकार दावों के लिए वापस कूदता है।

ऐसा लगता है कि लोग पुराने, अधिक विश्वसनीय प्रौद्योगिकियों की कीमत पर इस बैंडवागन पर कूद गए। उदाहरण के लिए, यदि आप एक LCG में शब्दों की संख्या 3 (Mersenne Twister के "केवल 624" से बहुत कम है) और प्रत्येक पास के शीर्ष शब्द का उत्पादन करते हैं, तो यह BigCrush ( Test001 टेस्ट सूट का कठिन हिस्सा) उत्तीर्ण करता है ), ट्विस्टर के असफल होने के बावजूद ( PCG पेपर, अंजीर 2 )। इस को देखते हुए, और कमजोर सबूत मैं Mersenne ट्विस्टर के समर्थन में पता लगाने के लिए सक्षम था, क्या किया था कारण ध्यान अन्य विकल्पों पर समर्थन देने के लिए?

यह पूरी तरह से ऐतिहासिक नहीं है। मुझे बताया गया है कि पीसीवी रैंडम की तुलना में मेरसेन ट्विस्टर अभ्यास में कम से कम अधिक सिद्ध होता है । लेकिन क्या उपयोग-मामलों में इतनी समझदारी है कि वे परीक्षणों की हमारी बैटरी से बेहतर कर सकते हैं? कुछ Googling बताते हैं कि वे शायद नहीं हैं।

संक्षेप में, मैं सोच रहा हूँ कि मर्सिएन ट्विस्टर को इसकी व्यापक सकारात्मक प्रतिष्ठा कैसे मिली, इसके ऐतिहासिक संदर्भ में और अन्यथा। एक तरफ मैं स्पष्ट रूप से इसके गुणों पर संदेह कर रहा हूं, लेकिन दूसरी तरफ यह कल्पना करना मुश्किल है कि यह पूरी तरह से अनियमित घटना थी।


2
मुझे लगता है कि आप सही हैं। Mersenne Twister कुछ खास नहीं है। यह सिर्फ अच्छी तरह से जाना जाता है (और कई अन्य प्रसिद्ध PRNGs बदतर होने के लिए होता है)। अन्य PRNG भी हैं जो काफी अच्छे हैं। एक बेहतर PRNG के लिए, एक क्रिप्टोग्राफ़िक PRNG का उपयोग कर सकता है। मुझे यकीन नहीं है कि किस प्रकार का उत्तर दे सकता है, हालांकि, "आपके तर्क के साथ कुछ भी गलत नहीं है" से परे।
DW

1
मुझे लगता है कि जो सवाल आपसे पूछा जाना चाहिए वह यह है कि MT अच्छा है या नहीं (क्योंकि यह बहुत से मेट्रिक्स द्वारा है), लेकिन यह आमतौर पर PCG या XorShift जैसे विकल्पों की तुलना में अधिक क्यों उपयोग किया जाता है। इसका उत्तर शायद यह है कि यह अभी लंबे समय तक रहा है, और लंबे समय (इंटरनेट के वर्षों में) के लिए सबसे अच्छा उचित डिफ़ॉल्ट था।
छद्म नाम

1
@vzn "एक और विचार पीढ़ी का समय है; PRNGs" गुणवत्ता "रन टाइम के खर्च पर आता है" → सिवाय इसके कि मर्सिएन ट्विस्टर धीमी और एक बड़े एलसीजी से भी बदतर है। PCG पेपर में चित्र 16 देखें। (इस बारे में कि क्या मैंने पेपर पढ़ा है: मैंने मेर्सेन ट्विस्टर पेपर के अधिकांश गैर-गणित भागों को विस्तार से पढ़ा है और पीसीजी के सभी रैंडम पेपर में से एक है। मैंने ज्यादातर तीसरे को स्किम्ड किया है।)
वेडरैक

1
आप XorShift या KISS एल्गोरिदम के बारे में बात कर रहे हैं?
gnasher729

1
@ gnasher729 मैं XorShift * का उल्लेख करता हूं, लेकिन मैं वास्तव में किसी विशेष विकल्प के लिए विशिष्ट नहीं हूं। मैं, KISS के बारे में पता नहीं था FWIW।
विड्रैक 30'15

जवाबों:


15

MT को कुछ वर्षों के लिए अच्छा माना जाता था, जब तक कि यह अधिक उन्नत TestU01 BigCrush परीक्षणों और बेहतर PRNGs के साथ बहुत खराब नहीं पाया गया था।

2219,937

यह पृष्ठ Mersenne-Twister सुविधाओं को विस्तार से सूचीबद्ध करता है:

सकारात्मक गुण

  • 32-बिट या 64-बिट संख्या का उत्पादन करता है (इस प्रकार यादृच्छिक बिट्स के स्रोत के रूप में प्रयोग करने योग्य)
  • अधिकांश सांख्यिकीय परीक्षण पास करता है

तटस्थ गुण

  • की बड़ी भारी अवधि2219,937-1
  • ६२३-द्विमुखी समान
  • कई धाराओं का अनुकरण करने के लिए अवधि का विभाजन किया जा सकता है

नकारात्मक गुण

  • कुछ सांख्यिकीय परीक्षणों को विफल कर देता है, जैसे कि 45,000 की संख्या के साथ।
  • पूर्वनिर्धारित - 624 आउटपुट के बाद, हम पूरी तरह से इसके आउटपुट का अनुमान लगा सकते हैं।
  • जेनरेटर स्टेट में 2504 बाइट्स की रैम होती है - इसके विपरीत, एक बेहद प्रयोग करने वाला जनरेटर, जो ह्यूगर-से-किसी-के-कभी-उपयोग की अवधि के साथ रैम के 8 बाइट्स में फिट हो सकता है।
  • विशेष रूप से तेज नहीं है।
  • 2219,937
  • इसके उत्पादन में असमान; जनरेटर "खराब अवस्थाओं" में मिल सकता है जो इससे उबरने में धीमी हैं।
  • बीज जो केवल अलग-अलग होते हैं उन्हें एक दूसरे से अलग होने में लंबा समय लगता है; खराब अवस्था से बचने के लिए बीजाई सावधानी से करनी चाहिए।
  • हालांकि जंप-फॉरवर्ड संभव है, ऐसा करने के लिए एल्गोरिदम गणना करने के लिए धीमा है (यानी, कई सेकंड की आवश्यकता होती है) और शायद ही कभी कार्यान्वयन द्वारा प्रदान किया जाता है।

सारांश : Mersenne ट्विस्टर अब बहुत अच्छा नहीं है, लेकिन अधिकांश एप्लिकेशन और लाइब्रेरी अभी तक नहीं हैं।


7
अच्छा सारांश के लिए धन्यवाद! हालाँकि, मुझे चिंता है कि आपके पोस्ट के लिए एकमात्र स्पष्ट स्रोत एक वेबसाइट है जो प्रभावी रूप से यादृच्छिक संख्या जनरेटर के दूसरे परिवार के लिए एक विज्ञापन है जो अभी तक सहकर्मी की समीक्षा नहीं की गई है। वेबसाइट खुद प्रविष्टियों के लिए कोई संदर्भ नहीं देती है, लेकिन प्रस्तावित लेख में कई शामिल हैं। इसलिए, मुझे लगता है कि आप व्यक्तिगत बिंदुओं के लिए संदर्भ देकर यहां (एमटी की आलोचना) संदर्भ के लिए अपना जवाब बेहतर कर सकते हैं।
राफेल

10
2219,937295×2219,9372219,945

1
"प्रिडिक्टेबल" - MT क्रिप्टोग्राफ़िक PRNG के रूप में अभिप्रेत नहीं है इसलिए कृपया अपना उत्तर संपादित करें।
जेसन एस

8

मैं संपादक हूं जिसने 1998 में ACM TOMS में एमटी पेपर स्वीकार किया और मैं TestU01 का डिजाइनर भी हूं। मैं MT का उपयोग नहीं करता, लेकिन ज्यादातर MRG32k3a, MRG31k3p और LRSR113। इनके बारे में अधिक जानने के लिए, MT के बारे में, और इसके अलावा और क्या है, आप निम्नलिखित कागजात देख सकते हैं:

एफ। पैनेटन, पी। एल'कुयर, और एम। मात्सुमोतो, `` लीनियर रिक्रिएंट्स मोडुलो 2 'के आधार पर बेहतर लंबी अवधि के जेनरेटर, गणितीय सॉफ्टवेयर पर एसीएम लेनदेन, 32, 1 (2006), 1-16।

पी। L'Ecuyer, `` रैंडम नंबर जेनरेशन ', कम्प्यूटेशनल स्टेटिस्टिक्स की हैंडबुक के अध्याय 3, जेई जेंटल, डब्ल्यू। हेराल्ड, और वाई। मोरी, एड।, दूसरा संस्करण, स्प्रिंगर-वेरलाग, 2012, 35-71। । https://link.springer.com/chapter/10.1007/978-3-642-21551-3_3

पी। L'Ecuyer, डी। मुंगेर, बी। ओरेशकिन, और आर। सिमर्ड, `समानांतर कंप्यूटरों के लिए रैंडम नंबर: आवश्यकताएँ और तरीके, '' सिमुलेशन में गणित और कंप्यूटर, 135, (2017), 3-17। http://www.sciencedirect.com/science/article/pii/S0378475416300829?via%3Dihub

पी। L'Ecuyer, `` अनुक्रमिक और समानांतर कंप्यूटरों के लिए कई धाराओं के साथ रैंडम नंबर जनरेशन, '' उन्नत ट्यूटोरियल, 2015 शीतकालीन सिमुलेशन सम्मेलन की कार्यवाही, IEEE प्रेस, 2015, 31-44 आमंत्रित किया।


3
आपके उत्तर के लिए धन्यवाद! क्या आप सवाल के प्रति कुछ जोड़ना चाहेंगे? 1) आपको क्यों लगता है कि एमटी अच्छा था (या कम से कम प्रकाशन के लायक)? 2) आपको क्यों नहीं लगता कि यह उपयोग के लिए पर्याप्त है?
राफेल

उस बहुमूल्य ऐतिहासिक संदर्भ को जोड़ने के लिए धन्यवाद। जब आपने पेपर को स्वीकार किया तो मैं राफेल के सवालों और आपके व्यक्तिगत विचारों के बारे में उत्सुक हूं।
विड्रैक

5

इस संबंध में कुछ एल्गोरिदम को छाँटना पसंद है, कोई "एक आकार सभी फिट बैठता है" PRNG। अलग-अलग प्रयोजनों के लिए अलग-अलग उपयोग किए जाते हैं और डिजाइन मानदंडों और उपयोगों की एक विस्तृत विविधता है। क्रिप्टोग्राफी के लिए एक का उपयोग करना जैसे कि यह डिज़ाइन नहीं किया गया है, PRNGs को गुमराह करना संभव है। मेर्सेन ट्विस्टर पर विकिपीडिया के प्रवेश का उल्लेख है कि यह "मोंटे-कार्लो सिमुलेशन के लिए डिज़ाइन नहीं किया गया था जिसमें स्वतंत्र यादृच्छिक संख्या जनरेटर की आवश्यकता होती है"।

जैसा कि विकिपीडिया पर उल्लेख किया गया है, यह PRNG वास्तव में बड़ी संख्या में प्रोग्रामिंग भाषाओं और अनुप्रयोगों में भी डिफ़ॉल्ट PRNG के रूप में उपयोग किया जाता है। यह समझने के लिए एक समाजशास्त्रीय विश्लेषण होगा कि एक PRNG को क्यों पसंद किया जाता है। कुछ संभावित कारक जो इस PRNG में योगदान दे सकते हैं:

  • लेखक की क्षेत्र में अच्छी / मजबूत वैज्ञानिक साख है और दशकों से PRNG में काम कर रहा है।

  • यह विशेष रूप से उस समय अन्य तरीकों से बेहतर होने के लिए डिज़ाइन किया गया था।

  • लेखक कार्यान्वयन और उन पर नज़र रखने में लगा हुआ है, उनका भी योगदान है। कुछ PRNG अधिक सैद्धांतिक हैं और लेखक हमेशा वास्तविक कार्यान्वयन के साथ खुद को चिंतित नहीं करते हैं।

  • सिस्टम वेब पेज पर अच्छी तरह से समर्थित / अद्यतन है।

  • PRNG के नए संस्करण कमजोरियों से निपटने के लिए विकसित किए गए हैं। वहाँ एक भी Mersenne ट्विस्टर एल्गोरिथ्म नहीं है, इसके विभिन्न संस्करणों की तरह और अलग-अलग जरूरतों को संभाल सकता है जो वेरिएंट का एक परिवार है।

  • यह बड़े पैमाने पर विश्लेषण / मानक यादृच्छिकता विश्लेषण सॉफ्टवेयर द्वारा परीक्षण किया गया है और स्वतंत्र अधिकारियों द्वारा पारित किया गया है।

  • वेब साइटों और कई अन्य संदर्भों जैसे कि वैज्ञानिक उद्धरण जैसे "तरजीही लगाव" के लिए मापा जाता है, जिसे मापा जा सकता है। यह मूल रूप से है जहां लंबे समय से स्थापित ऐतिहासिक स्रोत आगे के उपयोग को बढ़ाते हैं। ऐसा प्रभाव समय के साथ PRNG विकल्पों की व्याख्या कर सकता है।

दूसरे शब्दों में, आप "लोकप्रियता" की एक घटना के बारे में पूछ रहे हैं जो मानव विकल्पों के साथ जुड़ी हुई है और आपस में जुड़ी हुई है और विशेष गुणों से कड़ाई से जुड़ी नहीं है, लेकिन एक तरह की जटिल / उभरती हुई संपत्ति है और विभिन्न एल्गोरिदम, उपयोगकर्ताओं और पर्यावरण के बीच परस्पर क्रिया है। / उपयोग संदर्भों।

यहाँ एल्गोरिथ्म मेर्सन ट्विस्टर का एक ऐसा स्वतंत्र विश्लेषण है - जगन्नाटम (15 पी) द्वारा एक छद्म यादृच्छिक संख्या जनरेटर और इसके वेरिएंट । समापन पैराग्राफ अनिवार्य रूप से आपके प्रश्न का उत्तर है। केवल 1 सेंट के कुछ वाक्यों को उद्धृत करते हुए :

Mersenne Twister सैद्धांतिक रूप से एक अच्छा PRNG साबित होता है, जिसमें एक लंबी अवधि और उच्च समानता है। यह बड़े पैमाने पर सिमुलेशन और मॉडुलन के क्षेत्रों में उपयोग किया जाता है। उपयोगकर्ताओं द्वारा पाए गए दोषों को आविष्कारकों द्वारा सही किया गया है। एमटी को उन्नत किया गया है, एसएफएमटी के संस्करण में सीपीयू की नई उभरती प्रौद्योगिकियों जैसे कि SIMD और समानांतर पाइपलाइनों के साथ उपयोग करने के लिए उन्नत किया गया है।


2
धन्यवाद। आप जो कुछ कह रहे हैं, वह काफी अस्पष्ट लग रहा है, हालांकि, "यह विशेष रूप से उस समय अन्य तरीकों से बेहतर होने के लिए डिज़ाइन किया गया था।" और "इसका बड़े पैमाने पर विश्लेषण / मानक यादृच्छिकता विश्लेषण सॉफ्टवेयर द्वारा परीक्षण किया गया है और स्वतंत्र अधिकारियों द्वारा पारित किया गया है।" मैं कागज में थोड़ा गोता लगाऊंगा, हालांकि, यह देखने के लिए कि क्या चीजें साफ होती हैं।
विड्राक

एक और बात को ध्यान में रखना वैज्ञानिक प्रजनन है। मोंटे कार्लो सिमुलेशन क्षेत्र में काम करने वाले बहुत से वैज्ञानिक यह सुनिश्चित करने के लिए बहुत परेशानी में पड़ जाते हैं कि कार्यक्रम पूरे एक ही बीज का उत्पादन करता है, चाहे धागे की संख्या की परवाह किए बिना। उनमें से कई को PRNG के संदर्भ कार्यान्वयन के साथ बग-फॉर-बग संगतता की आवश्यकता होती है।
छद्म नाम

2
आप यह भी कहते हैं, "कमजोरियों से निपटने के लिए PRNG के नए संस्करण विकसित किए गए हैं।", लेकिन अधिकांश कार्यान्वयन बोग-मानक प्रथम संस्करण हैं, यह मुझे एक आलोचना की तरह लगता है। मैं यह देखकर भी थोड़ा हैरान हूं कि "वेब पेज पर सिस्टम अच्छी तरह से समर्थित / अद्यतन है।" - LCG को वास्तव में कितना समर्थन चाहिए !?
विड्राक

@ छद्म नाम मैं वास्तव में अनुसरण नहीं करता। वह एक अलग जनरेटर का उपयोग क्यों करेगा? स्पष्ट रूप से आपको उसी जनरेटर का उपयोग करना होगा जब परीक्षण फिर से चल रहे हों, लेकिन नए परीक्षणों के लिए क्यों?
विड्राक

मूल और बाद के पत्रों में सभी वैज्ञानिक विश्लेषण के बारे में बहुत अस्पष्टता नहीं लगती है और मूल प्रश्न कुछ इस तरह से "लोड" होता है (कम विश्लेषण / समर्थन वाले कई PRNG का उपयोग किया जाता है)। पुन छद्म बिंदु, afaik सभी PRNGs एक ही शुरुआती बीजों का उपयोग करके दोहराए जाते हैं , केवल हार्डवेयर-आधारित जनरेटर नहीं हैं (और वे वास्तव में PRNGs नहीं हैं लेकिन "वास्तविक भौतिक शोर / यादृच्छिकता")। यह निश्चित नहीं है कि यह माना जाता है कि कई थ्रेड्स के साथ यह सुनिश्चित करना मुश्किल है (न जाने क्यों अलग-अलग थ्रेड्स अलग-अलग बीज के साथ समान एल्गोरिथ्म का उपयोग नहीं कर सकते)
vzn
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.