एक एल्गोरिथ्म का उदाहरण जहां एक कम-ऑर्डर शब्द किसी भी व्यावहारिक इनपुट के लिए रनटाइम पर हावी है?


10

बिग-ओ नोटेशन निरंतर कारकों को छिपाता है, इसलिए कुछ एल्गोरिदम मौजूद हैं जो किसी भी उचित इनपुट आकार के लिए संभव हैं क्योंकि टर्म पर गुणांक बहुत बड़ा है।एनO(n)n

क्या कोई ज्ञात एल्गोरिदम है जिसका रनटाइम लेकिन कुछ कम-क्रम वाले शब्द के साथ यह इतना बड़ा है कि उचित इनपुट आकारों के लिए यह रनटाइम पर पूरी तरह से हावी है? मैं एक एल्गोरिथ्म पाठ्यक्रम में एक उदाहरण के रूप में इस तरह एक एल्गोरिथ्म का उपयोग करना चाहता हूं, क्योंकि यह एक अच्छा कारण देता है कि बिग-ओ नोटेशन कुछ भी नहीं है।( एफ ( एन ) )O(f(n))o(f(n))

धन्यवाद!


एल्गोरिदम जो पहले एक बड़ी तालिका सेट करते हैं और फिर प्रत्येक इनपुट आइटम के लिए तालिका में तेजी से लुकअप करते हैं? यदि तालिका पर्याप्त बड़ी है, तो तालिका बनाने की लागत को ऑफसेट करने के लिए मदों की संख्या बहुत अधिक होनी चाहिए। खोज इंजन एक उदाहरण है, यदि प्रश्नों की संख्या है। n
आंद्र सलामऑन

मैंने सुना है रैखिक प्रोग्रामिंग इस तरह है। सिम्प्लेक्स घातीय है, लेकिन व्यवहार में बहुपद एल्गोरिदम की तुलना में तेज है।
jmite

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

जवाबों:


2

क्रिप्टोग्राफी एक उदाहरण है, अगर एक पतित। उदाहरण के लिए, एईएस एन्क्रिप्शन को तोड़ना - आपको बस इतना करना है कि एक परिमित संख्या के बीच सही कुंजी मिल जाए, या या कुंजी आकार के आधार पर ( मान लें कि प्लेनटेक्स्ट में से कई को कुंजी को स्पष्ट रूप से निर्धारित करने के लिए जाना जाता है)। हालाँकि संचालन आज सभी कंप्यूटरों (एक बिलियन या थैरेबाउट्स, प्रत्येक एक बिलियन ऑपरेशंस प्रति सोंड) को ब्रह्मांड के जीवनकाल (लगभग एक बिलियन सेकंड) से अधिक समय तक ले जाएगा।2 128 2 192 2 256 2 128O(1)2128219222562128


यह बताने के लिए थोड़ा अलग तरीका है कि बिग-ओ सब कुछ क्यों नहीं है यह टिप्पणी करने के लिए कि हम कभी-कभी छोटे इनपुट आकारों के लिए एक अलग एल्गोरिथ्म का उपयोग करते हैं। उदाहरण के लिए, क्विकसॉर्ट लें। धुरी के सही विकल्प के साथ (जो एक मुश्किल व्यवसाय है!), यह । क्विकॉर्ट डिवाइड-एंड-कॉंकर द्वारा संचालित होता है: हर उदाहरण में छोटे एरेज़ की बहुत सारी छंटाई करना शामिल है। छोटे सरणियों के लिए, द्विघात प्रकार जैसे द्विघात तरीके बेहतर प्रदर्शन करते हैं। इसलिए सर्वश्रेष्ठ प्रदर्शन के लिए, एक बड़े सरणी के क्विकॉर्ट में छोटे आकार के लिए सम्मिलन प्रकार के बहुत सारे रन शामिल हैं।O(nlgn)


मुझे नहीं लगता कि एन्क्रिप्शन को तोड़ना यहां एक उचित उदाहरण है; एक बात यह है कि असममित रूप से सही कुंजी खोजने की समस्या का विश्लेषण करने के लिए, हमें गैर-निरंतर कुंजी आकार के साथ रिजल्ड के सैद्धांतिक रूप से उपलब्ध संस्करणों पर विचार करना होगा, अर्थात आकार की कुंजी के लिए कुंजी को तोड़ना होगा । अन्यथा हम यह भी कह सकते हैं कि कोई भी एल्गोरिथ्म जो निश्चित आकार के इनपुट के लिए में प्रदर्शन करता है । ( 1 )nO(1)
जी। बैच

@ G.Bach इस उदाहरण की बात यह है कि यह निरंतर है (जो जटिलता सिद्धांत उच्च जटिलता से संबद्ध है) भले ही यह निरंतर-समय (सिफरटेक्स्ट के आकार के संदर्भ में) है।
गिलेस एसओ- बुराई को रोकना '

2
मुझे नहीं लगता कि आपका पहला उदाहरण काम करता है। चूँकि जाँच के लिए केवल बहुत से विकल्प हैं, एल्गोरिथम का रनटाइम , इसलिए पूर्ण क्रम के लिए कम-ऑर्डर शब्द नहीं है। o ( 1 )O(1)o(1)
templatetypedef

1
@templatetypedef AES- एन्क्रिप्टेड संदेश के एन्क्रिप्शन को तोड़कर संदेश की लंबाई के संदर्भ में है । O(1)
गिलेस एसओ- बुराई को रोकना '

1

दो उदाहरण मानकीकृत जटिलता और एफपीटी एल्गोरिदम के क्षेत्र से दिमाग में आते हैं । यह वही नहीं हो सकता है जो आप खोज रहे हैं, लेकिन यहां जाता है।

3-रंग या HAM-CYCLE जैसी ग्राफ़ समस्या पर विचार करें। दोनों समस्याओं को मोनैडिक सेकंड ऑर्डर लॉजिक में व्यक्त किया जा सकता है, और इसलिए बाउंडेड ट्रेविदथ के साथ रेखांकन के रेखीय समय में निर्णय लिया जा सकता है। यह ब्रूनो कौरसेल का परिणाम है , लेकिन परिणामी एल्गोरिदम व्यावहारिक से बहुत दूर है।

लेनस्ट्रा द्वारा एक अन्य उदाहरण एक गहरा परिणाम है, जिसमें कहा गया है कि पूर्णांक रैखिक कार्यक्रमों (ILP) को निरंतर चर के साथ रैखिक समय में हल किया जा सकता है। रवि कन्नन द्वारा किए गए अतिरिक्त काम से, हमारे पास यह है कि पूर्णांक प्रोग्रामिंग व्यवहार्यता समस्या को अंकगणितीय परिचालनों के साथ बिट्स के आकार में हल किया जा सकता है , जहाँ ILP वेरिएबल्स की संख्या है और इनपुट में बिट्स की संख्या है। यह फिर से FPT एल्गोरिदम को जन्म देता है, जो केवल बहुत छोटे उदाहरणों के लिए व्यावहारिक हैं।( पी 2 पी एल ) पी एलO(p9p/2)LO(p2pL)pL


2
पद पर विशाल स्थिरांक के कारण Courcelle का प्रमेय अव्यवहारिक है , इसलिए नहीं कि कुछ पद इस पर "छोटे" इनपुट पर हावी हैं। (निरंतर क्रम-क्रम सूत्र में नेस्टेड नेगेशंस और क्वांटिफायर ( एन )O(n)o(n)
अल्टरनेशन

0

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


लेकिन क्या वे अव्यवहारिक हैं क्योंकि कम-क्रम की शर्तें हावी हैं या क्योंकि उच्च-क्रम की शर्तों पर स्थिरांक खराब हैं?
डेविड रिचेर्बी

या तो, या एक संयोजन, प्रत्येक मामले में अलग करना मुश्किल होगा। प्रभावी रूप से / व्यावहारिक रूप से इसका एक ही प्रभाव है।
vzn 19

-1

यह एक तरह का मजाक है लेकिन इसका एक गंभीर पक्ष है ...

O(nlogn)O(n2)


1
नहीं, वह अलग है। क्विकॉर्ट अभ्यास में उपयोगी है क्योंकि ठेठ इनपुट के लिए कोई द्विघात शब्द नहीं है, चाहे वह कितना भी बड़ा आकार क्यों न हो। यदि डेटा लेआउट के लिए पिवट का विकल्प खराब है, तो क्विकसॉर्ट छोटे इनपुट के लिए भी द्विघात व्यवहार प्रदर्शित करता है।
गिल्स एसओ- बुराई को रोकें '
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.