बिग ओ अंकन: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
{{Short description|Notation describing limiting behavior}} | {{Short description|Notation describing limiting behavior}} | ||
[[File:Big-O-notation.png|300px|thumb|बिग ओ नोटेशन का उदाहरण: <math>{\color{red}f(x)} \in O{\color{blue}(g(x))}</math> जैसा कि वहां | [[File:Big-O-notation.png|300px|thumb|बिग ओ नोटेशन का उदाहरण: <math>{\color{red}f(x)} \in O{\color{blue}(g(x))}</math> जैसा कि वहां उपस्थित है <math>M>0</math> (जैसे, <math>M=1</math>) और <math>x_0</math> (जैसे,<math>x_0=5</math>) ऐसा है कि <math>{\color{red}f(x)}\leq {\color{blue}Mg(x)}</math> जब कभी भी <math>x\geq x_0</math>.]] | ||
{{Order-of-approx}} | {{Order-of-approx}} | ||
{{DISPLAYTITLE:Big ''O'' notation}} | {{DISPLAYTITLE:Big ''O'' notation}} | ||
[[ | '''बिग ''ओ'' नोटेशन''' गणितीय नोटेशन है जो किसी [[फ़ंक्शन (गणित)|फलन (गणित)]] के [[स्पर्शोन्मुख विश्लेषण]] का वर्णन करता है जब [[किसी फ़ंक्शन का तर्क|किसी फलन का तर्क]] किसी विशेष मूल्य या अनंत की ओर जाता है। बिग ओ [[पॉल गुस्ताव हेनरिक बैचमैन]] द्वारा आविष्कृत संबंधित एसिम्प्टोटिक नोटेशन का सदस्य है,<ref name=Bachmann /> [[एडमंड लैंडौ]],<ref name=Landau /> और अन्य, जिन्हें सामूहिक रूप से बैचमैन-लैंडौ संकेतन या एसिम्प्टोटिक संकेतन कहा जाता है। अक्षर ओ को बैचमैन द्वारा ''विक्ट ऑर्डनंग जर्मन'' के लिए चुना गया था, जिसका अर्थ [[सन्निकटन का क्रम]] है। | ||
बिग ओ नोटेशन | [[कंप्यूटर विज्ञान]] में, बिग ओ नोटेशन का उपयोग [[कम्प्यूटेशनल जटिलता सिद्धांत]] के लिए किया जाता है, जिसके अनुसार इनपुट आकार बढ़ने के साथ उनके रन टाइम या स्पेस की आवश्यकताएं कैसे बढ़ती हैं।<ref name=quantumcomplexity>{{cite web|last1=Mohr|first1=Austin|title=जटिलता सिद्धांत और संगणना के सिद्धांत में क्वांटम कंप्यूटिंग|url=http://www.austinmohr.com/Work_files/complexity.pdf|access-date=7 June 2014|page=2|archive-date=8 March 2014|archive-url=https://web.archive.org/web/20140308200843/http://www.austinmohr.com/Work_files/complexity.pdf|url-status=live}}</ref> [[विश्लेषणात्मक संख्या सिद्धांत]] में, बड़े ओ नोटेशन का उपयोग अधिकांशतः अंकगणितीय फलन और उत्तम समझे जाने वाले सन्निकटन के बीच अंतर पर सीमा व्यक्त करने के लिए किया जाता है; इस तरह के अंतर का प्रसिद्ध उदाहरण [[अभाज्य संख्या प्रमेय]] में शेष पद है। इसी तरह के अनुमान प्रदान करने के लिए कई अन्य क्षेत्रों में भी बिग ओ नोटेशन का उपयोग किया जाता है। | ||
बड़े O नोटेशन के साथ | बिग ओ नोटेशन उनकी विकास दर के अनुसार कार्यों को चित्रित करता है: समान एसिम्प्टोटिक विकास दर वाले विभिन्न कार्यों को ही ओ नोटेशन का उपयोग करके दर्शाया जा सकता है। इस प्रकार ओ अक्षर का उपयोग इसलिए किया जाता है क्योंकि किसी फलन की वृद्धि दर को फलन का क्रम भी कहा जाता है। बड़े ओ नोटेशन के संदर्भ में किसी फलन का विवरण सामान्यतः केवल फलन की वृद्धि दर पर [[ऊपरी सीमा]] प्रदान करता है। | ||
बड़े O नोटेशन के साथ संबद्ध कई संबंधित नोटेशन हैं जो स्पर्शोन्मुख विकास दर पर अन्य प्रकार की सीमाओं का वर्णन करने के लिए प्रतीकों {{math|''o'', Ω, ''ω''}}, और {{math|Θ}} का उपयोग करते हैं। | |||
== औपचारिक परिभाषा == | == औपचारिक परिभाषा == | ||
माना <math>f</math>, जिस फलन का अनुमान लगाया जाना है, वह [[वास्तविक संख्या]] या [[जटिल संख्या]] मूल्यवान फलन हो और माना <math>g</math>, तुलना फलन, वास्तविक मूल्यवान फलन बनें। मान लीजिए कि दोनों कार्यों को सकारात्मक वास्तविक संख्याओं के कुछ बंधे हुए [[सबसेट]] उपसमुच्चय पर परिभाषित किया गया है, और <math>g(x)</math> के सभी बड़े पर्याप्त मूल्यों के लिए सख्ती से सकारात्मक <math>x</math> <ref name=LandauO>{{cite book |first=Edmund |last=Landau |author-link=Edmund Landau |title=अभाज्य संख्याओं के वितरण के अध्ययन का मैनुअल|publisher=B.G. Teubner |year=1909 |location=Leipzig |trans-title=Handbook on the theory of the distribution of the primes |language=de |page=31 | url=https://archive.org/stream/handbuchderlehre01landuoft#page/31/mode/2up}}</ref> लिखता है | |||
<math display="block"> | <math display="block"> | ||
f(x) = O\bigl( g(x)\bigr)\quad\text{ as }x\to\infty | f(x) = O\bigl( g(x)\bigr)\quad\text{ as }x\to\infty | ||
</math> | </math> | ||
और इसे पढ़ा जाता है<math>f(x)</math> | |||
और इसे पढ़ा जाता है <math>f(x)</math> <math>g(x)</math> का बड़ा O है" यदि <math>x</math> के सभी पर्याप्त बड़े मानों के लिए <math>f(x)</math> का निरपेक्ष मान <math>g(x)</math> का अधिकतम सकारात्मक स्थिरांक है। यानी कि यदि एक सकारात्मक वास्तविक संख्या <math>M</math> और एक वास्तविक संख्या <math>f(x) =O\bigl(g(x)\bigr)</math> उपस्थित है तो | |||
<math display="block">|f(x)| \le M g(x) \quad \text{ for all } x \ge x_0.</math> | <math display="block">|f(x)| \le M g(x) \quad \text{ for all } x \ge x_0.</math> | ||
कई संदर्भों में, यह धारणा कि हम चर के रूप में विकास दर में रुचि रखते हैं | कई संदर्भों में, यह धारणा कि हम चर <math>x</math> के रूप में विकास दर में रुचि रखते हैं अनंत तक जाता है, उसे अघोषित छोड़ दिया जाता है, और कोई इसे और अधिक सरलता से लिखता है | ||
<math display="block">f(x) = O\bigl( g(x) \bigr).</math> | <math display="block">f(x) = O\bigl( g(x) \bigr).</math> | ||
नोटेशन का उपयोग के व्यवहार का वर्णन करने के लिए भी किया जा सकता है | नोटेशन <math>f</math> का उपयोग के व्यवहार का वर्णन करने के लिए भी किया जा सकता है किसी वास्तविक संख्या के निकट <math>a</math> (अधिकांशतः, <math>a=0</math>): हम कहते हैं | ||
<math display="block">f(x) = O\bigl( g(x) \bigr)\quad\text{ as }x \to a</math> | <math display="block">f(x) = O\bigl( g(x) \bigr)\quad\text{ as }x \to a</math> | ||
यदि सकारात्मक संख्याएँ | यदि सकारात्मक संख्याएँ <math>\delta</math> और <math>M</math> उपस्थित हैं ऐसा कि सभी के लिए परिभाषित <math>x</math> साथ {{nowrap|<math>0 < |x-a| < \delta</math>,}} है<math display="block">|f(x)| \le M g(x).</math> | ||
<math display="block">|f(x)| \le M g(x).</math> | |||
जैसा <math>g(x)</math> के ऐसे मूल्यों के लिए सख्ती से सकारात्मक | |||
जैसा <math>g(x)</math> के ऐसे मूल्यों के लिए सख्ती से सकारात्मक <math>x</math> होने के लिए चुना गया है , इन दोनों परिभाषाओं को [[सीमा श्रेष्ठ]] का उपयोग करके एकीकृत किया जा सकता है: | |||
<math display="block">f(x) = O\bigl( g(x) \bigr) \quad \text{ as } x \to a</math> | <math display="block">f(x) = O\bigl( g(x) \bigr) \quad \text{ as } x \to a</math> | ||
यदि | |||
<math display="block">\limsup_{x\to a} \frac{\left|f(x)\right|}{g(x)} < \infty.</math> | <math display="block">\limsup_{x\to a} \frac{\left|f(x)\right|}{g(x)} < \infty.</math> | ||
और इन दोनों परिभाषाओं में [[सीमा बिंदु]] <math>a</math> (चाहे <math>\infty</math> या नहीं) के डोमेन का [[क्लस्टर बिंदु]] है <math>f</math> और <math>g</math>, | और इन दोनों परिभाषाओं में [[सीमा बिंदु]] <math>a</math> (चाहे <math>\infty</math> या नहीं) के डोमेन का [[क्लस्टर बिंदु]] है <math>f</math> और <math>g</math>, ई., के प्रत्येक निकट में <math>a</math> इसमें अपरिमित रूप से कई बिंदु समान होने चाहिए। इसके अतिरिक्त, जैसा कि लिमिट अवर और लिमिट सुपीरियर या रियल-वैल्यूड फ़ंक्शंस के बारे में लेख में बताया गया है <math>\textstyle \limsup_{x\to a}</math> (कम से कम [[विस्तारित वास्तविक संख्या रेखा]] पर) सदैव उपस्थित रहता है। | ||
कंप्यूटर विज्ञान में, थोड़ी अधिक प्रतिबंधात्मक परिभाषा सामान्य है: <math>f</math> और <math>g</math> क्या दोनों को [[प्राकृतिक संख्या]]ओं के कुछ असंबद्ध उपसमुच्चय से गैर-ऋणात्मक वास्तविक संख्याओं तक फलन होना आवश्यक है; तब <math>f(x) = O\bigl(g(x)\bigr)</math> यदि धनात्मक पूर्णांक संख्याएँ <math>M</math> और <math>n_0</math> उपस्थित हों तो <math>f(n) \le M g(n)</math> सभी <math> n \ge n_0</math> के लिए <ref>{{cite book | author=Michael Sipser | title=संगणना के सिद्धांत का परिचय| location=Boston/MA | publisher=PWS Publishing Co. | year=1997 }} Here: Def.7.2, p.227</ref> | |||
== उदाहरण == | == उदाहरण == | ||
सामान्य उपयोग में {{math|''O''}} अंकन स्पर्शोन्मुख है, अर्थात यह बहुत बड़े | सामान्य उपयोग में {{math|''O''}} अंकन स्पर्शोन्मुख है, अर्थात यह बहुत बड़े {{mvar|x}} को संदर्भित करता है . इस सेटिंग में, सबसे तेज़ी से बढ़ने वाले शब्दों का योगदान अंततः अन्य को अप्रासंगिक बना देगा। परिणामस्वरूप, निम्नलिखित सरलीकरण नियम प्रयुक्त किए जा सकते हैं: | ||
* | *यदि {{math|''f''(''x'')}} कई पदों का योग है, यदि सबसे अधिक वृद्धि दर वाला कोई है, जिससे उसे रखा जा सकता है, और अन्य सभी को छोड़ दिया जा सकता है। | ||
* | *यदि {{math|''f''(''x'')}} कई कारकों का उत्पाद है, किसी भी स्थिरांक (उत्पाद में ऐसे कारक जो निर्भर नहीं होते हैं {{mvar|x}}) मिटाया जा सकता है। | ||
उदाहरण के लिए, | उदाहरण के लिए, माना {{math|1=''f''(''x'') = 6''x''<sup>4</sup> − 2''x''<sup>3</sup> + 5}}, और मान लीजिए कि हम इसका उपयोग करके इस फलन को सरल बनाना चाहते हैं {{math|''O''}} संकेतन, इसकी वृद्धि दर को इस प्रकार वर्णित करने के लिए {{mvar|x}} अनंत तक पहुंचता है। यह फलन तीन पदों का योग है: {{math|6''x''<sup>4</sup>}}, {{math|−2''x''<sup>3</sup>}}, और {{math|5}}. इन तीन नियमो में से, उच्चतम विकास दर वाला वह है जिसके कार्य के रूप में सबसे बड़ा प्रतिपादक है {{mvar|x}}, अर्थात् {{math|6''x''<sup>4</sup>}}. अब कोई दूसरा नियम प्रयुक्त कर सकता है: {{math|6''x''<sup>4</sup>}} का उत्पाद है {{math|6}} और {{math|''x''<sup>4</sup>}} जिसमें पहला कारक निर्भर नहीं करता {{math|''x''}}. इस कारक को छोड़ने पर परिणाम सरलीकृत हो जाता है {{math|''x''<sup>4</sup>}}. इस प्रकार, हम ऐसा कहते हैं {{math|''f''(''x'')}} का बड़ा ओ है {{math|''x''<sup>4</sup>}}. गणितीय रूप से हम {{math|1=''f''(''x'') = ''O''(''x''<sup>4</sup>)}} लिख सकते हैं . कोई औपचारिक परिभाषा का उपयोग करके इस गणना की पुष्टि कर सकता है: माना {{math|1=''f''(''x'') = 6''x''<sup>4</sup> − 2''x''<sup>3</sup> + 5}} और {{math|1=''g''(''x'') = ''x''<sup>4</sup>}}. उपरोक्त से औपचारिक परिभाषा को प्रयुक्त करते हुए कथन कि {{math|1=''f''(''x'') = ''O''(''x''<sup>4</sup>)}} इसके विस्तार के सामान्य है, | ||
<math display="block">|f(x)| \le M x^4</math> | <math display="block">|f(x)| \le M x^4</math> | ||
किसी वास्तविक संख्या के कुछ उपयुक्त विकल्प के लिए {{math|''x''<sub>0</sub>}} और सकारात्मक वास्तविक संख्या {{mvar|M}} और सभी के लिए {{math|''x'' > ''x''<sub>0</sub>}}. इसे | किसी वास्तविक संख्या के कुछ उपयुक्त विकल्प के लिए {{math|''x''<sub>0</sub>}} और सकारात्मक वास्तविक संख्या {{mvar|M}} और सभी के लिए {{math|''x'' > ''x''<sub>0</sub>}}. इसे सिद्ध करने के लिए आइए {{math|1=''x''<sub>0</sub> = 1}} और {{math|1=''M'' = 13}}. फिर, सभी {{math|''x'' > ''x''<sub>0</sub>}} के लिए : | ||
<math display="block">\begin{align} | <math display="block">\begin{align} | ||
|6x^4 - 2x^3 + 5| &\le 6x^4 + |2x^3| + 5\\ | |6x^4 - 2x^3 + 5| &\le 6x^4 + |2x^3| + 5\\ | ||
Line 51: | Line 56: | ||
== उपयोग == | == उपयोग == | ||
बिग ओ नोटेशन के अनुप्रयोग के दो मुख्य क्षेत्र हैं: | बिग ओ नोटेशन के अनुप्रयोग के दो मुख्य क्षेत्र हैं: | ||
* गणित में, इसका उपयोग | * गणित में, इसका उपयोग सामान्यतः बिग ओ नोटेशन इनफिनिटेसिमल एसिम्प्टोटिक्स का वर्णन करने के लिए किया जाता है, विशेष रूप से काटे गए [[टेलर श्रृंखला]] या एसिम्प्टोटिक विस्तार के स्थिति में वर्णन करने के लिए किया जाता है | ||
* कंप्यूटर विज्ञान में, यह बिग ओ नोटेशन | * कंप्यूटर विज्ञान में, यह बिग ओ नोटेशन अनंत [[स्पर्शोन्मुख विस्तार]] उपयोगी है | ||
दोनों अनुप्रयोगों में, | दोनों अनुप्रयोगों में, फलन {{math|''g''(''x'')}} के अन्दर प्रदर्शित हो रहा है {{math|''O''(·)}} को सामान्यतः यथासंभव सरल चुना जाता है, निरंतर कारकों और निचले क्रम की नियमो को छोड़ दिया जाता है। | ||
इस नोटेशन के दो औपचारिक रूप से | इस नोटेशन के दो औपचारिक रूप से निकट, किन्तु स्पष्ट रूप से भिन्न उपयोग हैं: | ||
* अनंत स्पर्शोन्मुखता | * अनंत स्पर्शोन्मुखता | ||
* [[बहुत छोता]] एसिम्प्टोटिक्स। | * [[बहुत छोता]] एसिम्प्टोटिक्स। | ||
यह अंतर केवल अनुप्रयोग में है और सिद्धांत रूप में नहीं, | यह अंतर केवल अनुप्रयोग में है और सिद्धांत रूप में नहीं, चूँकि - बड़े ओ के लिए औपचारिक परिभाषा दोनों मामलों के लिए समान है, केवल फलन तर्क के लिए अलग-अलग सीमाएं हैं। | ||
=== अनंत स्पर्शोन्मुख === | === अनंत स्पर्शोन्मुख === | ||
[[File:comparison computational complexity.svg|thumb|एल्गोरिदम के विश्लेषण में | [[File:comparison computational complexity.svg|thumb|एल्गोरिदम के विश्लेषण में सामान्यतः उपयोग किए जाने वाले फलन के ग्राफ़, संचालन की संख्या दर्शाते हैं {{mvar|N}} बनाम इनपुट आकार {{mvar|n}}प्रत्येक फलन के लिए]]दक्षता के लिए [[एल्गोरिदम का विश्लेषण]] करते समय बिग ओ नोटेशन उपयोगी होता है। उदाहरण के लिए, आकार की समस्या को पूरा करने में लगने वाला समय (या चरणों की संख्या) {{mvar|n}} पाया जा सकता है {{math|1=''T''(''n'') = 4''n''<sup>2</sup> − 2''n'' + 2}}. जैसा {{mvar|n}} बड़ा हो जाता है, {{math|''n''<sup>2</sup>}} [[सारांश]] हावी हो जाएगा, जिससे अन्य सभी नियमो की उपेक्षा की जा सके - उदाहरण के लिए जब {{math|1=''n'' = 500}}, शब्द {{math|4''n''<sup>2</sup>}} से 1000 गुना बड़ा है {{math|2''n''}} अवधि उत्तरार्द्ध को अनदेखा करने से अधिकांश उद्देश्यों के लिए अभिव्यक्ति के मूल्य पर नगण्य प्रभाव पड़ेगा। इसके अतिरिक्त, यदि हम अभिव्यक्ति के सन्निकटन के किसी अन्य आदेश से तुलना करते हैं, जैसे कि पद युक्त अभिव्यक्ति, तो गुणांक अप्रासंगिक हो जाते हैं {{math|''n''<sup>3</sup>}} या {{math|''n''<sup>4</sup>}}. तथापि {{math|1=''T''(''n'') = 1,000,000''n''<sup>2</sup>}}, यदि {{math|1=''U''(''n'') = ''n''<sup>3</sup>}}, बाद वाला सदैव पहले वाले से बार अधिक होगा {{mvar|n}} से बड़ा हो जाता है {{math|1,000,000}} ({{math|1=''T''(1,000,000) = 1,000,000<sup>3</sup> = ''U''(1,000,000)}}). इसके अतिरिक्त, चरणों की संख्या मशीन मॉडल के विवरण पर निर्भर करती है जिस पर एल्गोरिदम चलता है, किन्तु विभिन्न प्रकार की मशीनें सामान्यतः एल्गोरिदम को निष्पादित करने के लिए आवश्यक चरणों की संख्या में केवल स्थिर कारक से भिन्न होती हैं। जिससे बड़ा ओ नोटेशन जो बचता है उसे पकड़ लेता है: हम या तो लिखते हैं | ||
:<math>T(n)= O(n^2) </math> | :<math>T(n)= O(n^2) </math> | ||
या | या | ||
:<math>T(n) \in O(n^2) </math> | :<math>T(n) \in O(n^2) </math> | ||
और कहें कि एल्गोरिदम का क्रम है {{math|n<sup>2</sup>}} समय जटिलता. संकेत | और कहें कि एल्गोरिदम का क्रम है {{math|n<sup>2</sup>}} समय जटिलता. संकेत का अभिप्राय अपने सामान्य गणितीय अर्थ में सामान्य को व्यक्त करना नहीं है, किन्तु अधिक बोलचाल की भाषा है, इसलिए दूसरी अभिव्यक्ति को कभी-कभी अधिक स्पष्ट माना जाता है (नीचे सामान्य चिह्न चर्चा देखें) जबकि पहली को कुछ लोगों द्वारा दुरुपयोग माना जाता है .<ref name="clrs3" /> | ||
=== अनंतिम स्पर्शोन्मुखता === | === अनंतिम स्पर्शोन्मुखता === | ||
बिग ओ का उपयोग टेलर श्रृंखला | बिग ओ का उपयोग टेलर श्रृंखला अनुमान त्रुटि और गणितीय फलन के सन्निकटन में अभिसरण का वर्णन करने के लिए भी किया जा सकता है। सबसे महत्वपूर्ण शब्दों को स्पष्ट रूप से लिखा जाता है, और फिर सबसे कम महत्वपूर्ण शब्दों को बड़े ओ शब्द में संक्षेपित किया जाता है। उदाहरण के लिए, एक्सपोनेंशियल फलन औपचारिक परिभाषा और इसकी दो अभिव्यक्तियों पर विचार करें जो कब मान्य हैं | ||
:<math>\begin{align} | :<math>\begin{align} | ||
e^x &=1+x+\frac{x^2}{2!}+\frac{x^3}{3!}+\frac{x^4}{4!}+\dotsb &\text{for all } x\\[4pt] | e^x &=1+x+\frac{x^2}{2!}+\frac{x^3}{3!}+\frac{x^4}{4!}+\dotsb &\text{for all } x\\[4pt] | ||
Line 77: | Line 82: | ||
&=1+x+O(x^2) &\text{as } x\to 0 | &=1+x+O(x^2) &\text{as } x\to 0 | ||
\end{align}</math> | \end{align}</math> | ||
दूसरा व्यंजक | दूसरा व्यंजक ''O''(''x''<sup>3</sup> का अर्थ है त्रुटि e<sup>x</sup> − (1 + x + x<sup>2</sup>/2) का निरपेक्ष मान अधिक से अधिक कुछ स्थिर {{!}}x<sup>3</sup>{{!}} समय है जब x 0 के अधिक निकट होता है। | ||
== गुण == | == गुण == | ||
यदि | यदि फलन {{math|''f''}} को अन्य कार्यों के सीमित योग के रूप में लिखा जा सकता है, फिर सबसे तेजी से बढ़ने वाला क्रम {{math|''f''(''n'')}} निर्धारित करता है उदाहरण के लिए, | ||
:<math>f(n) = 9 \log n + 5 (\log n)^4 + 3n^2 + 2n^3 = O(n^3) \qquad\text{as } n\to\infty .</math> | :<math>f(n) = 9 \log n + 5 (\log n)^4 + 3n^2 + 2n^3 = O(n^3) \qquad\text{as } n\to\infty .</math> | ||
विशेष रूप से, यदि कोई फलन किसी बहुपद | विशेष रूप से, यदि कोई फलन किसी बहुपद {{mvar|n}} से घिरा हो सकता है , फिर ऐसे {{mvar|n}} अनंत की ओर प्रवृत्त होता है, कोई बहुपद के निचले-क्रम वाले पदों की उपेक्षा कर सकता है। सेट {{math|''O''(''n''<sup>''c''</sup>)}} और {{math|''O''(''c''<sup>''n''</sup>)}} बहुत अलग हैं. यदि {{mvar|c}} से बड़ा है, तो बाद वाला बहुत तेजी से बढ़ता है। फलन जो तेजी से बढ़ता है {{math|''n''<sup>''c''</sup>}} किसी के लिए {{mvar|c}} को सुपरपोलिनोमियल कहा जाता है। वह जो प्रपत्र के किसी भी घातांकीय फलन की तुलना में अधिक धीरे-धीरे बढ़ता है {{math|''c''<sup>''n''</sup>}} को उपघातीय कहा जाता है। एल्गोरिदम को ऐसे समय की आवश्यकता हो सकती है जो सुपरपोलिनोमियल और सबएक्सपोनेंशियल दोनों हो; इसके उदाहरणों में [[पूर्णांक गुणनखंडन]] और फलन {{math|''n''<sup>log ''n''</sup>}} के लिए सबसे तेज़ ज्ञात एल्गोरिदम सम्मिलित हैं . | ||
हम किसी भी शक्ति को नजरअंदाज कर सकते हैं {{mvar|n}} लघुगणक के | हम किसी भी शक्ति को नजरअंदाज कर सकते हैं {{mvar|n}} लघुगणक के अंदर सेट {{math|''O''(log ''n'')}} बिलकुल वैसा ही है {{math|''O''(log(''n''<sup>''c''</sup>))}}. लघुगणक केवल स्थिर कारक से भिन्न होते हैं (क्योंकि {{math|1=log(''n''<sup>''c''</sup>) = ''c'' log ''n''}}) और इस प्रकार बड़ा ओ नोटेशन इसे अनदेखा कर देता है। इसी प्रकार, विभिन्न स्थिर आधारों वाले लॉग समतुल्य होते हैं। दूसरी ओर, विभिन्न आधारों वाले घातांक ही क्रम के नहीं होते हैं। उदाहरण के लिए, {{math|2<sup>''n''</sup>}} और {{math|3<sup>''n''</sup>}} समान क्रम के नहीं हैं। | ||
बदलती इकाइयाँ परिणामी एल्गोरिदम के क्रम को प्रभावित कर भी सकती हैं और नहीं भी। इकाइयों को बदलना, जहां कहीं भी दिखाई दे, उचित चर को स्थिरांक से गुणा करने के | बदलती इकाइयाँ परिणामी एल्गोरिदम के क्रम को प्रभावित कर भी सकती हैं और नहीं भी। इकाइयों को बदलना, जहां कहीं भी दिखाई दे, उचित चर को स्थिरांक से गुणा करने के सामान्य है। उदाहरण के लिए, यदि कोई एल्गोरिदम क्रम में चलता है {{math|''n''<sup>2</sup>}}, प्रतिस्थापित करना {{mvar|n}} द्वारा {{math|''cn''}} का अर्थ है कि एल्गोरिदम क्रम में चलता है {{math|''c''<sup>2</sup>''n''<sup>2</sup>}}, और बड़ा ओ अंकन स्थिरांक को अनदेखा करता है {{math|''c''<sup>2</sup>}}. इसे ऐसे लिखा जा सकता है {{math|1=''c''<sup>2</sup>''n''<sup>2</sup> = O(''n''<sup>2</sup>)}}. यदि, तथापि, एल्गोरिथ्म के क्रम में चलता है {{math|2<sup>''n''</sup>}}, प्रतिस्थापित करना {{mvar|n}} साथ {{math|''cn''}} देता है {{math|1=2<sup>''cn''</sup> = (2<sup>''c''</sup>)<sup>''n''</sup>}}. यह इसके सामान्य नहीं है {{math|2<sup>''n''</sup>}} सामान्य रूप में। चर बदलने से परिणामी एल्गोरिदम का क्रम भी प्रभावित हो सकता है। उदाहरण के लिए, यदि किसी एल्गोरिदम का रन टाइम है {{math|''O''(''n'')}} जब संख्या के संदर्भ में मापा जाता है {{mvar|n}} किसी इनपुट संख्या के अंकों का {{mvar|x}}, तो इसका रन टाइम है {{math|''O''(log ''x'')}} जब इनपुट संख्या के फलन के रूप में मापा जाता है | ||
=== उत्पाद === | === उत्पाद === | ||
Line 94: | Line 99: | ||
=== योग === | === योग === | ||
यदि <math> f_1 = O(g_1)</math> और <math> f_2= O(g_2) </math> तब <math> f_1 + f_2 = O(\max(g_1, g_2))</math>. यह इस प्रकार है कि यदि <math> f_1 = O(g) </math> और <math> f_2 = O(g)</math> तब <math> f_1+f_2 \in O(g) </math>. दूसरे शब्दों में, यह दूसरा कथन यही कहता है <math>O(g)</math> [[उत्तल शंकु]] है. | |||
=== एक स्थिरांक से गुणा === | === एक स्थिरांक से गुणा === | ||
माना {{mvar|k}} शून्येतर स्थिरांक है। तब <math>O(|k| \cdot g) = O(g)</math>. दूसरे शब्दों में, यदि <math>f = O(g)</math>, तब <math>k \cdot f = O(g). </math> | |||
== एकाधिक चर == | == एकाधिक चर == | ||
बिग ओ (और छोटे ओ, Ω, आदि) का उपयोग कई वेरिएबल्स के साथ भी किया जा सकता है। कई चरों के लिए बड़े | बिग ओ (और छोटे ओ, Ω, आदि) का उपयोग कई वेरिएबल्स के साथ भी किया जा सकता है। कई चरों के लिए बड़े ओ को औपचारिक रूप से परिभाषित करने के लिए, मान लीजिए <math>f</math> और <math>g</math> के कुछ उपसमुच्चय पर परिभाषित दो कार्य हैं <math>\R^n</math>. हम कहते हैं | ||
:<math>f(\mathbf{x})\text{ is }O(g(\mathbf{x}))\quad\text{ as }\mathbf{x}\to\infty</math> | :<math>f(\mathbf{x})\text{ is }O(g(\mathbf{x}))\quad\text{ as }\mathbf{x}\to\infty</math> | ||
यदि और केवल यदि स्थिरांक | यदि और केवल यदि स्थिरांक उपस्थित हैं <math>M</math> और <math>C > 0</math> ऐसा है कि <math>|f(\mathbf{x})| \le C |g(\mathbf{x})|</math> सभी के लिए <math>\mathbf{x}</math> साथ <math> x_i \geq M</math> कुछ के लिए <math>i.</math><ref>{{cite book |last1=Cormen |first1=Thomas |last2=Leiserson |first2=Charles |last3=Rivest |first3=Ronald |last4=Stein |first4=Clifford |title=एल्गोरिदम का परिचय|url=https://archive.org/details/introductiontoal00corm_805 |url-access=limited |year=2009 |publisher=MIT |page=[https://archive.org/details/introductiontoal00corm_805/page/n73 53] |edition=Third}}</ref> | ||
समान रूप से, शर्त यह है कि <math>x_i \geq M</math> कुछ के लिए <math>i</math> लिखा जा सकता है <math>\|\mathbf{x}\|_{\infty} \ge M</math>, कहाँ <math>\|\mathbf{x}\|_{\infty}</math> [[चेबीशेव मानदंड]] को दर्शाता है। उदाहरण के लिए, कथन | समान रूप से, शर्त यह है कि <math>x_i \geq M</math> कुछ के लिए <math>i</math> लिखा जा सकता है <math>\|\mathbf{x}\|_{\infty} \ge M</math>, कहाँ <math>\|\mathbf{x}\|_{\infty}</math> [[चेबीशेव मानदंड]] को दर्शाता है। उदाहरण के लिए, कथन | ||
:<math>f(n,m) = n^2 + m^3 + O(n+m) \quad\text{ as } n,m\to\infty</math> | :<math>f(n,m) = n^2 + m^3 + O(n+m) \quad\text{ as } n,m\to\infty</math> | ||
दावा करता है कि ऐसे स्थिरांक C और M | दावा करता है कि ऐसे स्थिरांक C और M उपस्थित हैं | ||
:<math> |f(n,m) - (n^2 + m^3)| \le C |n+m|</math> | :<math> |f(n,m) - (n^2 + m^3)| \le C |n+m|</math> | ||
जब भी या तो <math> m \geq M</math> या <math>n \geq M</math> धारण करता है. यह परिभाषा सभी निर्देशांकों की अनुमति देती है <math>\mathbf{x}</math> अनंत तक बढ़ना. विशेष रूप से, कथन | जब भी या तो <math> m \geq M</math> या <math>n \geq M</math> धारण करता है. यह परिभाषा सभी निर्देशांकों की अनुमति देती है <math>\mathbf{x}</math> अनंत तक बढ़ना. विशेष रूप से, कथन | ||
:<math>f(n,m) = O(n^m) \quad \text{ as } n,m\to\infty</math> | :<math>f(n,m) = O(n^m) \quad \text{ as } n,m\to\infty</math> | ||
(अर्थात।, <math>\exists C \,\exists M \,\forall n \,\forall m\,\cdots</math>) से | (अर्थात।, <math>\exists C \,\exists M \,\forall n \,\forall m\,\cdots</math>) से अधिक अलग है | ||
:<math>\forall m\colon~f(n,m) = O(n^m) \quad\text{ as } n\to\infty</math> | :<math>\forall m\colon~f(n,m) = O(n^m) \quad\text{ as } n\to\infty</math> | ||
(अर्थात।, <math>\forall m \, \exists C \, \exists M \, \forall n \, \cdots</math>). | (अर्थात।, <math>\forall m \, \exists C \, \exists M \, \forall n \, \cdots</math>). | ||
इस परिभाषा के तहत, उपसमुच्चय जिस पर | इस परिभाषा के तहत, उपसमुच्चय जिस पर फलन परिभाषित किया गया है, यूनीवेरिएट सेटिंग से मल्टीवेरिएट सेटिंग में कथनों को सामान्यीकृत करते समय महत्वपूर्ण होता है। उदाहरण के लिए, यदि <math>f(n,m)=1</math> और <math>g(n,m)=n</math>, तब <math>f(n,m) = O(g(n,m))</math> यदि हम प्रतिबंधित करते हैं <math>f</math> और <math>g</math> को <math>[1,\infty)^2</math>, किन्तु तब नहीं जब उन्हें परिभाषित किया गया हो <math>[0,\infty)^2</math>. | ||
बहुभिन्नरूपी कार्यों के लिए बड़े | बहुभिन्नरूपी कार्यों के लिए बड़े ओ का यह एकमात्र सामान्यीकरण नहीं है, और व्यवहार में, परिभाषा के चुनाव में कुछ असंगतता है।<ref>{{cite web |last1=Howell |first1=Rodney |title=अनेक चरों के साथ असममित संकेतन पर|url=http://people.cis.ksu.edu/~rhowell/asymptotic.pdf |access-date=2015-04-23 |archive-date=2015-04-24 |archive-url=https://web.archive.org/web/20150424012920/http://people.cis.ksu.edu/~rhowell/asymptotic.pdf |url-status=live }}</ref> | ||
== अंकन के | == अंकन के स्थिति == | ||
=== | === सामान्य का चिह्न === | ||
कथन f(x) | कथन f(x) ओ(g(x)) है जैसा कि ऊपर परिभाषित किया गया है, सामान्यतः इस प्रकार लिखा जाता है {{nowrap|1=''f''(''x'') = ''O''(''g''(''x''))}}. कुछ लोग इसे संकेतन का दुरुपयोग मानते हैं, क्योंकि सामान्य चिह्न का उपयोग भ्रामक हो सकता है क्योंकि यह समरूपता का सुझाव देता है जो इस कथन में नहीं है। जैसा कि [[निकोलस गोवर्ट डी ब्रुइज़न]] कहते हैं, {{nowrap|1=''O''(''x'') = ''O''(''x''<sup>2</sup>)}} सत्य है किन्तु {{nowrap|1=''O''(''x''<sup>2</sup>) = ''O''(''x'')}} क्या नहीं है।<ref name=deBruijn>{{Cite book | author=N. G. de Bruijn | author-link=N. G. de Bruijn | title=विश्लेषण में स्पर्शोन्मुख विधियाँ| place=Amsterdam | publisher=North-Holland | year=1958 | pages=5–7 | url=https://books.google.com/books?id=_tnwmvHmVwMC&q=%22The+trouble+is%22&pg=PA5 | isbn=978-0-486-64221-5 | access-date=2021-09-15 | archive-date=2023-01-17 | archive-url=https://web.archive.org/web/20230117051949/https://books.google.com/books?id=_tnwmvHmVwMC&q=%22The+trouble+is%22&pg=PA5 | url-status=live }}</ref> [[डोनाल्ड नुथ]] ऐसे बयानों को एकतरफा समानता के रूप में वर्णित करते हैं, क्योंकि यदि पक्षों को उलटा किया जा सकता है, तो हम हास्यास्पद बातें निकाल सकते हैं {{nowrap|1=''n'' = ''n''<sup>2</sup>}}पहचान से {{nowrap|1=''n'' = ''O''(''n''<sup>2</sup>)}} और {{nowrap|1=''n''<sup>2</sup> = ''O''(''n''<sup>2</sup>)}}.<ref name="Concrete Mathematics">{{Cite book |last1=Graham |first1=Ronald |author1-link=Ronald Graham |first2=Donald |last2=Knuth |author2-link=Donald Knuth |last3=Patashnik |first3=Oren |author3-link=Oren Patashnik |title=ठोस गणित|location=Reading, Massachusetts |publisher=Addison–Wesley |edition=2 |date=1994 |page=446 |url=https://books.google.com/books?id=pntQAAAAMAAJ |isbn=978-0-201-55802-9 |access-date=2016-09-23 |archive-date=2023-01-17 |archive-url=https://web.archive.org/web/20230117051955/https://books.google.com/books?id=pntQAAAAMAAJ |url-status=live }}</ref> अन्य पत्र में, नथ ने यह भी बताया कि समानता चिह्न ऐसे अंकन के संबंध में सममित नहीं है, क्योंकि, इस अंकन में, गणितज्ञ परंपरागत रूप से = चिह्न का उपयोग करते हैं क्योंकि वे अंग्रेजी में शब्द का उपयोग करते हैं: अरस्तू आदमी है, किन्तु आदमी है जरूरी नहीं कि अरस्तू हो।<ref>{{Cite journal | author=Donald Knuth | title=बिग ओ के साथ कैलकुलस सिखाएं| date=June–July 1998 | journal=[[Notices of the American Mathematical Society]] | volume=45 | issue=6 | page=687 | url=https://www.ams.org/notices/199806/commentary.pdf | access-date=2021-09-05 | archive-date=2021-10-14 | archive-url=https://web.archive.org/web/20211014070416/https://www.ams.org/notices/199806/commentary.pdf | url-status=live }} ([http://www-cs-staff.stanford.edu/~knuth/ocalc.tex Unabridged version] {{Webarchive|url=https://web.archive.org/web/20080513234708/http://www-cs-staff.stanford.edu/~knuth/ocalc.tex |date=2008-05-13 }})</ref> | ||
इन कारणों से, [[ संकेतन सेट करें ]] का उपयोग करना और लिखना अधिक | इन कारणों से, [[ संकेतन सेट करें ]] का उपयोग करना और लिखना अधिक स्पष्ट होगा {{nobr|''f''(''x'') ∈ ''O''(''g''(''x''))}} (इस प्रकार पढ़ें: f(x) तत्व (गणित)#नोटेशन और शब्दावली ओ(g(x)) , या f(x) सेट ओ(g(x)) में है), ओ(g(x) के बारे में सोचते हुए )) सभी कार्यों का वर्ग h(x) इस प्रकार है कि |h(x)| ≤ कुछ सकारात्मक वास्तविक संख्या C के लिए Cg(x)।<ref name="Concrete Mathematics" />हालाँकि, सामान्य चिह्न का उपयोग प्रथागत है।<ref name=deBruijn/><ref name="Concrete Mathematics"/> | ||
Line 135: | Line 140: | ||
==== उदाहरण ==== | ==== उदाहरण ==== | ||
मान लीजिए कि n तत्वों के सेट पर काम करने के लिए [[कलन विधि]] विकसित किया जा रहा है। इसके डेवलपर्स | मान लीजिए कि n तत्वों के सेट पर काम करने के लिए [[कलन विधि]] विकसित किया जा रहा है। इसके डेवलपर्स फलन T(n) खोजने में रुचि रखते हैं जो यह व्यक्त करेगा कि इनपुट सेट में तत्वों की संख्या के संदर्भ में एल्गोरिदम को चलने में कितना समय लगेगा (समय के कुछ मनमाने माप में)। एल्गोरिदम सेट में तत्वों को क्रमबद्ध करने के लिए पहले सबरूटीन को कॉल करके काम करता है और फिर अपने स्वयं के संचालन करता है। इस प्रकार में ओ(n) की ज्ञात समय जटिलता है<sup>2</sup>), और सबरूटीन चलने के बाद एल्गोरिदम को अतिरिक्त लेना होगा {{nowrap|55''n''<sup>3</sup> + 2''n'' + 10}} समाप्त होने से पहले के चरण। इस प्रकार एल्गोरिथ्म की समग्र समय जटिलता को इस प्रकार व्यक्त किया जा सकता है {{nowrap|1=''T''(''n'') = 55''n''<sup>3</sup> + ''O''(''n''<sup>2</sup>)}}. यहाँ शर्तें {{nowrap|1=2''n'' + 10}} तेजी से बढ़ने वाले ओ(n) में समाहित हो गए हैं<sup>2</sup>). फिर, यह उपयोग = प्रतीक के कुछ औपचारिक अर्थों की उपेक्षा करता है, किन्तु यह प्रकार के सुविधाजनक प्लेसहोल्डर के रूप में बड़े ओ नोटेशन का उपयोग करने की अनुमति देता है। | ||
=== एकाधिक उपयोग === | === एकाधिक उपयोग === | ||
अधिक जटिल उपयोग में, | अधिक जटिल उपयोग में, ओ(·) समीकरण में विभिन्न स्थानों पर प्रकट हो सकता है, यहाँ तक कि प्रत्येक पक्ष पर कई बार भी। उदाहरण के लिए, निम्नलिखित सत्य हैं <math>n\to\infty</math>: | ||
<math display="block"> | <math display="block"> | ||
\begin{align} | \begin{align} | ||
Line 145: | Line 150: | ||
n^{O(1)} & = O(e^n). | n^{O(1)} & = O(e^n). | ||
\end{align}</math> | \end{align}</math> | ||
ऐसे कथनों का अर्थ इस प्रकार है: किसी भी | ऐसे कथनों का अर्थ इस प्रकार है: किसी भी फलन के लिए जो बाईं ओर प्रत्येक ओ(·) को संतुष्ट करता है, दाईं ओर प्रत्येक ओ(·) को संतुष्ट करने वाले कुछ फलन हैं, जैसे कि इन सभी कार्यों को समीकरण में प्रतिस्थापित करना बनता है दो पक्ष सामान्य. उदाहरण के लिए, उपरोक्त तीसरे समीकरण का अर्थ है: किसी भी फलन f(n) = ओ(1) के लिए, कुछ फलन g(n) = ओ(e) है<sup>n</sup>) ऐसा कि n<sup>f(n)</sup> = g(n). उपरोक्त सेट नोटेशन के संदर्भ में, अर्थ यह है कि बाईं ओर द्वारा दर्शाए गए कार्यों का वर्ग दाईं ओर द्वारा दर्शाए गए कार्यों के वर्ग का उपसमूह है। इस प्रयोग में = औपचारिक प्रतीक है जो = के सामान्य प्रयोग के विपरीत [[सममित संबंध]] नहीं है। इस प्रकार उदाहरण के लिए {{nowrap|1=''n''<sup>''O''(1)</sup> = ''O''(''e''<sup>''n''</sup>)}} गलत बयान का संकेत नहीं देता {{nowrap|1=''O''(''e''<sup>''n''</sup>) = ''n''<sup>''O''(1)</sup>}}. | ||
=== टाइपसेटिंग === | === टाइपसेटिंग === | ||
बिग | बिग ओ को इटैलिकाइज़्ड अपरकेस ओ के रूप में टाइप किया गया है, जैसा कि निम्नलिखित उदाहरण में है: <math>O(n^2)</math>.<ref name="KnuthArt">Donald E. Knuth, The art of computer programming. Vol. 1. Fundamental algorithms, third edition, Addison Wesley Longman, 1997. Section 1.2.11.1.</ref><ref name="ConcreteMath">Ronald L. Graham, Donald E. Knuth, and Oren Patashnik, ''Concrete Mathematics: A Foundation for Computer Science (2nd ed.)'', Addison-Wesley, 1994. Section 9.2, p. 443.</ref> [[TeX]] में, यह केवल गणित मोड के अंदर ओ टाइप करके निर्मित होता है। ग्रीक-नामांकित बैचमैन-लैंडौ नोटेशन के विपरीत, इसे किसी विशेष प्रतीक की आवश्यकता नहीं है। फिर भी, कुछ लेखक सुलेख संस्करण का उपयोग करते हैं <math>\mathcal{O}</math> बजाय।<ref>Sivaram Ambikasaran and Eric Darve, An <math>\mathcal O (N \log N)</math> Fast Direct Solver for Partial Hierarchically Semi-Separable Matrices, ''J. Scientific Computing'' '''57''' (2013), no. 3, 477–501.</ref><ref>Saket Saurabh and Meirav Zehavi, <math>(k,n-k)</math>-Max-Cut: An <math>\mathcal{O}^*(2^p)</math>-Time Algorithm and a Polynomial Kernel, ''Algorithmica'' '''80''' (2018), no. 12, 3844–3860.</ref> | ||
Line 154: | Line 159: | ||
{{Further|Time complexity#Table of common time complexities}} | {{Further|Time complexity#Table of common time complexities}} | ||
यहां उन फ़ंक्शंस के वर्गों की सूची दी गई है जो | यहां उन फ़ंक्शंस के वर्गों की सूची दी गई है जो सामान्यतः एल्गोरिदम के चलने के समय का विश्लेषण करते समय सामने आते हैं। प्रत्येक स्थिति में, c धनात्मक स्थिरांक है और n बिना किसी सीमा के बढ़ता है। धीमी गति से बढ़ने वाले कार्यों को सामान्यतः पहले सूचीबद्ध किया जाता है। | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 197: | Line 202: | ||
===लिटिल-ओ नोटेशन=== | ===लिटिल-ओ नोटेशन=== | ||
{{Redirect|Little o|the baseball player|Omar Vizquel}} | {{Redirect|Little o|the baseball player|Omar Vizquel}} | ||
सहज रूप से, दावा{{math|''f''(''x'')}} है {{math|''o''(''g''(''x''))}} (पढ़ना{{math|''f''(''x'')}} छोटा-ओ का है {{math|''g''(''x'')}} ) मतलब कि {{math|''g''(''x'')}} की तुलना में बहुत तेजी से बढ़ता है {{math|''f''(''x'')}}. पहले की तरह, मान लीजिए कि f वास्तविक या जटिल मान वाला | सहज रूप से, दावा{{math|''f''(''x'')}} है {{math|''o''(''g''(''x''))}} (पढ़ना{{math|''f''(''x'')}} छोटा-ओ का है {{math|''g''(''x'')}} ) मतलब कि {{math|''g''(''x'')}} की तुलना में बहुत तेजी से बढ़ता है {{math|''f''(''x'')}}. पहले की तरह, मान लीजिए कि f वास्तविक या जटिल मान वाला फलन है और g वास्तविक मान वाला फलन है, दोनों को सकारात्मक वास्तविक संख्याओं के कुछ असीमित उपसमुच्चय पर परिभाषित किया गया है, जैसे कि x के सभी बड़े पर्याप्त मानों के लिए g(x) सख्ती से सकारात्मक है। लिखता है | ||
:<math>f(x) = o(g(x)) \quad \text{ as } x \to \infty</math> | :<math>f(x) = o(g(x)) \quad \text{ as } x \to \infty</math> | ||
यदि प्रत्येक सकारात्मक स्थिरांक के लिए {{mvar|ε}} वहां स्थिरांक | यदि प्रत्येक सकारात्मक स्थिरांक के लिए {{mvar|ε}} वहां स्थिरांक उपस्थित है <math>x_0</math> ऐसा है कि | ||
:<math>|f(x)| \leq \varepsilon g(x) \quad \text{ for all } x \geq x_0.</math><ref name=Landausmallo>{{cite book |first=Edmund |last=Landau |author-link=Edmund Landau |title=अभाज्य संख्याओं के वितरण के अध्ययन का मैनुअल|publisher=B. G. Teubner |date=1909 |location=Leipzig |trans-title=Handbook on the theory of the distribution of the primes |language=de |page=61 | url=https://archive.org/stream/handbuchderlehre01landuoft#page/61/mode/2up}}</ref> | :<math>|f(x)| \leq \varepsilon g(x) \quad \text{ for all } x \geq x_0.</math><ref name=Landausmallo>{{cite book |first=Edmund |last=Landau |author-link=Edmund Landau |title=अभाज्य संख्याओं के वितरण के अध्ययन का मैनुअल|publisher=B. G. Teubner |date=1909 |location=Leipzig |trans-title=Handbook on the theory of the distribution of the primes |language=de |page=61 | url=https://archive.org/stream/handbuchderlehre01landuoft#page/61/mode/2up}}</ref> | ||
उदाहरण के लिए, किसी के पास है | उदाहरण के लिए, किसी के पास है | ||
: <math>2x = o(x^2)</math> और <math>1/x = o(1),</math> दोनों जैसे <math> x \to \infty .</math> | : <math>2x = o(x^2)</math> और <math>1/x = o(1),</math> दोनों जैसे <math> x \to \infty .</math> | ||
#औपचारिक परिभाषा|बिग-ओ संकेतन की परिभाषा और छोटे-ओ की परिभाषा के बीच अंतर यह है कि जहां पूर्व को कम से कम स्थिरांक एम के लिए सत्य होना चाहिए, वहीं बाद वाले को प्रत्येक सकारात्मक स्थिरांक के लिए मान्य होना चाहिए {{math|''ε''}}, हालाँकि छोटा।<ref name="Introduction to Algorithms">Thomas H. Cormen et al., 2001, [http://highered.mcgraw-hill.com/sites/0070131511/ Introduction to Algorithms, Second Edition, Ch. 3.1] {{Webarchive|url=https://web.archive.org/web/20090116115944/http://highered.mcgraw-hill.com/sites/0070131511/ |date=2009-01-16 }}</ref> इस तरह, लिटिल-ओ नोटेशन संबंधित बिग-ओ नोटेशन की तुलना में मजबूत कथन बनाता है: प्रत्येक | #औपचारिक परिभाषा|बिग-ओ संकेतन की परिभाषा और छोटे-ओ की परिभाषा के बीच अंतर यह है कि जहां पूर्व को कम से कम स्थिरांक एम के लिए सत्य होना चाहिए, वहीं बाद वाले को प्रत्येक सकारात्मक स्थिरांक के लिए मान्य होना चाहिए {{math|''ε''}}, हालाँकि छोटा।<ref name="Introduction to Algorithms">Thomas H. Cormen et al., 2001, [http://highered.mcgraw-hill.com/sites/0070131511/ Introduction to Algorithms, Second Edition, Ch. 3.1] {{Webarchive|url=https://web.archive.org/web/20090116115944/http://highered.mcgraw-hill.com/sites/0070131511/ |date=2009-01-16 }}</ref> इस तरह, लिटिल-ओ नोटेशन संबंधित बिग-ओ नोटेशन की तुलना में मजबूत कथन बनाता है: प्रत्येक फलन जो कि जी का छोटा-ओ है, वह भी जी का बड़ा-ओ है, किन्तु प्रत्येक फलन जो जी का बड़ा-ओ है वह भी नहीं है जी का छोटा-ओ. उदाहरण के लिए, <math>2x^2 = O(x^2) </math> किन्तु {{nowrap|<math>2x^2 \neq o(x^2)</math>.}} | ||
चूँकि g(x) अशून्य है, या कम से कम निश्चित बिंदु से परे अशून्य हो जाता है, संबंध <math>f(x) = o(g(x))</math> के | चूँकि g(x) अशून्य है, या कम से कम निश्चित बिंदु से परे अशून्य हो जाता है, संबंध <math>f(x) = o(g(x))</math> के सामान्य है | ||
:<math>\lim_{x \to \infty}\frac{f(x)}{g(x)} = 0</math> (और वास्तव में लैंडौ ऐसा ही है<ref name=Landausmallo />मूल रूप से लिटिल-ओ नोटेशन को परिभाषित किया गया था)। | :<math>\lim_{x \to \infty}\frac{f(x)}{g(x)} = 0</math> (और वास्तव में लैंडौ ऐसा ही है<ref name=Landausmallo />मूल रूप से लिटिल-ओ नोटेशन को परिभाषित किया गया था)। | ||
लिटिल-ओ कई अंकगणितीय संक्रियाओं का सम्मान करता है। उदाहरण के लिए, | लिटिल-ओ कई अंकगणितीय संक्रियाओं का सम्मान करता है। उदाहरण के लिए, | ||
: | : यदि {{mvar|c}} शून्येतर स्थिरांक है और <math>f = o(g)</math> तब <math>c \cdot f = o(g)</math>, और | ||
: | : यदि <math>f = o(F)</math> और <math>g = o(G)</math> तब <math> f \cdot g = o(F \cdot G).</math> | ||
यह [[सकर्मक संबंध]] संबंध को भी संतुष्ट करता है: | यह [[सकर्मक संबंध]] संबंध को भी संतुष्ट करता है: | ||
: | : यदि <math>f = o(g)</math> और <math> g = o(h)</math> तब <math>f = o(h).</math> | ||
Line 221: | Line 226: | ||
:<math>f(x)=\Omega(g(x))</math> जैसा <math>x \to a</math>, | :<math>f(x)=\Omega(g(x))</math> जैसा <math>x \to a</math>, | ||
जहां a कुछ वास्तविक संख्या है, ∞, या −∞, जहां f और g, a के | जहां a कुछ वास्तविक संख्या है, ∞, या −∞, जहां f और g, a के निकट में परिभाषित वास्तविक कार्य हैं, और जहां g इस निकट में सकारात्मक है। | ||
हार्डी-लिटलवुड परिभाषा का उपयोग मुख्य रूप से विश्लेषणात्मक संख्या सिद्धांत में किया जाता है, और नुथ परिभाषा का उपयोग मुख्य रूप से कम्प्यूटेशनल जटिलता सिद्धांत में किया जाता है; परिभाषाएँ समतुल्य नहीं हैं. | हार्डी-लिटलवुड परिभाषा का उपयोग मुख्य रूप से विश्लेषणात्मक संख्या सिद्धांत में किया जाता है, और नुथ परिभाषा का उपयोग मुख्य रूप से कम्प्यूटेशनल जटिलता सिद्धांत में किया जाता है; परिभाषाएँ समतुल्य नहीं हैं. | ||
Line 228: | Line 233: | ||
1914 में [[गॉडफ्रे हेरोल्ड हार्डी]] और [[जॉन एडेंसर लिटिलवुड]] ने नया प्रतीक पेश किया <math>\Omega</math>,<ref name="HL">{{cite journal|last1=Hardy|first1=G. H.|last2=Littlewood|first2=J. E.|title=Some problems of diophantine approximation: Part II. The trigonometrical series associated with the elliptic θ-functions|journal=Acta Mathematica|date=1914|volume=37|page=225|doi=10.1007/BF02401834|url=http://projecteuclid.org/download/pdf_1/euclid.acta/1485887376|doi-access=free|access-date=2017-03-14|archive-date=2018-12-12|archive-url=https://web.archive.org/web/20181212063403/https://projecteuclid.org/download/pdf_1/euclid.acta/1485887376|url-status=live}}</ref> जिसे इस प्रकार परिभाषित किया गया है: | 1914 में [[गॉडफ्रे हेरोल्ड हार्डी]] और [[जॉन एडेंसर लिटिलवुड]] ने नया प्रतीक पेश किया <math>\Omega</math>,<ref name="HL">{{cite journal|last1=Hardy|first1=G. H.|last2=Littlewood|first2=J. E.|title=Some problems of diophantine approximation: Part II. The trigonometrical series associated with the elliptic θ-functions|journal=Acta Mathematica|date=1914|volume=37|page=225|doi=10.1007/BF02401834|url=http://projecteuclid.org/download/pdf_1/euclid.acta/1485887376|doi-access=free|access-date=2017-03-14|archive-date=2018-12-12|archive-url=https://web.archive.org/web/20181212063403/https://projecteuclid.org/download/pdf_1/euclid.acta/1485887376|url-status=live}}</ref> जिसे इस प्रकार परिभाषित किया गया है: | ||
:<math>f(x) = \Omega(g(x))</math> जैसा <math>x\to\infty</math> | :<math>f(x) = \Omega(g(x))</math> जैसा <math>x\to\infty</math> यदि <math>\limsup_{x \to \infty} \left|\frac{f(x)}{g(x)}\right| > 0.</math> | ||
इस प्रकार <math>f(x)=\Omega(g(x))</math> का निषेध है <math>f(x)=o(g(x))</math>. | इस प्रकार <math>f(x)=\Omega(g(x))</math> का निषेध है <math>f(x)=o(g(x))</math>. | ||
1916 में उन्हीं लेखकों ने दो नये प्रतीक प्रस्तुत किये <math>\Omega_R</math> और <math>\Omega_L</math>, के रूप में परिभाषित:<ref name="HL2">G. H. Hardy and J. E. Littlewood, « Contribution to the theory of the Riemann zeta-function and the theory of the distribution of primes », ''[[Acta Mathematica]]'', vol. 41, 1916.</ref> | 1916 में उन्हीं लेखकों ने दो नये प्रतीक प्रस्तुत किये <math>\Omega_R</math> और <math>\Omega_L</math>, के रूप में परिभाषित:<ref name="HL2">G. H. Hardy and J. E. Littlewood, « Contribution to the theory of the Riemann zeta-function and the theory of the distribution of primes », ''[[Acta Mathematica]]'', vol. 41, 1916.</ref> | ||
:<math>f(x)=\Omega_R(g(x))</math> जैसा <math>x\to\infty</math> | :<math>f(x)=\Omega_R(g(x))</math> जैसा <math>x\to\infty</math> यदि <math>\limsup_{x \to \infty} \frac{f(x)}{g(x)}> 0</math>; | ||
:<math>f(x)=\Omega_L(g(x))</math> जैसा <math>x\to\infty</math> | :<math>f(x)=\Omega_L(g(x))</math> जैसा <math>x\to\infty</math> यदि <math>\liminf_{x \to \infty} \frac{f(x)}{g(x)}< 0. </math> | ||
इन प्रतीकों का प्रयोग 1924 में एडमंड लैंडौ द्वारा इन्हीं अर्थों में किया गया था।<ref name="landau">E. Landau, "Über die Anzahl der Gitterpunkte in gewissen Bereichen. IV." Nachr. Gesell. Wiss. Gött. Math-phys. Kl. 1924, 137–150.</ref> लांडौ के बाद, नोटेशन का दोबारा कभी भी | इन प्रतीकों का प्रयोग 1924 में एडमंड लैंडौ द्वारा इन्हीं अर्थों में किया गया था।<ref name="landau">E. Landau, "Über die Anzahl der Gitterpunkte in gewissen Bereichen. IV." Nachr. Gesell. Wiss. Gött. Math-phys. Kl. 1924, 137–150.</ref> लांडौ के बाद, नोटेशन का दोबारा कभी भी स्पष्ट रूप से उपयोग नहीं किया गया; <math>\Omega_R</math> बन गया <math>\Omega_+</math> और <math>\Omega_L</math> बन गया <math>\Omega_-</math>.{{citation needed|date=December 2018}} | ||
ये तीन प्रतीक <math>\Omega, \Omega_+, \Omega_-</math>, साथ ही <math>f(x)=\Omega_\pm(g(x))</math> (मतलब है कि <math>f(x)=\Omega_+(g(x))</math> और <math>f(x)=\Omega_-(g(x))</math> दोनों संतुष्ट हैं), अब वर्तमान में विश्लेषणात्मक संख्या सिद्धांत में उपयोग किया जाता है।<ref name=Ivic>Aleksandar Ivić. The Riemann zeta-function, chapter 9. John Wiley & Sons 1985.</ref><ref>Gérald Tenenbaum, Introduction to analytic and probabilistic number theory, Chapter I.5. American Mathematical Society, Providence RI, 2015.</ref> | ये तीन प्रतीक <math>\Omega, \Omega_+, \Omega_-</math>, साथ ही <math>f(x)=\Omega_\pm(g(x))</math> (मतलब है कि <math>f(x)=\Omega_+(g(x))</math> और <math>f(x)=\Omega_-(g(x))</math> दोनों संतुष्ट हैं), अब वर्तमान में विश्लेषणात्मक संख्या सिद्धांत में उपयोग किया जाता है।<ref name=Ivic>Aleksandar Ivić. The Riemann zeta-function, chapter 9. John Wiley & Sons 1985.</ref><ref>Gérald Tenenbaum, Introduction to analytic and probabilistic number theory, Chapter I.5. American Mathematical Society, Providence RI, 2015.</ref> | ||
Line 244: | Line 249: | ||
:<math>\sin x=\Omega(1)</math> जैसा <math>x\to\infty,</math> | :<math>\sin x=\Omega(1)</math> जैसा <math>x\to\infty,</math> | ||
और अधिक | और अधिक स्पष्ट रूप से | ||
:<math>\sin x=\Omega_\pm(1)</math> जैसा <math>x\to\infty.</math> | :<math>\sin x=\Omega_\pm(1)</math> जैसा <math>x\to\infty.</math> | ||
Line 250: | Line 255: | ||
:<math>\sin x+1=\Omega(1)</math> जैसा <math>x\to\infty,</math> | :<math>\sin x+1=\Omega(1)</math> जैसा <math>x\to\infty,</math> | ||
और अधिक | और अधिक स्पष्ट रूप से | ||
:<math>\sin x+1=\Omega_+(1)</math> जैसा <math>x\to\infty;</math> | :<math>\sin x+1=\Omega_+(1)</math> जैसा <math>x\to\infty;</math> | ||
Line 262: | Line 267: | ||
:<math>f(x)=\Omega(g(x))\Leftrightarrow g(x)=O(f(x))</math> | :<math>f(x)=\Omega(g(x))\Leftrightarrow g(x)=O(f(x))</math> | ||
टिप्पणी के साथ: हालाँकि मैंने हार्डी और लिटिलवुड की परिभाषा बदल दी है <math>\Omega</math>, मुझे ऐसा करना उचित लगता है क्योंकि उनकी परिभाषा किसी भी तरह से व्यापक उपयोग में नहीं है, और क्योंकि तुलनात्मक रूप से दुर्लभ मामलों में जब उनकी परिभाषा | टिप्पणी के साथ: हालाँकि मैंने हार्डी और लिटिलवुड की परिभाषा बदल दी है <math>\Omega</math>, मुझे ऐसा करना उचित लगता है क्योंकि उनकी परिभाषा किसी भी तरह से व्यापक उपयोग में नहीं है, और क्योंकि तुलनात्मक रूप से दुर्लभ मामलों में जब उनकी परिभाषा प्रयुक्त होती है तो वे जो कहना चाहते हैं उसे कहने के अन्य तरीके भी हैं।<ref name="knuth">{{cite journal |first=Donald |last=Knuth |url=https://phil.uu.nl/datastructuren/10-11/knuth_big_omicron.pdf |title=बड़ा ओमीक्रॉन और बड़ा ओमेगा और बड़ी थीटा|journal=SIGACT News |date=April–June 1976 |volume=8 |issue=2 |pages=18–24 |doi=10.1145/1008328.1008329 |s2cid=5230246 |access-date=2022-12-08 |archive-date=2022-04-08 |archive-url=https://web.archive.org/web/20220408172902/https://phil.uu.nl/datastructuren/10-11/knuth_big_omicron.pdf |url-status=bot: unknown }}</ref> | ||
Line 275: | Line 280: | ||
|- | |- | ||
| <math>f(n) = o(g(n))</math> | | <math>f(n) = o(g(n))</math> | ||
| Small | | Small ओ; Small Oh | ||
| {{mvar|f}} is dominated by {{mvar|g}} asymptotically | | {{mvar|f}} is dominated by {{mvar|g}} asymptotically | ||
| <math>\forall k>0 \, \exists n_0 \, \forall n > n_0\colon |f(n)| < k\, g(n)</math> | | <math>\forall k>0 \, \exists n_0 \, \forall n > n_0\colon |f(n)| < k\, g(n)</math> | ||
Line 281: | Line 286: | ||
|- | |- | ||
| <math>f(n) = O(g(n))</math> | | <math>f(n) = O(g(n))</math> | ||
| Big | | Big ओ; Big Oh; Big Omicron | ||
| <math>|f|</math> is bounded above by {{mvar|g}} (up to constant factor) asymptotically | | <math>|f|</math> is bounded above by {{mvar|g}} (up to constant factor) asymptotically | ||
| <math>\exists k > 0 \, \exists n_0 \, \forall n>n_0\colon |f(n)| \leq k\, g(n)</math> | | <math>\exists k > 0 \, \exists n_0 \, \forall n>n_0\colon |f(n)| \leq k\, g(n)</math> | ||
Line 320: | Line 325: | ||
पर्याप्त रूप से बड़े के लिए गणित>जी(एन) > 0</गणित> गणित>एन</गणित>. तालिका को (आंशिक रूप से) इस अर्थ में सबसे छोटे से सबसे बड़े तक क्रमबद्ध किया गया है <math>o,O,\Theta,\sim, </math> (नुथ का संस्करण) <math>\Omega, \omega </math> कार्यों पर अनुरूप हैं <math><,\leq,\approx,=, </math><math>\geq,> </math> असली लाइन पर<ref name=Wild/>(हार्डी-लिटलवुड संस्करण <math>\Omega </math>हालाँकि, ऐसे किसी भी विवरण के अनुरूप नहीं है)। | पर्याप्त रूप से बड़े के लिए गणित>जी(एन) > 0</गणित> गणित>एन</गणित>. तालिका को (आंशिक रूप से) इस अर्थ में सबसे छोटे से सबसे बड़े तक क्रमबद्ध किया गया है <math>o,O,\Theta,\sim, </math> (नुथ का संस्करण) <math>\Omega, \omega </math> कार्यों पर अनुरूप हैं <math><,\leq,\approx,=, </math><math>\geq,> </math> असली लाइन पर<ref name=Wild/>(हार्डी-लिटलवुड संस्करण <math>\Omega </math>हालाँकि, ऐसे किसी भी विवरण के अनुरूप नहीं है)। | ||
कंप्यूटर विज्ञान बड़ा उपयोग करता है <math>O </math>, बड़ी थीटा <math>\Theta </math>, थोड़ा <math>o </math>, थोड़ा ओमेगा <math>\omega </math> और नुथ का बड़ा ओमेगा <math>\Omega </math> संकेतन.<ref>{{Introduction to Algorithms|edition=2|pages=41–50}}</ref> विश्लेषणात्मक संख्या सिद्धांत | कंप्यूटर विज्ञान बड़ा उपयोग करता है <math>O </math>, बड़ी थीटा <math>\Theta </math>, थोड़ा <math>o </math>, थोड़ा ओमेगा <math>\omega </math> और नुथ का बड़ा ओमेगा <math>\Omega </math> संकेतन.<ref>{{Introduction to Algorithms|edition=2|pages=41–50}}</ref> विश्लेषणात्मक संख्या सिद्धांत अधिकांशतः बड़े का उपयोग करता है <math>O </math>, छोटा <math>o </math>, हार्डी-लिटलवुड का बड़ा ओमेगा <math>\Omega </math> (+, − या ± सबस्क्रिप्ट के साथ या उसके बिना) और <math>\sim</math> संकेतन.<ref name=Ivic/>छोटा ओमेगा <math>\omega </math> विश्लेषण में अंकन का प्रयोग उतनी बार नहीं किया जाता है।<ref>for example it is omitted in: {{cite web |last1=Hildebrand |first1=A.J. |title=Asymptotic Notations |url=http://www.math.uiuc.edu/~ajh/595ama/ama-ch2.pdf |website=Asymptotic Methods in Analysis |series=Math 595, Fall 2009 |publisher=University of Illinois |place=Urbana, IL |department=Department of Mathematics |access-date=14 March 2017 |archive-date=14 March 2017 |archive-url=https://web.archive.org/web/20170314153801/http://www.math.uiuc.edu/~ajh/595ama/ama-ch2.pdf |url-status=live }}</ref> | ||
=== कंप्यूटर विज्ञान में उपयोग === | === कंप्यूटर विज्ञान में उपयोग === | ||
{{Further|Analysis of algorithms}} | {{Further|Analysis of algorithms}} | ||
अनौपचारिक रूप से, विशेष रूप से कंप्यूटर विज्ञान में, बड़े ओ नोटेशन का उपयोग | अनौपचारिक रूप से, विशेष रूप से कंप्यूटर विज्ञान में, बड़े ओ नोटेशन का उपयोग अधिकांशतः एसिम्प्टोटिक ऊपरी और निचले सीमा # तंग सीमा का वर्णन करने के लिए कुछ अलग तरीके से किया जा सकता है, जहां बड़े थीटा Θ नोटेशन का उपयोग किसी दिए गए संदर्भ में तथ्यात्मक रूप से अधिक उपयुक्त हो सकता है।{{Citation needed|reason=Wording (weasel-words) suggest a primarily opinion-based posit.|date=May 2015}} उदाहरण के लिए, किसी फलन T(n) = 73n पर विचार करते समय<sup>3</sup>+22एन<sup>2</sup> + 58, निम्नलिखित में से सभी सामान्यतः स्वीकार्य हैं, किन्तु कड़ी सीमाएं (जैसे नीचे संख्या 2 और 3) सामान्यतः ढीली सीमाओं (जैसे नीचे संख्या 1) की तुलना में दृढ़ता से पसंद की जाती हैं। | ||
#{{nowrap|1=''T''(''n'') = ''O''(''n''<sup>100</sup>)}} | #{{nowrap|1=''T''(''n'') = ''O''(''n''<sup>100</sup>)}} | ||
#{{nowrap|1=''T''(''n'') = ''O''(''n''<sup>3</sup>)}} | #{{nowrap|1=''T''(''n'') = ''O''(''n''<sup>3</sup>)}} | ||
Line 339: | Line 344: | ||
:<math> f(n) = O(g(n))\quad(n\to\infty)~.</math> | :<math> f(n) = O(g(n))\quad(n\to\infty)~.</math> | ||
उदाहरण के लिए, सही संकेतन में इस सेट को | उदाहरण के लिए, सही संकेतन में इस सेट को ओ(g) कहा जा सकता है, जहाँ | ||
<math display=block>O(g) = \{ f : \text{there exist positive constants}~c~\text{and}~n_0~\text{such that}~0 \le f(n) \le c g(n) \text{ for all } n \ge n_0 \}.</math><ref>{{cite book | isbn=978-0-262-53305-8 |author1=Cormen, Thomas H. |author2=Leiserson, Charles E. |author3=Rivest, Ronald L. |title=एल्गोरिदम का परिचय|location=Cambridge/MA |publisher=MIT Press |edition=3rd |year=2009 |page=47 |quote=When we have only an asymptotic upper bound, we use O-notation. For a given function ''g''(''n''), we denote by ''O''(''g''(''n'')) (pronounced "big-oh of ''g'' of ''n''" or sometimes just "oh of ''g'' of ''n''") the set of functions ''O''(''g''(''n'')) = { ''f''(''n'') : there exist positive constants ''c'' and ''n''<sub>0</sub> such that 0 ≤ ''f''(''n'') ≤ ''cg''(''n'') for all ''n'' ≥ ''n''<sub>0</sub>} }}</ref> | <math display=block>O(g) = \{ f : \text{there exist positive constants}~c~\text{and}~n_0~\text{such that}~0 \le f(n) \le c g(n) \text{ for all } n \ge n_0 \}.</math><ref>{{cite book | isbn=978-0-262-53305-8 |author1=Cormen, Thomas H. |author2=Leiserson, Charles E. |author3=Rivest, Ronald L. |title=एल्गोरिदम का परिचय|location=Cambridge/MA |publisher=MIT Press |edition=3rd |year=2009 |page=47 |quote=When we have only an asymptotic upper bound, we use O-notation. For a given function ''g''(''n''), we denote by ''O''(''g''(''n'')) (pronounced "big-oh of ''g'' of ''n''" or sometimes just "oh of ''g'' of ''n''") the set of functions ''O''(''g''(''n'')) = { ''f''(''n'') : there exist positive constants ''c'' and ''n''<sub>0</sub> such that 0 ≤ ''f''(''n'') ≤ ''cg''(''n'') for all ''n'' ≥ ''n''<sub>0</sub>} }}</ref> | ||
लेखकों का कहना है कि सेट सदस्यता ऑपरेटर (∈) के बजाय सेट सदस्यता को दर्शाने के लिए समानता ऑपरेटर (=) का उपयोग नोटेशन का दुरुपयोग है, | लेखकों का कहना है कि सेट सदस्यता ऑपरेटर (∈) के बजाय सेट सदस्यता को दर्शाने के लिए समानता ऑपरेटर (=) का उपयोग नोटेशन का दुरुपयोग है, किन्तु ऐसा करने के फायदे हैं।<ref name="clrs3">{{cite book |isbn=978-0-262-53305-8 |author1=Cormen,Thomas H. |author2=Leiserson, Charles E. |author3=Rivest, Ronald L. |title=एल्गोरिदम का परिचय|url=https://archive.org/details/introductiontoal00corm_805 |url-access=limited |location=Cambridge/MA |publisher=MIT Press |edition=3rd |year=2009 |page=[https://archive.org/details/introductiontoal00corm_805/page/n65 45] |quote=Because ''θ''(''g''(''n'')) is a set, we could write "''f''(''n'') ∈ ''θ''(''g''(''n''))" to indicate that ''f''(''n'') is a member of ''θ''(''g''(''n'')). Instead, we will usually write ''f''(''n'') = ''θ''(''g''(''n'')) to express the same notion. You might be confused because we abuse equality in this way, but we shall see later in this section that doing so has its advantages.}}</ref> किसी समीकरण या असमानता के अंदर, एसिम्प्टोटिक नोटेशन का उपयोग सेट ओ (जी) में अज्ञात फलन के लिए होता है, जो निम्न-क्रम वाले शब्दों को समाप्त करता है, और समीकरणों में अनावश्यक अव्यवस्था को कम करने में मदद करता है, उदाहरण के लिए:<ref>{{cite book |isbn=978-0-262-53305-8 |author1=Cormen,Thomas H. |author2=Leiserson, Charles E. |author3=Rivest, Ronald L. |title=एल्गोरिदम का परिचय|url=https://archive.org/details/introductiontoal00corm_805 |url-access=limited |location=Cambridge/MA |publisher=MIT Press |edition=3rd |year=2009 |page=[https://archive.org/details/introductiontoal00corm_805/page/n69 49] |quote=When the asymptotic notation stands alone (that is, not within a larger formula) on the right-hand side of an equation (or inequality), as in n = O(n<sup>2</sup>), we have already defined the equal sign to mean set membership: n ∈ O(n<sup>2</sup>). In general, however, when asymptotic notation appears in a formula, we interpret it as standing for some anonymous function that we do not care to name. For example, the formula 2''n''<sup>2</sup> + 3''n'' + 1 = 2''n''<sup>2</sup> + ''θ''(''n'') means that 2''n''<sup>2</sup> + 3''n'' + 1 = 2''n''<sup>2</sup> + ''f''(''n''), where ''f''(''n'') is some function in the set ''θ''(''n''). In this case, we let ''f''(''n'') = 3''n'' + 1, which is indeed in ''θ''(''n''). Using asymptotic notation in this manner can help eliminate inessential detail and clutter in an equation.}}</ref> | ||
:<math> 2n^2 + 3n + 1=2n^2 + O(n).</math> | :<math> 2n^2 + 3n + 1=2n^2 + O(n).</math> | ||
=== बाचमैन-लैंडौ नोटेशन का विस्तार === | === बाचमैन-लैंडौ नोटेशन का विस्तार === | ||
कंप्यूटर विज्ञान में कभी-कभी उपयोग किया जाने वाला अन्य संकेतन Õ (सॉफ्ट-ओ पढ़ें) है, जो पॉलीलॉगरिदमिक कारकों को छुपाता है। उपयोग में दो परिभाषाएँ हैं: कुछ लेखक f(n)=Õ(g(n)) को [[आशुलिपि]] के रूप में उपयोग करते हैं {{nowrap|1=''f''(''n'') = ''O''(''g''(''n'') [[Polylogarithmic function|log<sup>''k''</sup> ''n'']])}} कुछ k के लिए, जबकि अन्य इसे शॉर्टहैंड के रूप में उपयोग करते हैं {{nowrap|1=''f''(''n'') = ''O''(''g''(''n'') log<sup>''k''</sup> ''g''(''n''))}}.<ref>{{Cite book |last1=Cormen |first1=Thomas H. |url=https://mitpress.mit.edu/9780262046305/introduction-to-algorithms/ |title=एल्गोरिदम का परिचय|last2=Leiserson |first2=Charles E. |last3=Rivest |first3=Ronald L. |last4=Stein |first4=Clifford |publisher=The MIT Press |year=2022 |isbn=9780262046305 |edition=4th |location=Cambridge, Mass. |pages=74–75 |oclc= |url-access=}}</ref> कब {{Nowrap|''g''(''n'')}} n में बहुपद है, कोई अंतर नहीं है; हालाँकि, बाद वाली परिभाषा किसी को यह कहने की अनुमति देती है, उदाहरण के लिए वह <math>n2^n = \tilde O(2^n)</math> जबकि पूर्व परिभाषा इसकी अनुमति देती है <math>\log^k n = \tilde O(1)</math> किसी स्थिरांक k के लिए। कुछ लेखक ओ लिखते हैं<sup>*</sup>बाद वाली परिभाषा के समान उद्देश्य के लिए।<ref>{{cite journal | url=https://www.cs.helsinki.fi/u/mkhkoivi/publications/sicomp-2009.pdf | author=Andreas Björklund and Thore Husfeldt and Mikko Koivisto | title=समावेशन-बहिष्करण के माध्यम से विभाजन निर्धारित करें| journal=[[SIAM Journal on Computing]] | volume=39 | number=2 | pages=546–563 | year=2009 | doi=10.1137/070683933 | access-date=2022-02-03 | archive-date=2022-02-03 | archive-url=https://web.archive.org/web/20220203095918/https://www.cs.helsinki.fi/u/mkhkoivi/publications/sicomp-2009.pdf | url-status=live }} See sect.2.3, p.551.</ref> अनिवार्य रूप से, यह बड़ा ओ नोटेशन है, [[पॉलीलॉगरिदमिक फ़ंक्शन]] को अनदेखा कर रहा है क्योंकि एसिम्प्टोटिक विश्लेषण | कुछ अन्य सुपर-लघुगणकीय | कंप्यूटर विज्ञान में कभी-कभी उपयोग किया जाने वाला अन्य संकेतन Õ (सॉफ्ट-ओ पढ़ें) है, जो पॉलीलॉगरिदमिक कारकों को छुपाता है। उपयोग में दो परिभाषाएँ हैं: कुछ लेखक f(n)=Õ(g(n)) को [[आशुलिपि]] के रूप में उपयोग करते हैं {{nowrap|1=''f''(''n'') = ''O''(''g''(''n'') [[Polylogarithmic function|log<sup>''k''</sup> ''n'']])}} कुछ k के लिए, जबकि अन्य इसे शॉर्टहैंड के रूप में उपयोग करते हैं {{nowrap|1=''f''(''n'') = ''O''(''g''(''n'') log<sup>''k''</sup> ''g''(''n''))}}.<ref>{{Cite book |last1=Cormen |first1=Thomas H. |url=https://mitpress.mit.edu/9780262046305/introduction-to-algorithms/ |title=एल्गोरिदम का परिचय|last2=Leiserson |first2=Charles E. |last3=Rivest |first3=Ronald L. |last4=Stein |first4=Clifford |publisher=The MIT Press |year=2022 |isbn=9780262046305 |edition=4th |location=Cambridge, Mass. |pages=74–75 |oclc= |url-access=}}</ref> कब {{Nowrap|''g''(''n'')}} n में बहुपद है, कोई अंतर नहीं है; हालाँकि, बाद वाली परिभाषा किसी को यह कहने की अनुमति देती है, उदाहरण के लिए वह <math>n2^n = \tilde O(2^n)</math> जबकि पूर्व परिभाषा इसकी अनुमति देती है <math>\log^k n = \tilde O(1)</math> किसी स्थिरांक k के लिए। कुछ लेखक ओ लिखते हैं<sup>*</sup>बाद वाली परिभाषा के समान उद्देश्य के लिए।<ref>{{cite journal | url=https://www.cs.helsinki.fi/u/mkhkoivi/publications/sicomp-2009.pdf | author=Andreas Björklund and Thore Husfeldt and Mikko Koivisto | title=समावेशन-बहिष्करण के माध्यम से विभाजन निर्धारित करें| journal=[[SIAM Journal on Computing]] | volume=39 | number=2 | pages=546–563 | year=2009 | doi=10.1137/070683933 | access-date=2022-02-03 | archive-date=2022-02-03 | archive-url=https://web.archive.org/web/20220203095918/https://www.cs.helsinki.fi/u/mkhkoivi/publications/sicomp-2009.pdf | url-status=live }} See sect.2.3, p.551.</ref> अनिवार्य रूप से, यह बड़ा ओ नोटेशन है, [[पॉलीलॉगरिदमिक फ़ंक्शन|पॉलीलॉगरिदमिक फलन]] को अनदेखा कर रहा है क्योंकि एसिम्प्टोटिक विश्लेषण | कुछ अन्य सुपर-लघुगणकीय फलन के विकास-दर प्रभाव बड़े आकार के इनपुट पैरामीटर के लिए विकास-दर विस्फोट का संकेत देते हैं जो खराब रन-टाइम प्रदर्शन की भविष्यवाणी करने के लिए अधिक महत्वपूर्ण है लघुगणक-विकास कारक(ओं) द्वारा योगदान किए गए उत्तम-बिंदु प्रभावों की तुलना में। इस संकेतन का उपयोग अधिकांशतः विकास-दर के अन्दर होने वाली खामियों को दूर करने के लिए किया जाता है, जिन्हें वर्तमान मामलों के लिए बहुत कसकर बांधा गया है (लॉग के बाद से)<sup>k</sup>n सदैव o(n) होता है<sup>ε</sup>) किसी भी स्थिरांक k और किसी के लिए {{nowrap|''ε'' > 0}}). | ||
इसके | इसके अतिरिक्त एल-नोटेशन, के रूप में परिभाषित किया गया है | ||
:<math>L_n[\alpha,c] = e^{(c + o(1))(\ln n)^\alpha(\ln\ln n)^{1-\alpha}}</math> | :<math>L_n[\alpha,c] = e^{(c + o(1))(\ln n)^\alpha(\ln\ln n)^{1-\alpha}}</math> | ||
उन कार्यों के लिए सुविधाजनक है जो समय जटिलता#बहुपद समय और समय जटिलता#घातीय समय के बीच हैं {{nowrap|<math>\ln n</math>.}} | उन कार्यों के लिए सुविधाजनक है जो समय जटिलता#बहुपद समय और समय जटिलता#घातीय समय के बीच हैं {{nowrap|<math>\ln n</math>.}} | ||
Line 355: | Line 360: | ||
== सामान्यीकरण और संबंधित उपयोग == | == सामान्यीकरण और संबंधित उपयोग == | ||
किसी भी मानक वेक्टर स्थान में मान लेने वाले कार्यों का सामान्यीकरण सीधा है (मानदंडों द्वारा निरपेक्ष मानों को प्रतिस्थापित करना), जहां एफ और जी को ही स्थान में अपने मान लेने की आवश्यकता नहीं है। किसी भी [[टोपोलॉजिकल समूह]] में मान लेने वाले कार्यों का सामान्यीकरण भी संभव है{{Citation needed|date=May 2017}}. | किसी भी मानक वेक्टर स्थान में मान लेने वाले कार्यों का सामान्यीकरण सीधा है (मानदंडों द्वारा निरपेक्ष मानों को प्रतिस्थापित करना), जहां एफ और जी को ही स्थान में अपने मान लेने की आवश्यकता नहीं है। किसी भी [[टोपोलॉजिकल समूह]] में मान लेने वाले कार्यों का सामान्यीकरण भी संभव है{{Citation needed|date=May 2017}}. | ||
सीमित प्रक्रिया x → x<sub>o</sub> मनमाना [[फ़िल्टर आधार]], यानी निर्देशित [[नेट (गणित)]] एफ और जी को पेश करके भी सामान्यीकृत किया जा सकता है। ओ नोटेशन का उपयोग | सीमित प्रक्रिया x → x<sub>o</sub> मनमाना [[फ़िल्टर आधार]], यानी निर्देशित [[नेट (गणित)]] एफ और जी को पेश करके भी सामान्यीकृत किया जा सकता है। ओ नोटेशन का उपयोग अधिक सामान्य स्थानों में [[ यौगिक ]] और भिन्नता को परिभाषित करने के लिए किया जा सकता है, और कार्यों की (स्पर्शोन्मुख) समतुल्यता को भी परिभाषित करने के लिए किया जा सकता है, | ||
:<math> f\sim g \iff (f-g) \in o(g) </math> | :<math> f\sim g \iff (f-g) \in o(g) </math> | ||
जो कि तुल्यता संबंध है और संबंध f की तुलना में अधिक प्रतिबंधात्मक धारणा है, ऊपर से Θ(g) है। (यदि एफ और जी सकारात्मक वास्तविक मूल्य वाले | जो कि तुल्यता संबंध है और संबंध f की तुलना में अधिक प्रतिबंधात्मक धारणा है, ऊपर से Θ(g) है। (यदि एफ और जी सकारात्मक वास्तविक मूल्य वाले फलन हैं तो यह लिम एफ/जी = 1 तक कम हो जाता है।) उदाहरण के लिए, 2x Θ(x) है, किन्तु {{nowrap|1=2''x'' − ''x''}} ओ(एक्स) नहीं है। | ||
== इतिहास (बाचमन-लैंडौ, हार्डी, और विनोग्राडोव नोटेशन) == | == इतिहास (बाचमन-लैंडौ, हार्डी, और विनोग्राडोव नोटेशन) == | ||
प्रतीक | प्रतीक ओ को पहली बार संख्या सिद्धांतकार [[पॉल बैचमैन]] ने 1894 में अपनी पुस्तक एनालिटिशे ज़हलेनथियोरी (विश्लेषणात्मक संख्या सिद्धांत) के दूसरे खंड में पेश किया था।<ref name=Bachmann>{{cite book |first=Paul |last=Bachmann |author-link=Paul Bachmann |title=विश्लेषणात्मक संख्या सिद्धांत|trans-title=Analytic Number Theory |language=de |volume=2 |location=Leipzig |publisher=Teubner |date=1894 |url=https://archive.org/stream/dieanalytischeza00bachuoft#page/402/mode/2up}}</ref> संख्या सिद्धांतकार एडमंड लैंडौ ने इसे अपनाया, और इस प्रकार 1909 में अंकन ओ को पेश करने के लिए प्रेरित हुए;<ref name=Landau>{{cite book |first=Edmund |last=Landau |author-link=Edmund Landau |title=अभाज्य संख्याओं के वितरण के अध्ययन का मैनुअल|publisher=B. G. Teubner |date=1909 |location=Leipzig |trans-title=Handbook on the theory of the distribution of the primes |language=de |page=883 | url=https://archive.org/details/handbuchderlehre01landuoft}}</ref> इसलिए दोनों को अब लैंडौ प्रतीक कहा जाता है। इन नोटेशनों का उपयोग 1950 के दशक के दौरान स्पर्शोन्मुख विश्लेषण के लिए अनुप्रयुक्त गणित में किया गया था।<ref>{{cite book |title=स्पर्शोन्मुख विस्तार|last=Erdelyi |first=A. |year=1956 |isbn=978-0-486-60318-6}}</ref> | ||
प्रतीक <math>\Omega</math> (इस अर्थ में ओ का कोई मतलब नहीं है) 1914 में हार्डी और लिटिलवुड द्वारा पेश किया गया था।<ref name="HL" />हार्डी और लिटिलवुड ने भी 1916 में प्रतीकों की शुरुआत की <math>\Omega_R</math> (दाएं) और <math>\Omega_L</math> ( बाएं ),<ref name="HL2" /> आधुनिक प्रतीकों के अग्रदूत <math>\Omega_+</math> (एक छोटे से ओ से छोटा नहीं है) और <math>\Omega_-</math> (के छोटे से से बड़ा नहीं है). इस प्रकार ओमेगा प्रतीकों (उनके मूल अर्थ के साथ) को कभी-कभी लैंडौ प्रतीकों के रूप में भी जाना जाता है। यह संकेतन <math>\Omega</math> कम से कम 1950 के दशक से संख्या सिद्धांत में इसका | प्रतीक <math>\Omega</math> (इस अर्थ में ओ का कोई मतलब नहीं है) 1914 में हार्डी और लिटिलवुड द्वारा पेश किया गया था।<ref name="HL" />हार्डी और लिटिलवुड ने भी 1916 में प्रतीकों की शुरुआत की <math>\Omega_R</math> (दाएं) और <math>\Omega_L</math> ( बाएं ),<ref name="HL2" /> आधुनिक प्रतीकों के अग्रदूत <math>\Omega_+</math> (एक छोटे से ओ से छोटा नहीं है) और <math>\Omega_-</math> (के छोटे से से बड़ा नहीं है). इस प्रकार ओमेगा प्रतीकों (उनके मूल अर्थ के साथ) को कभी-कभी लैंडौ प्रतीकों के रूप में भी जाना जाता है। यह संकेतन <math>\Omega</math> कम से कम 1950 के दशक से संख्या सिद्धांत में इसका सामान्यतः उपयोग किया जाने लगा।<ref name="titchmarsh">E. C. Titchmarsh, The Theory of the Riemann Zeta-Function (Oxford; Clarendon Press, 1951)</ref> | ||
1970 के दशक में बिग ओ को डोनाल्ड नुथ द्वारा कंप्यूटर विज्ञान में लोकप्रिय बनाया गया, जिन्होंने संबंधित थीटा नोटेशन की शुरुआत की, और ओमेगा नोटेशन के लिए अलग परिभाषा प्रस्तावित की।<ref name="knuth" /> | 1970 के दशक में बिग ओ को डोनाल्ड नुथ द्वारा कंप्यूटर विज्ञान में लोकप्रिय बनाया गया, जिन्होंने संबंधित थीटा नोटेशन की शुरुआत की, और ओमेगा नोटेशन के लिए अलग परिभाषा प्रस्तावित की।<ref name="knuth" /> | ||
Line 369: | Line 374: | ||
हार्डी के प्रतीक थे (आधुनिक ओ अंकन के संदर्भ में) | हार्डी के प्रतीक थे (आधुनिक ओ अंकन के संदर्भ में) | ||
:<math> f \preccurlyeq g\iff f \in O(g) </math> और <math> f\prec g\iff f\in o(g); </math> | :<math> f \preccurlyeq g\iff f \in O(g) </math> और <math> f\prec g\iff f\in o(g); </math> | ||
( | (चूँकि हार्डी ने कभी भी नोटेशन को परिभाषित या उपयोग नहीं किया <math>\prec\!\!\prec</math>, और न <math>\ll</math>, जैसा कि कभी-कभी रिपोर्ट किया गया है)। | ||
हार्डी ने प्रतीकों का परिचय दिया <math>\preccurlyeq </math> और <math>\prec </math> (साथ ही कुछ अन्य प्रतीकों) को उनके 1910 के ट्रैक्ट ऑर्डर्स ऑफ इन्फिनिटी में प्रकाशित किया गया था, और उनका उपयोग केवल तीन पत्रों (1910-1913) में किया गया था। अपने लगभग 400 शेष पत्रों और पुस्तकों में उन्होंने लगातार लैंडौ प्रतीकों ओ और ओ का उपयोग किया। | हार्डी ने प्रतीकों का परिचय दिया <math>\preccurlyeq </math> और <math>\prec </math> (साथ ही कुछ अन्य प्रतीकों) को उनके 1910 के ट्रैक्ट ऑर्डर्स ऑफ इन्फिनिटी में प्रकाशित किया गया था, और उनका उपयोग केवल तीन पत्रों (1910-1913) में किया गया था। अपने लगभग 400 शेष पत्रों और पुस्तकों में उन्होंने लगातार लैंडौ प्रतीकों ओ और ओ का उपयोग किया। | ||
हार्डी के नोटेशन का अब उपयोग नहीं किया जाता है। दूसरी ओर, 1930 के दशक में,<ref>See for instance "A new estimate for ''G''(''n'') in Waring's problem" (Russian). Doklady Akademii Nauk SSSR 5, No 5-6 (1934), 249–253. Translated in English in: Selected works / Ivan Matveevič Vinogradov; prepared by the Steklov Mathematical Institute of the Academy of Sciences of the USSR on the occasion of his 90th birthday. Springer-Verlag, 1985.</ref> रूसी संख्या सिद्धांतकार [[इवान मतवेयेविच विनोग्रादोव]] ने अपना अंकन प्रस्तुत किया<math>\ll</math>, जिसका उपयोग संख्या सिद्धांत के बजाय तेजी से किया जा रहा है <math>O</math> अंकन. अपने पास | हार्डी के नोटेशन का अब उपयोग नहीं किया जाता है। दूसरी ओर, 1930 के दशक में,<ref>See for instance "A new estimate for ''G''(''n'') in Waring's problem" (Russian). Doklady Akademii Nauk SSSR 5, No 5-6 (1934), 249–253. Translated in English in: Selected works / Ivan Matveevič Vinogradov; prepared by the Steklov Mathematical Institute of the Academy of Sciences of the USSR on the occasion of his 90th birthday. Springer-Verlag, 1985.</ref> रूसी संख्या सिद्धांतकार [[इवान मतवेयेविच विनोग्रादोव]] ने अपना अंकन प्रस्तुत किया<math>\ll</math>, जिसका उपयोग संख्या सिद्धांत के बजाय तेजी से किया जा रहा है <math>O</math> अंकन. अपने पास | ||
:<math> f\ll g \iff f \in O(g), </math> | :<math> f\ll g \iff f \in O(g), </math> | ||
और | और अधिकांशतः दोनों नोटेशन का उपयोग ही पेपर में किया जाता है। | ||
बिग-ओ मूल रूप से ऑर्डर ऑफ (ऑर्डनंग, बैचमैन 1894) को दर्शाता है, और इस प्रकार यह लैटिन अक्षर है। न तो बैचमैन और न ही लैंडौ ने कभी इसे [[ ऑमिक्रॉन ]] कहा। इस प्रतीक को बहुत बाद में (1976) नुथ ने बड़े ओमीक्रॉन के रूप में देखा,<ref name="knuth" />संभवतः प्रतीक [[ओमेगा]] की उनकी परिभाषा के संदर्भ में। अंक [[0]] का प्रयोग नहीं किया जाना चाहिए. | बिग-ओ मूल रूप से ऑर्डर ऑफ (ऑर्डनंग, बैचमैन 1894) को दर्शाता है, और इस प्रकार यह लैटिन अक्षर है। न तो बैचमैन और न ही लैंडौ ने कभी इसे [[ ऑमिक्रॉन | ऑमिक्रॉन]] कहा। इस प्रतीक को बहुत बाद में (1976) नुथ ने बड़े ओमीक्रॉन के रूप में देखा,<ref name="knuth" />संभवतः प्रतीक [[ओमेगा]] की उनकी परिभाषा के संदर्भ में। अंक [[0]] का प्रयोग नहीं किया जाना चाहिए. | ||
== यह भी देखें == | == यह भी देखें == | ||
* स्पर्शोन्मुख विस्तार: टेलर के सूत्र को सामान्य बनाने वाले कार्यों का सन्निकटन | * स्पर्शोन्मुख विस्तार: टेलर के सूत्र को सामान्य बनाने वाले कार्यों का सन्निकटन | ||
* एसिम्प्टोटिक रूप से इष्टतम एल्गोरिदम: वाक्यांश जो | * एसिम्प्टोटिक रूप से इष्टतम एल्गोरिदम: वाक्यांश जो अधिकांशतः एल्गोरिदम का वर्णन करने के लिए उपयोग किया जाता है जिसमें समस्या के लिए निचली सीमा के स्थिरांक के अन्दर एसिम्प्टोटिक रूप से ऊपरी सीमा होती है | ||
* [[संभाव्यता संकेतन में बड़ा O]]: O<sub>p</sub>, ओ<sub>p</sub>* [[निम्न को सीमित करें और श्रेष्ठ को सीमित करें]]: इस आलेख में उपयोग किए गए कुछ सीमा संकेतन का स्पष्टीकरण | * [[संभाव्यता संकेतन में बड़ा O|संभाव्यता संकेतन में बड़ा ओ]]: O<sub>p</sub>, ओ<sub>p</sub>* [[निम्न को सीमित करें और श्रेष्ठ को सीमित करें]]: इस आलेख में उपयोग किए गए कुछ सीमा संकेतन का स्पष्टीकरण | ||
* [[मास्टर प्रमेय (एल्गोरिदम का विश्लेषण)]]: बिग ओ नोटेशन का उपयोग करके विभाजित करें और जीतें पुनरावर्ती एल्गोरिदम का विश्लेषण करने के लिए | * [[मास्टर प्रमेय (एल्गोरिदम का विश्लेषण)]]: बिग ओ नोटेशन का उपयोग करके विभाजित करें और जीतें पुनरावर्ती एल्गोरिदम का विश्लेषण करने के लिए | ||
* नचबिन का प्रमेय: [[जटिल विश्लेषणात्मक]] कार्यों को सीमित करने की | * नचबिन का प्रमेय: [[जटिल विश्लेषणात्मक]] कार्यों को सीमित करने की स्पष्ट विधि जिससे [[अभिन्न परिवर्तन]]ों के अभिसरण के क्षेत्र को बताया जा सके | ||
* सन्निकटन का क्रम | * सन्निकटन का क्रम | ||
* [[गणितीय संक्रियाओं की कम्प्यूटेशनल जटिलता]] | * [[गणितीय संक्रियाओं की कम्प्यूटेशनल जटिलता]] | ||
Line 409: | Line 414: | ||
* [http://oeis.org/wiki/Growth_of_sequences Growth of sequences — OEIS (Online Encyclopedia of Integer Sequences) Wiki] | * [http://oeis.org/wiki/Growth_of_sequences Growth of sequences — OEIS (Online Encyclopedia of Integer Sequences) Wiki] | ||
* [https://classes.soe.ucsc.edu/cse102/Fall21/Handouts/AsymptoticGrowth.pdf Introduction to Asymptotic Notations] | * [https://classes.soe.ucsc.edu/cse102/Fall21/Handouts/AsymptoticGrowth.pdf Introduction to Asymptotic Notations] | ||
* [http://www.perlmonks.org/?node_id=573138 Big- | * [http://www.perlmonks.org/?node_id=573138 Big-ओ Notation – What is it good for] | ||
*[https://autarkaw.org/2013/01/30/making-sense-of-the-big-oh/ An example of Big | *[https://autarkaw.org/2013/01/30/making-sense-of-the-big-oh/ An example of Big ओ in accuracy of central divided difference scheme for first derivative] {{Webarchive|url=https://web.archive.org/web/20181007223123/https://autarkaw.org/2013/01/30/making-sense-of-the-big-oh/ |date=2018-10-07 }} | ||
*[https://discrete.gr/complexity/ A Gentle Introduction to Algorithm Complexity Analysis] | *[https://discrete.gr/complexity/ A Gentle Introduction to Algorithm Complexity Analysis] | ||
[[Category: गणितीय संकेतन]] [[Category: स्पर्शोन्मुख विश्लेषण]] [[Category: एल्गोरिदम का विश्लेषण]] | [[Category: गणितीय संकेतन]] [[Category: स्पर्शोन्मुख विश्लेषण]] [[Category: एल्गोरिदम का विश्लेषण]] |
Revision as of 15:06, 1 July 2023
Fit approximation |
---|
Concepts |
Orders of approximation Scale analysis · Big O notation Curve fitting · False precision Significant figures |
Other fundamentals |
Approximation · Generalization error Taylor polynomial Scientific modelling |
बिग ओ नोटेशन गणितीय नोटेशन है जो किसी फलन (गणित) के स्पर्शोन्मुख विश्लेषण का वर्णन करता है जब किसी फलन का तर्क किसी विशेष मूल्य या अनंत की ओर जाता है। बिग ओ पॉल गुस्ताव हेनरिक बैचमैन द्वारा आविष्कृत संबंधित एसिम्प्टोटिक नोटेशन का सदस्य है,[1] एडमंड लैंडौ,[2] और अन्य, जिन्हें सामूहिक रूप से बैचमैन-लैंडौ संकेतन या एसिम्प्टोटिक संकेतन कहा जाता है। अक्षर ओ को बैचमैन द्वारा विक्ट ऑर्डनंग जर्मन के लिए चुना गया था, जिसका अर्थ सन्निकटन का क्रम है।
कंप्यूटर विज्ञान में, बिग ओ नोटेशन का उपयोग कम्प्यूटेशनल जटिलता सिद्धांत के लिए किया जाता है, जिसके अनुसार इनपुट आकार बढ़ने के साथ उनके रन टाइम या स्पेस की आवश्यकताएं कैसे बढ़ती हैं।[3] विश्लेषणात्मक संख्या सिद्धांत में, बड़े ओ नोटेशन का उपयोग अधिकांशतः अंकगणितीय फलन और उत्तम समझे जाने वाले सन्निकटन के बीच अंतर पर सीमा व्यक्त करने के लिए किया जाता है; इस तरह के अंतर का प्रसिद्ध उदाहरण अभाज्य संख्या प्रमेय में शेष पद है। इसी तरह के अनुमान प्रदान करने के लिए कई अन्य क्षेत्रों में भी बिग ओ नोटेशन का उपयोग किया जाता है।
बिग ओ नोटेशन उनकी विकास दर के अनुसार कार्यों को चित्रित करता है: समान एसिम्प्टोटिक विकास दर वाले विभिन्न कार्यों को ही ओ नोटेशन का उपयोग करके दर्शाया जा सकता है। इस प्रकार ओ अक्षर का उपयोग इसलिए किया जाता है क्योंकि किसी फलन की वृद्धि दर को फलन का क्रम भी कहा जाता है। बड़े ओ नोटेशन के संदर्भ में किसी फलन का विवरण सामान्यतः केवल फलन की वृद्धि दर पर ऊपरी सीमा प्रदान करता है।
बड़े O नोटेशन के साथ संबद्ध कई संबंधित नोटेशन हैं जो स्पर्शोन्मुख विकास दर पर अन्य प्रकार की सीमाओं का वर्णन करने के लिए प्रतीकों o, Ω, ω, और Θ का उपयोग करते हैं।
औपचारिक परिभाषा
माना , जिस फलन का अनुमान लगाया जाना है, वह वास्तविक संख्या या जटिल संख्या मूल्यवान फलन हो और माना , तुलना फलन, वास्तविक मूल्यवान फलन बनें। मान लीजिए कि दोनों कार्यों को सकारात्मक वास्तविक संख्याओं के कुछ बंधे हुए सबसेट उपसमुच्चय पर परिभाषित किया गया है, और के सभी बड़े पर्याप्त मूल्यों के लिए सख्ती से सकारात्मक [4] लिखता है
और इसे पढ़ा जाता है का बड़ा O है" यदि के सभी पर्याप्त बड़े मानों के लिए का निरपेक्ष मान का अधिकतम सकारात्मक स्थिरांक है। यानी कि यदि एक सकारात्मक वास्तविक संख्या और एक वास्तविक संख्या उपस्थित है तो
जैसा के ऐसे मूल्यों के लिए सख्ती से सकारात्मक होने के लिए चुना गया है , इन दोनों परिभाषाओं को सीमा श्रेष्ठ का उपयोग करके एकीकृत किया जा सकता है:
कंप्यूटर विज्ञान में, थोड़ी अधिक प्रतिबंधात्मक परिभाषा सामान्य है: और क्या दोनों को प्राकृतिक संख्याओं के कुछ असंबद्ध उपसमुच्चय से गैर-ऋणात्मक वास्तविक संख्याओं तक फलन होना आवश्यक है; तब यदि धनात्मक पूर्णांक संख्याएँ और उपस्थित हों तो सभी के लिए [5]
उदाहरण
सामान्य उपयोग में O अंकन स्पर्शोन्मुख है, अर्थात यह बहुत बड़े x को संदर्भित करता है . इस सेटिंग में, सबसे तेज़ी से बढ़ने वाले शब्दों का योगदान अंततः अन्य को अप्रासंगिक बना देगा। परिणामस्वरूप, निम्नलिखित सरलीकरण नियम प्रयुक्त किए जा सकते हैं:
- यदि f(x) कई पदों का योग है, यदि सबसे अधिक वृद्धि दर वाला कोई है, जिससे उसे रखा जा सकता है, और अन्य सभी को छोड़ दिया जा सकता है।
- यदि f(x) कई कारकों का उत्पाद है, किसी भी स्थिरांक (उत्पाद में ऐसे कारक जो निर्भर नहीं होते हैं x) मिटाया जा सकता है।
उदाहरण के लिए, माना f(x) = 6x4 − 2x3 + 5, और मान लीजिए कि हम इसका उपयोग करके इस फलन को सरल बनाना चाहते हैं O संकेतन, इसकी वृद्धि दर को इस प्रकार वर्णित करने के लिए x अनंत तक पहुंचता है। यह फलन तीन पदों का योग है: 6x4, −2x3, और 5. इन तीन नियमो में से, उच्चतम विकास दर वाला वह है जिसके कार्य के रूप में सबसे बड़ा प्रतिपादक है x, अर्थात् 6x4. अब कोई दूसरा नियम प्रयुक्त कर सकता है: 6x4 का उत्पाद है 6 और x4 जिसमें पहला कारक निर्भर नहीं करता x. इस कारक को छोड़ने पर परिणाम सरलीकृत हो जाता है x4. इस प्रकार, हम ऐसा कहते हैं f(x) का बड़ा ओ है x4. गणितीय रूप से हम f(x) = O(x4) लिख सकते हैं . कोई औपचारिक परिभाषा का उपयोग करके इस गणना की पुष्टि कर सकता है: माना f(x) = 6x4 − 2x3 + 5 और g(x) = x4. उपरोक्त से औपचारिक परिभाषा को प्रयुक्त करते हुए कथन कि f(x) = O(x4) इसके विस्तार के सामान्य है,
उपयोग
बिग ओ नोटेशन के अनुप्रयोग के दो मुख्य क्षेत्र हैं:
- गणित में, इसका उपयोग सामान्यतः बिग ओ नोटेशन इनफिनिटेसिमल एसिम्प्टोटिक्स का वर्णन करने के लिए किया जाता है, विशेष रूप से काटे गए टेलर श्रृंखला या एसिम्प्टोटिक विस्तार के स्थिति में वर्णन करने के लिए किया जाता है
- कंप्यूटर विज्ञान में, यह बिग ओ नोटेशन अनंत स्पर्शोन्मुख विस्तार उपयोगी है
दोनों अनुप्रयोगों में, फलन g(x) के अन्दर प्रदर्शित हो रहा है O(·) को सामान्यतः यथासंभव सरल चुना जाता है, निरंतर कारकों और निचले क्रम की नियमो को छोड़ दिया जाता है।
इस नोटेशन के दो औपचारिक रूप से निकट, किन्तु स्पष्ट रूप से भिन्न उपयोग हैं:
- अनंत स्पर्शोन्मुखता
- बहुत छोता एसिम्प्टोटिक्स।
यह अंतर केवल अनुप्रयोग में है और सिद्धांत रूप में नहीं, चूँकि - बड़े ओ के लिए औपचारिक परिभाषा दोनों मामलों के लिए समान है, केवल फलन तर्क के लिए अलग-अलग सीमाएं हैं।
अनंत स्पर्शोन्मुख
दक्षता के लिए एल्गोरिदम का विश्लेषण करते समय बिग ओ नोटेशन उपयोगी होता है। उदाहरण के लिए, आकार की समस्या को पूरा करने में लगने वाला समय (या चरणों की संख्या) n पाया जा सकता है T(n) = 4n2 − 2n + 2. जैसा n बड़ा हो जाता है, n2 सारांश हावी हो जाएगा, जिससे अन्य सभी नियमो की उपेक्षा की जा सके - उदाहरण के लिए जब n = 500, शब्द 4n2 से 1000 गुना बड़ा है 2n अवधि उत्तरार्द्ध को अनदेखा करने से अधिकांश उद्देश्यों के लिए अभिव्यक्ति के मूल्य पर नगण्य प्रभाव पड़ेगा। इसके अतिरिक्त, यदि हम अभिव्यक्ति के सन्निकटन के किसी अन्य आदेश से तुलना करते हैं, जैसे कि पद युक्त अभिव्यक्ति, तो गुणांक अप्रासंगिक हो जाते हैं n3 या n4. तथापि T(n) = 1,000,000n2, यदि U(n) = n3, बाद वाला सदैव पहले वाले से बार अधिक होगा n से बड़ा हो जाता है 1,000,000 (T(1,000,000) = 1,000,0003 = U(1,000,000)). इसके अतिरिक्त, चरणों की संख्या मशीन मॉडल के विवरण पर निर्भर करती है जिस पर एल्गोरिदम चलता है, किन्तु विभिन्न प्रकार की मशीनें सामान्यतः एल्गोरिदम को निष्पादित करने के लिए आवश्यक चरणों की संख्या में केवल स्थिर कारक से भिन्न होती हैं। जिससे बड़ा ओ नोटेशन जो बचता है उसे पकड़ लेता है: हम या तो लिखते हैं
या
और कहें कि एल्गोरिदम का क्रम है n2 समय जटिलता. संकेत का अभिप्राय अपने सामान्य गणितीय अर्थ में सामान्य को व्यक्त करना नहीं है, किन्तु अधिक बोलचाल की भाषा है, इसलिए दूसरी अभिव्यक्ति को कभी-कभी अधिक स्पष्ट माना जाता है (नीचे सामान्य चिह्न चर्चा देखें) जबकि पहली को कुछ लोगों द्वारा दुरुपयोग माना जाता है .[6]
अनंतिम स्पर्शोन्मुखता
बिग ओ का उपयोग टेलर श्रृंखला अनुमान त्रुटि और गणितीय फलन के सन्निकटन में अभिसरण का वर्णन करने के लिए भी किया जा सकता है। सबसे महत्वपूर्ण शब्दों को स्पष्ट रूप से लिखा जाता है, और फिर सबसे कम महत्वपूर्ण शब्दों को बड़े ओ शब्द में संक्षेपित किया जाता है। उदाहरण के लिए, एक्सपोनेंशियल फलन औपचारिक परिभाषा और इसकी दो अभिव्यक्तियों पर विचार करें जो कब मान्य हैं
दूसरा व्यंजक O(x3 का अर्थ है त्रुटि ex − (1 + x + x2/2) का निरपेक्ष मान अधिक से अधिक कुछ स्थिर |x3| समय है जब x 0 के अधिक निकट होता है।
गुण
यदि फलन f को अन्य कार्यों के सीमित योग के रूप में लिखा जा सकता है, फिर सबसे तेजी से बढ़ने वाला क्रम f(n) निर्धारित करता है उदाहरण के लिए,
विशेष रूप से, यदि कोई फलन किसी बहुपद n से घिरा हो सकता है , फिर ऐसे n अनंत की ओर प्रवृत्त होता है, कोई बहुपद के निचले-क्रम वाले पदों की उपेक्षा कर सकता है। सेट O(nc) और O(cn) बहुत अलग हैं. यदि c से बड़ा है, तो बाद वाला बहुत तेजी से बढ़ता है। फलन जो तेजी से बढ़ता है nc किसी के लिए c को सुपरपोलिनोमियल कहा जाता है। वह जो प्रपत्र के किसी भी घातांकीय फलन की तुलना में अधिक धीरे-धीरे बढ़ता है cn को उपघातीय कहा जाता है। एल्गोरिदम को ऐसे समय की आवश्यकता हो सकती है जो सुपरपोलिनोमियल और सबएक्सपोनेंशियल दोनों हो; इसके उदाहरणों में पूर्णांक गुणनखंडन और फलन nlog n के लिए सबसे तेज़ ज्ञात एल्गोरिदम सम्मिलित हैं .
हम किसी भी शक्ति को नजरअंदाज कर सकते हैं n लघुगणक के अंदर सेट O(log n) बिलकुल वैसा ही है O(log(nc)). लघुगणक केवल स्थिर कारक से भिन्न होते हैं (क्योंकि log(nc) = c log n) और इस प्रकार बड़ा ओ नोटेशन इसे अनदेखा कर देता है। इसी प्रकार, विभिन्न स्थिर आधारों वाले लॉग समतुल्य होते हैं। दूसरी ओर, विभिन्न आधारों वाले घातांक ही क्रम के नहीं होते हैं। उदाहरण के लिए, 2n और 3n समान क्रम के नहीं हैं।
बदलती इकाइयाँ परिणामी एल्गोरिदम के क्रम को प्रभावित कर भी सकती हैं और नहीं भी। इकाइयों को बदलना, जहां कहीं भी दिखाई दे, उचित चर को स्थिरांक से गुणा करने के सामान्य है। उदाहरण के लिए, यदि कोई एल्गोरिदम क्रम में चलता है n2, प्रतिस्थापित करना n द्वारा cn का अर्थ है कि एल्गोरिदम क्रम में चलता है c2n2, और बड़ा ओ अंकन स्थिरांक को अनदेखा करता है c2. इसे ऐसे लिखा जा सकता है c2n2 = O(n2). यदि, तथापि, एल्गोरिथ्म के क्रम में चलता है 2n, प्रतिस्थापित करना n साथ cn देता है 2cn = (2c)n. यह इसके सामान्य नहीं है 2n सामान्य रूप में। चर बदलने से परिणामी एल्गोरिदम का क्रम भी प्रभावित हो सकता है। उदाहरण के लिए, यदि किसी एल्गोरिदम का रन टाइम है O(n) जब संख्या के संदर्भ में मापा जाता है n किसी इनपुट संख्या के अंकों का x, तो इसका रन टाइम है O(log x) जब इनपुट संख्या के फलन के रूप में मापा जाता है
उत्पाद
योग
यदि और तब . यह इस प्रकार है कि यदि और तब . दूसरे शब्दों में, यह दूसरा कथन यही कहता है उत्तल शंकु है.
एक स्थिरांक से गुणा
माना k शून्येतर स्थिरांक है। तब . दूसरे शब्दों में, यदि , तब
एकाधिक चर
बिग ओ (और छोटे ओ, Ω, आदि) का उपयोग कई वेरिएबल्स के साथ भी किया जा सकता है। कई चरों के लिए बड़े ओ को औपचारिक रूप से परिभाषित करने के लिए, मान लीजिए और के कुछ उपसमुच्चय पर परिभाषित दो कार्य हैं . हम कहते हैं
यदि और केवल यदि स्थिरांक उपस्थित हैं और ऐसा है कि सभी के लिए साथ कुछ के लिए [7] समान रूप से, शर्त यह है कि कुछ के लिए लिखा जा सकता है , कहाँ चेबीशेव मानदंड को दर्शाता है। उदाहरण के लिए, कथन
दावा करता है कि ऐसे स्थिरांक C और M उपस्थित हैं
जब भी या तो या धारण करता है. यह परिभाषा सभी निर्देशांकों की अनुमति देती है अनंत तक बढ़ना. विशेष रूप से, कथन
(अर्थात।, ) से अधिक अलग है
(अर्थात।, ).
इस परिभाषा के तहत, उपसमुच्चय जिस पर फलन परिभाषित किया गया है, यूनीवेरिएट सेटिंग से मल्टीवेरिएट सेटिंग में कथनों को सामान्यीकृत करते समय महत्वपूर्ण होता है। उदाहरण के लिए, यदि और , तब यदि हम प्रतिबंधित करते हैं और को , किन्तु तब नहीं जब उन्हें परिभाषित किया गया हो .
बहुभिन्नरूपी कार्यों के लिए बड़े ओ का यह एकमात्र सामान्यीकरण नहीं है, और व्यवहार में, परिभाषा के चुनाव में कुछ असंगतता है।[8]
अंकन के स्थिति
सामान्य का चिह्न
कथन f(x) ओ(g(x)) है जैसा कि ऊपर परिभाषित किया गया है, सामान्यतः इस प्रकार लिखा जाता है f(x) = O(g(x)). कुछ लोग इसे संकेतन का दुरुपयोग मानते हैं, क्योंकि सामान्य चिह्न का उपयोग भ्रामक हो सकता है क्योंकि यह समरूपता का सुझाव देता है जो इस कथन में नहीं है। जैसा कि निकोलस गोवर्ट डी ब्रुइज़न कहते हैं, O(x) = O(x2) सत्य है किन्तु O(x2) = O(x) क्या नहीं है।[9] डोनाल्ड नुथ ऐसे बयानों को एकतरफा समानता के रूप में वर्णित करते हैं, क्योंकि यदि पक्षों को उलटा किया जा सकता है, तो हम हास्यास्पद बातें निकाल सकते हैं n = n2पहचान से n = O(n2) और n2 = O(n2).[10] अन्य पत्र में, नथ ने यह भी बताया कि समानता चिह्न ऐसे अंकन के संबंध में सममित नहीं है, क्योंकि, इस अंकन में, गणितज्ञ परंपरागत रूप से = चिह्न का उपयोग करते हैं क्योंकि वे अंग्रेजी में शब्द का उपयोग करते हैं: अरस्तू आदमी है, किन्तु आदमी है जरूरी नहीं कि अरस्तू हो।[11] इन कारणों से, संकेतन सेट करें का उपयोग करना और लिखना अधिक स्पष्ट होगा f(x) ∈ O(g(x)) (इस प्रकार पढ़ें: f(x) तत्व (गणित)#नोटेशन और शब्दावली ओ(g(x)) , या f(x) सेट ओ(g(x)) में है), ओ(g(x) के बारे में सोचते हुए )) सभी कार्यों का वर्ग h(x) इस प्रकार है कि |h(x)| ≤ कुछ सकारात्मक वास्तविक संख्या C के लिए Cg(x)।[10]हालाँकि, सामान्य चिह्न का उपयोग प्रथागत है।[9][10]
अन्य अंकगणितीय ऑपरेटर
बिग ओ नोटेशन का उपयोग अधिक जटिल समीकरणों में अन्य अंकगणितीय ऑपरेटरों के साथ संयोजन में भी किया जा सकता है। उदाहरण के लिए, h(x) + O(f(x)) h(x) की वृद्धि के साथ-साथ भाग वाले कार्यों के संग्रह को दर्शाता है जिसकी वृद्धि f(x) तक सीमित है। इस प्रकार,
के समान ही व्यक्त करता है
उदाहरण
मान लीजिए कि n तत्वों के सेट पर काम करने के लिए कलन विधि विकसित किया जा रहा है। इसके डेवलपर्स फलन T(n) खोजने में रुचि रखते हैं जो यह व्यक्त करेगा कि इनपुट सेट में तत्वों की संख्या के संदर्भ में एल्गोरिदम को चलने में कितना समय लगेगा (समय के कुछ मनमाने माप में)। एल्गोरिदम सेट में तत्वों को क्रमबद्ध करने के लिए पहले सबरूटीन को कॉल करके काम करता है और फिर अपने स्वयं के संचालन करता है। इस प्रकार में ओ(n) की ज्ञात समय जटिलता है2), और सबरूटीन चलने के बाद एल्गोरिदम को अतिरिक्त लेना होगा 55n3 + 2n + 10 समाप्त होने से पहले के चरण। इस प्रकार एल्गोरिथ्म की समग्र समय जटिलता को इस प्रकार व्यक्त किया जा सकता है T(n) = 55n3 + O(n2). यहाँ शर्तें 2n + 10 तेजी से बढ़ने वाले ओ(n) में समाहित हो गए हैं2). फिर, यह उपयोग = प्रतीक के कुछ औपचारिक अर्थों की उपेक्षा करता है, किन्तु यह प्रकार के सुविधाजनक प्लेसहोल्डर के रूप में बड़े ओ नोटेशन का उपयोग करने की अनुमति देता है।
एकाधिक उपयोग
अधिक जटिल उपयोग में, ओ(·) समीकरण में विभिन्न स्थानों पर प्रकट हो सकता है, यहाँ तक कि प्रत्येक पक्ष पर कई बार भी। उदाहरण के लिए, निम्नलिखित सत्य हैं :
टाइपसेटिंग
बिग ओ को इटैलिकाइज़्ड अपरकेस ओ के रूप में टाइप किया गया है, जैसा कि निम्नलिखित उदाहरण में है: .[12][13] TeX में, यह केवल गणित मोड के अंदर ओ टाइप करके निर्मित होता है। ग्रीक-नामांकित बैचमैन-लैंडौ नोटेशन के विपरीत, इसे किसी विशेष प्रतीक की आवश्यकता नहीं है। फिर भी, कुछ लेखक सुलेख संस्करण का उपयोग करते हैं बजाय।[14][15]
सामान्य कार्यों के क्रम
यहां उन फ़ंक्शंस के वर्गों की सूची दी गई है जो सामान्यतः एल्गोरिदम के चलने के समय का विश्लेषण करते समय सामने आते हैं। प्रत्येक स्थिति में, c धनात्मक स्थिरांक है और n बिना किसी सीमा के बढ़ता है। धीमी गति से बढ़ने वाले कार्यों को सामान्यतः पहले सूचीबद्ध किया जाता है।
Notation | Name | Example |
---|---|---|
constant | Determining if a binary number is even or odd; Calculating ; Using a constant-size lookup table | |
double logarithmic | Average number of comparisons spent finding an item using interpolation search in a sorted array of uniformly distributed values | |
logarithmic | Finding an item in a sorted array with a binary search or a balanced search tree as well as all operations in a binomial heap | |
polylogarithmic | Matrix chain ordering can be solved in polylogarithmic time on a parallel random-access machine. | |
fractional power | Searching in a k-d tree | |
linear | Finding an item in an unsorted list or in an unsorted array; adding two n-bit integers by ripple carry | |
n log-star n | Performing triangulation of a simple polygon using Seidel's algorithm, or the union–find algorithm. Note that | |
linearithmic, loglinear, quasilinear, or "n log n" | Performing a fast Fourier transform; fastest possible comparison sort; heapsort and merge sort | |
quadratic | Multiplying two n-digit numbers by schoolbook multiplication; simple sorting algorithms, such as bubble sort, selection sort and insertion sort; (worst-case) bound on some usually faster sorting algorithms such as quicksort, Shellsort, and tree sort | |
polynomial or algebraic | Tree-adjoining grammar parsing; maximum matching for bipartite graphs; finding the determinant with LU decomposition | |
L-notation or sub-exponential | Factoring a number using the quadratic sieve or number field sieve | |
exponential | Finding the (exact) solution to the travelling salesman problem using dynamic programming; determining if two logical statements are equivalent using brute-force search | |
factorial | Solving the travelling salesman problem via brute-force search; generating all unrestricted permutations of a poset; finding the determinant with Laplace expansion; enumerating all partitions of a set |
कथन कभी-कभी कमजोर हो जाता है स्पर्शोन्मुख जटिलता के लिए सरल सूत्र प्राप्त करना। किसी के लिए और , का उपसमुच्चय है किसी के लिए , इसलिए इसे किसी बड़े क्रम वाला बहुपद माना जा सकता है।
संबंधित स्पर्शोन्मुख संकेतन
कंप्यूटर विज्ञान में बिग ओ का व्यापक रूप से उपयोग किया जाता है। कुछ अन्य संबंधित नोटेशनों के साथ, यह बैचमैन-लैंडौ नोटेशन के परिवार का निर्माण करता है।
लिटिल-ओ नोटेशन
सहज रूप से, दावाf(x) है o(g(x)) (पढ़नाf(x) छोटा-ओ का है g(x) ) मतलब कि g(x) की तुलना में बहुत तेजी से बढ़ता है f(x). पहले की तरह, मान लीजिए कि f वास्तविक या जटिल मान वाला फलन है और g वास्तविक मान वाला फलन है, दोनों को सकारात्मक वास्तविक संख्याओं के कुछ असीमित उपसमुच्चय पर परिभाषित किया गया है, जैसे कि x के सभी बड़े पर्याप्त मानों के लिए g(x) सख्ती से सकारात्मक है। लिखता है
यदि प्रत्येक सकारात्मक स्थिरांक के लिए ε वहां स्थिरांक उपस्थित है ऐसा है कि
उदाहरण के लिए, किसी के पास है
- और दोनों जैसे
- औपचारिक परिभाषा|बिग-ओ संकेतन की परिभाषा और छोटे-ओ की परिभाषा के बीच अंतर यह है कि जहां पूर्व को कम से कम स्थिरांक एम के लिए सत्य होना चाहिए, वहीं बाद वाले को प्रत्येक सकारात्मक स्थिरांक के लिए मान्य होना चाहिए ε, हालाँकि छोटा।[17] इस तरह, लिटिल-ओ नोटेशन संबंधित बिग-ओ नोटेशन की तुलना में मजबूत कथन बनाता है: प्रत्येक फलन जो कि जी का छोटा-ओ है, वह भी जी का बड़ा-ओ है, किन्तु प्रत्येक फलन जो जी का बड़ा-ओ है वह भी नहीं है जी का छोटा-ओ. उदाहरण के लिए, किन्तु .
चूँकि g(x) अशून्य है, या कम से कम निश्चित बिंदु से परे अशून्य हो जाता है, संबंध के सामान्य है
- (और वास्तव में लैंडौ ऐसा ही है[16]मूल रूप से लिटिल-ओ नोटेशन को परिभाषित किया गया था)।
लिटिल-ओ कई अंकगणितीय संक्रियाओं का सम्मान करता है। उदाहरण के लिए,
- यदि c शून्येतर स्थिरांक है और तब , और
- यदि और तब
यह सकर्मक संबंध संबंध को भी संतुष्ट करता है:
- यदि और तब
बिग ओमेगा संकेतन
एक अन्य स्पर्शोन्मुख संकेतन है , बिग ओमेगा पढ़ें।[18] कथन की दो व्यापक और असंगत परिभाषाएँ हैं
- जैसा ,
जहां a कुछ वास्तविक संख्या है, ∞, या −∞, जहां f और g, a के निकट में परिभाषित वास्तविक कार्य हैं, और जहां g इस निकट में सकारात्मक है।
हार्डी-लिटलवुड परिभाषा का उपयोग मुख्य रूप से विश्लेषणात्मक संख्या सिद्धांत में किया जाता है, और नुथ परिभाषा का उपयोग मुख्य रूप से कम्प्यूटेशनल जटिलता सिद्धांत में किया जाता है; परिभाषाएँ समतुल्य नहीं हैं.
हार्डी-लिटलवुड परिभाषा
1914 में गॉडफ्रे हेरोल्ड हार्डी और जॉन एडेंसर लिटिलवुड ने नया प्रतीक पेश किया ,[19] जिसे इस प्रकार परिभाषित किया गया है:
- जैसा यदि
इस प्रकार का निषेध है .
1916 में उन्हीं लेखकों ने दो नये प्रतीक प्रस्तुत किये और , के रूप में परिभाषित:[20]
- जैसा यदि ;
- जैसा यदि
इन प्रतीकों का प्रयोग 1924 में एडमंड लैंडौ द्वारा इन्हीं अर्थों में किया गया था।[21] लांडौ के बाद, नोटेशन का दोबारा कभी भी स्पष्ट रूप से उपयोग नहीं किया गया; बन गया और बन गया .[citation needed]
ये तीन प्रतीक , साथ ही (मतलब है कि और दोनों संतुष्ट हैं), अब वर्तमान में विश्लेषणात्मक संख्या सिद्धांत में उपयोग किया जाता है।[22][23]
सरल उदाहरण
अपने पास
- जैसा
और अधिक स्पष्ट रूप से
- जैसा
अपने पास
- जैसा
और अधिक स्पष्ट रूप से
- जैसा
हालाँकि
- जैसा
नथ परिभाषा
1976 में डोनाल्ड नथ ने अपने उपयोग को उचित ठहराने के लिए पेपर प्रकाशित किया -एक मजबूत संपत्ति का वर्णन करने के लिए प्रतीक।[24]नुथ ने लिखा: कंप्यूटर विज्ञान में अब तक मैंने जितने भी अनुप्रयोग देखे हैं, उनके लिए मजबूत आवश्यकता... कहीं अधिक उपयुक्त है। उन्होंने परिभाषित किया
टिप्पणी के साथ: हालाँकि मैंने हार्डी और लिटिलवुड की परिभाषा बदल दी है , मुझे ऐसा करना उचित लगता है क्योंकि उनकी परिभाषा किसी भी तरह से व्यापक उपयोग में नहीं है, और क्योंकि तुलनात्मक रूप से दुर्लभ मामलों में जब उनकी परिभाषा प्रयुक्त होती है तो वे जो कहना चाहते हैं उसे कहने के अन्य तरीके भी हैं।[24]
बैचमैन-लैंडौ नोटेशन का परिवार
Notation | Name[24] | Description | Formal definition | Limit definition[25][26][27][24][19] |
---|---|---|---|---|
Small ओ; Small Oh | f is dominated by g asymptotically | |||
Big ओ; Big Oh; Big Omicron | is bounded above by g (up to constant factor) asymptotically | |||
Big Theta | f is bounded both above and below by g asymptotically | and (Knuth version) | ||
On the order of | f is equal to g asymptotically | |||
Big Omega in complexity theory (Knuth) | f is bounded below by g asymptotically | |||
Small Omega | f dominates g asymptotically | |||
Big Omega in number theory (Hardy–Littlewood) | is not dominated by g asymptotically | Failed to parse (Conversion error. Server ("cli") reported: "SyntaxError: Expected "-", "[", "\\", "\\begin", "\\begin{", "]", "^", "_", "{", "}", [ \t\n\r], [%$], [().], [,:;?!'], [/|], [0-9], [><~], [\-+*=], or [a-zA-Z] but "ग" found.in 1:76"): {\displaystyle \limsup_{n \to \infty} \frac{\left|f(n)\right|}{g(n)} > 0 </गणित> |} सीमा परिभाषाएँ मानती हैं पर्याप्त रूप से बड़े के लिए गणित>जी(एन) > 0</गणित> गणित>एन</गणित>. तालिका को (आंशिक रूप से) इस अर्थ में सबसे छोटे से सबसे बड़े तक क्रमबद्ध किया गया है <math>o,O,\Theta,\sim, }
(नुथ का संस्करण) कार्यों पर अनुरूप हैं असली लाइन पर[27](हार्डी-लिटलवुड संस्करण हालाँकि, ऐसे किसी भी विवरण के अनुरूप नहीं है)।
कंप्यूटर विज्ञान बड़ा उपयोग करता है , बड़ी थीटा , थोड़ा , थोड़ा ओमेगा और नुथ का बड़ा ओमेगा संकेतन.[28] विश्लेषणात्मक संख्या सिद्धांत अधिकांशतः बड़े का उपयोग करता है , छोटा , हार्डी-लिटलवुड का बड़ा ओमेगा (+, − या ± सबस्क्रिप्ट के साथ या उसके बिना) और संकेतन.[22]छोटा ओमेगा विश्लेषण में अंकन का प्रयोग उतनी बार नहीं किया जाता है।[29]
कंप्यूटर विज्ञान में उपयोगअनौपचारिक रूप से, विशेष रूप से कंप्यूटर विज्ञान में, बड़े ओ नोटेशन का उपयोग अधिकांशतः एसिम्प्टोटिक ऊपरी और निचले सीमा # तंग सीमा का वर्णन करने के लिए कुछ अलग तरीके से किया जा सकता है, जहां बड़े थीटा Θ नोटेशन का उपयोग किसी दिए गए संदर्भ में तथ्यात्मक रूप से अधिक उपयुक्त हो सकता है।[citation needed] उदाहरण के लिए, किसी फलन T(n) = 73n पर विचार करते समय3+22एन2 + 58, निम्नलिखित में से सभी सामान्यतः स्वीकार्य हैं, किन्तु कड़ी सीमाएं (जैसे नीचे संख्या 2 और 3) सामान्यतः ढीली सीमाओं (जैसे नीचे संख्या 1) की तुलना में दृढ़ता से पसंद की जाती हैं।
समतुल्य अंग्रेजी कथन क्रमशः हैं:
इसलिए जबकि तीनों कथन सत्य हैं, प्रत्येक में उत्तरोत्तर अधिक जानकारी समाहित है। हालाँकि, कुछ क्षेत्रों में, बड़े ओ नोटेशन (उपरोक्त सूचियों में नंबर 2) का उपयोग बड़े थीटा नोटेशन (उपरोक्त सूचियों में आइटम नंबर 3) की तुलना में अधिक सामान्यतः किया जाएगा। उदाहरण के लिए, यदि टी (एन) इनपुट आकार एन के लिए नए विकसित एल्गोरिदम के चलने के समय का प्रतिनिधित्व करता है, तो एल्गोरिदम के आविष्कारक और उपयोगकर्ता ऊपरी एसिम्प्टोटिक बाउंड लगाने के इच्छुक हो सकते हैं कि इसे चलाने में कितना समय लगेगा। निचली स्पर्शोन्मुख सीमा के बारे में स्पष्ट कथन। अन्य संकेतनअपनी पुस्तक एल्गोरिदम का परिचय में, थॉमस एच. कॉर्मेन, चार्ल्स ई. लेइसर्सन, रोनाल्ड एल. रिवेस्ट और क्लिफोर्ड स्टीन ने फ़ंक्शंस के सेट पर विचार किया है जो संतुष्ट करता है उदाहरण के लिए, सही संकेतन में इस सेट को ओ(g) कहा जा सकता है, जहाँ [30]
लेखकों का कहना है कि सेट सदस्यता ऑपरेटर (∈) के बजाय सेट सदस्यता को दर्शाने के लिए समानता ऑपरेटर (=) का उपयोग नोटेशन का दुरुपयोग है, किन्तु ऐसा करने के फायदे हैं।[6] किसी समीकरण या असमानता के अंदर, एसिम्प्टोटिक नोटेशन का उपयोग सेट ओ (जी) में अज्ञात फलन के लिए होता है, जो निम्न-क्रम वाले शब्दों को समाप्त करता है, और समीकरणों में अनावश्यक अव्यवस्था को कम करने में मदद करता है, उदाहरण के लिए:[31]
बाचमैन-लैंडौ नोटेशन का विस्तारकंप्यूटर विज्ञान में कभी-कभी उपयोग किया जाने वाला अन्य संकेतन Õ (सॉफ्ट-ओ पढ़ें) है, जो पॉलीलॉगरिदमिक कारकों को छुपाता है। उपयोग में दो परिभाषाएँ हैं: कुछ लेखक f(n)=Õ(g(n)) को आशुलिपि के रूप में उपयोग करते हैं f(n) = O(g(n) logk n) कुछ k के लिए, जबकि अन्य इसे शॉर्टहैंड के रूप में उपयोग करते हैं f(n) = O(g(n) logk g(n)).[32] कब g(n) n में बहुपद है, कोई अंतर नहीं है; हालाँकि, बाद वाली परिभाषा किसी को यह कहने की अनुमति देती है, उदाहरण के लिए वह जबकि पूर्व परिभाषा इसकी अनुमति देती है किसी स्थिरांक k के लिए। कुछ लेखक ओ लिखते हैं*बाद वाली परिभाषा के समान उद्देश्य के लिए।[33] अनिवार्य रूप से, यह बड़ा ओ नोटेशन है, पॉलीलॉगरिदमिक फलन को अनदेखा कर रहा है क्योंकि एसिम्प्टोटिक विश्लेषण | कुछ अन्य सुपर-लघुगणकीय फलन के विकास-दर प्रभाव बड़े आकार के इनपुट पैरामीटर के लिए विकास-दर विस्फोट का संकेत देते हैं जो खराब रन-टाइम प्रदर्शन की भविष्यवाणी करने के लिए अधिक महत्वपूर्ण है लघुगणक-विकास कारक(ओं) द्वारा योगदान किए गए उत्तम-बिंदु प्रभावों की तुलना में। इस संकेतन का उपयोग अधिकांशतः विकास-दर के अन्दर होने वाली खामियों को दूर करने के लिए किया जाता है, जिन्हें वर्तमान मामलों के लिए बहुत कसकर बांधा गया है (लॉग के बाद से)kn सदैव o(n) होता हैε) किसी भी स्थिरांक k और किसी के लिए ε > 0). इसके अतिरिक्त एल-नोटेशन, के रूप में परिभाषित किया गया है उन कार्यों के लिए सुविधाजनक है जो समय जटिलता#बहुपद समय और समय जटिलता#घातीय समय के बीच हैं . सामान्यीकरण और संबंधित उपयोगकिसी भी मानक वेक्टर स्थान में मान लेने वाले कार्यों का सामान्यीकरण सीधा है (मानदंडों द्वारा निरपेक्ष मानों को प्रतिस्थापित करना), जहां एफ और जी को ही स्थान में अपने मान लेने की आवश्यकता नहीं है। किसी भी टोपोलॉजिकल समूह में मान लेने वाले कार्यों का सामान्यीकरण भी संभव है[citation needed]. सीमित प्रक्रिया x → xo मनमाना फ़िल्टर आधार, यानी निर्देशित नेट (गणित) एफ और जी को पेश करके भी सामान्यीकृत किया जा सकता है। ओ नोटेशन का उपयोग अधिक सामान्य स्थानों में यौगिक और भिन्नता को परिभाषित करने के लिए किया जा सकता है, और कार्यों की (स्पर्शोन्मुख) समतुल्यता को भी परिभाषित करने के लिए किया जा सकता है, जो कि तुल्यता संबंध है और संबंध f की तुलना में अधिक प्रतिबंधात्मक धारणा है, ऊपर से Θ(g) है। (यदि एफ और जी सकारात्मक वास्तविक मूल्य वाले फलन हैं तो यह लिम एफ/जी = 1 तक कम हो जाता है।) उदाहरण के लिए, 2x Θ(x) है, किन्तु 2x − x ओ(एक्स) नहीं है। इतिहास (बाचमन-लैंडौ, हार्डी, और विनोग्राडोव नोटेशन)प्रतीक ओ को पहली बार संख्या सिद्धांतकार पॉल बैचमैन ने 1894 में अपनी पुस्तक एनालिटिशे ज़हलेनथियोरी (विश्लेषणात्मक संख्या सिद्धांत) के दूसरे खंड में पेश किया था।[1] संख्या सिद्धांतकार एडमंड लैंडौ ने इसे अपनाया, और इस प्रकार 1909 में अंकन ओ को पेश करने के लिए प्रेरित हुए;[2] इसलिए दोनों को अब लैंडौ प्रतीक कहा जाता है। इन नोटेशनों का उपयोग 1950 के दशक के दौरान स्पर्शोन्मुख विश्लेषण के लिए अनुप्रयुक्त गणित में किया गया था।[34] प्रतीक (इस अर्थ में ओ का कोई मतलब नहीं है) 1914 में हार्डी और लिटिलवुड द्वारा पेश किया गया था।[19]हार्डी और लिटिलवुड ने भी 1916 में प्रतीकों की शुरुआत की (दाएं) और ( बाएं ),[20] आधुनिक प्रतीकों के अग्रदूत (एक छोटे से ओ से छोटा नहीं है) और (के छोटे से से बड़ा नहीं है). इस प्रकार ओमेगा प्रतीकों (उनके मूल अर्थ के साथ) को कभी-कभी लैंडौ प्रतीकों के रूप में भी जाना जाता है। यह संकेतन कम से कम 1950 के दशक से संख्या सिद्धांत में इसका सामान्यतः उपयोग किया जाने लगा।[35] 1970 के दशक में बिग ओ को डोनाल्ड नुथ द्वारा कंप्यूटर विज्ञान में लोकप्रिय बनाया गया, जिन्होंने संबंधित थीटा नोटेशन की शुरुआत की, और ओमेगा नोटेशन के लिए अलग परिभाषा प्रस्तावित की।[24] लैंडौ ने कभी भी बड़े थीटा और छोटे ओमेगा प्रतीकों का उपयोग नहीं किया। हार्डी के प्रतीक थे (आधुनिक ओ अंकन के संदर्भ में)
(चूँकि हार्डी ने कभी भी नोटेशन को परिभाषित या उपयोग नहीं किया , और न , जैसा कि कभी-कभी रिपोर्ट किया गया है)। हार्डी ने प्रतीकों का परिचय दिया और (साथ ही कुछ अन्य प्रतीकों) को उनके 1910 के ट्रैक्ट ऑर्डर्स ऑफ इन्फिनिटी में प्रकाशित किया गया था, और उनका उपयोग केवल तीन पत्रों (1910-1913) में किया गया था। अपने लगभग 400 शेष पत्रों और पुस्तकों में उन्होंने लगातार लैंडौ प्रतीकों ओ और ओ का उपयोग किया। हार्डी के नोटेशन का अब उपयोग नहीं किया जाता है। दूसरी ओर, 1930 के दशक में,[36] रूसी संख्या सिद्धांतकार इवान मतवेयेविच विनोग्रादोव ने अपना अंकन प्रस्तुत किया, जिसका उपयोग संख्या सिद्धांत के बजाय तेजी से किया जा रहा है अंकन. अपने पास और अधिकांशतः दोनों नोटेशन का उपयोग ही पेपर में किया जाता है। बिग-ओ मूल रूप से ऑर्डर ऑफ (ऑर्डनंग, बैचमैन 1894) को दर्शाता है, और इस प्रकार यह लैटिन अक्षर है। न तो बैचमैन और न ही लैंडौ ने कभी इसे ऑमिक्रॉन कहा। इस प्रतीक को बहुत बाद में (1976) नुथ ने बड़े ओमीक्रॉन के रूप में देखा,[24]संभवतः प्रतीक ओमेगा की उनकी परिभाषा के संदर्भ में। अंक 0 का प्रयोग नहीं किया जाना चाहिए. यह भी देखें
सन्दर्भ और नोट्स
अग्रिम पठन
बाहरी संबंधThe Wikibook Data Structures has a page on the topic of: Big-O Notation Wikiversity solved a MyOpenMath problem using Big-O Notation
|