बिग ओ अंकन: Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|Notation describing limiting behavior}} File:Big-O-notation.png|300px|thumb|बिग ओ नोटेशन का उदाहरण: <math>{\color{red...")
 
No edit summary
Line 3: Line 3:
{{Order-of-approx}}
{{Order-of-approx}}
{{DISPLAYTITLE:Big ''O'' notation}}
{{DISPLAYTITLE:Big ''O'' notation}}
बिग ''ओ'' नोटेशन एक गणितीय नोटेशन है जो किसी [[फ़ंक्शन (गणित)]] के [[स्पर्शोन्मुख विश्लेषण]] का वर्णन करता है जब [[किसी फ़ंक्शन का तर्क]] किसी विशेष मूल्य या अनंत की ओर जाता है। बिग ओ [[पॉल गुस्ताव हेनरिक बैचमैन]] द्वारा आविष्कृत #संबंधित एसिम्प्टोटिक नोटेशन का सदस्य है,<ref name=Bachmann />[[एडमंड लैंडौ]],<ref name=Landau />और अन्य, जिन्हें सामूहिक रूप से बैचमैन-लैंडौ संकेतन या एसिम्प्टोटिक संकेतन कहा जाता है। अक्षर O को बैचमैन द्वारा '':विक्ट:ऑर्डनंग#जर्मन'' के लिए चुना गया था, जिसका अर्थ [[सन्निकटन का क्रम]] है।
बिग ''ओ'' नोटेशन गणितीय नोटेशन है जो किसी [[फ़ंक्शन (गणित)]] के [[स्पर्शोन्मुख विश्लेषण]] का वर्णन करता है जब [[किसी फ़ंक्शन का तर्क]] किसी विशेष मूल्य या अनंत की ओर जाता है। बिग ओ [[पॉल गुस्ताव हेनरिक बैचमैन]] द्वारा आविष्कृत #संबंधित एसिम्प्टोटिक नोटेशन का सदस्य है,<ref name=Bachmann />[[एडमंड लैंडौ]],<ref name=Landau />और अन्य, जिन्हें सामूहिक रूप से बैचमैन-लैंडौ संकेतन या एसिम्प्टोटिक संकेतन कहा जाता है। अक्षर O को बैचमैन द्वारा '':विक्ट:ऑर्डनंग#जर्मन'' के लिए चुना गया था, जिसका अर्थ [[सन्निकटन का क्रम]] है।


[[कंप्यूटर विज्ञान]] में, बिग ओ नोटेशन का उपयोग [[कम्प्यूटेशनल जटिलता सिद्धांत]] के लिए किया जाता है, जिसके अनुसार इनपुट आकार बढ़ने के साथ उनके रन टाइम या स्पेस की आवश्यकताएं कैसे बढ़ती हैं।<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> [[विश्लेषणात्मक संख्या सिद्धांत]] में, बड़े ओ नोटेशन का उपयोग अक्सर अंकगणितीय फ़ंक्शन और बेहतर समझे जाने वाले सन्निकटन के बीच अंतर पर सीमा व्यक्त करने के लिए किया जाता है; इस तरह के अंतर का एक प्रसिद्ध उदाहरण [[अभाज्य संख्या प्रमेय]] में शेष पद है। इसी तरह के अनुमान प्रदान करने के लिए कई अन्य क्षेत्रों में भी बिग ओ नोटेशन का उपयोग किया जाता है।
[[कंप्यूटर विज्ञान]] में, बिग ओ नोटेशन का उपयोग [[कम्प्यूटेशनल जटिलता सिद्धांत]] के लिए किया जाता है, जिसके अनुसार इनपुट आकार बढ़ने के साथ उनके रन टाइम या स्पेस की आवश्यकताएं कैसे बढ़ती हैं।<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 नोटेशन के संदर्भ में किसी फ़ंक्शन का विवरण आमतौर पर केवल फ़ंक्शन की वृद्धि दर पर [[ऊपरी सीमा]] प्रदान करता है।
बिग ओ नोटेशन उनकी विकास दर के अनुसार कार्यों को चित्रित करता है: समान एसिम्प्टोटिक विकास दर वाले विभिन्न कार्यों को ही ओ नोटेशन का उपयोग करके दर्शाया जा सकता है। O अक्षर का उपयोग इसलिए किया जाता है क्योंकि किसी फ़ंक्शन की वृद्धि दर को फ़ंक्शन का क्रम भी कहा जाता है। बड़े O नोटेशन के संदर्भ में किसी फ़ंक्शन का विवरण आमतौर पर केवल फ़ंक्शन की वृद्धि दर पर [[ऊपरी सीमा]] प्रदान करता है।


बड़े O नोटेशन के साथ प्रतीकों का उपयोग करते हुए कई संबंधित नोटेशन जुड़े हुए हैं {{math|''o'', Ω, ''ω''}}, और {{math|Θ}}, स्पर्शोन्मुख विकास दर पर अन्य प्रकार की सीमाओं का वर्णन करने के लिए।
बड़े 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>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> का बड़ा O है <math>g(x)</math>यदि का निरपेक्ष मान <math>f(x)</math> का अधिकतम एक धनात्मक अचर गुणज है <math>g(x)</math> सभी पर्याप्त रूप से बड़े मूल्यों के लिए <math>x</math>. वह है, <math>f(x) =O\bigl(g(x)\bigr)</math> यदि कोई सकारात्मक वास्तविक संख्या मौजूद है <math>M</math> और एक वास्तविक संख्या <math>x_0</math> ऐसा है कि
और इसे पढ़ा जाता है<math>f(x)</math> का बड़ा O है <math>g(x)</math>यदि का निरपेक्ष मान <math>f(x)</math> का अधिकतम धनात्मक अचर गुणज है <math>g(x)</math> सभी पर्याप्त रूप से बड़े मूल्यों के लिए <math>x</math>. वह है, <math>f(x) =O\bigl(g(x)\bigr)</math> यदि कोई सकारात्मक वास्तविक संख्या मौजूद है <math>M</math> और वास्तविक संख्या <math>x_0</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>x</math> अनंत तक जाता है, उसे अघोषित छोड़ दिया जाता है, और कोई इसे और अधिक सरलता से लिखता है
Line 28: Line 28:
अगर
अगर
<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>\textstyle \limsup_{x\to a}</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>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>
Line 35: Line 35:
== उदाहरण ==
== उदाहरण ==
सामान्य उपयोग में {{math|''O''}} अंकन स्पर्शोन्मुख है, अर्थात यह बहुत बड़े को संदर्भित करता है {{mvar|x}}. इस सेटिंग में, सबसे तेज़ी से बढ़ने वाले शब्दों का योगदान अंततः अन्य को अप्रासंगिक बना देगा। परिणामस्वरूप, निम्नलिखित सरलीकरण नियम लागू किए जा सकते हैं:
सामान्य उपयोग में {{math|''O''}} अंकन स्पर्शोन्मुख है, अर्थात यह बहुत बड़े को संदर्भित करता है {{mvar|x}}. इस सेटिंग में, सबसे तेज़ी से बढ़ने वाले शब्दों का योगदान अंततः अन्य को अप्रासंगिक बना देगा। परिणामस्वरूप, निम्नलिखित सरलीकरण नियम लागू किए जा सकते हैं:
*अगर {{math|''f''(''x'')}} कई पदों का योग है, यदि सबसे अधिक वृद्धि दर वाला कोई एक है, तो उसे रखा जा सकता है, और अन्य सभी को छोड़ दिया जा सकता है।
*अगर {{math|''f''(''x'')}} कई पदों का योग है, यदि सबसे अधिक वृद्धि दर वाला कोई है, तो उसे रखा जा सकता है, और अन्य सभी को छोड़ दिया जा सकता है।
*अगर {{math|''f''(''x'')}} कई कारकों का एक उत्पाद है, किसी भी स्थिरांक (उत्पाद में ऐसे कारक जो निर्भर नहीं होते हैं {{mvar|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'')}} का एक बड़ा O है {{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|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'')}} का बड़ा O है {{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|1=''x''<sub>0</sub> = 1}} और {{math|1=''M'' = 13}}. फिर, सभी के लिए {{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 63: Line 63:


=== अनंत स्पर्शोन्मुख ===
=== अनंत स्पर्शोन्मुख ===
[[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)}}). इसके अतिरिक्त, चरणों की संख्या मशीन मॉडल के विवरण पर निर्भर करती है जिस पर एल्गोरिदम चलता है, लेकिन विभिन्न प्रकार की मशीनें आमतौर पर एल्गोरिदम को निष्पादित करने के लिए आवश्यक चरणों की संख्या में केवल एक स्थिर कारक से भिन्न होती हैं। तो बड़ा O नोटेशन जो बचता है उसे पकड़ लेता है: हम या तो लिखते हैं
[[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)}}). इसके अतिरिक्त, चरणों की संख्या मशीन मॉडल के विवरण पर निर्भर करती है जिस पर एल्गोरिदम चलता है, लेकिन विभिन्न प्रकार की मशीनें आमतौर पर एल्गोरिदम को निष्पादित करने के लिए आवश्यक चरणों की संख्या में केवल स्थिर कारक से भिन्न होती हैं। तो बड़ा O नोटेशन जो बचता है उसे पकड़ लेता है: हम या तो लिखते हैं
:<math>T(n)= O(n^2) </math>
:<math>T(n)= O(n^2) </math>
या
या
Line 71: Line 71:


=== अनंतिम स्पर्शोन्मुखता ===
=== अनंतिम स्पर्शोन्मुखता ===
बिग ओ का उपयोग टेलर श्रृंखला#अनुमान त्रुटि और गणितीय फ़ंक्शन के सन्निकटन में अभिसरण का वर्णन करने के लिए भी किया जा सकता है। सबसे महत्वपूर्ण शब्दों को स्पष्ट रूप से लिखा जाता है, और फिर सबसे कम महत्वपूर्ण शब्दों को एक बड़े ओ शब्द में संक्षेपित किया जाता है। उदाहरण के लिए, एक्सपोनेंशियल फ़ंक्शन#औपचारिक परिभाषा और इसकी दो अभिव्यक्तियों पर विचार करें जो कब मान्य हैं {{mvar|x}} छोटा है:
बिग ओ का उपयोग टेलर श्रृंखला#अनुमान त्रुटि और गणितीय फ़ंक्शन के सन्निकटन में अभिसरण का वर्णन करने के लिए भी किया जा सकता है। सबसे महत्वपूर्ण शब्दों को स्पष्ट रूप से लिखा जाता है, और फिर सबसे कम महत्वपूर्ण शब्दों को बड़े ओ शब्द में संक्षेपित किया जाता है। उदाहरण के लिए, एक्सपोनेंशियल फ़ंक्शन#औपचारिक परिभाषा और इसकी दो अभिव्यक्तियों पर विचार करें जो कब मान्य हैं {{mvar|x}} छोटा है:
:<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 80: Line 80:


== गुण ==
== गुण ==
यदि फ़ंक्शन {{math|''f''}} को अन्य कार्यों के एक सीमित योग के रूप में लिखा जा सकता है, फिर सबसे तेजी से बढ़ने वाला क्रम निर्धारित करता है {{math|''f''(''n'')}}. उदाहरण के लिए,
यदि फ़ंक्शन {{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''(''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}} लघुगणक के अंदर। सेट {{math|''O''(log ''n'')}} बिलकुल वैसा ही है {{math|''O''(log(''n''<sup>''c''</sup>))}}. लघुगणक केवल एक स्थिर कारक से भिन्न होते हैं (क्योंकि {{math|1=log(''n''<sup>''c''</sup>) = ''c'' log ''n''}}) और इस प्रकार बड़ा O नोटेशन इसे अनदेखा कर देता है। इसी प्रकार, विभिन्न स्थिर आधारों वाले लॉग समतुल्य होते हैं। दूसरी ओर, विभिन्न आधारों वाले घातांक एक ही क्रम के नहीं होते हैं। उदाहरण के लिए, {{math|2<sup>''n''</sup>}} और {{math|3<sup>''n''</sup>}} समान क्रम के नहीं हैं।
हम किसी भी शक्ति को नजरअंदाज कर सकते हैं {{mvar|n}} लघुगणक के अंदर। सेट {{math|''O''(log ''n'')}} बिलकुल वैसा ही है {{math|''O''(log(''n''<sup>''c''</sup>))}}. लघुगणक केवल स्थिर कारक से भिन्न होते हैं (क्योंकि {{math|1=log(''n''<sup>''c''</sup>) = ''c'' log ''n''}}) और इस प्रकार बड़ा O नोटेशन इसे अनदेखा कर देता है। इसी प्रकार, विभिन्न स्थिर आधारों वाले लॉग समतुल्य होते हैं। दूसरी ओर, विभिन्न आधारों वाले घातांक ही क्रम के नहीं होते हैं। उदाहरण के लिए, {{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>}}, और बड़ा O अंकन स्थिरांक को अनदेखा करता है {{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'')}} जब इनपुट संख्या के एक फ़ंक्शन के रूप में मापा जाता है {{mvar|x}}स्वयं, क्योंकि {{math|1=''n'' = ''O''(log ''x'')}}.
बदलती इकाइयाँ परिणामी एल्गोरिदम के क्रम को प्रभावित कर भी सकती हैं और नहीं भी। इकाइयों को बदलना, जहां कहीं भी दिखाई दे, उचित चर को स्थिरांक से गुणा करने के बराबर है। उदाहरण के लिए, यदि कोई एल्गोरिदम क्रम में चलता है {{math|''n''<sup>2</sup>}}, प्रतिस्थापित करना {{mvar|n}} द्वारा {{math|''cn''}} का अर्थ है कि एल्गोरिदम क्रम में चलता है {{math|''c''<sup>2</sup>''n''<sup>2</sup>}}, और बड़ा O अंकन स्थिरांक को अनदेखा करता है {{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'')}} जब इनपुट संख्या के फ़ंक्शन के रूप में मापा जाता है {{mvar|x}}स्वयं, क्योंकि {{math|1=''n'' = ''O''(log ''x'')}}.


=== उत्पाद ===
=== उत्पाद ===
Line 94: Line 94:


=== योग ===
=== योग ===
अगर <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> एक [[उत्तल शंकु]] है.
अगर <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>
होने देना {{mvar|k}} शून्येतर स्थिरांक हो। तब <math>O(|k| \cdot g) = O(g)</math>. दूसरे शब्दों में, यदि <math>f = O(g)</math>, तब  <math>k \cdot f = O(g). </math>




Line 114: Line 114:
(अर्थात।, <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>.
इस परिभाषा के तहत, उपसमुच्चय जिस पर फ़ंक्शन परिभाषित किया गया है, यूनीवेरिएट सेटिंग से मल्टीवेरिएट सेटिंग में कथनों को सामान्यीकृत करते समय महत्वपूर्ण होता है। उदाहरण के लिए, यदि <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>.


बहुभिन्नरूपी कार्यों के लिए बड़े O का यह एकमात्र सामान्यीकरण नहीं है, और व्यवहार में, परिभाषा के चुनाव में कुछ असंगतता है।<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>
बहुभिन्नरूपी कार्यों के लिए बड़े O का यह एकमात्र सामान्यीकरण नहीं है, और व्यवहार में, परिभाषा के चुनाव में कुछ असंगतता है।<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>
Line 122: Line 122:


=== बराबर का चिह्न ===
=== बराबर का चिह्न ===
कथन f(x) O(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>
कथन f(x) O(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) तत्व (गणित)#नोटेशन और शब्दावली O(g(x)) , या f(x) सेट O(g(x)) में है), O(g(x) के बारे में सोचते हुए )) सभी कार्यों का वर्ग h(x) इस प्रकार है कि |h(x)| ≤ कुछ सकारात्मक वास्तविक संख्या C के लिए Cg(x)।<ref name="Concrete Mathematics" />हालाँकि, बराबर चिह्न का उपयोग प्रथागत है।<ref name=deBruijn/><!-- p. 7: "Once this warning has been given, there is, however, not much harm in using the sign =, and we shall maintain it, for no other reason than that it is customary." --><ref name="Concrete Mathematics"/><!-- p. 446: "why don't we use ‘⊆’ instead of abusing the equals sign? There are four reasons. First, tradition..." -->
इन कारणों से, [[ संकेतन सेट करें ]] का उपयोग करना और लिखना अधिक सटीक होगा {{nobr|''f''(''x'') ∈ ''O''(''g''(''x''))}} (इस प्रकार पढ़ें: f(x) तत्व (गणित)#नोटेशन और शब्दावली O(g(x)) , या f(x) सेट O(g(x)) में है), O(g(x) के बारे में सोचते हुए )) सभी कार्यों का वर्ग h(x) इस प्रकार है कि |h(x)| ≤ कुछ सकारात्मक वास्तविक संख्या C के लिए Cg(x)।<ref name="Concrete Mathematics" />हालाँकि, बराबर चिह्न का उपयोग प्रथागत है।<ref name=deBruijn/><ref name="Concrete Mathematics"/>
 




=== अन्य अंकगणितीय ऑपरेटर ===
=== अन्य अंकगणितीय ऑपरेटर ===
बिग ओ नोटेशन का उपयोग अधिक जटिल समीकरणों में अन्य अंकगणितीय ऑपरेटरों के साथ संयोजन में भी किया जा सकता है। उदाहरण के लिए, {{nowrap|''h''(''x'') + ''O''(''f''(''x''))}} h(x) की वृद्धि के साथ-साथ एक भाग वाले कार्यों के संग्रह को दर्शाता है जिसकी वृद्धि f(x) तक सीमित है। इस प्रकार,
बिग ओ नोटेशन का उपयोग अधिक जटिल समीकरणों में अन्य अंकगणितीय ऑपरेटरों के साथ संयोजन में भी किया जा सकता है। उदाहरण के लिए, {{nowrap|''h''(''x'') + ''O''(''f''(''x''))}} h(x) की वृद्धि के साथ-साथ भाग वाले कार्यों के संग्रह को दर्शाता है जिसकी वृद्धि f(x) तक सीमित है। इस प्रकार,
:<math>g(x) = h(x) + O(f(x))</math>
:<math>g(x) = h(x) + O(f(x))</math>
के समान ही व्यक्त करता है
के समान ही व्यक्त करता है
Line 133: Line 134:




==== उदाहरण {{anchor|Example (Matters of notation)}} ====
==== उदाहरण ====
मान लीजिए कि n तत्वों के एक सेट पर काम करने के लिए एक [[कलन विधि]] विकसित किया जा रहा है। इसके डेवलपर्स एक फ़ंक्शन T(n) खोजने में रुचि रखते हैं जो यह व्यक्त करेगा कि इनपुट सेट में तत्वों की संख्या के संदर्भ में एल्गोरिदम को चलने में कितना समय लगेगा (समय के कुछ मनमाने माप में)। एल्गोरिदम सेट में तत्वों को क्रमबद्ध करने के लिए पहले एक सबरूटीन को कॉल करके काम करता है और फिर अपने स्वयं के संचालन करता है। इस प्रकार में O(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}} तेजी से बढ़ने वाले O(n) में समाहित हो गए हैं<sup>2</sup>). फिर, यह उपयोग = प्रतीक के कुछ औपचारिक अर्थों की उपेक्षा करता है, लेकिन यह एक प्रकार के सुविधाजनक प्लेसहोल्डर के रूप में बड़े ओ नोटेशन का उपयोग करने की अनुमति देता है।
मान लीजिए कि n तत्वों के सेट पर काम करने के लिए [[कलन विधि]] विकसित किया जा रहा है। इसके डेवलपर्स फ़ंक्शन T(n) खोजने में रुचि रखते हैं जो यह व्यक्त करेगा कि इनपुट सेट में तत्वों की संख्या के संदर्भ में एल्गोरिदम को चलने में कितना समय लगेगा (समय के कुछ मनमाने माप में)। एल्गोरिदम सेट में तत्वों को क्रमबद्ध करने के लिए पहले सबरूटीन को कॉल करके काम करता है और फिर अपने स्वयं के संचालन करता है। इस प्रकार में O(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}} तेजी से बढ़ने वाले O(n) में समाहित हो गए हैं<sup>2</sup>). फिर, यह उपयोग = प्रतीक के कुछ औपचारिक अर्थों की उपेक्षा करता है, लेकिन यह प्रकार के सुविधाजनक प्लेसहोल्डर के रूप में बड़े ओ नोटेशन का उपयोग करने की अनुमति देता है।


=== एकाधिक उपयोग ===
=== एकाधिक उपयोग ===
अधिक जटिल उपयोग में, O(·) एक समीकरण में विभिन्न स्थानों पर प्रकट हो सकता है, यहाँ तक कि प्रत्येक पक्ष पर कई बार भी। उदाहरण के लिए, निम्नलिखित सत्य हैं <math>n\to\infty</math>:
अधिक जटिल उपयोग में, O(·) समीकरण में विभिन्न स्थानों पर प्रकट हो सकता है, यहाँ तक कि प्रत्येक पक्ष पर कई बार भी। उदाहरण के लिए, निम्नलिखित सत्य हैं <math>n\to\infty</math>:
<math display="block">
<math display="block">
\begin{align}
\begin{align}
Line 144: Line 145:
n^{O(1)} & = O(e^n).
n^{O(1)} & = O(e^n).
\end{align}</math>
\end{align}</math>
ऐसे कथनों का अर्थ इस प्रकार है: किसी भी फ़ंक्शन के लिए जो बाईं ओर प्रत्येक O(·) को संतुष्ट करता है, दाईं ओर प्रत्येक O(·) को संतुष्ट करने वाले कुछ फ़ंक्शन हैं, जैसे कि इन सभी कार्यों को समीकरण में प्रतिस्थापित करना बनता है दो पक्ष बराबर. उदाहरण के लिए, उपरोक्त तीसरे समीकरण का अर्थ है: किसी भी फ़ंक्शन f(n) = O(1) के लिए, कुछ फ़ंक्शन g(n) = O(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>}}.
ऐसे कथनों का अर्थ इस प्रकार है: किसी भी फ़ंक्शन के लिए जो बाईं ओर प्रत्येक O(·) को संतुष्ट करता है, दाईं ओर प्रत्येक O(·) को संतुष्ट करने वाले कुछ फ़ंक्शन हैं, जैसे कि इन सभी कार्यों को समीकरण में प्रतिस्थापित करना बनता है दो पक्ष बराबर. उदाहरण के लिए, उपरोक्त तीसरे समीकरण का अर्थ है: किसी भी फ़ंक्शन f(n) = O(1) के लिए, कुछ फ़ंक्शन g(n) = O(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>}}.


=== टाइपसेटिंग ===
=== टाइपसेटिंग ===
Line 153: Line 154:
{{Further|Time complexity#Table of common time complexities}}
{{Further|Time complexity#Table of common time complexities}}


यहां उन फ़ंक्शंस के वर्गों की एक सूची दी गई है जो आमतौर पर एल्गोरिदम के चलने के समय का विश्लेषण करते समय सामने आते हैं। प्रत्येक मामले में, c एक धनात्मक स्थिरांक है और n बिना किसी सीमा के बढ़ता है। धीमी गति से बढ़ने वाले कार्यों को आम तौर पर पहले सूचीबद्ध किया जाता है।
यहां उन फ़ंक्शंस के वर्गों की सूची दी गई है जो आमतौर पर एल्गोरिदम के चलने के समय का विश्लेषण करते समय सामने आते हैं। प्रत्येक मामले में, c धनात्मक स्थिरांक है और n बिना किसी सीमा के बढ़ता है। धीमी गति से बढ़ने वाले कार्यों को आम तौर पर पहले सूचीबद्ध किया जाता है।


{| class="wikitable"
{| class="wikitable"
Line 189: Line 190:
|<math>O(n!)</math> || [[factorial]] || Solving the [[travelling salesman problem]] via brute-force search; generating all unrestricted permutations of a [[Partially ordered set|poset]]; finding the [[determinant]] with [[Laplace expansion]]; enumerating [[Bell number|all partitions of a set]]
|<math>O(n!)</math> || [[factorial]] || Solving the [[travelling salesman problem]] via brute-force search; generating all unrestricted permutations of a [[Partially ordered set|poset]]; finding the [[determinant]] with [[Laplace expansion]]; enumerating [[Bell number|all partitions of a set]]
|}
|}
कथन <math>f(n) = O(n!)</math> कभी-कभी कमजोर हो जाता है <math>f(n) = O\left(n^n\right)</math> स्पर्शोन्मुख जटिलता के लिए सरल सूत्र प्राप्त करना। किसी के लिए <math>k>0</math> और {{nowrap|<math>c > 0</math>,}} <math>O(n^c(\log n)^k)</math> का एक उपसमुच्चय है <math>O(n^{c+\varepsilon})</math> किसी के लिए {{nowrap|<math> \varepsilon > 0</math>,}} इसलिए इसे किसी बड़े क्रम वाला बहुपद माना जा सकता है।
कथन <math>f(n) = O(n!)</math> कभी-कभी कमजोर हो जाता है <math>f(n) = O\left(n^n\right)</math> स्पर्शोन्मुख जटिलता के लिए सरल सूत्र प्राप्त करना। किसी के लिए <math>k>0</math> और {{nowrap|<math>c > 0</math>,}} <math>O(n^c(\log n)^k)</math> का उपसमुच्चय है <math>O(n^{c+\varepsilon})</math> किसी के लिए {{nowrap|<math> \varepsilon > 0</math>,}} इसलिए इसे किसी बड़े क्रम वाला बहुपद माना जा सकता है।


== संबंधित स्पर्शोन्मुख संकेतन ==
== संबंधित स्पर्शोन्मुख संकेतन ==
कंप्यूटर विज्ञान में बिग ओ का व्यापक रूप से उपयोग किया जाता है। कुछ अन्य संबंधित नोटेशनों के साथ, यह बैचमैन-लैंडौ नोटेशन के परिवार का निर्माण करता है।{{citation needed|date=April 2021}}
कंप्यूटर विज्ञान में बिग ओ का व्यापक रूप से उपयोग किया जाता है। कुछ अन्य संबंधित नोटेशनों के साथ, यह बैचमैन-लैंडौ नोटेशन के परिवार का निर्माण करता है।


===लिटिल-ओ नोटेशन=== <!-- [[Little-o notation]] redirects here -->
===लिटिल-ओ नोटेशन===  
{{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 एक वास्तविक या जटिल मान वाला फ़ंक्शन है और g एक वास्तविक मान वाला फ़ंक्शन है, दोनों को सकारात्मक वास्तविक संख्याओं के कुछ असीमित उपसमुच्चय पर परिभाषित किया गया है, जैसे कि x के सभी बड़े पर्याप्त मानों के लिए g(x) सख्ती से सकारात्मक है। एक लिखता है
सहज रूप से, दावा{{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|ε}} वहां एक स्थिरांक मौजूद है <math>x_0</math> ऐसा है कि
यदि प्रत्येक सकारात्मक स्थिरांक के लिए {{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>2x^2 = O(x^2) </math> लेकिन {{nowrap|<math>2x^2 \neq o(x^2)</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>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>, और
: अगर {{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(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>
: अगर <math>f = o(g)</math> और <math> g = o(h)</math> तब <math>f = o(h).</math>




=== बिग ओमेगा संकेतन ===
=== बिग ओमेगा संकेतन ===
<!-- This section is linked from redirects. Please update those links when renaming the section. -->
 
एक अन्य स्पर्शोन्मुख संकेतन है <math>\Omega</math>, बिग ओमेगा पढ़ें।<ref>{{Cite book|url=https://www.worldcat.org/oclc/676697295|title=एल्गोरिदम का परिचय|date=2009|publisher=MIT Press|vauthors=Cormen TH, Leiserson CE, Rivest RL, Stein C|isbn=978-0-262-27083-0|edition=3rd|location=Cambridge, Mass.|oclc=676697295|page=48}}</ref> कथन की दो व्यापक और असंगत परिभाषाएँ हैं
एक अन्य स्पर्शोन्मुख संकेतन है <math>\Omega</math>, बिग ओमेगा पढ़ें।<ref>{{Cite book|url=https://www.worldcat.org/oclc/676697295|title=एल्गोरिदम का परिचय|date=2009|publisher=MIT Press|vauthors=Cormen TH, Leiserson CE, Rivest RL, Stein C|isbn=978-0-262-27083-0|edition=3rd|location=Cambridge, Mass.|oclc=676697295|page=48}}</ref> कथन की दो व्यापक और असंगत परिभाषाएँ हैं


Line 240: Line 241:


===== सरल उदाहरण =====
===== सरल उदाहरण =====
{{unreferenced section|date=April 2021}}
अपने पास
अपने पास


Line 259: Line 259:


==== नथ परिभाषा ====
==== नथ परिभाषा ====
1976 में डोनाल्ड नथ ने अपने उपयोग को उचित ठहराने के लिए एक पेपर प्रकाशित किया <math>\Omega</math>-एक मजबूत संपत्ति का वर्णन करने के लिए प्रतीक।<ref name="knuth"/>नुथ ने लिखा: कंप्यूटर विज्ञान में अब तक मैंने जितने भी अनुप्रयोग देखे हैं, उनके लिए एक मजबूत आवश्यकता... कहीं अधिक उपयुक्त है। उन्होंने परिभाषित किया
1976 में डोनाल्ड नथ ने अपने उपयोग को उचित ठहराने के लिए पेपर प्रकाशित किया <math>\Omega</math>-एक मजबूत संपत्ति का वर्णन करने के लिए प्रतीक।<ref name="knuth"/>नुथ ने लिखा: कंप्यूटर विज्ञान में अब तक मैंने जितने भी अनुप्रयोग देखे हैं, उनके लिए मजबूत आवश्यकता... कहीं अधिक उपयुक्त है। उन्होंने परिभाषित किया


:<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>
Line 333: Line 333:
#T(n) बिना किसी लक्षण के n से अधिक तेजी से बढ़ता है<sup>3</sup>
#T(n) बिना किसी लक्षण के n से अधिक तेजी से बढ़ता है<sup>3</sup>
#T(n) n जितनी तेजी से लक्षणहीन रूप से बढ़ता है<sup>3</sup>.
#T(n) n जितनी तेजी से लक्षणहीन रूप से बढ़ता है<sup>3</sup>.
इसलिए जबकि तीनों कथन सत्य हैं, प्रत्येक में उत्तरोत्तर अधिक जानकारी समाहित है। हालाँकि, कुछ क्षेत्रों में, बड़े ओ नोटेशन (उपरोक्त सूचियों में नंबर 2) का उपयोग बड़े थीटा नोटेशन (उपरोक्त सूचियों में आइटम नंबर 3) की तुलना में अधिक सामान्यतः किया जाएगा। उदाहरण के लिए, यदि टी (एन) इनपुट आकार एन के लिए एक नए विकसित एल्गोरिदम के चलने के समय का प्रतिनिधित्व करता है, तो एल्गोरिदम के आविष्कारक और उपयोगकर्ता ऊपरी एसिम्प्टोटिक बाउंड लगाने के इच्छुक हो सकते हैं कि इसे चलाने में कितना समय लगेगा। निचली स्पर्शोन्मुख सीमा के बारे में स्पष्ट कथन।
इसलिए जबकि तीनों कथन सत्य हैं, प्रत्येक में उत्तरोत्तर अधिक जानकारी समाहित है। हालाँकि, कुछ क्षेत्रों में, बड़े ओ नोटेशन (उपरोक्त सूचियों में नंबर 2) का उपयोग बड़े थीटा नोटेशन (उपरोक्त सूचियों में आइटम नंबर 3) की तुलना में अधिक सामान्यतः किया जाएगा। उदाहरण के लिए, यदि टी (एन) इनपुट आकार एन के लिए नए विकसित एल्गोरिदम के चलने के समय का प्रतिनिधित्व करता है, तो एल्गोरिदम के आविष्कारक और उपयोगकर्ता ऊपरी एसिम्प्टोटिक बाउंड लगाने के इच्छुक हो सकते हैं कि इसे चलाने में कितना समय लगेगा। निचली स्पर्शोन्मुख सीमा के बारे में स्पष्ट कथन।


=== अन्य संकेतन ===
=== अन्य संकेतन ===
Line 339: Line 339:


:<math> f(n) = O(g(n))\quad(n\to\infty)~.</math>
:<math> f(n) = O(g(n))\quad(n\to\infty)~.</math>
उदाहरण के लिए, एक सही संकेतन में इस सेट को O(g) कहा जा सकता है, जहाँ
उदाहरण के लिए, सही संकेतन में इस सेट को O(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>
लेखकों का कहना है कि सेट सदस्यता ऑपरेटर (∈) के बजाय सेट सदस्यता को दर्शाने के लिए समानता ऑपरेटर (=) का उपयोग नोटेशन का दुरुपयोग है, लेकिन ऐसा करने के फायदे हैं।<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&ndash;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}}).
कंप्यूटर विज्ञान में कभी-कभी उपयोग किया जाने वाला अन्य संकेतन Õ (सॉफ्ट-ओ पढ़ें) है, जो पॉलीलॉगरिदमिक कारकों को छुपाता है। उपयोग में दो परिभाषाएँ हैं: कुछ लेखक 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&ndash;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}}).


इसके अलावा एल-नोटेशन, के रूप में परिभाषित किया गया है
इसके अलावा एल-नोटेशन, के रूप में परिभाषित किया गया है
Line 354: Line 354:


== सामान्यीकरण और संबंधित उपयोग ==
== सामान्यीकरण और संबंधित उपयोग ==
किसी भी मानक वेक्टर स्थान में मान लेने वाले कार्यों का सामान्यीकरण सीधा है (मानदंडों द्वारा निरपेक्ष मानों को प्रतिस्थापित करना), जहां एफ और जी को एक ही स्थान में अपने मान लेने की आवश्यकता नहीं है। किसी भी [[टोपोलॉजिकल समूह]] में मान लेने वाले कार्यों का सामान्यीकरण भी संभव है{{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) है। (यदि एफ और जी सकारात्मक वास्तविक मूल्य वाले फ़ंक्शन हैं तो यह लिम एफ/जी = 1 तक कम हो जाता है।) उदाहरण के लिए, 2x Θ(x) है, लेकिन {{nowrap|1=2''x'' − ''x''}} ओ(एक्स) नहीं है।
जो कि तुल्यता संबंध है और संबंध f की तुलना में अधिक प्रतिबंधात्मक धारणा है, ऊपर से Θ(g) है। (यदि एफ और जी सकारात्मक वास्तविक मूल्य वाले फ़ंक्शन हैं तो यह लिम एफ/जी = 1 तक कम हो जाता है।) उदाहरण के लिए, 2x Θ(x) है, लेकिन {{nowrap|1=2''x'' − ''x''}} ओ(एक्स) नहीं है।


== इतिहास (बाचमन-लैंडौ, हार्डी, और विनोग्राडोव नोटेशन) ==
== इतिहास (बाचमन-लैंडौ, हार्डी, और विनोग्राडोव नोटेशन) ==


प्रतीक O को पहली बार संख्या सिद्धांतकार [[पॉल बैचमैन]] ने 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>
प्रतीक O को पहली बार संख्या सिद्धांतकार [[पॉल बैचमैन]] ने 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 के दशक से संख्या सिद्धांत में इसका आमतौर पर उपयोग किया जाने लगा।<ref name="titchmarsh">E. C. Titchmarsh, The Theory of the Riemann Zeta-Function (Oxford; Clarendon Press, 1951)</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 के दशक से संख्या सिद्धांत में इसका आमतौर पर उपयोग किया जाने लगा।<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 374: Line 374:
हार्डी के नोटेशन का अब उपयोग नहीं किया जाता है। दूसरी ओर, 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 418: Line 418:
[[Category: Machine Translated Page]]
[[Category: Machine Translated Page]]
[[Category:Created On 23/06/2023]]
[[Category:Created On 23/06/2023]]
|}

Revision as of 14:41, 1 July 2023

Error creating thumbnail:
बिग ओ नोटेशन का उदाहरण: जैसा कि वहां मौजूद है (जैसे, ) और (जैसे,) ऐसा है कि जब कभी भी .

बिग नोटेशन गणितीय नोटेशन है जो किसी फ़ंक्शन (गणित) के स्पर्शोन्मुख विश्लेषण का वर्णन करता है जब किसी फ़ंक्शन का तर्क किसी विशेष मूल्य या अनंत की ओर जाता है। बिग ओ पॉल गुस्ताव हेनरिक बैचमैन द्वारा आविष्कृत #संबंधित एसिम्प्टोटिक नोटेशन का सदस्य है,[1]एडमंड लैंडौ,[2]और अन्य, जिन्हें सामूहिक रूप से बैचमैन-लैंडौ संकेतन या एसिम्प्टोटिक संकेतन कहा जाता है। अक्षर O को बैचमैन द्वारा :विक्ट:ऑर्डनंग#जर्मन के लिए चुना गया था, जिसका अर्थ सन्निकटन का क्रम है।

कंप्यूटर विज्ञान में, बिग ओ नोटेशन का उपयोग कम्प्यूटेशनल जटिलता सिद्धांत के लिए किया जाता है, जिसके अनुसार इनपुट आकार बढ़ने के साथ उनके रन टाइम या स्पेस की आवश्यकताएं कैसे बढ़ती हैं।[3] विश्लेषणात्मक संख्या सिद्धांत में, बड़े ओ नोटेशन का उपयोग अक्सर अंकगणितीय फ़ंक्शन और बेहतर समझे जाने वाले सन्निकटन के बीच अंतर पर सीमा व्यक्त करने के लिए किया जाता है; इस तरह के अंतर का प्रसिद्ध उदाहरण अभाज्य संख्या प्रमेय में शेष पद है। इसी तरह के अनुमान प्रदान करने के लिए कई अन्य क्षेत्रों में भी बिग ओ नोटेशन का उपयोग किया जाता है।

बिग ओ नोटेशन उनकी विकास दर के अनुसार कार्यों को चित्रित करता है: समान एसिम्प्टोटिक विकास दर वाले विभिन्न कार्यों को ही ओ नोटेशन का उपयोग करके दर्शाया जा सकता है। O अक्षर का उपयोग इसलिए किया जाता है क्योंकि किसी फ़ंक्शन की वृद्धि दर को फ़ंक्शन का क्रम भी कहा जाता है। बड़े O नोटेशन के संदर्भ में किसी फ़ंक्शन का विवरण आमतौर पर केवल फ़ंक्शन की वृद्धि दर पर ऊपरी सीमा प्रदान करता है।

बड़े 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) का बड़ा O है x4. गणितीय रूप से हम लिख सकते हैं f(x) = O(x4). कोई औपचारिक परिभाषा का उपयोग करके इस गणना की पुष्टि कर सकता है: चलो f(x) = 6x4 − 2x3 + 5 और g(x) = x4. उपरोक्त से #औपचारिक परिभाषा को लागू करते हुए कथन कि f(x) = O(x4) इसके विस्तार के बराबर है,

किसी वास्तविक संख्या के कुछ उपयुक्त विकल्प के लिए x0 और सकारात्मक वास्तविक संख्या M और सभी के लिए x > x0. इसे साबित करने के लिए आइए x0 = 1 और M = 13. फिर, सभी के लिए x > x0:
इसलिए


उपयोग

बिग ओ नोटेशन के अनुप्रयोग के दो मुख्य क्षेत्र हैं:

  • गणित में, इसका उपयोग आमतौर पर बिग ओ नोटेशन#इनफिनिटेसिमल एसिम्प्टोटिक्स का वर्णन करने के लिए किया जाता है, विशेष रूप से काटे गए टेलर श्रृंखला या एसिम्प्टोटिक विस्तार के मामले में
  • कंप्यूटर विज्ञान में, यह बिग ओ नोटेशन#अनंत स्पर्शोन्मुख विस्तार उपयोगी है

दोनों अनुप्रयोगों में, function g(x) के भीतर प्रदर्शित हो रहा है O(·) को आम तौर पर यथासंभव सरल चुना जाता है, निरंतर कारकों और निचले क्रम की शर्तों को छोड़ दिया जाता है।

इस नोटेशन के दो औपचारिक रूप से करीब, लेकिन स्पष्ट रूप से भिन्न उपयोग हैं:[citation needed]

  • अनंत स्पर्शोन्मुखता
  • बहुत छोता एसिम्प्टोटिक्स।

यह अंतर केवल अनुप्रयोग में है और सिद्धांत रूप में नहीं, हालांकि - बड़े O के लिए औपचारिक परिभाषा दोनों मामलों के लिए समान है, केवल फ़ंक्शन तर्क के लिए अलग-अलग सीमाएं हैं।Template:Or inline

अनंत स्पर्शोन्मुख

File:Comparison computational complexity.svg
एल्गोरिदम के विश्लेषण में आमतौर पर उपयोग किए जाने वाले फ़ंक्शन के ग्राफ़, संचालन की संख्या दर्शाते हैं N बनाम इनपुट आकार nप्रत्येक फ़ंक्शन के लिए

दक्षता के लिए एल्गोरिदम का विश्लेषण करते समय बिग ओ नोटेशन उपयोगी होता है। उदाहरण के लिए, आकार की समस्या को पूरा करने में लगने वाला समय (या चरणों की संख्या)। 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)). इसके अतिरिक्त, चरणों की संख्या मशीन मॉडल के विवरण पर निर्भर करती है जिस पर एल्गोरिदम चलता है, लेकिन विभिन्न प्रकार की मशीनें आमतौर पर एल्गोरिदम को निष्पादित करने के लिए आवश्यक चरणों की संख्या में केवल स्थिर कारक से भिन्न होती हैं। तो बड़ा O नोटेशन जो बचता है उसे पकड़ लेता है: हम या तो लिखते हैं

या

और कहें कि एल्गोरिदम का क्रम है n2 समय जटिलता. संकेत= का अभिप्राय अपने सामान्य गणितीय अर्थ में बराबर को व्यक्त करना नहीं है, बल्कि अधिक बोलचाल की भाषा है, इसलिए दूसरी अभिव्यक्ति को कभी-कभी अधिक सटीक माना जाता है (नीचे #बराबर चिह्न चर्चा देखें) जबकि पहली को कुछ लोगों द्वारा दुरुपयोग माना जाता है अंकन का.[6]


अनंतिम स्पर्शोन्मुखता

बिग ओ का उपयोग टेलर श्रृंखला#अनुमान त्रुटि और गणितीय फ़ंक्शन के सन्निकटन में अभिसरण का वर्णन करने के लिए भी किया जा सकता है। सबसे महत्वपूर्ण शब्दों को स्पष्ट रूप से लिखा जाता है, और फिर सबसे कम महत्वपूर्ण शब्दों को बड़े ओ शब्द में संक्षेपित किया जाता है। उदाहरण के लिए, एक्सपोनेंशियल फ़ंक्शन#औपचारिक परिभाषा और इसकी दो अभिव्यक्तियों पर विचार करें जो कब मान्य हैं x छोटा है:

दूसरा व्यंजक (O(x वाला)।3)) का अर्थ है त्रुटि e का निरपेक्ष मानx − (1 + x + x2/2) अधिक से अधिक कुछ स्थिर समय है |एक्स3| जब 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) और इस प्रकार बड़ा O नोटेशन इसे अनदेखा कर देता है। इसी प्रकार, विभिन्न स्थिर आधारों वाले लॉग समतुल्य होते हैं। दूसरी ओर, विभिन्न आधारों वाले घातांक ही क्रम के नहीं होते हैं। उदाहरण के लिए, 2n और 3n समान क्रम के नहीं हैं।

बदलती इकाइयाँ परिणामी एल्गोरिदम के क्रम को प्रभावित कर भी सकती हैं और नहीं भी। इकाइयों को बदलना, जहां कहीं भी दिखाई दे, उचित चर को स्थिरांक से गुणा करने के बराबर है। उदाहरण के लिए, यदि कोई एल्गोरिदम क्रम में चलता है n2, प्रतिस्थापित करना n द्वारा cn का अर्थ है कि एल्गोरिदम क्रम में चलता है c2n2, और बड़ा O अंकन स्थिरांक को अनदेखा करता है c2. इसे ऐसे लिखा जा सकता है c2n2 = O(n2). यदि, तथापि, एल्गोरिथ्म के क्रम में चलता है 2n, प्रतिस्थापित करना n साथ cn देता है 2cn = (2c)n. यह इसके बराबर नहीं है 2n सामान्य रूप में। चर बदलने से परिणामी एल्गोरिदम का क्रम भी प्रभावित हो सकता है। उदाहरण के लिए, यदि किसी एल्गोरिदम का रन टाइम है O(n) जब संख्या के संदर्भ में मापा जाता है n किसी इनपुट संख्या के अंकों का x, तो इसका रन टाइम है O(log x) जब इनपुट संख्या के फ़ंक्शन के रूप में मापा जाता है xस्वयं, क्योंकि n = O(log x).

उत्पाद


योग

अगर और तब . यह इस प्रकार है कि यदि और तब . दूसरे शब्दों में, यह दूसरा कथन यही कहता है उत्तल शंकु है.

एक स्थिरांक से गुणा

होने देना k शून्येतर स्थिरांक हो। तब . दूसरे शब्दों में, यदि , तब


एकाधिक चर

बिग ओ (और छोटे ओ, Ω, आदि) का उपयोग कई वेरिएबल्स के साथ भी किया जा सकता है। कई चरों के लिए बड़े O को औपचारिक रूप से परिभाषित करने के लिए, मान लीजिए और के कुछ उपसमुच्चय पर परिभाषित दो कार्य हैं . हम कहते हैं

यदि और केवल यदि स्थिरांक मौजूद हैं और ऐसा है कि सभी के लिए साथ कुछ के लिए [7] समान रूप से, शर्त यह है कि कुछ के लिए लिखा जा सकता है , कहाँ चेबीशेव मानदंड को दर्शाता है। उदाहरण के लिए, कथन

दावा करता है कि ऐसे स्थिरांक C और M मौजूद हैं

जब भी या तो या धारण करता है. यह परिभाषा सभी निर्देशांकों की अनुमति देती है अनंत तक बढ़ना. विशेष रूप से, कथन

(अर्थात।, ) से काफी अलग है

(अर्थात।, ).

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

बहुभिन्नरूपी कार्यों के लिए बड़े O का यह एकमात्र सामान्यीकरण नहीं है, और व्यवहार में, परिभाषा के चुनाव में कुछ असंगतता है।[8]


अंकन के मामले

बराबर का चिह्न

कथन f(x) O(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) तत्व (गणित)#नोटेशन और शब्दावली O(g(x)) , या f(x) सेट O(g(x)) में है), O(g(x) के बारे में सोचते हुए )) सभी कार्यों का वर्ग h(x) इस प्रकार है कि |h(x)| ≤ कुछ सकारात्मक वास्तविक संख्या C के लिए Cg(x)।[10]हालाँकि, बराबर चिह्न का उपयोग प्रथागत है।[9][10]


अन्य अंकगणितीय ऑपरेटर

बिग ओ नोटेशन का उपयोग अधिक जटिल समीकरणों में अन्य अंकगणितीय ऑपरेटरों के साथ संयोजन में भी किया जा सकता है। उदाहरण के लिए, h(x) + O(f(x)) h(x) की वृद्धि के साथ-साथ भाग वाले कार्यों के संग्रह को दर्शाता है जिसकी वृद्धि f(x) तक सीमित है। इस प्रकार,

के समान ही व्यक्त करता है


उदाहरण

मान लीजिए कि n तत्वों के सेट पर काम करने के लिए कलन विधि विकसित किया जा रहा है। इसके डेवलपर्स फ़ंक्शन T(n) खोजने में रुचि रखते हैं जो यह व्यक्त करेगा कि इनपुट सेट में तत्वों की संख्या के संदर्भ में एल्गोरिदम को चलने में कितना समय लगेगा (समय के कुछ मनमाने माप में)। एल्गोरिदम सेट में तत्वों को क्रमबद्ध करने के लिए पहले सबरूटीन को कॉल करके काम करता है और फिर अपने स्वयं के संचालन करता है। इस प्रकार में O(n) की ज्ञात समय जटिलता है2), और सबरूटीन चलने के बाद एल्गोरिदम को अतिरिक्त लेना होगा 55n3 + 2n + 10 समाप्त होने से पहले के चरण। इस प्रकार एल्गोरिथ्म की समग्र समय जटिलता को इस प्रकार व्यक्त किया जा सकता है T(n) = 55n3 + O(n2). यहाँ शर्तें 2n + 10 तेजी से बढ़ने वाले O(n) में समाहित हो गए हैं2). फिर, यह उपयोग = प्रतीक के कुछ औपचारिक अर्थों की उपेक्षा करता है, लेकिन यह प्रकार के सुविधाजनक प्लेसहोल्डर के रूप में बड़े ओ नोटेशन का उपयोग करने की अनुमति देता है।

एकाधिक उपयोग

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

ऐसे कथनों का अर्थ इस प्रकार है: किसी भी फ़ंक्शन के लिए जो बाईं ओर प्रत्येक O(·) को संतुष्ट करता है, दाईं ओर प्रत्येक O(·) को संतुष्ट करने वाले कुछ फ़ंक्शन हैं, जैसे कि इन सभी कार्यों को समीकरण में प्रतिस्थापित करना बनता है दो पक्ष बराबर. उदाहरण के लिए, उपरोक्त तीसरे समीकरण का अर्थ है: किसी भी फ़ंक्शन f(n) = O(1) के लिए, कुछ फ़ंक्शन g(n) = O(e) हैn) ऐसा कि nf(n) = g(n). उपरोक्त सेट नोटेशन के संदर्भ में, अर्थ यह है कि बाईं ओर द्वारा दर्शाए गए कार्यों का वर्ग दाईं ओर द्वारा दर्शाए गए कार्यों के वर्ग का उपसमूह है। इस प्रयोग में = औपचारिक प्रतीक है जो = के सामान्य प्रयोग के विपरीत सममित संबंध नहीं है। इस प्रकार उदाहरण के लिए nO(1) = O(en) गलत बयान का संकेत नहीं देता O(en) = nO(1).

टाइपसेटिंग

बिग O को इटैलिकाइज़्ड अपरकेस O के रूप में टाइप किया गया है, जैसा कि निम्नलिखित उदाहरण में है: .[12][13] TeX में, यह केवल गणित मोड के अंदर O टाइप करके निर्मित होता है। ग्रीक-नामांकित बैचमैन-लैंडौ नोटेशन के विपरीत, इसे किसी विशेष प्रतीक की आवश्यकता नहीं है। फिर भी, कुछ लेखक सुलेख संस्करण का उपयोग करते हैं बजाय।[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) सख्ती से सकारात्मक है। लिखता है

यदि प्रत्येक सकारात्मक स्थिरांक के लिए ε वहां स्थिरांक मौजूद है ऐसा है कि

[16]

उदाहरण के लिए, किसी के पास है

और दोनों जैसे
  1. औपचारिक परिभाषा|बिग-ओ संकेतन की परिभाषा और छोटे-ओ की परिभाषा के बीच अंतर यह है कि जहां पूर्व को कम से कम स्थिरांक एम के लिए सत्य होना चाहिए, वहीं बाद वाले को प्रत्येक सकारात्मक स्थिरांक के लिए मान्य होना चाहिए ε, हालाँकि छोटा।[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 O; Small Oh f is dominated by g asymptotically
Big O; 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) की तुलना में दृढ़ता से पसंद की जाती हैं।

  1. T(n) = O(n100)
  2. T(n) = O(n3)
  3. T(n) = Θ(n3)

समतुल्य अंग्रेजी कथन क्रमशः हैं:

  1. T(n) बिना किसी लक्षण के n से अधिक तेजी से बढ़ता है100
  2. T(n) बिना किसी लक्षण के n से अधिक तेजी से बढ़ता है3
  3. T(n) n जितनी तेजी से लक्षणहीन रूप से बढ़ता है3.

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

अन्य संकेतन

अपनी पुस्तक एल्गोरिदम का परिचय में, थॉमस एच. कॉर्मेन, चार्ल्स ई. लेइसर्सन, रोनाल्ड एल. रिवेस्ट और क्लिफोर्ड स्टीन ने फ़ंक्शंस के सेट पर विचार किया है जो संतुष्ट करता है

उदाहरण के लिए, सही संकेतन में इस सेट को O(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) है, लेकिन 2xx ओ(एक्स) नहीं है।

इतिहास (बाचमन-लैंडौ, हार्डी, और विनोग्राडोव नोटेशन)

प्रतीक O को पहली बार संख्या सिद्धांतकार पॉल बैचमैन ने 1894 में अपनी पुस्तक एनालिटिशे ज़हलेनथियोरी (विश्लेषणात्मक संख्या सिद्धांत) के दूसरे खंड में पेश किया था।[1] संख्या सिद्धांतकार एडमंड लैंडौ ने इसे अपनाया, और इस प्रकार 1909 में अंकन ओ को पेश करने के लिए प्रेरित हुए;[2] इसलिए दोनों को अब लैंडौ प्रतीक कहा जाता है। इन नोटेशनों का उपयोग 1950 के दशक के दौरान स्पर्शोन्मुख विश्लेषण के लिए अनुप्रयुक्त गणित में किया गया था।[34] प्रतीक (इस अर्थ में ओ का कोई मतलब नहीं है) 1914 में हार्डी और लिटिलवुड द्वारा पेश किया गया था।[19]हार्डी और लिटिलवुड ने भी 1916 में प्रतीकों की शुरुआत की (दाएं) और ( बाएं ),[20] आधुनिक प्रतीकों के अग्रदूत (एक छोटे से ओ से छोटा नहीं है) और (के छोटे से से बड़ा नहीं है). इस प्रकार ओमेगा प्रतीकों (उनके मूल अर्थ के साथ) को कभी-कभी लैंडौ प्रतीकों के रूप में भी जाना जाता है। यह संकेतन कम से कम 1950 के दशक से संख्या सिद्धांत में इसका आमतौर पर उपयोग किया जाने लगा।[35] 1970 के दशक में बिग ओ को डोनाल्ड नुथ द्वारा कंप्यूटर विज्ञान में लोकप्रिय बनाया गया, जिन्होंने संबंधित थीटा नोटेशन की शुरुआत की, और ओमेगा नोटेशन के लिए अलग परिभाषा प्रस्तावित की।[24]

लैंडौ ने कभी भी बड़े थीटा और छोटे ओमेगा प्रतीकों का उपयोग नहीं किया।

हार्डी के प्रतीक थे (आधुनिक ओ अंकन के संदर्भ में)

और

(हालांकि हार्डी ने कभी भी नोटेशन को परिभाषित या उपयोग नहीं किया , और न , जैसा कि कभी-कभी रिपोर्ट किया गया है)। हार्डी ने प्रतीकों का परिचय दिया और (साथ ही कुछ अन्य प्रतीकों) को उनके 1910 के ट्रैक्ट ऑर्डर्स ऑफ इन्फिनिटी में प्रकाशित किया गया था, और उनका उपयोग केवल तीन पत्रों (1910-1913) में किया गया था। अपने लगभग 400 शेष पत्रों और पुस्तकों में उन्होंने लगातार लैंडौ प्रतीकों ओ और ओ का उपयोग किया।

हार्डी के नोटेशन का अब उपयोग नहीं किया जाता है। दूसरी ओर, 1930 के दशक में,[36] रूसी संख्या सिद्धांतकार इवान मतवेयेविच विनोग्रादोव ने अपना अंकन प्रस्तुत किया, जिसका उपयोग संख्या सिद्धांत के बजाय तेजी से किया जा रहा है अंकन. अपने पास

और अक्सर दोनों नोटेशन का उपयोग ही पेपर में किया जाता है।

बिग-ओ मूल रूप से ऑर्डर ऑफ (ऑर्डनंग, बैचमैन 1894) को दर्शाता है, और इस प्रकार यह लैटिन अक्षर है। न तो बैचमैन और न ही लैंडौ ने कभी इसे ऑमिक्रॉन कहा। इस प्रतीक को बहुत बाद में (1976) नुथ ने बड़े ओमीक्रॉन के रूप में देखा,[24]संभवतः प्रतीक ओमेगा की उनकी परिभाषा के संदर्भ में। अंक 0 का प्रयोग नहीं किया जाना चाहिए.

यह भी देखें

सन्दर्भ और नोट्स

  1. 1.0 1.1 Bachmann, Paul (1894). विश्लेषणात्मक संख्या सिद्धांत [Analytic Number Theory] (in Deutsch). Vol. 2. Leipzig: Teubner.
  2. 2.0 2.1 Landau, Edmund (1909). अभाज्य संख्याओं के वितरण के अध्ययन का मैनुअल [Handbook on the theory of the distribution of the primes] (in Deutsch). Leipzig: B. G. Teubner. p. 883.
  3. Mohr, Austin. "जटिलता सिद्धांत और संगणना के सिद्धांत में क्वांटम कंप्यूटिंग" (PDF). p. 2. Archived (PDF) from the original on 8 March 2014. Retrieved 7 June 2014.
  4. Landau, Edmund (1909). अभाज्य संख्याओं के वितरण के अध्ययन का मैनुअल [Handbook on the theory of the distribution of the primes] (in Deutsch). Leipzig: B.G. Teubner. p. 31.
  5. Michael Sipser (1997). संगणना के सिद्धांत का परिचय. Boston/MA: PWS Publishing Co. Here: Def.7.2, p.227
  6. 6.0 6.1 Cormen,Thomas H.; Leiserson, Charles E.; Rivest, Ronald L. (2009). एल्गोरिदम का परिचय (3rd ed.). Cambridge/MA: MIT Press. p. 45. ISBN 978-0-262-53305-8. 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.
  7. Cormen, Thomas; Leiserson, Charles; Rivest, Ronald; Stein, Clifford (2009). एल्गोरिदम का परिचय (Third ed.). MIT. p. 53.
  8. Howell, Rodney. "अनेक चरों के साथ असममित संकेतन पर" (PDF). Archived (PDF) from the original on 2015-04-24. Retrieved 2015-04-23.
  9. 9.0 9.1 N. G. de Bruijn (1958). विश्लेषण में स्पर्शोन्मुख विधियाँ. Amsterdam: North-Holland. pp. 5–7. ISBN 978-0-486-64221-5. Archived from the original on 2023-01-17. Retrieved 2021-09-15.
  10. 10.0 10.1 10.2 Graham, Ronald; Knuth, Donald; Patashnik, Oren (1994). ठोस गणित (2 ed.). Reading, Massachusetts: Addison–Wesley. p. 446. ISBN 978-0-201-55802-9. Archived from the original on 2023-01-17. Retrieved 2016-09-23.
  11. Donald Knuth (June–July 1998). "बिग ओ के साथ कैलकुलस सिखाएं" (PDF). Notices of the American Mathematical Society. 45 (6): 687. Archived (PDF) from the original on 2021-10-14. Retrieved 2021-09-05. (Unabridged version Archived 2008-05-13 at the Wayback Machine)
  12. Donald E. Knuth, The art of computer programming. Vol. 1. Fundamental algorithms, third edition, Addison Wesley Longman, 1997. Section 1.2.11.1.
  13. 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.
  14. Sivaram Ambikasaran and Eric Darve, An Fast Direct Solver for Partial Hierarchically Semi-Separable Matrices, J. Scientific Computing 57 (2013), no. 3, 477–501.
  15. Saket Saurabh and Meirav Zehavi, -Max-Cut: An -Time Algorithm and a Polynomial Kernel, Algorithmica 80 (2018), no. 12, 3844–3860.
  16. 16.0 16.1 Landau, Edmund (1909). अभाज्य संख्याओं के वितरण के अध्ययन का मैनुअल [Handbook on the theory of the distribution of the primes] (in Deutsch). Leipzig: B. G. Teubner. p. 61.
  17. Thomas H. Cormen et al., 2001, Introduction to Algorithms, Second Edition, Ch. 3.1 Archived 2009-01-16 at the Wayback Machine
  18. Cormen TH, Leiserson CE, Rivest RL, Stein C (2009). एल्गोरिदम का परिचय (3rd ed.). Cambridge, Mass.: MIT Press. p. 48. ISBN 978-0-262-27083-0. OCLC 676697295.
  19. 19.0 19.1 19.2 Hardy, G. H.; Littlewood, J. E. (1914). "Some problems of diophantine approximation: Part II. The trigonometrical series associated with the elliptic θ-functions". Acta Mathematica. 37: 225. doi:10.1007/BF02401834. Archived from the original on 2018-12-12. Retrieved 2017-03-14.
  20. 20.0 20.1 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.
  21. E. Landau, "Über die Anzahl der Gitterpunkte in gewissen Bereichen. IV." Nachr. Gesell. Wiss. Gött. Math-phys. Kl. 1924, 137–150.
  22. 22.0 22.1 Aleksandar Ivić. The Riemann zeta-function, chapter 9. John Wiley & Sons 1985.
  23. Gérald Tenenbaum, Introduction to analytic and probabilistic number theory, Chapter I.5. American Mathematical Society, Providence RI, 2015.
  24. 24.0 24.1 24.2 24.3 24.4 24.5 Knuth, Donald (April–June 1976). "बड़ा ओमीक्रॉन और बड़ा ओमेगा और बड़ी थीटा" (PDF). SIGACT News. 8 (2): 18–24. doi:10.1145/1008328.1008329. S2CID 5230246. Archived from the original on 2022-04-08. Retrieved 2022-12-08.{{cite journal}}: CS1 maint: bot: original URL status unknown (link)
  25. Balcázar, José L.; Gabarró, Joaquim. "Nonuniform complexity classes specified by lower and upper bounds" (PDF). RAIRO – Theoretical Informatics and Applications – Informatique Théorique et Applications (in English). 23 (2): 180. ISSN 0988-3754. Archived (PDF) from the original on 14 March 2017. Retrieved 14 March 2017.
  26. Cucker, Felipe; Bürgisser, Peter (2013). "A.1 Big Oh, Little Oh, and Other Comparisons". Condition: The Geometry of Numerical Algorithms. Berlin, Heidelberg: Springer. pp. 467–468. doi:10.1007/978-3-642-38896-5. ISBN 978-3-642-38896-5.
  27. 27.0 27.1 Vitányi, Paul; Meertens, Lambert (April 1985). "Big Omega versus the wild functions" (PDF). ACM SIGACT News. 16 (4): 56–59. CiteSeerX 10.1.1.694.3072. doi:10.1145/382242.382835. S2CID 11700420. Archived (PDF) from the original on 2016-03-10. Retrieved 2017-03-14.
  28. Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford (2001) [1990]. Introduction to Algorithms (2nd ed.). MIT Press and McGraw-Hill. pp. 41–50. ISBN 0-262-03293-7.
  29. for example it is omitted in: Hildebrand, A.J. "Asymptotic Notations" (PDF). Department of Mathematics. Asymptotic Methods in Analysis. Math 595, Fall 2009. Urbana, IL: University of Illinois. Archived (PDF) from the original on 14 March 2017. Retrieved 14 March 2017.
  30. Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L. (2009). एल्गोरिदम का परिचय (3rd ed.). Cambridge/MA: MIT Press. p. 47. ISBN 978-0-262-53305-8. 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 n0 such that 0 ≤ f(n) ≤ cg(n) for all nn0}
  31. Cormen,Thomas H.; Leiserson, Charles E.; Rivest, Ronald L. (2009). एल्गोरिदम का परिचय (3rd ed.). Cambridge/MA: MIT Press. p. 49. ISBN 978-0-262-53305-8. 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(n2), we have already defined the equal sign to mean set membership: n ∈ O(n2). 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 2n2 + 3n + 1 = 2n2 + θ(n) means that 2n2 + 3n + 1 = 2n2 + f(n), where f(n) is some function in the set θ(n). In this case, we let f(n) = 3n + 1, which is indeed in θ(n). Using asymptotic notation in this manner can help eliminate inessential detail and clutter in an equation.
  32. Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford (2022). एल्गोरिदम का परिचय (4th ed.). Cambridge, Mass.: The MIT Press. pp. 74–75. ISBN 9780262046305.
  33. Andreas Björklund and Thore Husfeldt and Mikko Koivisto (2009). "समावेशन-बहिष्करण के माध्यम से विभाजन निर्धारित करें" (PDF). SIAM Journal on Computing. 39 (2): 546–563. doi:10.1137/070683933. Archived (PDF) from the original on 2022-02-03. Retrieved 2022-02-03. See sect.2.3, p.551.
  34. Erdelyi, A. (1956). स्पर्शोन्मुख विस्तार. ISBN 978-0-486-60318-6.
  35. E. C. Titchmarsh, The Theory of the Riemann Zeta-Function (Oxford; Clarendon Press, 1951)
  36. 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.


अग्रिम पठन


बाहरी संबंध