एल्गोरिदम की जटिलता में छिपे हुए स्थिरांक


9

कई समस्याओं के लिए, सबसे अच्छा स्पर्शोन्मुख जटिलता के साथ एल्गोरिथ्म में एक बहुत बड़ा स्थिर कारक है जो बड़े ओ नोटेशन द्वारा छिपा हुआ है। यह कुछ बनाने के लिए मैट्रिक्स गुणन, पूर्णांक गुणन (विशेष रूप से, हाल ही में ओ (n लॉग एन) पूर्णांक गुणन एल्गोरिथ्म हार्वे और वैन डर होवेन), कम गहराई वाले छँटाई नेटवर्क और ग्राफ़ नाबालिगों को खोजने में होता है। ऐसे एल्गोरिदम को कभी-कभी गेलेक्टिक एल्गोरिदम कहा जाता है।

ध्यान दें कि अन्य एल्गोरिदम के लिए, जैसे कि सामान्य छंटाई और पूर्णांक जोड़, एल्गोरिदम को इष्टतम विषम जटिलता और छोटे निरंतर कारकों के साथ जाना जाता है।

पूर्व एल्गोरिदम को बाद के एल्गोरिदम से अलग करने में, सैद्धांतिक दृष्टिकोण से क्या शोध किया गया है?

मुझे पता है कि गणना के विभिन्न मॉडलों के बीच अंतर को छिपाने के लिए छिपे हुए स्थिरांक अक्सर छोड़ दिए जाते हैं। हालांकि, मुझे विश्वास है कि विभिन्न मॉडलों की एक विस्तृत विविधता के तहत, ये गेलेक्टिक एल्गोरिदम उदाहरण के लिए, एक बिलियन आकार के इनपुट के लिए asymptotically बदतर एल्गोरिदम की तुलना में धीमा होंगे। कुछ मामलों में, अंतर सूक्ष्म नहीं है। क्या इसे कठोर बनाया गया है?

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


1
फास्ट पूर्णांक गुणन एल्गोरिदम गैलेक्टिक नहीं हैं। वे वास्तव में आमतौर पर व्यवहार में उपयोग किए जाते हैं।
एमिल जेकाबेक

2
@ EmilJe Emábek हो सकता है कि ओपी डेविड हार्वे और जोरिस वैन डेर होएवेन की हालिया सफलता के बारे में बात कर रहा है, " समय में इंटीजर गुणन ", जो गैलेक्टिक है (उदाहरण के लिए लिप्टन के ब्लॉग के इस प्रविष्टि को देखें: rjlipton .wordpress.com / 2019/03/29 / ... )हे(nलॉगn)
लैमिने

1
जैसा कि लेखक खुद लिखते हैं (और लिप्टन के ब्लॉग पर इसका उल्लेख किया गया है), सादगी के लिए कागज स्थिरांक को अनुकूलित करने का प्रयास नहीं करता है, लेकिन उन्हें बहुत संभावना है कि उन्हें व्यावहारिक बनाया जा सकता है।
एमिल जेकाबेक

@ EmilJe Emábek वह कागज वास्तव में वह था जिसके बारे में मैं बात कर रहा था। पेपर उन सुधारों का वर्णन करता है जो किए जा सकते हैं, लेकिन यह बेहद संदेहजनक है कि एल्गोरिथ्म जैसा कि वर्तमान ओ पर एक व्यावहारिक सुधार होगा (एन लॉग एन लॉग लॉग एन) एल्गोरिदम जो व्यवहार में उपयोग किए जाते हैं, यह देखते हुए कि लॉग लॉग कितना छोटा है। व्यावहारिक जानकारी के लिए है।
ईसैक

4
@ EmilJe Emábek विशेष रूप से, एल्गोरिथ्म एक आधार मामले के लिए एक सरल मामले में पेपर डिफॉरेक्टर्स को प्रस्तुत करता है जब भी संख्या बिट्स से कम होती है , जहां वे वर्तमान में लेते हैं । वे जिन अनुकूलन का वर्णन करते हैं, वे उनके बजाय का उपयोग करने की अनुमति दे सकते हैं , लेकिन बिट्स अभी भी ब्रह्मांड में कणों की संख्या से अधिक है, इसलिए व्यावहारिकता अभी भी सवाल से बाहर है। उनके पेपर की धारा 5.4 देखें। 212=1729=92912
isaacg

जवाबों:


2

एक जगह जहां यह एल्गोरिदम और कॉम्बिनेटरियल समस्याओं के एक निश्चित वर्ग के लिए एक दिलचस्प तरीके से संपर्क किया जाता है, विश्लेषणात्मक कॉम्बिनेटरिक्स में है । वर्णित मुख्य दृष्टिकोण आपके सुझाव के समान है: आप एक एल्गोरिथ्म के कुछ ठोस कार्यान्वयन के साथ शुरू करते हैं और कुछ दोहराया ऑपरेशन (आमतौर पर सबसे भारी एक) की पहचान करते हैं जो आप किसी दिए गए इनपुट के निष्पादन के लिए स्पष्ट रूप से गणनीय जटिलता को जोड़ने के लिए उपयोग करेंगे। आकार , ऑपरेशन संख्या के रूप में।एनसीएन

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

इस पद्धति में सबसे महत्वपूर्ण घटक इन मूल्यों के निर्माण कार्यों का विश्लेषण है। आप कभी-कभी जटिल विश्लेषण से विधियों का उपयोग करके बहुत सटीक असममित सन्निकटन प्राप्त कर सकते हैं।

एक सरल उदाहरण जो पुस्तक में व्यवहार किया गया है वह क्विकर है। यह एक द्विघात सबसे खराब समय चल रहा है, लेकिन अभ्यास में सबसे अधिक हैहे(nलॉगn)एल्गोरिदम। एस्कॉर्ट की अपेक्षित लागत का सटीक विश्लेषण करते हुए और आप इसकी तुलना मर्जसेर्ट से करते हैं, तो आप देखते हैं कि यदि मुझे सही ढंग से याद है, तो यह लगभग 10 के आकार से उत्तरार्ध से बेहतर प्रदर्शन करेगा। इस तरह की चीजों की गणना करने में सक्षम होने के लिए आप छिपे हुए स्थिरांक की अवहेलना नहीं कर सकते।

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

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