एकरमैन फलन: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 2: Line 2:
{{About|the mathematical function||Ackermann (disambiguation)}}
{{About|the mathematical function||Ackermann (disambiguation)}}
{{Use shortened footnotes|date=November 2022}}
{{Use shortened footnotes|date=November 2022}}
संगणनीयता सिद्धांत में, [[विल्हेम एकरमैन]] के नाम पर एकरमैन फलन, जो सबसे सरल में से एक है{{sfn|Monin|Hinchey|2003|p=61}} और सबसे पहले खोजे गए पूर्ण संगणनीय फलन का उदाहरण है जो मूल पुनरावर्ती फलन नहीं हैं। सभी [[आदिम पुनरावर्ती कार्य|मूल पुनरावर्ती फलन]] पूर्ण और संगणनीय हैं, लेकिन एकरमैन फलन यह दर्शाता है कि सभी पूर्ण संगणनीय फलन मूल मूल फलन की पुनरावर्ती नहीं हैं। एकरमैन के प्रकाशन के बाद{{sfn|Ackermann|1928}} उनके फलन के (जिसमें तीन गैर-ऋणात्मक पूर्णांक तर्क थे), कई लेखकों ने इसे विभिन्न उद्देश्यों के अनुरूप संशोधित किया, ताकि आज एकरमैन फलन मूल फलन के कई रूपों में से किसी को भी संदर्भित कर सके। एक सामान्य संस्करण, दो-तर्क एकरमैन-पीटर फलन को गैर-नकारात्मक पूर्णांक ''m'' और ''n'' के लिए निम्नानुसार परिभाषित किया गया है:
संगणनीयता सिद्धांत में, [[विल्हेम एकरमैन]] के नाम पर एकरमैन फलन, जो सबसे सरल फलन में से एक है{{sfn|Monin|Hinchey|2003|p=61}} और सबसे पहले खोजे गए पूर्ण संगणनीय फलन का उदाहरण है जो मूल पुनरावर्ती फलन नहीं हैं। सभी [[आदिम पुनरावर्ती कार्य|मूल पुनरावर्ती फलन]] पूर्ण और संगणनीय हैं, लेकिन एकरमैन फलन यह दर्शाता है कि सभी पूर्ण संगणनीय फलन मूल फलन की पुनरावर्ती नहीं हैं। एकरमैन के प्रकाशन के बाद{{sfn|Ackermann|1928}} उनके फलन के (जिसमें तीन गैर-ऋणात्मक पूर्णांक प्राचर थे), कई लेखकों ने इसे विभिन्न उद्देश्यों के अनुरूप संशोधित किया, ताकि आज एकरमैन फलन मूल फलन के कई रूपों में से किसी को भी संदर्भित कर सके। एक सामान्य संस्करण, दो-प्राचर एकरमैन-पीटर फलन को ऋणोतर पूर्णांक ''m'' और ''n'' के लिए निम्नानुसार परिभाषित किया गया है:


:<math>  
:<math>  
Line 11: Line 11:
\end{array}
\end{array}
</math>
</math>
छोटे इनपुट के लिए भी इसका मान तेजी से बढ़ता है। उदाहरण के लिए, {{nowrap|''A''(4, 2)}} 19,729 दशमलव अंकों का पूर्णांक है<ref>{{cite web |title=ए (4,2) का दशमलव विस्तार|archive-url= https://web.archive.org/web/20100120134707/http://kosara.net/thoughts/ackermann42.html |date=August 27, 2000| url= http://www.kosara.net/thoughts/ackermann42.html|archive-date=January 20, 2010|website=kosara.net }}</ref> (  2<sup>65536</sup>−3 के बराबर, अथवा  2<sup>2222</sup>−3).
छोटे आगम के लिए भी इसका मान तेजी से बढ़ता है। उदाहरण के लिए, {{nowrap|''A''(4, 2)}} 19,729 दशमलव अंकों का पूर्णांक है<ref>{{cite web |title=ए (4,2) का दशमलव विस्तार|archive-url= https://web.archive.org/web/20100120134707/http://kosara.net/thoughts/ackermann42.html |date=August 27, 2000| url= http://www.kosara.net/thoughts/ackermann42.html|archive-date=January 20, 2010|website=kosara.net }}</ref> (  2<sup>65536</sup>−3 के बराबर, अथवा  2<sup>2222</sup>−3).


== इतिहास ==
== इतिहास ==
1920 के दशक के अंत में, गणितज्ञ [[गेब्रियल सूडान]] और विल्हेम एकरमैन, [[डेविड हिल्बर्ट]] के छात्र, संगणना की नींव का अध्ययन कर रहे थे। सूडान और एकरमैन दोनों को पूर्ण संगणनीय फलन की खोज के लिए श्रेय दिया जाता है{{sfn|Calude|Marcus|Tevy|1979}} (जिसे कुछ संदर्भों में केवल "पुनरावर्ती" कहा जाता है) जो प्रिमिटिव रिकर्सिव फंक्शन नहीं हैं। सूडान ने कम प्रसिद्ध सूडान फलन प्रकाशित किया, फिर कुछ ही समय बाद और स्वतंत्र रूप से, 1928 में, एकरमैन ने अपना फलन प्रकाशित किया <math>\varphi</math> (ग्रीक अक्षर [[फ़ाई]])। एकरमैन का तीन-तर्क फलन, <math>\varphi(m, n, p)</math>, के लिए परिभाषित किया गया है <math>p=0,1,2</math>, यह जोड़, [[गुणा]] और [[घातांक]] के बुनियादी संचालन को पुन: पेश करता है
1920 के दशक के अंत में, गणितज्ञ [[गेब्रियल सूडान]] और विल्हेम एकरमैन, [[डेविड हिल्बर्ट]] के छात्र, संगणना की नींव का अध्ययन कर रहे थे। सूडान और एकरमैन दोनों को पूर्ण संगणनीय फलन की खोज के लिए श्रेय दिया जाता है{{sfn|Calude|Marcus|Tevy|1979}} (जिसे कुछ संदर्भों में केवल "पुनरावर्ती" कहा जाता है) जो मूल पुनरावर्ती फलन नहीं हैं। सूडान ने कम प्रसिद्ध सूडान फलन प्रकाशित किया, फिर कुछ ही समय बाद और स्वतंत्र रूप से, 1928 में, एकरमैन ने अपना फलन प्रकाशित किया <math>\varphi</math> (ग्रीक अक्षर [[फ़ाई]])। एकरमैन का तीन-प्राचर फलन, <math>\varphi(m, n, p)</math>, के लिए परिभाषित किया गया है <math>p=0,1,2</math>, यह जोड़, [[गुणा]] और [[घातांक]] के बुनियादी संचालन को पुन: पेश करता है


:<math>\begin{align}
:<math>\begin{align}
Line 51: Line 51:


=== परिभाषा: एम-एरी फलन === के रूप में
=== परिभाषा: एम-एरी फलन === के रूप में
एकरमैन का मूल तीन-तर्क फलन <math>\varphi(m, n, p)</math> गैर-नकारात्मक पूर्णांकों के लिए निम्नानुसार पुनरावर्तन परिभाषित किया गया है <math>m,n,</math> तथा <math>p</math>:
एकरमैन का मूल तीन-प्राचर फलन <math>\varphi(m, n, p)</math> ऋणोतर पूर्णांकों के लिए निम्नानुसार पुनरावर्तन परिभाषित किया गया है <math>m,n,</math> तथा <math>p</math>:


:<math>\begin{align}
:<math>\begin{align}
Line 60: Line 60:
\varphi(m, n, p) &= \varphi(m, \varphi(m, n-1, p), p - 1) && \text{for } n, p > 0
\varphi(m, n, p) &= \varphi(m, \varphi(m, n-1, p), p - 1) && \text{for } n, p > 0
\end{align}</math>
\end{align}</math>
विभिन्न दो-तर्क संस्करणों में से, पेटर और रॉबिन्सन द्वारा विकसित एक (जिसे अधिकांश लेखकों द्वारा एकरमैन फलन कहा जाता है) को गैर-नकारात्मक पूर्णांकों के लिए परिभाषित किया गया है <math>m</math> तथा <math>n</math> निम्नलिखित नुसार:
विभिन्न दो-प्राचर संस्करणों में से, पेटर और रॉबिन्सन द्वारा विकसित एक (जिसे अधिकांश लेखकों द्वारा एकरमैन फलन कहा जाता है) को ऋणोतर पूर्णांकों के लिए परिभाषित किया गया है <math>m</math> तथा <math>n</math> निम्नलिखित नुसार:


:<math>  
:<math>  
Line 74: Line 74:
  2[m](n+3)-3 & m>0 \\
  2[m](n+3)-3 & m>0 \\
\end{cases}</math>
\end{cases}</math>
: या, नुथ के अप-एरो नोटेशन में लिखा गया है (पूर्णांक सूचकांकों तक विस्तारित <math>\geq -2</math>):
: या, नुथ के उच्च-तीर संकेतन में लिखा गया है (पूर्णांक सूचकांकों तक विस्तारित <math>\geq -2</math>):
:::<math> = \begin{cases}
:::<math> = \begin{cases}
  n+1 & m=0 \\
  n+1 & m=0 \\
Line 167: Line 167:
[[स्यूडोकोड]] प्रकाशित हो चुकी है। {{harvtxt|Grossman|Zeitman|1988}}.
[[स्यूडोकोड]] प्रकाशित हो चुकी है। {{harvtxt|Grossman|Zeitman|1988}}.


उदाहरण के लिए, इनपुट पर <math>\langle 2,1 \rangle</math>,
उदाहरण के लिए, आगम पर <math>\langle 2,1 \rangle</math>,
{|
{|
|align="left"|the stack configurations{{space|4}}
|align="left"|the stack configurations{{space|4}}
Line 258: Line 258:
उदाहरण
उदाहरण


इनपुट पर <math>\langle 1,2,1 \rangle</math> क्रमिक ढेर विन्यास हैं
आगम पर <math>\langle 1,2,1 \rangle</math> क्रमिक ढेर विन्यास हैं
:<math>\begin{align}
:<math>\begin{align}
& \underline{1,2,1}
& \underline{1,2,1}
Line 333: Line 333:
\end{align}</math>
\end{align}</math>
टिप्पणियां
टिप्पणियां
*किसी दिए गए इनपुट पर अब तक प्रस्तुत टीआरएस समान चरणों में अभिसरण करते हैं। वे समान कटौती नियमों का भी उपयोग करते हैं (इस तुलना में नियमों r1, r2, r3 को क्रमशः नियम r4, r5, r6/r7 के समान माना जाता है)। उदाहरण के लिए, की कमी <math>A(2,1)</math> 14 चरणों में अभिसरित होता है: 6 × r1, 3 × r2, 5 × r3। की कमी <math>A_2(1)</math> समान 14 चरणों में अभिसरित होता है: 6 × r4, 3 × r5, 5 × r6/r7। टीआरएस उस क्रम में भिन्न होते हैं जिसमें कटौती नियम लागू होते हैं।
*किसी दिए गए आगम पर अब तक प्रस्तुत टीआरएस समान चरणों में अभिसरण करते हैं। वे समान कटौती नियमों का भी उपयोग करते हैं (इस तुलना में नियमों r1, r2, r3 को क्रमशः नियम r4, r5, r6/r7 के समान माना जाता है)। उदाहरण के लिए, की कमी <math>A(2,1)</math> 14 चरणों में अभिसरित होता है: 6 × r1, 3 × r2, 5 × r3। की कमी <math>A_2(1)</math> समान 14 चरणों में अभिसरित होता है: 6 × r4, 3 × r5, 5 × r6/r7। टीआरएस उस क्रम में भिन्न होते हैं जिसमें कटौती नियम लागू होते हैं।
*कब <math>A_{i}(n)</math> {r4, r5, r6} नियमों का पालन करते हुए गणना की जाती है, स्टैक की अधिकतम लंबाई नीचे रहती है <math>2 \times A(i,n)</math>. जब नियम r6 के स्थान पर कमी नियम r7 का उपयोग किया जाता है, तो स्टैक की अधिकतम लंबाई केवल होती है <math>2(i+2)</math>. ढेर की लंबाई रिकर्सन गहराई को दर्शाती है। नियमों के अनुसार कमी के रूप में {r4, r5, r7} में पुनरावर्तन की एक छोटी अधिकतम गहराई शामिल है,<ref group="n" name="letop6">The maximum depth of recursion refers to the number of levels of activation of a procedure which exist during the deepest call of the procedure. {{harvtxt|Cornelius|Kirby|1975}}</ref> यह गणना उस संबंध में अधिक कुशल है।
*कब <math>A_{i}(n)</math> {r4, r5, r6} नियमों का पालन करते हुए गणना की जाती है, स्टैक की अधिकतम लंबाई नीचे रहती है <math>2 \times A(i,n)</math>. जब नियम r6 के स्थान पर कमी नियम r7 का उपयोग किया जाता है, तो स्टैक की अधिकतम लंबाई केवल होती है <math>2(i+2)</math>. ढेर की लंबाई रिकर्सन गहराई को दर्शाती है। नियमों के अनुसार कमी के रूप में {r4, r5, r7} में पुनरावर्तन की एक छोटी अधिकतम गहराई शामिल है,<ref group="n" name="letop6">The maximum depth of recursion refers to the number of levels of activation of a procedure which exist during the deepest call of the procedure. {{harvtxt|Cornelius|Kirby|1975}}</ref> यह गणना उस संबंध में अधिक कुशल है।


Line 531: Line 531:
*नियमों के अनुसार गणना {b1 - b5, b7, r8 - r10} उस संबंध में अधिक कुशल है। पुनरावृत्ति <math>F^{n+1}(x) = F^{n}(F(x))</math> कोड के एक ब्लॉक पर बार-बार लूप को सिम्युलेट करता है।<ref group="n" name="letop7">'''LOOP''' n+1 '''TIMES DO''' F</ref> घोंसला बनाना तक सीमित है <math>(i+1)</math>, प्रति पुनरावृत्त फलन के लिए एक पुनरावर्तन स्तर। {{harvtxt|Meyer|Ritchie|1967}} यह पत्राचार दिखाया।
*नियमों के अनुसार गणना {b1 - b5, b7, r8 - r10} उस संबंध में अधिक कुशल है। पुनरावृत्ति <math>F^{n+1}(x) = F^{n}(F(x))</math> कोड के एक ब्लॉक पर बार-बार लूप को सिम्युलेट करता है।<ref group="n" name="letop7">'''LOOP''' n+1 '''TIMES DO''' F</ref> घोंसला बनाना तक सीमित है <math>(i+1)</math>, प्रति पुनरावृत्त फलन के लिए एक पुनरावर्तन स्तर। {{harvtxt|Meyer|Ritchie|1967}} यह पत्राचार दिखाया।
* ये विचार केवल पुनरावर्तन गहराई से संबंधित हैं। पुनरावृति का कोई भी तरीका समान नियमों को शामिल करते हुए समान संख्या में कटौती चरणों की ओर ले जाता है (जब नियम b6 और b7 को समान माना जाता है)। की कमी <math>A(2,1)</math> उदाहरण के लिए 35 चरणों में परिवर्तित होता है: 12 × b1, 4 × b2, 1 × b3, 4 × b5, 12 × b6/b7, 1 × r9, 1 × r10। फलनप्रणाली केवल उस क्रम को प्रभावित करती है जिसमें कटौती नियम लागू होते हैं।
* ये विचार केवल पुनरावर्तन गहराई से संबंधित हैं। पुनरावृति का कोई भी तरीका समान नियमों को शामिल करते हुए समान संख्या में कटौती चरणों की ओर ले जाता है (जब नियम b6 और b7 को समान माना जाता है)। की कमी <math>A(2,1)</math> उदाहरण के लिए 35 चरणों में परिवर्तित होता है: 12 × b1, 4 × b2, 1 × b3, 4 × b5, 12 × b6/b7, 1 × r9, 1 × r10। फलनप्रणाली केवल उस क्रम को प्रभावित करती है जिसमें कटौती नियम लागू होते हैं।
*निष्पादन समय का वास्तविक लाभ बार-बार उप-परिणामों की पुनर्गणना न करके ही प्राप्त किया जा सकता है। [[संस्मरण]] एक ऑप्टिमाइज़ेशन तकनीक है जहाँ फलन कॉल के परिणाम कैश किए जाते हैं और उसी इनपुट के फिर से आने पर वापस आ जाते हैं। उदाहरण के लिए देखें {{harvtxt|Ward|1993}}. {{harvtxt|Grossman|Zeitman|1988}} एक चालाक एल्गोरिदम प्रकाशित किया जो गणना करता है <math>A(i,n)</math> अंदर <math>\mathcal{O}(i A(i,n))</math> समय और भीतर <math>\mathcal{O}(i)</math> अंतरिक्ष।
*निष्पादन समय का वास्तविक लाभ बार-बार उप-परिणामों की पुनर्गणना न करके ही प्राप्त किया जा सकता है। [[संस्मरण]] एक ऑप्टिमाइज़ेशन तकनीक है जहाँ फलन कॉल के परिणाम कैश किए जाते हैं और उसी आगम के फिर से आने पर वापस आ जाते हैं। उदाहरण के लिए देखें {{harvtxt|Ward|1993}}. {{harvtxt|Grossman|Zeitman|1988}} एक चालाक एल्गोरिदम प्रकाशित किया जो गणना करता है <math>A(i,n)</math> अंदर <math>\mathcal{O}(i A(i,n))</math> समय और भीतर <math>\mathcal{O}(i)</math> अंतरिक्ष।


=== बड़ी संख्या ===
=== बड़ी संख्या ===
Line 626: Line 626:
| <math>(2\to(n+3)\to(m-2))-3</math>
| <math>(2\to(n+3)\to(m-2))-3</math>
|}
|}
यहां संख्याएं जो केवल रिकर्सिव एक्सपोनेंटिएशन या नुथ के अप-एरो नोटेशन के साथ व्यक्त की जाती हैं, बहुत बड़ी हैं और सादे दशमलव अंकों में नोट करने के लिए बहुत अधिक जगह लेती हैं।
यहां संख्याएं जो केवल रिकर्सिव एक्सपोनेंटिएशन या नुथ के उच्च-तीर संकेतन के साथ व्यक्त की जाती हैं, बहुत बड़ी हैं और सादे दशमलव अंकों में नोट करने के लिए बहुत अधिक जगह लेती हैं।


तालिका के इस प्रारंभिक खंड में बड़े मूल्यों के होने के बावजूद, कुछ और भी बड़ी संख्याओं को परिभाषित किया गया है, जैसे ग्राहम की संख्या, जिसे किसी भी छोटी संख्या में नूथ तीरों के साथ नहीं लिखा जा सकता है। यह संख्या एक ऐसी तकनीक के साथ बनाई गई है जो एकरमेन फलन को पुनरावर्ती रूप से लागू करने के समान है।
तालिका के इस प्रारंभिक खंड में बड़े मूल्यों के होने के बावजूद, कुछ और भी बड़ी संख्याओं को परिभाषित किया गया है, जैसे ग्राहम की संख्या, जिसे किसी भी छोटी संख्या में नूथ तीरों के साथ नहीं लिखा जा सकता है। यह संख्या एक ऐसी तकनीक के साथ बनाई गई है जो एकरमेन फलन को पुनरावर्ती रूप से लागू करने के समान है।
Line 672: Line 672:
*1, 2, या 3 जैसे m के छोटे मानों के लिए, एकरमैन फलन n के संबंध में अपेक्षाकृत धीमी गति से बढ़ता है (अधिकतम [[घातीय वृद्धि]] पर)। के लिये <math>m\geq 4</math>हालाँकि, यह बहुत अधिक तेज़ी से बढ़ता है; यहाँ तक की <math>A(4,2)</math> लगभग 2 है{{e|19728}}, और का दशमलव विस्तार <math>A(4, 3)</math> किसी भी विशिष्ट माप से बहुत बड़ा है।
*1, 2, या 3 जैसे m के छोटे मानों के लिए, एकरमैन फलन n के संबंध में अपेक्षाकृत धीमी गति से बढ़ता है (अधिकतम [[घातीय वृद्धि]] पर)। के लिये <math>m\geq 4</math>हालाँकि, यह बहुत अधिक तेज़ी से बढ़ता है; यहाँ तक की <math>A(4,2)</math> लगभग 2 है{{e|19728}}, और का दशमलव विस्तार <math>A(4, 3)</math> किसी भी विशिष्ट माप से बहुत बड़ा है।
*एक दिलचस्प पहलू यह है कि इसके द्वारा उपयोग किया जाने वाला एकमात्र अंकगणितीय ऑपरेशन 1 का जोड़ है। इसकी तेजी से बढ़ती शक्ति पूरी तरह से नेस्टेड पुनरावर्तन पर आधारित है। इसका तात्पर्य यह भी है कि इसके चलने का समय कम से कम इसके उत्पादन के अनुपात में है, और यह भी बहुत बड़ा है। वास्तविकता में, ज्यादातर मामलों में चलने का समय आउटपुट से कहीं बड़ा होता है; ऊपर देखो।
*एक दिलचस्प पहलू यह है कि इसके द्वारा उपयोग किया जाने वाला एकमात्र अंकगणितीय ऑपरेशन 1 का जोड़ है। इसकी तेजी से बढ़ती शक्ति पूरी तरह से नेस्टेड पुनरावर्तन पर आधारित है। इसका तात्पर्य यह भी है कि इसके चलने का समय कम से कम इसके उत्पादन के अनुपात में है, और यह भी बहुत बड़ा है। वास्तविकता में, ज्यादातर मामलों में चलने का समय आउटपुट से कहीं बड़ा होता है; ऊपर देखो।
* एक एकल-तर्क संस्करण <math>f(n)=A(n,n)</math> जो दोनों को बढ़ाता है <math>m</math> तथा <math>n</math> एक ही समय में प्रत्येक मूल पुनरावर्ती फलन को बौना कर देता है, जिसमें बहुत तेजी से बढ़ने वाले फलन शामिल हैं जैसे कि घातीय फलन, बहुउद्देशीय फलन, बहु- और [[superactorial]] फलन, और यहां तक ​​​​कि Knuth के अप-एरो नोटेशन का उपयोग करके परिभाषित फलन (अनुक्रमित अप-एरो को छोड़कर) प्रयोग किया जाता है)। यह देखा जा सकता है <math>f(n)</math> मोटे तौर पर तुलनीय है <math>f_{\omega}(n)</math> तेजी से बढ़ते पदानुक्रम में। यह दिखाने के लिए इस चरम वृद्धि का फायदा उठाया जा सकता है <math>f</math> जो स्पष्ट रूप से [[ट्यूरिंग मशीन]] जैसी अनंत मेमोरी वाली मशीन पर गणना योग्य है और इसलिए एक गणना योग्य फलन है, किसी भी मूल पुनरावर्ती फलन की तुलना में तेजी से बढ़ता है और इसलिए मूल पुनरावर्ती नहीं है।
* एक एकल-प्राचर संस्करण <math>f(n)=A(n,n)</math> जो दोनों को बढ़ाता है <math>m</math> तथा <math>n</math> एक ही समय में प्रत्येक मूल पुनरावर्ती फलन को बौना कर देता है, जिसमें बहुत तेजी से बढ़ने वाले फलन शामिल हैं जैसे कि घातीय फलन, बहुउद्देशीय फलन, बहु- और [[superactorial]] फलन, और यहां तक ​​​​कि Knuth के उच्च-तीर संकेतन का उपयोग करके परिभाषित फलन (अनुक्रमित उच्च-तीर को छोड़कर) प्रयोग किया जाता है)। यह देखा जा सकता है <math>f(n)</math> मोटे तौर पर तुलनीय है <math>f_{\omega}(n)</math> तेजी से बढ़ते पदानुक्रम में। यह दिखाने के लिए इस चरम वृद्धि का फायदा उठाया जा सकता है <math>f</math> जो स्पष्ट रूप से [[ट्यूरिंग मशीन]] जैसी अनंत मेमोरी वाली मशीन पर गणना योग्य है और इसलिए एक गणना योग्य फलन है, किसी भी मूल पुनरावर्ती फलन की तुलना में तेजी से बढ़ता है और इसलिए मूल पुनरावर्ती नहीं है।


=== मूल पुनरावर्ती === नहीं
=== मूल पुनरावर्ती === नहीं
Line 688: Line 688:


== उलटा ==
== उलटा ==
फलन के बाद से {{nowrap|1=&nbsp;''f''(''n'') = ''A''(''n'', ''n'')}} ऊपर माना गया बहुत तेजी से बढ़ता है, इसका उलटा फलन, f{{i sup|−1}}, बहुत धीमी गति से बढ़ता है। यह व्युत्क्रम एकरमैन फलन ''f''<sup>−1</sup> को आमतौर पर ''α'' से दर्शाया जाता है। वास्तव में, ''α''(''n'') किसी भी व्यावहारिक इनपुट आकार ''n'' के लिए 5 से कम है, क्योंकि {{nowrap|''A''(4, 4)}} के आदेश पर है <math>2^{2^{2^{2^{16}}}}</math>.
फलन के बाद से {{nowrap|1=&nbsp;''f''(''n'') = ''A''(''n'', ''n'')}} ऊपर माना गया बहुत तेजी से बढ़ता है, इसका उलटा फलन, f{{i sup|−1}}, बहुत धीमी गति से बढ़ता है। यह व्युत्क्रम एकरमैन फलन ''f''<sup>−1</sup> को आमतौर पर ''α'' से दर्शाया जाता है। वास्तव में, ''α''(''n'') किसी भी व्यावहारिक आगम आकार ''n'' के लिए 5 से कम है, क्योंकि {{nowrap|''A''(4, 4)}} के आदेश पर है <math>2^{2^{2^{2^{16}}}}</math>.


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

Revision as of 23:12, 17 December 2022

संगणनीयता सिद्धांत में, विल्हेम एकरमैन के नाम पर एकरमैन फलन, जो सबसे सरल फलन में से एक है[1] और सबसे पहले खोजे गए पूर्ण संगणनीय फलन का उदाहरण है जो मूल पुनरावर्ती फलन नहीं हैं। सभी मूल पुनरावर्ती फलन पूर्ण और संगणनीय हैं, लेकिन एकरमैन फलन यह दर्शाता है कि सभी पूर्ण संगणनीय फलन मूल फलन की पुनरावर्ती नहीं हैं। एकरमैन के प्रकाशन के बाद[2] उनके फलन के (जिसमें तीन गैर-ऋणात्मक पूर्णांक प्राचर थे), कई लेखकों ने इसे विभिन्न उद्देश्यों के अनुरूप संशोधित किया, ताकि आज एकरमैन फलन मूल फलन के कई रूपों में से किसी को भी संदर्भित कर सके। एक सामान्य संस्करण, दो-प्राचर एकरमैन-पीटर फलन को ऋणोतर पूर्णांक m और n के लिए निम्नानुसार परिभाषित किया गया है:

छोटे आगम के लिए भी इसका मान तेजी से बढ़ता है। उदाहरण के लिए, A(4, 2) 19,729 दशमलव अंकों का पूर्णांक है[3] ( 265536−3 के बराबर, अथवा 22222−3).

इतिहास

1920 के दशक के अंत में, गणितज्ञ गेब्रियल सूडान और विल्हेम एकरमैन, डेविड हिल्बर्ट के छात्र, संगणना की नींव का अध्ययन कर रहे थे। सूडान और एकरमैन दोनों को पूर्ण संगणनीय फलन की खोज के लिए श्रेय दिया जाता है[4] (जिसे कुछ संदर्भों में केवल "पुनरावर्ती" कहा जाता है) जो मूल पुनरावर्ती फलन नहीं हैं। सूडान ने कम प्रसिद्ध सूडान फलन प्रकाशित किया, फिर कुछ ही समय बाद और स्वतंत्र रूप से, 1928 में, एकरमैन ने अपना फलन प्रकाशित किया (ग्रीक अक्षर फ़ाई)। एकरमैन का तीन-प्राचर फलन, , के लिए परिभाषित किया गया है , यह जोड़, गुणा और घातांक के बुनियादी संचालन को पुन: पेश करता है

और p > 2 के लिए यह इन बुनियादी संचालनों को एक तरह से विस्तारित करता है जिसकी तुलना अतिसंचालन से की जा सकती है:

(कुल-गणना योग्य-लेकिन-नहीं-मूल-पुनरावर्ती फलन के रूप में इसकी ऐतिहासिक भूमिका के अलावा, एकरमैन के मूल फलन को घातांक से परे बुनियादी अंकगणितीय संचालन का विस्तार करने के लिए देखा जाता है, हालांकि एकरमैन के फलन के रूपांतरों के समान नहीं है जो विशेष रूप से डिज़ाइन किए गए हैं। वह उद्देश्य - जैसे रूबेन गुडस्टीन|गुडस्टीन का अतिसंचालन अनुक्रम।)

अनंत पर में,[5] डेविड हिल्बर्ट ने परिकल्पना की कि एकरमैन फलन मूल पुनरावर्ती नहीं था, लेकिन यह एकरमैन, हिल्बर्ट के निजी सचिव और पूर्व छात्र थे, जिन्होंने वास्तव में अपने पेपर ऑन हिल्बर्ट्स कंस्ट्रक्शन ऑफ़ द रियल नंबर्स में परिकल्पना को साबित किया था।[2][6] पीटर रोजसा[7] और राफेल रॉबिन्सन[8] बाद में एकरमैन फलन का एक दो-चर संस्करण विकसित किया जो लगभग सभी लेखकों द्वारा पसंद किया गया।

सामान्यीकृत अतिसंचालन, उदा। , एकरमैन फलन का भी एक संस्करण है।[9] 1963 में रॉबर्ट क्रेटन बक|आर.सी. बक एक सहज ज्ञान युक्त दो-चर आधारित है [n 1] प्रकार अतिसंचालन पर:[10][11]

अधिकांश अन्य संस्करणों की तुलना में बक के फलन में कोई अनावश्यक ऑफ़सेट नहीं है:

एकरमैन फलन के कई अन्य संस्करणों की जांच की गई है।[12]


परिभाषा

=== परिभाषा: एम-एरी फलन === के रूप में एकरमैन का मूल तीन-प्राचर फलन ऋणोतर पूर्णांकों के लिए निम्नानुसार पुनरावर्तन परिभाषित किया गया है तथा :

विभिन्न दो-प्राचर संस्करणों में से, पेटर और रॉबिन्सन द्वारा विकसित एक (जिसे अधिकांश लेखकों द्वारा एकरमैन फलन कहा जाता है) को ऋणोतर पूर्णांकों के लिए परिभाषित किया गया है तथा निम्नलिखित नुसार:

अतिसंचालन के संबंध में एकरमेन फलन भी व्यक्त किया गया है:[13][14]

या, नुथ के उच्च-तीर संकेतन में लिखा गया है (पूर्णांक सूचकांकों तक विस्तारित ):
या, समतुल्य रूप से, बक के फलन F के संदर्भ में:[10] :::


=== परिभाषा: पुनरावृत्त 1-एरी फलन === के रूप में परिभाषित करना के n-वें पुनरावृति के रूप में :

पुनरावृत्त फलन एक निश्चित संख्या में स्वयं के साथ एक फलन बनाने की प्रक्रिया है। फलन रचना एक साहचर्य ऑपरेशन है, इसलिए .

एकरमैन फलन को एकल फलन के अनुक्रम के रूप में समझना, कोई सेट कर सकता है .

फलन तब एक अनुक्रम बन जाता है एकल का[n 2] फलन, इटरेटेड फलन से परिभाषित:


संगणना

एकरमैन फलन की पुनरावर्ती परिभाषा को स्वाभाविक रूप से पुनर्लेखन | टर्म पुनर्लेखन प्रणाली (TRS) में स्थानांतरित किया जा सकता है।

=== टीआरएस, 2-एरी फलन === पर आधारित है 2-ary एकरमैन फलन की परिभाषा स्पष्ट कमी नियमों की ओर ले जाती है [15][16]

उदाहरण

गणना करना घटाव क्रम है [n 3]

Leftmost-outermost (one-step) strategy:             Leftmost-innermost (one-step) strategy:
         
         
         
         
         
         

गणना करना कोई स्टैक (अमूर्त डेटा प्रकार) का उपयोग कर सकता है, जिसमें प्रारंभ में तत्व होते हैं .

फिर बार-बार दो शीर्ष तत्वों को नियमों के अनुसार बदल दिया जाता है[n 4]

योजनाबद्ध रूप से, से शुरू :

जबकि ढेर की लंबाई <> 1
{
   पीओपी 2 तत्व;
   PUSH 1 या 2 या 3 तत्व, नियमों को लागू करते हुए r1, r2, r3
}

स्यूडोकोड प्रकाशित हो चुकी है। Grossman & Zeitman (1988).

उदाहरण के लिए, आगम पर ,

the stack configurations     reflect the reduction[n 5]
         
         
         
         
         
         
         
         
         
         
         
         
         
         

टिप्पणियां

  • रोसेटा कोड पर 225 कंप्यूटर भाषाओं में सबसे वामपंथी-अंतरतम रणनीति लागू की गई है।
  • सभी के लिए की गणना से अधिक नहीं लेता है कदम।[17]
  • Grossman & Zeitman (1988) बताया कि की गणना में ढेर की अधिकतम लंबाई है , जब तक कि .
उनका अपना एल्गोरिदम, स्वाभाविक रूप से पुनरावृत्त, गणना करता है अंदर समय और भीतर अंतरिक्ष।

=== टीआरएस, पुनरावृत्त 1-एरी फलन === पर आधारित है पुनरावृत्त 1-ary एकरमैन फलन की परिभाषा विभिन्न कमी नियमों की ओर ले जाती है

जैसा कि फलन रचना साहचर्य है, नियम r6 के बजाय परिभाषित किया जा सकता है

पिछले खंड की तरह की गणना ढेर के साथ लागू किया जा सकता है।

प्रारंभ में ढेर में तीन तत्व होते हैं .

फिर बार-बार तीन शीर्ष तत्वों को नियमों के अनुसार बदल दिया जाता है[n 4]: योजनाबद्ध रूप से, से शुरू :

जबकि ढेर की लंबाई <> 1
{
   पीओपी 3 तत्व;
   पुश 1 या 3 या 5 तत्व, नियमों को लागू करना r4, r5, r6;
}

उदाहरण

आगम पर क्रमिक ढेर विन्यास हैं

संगत समानताएं हैं

जब नियम r6 के बजाय कमी नियम r7 का उपयोग किया जाता है, तो स्टैक में प्रतिस्थापन का पालन किया जाएगा

क्रमिक स्टैक कॉन्फ़िगरेशन तब होगा

संगत समानताएं हैं

टिप्पणियां

  • किसी दिए गए आगम पर अब तक प्रस्तुत टीआरएस समान चरणों में अभिसरण करते हैं। वे समान कटौती नियमों का भी उपयोग करते हैं (इस तुलना में नियमों r1, r2, r3 को क्रमशः नियम r4, r5, r6/r7 के समान माना जाता है)। उदाहरण के लिए, की कमी 14 चरणों में अभिसरित होता है: 6 × r1, 3 × r2, 5 × r3। की कमी समान 14 चरणों में अभिसरित होता है: 6 × r4, 3 × r5, 5 × r6/r7। टीआरएस उस क्रम में भिन्न होते हैं जिसमें कटौती नियम लागू होते हैं।
  • कब {r4, r5, r6} नियमों का पालन करते हुए गणना की जाती है, स्टैक की अधिकतम लंबाई नीचे रहती है . जब नियम r6 के स्थान पर कमी नियम r7 का उपयोग किया जाता है, तो स्टैक की अधिकतम लंबाई केवल होती है . ढेर की लंबाई रिकर्सन गहराई को दर्शाती है। नियमों के अनुसार कमी के रूप में {r4, r5, r7} में पुनरावर्तन की एक छोटी अधिकतम गहराई शामिल है,[n 6] यह गणना उस संबंध में अधिक कुशल है।

टीआरएस, हाइपरऑपरेटरों पर आधारित

जैसा Sundblad (1971) - या Porto & Matos (1980) - स्पष्ट रूप से दिखाया गया है, एकरमेन फलन अतिसंचालन अनुक्रम के संदर्भ में व्यक्त किया जा सकता है:

या, बक के फलन के संदर्भ में, पैरामीटर सूची से निरंतर 2 को हटाने के बाद

बक का फलन ,[10] एकरमैन फलन का एक भिन्न रूप, जिसकी गणना निम्न कमी नियमों के साथ की जा सकती है:

नियम b6 के स्थान पर नियम को परिभाषित किया जा सकता है

एकरमैन फलन की गणना करने के लिए तीन कटौती नियमों को जोड़ना पर्याप्त है

ये नियम बेस केस ए (0, एन), संरेखण (एन + 3) और फज (-3) का ख्याल रखते हैं।

उदाहरण

गणना करना

using reduction rule :[n 5]     using reduction rule :[n 5]
         
         
         
         
         
         
                   
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         

मिलान करने वाली समानताएं हैं

  • जब टीआरएस कटौती नियम के साथ लागू की गई है: