वास्तव में अन्य परीक्षणों की तुलना में एकेएस प्रीमलिटी टेस्ट कब तेज होता है?


24

मैं इस बात का अंदाजा लगाने की कोशिश कर रहा हूं कि एकेएस प्रिमैलिटी टेस्ट की व्याख्या कैसे की जानी चाहिए क्योंकि मैं इसके बारे में सीखता हूं, जैसे कि यह साबित करने के लिए एक कोरोलरी कि IM पी, या कंप्यूटर पर व्यावहारिकता परीक्षण के लिए वास्तव में व्यावहारिक एल्गोरिदम।

परीक्षण में बहुपद रनटाइम है लेकिन उच्च डिग्री और संभव उच्च स्थिरांक के साथ। तो, practive में, जिस पर n यह अन्य primality परीक्षण को पार करता है? यहाँ, , nअभाज्य के अंको की संख्या है, और "out", विशिष्ट प्रकार के वास्तुशिल्प पर परीक्षणों के अनुमानित क्रम को संदर्भित करता है।

मैं कार्यात्मक रूप से तुलनीय एल्गोरिदम में रुचि रखता हूं, यह नियतात्मक हैं जिन्हें शुद्धता के लिए अनुमानों की आवश्यकता नहीं है।

इसके अतिरिक्त, परीक्षण की स्मृति आवश्यकताओं को देखते हुए व्यावहारिक रूप से दूसरों पर इस तरह के एक परीक्षण का उपयोग कर रहा है?

जवाबों:


23

त्वरित उत्तर: व्यावहारिक उद्देश्यों के लिए कभी नहीं। यह वर्तमान में किसी भी व्यावहारिक उपयोग की नहीं है।

मापी गई प्राणिकता बार

पहले, आइए हम व्यावहारिकता के प्रमाणों से "व्यावहारिक" सम्मिश्रण परीक्षण को अलग करते हैं। पूर्व लगभग सभी उद्देश्यों के लिए पर्याप्त है, हालांकि लोगों के परीक्षण के विभिन्न स्तर पर्याप्त हैं। 2 ^ 64 के तहत संख्याओं के लिए, 7 मिलर-राबिन परीक्षणों से अधिक नहीं, या एक निर्धारक उत्तर के लिए एक बीपीएसडब्ल्यू परीक्षण आवश्यक है। यह AKS की तुलना में बहुत तेज़ होगा और सभी मामलों में सही होगा। 2 ^ 64 से अधिक की संख्या के लिए, BPSW एक अच्छा विकल्प है, जिसमें कुछ अतिरिक्त यादृच्छिक-बेस मिलर-राबिन परीक्षण बहुत कम लागत के लिए कुछ अतिरिक्त आत्मविश्वास जोड़ते हैं। लगभग सभी प्रूफ मेथड इस तरह के टेस्ट के साथ शुरू होंगे (या उन्हें चाहिए) क्योंकि यह सस्ता है और इसका मतलब है कि हम केवल उन नंबरों पर कड़ी मेहनत करते हैं जो लगभग निश्चित रूप से प्राइम हैं।

प्रमाणों की ओर बढ़ना। प्रत्येक मामले में परिणामी प्रमाण के लिए किसी अनुमान की आवश्यकता नहीं होती है, इसलिए इनकी तुलना कार्यात्मक रूप से की जा सकती है। एपीआर-सीएल का "गोचा" यह है कि यह बहुत बहुपद नहीं है, और ईसीपीपी / फास्टईसीपीपी का "गोचा" यह है कि इसमें मौजूद संख्याएं हो सकती हैं जो अपेक्षा से अधिक समय तक होती हैं।

ग्राफ में, हम दो खुले स्रोत एकेएस कार्यान्वयन देखते हैं - पहला वी 6 पेपर से, दूसरा बर्नस्टीन और वोल्च से सुधार और बोर्नमेन से एक अच्छा आर / एस हेयुरिस्टिक। बहुपदीय गुणकों के लिए जीएमपी में ये द्विआधारी विभाजन का उपयोग करते हैं इसलिए बहुत कुशल होते हैं, और स्मृति का उपयोग यहां पर दिए गए आकारों के लिए एक गैर-मुद्दा है। वे लॉग-लॉग ग्राफ़ पर ~ 6.4 की ढलान के साथ अच्छी सीधी रेखाएं बनाते हैं, जो बहुत अच्छा है। लेकिन 1000 से अधिक अंकों के लिए एक्सट्रपलेशन करना हजारों से लाखों वर्षों के अनुमानित समय पर आता है, एपीआर-सीएल और ईसीपीपी के लिए कुछ ही मिनटों में। आगे के अनुकूलन हैं जो 2002 के बर्नस्टीन पेपर से किए जा सकते हैं, लेकिन मुझे नहीं लगता कि यह भौतिक रूप से स्थिति को बदल देगा (हालांकि जब तक इसे लागू नहीं किया जाता है) साबित नहीं होता है।

आखिरकार AKS ट्रायल डिवीजन को हरा देता है। BLS75 प्रमेय 5 (जैसे n-1 सबूत) विधि को n-1 के आंशिक फैक्टरिंग की आवश्यकता होती है। यह छोटे आकारों में बहुत अच्छा काम करता है, और यह भी कि जब हम भाग्यशाली होते हैं और n-1 कारक के लिए आसान होता है, लेकिन अंततः हम कुछ बड़े अर्ध-प्रधान कारक के लिए फंस जाएंगे। अधिक कुशल कार्यान्वयन हैं, लेकिन यह वास्तव में पिछले 100 अंकों को मापता नहीं है। हम देख सकते हैं कि AKS इस विधि को पारित करेगा। इसलिए यदि आपने 1975 में प्रश्न पूछा था (और तब AKS एल्गोरिथम वापस आ गया था) तो हम उस क्रॉसओवर की गणना कर सकते हैं जहां AKS सबसे व्यावहारिक एल्गोरिदम था। लेकिन 1980 के दशक के अंत तक, APR-CL और अन्य साइक्लोटोमिक विधियां सही तुलना थीं, और 1990 के दशक के मध्य तक हमें ECPP को शामिल करना होगा।

APR-CL और ECPP विधि दोनों खुले स्रोत कार्यान्वयन हैं। प्राइमो (मुक्त लेकिन खुला स्रोत ECPP) बड़े अंकों के आकार के लिए तेज़ होगा और मुझे यकीन है कि इसमें एक अच्छा वक्र है (मैंने अभी तक नया बेंचमार्किंग नहीं किया है)। APR-सीएल गैर बहुपद है लेकिन प्रतिपादक एक कारक है logloglogn जो के रूप में किसी को चुटकी ली "अनंत को जाता है लेकिन ऐसा करने के लिए कभी नहीं देखा गया है।" यह हमें यह विश्वास दिलाता है कि सिद्धांत रूप में एन के किसी भी मूल्य के लिए लाइनें पार नहीं होंगी जहां हमारे सूरज को जलाने से पहले एकेएस खत्म हो जाएगा। ECPP एक लास वेगास एल्गोरिथ्म है, जिसमें जब हमें उत्तर मिलता है कि यह 100% सही है, तो हम अनुमान O(log5+ϵ(n)) (ECPP) याO ( लॉग 4) में परिणाम की उम्मीद करते हैं)O(log4+ϵ(n))("fastECPP") समय, लेकिन संख्या हो सकती है जो अधिक समय लेती हैं। इसलिए हमारी अपेक्षा यह है कि लगभग सभी नंबरों के लिए मानक AKS हमेशा ECPP की तुलना में धीमा होगा (यह निश्चित रूप से 25k अंकों तक की संख्या के लिए खुद को दिखाता है)।

AKS में अधिक सुधार की प्रतीक्षा की जा सकती है जो इसे व्यावहारिक बनाता है। बर्नस्टेन की Quartic कागज एक अक्स आधारित यादृच्छिक पर चर्चा करता O(log4+ϵ(n)) एल्गोरिथ्म, और Morain के fastECPP कागज संदर्भ अन्य गैर नियतात्मक अक्स आधारित विधियों। यह एक मौलिक परिवर्तन है, लेकिन यह दिखाता है कि AKS ने कुछ नए अनुसंधान क्षेत्रों को कैसे खोला। हालांकि, लगभग 10 साल बाद मैंने किसी को भी इस विधि (या यहां तक ​​कि किसी भी कार्यान्वयन) का उपयोग करते नहीं देखा है। उन्होंने परिचय में लिखा है, " (lgn)4+o(1) समय नए एल्गोरिथ्म के लिए ( lg) से छोटा है(lgn)4+o(1) अण्डाकार-वक्र प्रमाण पत्र खोजने का समय? मेरी वर्तमान धारणा यह है कि उत्तर नहीं है, लेकिन इससे आगे के परिणाम [...] उत्तर बदल सकते हैं। "

इनमें से कुछ एल्गोरिदम को आसानी से समानांतर या वितरित किया जा सकता है। AKS बहुत आसानी से (प्रत्येक का परीक्षण स्वतंत्र है)। ECPP बहुत कठिन नहीं है। मुझे APR-CL के बारे में निश्चित नहीं है।

ECPP और BLS75 विधियां प्रमाण पत्र का उत्पादन करती हैं जिन्हें स्वतंत्र रूप से और जल्दी से सत्यापित किया जा सकता है। यह एकेएस और एपीआर-सीएल पर एक बड़ा फायदा है, जहां हमें इसे लागू करने वाले कंप्यूटर और इसके उत्पादन पर भरोसा करना होगा।


18

लेनस्ट्रा और पोमरेन्स के कारण सबसे प्रभावी निर्धारक प्राणिकता परीक्षण एल्गोरिथ्म (asymptotically) समय पर चल रहा हैहे~(लॉग6n)O~(log4n)O~(n1/7)O(lognO(logloglogn))

O~(log2n)280O~(log2n) , जो Lenstra की तुलना में बहुत तेजी से होता है -Pomerance।

इन सभी परीक्षणों में, स्मृति एक मुद्दा नहीं है।


अपनी टिप्पणी में, jbapple ने यह तय करने का मुद्दा उठाया है कि अभ्यास में कौन सा प्रायोगिक परीक्षण उपयोग करना है। यह कार्यान्वयन और बेंचमार्किंग का प्रश्न है: कुछ एल्गोरिदम को लागू करना और अनुकूलित करना, और प्रयोगात्मक रूप से यह निर्धारित करना कि कौन सी सीमा में सबसे तेज है। जिज्ञासु के लिए, PARI के कोडर्स ने बस यही किया, और वे एक नियतात्मक कार्य isprimeऔर एक संभाव्य कार्य के साथ आए ispseudoprime, जो दोनों यहां पाए जा सकते हैं । उपयोग की जाने वाली संभावित परीक्षण मिलर-राबिन है। निर्धारक एक BPSW है।


यहाँ दाना जैकबसेन से अधिक जानकारी है :

संस्करण 2.3 के बाद से Pari के लिए APR-CL isprime(x)primality सबूत , और BPSW संभावित प्राइम टेस्ट ("लगभग अतिरिक्त मजबूत" लुकास परीक्षण) के लिए उपयोग करता है ispseudoprime(x)

वे तर्क लेते हैं जो व्यवहार को बदलते हैं:

  • isprime(x,0) (डिफ़ॉल्ट।) संयोजन (BPSW, त्वरित पॉकलिंगटन या BLS75 प्रमेय 5, APR-CL) का उपयोग करता है।
  • isprime(x,1)n-1
  • isprime(x,2) APR-CL का उपयोग करता है।

  • ispseudoprime(x,0) (डिफ़ॉल्ट।) BPSW (बेस 2 के साथ MR, "लगभग अतिरिक्त मजबूत" लुकास) का उपयोग करता है।

  • ispseudoprime(x,k)k1कश्मीरmpz_is_probab_prime_p(x,k)

Pari 2.1.7 ने बहुत ज्यादा खराब सेटअप का इस्तेमाल किया। isprime(x)केवल एमआर परीक्षण (डिफ़ॉल्ट 10) था, जिसके कारण मजेदार चीजें जैसे isprime(9)सच को वापस लौटना काफी अक्सर होता था। का उपयोग करते हुएisprime(x,1) कर एक Pocklington सबूत होगा, जो लगभग 80 अंकों के लिए ठीक था और फिर आम तौर पर उपयोगी होने के लिए बहुत धीमा हो गया।

आप वास्तव में भी लिखते हैं , कोई भी इन एल्गोरिदम का उपयोग नहीं करता है, क्योंकि वे बहुत धीमे हैं। मेरा मानना ​​है कि मुझे पता है कि आपका क्या मतलब है, लेकिन मुझे लगता है कि यह आपके दर्शकों पर निर्भर करता है। AKS बेशक, धीमी गति से धीमा है, लेकिन APR-CL और ECPP काफी तेज हैं कि कुछ लोग उनका उपयोग करते हैं। वे पागल क्रिप्टो के लिए उपयोगी होते हैं, और ऐसे लोगों के लिए उपयोगी होते हैं जैसे कि primegapsया factordbजहां किसी के पास साबित करने के लिए पर्याप्त समय है।

[उस पर मेरी टिप्पणी: जब एक विशिष्ट श्रेणी में एक प्रमुख संख्या की तलाश होती है, तो हम कुछ अपेक्षाकृत त्वरित संभाव्य परीक्षणों के बाद कुछ sieving दृष्टिकोण का उपयोग करते हैं। तभी, अगर हम सभी एक नियतकालिक परीक्षण चलाते हैं।]

इन सभी परीक्षणों में, स्मृति एक मुद्दा नहीं है। यह AKS के लिए एक मुद्दा है। मिसाल के तौर पर देखें, यह इप्रिंट । इसमें से कुछ कार्यान्वयन पर निर्भर करता है। यदि कोई व्यक्ति जो नंबरफाइल का वीडियो एकेएस कहता है (जो वास्तव में फ़र्मेटस लिटिल प्रमेय का एक सामान्यीकरण है) को लागू करता है, तो मेमोरी का उपयोग बहुत अधिक होगा। V1 या v6 एल्गोरिथ्म के NTL कार्यान्वयन का उपयोग संदर्भित पेपर की तरह होता है जिसके परिणामस्वरूप बड़ी मात्रा में मेमोरी होती है। एक अच्छा v6 GMP कार्यान्वयन अभी भी 1024 बिट के लिए ~ 2GB का उपयोग करेगा, जो कि एक है बहुत कुछ हैइतनी कम संख्या के लिए स्मृति। बर्नस्टीन के कुछ सुधारों और जीएमपी बाइनरी सेगमेंटेशन का उपयोग करने से बहुत बेहतर विकास होता है (उदाहरण के लिए 1024 बिट्स के लिए ~ 120 एमबी)। यह अभी भी अन्य तरीकों की आवश्यकता से बहुत बड़ा है, और कोई आश्चर्य की बात नहीं है, एपीआर-सीएल या ईसीपीपी की तुलना में लाखों गुना धीमा होगा।


2
मुझे विश्वास नहीं है कि यह प्रश्न का उत्तर देता है, जिसे इन परीक्षणों के स्थिरांक की गणना की आवश्यकता होगी।
jbapple

1
जब भी आपका सामना किसी घटिया, अनाप-शनाप खर्च वाली पोस्ट या ऐसे उत्तर से हो जो स्पष्ट और शायद खतरनाक रूप से गलत हो, तो अपने डाउनवोट का उपयोग करें। - मैं यह नहीं देख सकता कि यह जवाब देने वाला व्यक्ति मतदान को कैसे सही ठहराता है।
पाएल जीडी

2
n

nlogn

अच्छी पोस्ट, लेकिन "कोई नहीं" की आपकी परिभाषा कभी भी इतनी थोड़ी बंद है। जिज्ञासा से बाहर, मैंने परीक्षण किया कि openssl pkeyparam -textPARSS isprime(APR-CL जैसा कि कहा गया है) का उपयोग करके OpenSSL ( हेक्स स्ट्रिंग निकालने के लिए) के साथ उत्पन्न 2048 बिट DSA संभावित प्राइम को सत्यापित करने में कितना समय लगता है : एक तेज नोटबुक पर लगभग 80। संदर्भ के लिए, क्रोमियम को फ्रोबेनियस परीक्षण (जो एमआर की तुलना में बहुत मजबूत है) के मेरे जावास्क्रिप्ट डेमो कार्यान्वयन के प्रत्येक पुनरावृत्ति के लिए 0.25s से थोड़ा अधिक की आवश्यकता है , इसलिए एपीआर-सीएल निश्चित रूप से पागल है लेकिन उल्लेखनीय है।
अर्ने वोगेल

2

O(f(n))O(f(n))O(g(n))nnn वास्तव में वास्तव में गणना करना बहुत मुश्किल है), लेकिन एल्गोरिथ्म कार्यान्वयन पर सैद्धांतिक सुधार (सक्रिय रूप से कुछ की मांग) भविष्य में इसे बदल सकते हैं।

इस हाल के पेपर को अर्किव पर देखा, जो इस विषय का गहराई से / विस्तार से विश्लेषण करता है, सुनिश्चित नहीं है कि लोग इसके बारे में क्या सोचते हैं, अब तक कोई प्रतिक्रिया नहीं सुनी है, ऐसा लगता है कि शायद एक छात्र द्वारा बनाई गई थीसिस है, लेकिन संभवतः सबसे विस्तृत / व्यापक विश्लेषणों में से एक है। उपलब्ध एल्गोरिथ्म का व्यावहारिक उपयोग।


AKS क्या की तुलना में अधिक कुशल है? प्रतियोगिता क्या है?
युवल फिल्मस

अन्य सभी एल्गोरिदम। मुख्य रूप से संभाव्य? पेपर में विवरण
vzn
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.