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

From Vigyanwiki
m (Abhishek moved page एकरमैन समारोह to एकरमैन फलन without leaving a redirect)
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 14: Line 14:


== इतिहास ==
== इतिहास ==
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 27: Line 27:
\varphi(m, n, p) &\gtrapprox m[p+1](n+1) && \text{for } p > 3
\varphi(m, n, p) &\gtrapprox m[p+1](n+1) && \text{for } p > 3
\end{align}</math>
\end{align}</math>
(कुल-गणना योग्य-लेकिन-नहीं-आदिम-पुनरावर्ती कार्य के रूप में इसकी ऐतिहासिक भूमिका के अलावा, एकरमैन के मूल कार्य को घातांक से परे बुनियादी अंकगणितीय संचालन का विस्तार करने के लिए देखा जाता है, हालांकि एकरमैन के फ़ंक्शन के रूपांतरों के समान नहीं है जो विशेष रूप से डिज़ाइन किए गए हैं। वह उद्देश्य - जैसे रूबेन गुडस्टीन|गुडस्टीन का हाइपरऑपरेशन अनुक्रम।)
(कुल-गणना योग्य-लेकिन-नहीं-मूल-पुनरावर्ती फलन के रूप में इसकी ऐतिहासिक भूमिका के अलावा, एकरमैन के मूल फलन को घातांक से परे बुनियादी अंकगणितीय संचालन का विस्तार करने के लिए देखा जाता है, हालांकि एकरमैन के फलन के रूपांतरों के समान नहीं है जो विशेष रूप से डिज़ाइन किए गए हैं। वह उद्देश्य - जैसे रूबेन गुडस्टीन|गुडस्टीन का हाइपरऑपरेशन अनुक्रम।)


अनंत पर में,{{sfn|Hilbert|1926|p=185}} डेविड हिल्बर्ट ने परिकल्पना की कि एकरमैन फ़ंक्शन आदिम पुनरावर्ती नहीं था, लेकिन यह एकरमैन, हिल्बर्ट के निजी सचिव और पूर्व छात्र थे, जिन्होंने वास्तव में अपने पेपर ऑन हिल्बर्ट्स कंस्ट्रक्शन ऑफ़ द रियल नंबर्स में परिकल्पना को साबित किया था।{{sfn|Ackermann|1928}}{{sfn|van Heijenoort|1977}}
अनंत पर में,{{sfn|Hilbert|1926|p=185}} डेविड हिल्बर्ट ने परिकल्पना की कि एकरमैन फलन मूल पुनरावर्ती नहीं था, लेकिन यह एकरमैन, हिल्बर्ट के निजी सचिव और पूर्व छात्र थे, जिन्होंने वास्तव में अपने पेपर ऑन हिल्बर्ट्स कंस्ट्रक्शन ऑफ़ द रियल नंबर्स में परिकल्पना को साबित किया था।{{sfn|Ackermann|1928}}{{sfn|van Heijenoort|1977}}
पीटर रोजसा{{sfn|Péter|1935}} और [[राफेल रॉबिन्सन]]{{sfn|Robinson|1948}} बाद में एकरमैन फ़ंक्शन का एक दो-चर संस्करण विकसित किया जो लगभग सभी लेखकों द्वारा पसंद किया गया।
पीटर रोजसा{{sfn|Péter|1935}} और [[राफेल रॉबिन्सन]]{{sfn|Robinson|1948}} बाद में एकरमैन फलन का एक दो-चर संस्करण विकसित किया जो लगभग सभी लेखकों द्वारा पसंद किया गया।


सामान्यीकृत हाइपरऑपरेशन, उदा। <math>G(m, a, b) = a[m]b</math>, एकरमैन फ़ंक्शन का भी एक संस्करण है।{{sfn|Ritchie|1965|p=1028}}
सामान्यीकृत हाइपरऑपरेशन, उदा। <math>G(m, a, b) = a[m]b</math>, एकरमैन फलन का भी एक संस्करण है।{{sfn|Ritchie|1965|p=1028}}
1963 में रॉबर्ट क्रेटन बक|आर.सी. बक एक सहज ज्ञान युक्त दो-चर आधारित है <ref group="n" name="letop3">with parameter order reversed</ref> प्रकार <math>\operatorname{F}</math> हाइपरऑपरेशन पर:{{sfn|Buck|1963}}{{sfn|Meeussen|Zantema|1992|p=6}}
1963 में रॉबर्ट क्रेटन बक|आर.सी. बक एक सहज ज्ञान युक्त दो-चर आधारित है <ref group="n" name="letop3">with parameter order reversed</ref> प्रकार <math>\operatorname{F}</math> हाइपरऑपरेशन पर:{{sfn|Buck|1963}}{{sfn|Meeussen|Zantema|1992|p=6}}
:<math>\operatorname{F}(m,n) = 2[m]n.</math>
:<math>\operatorname{F}(m,n) = 2[m]n.</math>
अधिकांश अन्य संस्करणों की तुलना में बक के कार्य में कोई अनावश्यक ऑफ़सेट नहीं है:
अधिकांश अन्य संस्करणों की तुलना में बक के फलन में कोई अनावश्यक ऑफ़सेट नहीं है:


:<math>\begin{align}
:<math>\begin{align}
Line 45: Line 45:
  &\quad\vdots
  &\quad\vdots
\end{align}</math>
\end{align}</math>
एकरमैन फ़ंक्शन के कई अन्य संस्करणों की जांच की गई है।{{sfn|Munafo|1999a}}
एकरमैन फलन के कई अन्य संस्करणों की जांच की गई है।{{sfn|Munafo|1999a}}




== परिभाषा ==
== परिभाषा ==


=== परिभाषा: एम-एरी फ़ंक्शन === के रूप में
=== परिभाषा: एम-एरी फलन === के रूप में
एकरमैन का मूल तीन-तर्क कार्य <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 69: Line 69:
\end{array}
\end{array}
</math>
</math>
हाइपरऑपरेशन के संबंध में एकरमेन फ़ंक्शन भी व्यक्त किया गया है:{{sfn|Sundblad|1971}}{{sfn|Porto|Matos|1980}}
हाइपरऑपरेशन के संबंध में एकरमेन फलन भी व्यक्त किया गया है:{{sfn|Sundblad|1971}}{{sfn|Porto|Matos|1980}}
:<math>A(m,n) = \begin{cases}
:<math>A(m,n) = \begin{cases}
  n+1 & m=0 \\
  n+1 & m=0 \\
Line 85: Line 85:




=== परिभाषा: पुनरावृत्त 1-एरी फ़ंक्शन === के रूप में
=== परिभाषा: पुनरावृत्त 1-एरी फलन === के रूप में
परिभाषित करना <math>f^{n}</math> के n-वें पुनरावृति के रूप में <math>f</math>:
परिभाषित करना <math>f^{n}</math> के n-वें पुनरावृति के रूप में <math>f</math>:
:<math>\begin{array}{rll}
:<math>\begin{array}{rll}
Line 91: Line 91:
f^{n+1}(x) & = & f(f^{n}(x))\,\,\,\, \{\textrm{for} \,\, n \geq 1\}
f^{n+1}(x) & = & f(f^{n}(x))\,\,\,\, \{\textrm{for} \,\, n \geq 1\}
\end{array}</math>
\end{array}</math>
पुनरावृत्त फलन एक निश्चित संख्या में स्वयं के साथ एक फलन बनाने की प्रक्रिया है। फ़ंक्शन रचना एक साहचर्य ऑपरेशन है, इसलिए <math>f(f^{n}(x)) = f^{n}(f(x))</math>.
पुनरावृत्त फलन एक निश्चित संख्या में स्वयं के साथ एक फलन बनाने की प्रक्रिया है। फलन रचना एक साहचर्य ऑपरेशन है, इसलिए <math>f(f^{n}(x)) = f^{n}(f(x))</math>.


एकरमैन फ़ंक्शन को यूनरी फ़ंक्शंस के अनुक्रम के रूप में समझना, कोई सेट कर सकता है <math>\operatorname{A}_{m}(n) = \operatorname{A}(m,n)</math>.
एकरमैन फलन को यूनरी फ़ंक्शंस के अनुक्रम के रूप में समझना, कोई सेट कर सकता है <math>\operatorname{A}_{m}(n) = \operatorname{A}(m,n)</math>.


समारोह तब एक अनुक्रम बन जाता है <math>\operatorname{A}_0, \operatorname{A}_1, \operatorname{A}_2, ...</math> यूनरी का<ref group="n" name="letop4">'[[Currying|curried]]'</ref> फ़ंक्शंस, इटरेटेड फ़ंक्शन से परिभाषित:
समारोह तब एक अनुक्रम बन जाता है <math>\operatorname{A}_0, \operatorname{A}_1, \operatorname{A}_2, ...</math> यूनरी का<ref group="n" name="letop4">'[[Currying|curried]]'</ref> फ़ंक्शंस, इटरेटेड फलन से परिभाषित:
:<math>  
:<math>  
\begin{array}{lcl}
\begin{array}{lcl}
Line 105: Line 105:


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


=== टीआरएस, 2-एरी फ़ंक्शन === पर आधारित है
=== टीआरएस, 2-एरी फलन === पर आधारित है
<u>2-ary</u> एकरमैन फ़ंक्शन की परिभाषा स्पष्ट कमी नियमों की ओर ले जाती है {{sfn|Grossman|Zeitman|1988}}{{sfn|Paulson|2021}}
<u>2-ary</u> एकरमैन फलन की परिभाषा स्पष्ट कमी नियमों की ओर ले जाती है {{sfn|Grossman|Zeitman|1988}}{{sfn|Paulson|2021}}
:<math>  
:<math>  
\begin{array}{lll}
\begin{array}{lll}
Line 223: Line 223:
: उनका अपना एल्गोरिदम, स्वाभाविक रूप से पुनरावृत्त, गणना करता है <math>\operatorname{A}(m,n)</math> अंदर <math>\mathcal{O}(m \operatorname{A}(m,n))</math> समय और भीतर <math>\mathcal{O}(m)</math> अंतरिक्ष।
: उनका अपना एल्गोरिदम, स्वाभाविक रूप से पुनरावृत्त, गणना करता है <math>\operatorname{A}(m,n)</math> अंदर <math>\mathcal{O}(m \operatorname{A}(m,n))</math> समय और भीतर <math>\mathcal{O}(m)</math> अंतरिक्ष।


=== टीआरएस, पुनरावृत्त 1-एरी फ़ंक्शन === पर आधारित है
=== टीआरएस, पुनरावृत्त 1-एरी फलन === पर आधारित है
पुनरावृत्त <u>1-ary</u> एकरमैन फ़ंक्शन की परिभाषा विभिन्न कमी नियमों की ओर ले जाती है
पुनरावृत्त <u>1-ary</u> एकरमैन फलन की परिभाषा विभिन्न कमी नियमों की ओर ले जाती है
:<math>  
:<math>  
\begin{array}{lll}
\begin{array}{lll}
Line 232: Line 232:
\end{array}
\end{array}
</math>
</math>
जैसा कि फ़ंक्शन रचना साहचर्य है, नियम r6 के बजाय परिभाषित किया जा सकता है
जैसा कि फलन रचना साहचर्य है, नियम r6 के बजाय परिभाषित किया जा सकता है
:<math>
:<math>
\begin{array}{lll}
\begin{array}{lll}
Line 337: Line 337:


=== टीआरएस, हाइपरऑपरेटरों पर आधारित ===
=== टीआरएस, हाइपरऑपरेटरों पर आधारित ===
जैसा {{harvtxt|Sundblad|1971}} - या {{harvtxt|Porto|Matos|1980}} - स्पष्ट रूप से दिखाया गया है, एकरमेन फ़ंक्शन हाइपरऑपरेशन अनुक्रम के संदर्भ में व्यक्त किया जा सकता है:
जैसा {{harvtxt|Sundblad|1971}} - या {{harvtxt|Porto|Matos|1980}} - स्पष्ट रूप से दिखाया गया है, एकरमेन फलन हाइपरऑपरेशन अनुक्रम के संदर्भ में व्यक्त किया जा सकता है:
:<math>A(m,n) = \begin{cases}
:<math>A(m,n) = \begin{cases}
  n+1 & m=0 \\
  n+1 & m=0 \\
  2[m](n+3) - 3 & m>0 \\
  2[m](n+3) - 3 & m>0 \\
\end{cases}</math>
\end{cases}</math>
या, बक के कार्य के संदर्भ में, पैरामीटर सूची से निरंतर 2 को हटाने के बाद
या, बक के फलन के संदर्भ में, पैरामीटर सूची से निरंतर 2 को हटाने के बाद
    
    
:::<math> = \begin{cases}
:::<math> = \begin{cases}
Line 348: Line 348:
  F(m,n+3) - 3 & m>0 \\
  F(m,n+3) - 3 & m>0 \\
\end{cases}</math>
\end{cases}</math>
बक का कार्य <math>\operatorname{F}(m,n) = 2[m]n</math>,{{sfn|Buck|1963}} एकरमैन फ़ंक्शन का एक भिन्न रूप, जिसकी गणना निम्न कमी नियमों के साथ की जा सकती है:
बक का फलन <math>\operatorname{F}(m,n) = 2[m]n</math>,{{sfn|Buck|1963}} एकरमैन फलन का एक भिन्न रूप, जिसकी गणना निम्न कमी नियमों के साथ की जा सकती है:
:<math>  
:<math>  
\begin{array}{lll}
\begin{array}{lll}
Line 365: Line 365:
\end{array}
\end{array}
</math>
</math>
एकरमैन फ़ंक्शन की गणना करने के लिए तीन कटौती नियमों को जोड़ना पर्याप्त है
एकरमैन फलन की गणना करने के लिए तीन कटौती नियमों को जोड़ना पर्याप्त है
:<math>  
:<math>  
\begin{array}{lll}
\begin{array}{lll}
Line 529: Line 529:
टिप्पणियां
टिप्पणियां
* की गणना <math>\operatorname{A}_{i}(n)</math> नियमों के मुताबिक {बी 1 - बी 5, बी 6, आर 8 - आर 10} गहरा रिकर्सिव है। नेस्टेड की अधिकतम गहराई <math>F</math>एस है <math>A(i,n)+1</math>. अपराधी वह क्रम है जिसमें पुनरावृत्ति निष्पादित होती है: <math>F^{n+1}(x) = F(F^{n}(x))</math>. सबसे पहला <math>F</math> पूरे क्रम के सामने आने के बाद ही गायब हो जाता है।
* की गणना <math>\operatorname{A}_{i}(n)</math> नियमों के मुताबिक {बी 1 - बी 5, बी 6, आर 8 - आर 10} गहरा रिकर्सिव है। नेस्टेड की अधिकतम गहराई <math>F</math>एस है <math>A(i,n)+1</math>. अपराधी वह क्रम है जिसमें पुनरावृत्ति निष्पादित होती है: <math>F^{n+1}(x) = F(F^{n}(x))</math>. सबसे पहला <math>F</math> पूरे क्रम के सामने आने के बाद ही गायब हो जाता है।
*नियमों के अनुसार गणना {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 569: Line 569:


== मूल्यों की तालिका ==
== मूल्यों की तालिका ==
एकरमैन फ़ंक्शन की गणना एक अनंत तालिका के रूप में की जा सकती है। सबसे पहले, प्राकृतिक संख्याओं को शीर्ष पंक्ति में रखें। तालिका में संख्या निर्धारित करने के लिए, संख्या को तुरंत बाईं ओर ले जाएं। फिर उस संख्या का उपयोग उस संख्या और एक पंक्ति द्वारा दिए गए कॉलम में आवश्यक संख्या देखने के लिए करें। यदि इसके बाईं ओर कोई संख्या नहीं है, तो बस पिछली पंक्ति में 1 वाले कॉलम को देखें। यहाँ तालिका का एक छोटा ऊपरी-बाएँ भाग है:
एकरमैन फलन की गणना एक अनंत तालिका के रूप में की जा सकती है। सबसे पहले, प्राकृतिक संख्याओं को शीर्ष पंक्ति में रखें। तालिका में संख्या निर्धारित करने के लिए, संख्या को तुरंत बाईं ओर ले जाएं। फिर उस संख्या का उपयोग उस संख्या और एक पंक्ति द्वारा दिए गए कॉलम में आवश्यक संख्या देखने के लिए करें। यदि इसके बाईं ओर कोई संख्या नहीं है, तो बस पिछली पंक्ति में 1 वाले कॉलम को देखें। यहाँ तालिका का एक छोटा ऊपरी-बाएँ भाग है:


{| class="wikitable"
{| class="wikitable"
Line 628: Line 628:
यहां संख्याएं जो केवल रिकर्सिव एक्सपोनेंटिएशन या नुथ के अप-एरो नोटेशन के साथ व्यक्त की जाती हैं, बहुत बड़ी हैं और सादे दशमलव अंकों में नोट करने के लिए बहुत अधिक जगह लेती हैं।
यहां संख्याएं जो केवल रिकर्सिव एक्सपोनेंटिएशन या नुथ के अप-एरो नोटेशन के साथ व्यक्त की जाती हैं, बहुत बड़ी हैं और सादे दशमलव अंकों में नोट करने के लिए बहुत अधिक जगह लेती हैं।


तालिका के इस प्रारंभिक खंड में बड़े मूल्यों के होने के बावजूद, कुछ और भी बड़ी संख्याओं को परिभाषित किया गया है, जैसे ग्राहम की संख्या, जिसे किसी भी छोटी संख्या में नूथ तीरों के साथ नहीं लिखा जा सकता है। यह संख्या एक ऐसी तकनीक के साथ बनाई गई है जो एकरमेन फ़ंक्शन को पुनरावर्ती रूप से लागू करने के समान है।
तालिका के इस प्रारंभिक खंड में बड़े मूल्यों के होने के बावजूद, कुछ और भी बड़ी संख्याओं को परिभाषित किया गया है, जैसे ग्राहम की संख्या, जिसे किसी भी छोटी संख्या में नूथ तीरों के साथ नहीं लिखा जा सकता है। यह संख्या एक ऐसी तकनीक के साथ बनाई गई है जो एकरमेन फलन को पुनरावर्ती रूप से लागू करने के समान है।


यह उपरोक्त तालिका का दोहराव है, लेकिन पैटर्न को स्पष्ट रूप से दिखाने के लिए फ़ंक्शन परिभाषा से प्रासंगिक अभिव्यक्ति द्वारा प्रतिस्थापित मानों के साथ:
यह उपरोक्त तालिका का दोहराव है, लेकिन पैटर्न को स्पष्ट रूप से दिखाने के लिए फलन परिभाषा से प्रासंगिक अभिव्यक्ति द्वारा प्रतिस्थापित मानों के साथ:


{| class="wikitable"
{| class="wikitable"
Line 670: Line 670:
=== सामान्य टिप्पणी ===
=== सामान्य टिप्पणी ===
*यह तुरंत स्पष्ट नहीं हो सकता है कि का मूल्यांकन <math>A(m, n)</math> हमेशा समाप्त होता है। हालाँकि, पुनरावर्तन बाध्य है क्योंकि प्रत्येक पुनरावर्ती अनुप्रयोग में या तो <math>m</math> घटता है, या <math>m</math> वही रहता है और <math>n</math> घटता है। हर बार कि <math>n</math> शून्य हो जाता है, <math>m</math> घटता है, इसलिए <math>m</math> अंततः शून्य भी हो जाता है। (अधिक तकनीकी रूप से व्यक्त, प्रत्येक मामले में जोड़ी <math>(m,n)</math> जोड़े पर शब्दकोष क्रम में घटता है, जो एक अच्छी तरह से क्रमित है, ठीक एकल गैर-ऋणात्मक पूर्णांकों के क्रम की तरह; इसका मतलब यह है कि कोई व्यक्ति लगातार कई बार क्रम में नीचे नहीं जा सकता है।) हालांकि, कब <math>m</math> घटता है कि कितना पर कोई ऊपरी सीमा नहीं है <math>n</math> बढ़ सकता है - और यह अक्सर बहुत बढ़ जाएगा।
*यह तुरंत स्पष्ट नहीं हो सकता है कि का मूल्यांकन <math>A(m, n)</math> हमेशा समाप्त होता है। हालाँकि, पुनरावर्तन बाध्य है क्योंकि प्रत्येक पुनरावर्ती अनुप्रयोग में या तो <math>m</math> घटता है, या <math>m</math> वही रहता है और <math>n</math> घटता है। हर बार कि <math>n</math> शून्य हो जाता है, <math>m</math> घटता है, इसलिए <math>m</math> अंततः शून्य भी हो जाता है। (अधिक तकनीकी रूप से व्यक्त, प्रत्येक मामले में जोड़ी <math>(m,n)</math> जोड़े पर शब्दकोष क्रम में घटता है, जो एक अच्छी तरह से क्रमित है, ठीक एकल गैर-ऋणात्मक पूर्णांकों के क्रम की तरह; इसका मतलब यह है कि कोई व्यक्ति लगातार कई बार क्रम में नीचे नहीं जा सकता है।) हालांकि, कब <math>m</math> घटता है कि कितना पर कोई ऊपरी सीमा नहीं है <math>n</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, 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> जो स्पष्ट रूप से [[ट्यूरिंग मशीन]] जैसी अनंत मेमोरी वाली मशीन पर गणना योग्य है और इसलिए एक गणना योग्य फलन है, किसी भी मूल पुनरावर्ती फलन की तुलना में तेजी से बढ़ता है और इसलिए मूल पुनरावर्ती नहीं है।


=== आदिम पुनरावर्ती === नहीं
=== मूल पुनरावर्ती === नहीं


एकरमैन फ़ंक्शन किसी भी आदिम पुनरावर्ती फ़ंक्शन की तुलना में तेज़ी से बढ़ता है और इसलिए स्वयं आदिम पुनरावर्ती नहीं है। सबूत का स्केच यह है: k रिकर्सन तक का उपयोग करके परिभाषित एक आदिम पुनरावर्ती फ़ंक्शन की तुलना में धीमी गति से बढ़ना चाहिए <math>f_{k+1}(n)</math>, (k+1)-th फ़ंक्शन तेजी से बढ़ते पदानुक्रम में, लेकिन एकरमैन फ़ंक्शन कम से कम उतनी ही तेज़ी से बढ़ता है <math>f_\omega(n)</math>.
एकरमैन फलन किसी भी मूल पुनरावर्ती फलन की तुलना में तेज़ी से बढ़ता है और इसलिए स्वयं मूल पुनरावर्ती नहीं है। सबूत का स्केच यह है: k रिकर्सन तक का उपयोग करके परिभाषित एक मूल पुनरावर्ती फलन की तुलना में धीमी गति से बढ़ना चाहिए <math>f_{k+1}(n)</math>, (k+1)-th फलन तेजी से बढ़ते पदानुक्रम में, लेकिन एकरमैन फलन कम से कम उतनी ही तेज़ी से बढ़ता है <math>f_\omega(n)</math>.


विशेष रूप से, एक दिखाता है कि प्रत्येक आदिम पुनरावर्ती कार्य के लिए <math>f(x_1,\ldots,x_n)</math> एक गैर-ऋणात्मक पूर्णांक मौजूद है <math>t</math> जैसे कि सभी गैर-ऋणात्मक पूर्णांकों के लिए <math>x_1,\ldots,x_n</math>,
विशेष रूप से, एक दिखाता है कि प्रत्येक मूल पुनरावर्ती फलन के लिए <math>f(x_1,\ldots,x_n)</math> एक गैर-ऋणात्मक पूर्णांक मौजूद है <math>t</math> जैसे कि सभी गैर-ऋणात्मक पूर्णांकों के लिए <math>x_1,\ldots,x_n</math>,


:<math>f(x_1,\ldots,x_n)<A(t,\max_i x_i).</math>
:<math>f(x_1,\ldots,x_n)<A(t,\max_i x_i).</math>
एक बार यह स्थापित हो जाने के बाद, यह उसका अनुसरण करता है <math>A</math> स्वयं आदिम पुनरावर्ती नहीं है, अन्यथा डालने के बाद से <math>x_1=x_2=t</math> विरोधाभास की ओर ले जाएगा <math>A(t,t)<A(t,t).</math>
एक बार यह स्थापित हो जाने के बाद, यह उसका अनुसरण करता है <math>A</math> स्वयं मूल पुनरावर्ती नहीं है, अन्यथा डालने के बाद से <math>x_1=x_2=t</math> विरोधाभास की ओर ले जाएगा <math>A(t,t)<A(t,t).</math>
सबूत<ref>{{Cite web|url=http://planetmath.org/ackermannfunctionisnotprimitiverecursive|title=एकरमैन फ़ंक्शन प्रिमिटिव रिकर्सिव {{!}} Planetmath.org नहीं है|last=Woo|first=Chi|date=2009-12-17|website=planetmath.org|language=en|archive-url= https://web.archive.org/web/20130509202634/http://planetmath.org/ackermannfunctionisnotprimitiverecursive|archive-date=2013-05-09|url-status=dead}}</ref> निम्नानुसार आगे बढ़ता है: वर्ग को परिभाषित करें <math>\mathcal{A}</math> एकरमेन फ़ंक्शन की तुलना में धीमी गति से बढ़ने वाले सभी कार्यों में से
सबूत<ref>{{Cite web|url=http://planetmath.org/ackermannfunctionisnotprimitiverecursive|title=एकरमैन फ़ंक्शन प्रिमिटिव रिकर्सिव {{!}} Planetmath.org नहीं है|last=Woo|first=Chi|date=2009-12-17|website=planetmath.org|language=en|archive-url= https://web.archive.org/web/20130509202634/http://planetmath.org/ackermannfunctionisnotprimitiverecursive|archive-date=2013-05-09|url-status=dead}}</ref> निम्नानुसार आगे बढ़ता है: वर्ग को परिभाषित करें <math>\mathcal{A}</math> एकरमेन फलन की तुलना में धीमी गति से बढ़ने वाले सभी फलनों में से


:<math>\mathcal{A}=\left\{ f\,\bigg|\,\exists t\ \forall x_1\cdots \forall x_n:\ f(x_1,\ldots,x_n)<A(t, \max_i x_i) \right\} </math>
:<math>\mathcal{A}=\left\{ f\,\bigg|\,\exists t\ \forall x_1\cdots \forall x_n:\ f(x_1,\ldots,x_n)<A(t, \max_i x_i) \right\} </math>
और दिखाओ <math>\mathcal{A}</math> सभी आदिम पुनरावर्ती कार्य शामिल हैं। उत्तरार्द्ध इसे दिखाकर हासिल किया जाता है <math>\mathcal{A}</math> इसमें निरंतर कार्य, उत्तराधिकारी कार्य, प्रक्षेपण कार्य शामिल हैं और यह कार्य रचना और आदिम पुनरावर्तन के संचालन के तहत बंद है।
और दिखाओ <math>\mathcal{A}</math> सभी मूल पुनरावर्ती फलन शामिल हैं। उत्तरार्द्ध इसे दिखाकर हासिल किया जाता है <math>\mathcal{A}</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>.
समारोह के बाद से {{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 और इसी तरह की शर्तों को हटाकर अभिव्यक्ति को सरल बनाते हैं।


व्युत्क्रम एकरमैन फ़ंक्शन के दो-पैरामीटर भिन्नता को निम्नानुसार परिभाषित किया जा सकता है, जहां <math>\lfloor x \rfloor</math> मंजिल समारोह है:
व्युत्क्रम एकरमैन फलन के दो-पैरामीटर भिन्नता को निम्नानुसार परिभाषित किया जा सकता है, जहां <math>\lfloor x \rfloor</math> मंजिल समारोह है:


:<math>\alpha(m,n) = \min\{i \geq 1 : A(i,\lfloor m/n \rfloor) \geq \log_2 n\}.</math>
:<math>\alpha(m,n) = \min\{i \geq 1 : A(i,\lfloor m/n \rfloor) \geq \log_2 n\}.</math>
यह कार्य ऊपर उल्लिखित एल्गोरिदम के अधिक सटीक विश्लेषण में उत्पन्न होता है, और अधिक परिष्कृत समय सीमा प्रदान करता है। असम्बद्ध-सेट डेटा संरचना में, एम संचालन की संख्या का प्रतिनिधित्व करता है जबकि एन तत्वों की संख्या का प्रतिनिधित्व करता है; मिनिमम स्पैनिंग ट्री एल्गोरिथम में, m किनारों की संख्या का प्रतिनिधित्व करता है जबकि n वर्टिकल की संख्या का प्रतिनिधित्व करता है। की कई थोड़ी अलग परिभाषाएँ {{nowrap|''α''(''m'', ''n'')}} मौजूद; उदाहरण के लिए, {{nowrap|log<sub>2</sub> ''n''}} कभी-कभी n द्वारा प्रतिस्थापित किया जाता है, और कभी-कभी फर्श फ़ंक्शन को [[छत समारोह]] द्वारा प्रतिस्थापित किया जाता है।
यह फलन ऊपर उल्लिखित एल्गोरिदम के अधिक सटीक विश्लेषण में उत्पन्न होता है, और अधिक परिष्कृत समय सीमा प्रदान करता है। असम्बद्ध-सेट डेटा संरचना में, एम संचालन की संख्या का प्रतिनिधित्व करता है जबकि एन तत्वों की संख्या का प्रतिनिधित्व करता है; मिनिमम स्पैनिंग ट्री एल्गोरिथम में, m किनारों की संख्या का प्रतिनिधित्व करता है जबकि n वर्टिकल की संख्या का प्रतिनिधित्व करता है। की कई थोड़ी अलग परिभाषाएँ {{nowrap|''α''(''m'', ''n'')}} मौजूद; उदाहरण के लिए, {{nowrap|log<sub>2</sub> ''n''}} कभी-कभी n द्वारा प्रतिस्थापित किया जाता है, और कभी-कभी फर्श फलन को [[छत समारोह]] द्वारा प्रतिस्थापित किया जाता है।


अन्य अध्ययन एक के व्युत्क्रम कार्य को परिभाषित कर सकते हैं जहां m एक स्थिरांक पर सेट है, जैसे कि व्युत्क्रम किसी विशेष पंक्ति पर लागू होता है। {{sfn|Pettie|2002}}
अन्य अध्ययन एक के व्युत्क्रम फलन को परिभाषित कर सकते हैं जहां m एक स्थिरांक पर सेट है, जैसे कि व्युत्क्रम किसी विशेष पंक्ति पर लागू होता है। {{sfn|Pettie|2002}}
एकरमैन फ़ंक्शन का व्युत्क्रम आदिम पुनरावर्ती है।{{sfn|Matos|2014}}
एकरमैन फलन का व्युत्क्रम मूल पुनरावर्ती है।{{sfn|Matos|2014}}




== बेंचमार्क के रूप में प्रयोग करें ==
== बेंचमार्क के रूप में प्रयोग करें ==
एकरमैन फ़ंक्शन, अत्यधिक गहरी रिकर्सन के संदर्भ में इसकी परिभाषा के कारण, रिकर्सन को अनुकूलित करने के लिए [[संकलक]] की क्षमता के बेंचमार्क के रूप में उपयोग किया जा सकता है। इस तरह से एकरमैन के कार्य का पहला प्रकाशित उपयोग 1970 में ड्रैगोस वैदा द्वारा किया गया था।{{sfn|Vaida|1970}} और, लगभग एक साथ, 1971 में, येंगवे सुंदब्लाड द्वारा।{{sfn|Sundblad|1971}}
एकरमैन फलन, अत्यधिक गहरी रिकर्सन के संदर्भ में इसकी परिभाषा के कारण, रिकर्सन को अनुकूलित करने के लिए [[संकलक]] की क्षमता के बेंचमार्क के रूप में उपयोग किया जा सकता है। इस तरह से एकरमैन के फलन का पहला प्रकाशित उपयोग 1970 में ड्रैगोस वैदा द्वारा किया गया था।{{sfn|Vaida|1970}} और, लगभग एक साथ, 1971 में, येंगवे सुंदब्लाड द्वारा।{{sfn|Sundblad|1971}}
1975 और 1982 के बीच लिखे गए पत्रों की एक त्रयी में ब्रायन विचमैन ([[वेटस्टोन (बेंचमार्क)]] के सह-लेखक) द्वारा सुंदरब्लैड का मौलिक पेपर लिया गया था।{{sfn|Wichmann|1976}}{{sfn|Wichmann|1977}}{{sfn|Wichmann|1982}}
1975 और 1982 के बीच लिखे गए पत्रों की एक त्रयी में ब्रायन विचमैन ([[वेटस्टोन (बेंचमार्क)]] के सह-लेखक) द्वारा सुंदरब्लैड का मौलिक पेपर लिया गया था।{{sfn|Wichmann|1976}}{{sfn|Wichmann|1977}}{{sfn|Wichmann|1982}}


Line 712: Line 712:
* तेजी से बढ़ती पदानुक्रम
* तेजी से बढ़ती पदानुक्रम
* [[गुडस्टीन समारोह]]
* [[गुडस्टीन समारोह]]
* आदिम पुनरावर्ती कार्य
* मूल पुनरावर्ती फलन
* [[रिकर्सन (कंप्यूटर विज्ञान)]]
* [[रिकर्सन (कंप्यूटर विज्ञान)]]
<!-- keep alphabetical -->
<!-- keep alphabetical -->
Line 1,041: Line 1,041:
*अच्छी तरह से आदेश
*अच्छी तरह से आदेश
*लेक्सिकोग्राफिक ऑर्डर
*लेक्सिकोग्राफिक ऑर्डर
*घातांक प्रकार्य
*घातांक प्रफलन
*तेजी से बढ़ने वाला पदानुक्रम
*तेजी से बढ़ने वाला पदानुक्रम
*उलटा काम करना
*उलटा काम करना

Revision as of 21:58, 17 December 2022

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

छोटे इनपुट के लिए भी इसका मूल्य तेजी से बढ़ता है। उदाहरण के लिए, A(4, 2) 19,729 दशमलव अंकों का पूर्णांक है[3] (2 के बराबर65536−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]
         
         
         
         
         
         
                   
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         

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

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