बिग ओ अंकन: Difference between revisions
No edit summary |
No edit summary |
||
Line 4: | Line 4: | ||
{{DISPLAYTITLE:Big ''O'' notation}} | {{DISPLAYTITLE:Big ''O'' notation}} | ||
''' | '''बिग 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 नोटेशन के साथ संबद्ध कई संबंधित नोटेशन हैं जो स्पर्शोन्मुख विकास दर पर अन्य प्रकार की सीमाओं का वर्णन करने के लिए प्रतीकों | बड़े O नोटेशन के साथ संबद्ध कई संबंधित नोटेशन हैं जो स्पर्शोन्मुख विकास दर पर अन्य प्रकार की सीमाओं का वर्णन करने के लिए प्रतीकों {{math|''o'', Ω, ''ω''}}, और {{math|Θ}} का उपयोग करते हैं। | ||
== औपचारिक परिभाषा == | == औपचारिक परिभाषा == | ||
Line 17: | Line 17: | ||
f(x) = O\bigl( g(x)\bigr)\quad\text{ as }x\to\infty | f(x) = O\bigl( g(x)\bigr)\quad\text{ as }x\to\infty | ||
</math> | </math> | ||
और इसे पढ़ा जाता है <math>f(x)</math> <math>g(x)</math> का बड़ा O है" यदि <math>x</math> के सभी पर्याप्त बड़े मानों के लिए <math>f(x)</math> का निरपेक्ष मान <math>g(x)</math> का अधिकतम सकारात्मक स्थिरांक है। अर्थात कि यदि एक सकारात्मक वास्तविक संख्या <math>M</math> और एक वास्तविक संख्या <math>f(x) =O\bigl(g(x)\bigr)</math> उपस्थित है तो | और इसे पढ़ा जाता है <math>f(x)</math> <math>g(x)</math> का बड़ा O है" यदि <math>x</math> के सभी पर्याप्त बड़े मानों के लिए <math>f(x)</math> का निरपेक्ष मान <math>g(x)</math> का अधिकतम सकारात्मक स्थिरांक है। अर्थात कि यदि एक सकारात्मक वास्तविक संख्या <math>M</math> और एक वास्तविक संख्या <math>f(x) =O\bigl(g(x)\bigr)</math> उपस्थित है तो | ||
<math display="block">|f(x)| \le M g(x) \quad \text{ for all } x \ge x_0.</math> | <math display="block">|f(x)| \le M g(x) \quad \text{ for all } x \ge x_0.</math> | ||
कई संदर्भों में, यह धारणा कि हम चर <math>x</math> के रूप में विकास दर में रुचि रखते हैं | कई संदर्भों में, यह धारणा कि हम चर <math>x</math> के रूप में विकास दर में रुचि रखते हैं अनंत तक जाता है, उसे अघोषित छोड़ दिया जाता है, और कोई इसे और अधिक सरलता से लिखता है | ||
<math display="block">f(x) = O\bigl( g(x) \bigr).</math> | <math display="block">f(x) = O\bigl( g(x) \bigr).</math> | ||
नोटेशन <math>f</math> का उपयोग के व्यवहार का वर्णन करने के लिए भी किया जा सकता है | नोटेशन <math>f</math> का उपयोग के व्यवहार का वर्णन करने के लिए भी किया जा सकता है किसी वास्तविक संख्या के निकट <math>a</math> (अधिकांशतः, <math>a=0</math>): हम कहते हैं | ||
<math display="block">f(x) = O\bigl( g(x) \bigr)\quad\text{ as }x \to a</math> | <math display="block">f(x) = O\bigl( g(x) \bigr)\quad\text{ as }x \to a</math> | ||
यदि सकारात्मक संख्याएँ <math>\delta</math> और <math>M</math> | यदि सकारात्मक संख्याएँ <math>\delta</math> और <math>M</math> उपस्थित हैं ऐसा कि सभी के लिए परिभाषित <math>x</math> साथ {{nowrap|<math>0 < |x-a| < \delta</math>,}} है<math display="block">|f(x)| \le M g(x).</math> | ||
जैसा <math>g(x)</math> के ऐसे मूल्यों के लिए सख्ती से सकारात्मक <math>x</math> होने के लिए चुना गया है , इन दोनों परिभाषाओं को [[सीमा श्रेष्ठ]] का उपयोग करके एकीकृत किया जा सकता है: | जैसा <math>g(x)</math> के ऐसे मूल्यों के लिए सख्ती से सकारात्मक <math>x</math> होने के लिए चुना गया है , इन दोनों परिभाषाओं को [[सीमा श्रेष्ठ]] का उपयोग करके एकीकृत किया जा सकता है: | ||
Line 32: | Line 30: | ||
यदि | यदि | ||
<math display="block">\limsup_{x\to a} \frac{\left|f(x)\right|}{g(x)} < \infty.</math> | <math display="block">\limsup_{x\to a} \frac{\left|f(x)\right|}{g(x)} < \infty.</math> | ||
और इन दोनों परिभाषाओं में [[सीमा बिंदु]] <math>a</math> (चाहे <math>\infty</math> या नहीं) के डोमेन का [[क्लस्टर बिंदु]] है <math>f</math> और <math>g</math>, | और इन दोनों परिभाषाओं में [[सीमा बिंदु]] <math>a</math> (चाहे <math>\infty</math> या नहीं) के डोमेन का [[क्लस्टर बिंदु]] है <math>f</math> और <math>g</math>, ई., के प्रत्येक निकट में <math>a</math> इसमें अपरिमित रूप से कई बिंदु समान होने चाहिए। इसके अतिरिक्त, जैसा कि लिमिट अवर और लिमिट सुपीरियर या रियल-वैल्यूड फलन के बारे में लेख में बताया गया है <math>\textstyle \limsup_{x\to a}</math> (कम से कम [[विस्तारित वास्तविक संख्या रेखा]] पर) सदैव उपस्थित रहता है। | ||
कंप्यूटर विज्ञान में, थोड़ी अधिक प्रतिबंधात्मक परिभाषा सामान्य है: <math>f</math> और <math>g</math> क्या दोनों को [[प्राकृतिक संख्या]]ओं के कुछ असंबद्ध उपसमुच्चय से गैर-ऋणात्मक वास्तविक संख्याओं तक फलन होना आवश्यक है; तब <math>f(x) = O\bigl(g(x)\bigr)</math> यदि धनात्मक पूर्णांक संख्याएँ <math>M</math> और <math>n_0</math> उपस्थित हों तो <math>f(n) \le M g(n)</math> सभी <math> n \ge n_0</math> के लिए <ref>{{cite book | author=Michael Sipser | title=संगणना के सिद्धांत का परिचय| location=Boston/MA | publisher=PWS Publishing Co. | year=1997 }} Here: Def.7.2, p.227</ref> | |||
== उदाहरण == | == उदाहरण == | ||
सामान्य उपयोग में {{math|''O''}} अंकन स्पर्शोन्मुख है, अर्थात यह बहुत बड़े {{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'')}} का | उदाहरण के लिए, माना {{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>}} के लिए : | ||
Line 52: | Line 47: | ||
इसलिए | इसलिए | ||
<math display="block"> |6x^4 - 2x^3 + 5| \le 13 x^4 .</math> | <math display="block"> |6x^4 - 2x^3 + 5| \le 13 x^4 .</math> | ||
== उपयोग == | == उपयोग == | ||
बिगओनोटेशन के अनुप्रयोग के दो मुख्य क्षेत्र हैं: | बिगओनोटेशन के अनुप्रयोग के दो मुख्य क्षेत्र हैं: | ||
Line 65: | Line 58: | ||
* [[बहुत छोता]] एसिम्प्टोटिक्स। | * [[बहुत छोता]] एसिम्प्टोटिक्स। | ||
यह अंतर केवल अनुप्रयोग में है और सिद्धांत रूप में नहीं, चूँकि - | यह अंतर केवल अनुप्रयोग में है और सिद्धांत रूप में नहीं, चूँकि - बड़े 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)}}). इसके अतिरिक्त, चरणों की संख्या मशीन मॉडल के विवरण पर निर्भर करती है जिस पर एल्गोरिदम चलता है, किन्तु विभिन्न प्रकार की मशीनें सामान्यतः एल्गोरिदम को निष्पादित करने के लिए आवश्यक चरणों की संख्या में केवल स्थिर कारक से भिन्न होती हैं। जिससे | [[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> | ||
या | या | ||
:<math>T(n) \in O(n^2) </math> | :<math>T(n) \in O(n^2) </math> | ||
और कहें कि एल्गोरिदम का क्रम है {{math|n<sup>2</sup>}} समय जटिलता. संकेत का अभिप्राय अपने सामान्य गणितीय अर्थ में सामान्य को व्यक्त करना नहीं है, किन्तु अधिक बोलचाल की भाषा है, इसलिए दूसरी अभिव्यक्ति को कभी-कभी अधिक स्पष्ट माना जाता है (नीचे सामान्य चिह्न चर्चा देखें) जबकि पहली को कुछ लोगों द्वारा दुरुपयोग माना जाता है .<ref name="clrs3" /> | और कहें कि एल्गोरिदम का क्रम है {{math|n<sup>2</sup>}} समय जटिलता. संकेत का अभिप्राय अपने सामान्य गणितीय अर्थ में सामान्य को व्यक्त करना नहीं है, किन्तु अधिक बोलचाल की भाषा है, इसलिए दूसरी अभिव्यक्ति को कभी-कभी अधिक स्पष्ट माना जाता है (नीचे सामान्य चिह्न चर्चा देखें) जबकि पहली को कुछ लोगों द्वारा दुरुपयोग माना जाता है .<ref name="clrs3" /> | ||
=== अनंतिम स्पर्शोन्मुखता === | === अनंतिम स्पर्शोन्मुखता === | ||
बिगओका उपयोग टेलर श्रृंखला अनुमान त्रुटि और गणितीय फलन के सन्निकटन में अभिसरण का वर्णन करने के लिए भी किया जा सकता है। सबसे महत्वपूर्ण शब्दों को स्पष्ट रूप से लिखा जाता है, और फिर सबसे कम महत्वपूर्ण शब्दों को | बिगओका उपयोग टेलर श्रृंखला अनुमान त्रुटि और गणितीय फलन के सन्निकटन में अभिसरण का वर्णन करने के लिए भी किया जा सकता है। सबसे महत्वपूर्ण शब्दों को स्पष्ट रूप से लिखा जाता है, और फिर सबसे कम महत्वपूर्ण शब्दों को बड़े O शब्द में संक्षेपित किया जाता है। उदाहरण के लिए, एक्सपोनेंशियल फलन औपचारिक परिभाषा और इसकी दो अभिव्यक्तियों पर विचार करें जो कब मान्य हैं | ||
:<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 82: | Line 73: | ||
&=1+x+O(x^2) &\text{as } x\to 0 | &=1+x+O(x^2) &\text{as } x\to 0 | ||
\end{align}</math> | \end{align}</math> | ||
दूसरा व्यंजक ''O''(''x''<sup>3</sup> का अर्थ है त्रुटि e<sup>x</sup> − (1 + x + x<sup>2</sup>/2) का निरपेक्ष मान | दूसरा व्यंजक ''O''(''x''<sup>3</sup> का अर्थ है त्रुटि e<sup>x</sup> − (1 + x + x<sup>2</sup>/2) का निरपेक्ष मान अधिक से अधिक कुछ स्थिर {{!}}x<sup>3</sup>{{!}} समय है जब x 0 के अधिक निकट होता है। | ||
== गुण == | == गुण == | ||
यदि फलन {{math|''f''}} | यदि फलन {{math|''f''}} को अन्य फलनों के सीमित योग के रूप में लिखा जा सकता है, फिर सबसे तेजी से बढ़ने वाला क्रम {{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''}}) और इस प्रकार | हम किसी भी शक्ति को नजरअंदाज कर सकते हैं {{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>}}, और | बदलती इकाइयाँ परिणामी एल्गोरिदम के क्रम को प्रभावित कर भी सकती हैं और नहीं भी। इकाइयों को बदलना, जहां कहीं भी दिखाई दे, उचित चर को स्थिरांक से गुणा करने के सामान्य है। उदाहरण के लिए, यदि कोई एल्गोरिदम क्रम में चलता है {{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'')}} जब इनपुट संख्या के फलन के रूप में मापा जाता है | ||
=== उत्पाद === | === उत्पाद === | ||
:<math> f_1 = O(g_1) \text{ and } f_2 = O(g_2) \Rightarrow f_1 f_2 = O(g_1 g_2)</math> | :<math> f_1 = O(g_1) \text{ and } f_2 = O(g_2) \Rightarrow f_1 f_2 = O(g_1 g_2)</math> | ||
:<math>f\cdot O(g) = O(f g)</math> | :<math>f\cdot O(g) = O(f 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> [[उत्तल शंकु]] है. | यदि <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>, तब | माना {{mvar|k}} शून्येतर स्थिरांक है। तब <math>O(|k| \cdot g) = O(g)</math>. दूसरे शब्दों में, यदि <math>f = O(g)</math>, तब <math>k \cdot f = O(g). </math> | ||
== एकाधिक चर == | == एकाधिक चर == | ||
बिगओ(और छोटेO, Ω, आदि) का उपयोग कई वेरिएबल्स के साथ भी किया जा सकता है। कई चरों के लिए | बिगओ(और छोटेO, Ω, आदि) का उपयोग कई वेरिएबल्स के साथ भी किया जा सकता है। कई चरों के लिए बड़े O को औपचारिक रूप से परिभाषित करने के लिए, मान लीजिए <math>f</math> और <math>g</math> के कुछ उपसमुच्चय पर परिभाषित दो कार्य <math>\R^n</math> हैं . हम कहते हैं | ||
:<math>f(\mathbf{x})\text{ is }O(g(\mathbf{x}))\quad\text{ as }\mathbf{x}\to\infty</math> | :<math>f(\mathbf{x})\text{ is }O(g(\mathbf{x}))\quad\text{ as }\mathbf{x}\to\infty</math> | ||
यदि और केवल यदि स्थिरांक | यदि और केवल यदि स्थिरांक <math>M</math> और <math>C > 0</math> उपस्थित हैं ऐसा है कि <math>|f(\mathbf{x})| \le C |g(\mathbf{x})|</math> सभी के लिए <math>\mathbf{x}</math> साथ <math> x_i \geq M</math> कुछ के लिए <math>i.</math><ref>{{cite book |last1=Cormen |first1=Thomas |last2=Leiserson |first2=Charles |last3=Rivest |first3=Ronald |last4=Stein |first4=Clifford |title=एल्गोरिदम का परिचय|url=https://archive.org/details/introductiontoal00corm_805 |url-access=limited |year=2009 |publisher=MIT |page=[https://archive.org/details/introductiontoal00corm_805/page/n73 53] |edition=Third}}</ref> समान रूप से, नियम यह है कि <math>x_i \geq M</math> कुछ <math>\|\mathbf{x}\|_{\infty} \ge M</math> के लिए <math>i</math> लिखा जा सकता है , जहाँ <math>\|\mathbf{x}\|_{\infty}</math> [[चेबीशेव मानदंड]] को दर्शाता है। उदाहरण के लिए, कथन | ||
:<math>f(n,m) = n^2 + m^3 + O(n+m) \quad\text{ as } n,m\to\infty</math> | :<math>f(n,m) = n^2 + m^3 + O(n+m) \quad\text{ as } n,m\to\infty</math> | ||
प्रमाणित करता है कि ऐसे स्थिरांक C और M उपस्थित हैं | प्रमाणित करता है कि ऐसे स्थिरांक C और M उपस्थित हैं | ||
Line 120: | Line 107: | ||
इस परिभाषा के अनुसार, उपसमुच्चय जिस पर फलन परिभाषित किया गया है, यूनीवेरिएट सेटिंग से मल्टीवेरिएट सेटिंग में कथनों को सामान्यीकृत करते समय महत्वपूर्ण होता है। उदाहरण के लिए, यदि <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> | ||
== अंकन के स्थिति == | == अंकन के स्थिति == | ||
Line 128: | Line 113: | ||
कथन "f(x) O(g(x)) है" जैसा कि ऊपर परिभाषित है, सामान्यतः f(x) = O(g(x)) के रूप में लिखा जाता है। कुछ लोग इसे संकेतन का दुरुपयोग मानते हैं क्योंकि बराबर चिह्न का उपयोग भ्रामक हो सकता है क्योंकि यह एक समरूपता का सुझाव देता है जो इस कथन में नहीं है। जैसा कि [[निकोलस गोवर्ट डी ब्रुइज़न]] कहते हैं, O(x) = O(x2) सत्य है किन्तु O(x2) = 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> [[डोनाल्ड नुथ]] ऐसे कथनों को "एकतरफ़ा समानता" के रूप में वर्णित करते हैं क्योंकि यदि पक्षों को उलटा किया जा सकता है, "हम पहचान n = O(n2) और n2 = O(n2) से n = n2 जैसी हास्यास्पद चीजें निकाल सकते हैं।<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> एक अन्य पत्र में नथ ने यह भी बताया कि "समानता चिह्न ऐसे अंकन के संबंध में सममित नहीं है" जैसा कि इस अंकन में है "गणितज्ञ परंपरागत रूप से चिह्न का उपयोग करते हैं क्योंकि वे अंग्रेजी में "is" शब्द का उपयोग करते हैं: अरस्तू एक आदमी है किन्तु एक आदमी है आवश्यक नहीं कि अरस्तू ही हो"।<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)) है" जैसा कि ऊपर परिभाषित है, सामान्यतः f(x) = O(g(x)) के रूप में लिखा जाता है। कुछ लोग इसे संकेतन का दुरुपयोग मानते हैं क्योंकि बराबर चिह्न का उपयोग भ्रामक हो सकता है क्योंकि यह एक समरूपता का सुझाव देता है जो इस कथन में नहीं है। जैसा कि [[निकोलस गोवर्ट डी ब्रुइज़न]] कहते हैं, O(x) = O(x2) सत्य है किन्तु O(x2) = 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> [[डोनाल्ड नुथ]] ऐसे कथनों को "एकतरफ़ा समानता" के रूप में वर्णित करते हैं क्योंकि यदि पक्षों को उलटा किया जा सकता है, "हम पहचान n = O(n2) और n2 = O(n2) से n = n2 जैसी हास्यास्पद चीजें निकाल सकते हैं।<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> एक अन्य पत्र में नथ ने यह भी बताया कि "समानता चिह्न ऐसे अंकन के संबंध में सममित नहीं है" जैसा कि इस अंकन में है "गणितज्ञ परंपरागत रूप से चिह्न का उपयोग करते हैं क्योंकि वे अंग्रेजी में "is" शब्द का उपयोग करते हैं: अरस्तू एक आदमी है किन्तु एक आदमी है आवश्यक नहीं कि अरस्तू ही हो"।<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)) लिखना अधिक स्पष्ट होता है (इस प्रकार पढ़ें: "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" /> | |||
इन कारणों से सेट नोटेशन का उपयोग करना और 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) | |||
=== अन्य अंकगणितीय ऑपरेटर === | === अन्य अंकगणितीय ऑपरेटर === | ||
Line 136: | Line 120: | ||
के समान ही व्यक्त करता है | के समान ही व्यक्त करता है | ||
:<math>g(x) - h(x) = O(f(x)).</math> | :<math>g(x) - h(x) = O(f(x)).</math> | ||
=== उदाहरण === | |||
मान लीजिए कि 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 नोटेशन का उपयोग करने की अनुमति देता है। | |||
मान लीजिए कि 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>) में समाहित हो गए हैं). फिर, यह उपयोग प्रतीक के कुछ औपचारिक अर्थों की उपेक्षा करता है, किन्तु यह प्रकार के सुविधाजनक प्लेसहोल्डर के रूप में | |||
=== एकाधिक उपयोग === | === एकाधिक उपयोग === | ||
Line 153: | Line 135: | ||
=== टाइपसेटिंग === | === टाइपसेटिंग === | ||
बिगओको इटैलिकाइज़्ड अपरकेस O के रूप में टाइप किया गया है, जैसा कि निम्नलिखित उदाहरण में है: <math>O(n^2)</math>.<ref name="KnuthArt">Donald E. Knuth, The art of computer programming. Vol. 1. Fundamental algorithms, third edition, Addison Wesley Longman, 1997. Section 1.2.11.1.</ref><ref name="ConcreteMath">Ronald L. Graham, Donald E. Knuth, and Oren Patashnik, ''Concrete Mathematics: A Foundation for Computer Science (2nd ed.)'', Addison-Wesley, 1994. Section 9.2, p. 443.</ref> [[TeX|टेक्स]] में, यह केवल गणित मोड के अंदर O टाइप करके निर्मित होता है। ग्रीक-नामांकित बैचमैन-लैंडौ नोटेशन के विपरीत, इसे किसी विशेष प्रतीक की आवश्यकता नहीं है। फिर भी, कुछ लेखक सुलेख संस्करण का उपयोग करते हैं ।<ref>Sivaram Ambikasaran and Eric Darve, An <math>\mathcal O (N \log N)</math> Fast Direct Solver for Partial Hierarchically Semi-Separable Matrices, ''J. Scientific Computing'' '''57''' (2013), no. 3, 477–501.</ref><ref>Saket Saurabh and Meirav Zehavi, <math>(k,n-k)</math>-Max-Cut: An <math>\mathcal{O}^*(2^p)</math>-Time Algorithm and a Polynomial Kernel, ''Algorithmica'' '''80''' (2018), no. 12, 3844–3860.</ref> | बिगओको इटैलिकाइज़्ड अपरकेस O के रूप में टाइप किया गया है, जैसा कि निम्नलिखित उदाहरण में है: <math>O(n^2)</math>.<ref name="KnuthArt">Donald E. Knuth, The art of computer programming. Vol. 1. Fundamental algorithms, third edition, Addison Wesley Longman, 1997. Section 1.2.11.1.</ref><ref name="ConcreteMath">Ronald L. Graham, Donald E. Knuth, and Oren Patashnik, ''Concrete Mathematics: A Foundation for Computer Science (2nd ed.)'', Addison-Wesley, 1994. Section 9.2, p. 443.</ref> [[TeX|टेक्स]] में, यह केवल गणित मोड के अंदर O टाइप करके निर्मित होता है। ग्रीक-नामांकित बैचमैन-लैंडौ नोटेशन के विपरीत, इसे किसी विशेष प्रतीक की आवश्यकता नहीं है। फिर भी, कुछ लेखक सुलेख संस्करण का उपयोग करते हैं ।<ref>Sivaram Ambikasaran and Eric Darve, An <math>\mathcal O (N \log N)</math> Fast Direct Solver for Partial Hierarchically Semi-Separable Matrices, ''J. Scientific Computing'' '''57''' (2013), no. 3, 477–501.</ref><ref>Saket Saurabh and Meirav Zehavi, <math>(k,n-k)</math>-Max-Cut: An <math>\mathcal{O}^*(2^p)</math>-Time Algorithm and a Polynomial Kernel, ''Algorithmica'' '''80''' (2018), no. 12, 3844–3860.</ref> | ||
== सामान्य फलनों के क्रम == | == सामान्य फलनों के क्रम == | ||
{{Further|समय जटिलता#सामान्य समय जटिलताओं की तालिका}} | {{Further|समय जटिलता#सामान्य समय जटिलताओं की तालिका}} | ||
Line 201: | Line 181: | ||
===लिटिल-ओ नोटेशन=== | ===लिटिल-ओ नोटेशन=== | ||
{{Redirect|लिटिल ओ|बेसबॉल खिलाड़ी|उमर विज़क्वेल}} | {{Redirect|लिटिल ओ|बेसबॉल खिलाड़ी|उमर विज़क्वेल}} | ||
Line 207: | Line 188: | ||
<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> उपस्थित है ऐसा है कि | ||
:<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> | ||
उदाहरण के लिए, किसी के पास है | उदाहरण के लिए, किसी के पास है | ||
Line 222: | Line 203: | ||
यह [[सकर्मक संबंध]] संबंध को भी संतुष्ट करता है: | यह [[सकर्मक संबंध]] संबंध को भी संतुष्ट करता है: | ||
: यदि <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> | ||
=== बिग ओमेगा संकेतन === | === बिग ओमेगा संकेतन === | ||
Line 246: | Line 225: | ||
:<math>f(x)=\Omega_L(g(x))</math> जैसा <math>x\to\infty</math> यदि <math>\liminf_{x \to \infty} \frac{f(x)}{g(x)}< 0. </math> | :<math>f(x)=\Omega_L(g(x))</math> जैसा <math>x\to\infty</math> यदि <math>\liminf_{x \to \infty} \frac{f(x)}{g(x)}< 0. </math> | ||
इन प्रतीकों का प्रयोग 1924 में एडमंड लैंडौ द्वारा इन्हीं अर्थों में किया गया था।<ref name="landau">E. Landau, "Über die Anzahl der Gitterpunkte in gewissen Bereichen. IV." Nachr. Gesell. Wiss. Gött. Math-phys. Kl. 1924, 137–150.</ref> लांडौ के बाद, नोटेशन का दोबारा कभी भी स्पष्ट रूप से उपयोग नहीं किया गया था; <math>\Omega_R</math> | इन प्रतीकों का प्रयोग 1924 में एडमंड लैंडौ द्वारा इन्हीं अर्थों में किया गया था।<ref name="landau">E. Landau, "Über die Anzahl der Gitterpunkte in gewissen Bereichen. IV." Nachr. Gesell. Wiss. Gött. Math-phys. Kl. 1924, 137–150.</ref> लांडौ के बाद, नोटेशन का दोबारा कभी भी स्पष्ट रूप से उपयोग नहीं किया गया था; <math>\Omega_R</math> <math>\Omega_+</math> और <math>\Omega_L</math> <math>\Omega_-</math>. | ||
ये तीन प्रतीक <math>\Omega, \Omega_+, \Omega_-</math>, साथ ही <math>f(x)=\Omega_\pm(g(x))</math> (कारण है कि <math>f(x)=\Omega_+(g(x))</math> और <math>f(x)=\Omega_-(g(x))</math> दोनों संतुष्ट हैं), अब वर्तमान में विश्लेषणात्मक संख्या सिद्धांत में उपयोग किया जाता है।<ref name="Ivic">Aleksandar Ivić. The Riemann zeta-function, chapter 9. John Wiley & Sons 1985.</ref><ref>Gérald Tenenbaum, Introduction to analytic and probabilistic number theory, Chapter I.5. American Mathematical Society, Providence RI, 2015.</ref> | ये तीन प्रतीक <math>\Omega, \Omega_+, \Omega_-</math>, साथ ही <math>f(x)=\Omega_\pm(g(x))</math> (कारण है कि <math>f(x)=\Omega_+(g(x))</math> और <math>f(x)=\Omega_-(g(x))</math> दोनों संतुष्ट हैं), अब वर्तमान में विश्लेषणात्मक संख्या सिद्धांत में उपयोग किया जाता है।<ref name="Ivic">Aleksandar Ivić. The Riemann zeta-function, chapter 9. John Wiley & Sons 1985.</ref><ref>Gérald Tenenbaum, Introduction to analytic and probabilistic number theory, Chapter I.5. American Mathematical Society, Providence RI, 2015.</ref> | ||
===== सरल उदाहरण ===== | ===== सरल उदाहरण ===== | ||
Line 268: | Line 245: | ||
:<math>\sin x+1\not=\Omega_-(1)</math> जैसा <math>x\to\infty.</math> | :<math>\sin x+1\not=\Omega_-(1)</math> जैसा <math>x\to\infty.</math> | ||
==== नथ परिभाषा ==== | ==== नथ परिभाषा ==== | ||
Line 275: | Line 251: | ||
:<math>f(x)=\Omega(g(x))\Leftrightarrow g(x)=O(f(x))</math> | :<math>f(x)=\Omega(g(x))\Leftrightarrow g(x)=O(f(x))</math> | ||
टिप्पणी के साथ:चूँकि मैंने हार्डी और लिटिलवुड की परिभाषा बदल दी <math>\Omega</math> है , मुझे ऐसा करना उचित लगता है क्योंकि उनकी परिभाषा किसी भी तरह से व्यापक उपयोग में नहीं है, और क्योंकि तुलनात्मक रूप से दुर्लभ स्थितियों में जब उनकी परिभाषा प्रयुक्त होती है जिससे वे जो कहना चाहते हैं उसे कहने के अन्य विधि भी हैं।<ref name="knuth">{{cite journal |first=Donald |last=Knuth |url=https://phil.uu.nl/datastructuren/10-11/knuth_big_omicron.pdf |title=बड़ा ओमीक्रॉन और बड़ा ओमेगा और बड़ी थीटा|journal=SIGACT News |date=April–June 1976 |volume=8 |issue=2 |pages=18–24 |doi=10.1145/1008328.1008329 |s2cid=5230246 |access-date=2022-12-08 |archive-date=2022-04-08 |archive-url=https://web.archive.org/web/20220408172902/https://phil.uu.nl/datastructuren/10-11/knuth_big_omicron.pdf |url-status=bot: unknown }}</ref> | टिप्पणी के साथ:चूँकि मैंने हार्डी और लिटिलवुड की परिभाषा बदल दी <math>\Omega</math> है , मुझे ऐसा करना उचित लगता है क्योंकि उनकी परिभाषा किसी भी तरह से व्यापक उपयोग में नहीं है, और क्योंकि तुलनात्मक रूप से दुर्लभ स्थितियों में जब उनकी परिभाषा प्रयुक्त होती है जिससे वे जो कहना चाहते हैं उसे कहने के अन्य विधि भी हैं।<ref name="knuth">{{cite journal |first=Donald |last=Knuth |url=https://phil.uu.nl/datastructuren/10-11/knuth_big_omicron.pdf |title=बड़ा ओमीक्रॉन और बड़ा ओमेगा और बड़ी थीटा|journal=SIGACT News |date=April–June 1976 |volume=8 |issue=2 |pages=18–24 |doi=10.1145/1008328.1008329 |s2cid=5230246 |access-date=2022-12-08 |archive-date=2022-04-08 |archive-url=https://web.archive.org/web/20220408172902/https://phil.uu.nl/datastructuren/10-11/knuth_big_omicron.pdf |url-status=bot: unknown }}</ref> | ||
=== बैचमैन-लैंडौ नोटेशन का वर्ग === | === बैचमैन-लैंडौ नोटेशन का वर्ग === | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 301: | Line 275: | ||
| बड़ी थीटा | | बड़ी थीटा | ||
| f ऊपर और नीचे दोनों तरफ g से असम्बद्ध रूप से घिरा हुआ है | | f ऊपर और नीचे दोनों तरफ g से असम्बद्ध रूप से घिरा हुआ है | ||
| <math>\exists k_1 > 0 \, \exists k_2>0 \, \exists n_0 \, \forall n > n_0\colon</math> | | <math>\exists k_1 > 0 \, \exists k_2>0 \, \exists n_0 \, \forall n > n_0\colon</math> <math>k_1 \, g(n) \leq f(n) \leq k_2 \, g(n)</math> | ||
| <math>f(n) = O(g(n))</math> and <math>f(n) = \Omega(g(n))</math> (नुथ संस्करण) | | <math>f(n) = O(g(n))</math> and <math>f(n) = \Omega(g(n))</math> (नुथ संस्करण) | ||
|- | |- | ||
Line 360: | Line 334: | ||
=== बाचमैन-लैंडौ नोटेशन का विस्तार === | === बाचमैन-लैंडौ नोटेशन का विस्तार === | ||
कंप्यूटर विज्ञान में कभी-कभी उपयोग किया जाने वाला अन्य संकेतन Õ (सॉफ्ट-ओ पढ़ें) है, जो पॉलीलॉगरिदमिक कारकों को छुपाता है। उपयोग में दो परिभाषाएँ हैं: कुछ लेखक 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 के लिए। कुछ लेखकO लिखते हैं<sup>*</sup>बाद वाली परिभाषा के समान उद्देश्य के लिए।<ref>{{cite journal | url=https://www.cs.helsinki.fi/u/mkhkoivi/publications/sicomp-2009.pdf | author=Andreas Björklund and Thore Husfeldt and Mikko Koivisto | title=समावेशन-बहिष्करण के माध्यम से विभाजन निर्धारित करें| journal=[[SIAM Journal on Computing]] | volume=39 | number=2 | pages=546–563 | year=2009 | doi=10.1137/070683933 | access-date=2022-02-03 | archive-date=2022-02-03 | archive-url=https://web.archive.org/web/20220203095918/https://www.cs.helsinki.fi/u/mkhkoivi/publications/sicomp-2009.pdf | url-status=live }} See sect.2.3, p.551.</ref> अनिवार्य रूप से, यह | कंप्यूटर विज्ञान में कभी-कभी उपयोग किया जाने वाला अन्य संकेतन Õ (सॉफ्ट-ओ पढ़ें) है, जो पॉलीलॉगरिदमिक कारकों को छुपाता है। उपयोग में दो परिभाषाएँ हैं: कुछ लेखक f(n)=Õ(g(n)) को [[आशुलिपि]] के रूप में उपयोग करते हैं {{nowrap|1=''f''(''n'') = ''O''(''g''(''n'') [[Polylogarithmic function|log<sup>''k''</sup> ''n'']])}} कुछ k के लिए, जबकि अन्य इसे शॉर्टहैंड के रूप में उपयोग करते हैं {{nowrap|1=''f''(''n'') = ''O''(''g''(''n'') log<sup>''k''</sup> ''g''(''n''))}}.<ref>{{Cite book |last1=Cormen |first1=Thomas H. |url=https://mitpress.mit.edu/9780262046305/introduction-to-algorithms/ |title=एल्गोरिदम का परिचय|last2=Leiserson |first2=Charles E. |last3=Rivest |first3=Ronald L. |last4=Stein |first4=Clifford |publisher=The MIT Press |year=2022 |isbn=9780262046305 |edition=4th |location=Cambridge, Mass. |pages=74–75 |oclc= |url-access=}}</ref> कब {{Nowrap|''g''(''n'')}} n में बहुपद है, कोई अंतर नहीं है;चूँकि, बाद वाली परिभाषा किसी को यह कहने की अनुमति देती है, उदाहरण के लिए वह <math>n2^n = \tilde O(2^n)</math> जबकि पूर्व परिभाषा इसकी अनुमति देती है <math>\log^k n = \tilde O(1)</math> किसी स्थिरांक k के लिए। कुछ लेखकO लिखते हैं<sup>*</sup>बाद वाली परिभाषा के समान उद्देश्य के लिए।<ref>{{cite journal | url=https://www.cs.helsinki.fi/u/mkhkoivi/publications/sicomp-2009.pdf | author=Andreas Björklund and Thore Husfeldt and Mikko Koivisto | title=समावेशन-बहिष्करण के माध्यम से विभाजन निर्धारित करें| journal=[[SIAM Journal on Computing]] | volume=39 | number=2 | pages=546–563 | year=2009 | doi=10.1137/070683933 | access-date=2022-02-03 | archive-date=2022-02-03 | archive-url=https://web.archive.org/web/20220203095918/https://www.cs.helsinki.fi/u/mkhkoivi/publications/sicomp-2009.pdf | url-status=live }} See sect.2.3, p.551.</ref> अनिवार्य रूप से, यह बड़ा O नोटेशन है, [[पॉलीलॉगरिदमिक फ़ंक्शन|पॉलीलॉगरिदमिक फलन]] को अनदेखा कर रहा है क्योंकि एसिम्प्टोटिक विश्लेषण | कुछ अन्य सुपर-लघुगणकीय फलन के विकास-दर प्रभाव बड़े आकार के इनपुट मापदंड के लिए विकास-दर विस्फोट का संकेत देते हैं जो खराब रन-टाइम प्रदर्शन की पूर्वानुमान करने के लिए अधिक महत्वपूर्ण है लघुगणक-विकास कारक (ओं) द्वारा योगदान किए गए उत्तम-बिंदु प्रभावों की तुलना में। इस संकेतन का उपयोग अधिकांशतः विकास-दर के अन्दर होने वाली खामियों को दूर करने के लिए किया जाता है, जिन्हें वर्तमान स्थितियों के लिए बहुत कसकर बांधा गया है (लॉग के बाद से) किसी भी स्थिरांक k और किसी के लिए {{nowrap|''ε'' > 0}}). | ||
इसके अतिरिक्त एल-नोटेशन, के रूप में परिभाषित किया गया है | इसके अतिरिक्त एल-नोटेशन, के रूप में परिभाषित किया गया है | ||
Line 369: | Line 343: | ||
किसी भी मानक वेक्टर स्थान में मान लेने वाले फलनों का सामान्यीकरण सीधा है (मानदंडों द्वारा निरपेक्ष मानों को प्रतिस्थापित करना), जहां एफ और जी को ही स्थान में अपने मान लेने की आवश्यकता नहीं है। किसी भी [[टोपोलॉजिकल समूह]] में मान लेने वाले फलनों का सामान्यीकरण भी संभव है | किसी भी मानक वेक्टर स्थान में मान लेने वाले फलनों का सामान्यीकरण सीधा है (मानदंडों द्वारा निरपेक्ष मानों को प्रतिस्थापित करना), जहां एफ और जी को ही स्थान में अपने मान लेने की आवश्यकता नहीं है। किसी भी [[टोपोलॉजिकल समूह]] में मान लेने वाले फलनों का सामान्यीकरण भी संभव है | ||
सीमित प्रक्रिया x → x<sub>o</sub> मनमाना [[फ़िल्टर आधार]], अर्थात निर्देशित [[नेट (गणित)]] एफ और जी को प्रस्तुत करके भी सामान्यीकृत किया जा सकता है। O नोटेशन का उपयोग अधिक सामान्य स्थानों में [[ यौगिक | यौगिक]] और भिन्नता को परिभाषित करने के लिए किया जा सकता है, और फलनों की (स्पर्शोन्मुख) समतुल्यता को भी परिभाषित करने के लिए किया जा सकता है, | सीमित प्रक्रिया x → x<sub>o</sub> मनमाना [[फ़िल्टर आधार]], अर्थात निर्देशित [[नेट (गणित)]] एफ और जी को प्रस्तुत करके भी सामान्यीकृत किया जा सकता है। O नोटेशन का उपयोग अधिक सामान्य स्थानों में [[ यौगिक |यौगिक]] और भिन्नता को परिभाषित करने के लिए किया जा सकता है, और फलनों की (स्पर्शोन्मुख) समतुल्यता को भी परिभाषित करने के लिए किया जा सकता है, | ||
:<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''}}O(x) नहीं है। | जो कि तुल्यता संबंध है और संबंध f की तुलना में अधिक प्रतिबंधात्मक धारणा है, ऊपर से Θ(g) है। (यदि एफ और जी सकारात्मक वास्तविक मूल्य वाले फलन हैं तो यह लिम एफ/जी = 1 तक कम हो जाता है।) उदाहरण के लिए, 2x Θ(x) है, किन्तु {{nowrap|1=2''x'' − ''x''}}O(x) नहीं है। | ||
Line 377: | Line 351: | ||
प्रतीक 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 में अंकन O को प्रस्तुत करने के लिए प्रेरित हुए;<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 में अंकन O को प्रस्तुत करने के लिए प्रेरित हुए;<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> (इस अर्थ मेंO का कोई कारण नहीं है) 1914 में हार्डी और लिटिलवुड द्वारा प्रस्तुत किया गया था।<ref name="HL" /> हार्डी और लिटिलवुड ने भी 1916 में प्रतीकों की प्रारंभ की <math>\Omega_R</math> (दाएं) और <math>\Omega_L</math> ( बाएं ),<ref name="HL2" /> | प्रतीक <math>\Omega</math> (इस अर्थ मेंO का कोई कारण नहीं है) 1914 में हार्डी और लिटिलवुड द्वारा प्रस्तुत किया गया था।<ref name="HL" /> हार्डी और लिटिलवुड ने भी 1916 में प्रतीकों की प्रारंभ की <math>\Omega_R</math> (दाएं) और <math>\Omega_L</math> ( बाएं ),<ref name="HL2" /> आधुनिक प्रतीकों के अग्रदूत <math>\Omega_+</math> (एक छोटे से O से छोटा नहीं है) और <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 391: | Line 365: | ||
और अधिकांशतः दोनों नोटेशन का उपयोग ही पेपर में किया जाता है। | और अधिकांशतः दोनों नोटेशन का उपयोग ही पेपर में किया जाता है। | ||
बिग-ओ मूल रूप से ऑर्डर ऑफ (ऑर्डनंग, बैचमैन 1894) को दर्शाता है, और इस प्रकार यह लैटिन अक्षर है। न तो बैचमैन और न ही लैंडौ ने कभी इसे [[ ऑमिक्रॉन | ऑमिक्रॉन]] कहा। इस प्रतीक को बहुत बाद में (1976) नुथ ने बड़े ओमीक्रॉन के रूप में देखा,<ref name="knuth" />संभवतः प्रतीक [[ओमेगा]] की उनकी परिभाषा के संदर्भ में। अंक [[0]] का प्रयोग नहीं किया जाना चाहिए. | बिग-ओ मूल रूप से ऑर्डर ऑफ (ऑर्डनंग, बैचमैन 1894) को दर्शाता है, और इस प्रकार यह लैटिन अक्षर है। न तो बैचमैन और न ही लैंडौ ने कभी इसे [[ ऑमिक्रॉन |ऑमिक्रॉन]] कहा। इस प्रतीक को बहुत बाद में (1976) नुथ ने बड़े ओमीक्रॉन के रूप में देखा,<ref name="knuth" />संभवतः प्रतीक [[ओमेगा]] की उनकी परिभाषा के संदर्भ में। अंक [[0]] का प्रयोग नहीं किया जाना चाहिए. | ||
== यह भी देखें == | == यह भी देखें == | ||
* स्पर्शोन्मुख विस्तार: टेलर के सूत्र को सामान्य बनाने वाले फलनों का सन्निकटन | * स्पर्शोन्मुख विस्तार: टेलर के सूत्र को सामान्य बनाने वाले फलनों का सन्निकटन | ||
* एसिम्प्टोटिक रूप से इष्टतम एल्गोरिदम: वाक्यांश जो अधिकांशतः एल्गोरिदम का वर्णन करने के लिए उपयोग किया जाता है जिसमें समस्या के लिए निचली सीमा के स्थिरांक के अन्दर एसिम्प्टोटिक रूप से ऊपरी सीमा होती है | * एसिम्प्टोटिक रूप से इष्टतम एल्गोरिदम: वाक्यांश जो अधिकांशतः एल्गोरिदम का वर्णन करने के लिए उपयोग किया जाता है जिसमें समस्या के लिए निचली सीमा के स्थिरांक के अन्दर एसिम्प्टोटिक रूप से ऊपरी सीमा होती है | ||
* [[संभाव्यता संकेतन में बड़ा O | * [[संभाव्यता संकेतन में बड़ा O]]: O<sub>p</sub>, o<sub>p</sub>* [[निम्न को सीमित करें और श्रेष्ठ को सीमित करें]]: इस आलेख में उपयोग किए गए कुछ सीमा संकेतन का स्पष्टीकरण | ||
* [[मास्टर प्रमेय (एल्गोरिदम का विश्लेषण)]]: बिगओनोटेशन का उपयोग करके विभाजित करें और जीतें पुनरावर्ती एल्गोरिदम का विश्लेषण करने के लिए | * [[मास्टर प्रमेय (एल्गोरिदम का विश्लेषण)]]: बिगओनोटेशन का उपयोग करके विभाजित करें और जीतें पुनरावर्ती एल्गोरिदम का विश्लेषण करने के लिए | ||
* नचबिन का प्रमेय: [[जटिल विश्लेषणात्मक]] फलनों को सीमित करने की स्पष्ट विधि जिससे [[अभिन्न परिवर्तन]] के अभिसरण के क्षेत्र को बताया जा सके | * नचबिन का प्रमेय: [[जटिल विश्लेषणात्मक]] फलनों को सीमित करने की स्पष्ट विधि जिससे [[अभिन्न परिवर्तन]] के अभिसरण के क्षेत्र को बताया जा सके |
Revision as of 16:18, 1 July 2023
Fit approximation |
---|
Concepts |
Orders of approximation Scale analysis · Big O notation Curve fitting · False precision Significant figures |
Other fundamentals |
Approximation · Generalization error Taylor polynomial Scientific modelling |
बिग O नोटेशन गणितीय नोटेशन है जो किसी फलन (गणित) के स्पर्शोन्मुख विश्लेषण का वर्णन करता है जब किसी फलन का तर्क किसी विशेष मूल्य या अनंत की ओर जाता है। बिगओपॉल गुस्ताव हेनरिक बैचमैन द्वारा आविष्कृत संबंधित एसिम्प्टोटिक नोटेशन का सदस्य है,[1] एडमंड लैंडौ,[2] और अन्य, जिन्हें सामूहिक रूप से बैचमैन-लैंडौ संकेतन या एसिम्प्टोटिक संकेतन कहा जाता है। अक्षर O को बैचमैन द्वारा विक्ट ऑर्डनंग जर्मन के लिए चुना गया था, जिसका अर्थ सन्निकटन का क्रम है।
कंप्यूटर विज्ञान में, बिगओनोटेशन का उपयोग कम्प्यूटेशनल जटिलता सिद्धांत के लिए किया जाता है, जिसके अनुसार इनपुट आकार बढ़ने के साथ उनके रन टाइम या स्पेस की आवश्यकताएं कैसे बढ़ती हैं।[3] विश्लेषणात्मक संख्या सिद्धांत में, बड़े O नोटेशन का उपयोग अधिकांशतः अंकगणितीय फलन और उत्तम समझे जाने वाले सन्निकटन के बीच अंतर पर सीमा व्यक्त करने के लिए किया जाता है; इस तरह के अंतर का प्रसिद्ध उदाहरण अभाज्य संख्या प्रमेय में शेष पद है। इसी तरह के अनुमान प्रदान करने के लिए कई अन्य क्षेत्रों में भी बिगओनोटेशन का उपयोग किया जाता है।
बिगओनोटेशन उनकी विकास दर के अनुसार फलनों को चित्रित करता है: समान एसिम्प्टोटिक विकास दर वाले विभिन्न फलनों को ही O नोटेशन का उपयोग करके दर्शाया जा सकता है। इस प्रकार 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) इसके विस्तार के सामान्य है,
उपयोग
बिगओनोटेशन के अनुप्रयोग के दो मुख्य क्षेत्र हैं:
- गणित में, इसका उपयोग सामान्यतः बिगओनोटेशन इनफिनिटेसिमल एसिम्प्टोटिक्स का वर्णन करने के लिए किया जाता है, विशेष रूप से काटे गए टेलर श्रृंखला या एसिम्प्टोटिक विस्तार के स्थिति में वर्णन करने के लिए किया जाता है
- कंप्यूटर विज्ञान में, यह बिगओनोटेशन अनंत स्पर्शोन्मुख विस्तार उपयोगी है
दोनों अनुप्रयोगों में, फलन g(x) के अन्दर प्रदर्शित हो रहा है O(·) को सामान्यतः यथासंभव सरल चुना जाता है, निरंतर कारकों और निचले क्रम की नियमो को छोड़ दिया जाता है।
इस नोटेशन के दो औपचारिक रूप से निकट, किन्तु स्पष्ट रूप से भिन्न उपयोग हैं:
- अनंत स्पर्शोन्मुखता
- बहुत छोता एसिम्प्टोटिक्स।
यह अंतर केवल अनुप्रयोग में है और सिद्धांत रूप में नहीं, चूँकि - बड़े O के लिए औपचारिक परिभाषा दोनों स्थितियों के लिए समान है, केवल फलन तर्क के लिए अलग-अलग सीमाएं हैं।
अनंत स्पर्शोन्मुख
दक्षता के लिए एल्गोरिदम का विश्लेषण करते समय बिगओनोटेशन उपयोगी होता है। उदाहरण के लिए, आकार की समस्या को पूरा करने में लगने वाला समय (या चरणों की संख्या) n पाया जा सकता है T(n) = 4n2 − 2n + 2. जैसा n बड़ा हो जाता है, n2 सारांश हावी हो जाएगा, जिससे अन्य सभी नियमो की उपेक्षा की जा सके - उदाहरण के लिए जब n = 500, शब्द 4n2 से 1000 गुना बड़ा है 2n अवधि उत्तरार्द्ध को अनदेखा करने से अधिकांश उद्देश्यों के लिए अभिव्यक्ति के मूल्य पर नगण्य प्रभाव पड़ेगा। इसके अतिरिक्त, यदि हम अभिव्यक्ति के सन्निकटन के किसी अन्य आदेश से तुलना करते हैं, जैसे कि पद युक्त अभिव्यक्ति, तो गुणांक अप्रासंगिक हो जाते हैं n3 या n4. तथापि T(n) = 1,000,000n2, यदि U(n) = n3, बाद वाला सदैव पहले वाले से बार अधिक होगा n से बड़ा हो जाता है 1,000,000 (T(1,000,000) = 1,000,0003 = U(1,000,000)). इसके अतिरिक्त, चरणों की संख्या मशीन मॉडल के विवरण पर निर्भर करती है जिस पर एल्गोरिदम चलता है, किन्तु विभिन्न प्रकार की मशीनें सामान्यतः एल्गोरिदम को निष्पादित करने के लिए आवश्यक चरणों की संख्या में केवल स्थिर कारक से भिन्न होती हैं। जिससे बड़ा O नोटेशन जो बचता है उसे पकड़ लेता है: हम या तो लिखते हैं
या
और कहें कि एल्गोरिदम का क्रम है n2 समय जटिलता. संकेत का अभिप्राय अपने सामान्य गणितीय अर्थ में सामान्य को व्यक्त करना नहीं है, किन्तु अधिक बोलचाल की भाषा है, इसलिए दूसरी अभिव्यक्ति को कभी-कभी अधिक स्पष्ट माना जाता है (नीचे सामान्य चिह्न चर्चा देखें) जबकि पहली को कुछ लोगों द्वारा दुरुपयोग माना जाता है .[6]
अनंतिम स्पर्शोन्मुखता
बिगओका उपयोग टेलर श्रृंखला अनुमान त्रुटि और गणितीय फलन के सन्निकटन में अभिसरण का वर्णन करने के लिए भी किया जा सकता है। सबसे महत्वपूर्ण शब्दों को स्पष्ट रूप से लिखा जाता है, और फिर सबसे कम महत्वपूर्ण शब्दों को बड़े O शब्द में संक्षेपित किया जाता है। उदाहरण के लिए, एक्सपोनेंशियल फलन औपचारिक परिभाषा और इसकी दो अभिव्यक्तियों पर विचार करें जो कब मान्य हैं
दूसरा व्यंजक O(x3 का अर्थ है त्रुटि ex − (1 + x + x2/2) का निरपेक्ष मान अधिक से अधिक कुछ स्थिर |x3| समय है जब x 0 के अधिक निकट होता है।
गुण
यदि फलन f को अन्य फलनों के सीमित योग के रूप में लिखा जा सकता है, फिर सबसे तेजी से बढ़ने वाला क्रम f(n) निर्धारित करता है उदाहरण के लिए,
विशेष रूप से, यदि कोई फलन किसी बहुपद n से घिरा हो सकता है , फिर ऐसे n अनंत की ओर प्रवृत्त होता है, कोई बहुपद के निचले-क्रम वाले पदों की उपेक्षा कर सकता है। सेट O(nc) और O(cn) बहुत अलग हैं. यदि c से बड़ा है, तो बाद वाला बहुत तेजी से बढ़ता है। फलन जो तेजी से बढ़ता है nc किसी के लिए c को सुपरपोलिनोमियल कहा जाता है। वह जो प्रपत्र के किसी भी घातांकीय फलन की तुलना में अधिक धीरे-धीरे बढ़ता है cn को उपघातीय कहा जाता है। एल्गोरिदम को ऐसे समय की आवश्यकता हो सकती है जो सुपरपोलिनोमियल और सबएक्सपोनेंशियल दोनों हो; इसके उदाहरणों में पूर्णांक गुणनखंडन और फलन nlog n के लिए सबसे तेज़ ज्ञात एल्गोरिदम सम्मिलित हैं .
हम किसी भी शक्ति को नजरअंदाज कर सकते हैं n लघुगणक के अंदर सेट O(log n) बिलकुल वैसा ही है O(log(nc)). लघुगणक केवल स्थिर कारक से भिन्न होते हैं (क्योंकि log(nc) = c log n) और इस प्रकार बड़ा 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) जब इनपुट संख्या के फलन के रूप में मापा जाता है
उत्पाद
योग
यदि और तब . यह इस प्रकार है कि यदि और तब . दूसरे शब्दों में, यह दूसरा कथन यही कहता है उत्तल शंकु है.
एक स्थिरांक से गुणा
माना k शून्येतर स्थिरांक है। तब . दूसरे शब्दों में, यदि , तब
एकाधिक चर
बिगओ(और छोटेO, Ω, आदि) का उपयोग कई वेरिएबल्स के साथ भी किया जा सकता है। कई चरों के लिए बड़े 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 = O(n2) और n2 = O(n2) से n = n2 जैसी हास्यास्पद चीजें निकाल सकते हैं।[10] एक अन्य पत्र में नथ ने यह भी बताया कि "समानता चिह्न ऐसे अंकन के संबंध में सममित नहीं है" जैसा कि इस अंकन में है "गणितज्ञ परंपरागत रूप से चिह्न का उपयोग करते हैं क्योंकि वे अंग्रेजी में "is" शब्द का उपयोग करते हैं: अरस्तू एक आदमी है किन्तु एक आदमी है आवश्यक नहीं कि अरस्तू ही हो"।[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 (n2) की ज्ञात समय जटिलता है), और सबरूटीन चलने के बाद एल्गोरिदम को अतिरिक्त लेना होगा 55n3 + 2n + 10 समाप्त होने से पहले के चरण इस प्रकार एल्गोरिथ्म की समग्र समय जटिलता को इस प्रकार व्यक्त किया जा सकता है T(n) = 55n3 + O(n2). यहाँ नियम 2n + 10 तेजी से बढ़ने वालेO (n2) में समाहित हो गए हैं). फिर, यह उपयोग प्रतीक के कुछ औपचारिक अर्थों की उपेक्षा करता है, किन्तु यह प्रकार के सुविधाजनक प्लेसहोल्डर के रूप में बड़े O नोटेशन का उपयोग करने की अनुमति देता है।
एकाधिक उपयोग
अधिक जटिल उपयोग में,O(·) समीकरण में विभिन्न स्थानों पर प्रकट हो सकता है, यहाँ तक कि प्रत्येक पक्ष पर कई बार भी उदाहरण के लिए, निम्नलिखित सत्य हैं :
टाइपसेटिंग
बिगओको इटैलिकाइज़्ड अपरकेस O के रूप में टाइप किया गया है, जैसा कि निम्नलिखित उदाहरण में है: .[12][13] टेक्स में, यह केवल गणित मोड के अंदर O टाइप करके निर्मित होता है। ग्रीक-नामांकित बैचमैन-लैंडौ नोटेशन के विपरीत, इसे किसी विशेष प्रतीक की आवश्यकता नहीं है। फिर भी, कुछ लेखक सुलेख संस्करण का उपयोग करते हैं ।[14][15]
सामान्य फलनों के क्रम
यहां उन फलन के वर्गों की सूची दी गई है जो सामान्यतः एल्गोरिदम के चलने के समय का विश्लेषण करते समय सामने आते हैं। प्रत्येक स्थिति में, c धनात्मक स्थिरांक है और n बिना किसी सीमा के बढ़ता है। धीमी गति से बढ़ने वाले फलनों को सामान्यतः पहले सूचीबद्ध किया जाता है।
नोटेशन | नाम | उदहारण |
---|---|---|
स्थिरांक | यह निर्धारित करना कि कोई बाइनरी संख्या सम है या विषम; स्थिरांक-आकार लुकअप तालिका का उपयोग करके (−1)𝑛 की गणना करना | |
दोहरा लघुगणक | समान रूप से वितरित मूल्यों की क्रमबद्ध सरणी में इंटरपोलेशन खोज का उपयोग करके किसी आइटम को खोजने में खर्च की गई तुलनाओं की औसत संख्या | |
लघुगणकीय | बाइनरी खोज या संतुलित खोज ट्री के साथ-साथ द्विपद ढेर में सभी परिचालनों के साथ क्रमबद्ध सरणी में एक आइटम ढूंढना | |
बहुगणितीय | मैट्रिक्स श्रृंखला क्रम को समानांतर रैंडम-एक्सेस मशीन पर बहुगणितीय समय में हल किया जा सकता है। | |
भिन्नात्मक शक्ति | के-डी वृक्ष में खोज रहा हूँ | |
रेखीय | किसी अवर्गीकृत सूची में या किसी अवर्गीकृत सरणी में कोई आइटम ढूँढना; रिपल कैरी द्वारा दो n-बिट पूर्णांक जोड़ना | |
n लॉग-स्टार n | सीडेल एल्गोरिथ्म, या संघ-खोज एल्गोरिथ्म का उपयोग करके एक साधारण बहुभुज का त्रिकोणासन करना। ध्यान दें कि | |
लीनियरिथ्मिक, लॉगलीनियर, क्वासिलिनियर, या "n लॉग n" | तेजी से फूरियर रूपांतरण निष्पादित करना; सबसे तेज़ संभव तुलना प्रकार; हीपसॉर्ट और मर्ज सॉर्ट | |
द्विघात | स्कूली पुस्तक गुणन द्वारा दो n-अंकीय संख्याओं को गुणा करना; सरल सॉर्टिंग एल्गोरिदम, जैसे बबल सॉर्ट, चयन सॉर्ट और इंसर्शन सॉर्ट; (सबसे खराब स्थिति) कुछ सामान्यतः तेज़ सॉर्टिंग एल्गोरिदम जैसे कि क्विकॉर्ट, शेलसॉर्ट और ट्री सॉर्ट पर बाध्य | |
बहुपद या बीजगणितीय | वृक्ष-आसन्न व्याकरण विश्लेषण; द्विदलीय ग्राफ़ के लिए अधिकतम मिलान; एलयू अपघटन के साथ निर्धारक का पता लगाना | |
एल-नोटेशन या उप-घातांकीय | द्विघात छलनी या संख्या क्षेत्र छलनी का उपयोग करके किसी संख्या का गुणनखंड करना | |
घातीय | गतिशील प्रोग्रामिंग का उपयोग करके ट्रैवलिंग सेल्समैन समस्या का (सटीक) समाधान ढूंढना; पाशविक-बल खोज का उपयोग करके यह निर्धारित करना कि क्या दो तार्किक कथन समतुल्य हैं | |
भाज्य | क्रूर-बल खोज के माध्यम से ट्रैवलिंग सेल्समैन की समस्या का समाधान; किसी पोसेट के सभी अप्रतिबंधित क्रमपरिवर्तन उत्पन्न करना; लाप्लास विस्तार के साथ निर्धारक का पता लगाना; एक सेट के सभी विभाजनों की गणना करना |
कथन कभी-कभी कमजोर हो जाता है स्पर्शोन्मुख जटिलता के लिए सरल सूत्र प्राप्त करता है किसी के लिए और , का उपसमुच्चय है किसी के लिए , इसलिए इसे किसी बड़े क्रम वाला बहुपद माना जा सकता है।
संबंधित स्पर्शोन्मुख संकेतन
कंप्यूटर विज्ञान में बिगओका व्यापक रूप से उपयोग किया जाता है। कुछ अन्य संबंधित नोटेशनों के साथ, यह बैचमैन-लैंडौ नोटेशन के वर्ग का निर्माण करता है।
लिटिल-ओ नोटेशन
सहज रूप से, प्रमाणित "f(x) o(g(x)) है" (पढ़ें "f(x) g(x) का छोटा-o है") का अर्थ है कि g(x) f(x) की तुलना में बहुत तेजी से बढ़ता है . पहले की तरह, मान लीजिए कि f एक वास्तविक या जटिल मान वाला फलन है और g एक वास्तविक मान वाला फलन है, दोनों को सकारात्मक वास्तविक संख्याओं के कुछ असीमित उपसमुच्चय पर परिभाषित किया गया है, जैसे कि x के सभी बड़े पर्याप्त मानों के लिए g(x) सख्ती से सकारात्मक है।
यदि प्रत्येक सकारात्मक स्थिरांक के लिए वहां स्थिरांक ε उपस्थित है ऐसा है कि
उदाहरण के लिए, किसी के पास है
- और दोनों जैसे
- औपचारिक परिभाषा|बिग-ओ संकेतन की परिभाषा और छोटे-ओ की परिभाषा के बीच अंतर यह है कि जहां पूर्व को कम से कम स्थिरांक एम के लिए सत्य होना चाहिए, वहीं बाद वाले को प्रत्येक सकारात्मक स्थिरांक के लिए मान्य होना चाहिए ε,चूँकि छोटा [17] इस तरह, लिटिल-ओ नोटेशन संबंधित बिग-ओ नोटेशन की तुलना में सशक्त कथन बनाता है: प्रत्येक फलन जो कि जी का छोटा-ओ है, वह भी जी का बड़ा-ओ है, किन्तु प्रत्येक फलन जो जी का बड़ा-ओ है वह भी नहीं है जी का छोटा-ओ. उदाहरण के लिए, किन्तु .
चूँकि g(x) अशून्य है, या कम से कम निश्चित बिंदु से परे अशून्य हो जाता है, संबंध के सामान्य है
- (और वास्तव में लैंडौ ऐसा ही है [16] मूल रूप से लिटिल-ओ नोटेशन को परिभाषित किया गया था)।
लिटिल-ओ कई अंकगणितीय संक्रियाओं का सम्मान करता है। उदाहरण के लिए,
- यदि c शून्येतर स्थिरांक है और तब , और
- यदि और तब
यह सकर्मक संबंध संबंध को भी संतुष्ट करता है:
- यदि और तब
बिग ओमेगा संकेतन
एक अन्य स्पर्शोन्मुख संकेतन है , बिग ओमेगा पढ़ें।[18] कथन की दो व्यापक और असंगत परिभाषाएँ हैं
- जैसा ,
जहां a कुछ वास्तविक संख्या है, ∞, या −∞, जहां f और g, a के निकट में परिभाषित वास्तविक कार्य हैं, और जहां g इस निकट में सकारात्मक है।
हार्डी-लिटलवुड परिभाषा का उपयोग मुख्य रूप से विश्लेषणात्मक संख्या सिद्धांत में किया जाता है, और नुथ परिभाषा का उपयोग मुख्य रूप से कम्प्यूटेशनल जटिलता सिद्धांत में किया जाता है; परिभाषाएँ समतुल्य नहीं हैं.
हार्डी-लिटलवुड परिभाषा
1914 में गॉडफ्रे हेरोल्ड हार्डी और जॉन एडेंसर लिटिलवुड ने नया प्रतीक प्रस्तुत किया ,[19] जिसे इस प्रकार परिभाषित किया गया है:
- जैसा यदि
इस प्रकार का निषेध है
.
1916 में उन्हीं लेखकों ने दो नये प्रतीक प्रस्तुत किये और , के रूप में परिभाषित:[20]
- जैसा यदि ;
- जैसा यदि
इन प्रतीकों का प्रयोग 1924 में एडमंड लैंडौ द्वारा इन्हीं अर्थों में किया गया था।[21] लांडौ के बाद, नोटेशन का दोबारा कभी भी स्पष्ट रूप से उपयोग नहीं किया गया था; और .
ये तीन प्रतीक , साथ ही (कारण है कि और दोनों संतुष्ट हैं), अब वर्तमान में विश्लेषणात्मक संख्या सिद्धांत में उपयोग किया जाता है।[22][23]
सरल उदाहरण
अपने पास
- जैसा
और अधिक स्पष्ट रूप से
- जैसा
अपने पास
- जैसा
और अधिक स्पष्ट रूप से
- जैसा
चूँकि
- जैसा
नथ परिभाषा
1976 में डोनाल्ड नथ ने अपने उपयोग को उचित ठहराने के लिए पेपर प्रकाशित किया था -एक सशक्त संपत्ति का वर्णन करने के लिए प्रतीक।[24] नुथ ने लिखा: कंप्यूटर विज्ञान में अब तक मैंने जितने भी अनुप्रयोग देखे हैं, उनके लिए सशक्त आवश्यकता कहीं अधिक उपयुक्त है। उन्होंने परिभाषित किया था
टिप्पणी के साथ:चूँकि मैंने हार्डी और लिटिलवुड की परिभाषा बदल दी है , मुझे ऐसा करना उचित लगता है क्योंकि उनकी परिभाषा किसी भी तरह से व्यापक उपयोग में नहीं है, और क्योंकि तुलनात्मक रूप से दुर्लभ स्थितियों में जब उनकी परिभाषा प्रयुक्त होती है जिससे वे जो कहना चाहते हैं उसे कहने के अन्य विधि भी हैं।[24]
बैचमैन-लैंडौ नोटेशन का वर्ग
नोटेशन | नाम[24] | विवरण | औपचारिक परिभाषा | सीमा परिभाषा[25][26][27][24][19] |
---|---|---|---|---|
SmallO; स्माल Oh | f पर g का अस्वाभाविक रूप से प्रभुत्व है | |||
बिगओ; बड़ा ओह; बड़ा ओमीक्रॉन | उपरोक्त g द्वारा (स्थिरांक कारक तक) असम्बद्ध रूप से परिबद्ध है | |||
बड़ी थीटा | f ऊपर और नीचे दोनों तरफ g से असम्बद्ध रूप से घिरा हुआ है | and (नुथ संस्करण) | ||
के आदेश पर | f, स्पर्शोन्मुख रूप से g के बराबर है | |||
जटिलता सिद्धांत में बड़ा ओमेगा (नुथ) | f को नीचे g द्वारा असम्बद्ध रूप से परिबद्ध किया गया है | |||
छोटा ओमेगा | एफ स्पर्शोन्मुख रूप से जी पर हावी है | |||
संख्या सिद्धांत में बड़ा ओमेगा (हार्डी-लिटलवुड) | जी पर लक्षणात्मक रूप से प्रभुत्व नहीं है | 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]
कंप्यूटर विज्ञान में उपयोगअनौपचारिक रूप से, विशेष रूप से कंप्यूटर विज्ञान में, बड़े O नोटेशन का उपयोग अधिकांशतः एसिम्प्टोटिक ऊपरी और निचले सीमा # तंग सीमा का वर्णन करने के लिए कुछ अलग विधि से किया जा सकता है, जहां बड़े थीटा Θ नोटेशन का उपयोग किसी दिए गए संदर्भ में तथ्यात्मक रूप से अधिक उपयुक्त हो सकता है। उदाहरण के लिए, किसी फलन T(n) = 73n3+22n2 + 58 पर विचार करते समय, निम्नलिखित में से सभी सामान्यतः स्वीकार्य हैं, किन्तु कड़ी सीमाएं (जैसे नीचे संख्या 2 और 3) सामान्यतः सरल सीमाओं (जैसे नीचे संख्या 1) की तुलना में दृढ़ता से पसंद की जाती हैं।
समतुल्य अंग्रेजी कथन क्रमशः हैं:
इसलिए जबकि तीनों कथन सत्य हैं, प्रत्येक में उत्तरोत्तर अधिक जानकारी समाहित है। चूँकि, कुछ क्षेत्रों में, बड़े O नोटेशन (उपरोक्त सूचियों में नंबर 2) का उपयोग बड़े थीटा नोटेशन (उपरोक्त सूचियों में आइटम नंबर 3) की तुलना में अधिक सामान्यतः किया जाएगा। उदाहरण के लिए, यदि टी (n) इनपुट आकार n के लिए नए विकसित एल्गोरिदम के चलने के समय का प्रतिनिधित्व करता है, तो एल्गोरिदम के आविष्कारक और उपयोगकर्ता ऊपरी एसिम्प्टोटिक बाउंड लगाने के इच्छुक हो सकते हैं कि इसे चलाने में कितना समय लगेगा। निचली स्पर्शोन्मुख सीमा के बारे में स्पष्ट कथन। अन्य संकेतनअपनी पुस्तक एल्गोरिदम का परिचय में, थॉमस एच. कॉर्मेन, चार्ल्स ई. लेइसर्सन, रोनाल्ड एल. रिवेस्ट और क्लिफोर्ड स्टीन ने फलन के सेट पर विचार किया है जो संतुष्ट करता है उदाहरण के लिए, सही संकेतन में इस सेट को O(g) कहा जा सकता है, जहाँ [30]
लेखकों का कहना है कि सेट सदस्यता ऑपरेटर (∈) के अतिरिक्त सेट सदस्यता को दर्शाने के लिए समानता ऑपरेटर (=) का उपयोग नोटेशन का दुरुपयोग है, किन्तु ऐसा करने के लाभ हैं।[6] किसी समीकरण या असमानता के अंदर, एसिम्प्टोटिक नोटेशन का उपयोग सेटO (जी) में अज्ञात फलन के लिए होता है, जो निम्न-क्रम वाले शब्दों को समाप्त करता है, और समीकरणों में अनावश्यक अव्यवस्था को कम करने में मदद करता है, उदाहरण के लिए:[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 के लिए। कुछ लेखकO लिखते हैं*बाद वाली परिभाषा के समान उद्देश्य के लिए।[33] अनिवार्य रूप से, यह बड़ा O नोटेशन है, पॉलीलॉगरिदमिक फलन को अनदेखा कर रहा है क्योंकि एसिम्प्टोटिक विश्लेषण | कुछ अन्य सुपर-लघुगणकीय फलन के विकास-दर प्रभाव बड़े आकार के इनपुट मापदंड के लिए विकास-दर विस्फोट का संकेत देते हैं जो खराब रन-टाइम प्रदर्शन की पूर्वानुमान करने के लिए अधिक महत्वपूर्ण है लघुगणक-विकास कारक (ओं) द्वारा योगदान किए गए उत्तम-बिंदु प्रभावों की तुलना में। इस संकेतन का उपयोग अधिकांशतः विकास-दर के अन्दर होने वाली खामियों को दूर करने के लिए किया जाता है, जिन्हें वर्तमान स्थितियों के लिए बहुत कसकर बांधा गया है (लॉग के बाद से) किसी भी स्थिरांक k और किसी के लिए ε > 0). इसके अतिरिक्त एल-नोटेशन, के रूप में परिभाषित किया गया है उन फलनों के लिए सुविधाजनक है जो समय जटिलता#बहुपद समय और समय जटिलता#घातीय समय के बीच हैं . सामान्यीकरण और संबंधित उपयोगकिसी भी मानक वेक्टर स्थान में मान लेने वाले फलनों का सामान्यीकरण सीधा है (मानदंडों द्वारा निरपेक्ष मानों को प्रतिस्थापित करना), जहां एफ और जी को ही स्थान में अपने मान लेने की आवश्यकता नहीं है। किसी भी टोपोलॉजिकल समूह में मान लेने वाले फलनों का सामान्यीकरण भी संभव है सीमित प्रक्रिया x → xo मनमाना फ़िल्टर आधार, अर्थात निर्देशित नेट (गणित) एफ और जी को प्रस्तुत करके भी सामान्यीकृत किया जा सकता है। O नोटेशन का उपयोग अधिक सामान्य स्थानों में यौगिक और भिन्नता को परिभाषित करने के लिए किया जा सकता है, और फलनों की (स्पर्शोन्मुख) समतुल्यता को भी परिभाषित करने के लिए किया जा सकता है, जो कि तुल्यता संबंध है और संबंध f की तुलना में अधिक प्रतिबंधात्मक धारणा है, ऊपर से Θ(g) है। (यदि एफ और जी सकारात्मक वास्तविक मूल्य वाले फलन हैं तो यह लिम एफ/जी = 1 तक कम हो जाता है।) उदाहरण के लिए, 2x Θ(x) है, किन्तु 2x − xO(x) नहीं है। इतिहास (बाचमन-लैंडौ, हार्डी, और विनोग्राडोव नोटेशन)प्रतीक O को पहली बार संख्या सिद्धांतकार पॉल बैचमैन ने 1894 में अपनी पुस्तक एनालिटिशे ज़हलेनथियोरी (विश्लेषणात्मक संख्या सिद्धांत) के दूसरे खंड में प्रस्तुत किया था।[1] संख्या सिद्धांतकार एडमंड लैंडौ ने इसे अपनाया, और इस प्रकार 1909 में अंकन O को प्रस्तुत करने के लिए प्रेरित हुए;[2] इसलिए दोनों को अब लैंडौ प्रतीक कहा जाता है। इन नोटेशनों का उपयोग 1950 के दशक के समय स्पर्शोन्मुख विश्लेषण के लिए अनुप्रयुक्त गणित में किया गया था।[34] प्रतीक (इस अर्थ मेंO का कोई कारण नहीं है) 1914 में हार्डी और लिटिलवुड द्वारा प्रस्तुत किया गया था।[19] हार्डी और लिटिलवुड ने भी 1916 में प्रतीकों की प्रारंभ की (दाएं) और ( बाएं ),[20] आधुनिक प्रतीकों के अग्रदूत (एक छोटे से O से छोटा नहीं है) और (के छोटे से से बड़ा नहीं है). इस प्रकार ओमेगा प्रतीकों (उनके मूल अर्थ के साथ) को कभी-कभी लैंडौ प्रतीकों के रूप में भी जाना जाता है। यह संकेतन कम से कम 1950 के दशक से संख्या सिद्धांत में इसका सामान्यतः उपयोग किया जाने लगा।[35] 1970 के दशक में बिगओको डोनाल्ड नुथ द्वारा कंप्यूटर विज्ञान में लोकप्रिय बनाया गया, जिन्होंने संबंधित थीटा नोटेशन की प्रारंभ की, और ओमेगा नोटेशन के लिए अलग परिभाषा प्रस्तावित की।[24] लैंडौ ने कभी भी बड़े थीटा और छोटे ओमेगा प्रतीकों का उपयोग नहीं किया। हार्डी के प्रतीक थे (आधुनिकO अंकन के संदर्भ में)
(चूँकि हार्डी ने कभी भी नोटेशन को परिभाषित या उपयोग नहीं किया , और न , जैसा कि कभी-कभी रिपोर्ट किया गया है)। हार्डी ने प्रतीकों का परिचय दिया और (साथ ही कुछ अन्य प्रतीकों) को उनके 1910 के ट्रैक्ट ऑर्डर्स ऑफ इन्फिनिटी में प्रकाशित किया गया था, और उनका उपयोग केवल तीन पत्रों (1910-1913) में किया गया था। अपने लगभग 400 शेष पत्रों और पुस्तकों में उन्होंने लगातार लैंडौ प्रतीकोंO औरO का उपयोग किया। हार्डी के नोटेशन का अब उपयोग नहीं किया जाता है। दूसरी ओर, 1930 के दशक में,[36] रूसी संख्या सिद्धांतकार इवान मतवेयेविच विनोग्रादोव ने अपना अंकन प्रस्तुत किया , जिसका उपयोग संख्या सिद्धांत के अतिरिक्त तेजी से किया जा रहा है अंकन. अपने पास और अधिकांशतः दोनों नोटेशन का उपयोग ही पेपर में किया जाता है। बिग-ओ मूल रूप से ऑर्डर ऑफ (ऑर्डनंग, बैचमैन 1894) को दर्शाता है, और इस प्रकार यह लैटिन अक्षर है। न तो बैचमैन और न ही लैंडौ ने कभी इसे ऑमिक्रॉन कहा। इस प्रतीक को बहुत बाद में (1976) नुथ ने बड़े ओमीक्रॉन के रूप में देखा,[24]संभवतः प्रतीक ओमेगा की उनकी परिभाषा के संदर्भ में। अंक 0 का प्रयोग नहीं किया जाना चाहिए. यह भी देखें
सन्दर्भ और नोट्स
अग्रिम पठन
बाहरी संबंधThe Wikibook Data Structures has a page on the topic of: Big-O Notation Wikiversity solved a MyOpenMath problem using Big-O Notation
|