बिग-ओ और लिटिल-ओ नोटेशन के बीच अंतर


जवाबों:


442

एफ f ओ (जी) कहते हैं, अनिवार्य रूप से

के लिए कम से कम एक एक निरंतर की पसंद कश्मीर > 0, आप एक निरंतर पा सकते हैं एक ऐसी है कि असमानता 0 <= f (x) <= किलो (x) सभी एक्स के लिए रखती है>।

ध्यान दें कि O (g) उन सभी कार्यों का समूह है, जिसके लिए यह स्थिति है।

एफ f ओ (जी) कहते हैं, अनिवार्य रूप से

के लिए हर एक निरंतर की पसंद कश्मीर > 0, आप एक निरंतर पा सकते हैं एक ऐसी है कि असमानता 0 <= f (x) <किलो (x) सभी एक्स के लिए रखती है>।

एक बार फिर, ध्यान दें कि ओ (जी) एक सेट है।

बिग-ओ में, केवल यह आवश्यक है कि आप एक विशेष गुणक k खोजें , जिसके लिए असमानता कुछ न्यूनतम x से परे हो ।

लिटिल-ओ में, यह होना चाहिए है कि वहाँ एक न्यूनतम एक्स जिसके बाद असमानता कितनी भी छोटी क्यों आप कर कोई बात नहीं मानती है कश्मीर , जब तक कि यह नकारात्मक या शून्य नहीं है।

ये दोनों ऊपरी सीमा का वर्णन करते हैं, हालांकि कुछ प्रति-सहज रूप से, लिटिल-ओ मजबूत बयान है। यदि च if ओ (छ) की तुलना में च if o (छ) है तो च और जी की वृद्धि दर के बीच एक बहुत बड़ा अंतर है।

असमानता का एक चित्रण यह है: f f O (f) सत्य है, लेकिन f (o (f) गलत है। इसलिए, बिग-ओ को "एफ g ओ (जी) के रूप में पढ़ा जा सकता है, जिसका मतलब है कि एफ की एसिम्प्टोटिक ग्रोथ जी के मुकाबले तेज नहीं है", जबकि "एफ (ओ (जी) का मतलब है कि एफ की एसिम्प्टोटिक ग्रोथ जी के लिए सख्ती से धीमी है"। यह <=बनाम की तरह है <

विशेष रूप से, यदि g (x) का मान f (x) के मान का एक स्थिर गुणक है, तो f is O (g) सत्य है। यही कारण है कि जब आप बड़े-ओ संकेतन के साथ काम कर रहे हैं तो आप स्थिरांक छोड़ सकते हैं।

हालाँकि, f (o (g) के सत्य होने के लिए, तब g को अपने सूत्र में x की एक उच्च शक्ति को शामिल करना चाहिए , और इसलिए f (x) और g (x) के बीच सापेक्ष पृथक्करण वास्तव में बड़ा होना चाहिए क्योंकि x बड़ा हो जाता है।

विशुद्ध रूप से गणित के उदाहरणों का उपयोग करने के लिए (एल्गोरिदम का उल्लेख करने के बजाय):

बिग-ओ के लिए निम्नलिखित सही हैं, लेकिन यदि आप थोड़ा-ओ का उपयोग करते हैं तो यह सच नहीं होगा:

  • x ∈ O (x²)
  • x ∈ O (x² + x)
  • x ∈ O (200 * x²)

छोटे-ओ के लिए निम्नलिखित सत्य हैं:

  • x ∈ o (x³)
  • x ∈ o (x!)
  • ln (x) (o (x)

ध्यान दें कि यदि f (o (g) है, तो इसका मतलब f g O (g) है। उदाहरण के लिए x eg ² o (x³) तो यह भी सत्य है कि x∈ ³ O (x³), (फिर, O as <=और o के रूप में सोचें <)


146
हां - अंतर यह है कि क्या दोनों कार्य समान रूप से समान हो सकते हैं। सहज रूप से मुझे बड़ा-ओ का अर्थ पसंद है "जिसका अर्थ है" की तुलना में तेजी से नहीं बढ़ता है (यानी एक ही दर या धीमी गति से बढ़ता है) और थोड़ा-ओ अर्थ "सख्ती से धीमा बढ़ता है"।
फिल

12
इसे विकिपीडिया पर कॉपी करें? यह बहुत बेहतर है कि वहाँ क्या है।
मेघसर्फिन

1
@SA हां। यह एक पेचीदा मामला है जहां मैंने "उच्च शक्तियों के बारे में" जो सरल नियम दिया है वह स्पष्ट रूप से लागू नहीं होता है। लेकिन अगर आप स्ट्रिलैंक के जवाब में दी गई अधिक कठोर सीमा परिभाषाओं को देखते हैं, तो आप जो जानना चाहते हैं, वह है यदि n n>> inf (2 ^ n / 3 ^ n) = 0. चूंकि (2 ^ n / 3 ^ n) = (2/3) ^ n और चूँकि किसी भी 0 <= x <1, lim n-> inf (x ^ n) = 0, यह सच है कि 2 ^ n = o (3 ^ n)।
टायलर मैकहेनरी

1
"लिटिल-ओ में सावधान रहें, यह होना चाहिए कि एक न्यूनतम x है जिसके बाद असमानता कोई बात नहीं रखती है कि आप कितना छोटा बनाते हैं, जब तक कि यह नकारात्मक या शून्य न हो।" यह "हर aवहाँ के लिए यह नहीं kहै: ...", यह है "के लिए हर kवहाँ एक है aकि: ..."
GA1

1
"लिटिल-ओ में, यह होना चाहिए कि एक न्यूनतम x है जिसके बाद असमानता कोई बात नहीं रखती है कि आप कितना छोटा बनाते हैं, जब तक कि यह नकारात्मक या शून्य न हो।" नहीं, यह गलत है।
फिलिपो कोस्टा

196

बिग-ओ को थोड़ा-ओ- जैसा करना है <। बिग-ओ एक समावेशी ऊपरी बाउंड है, जबकि लिटिल-ओ एक सख्त अपर बाउंड है।

उदाहरण के लिए, कार्य f(n) = 3nहै:

  • में O(n²), o(n²)औरO(n)
  • नहीं में O(lg n), o(lg n)याo(n)

एनालॉग रूप से, संख्या 1है:

  • ≤ 2, < 2और≤ 1
  • नहीं ≤ 0, < 0या< 1

सामान्य विचार दिखाते हुए यहां एक तालिका दी गई है:

बड़ी ओ मेज

(नोट: तालिका एक अच्छी मार्गदर्शिका है लेकिन इसकी सीमा परिभाषा सामान्य सीमा के बजाय बेहतर सीमा के संदर्भ में होनी चाहिए । उदाहरण के लिए, 3 + (n mod 2) 3 और 4 के बीच हमेशा के लिए दोलन। यह O(1)एक सामान्य सीमा नहीं होने के बावजूद है, क्योंकि यह अभी भी है। a lim sup: 4.)

मैं यह याद रखने की सलाह देता हूं कि बिग-ओ नोटेशन कैसे एसिम्प्टोटिक तुलनाओं में परिवर्तित होता है। तुलना याद रखना आसान है, लेकिन कम लचीला है क्योंकि आप n O (1) = P जैसी चीजें नहीं कह सकते हैं ।


मेरा एक सवाल है: लाइन 3 और 4 के बीच अंतर क्या है (सीमा परिभाषा स्तंभ)? क्या आप कृपया मुझे एक उदाहरण दिखा सकते हैं जहां 4 होल्ड (लिम> 0) है, लेकिन 3 नहीं?
मैन

3
ओह, मैं समझ गया। बिग ओमेगा, लिम के लिए है> 0, बिग ओह, लिम के लिए है <अनन्तता, बिग थीटा तब होता है जब दोनों स्थितियां पकड़ती हैं, जिसका अर्थ है 0 <लिम <अनन्तता।
मैन

F at f (g) के लिए, अनंत => 1 पर मूल्यांकन की सीमा नहीं होनी चाहिए? इसी तरह f for O (g) के लिए, 1 = <c <∈?
user2963623

1
@ user2963623 नहीं, क्योंकि परिमित मान 0 से ऊपर है, जिसमें 0 और 1 के बीच के मान शामिल हैं, "समान विषमता लेकिन विभिन्न स्थिर कारकों" के अनुरूप हैं। यदि आप 1 से कम मान छोड़ते हैं, तो आपके पास असममित-जटिलता स्थान के बजाय निरंतर-कारक स्थान में कटऑफ है।
क्रेग गिदनी

1
@ubadub आपने सेट पर घातांक संचालन प्रसारित किया। यह ढीली संकेतन है।
क्रेग गिदनी

45

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

[सामान आप जानते हैं] एल्गोरिदम को वर्गीकृत करने का एक सामान्य तरीका रनटाइम द्वारा है, और एक एल्गोरिथ्म की बड़ी-ओह जटिलता का हवाला देकर, आप एक बहुत अच्छा अनुमान लगा सकते हैं जिसमें से एक "बेहतर" है - जो भी "सबसे छोटा" फ़ंक्शन है ओ में! यहां तक ​​कि वास्तविक दुनिया में, O (N) O (N,) की तुलना में "बेहतर" है, सुपर-विशाल स्थिरांक और इसी तरह की मूर्खतापूर्ण चीजों को रोकते हैं। [/ सामान जो आप जानते हैं]

मान लीजिए कि कुछ एल्गोरिथ्म हैं जो O (N) में चलते हैं। बहुत अच्छा, हुह? लेकिन चलो तुम कहते हो (आप प्रतिभाशाली व्यक्ति हैं, तो आप) ने एक एल्गोरिथ्म के साथ कि हे (में रन आ एन / loglogloglogN )। वाह! यह तेज है! लेकिन आपको लगता है कि जब आप अपनी थीसिस लिख रहे हैं, तब आप बार-बार मूर्खतापूर्ण लेखन करेंगे। तो आप इसे एक बार लिखते हैं, और आप कह सकते हैं "इस पत्र में, मैंने साबित किया है कि एल्गोरिथ्म एक्स, पहले से समय ओ (एन) में गणना योग्य है, वास्तव में ओ (एन) में गणना योग्य है।"

इस प्रकार, हर कोई जानता है कि आपका एल्गोरिथ्म तेज है --- कितना अस्पष्ट है, लेकिन वे इसके तेज को जानते हैं। सैद्धांतिक रूप से। :)

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