कम बाध्य और तंग बाध्य के बीच अंतर क्या है?


99

इस उत्तर के संदर्भ के साथ , थीटा (तंग बाध्य) क्या है?

ओमेगा कम बाध्य है, काफी समझा जाता है, एक एल्गोरिथ्म में न्यूनतम समय लग सकता है। और हम जानते हैं कि बिग-ओ ऊपरी सीमा के लिए है, इसका मतलब है कि एल्गोरिथम अधिकतम समय ले सकता है। लेकिन मुझे थीटा के संबंध में कोई विचार नहीं है।

जवाबों:


154

बिग ओ ऊपरी बाउंड है, जबकि ओमेगा निचला बाउंड है। थीटा को बिग ओ और ओमेगा दोनों की आवश्यकता होती है, इसलिए इसे तंग बाउंड के रूप में संदर्भित किया जाता है (यह ऊपरी और निचले दोनों बाउंड होना चाहिए)।

उदाहरण के लिए, एक एल्गोरिथ्म लेने Omega(n log n)में कम से कम n log nसमय लगता है , लेकिन इसकी कोई ऊपरी सीमा नहीं है। कम से कम (ओमेगा एन लॉग एन) और इससे अधिक नहीं (बिग ओ एन लॉग एन) के Theta(n log n)बाद से एक एल्गोरिथ्म लेना बहुत बेहतर है । n log n n log n


7
ओह .. अब शब्द "तंग बाउंड" मुझे काफी आत्म-व्याख्यात्मक दिखाई दे रहा है। धन्यवाद क्रिस। मुझे बेवकूफ, शायद मैं कुछ जटिल विचार की उम्मीद कर रहा था। :)
आदिल अंसारी

6
हाँ, आपके आस-पास फेंके जाने के बाद बहुत सारे फैंसी नोटेशन हैं, लेकिन यह बहुत जटिल नहीं है।
क्रिस बंच

4
वर्जीनिया टेक का यह स्वतंत्र रूप से उपलब्ध दस्तावेज विभिन्न जटिलताओं के एल्गोरिदम के बीच के अंतर के उदाहरणों के साथ बताता है और संक्षेप में एसिम्प्टोटिक विश्लेषण बताता है: People.cs.vt.edu/shaffer/Book/C+3e20120102.pdf
एलन

आपका क्या मतलब है "एक एल्गोरिथ्म थेटा (एन लॉग एन) लेने से कहीं अधिक तरजीह है क्योंकि यह कम से कम एन लॉग एन (ओमेगा एन लॉग एन) और एन लॉग एन (बिग ओ एन लॉग एन) से अधिक नहीं है।" में, यह एक एल्गोरिथ्म की सटीक जटिलता है जैसा कि आपने लिखा था कि कम से कम ओमेगा (nlogn) और अधिकतम BigO (nlogn) में?
निखिल वर्मा

1
सरल शब्दों में, हम कॉल कर सकते हैं: ऊपरी बाउंड (बिग (ओ)) सबसे खराब स्थिति के रूप में? औसत मामले के रूप में बाध्य? सबसे अच्छा मामला है?
रेवंत

113

Θ-संकेतन (थीटा संकेतन) को तंग-बाध्य कहा जाता है क्योंकि यह O- संकेतन और ation- संकेतन से अधिक सटीक है ( (ओमेगा नोटेशन) की ।

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

Θ-संकेतन O- अंकन और not-संकेतन को मिलाकर इस समस्या को हल करता है। अगर मैं कहता हूं कि बाइनरी खोज Θ (लॉग एन) है, तो इससे आपको अधिक सटीक जानकारी मिलती है। यह आपको बताता है कि एल्गोरिथ्म दिए गए फ़ंक्शन द्वारा दोनों तरफ से घिरा हुआ है , इसलिए यह कभी भी काफी तेज या धीमा नहीं होगा।


11
If I were lazy, I could say that binary search on a sorted array is O(n2), O(n3), and O(2n), and I would be technically correct in every case- ऐसा लगता है कि कंप्यूटर की दुनिया में ज्यादातर लोग आलसी ही होते हैं क्योंकि हर कोई ज्यादातर बिग ओ की जटिलताओं के बारे में ही बात करता है।
RBT

If I were lazy, I could say that binary search on a sorted array is O(n2), O(n3), and O(2n), and I would be technically correct in every caseमामले में किसी को इस के साथ भ्रमित किया जाता है: इस तरह के कार्यों के लिए जो विषम नहीं हैं छोटे ओ-ओ नोटेशन का उपयोग किया जाता है। उदाहरण: - बाउंड 2 एन ^ 2 = ओ (एन ^ 2) असमान रूप से तंग है, लेकिन बाउंड 2 एन = ओ (एन ^ 2) नहीं है। और पढ़ें: stackoverflow.com/questions/1364444/…
ड्रैगोस स्ट्रुगर

18

है कि आप कुछ है, तो हे (च (एन)) कि इसका मतलब है वहाँ के हैं कश्मीर , जी (एन) ऐसी है कि च (एन)किलो (एन)

है कि आप कुछ है, तो Ω (च (एन)) कि इसका मतलब है वहाँ के हैं कश्मीर , जी (एन) ऐसी है कि च (एन)किलो (एन)

और यदि आपके पास O (f (n)) और f (f (n)) के साथ कुछ है , तो यह n (f (n)) है

विकिपीडिया लेख सभ्य अगर एक छोटे से घना है,।


अब बछमन-लन्दौ संकेतन का परिवार पढ़ रहा है। धन्यवाद चार्ली, मैं वहां पहले भी गया था, लेकिन अपनी लंबाई के लिए आगे बढ़े बिना वापस लौट आया।
आदिल अंसारी

अरे, डॉक्टरेट कंपटीशन में हर बार रिफ्रेश होना अच्छा है।
चार्ली मार्टिन

ध्यान दें कि लैंडौ का बड़ा-ओ संकेतन एल्गोरिथम जटिलता तक सीमित नहीं है।
चार्ली मार्टिन

यह गलत लग रहा है। पहली पंक्ति में "यदि आपके पास कुछ ऐसा है जो ओ (जी (एन))" है, अर्थात, gइसके बजाय f, और बाकी के रूप में इसे छोड़ दिया जा सकता है। वही दूसरी पंक्ति के लिए जाता है: यह "यदि आपके पास कुछ है जो g (g (n))" है। क्या आप कृपया दोहरी जांच कर सकते हैं?
फैबियो का कहना है कि

पूरा विषय इतना गड़बड़ है कि उस क्रेडिट वाले व्यक्ति को भी यह गलत लग सकता है: डी जोक एक तरफ, किसी को इस उत्तर को ठीक करने की आवश्यकता है। यह लोगों को भ्रमित करता है (यह मुझे बहुत पसंद आया)।
राड

5

एसिम्प्टोटिक अपर बाउंड का मतलब है कि किसी दिए गए एल्गोरिथ्म समय की अधिकतम मात्रा के दौरान इनपुट की संख्या के आधार पर निष्पादित करता है।

एक उदाहरण के रूप में एक छँटाई एल्गोरिथ्म लेते हैं। यदि किसी सरणी के सभी तत्व अवरोही क्रम में हैं, तो उन्हें क्रमबद्ध करने के लिए, O(n)ऊपरी बाध्य जटिलता दिखाते हुए , एक समय लगेगा । यदि सरणी पहले से ही क्रमबद्ध है, तो मान होगा O(1)

आम तौर पर, O-notationऊपरी बाध्य जटिलता के लिए उपयोग किया जाता है।


Asymptotically तंग बाध्य (ग 1 जी (एन) ≤ च (एन) ≤ सी 2 जी (एन)) से पता चलता है एक समारोह के लिए औसत बाध्य जटिलता, बाध्य सीमाओं के बीच एक मूल्य (ऊपरी बाध्य और बाध्य कम), होने जहाँ c 1 और c 2 स्थिरांक हैं।


1
यदि सरणी को सॉर्ट किया जाता है, तो बाउंड O (n) होगा
अरुण अरविंद

2
@ अरुणविंद क्या आप समझा सकते हैं कि क्यों?
nob

3

वाक्यांश न्यूनतम समय और अधिकतम समय यहां थोड़ा भ्रामक है। जब हम बड़े ओ नोटेशन के बारे में बात करते हैं, तो यह वास्तविक समय नहीं है जिसमें हम रुचि रखते हैं, यह है कि कैसे समय बढ़ता है जब हमारे इनपुट का आकार बड़ा हो जाता है। और यह आमतौर पर औसत या सबसे खराब स्थिति का समय है जिसके बारे में हम बात कर रहे हैं, सबसे अच्छा मामला नहीं , जो आमतौर पर हमारी समस्याओं को हल करने में सार्थक नहीं है।

उदाहरण के रूप में अन्य प्रश्न के स्वीकृत उत्तर में सरणी खोज का उपयोग करना। आकार n की सूची में किसी विशेष संख्या को खोजने में समय लगता है n / 2 * some_constant औसत में। यदि आप इसे एक फ़ंक्शन के रूप में मानते हैं f(n) = n/2*some_constant, तो यह g(n) = nचार्ली द्वारा दिए गए अर्थों की तुलना में तेजी से नहीं बढ़ता है । इसके अलावा, यह किसी भी की तुलना में धीमी गति से बढ़ता है g(n)। इसलिए, g(n)वास्तव f(n)में बिग-ओ संकेतन में ऊपरी सीमा और निचली सीमा दोनों हैं , इसलिए रैखिक खोज की जटिलता बिल्कुल है n है , जिसका अर्थ है कि यह थीटा (n) है।

इस संबंध में, अन्य प्रश्न के स्वीकृत उत्तर में स्पष्टीकरण पूरी तरह से सही नहीं है, जो दावा करता है कि O (n) ऊपरी बाध्य है क्योंकि एल्गोरिथ्म कुछ इनपुटों के लिए निरंतर समय में चल सकता है (यह सबसे अच्छा मामला है जिसका मैंने ऊपर उल्लेख किया है) जो वास्तव में वह नहीं है जो हम चल रहे समय के बारे में जानना चाहते हैं)।


तो, क्या हम कह सकते हैं कि that सबसे अच्छा मामला है, और O सबसे खराब है? । .. और क्या हमें क्रमशः सबसे अच्छे मामले और सबसे खराब स्थिति के रूप में शब्दों को बदलना चाहिए?
आदिल अंसारी

किसी भी समस्या के लिए सबसे अच्छा मामला O (1) है?
Zach Langley

1
@ एडेल, नहीं, थीटा और ओ दोनों औसत मामले या सबसे खराब स्थिति को संदर्भित कर सकते हैं। @Zach, ठीक है, बिल्कुल नहीं। यह बात बताने के लिए धन्यवाद।
पॉलीथिनर

0

यदि मैं आलसी था, तो मैं कह सकता था कि एक क्रमबद्ध सरणी पर बाइनरी खोज हे (n2), O (n3), और O (2n) है, और मैं हर मामले में तकनीकी रूप से सही होगा।

हम एक ऊपरी सीमा को निरूपित करने के लिए ओ-नोटेशन ("लिटिल-ओह") का उपयोग कर सकते हैं जो कि विषम रूप से तंग नहीं है। दोनों बड़े-ओह और छोटे-ओह समान हैं। लेकिन, बड़े-ओह की संभावना को विषम ऊपरी तंग बाउंड को परिभाषित करने के लिए उपयोग किया जाता है।


0

संक्षेप में निचले बाउंड या $ \ omega $ bfon f (n) का अर्थ है फ़ंक्शंस का सेट जो asymptotically कम या बराबर f (n) अर्थात U g (n) (cf (n) $ $ सभी के लिए `un≥ n 'कुछ ग के लिए, n' $ '$ $ \ Bbb {N} $ में

और ऊपरी बाउंड या $ \ mathit {O} $ on f (n) का अर्थ है फ़ंक्शंस का सेट, जो एस के समान रूप से बड़ा या बराबर हो (n) जो गणितीय रूप से बताता है,

$ g (n) \ ge cf (n) \ n के लिए सभी n \ ge n '$, कुछ c के लिए, n' $ \ in $ $ \ Bbb {N} $।

अब $ \ Theta $ ऊपर लिखे गए दो का प्रतिच्छेदन है

$\theta $

जैसे अगर एक एल्गोरिथ्म "बिलकुल $ \ Omega \ left (f (n) \ right $" जैसा है तो यह कहना बेहतर है कि यह $ \ Theta \ left (f (n) \ right) $ है।

या, हम यह भी कह सकते हैं कि यह हमें वास्तविक गति $ \omega $देता है जहां हमें सबसे कम सीमा देता है।


-2

के बीच बुनियादी अंतर

Blockquote

asymptotically ऊपरी बाउंड और asymptotically तंग Asym.upperbound का अर्थ है एक दिया गया एल्गोरिथम जो कि इनपुट की संख्या के आधार पर अधिकतम समय के साथ निष्पादित कर सकता है, उदाहरण के लिए algo को सॉर्ट करना यदि सभी सरणी (n) तत्व अवरोही क्रम में हैं तो उन्हें आरोही करने के लिए। O (n) का एक रनिंग टाइम लगेगा जो ऊपरी बाउंड कॉम्प्लेक्सिटी दिखाता है, लेकिन अगर वे पहले से ही सॉर्ट किए जाते हैं तो इसमें ohm (1) लगेगा। इसके अलावा, हम आम तौर पर अपर बाउंड कॉम्प्लेक्सिटी के लिए "O" नोटेशन का इस्तेमाल करते हैं।

Asym। टाइटबाउंड बाउंड उदाहरण के लिए दिखाता है (c1g (n) <= f (n) <= c2g (n)) तंग बाउंड लिमिट को दिखाता है जैसे कि फंक्शन में दो बाउंड (अपर बाउंड और लोअर बाउंड) के बीच वैल्यू होती है, जो रिवर्स देता है औसत मामला।


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