एकरमैन फलन

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



\begin{array}{lcl} \operatorname{A}(0, n) & = & n + 1 \\ \operatorname{A}(m+1, 0) & = & \operatorname{A}(m, 1) \\ \operatorname{A}(m+1, n+1) & = & \operatorname{A}(m, \operatorname{A}(m+1, n)) \end{array} $$ छोटे इनपुट के लिए भी इसका मूल्य तेजी से बढ़ता है। उदाहरण के लिए, A(4, 2) 19,729 दशमलव अंकों का पूर्णांक है (2 के बराबर65536−3, या 22 2 2 2  −3).

इतिहास
1920 के दशक के अंत में, गणितज्ञ गेब्रियल सूडान और विल्हेम एकरमैन, डेविड हिल्बर्ट के छात्र, संगणना की नींव का अध्ययन कर रहे थे। सूडान और एकरमैन दोनों को श्रेय दिया जाता है टोटल फंक्शन कंप्यूटेबल फंक्शन्स की खोज के साथ (जिसे कुछ संदर्भों में केवल रिकर्सिव कहा जाता है) जो प्रिमिटिव रिकर्सिव फंक्शन नहीं हैं। सूडान ने कम प्रसिद्ध सूडान कार्य प्रकाशित किया, फिर कुछ ही समय बाद और स्वतंत्र रूप से, 1928 में, एकरमैन ने अपना कार्य प्रकाशित किया $$\varphi$$ (ग्रीक अक्षर फ़ाई)। एकरमैन का तीन-तर्क कार्य, $$\varphi(m, n, p)$$, के लिए परिभाषित किया गया है $$p=0,1,2$$, यह जोड़, गुणा और घातांक के बुनियादी संचालन को पुन: पेश करता है


 * $$\begin{align}

\varphi(m, n, 0) &= m+n \\ \varphi(m, n, 1) &= m\times n \\ \varphi(m, n, 2) &= m^n \end{align}$$ और p > 2 के लिए यह इन बुनियादी संचालनों को एक तरह से विस्तारित करता है जिसकी तुलना हाइपरऑपरेशन से की जा सकती है:


 * $$\begin{align}

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

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

सामान्यीकृत हाइपरऑपरेशन, उदा। $$G(m, a, b) = a[m]b$$, एकरमैन फ़ंक्शन का भी एक संस्करण है। 1963 में रॉबर्ट क्रेटन बक|आर.सी. बक एक सहज ज्ञान युक्त दो-चर आधारित है प्रकार $$\operatorname{F}$$ हाइपरऑपरेशन पर:
 * $$\operatorname{F}(m,n) = 2[m]n.$$

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


 * $$\begin{align}

\operatorname{F}(0,n) &= 2[0]n = n + 1 \\ \operatorname{F}(1,n) &= 2[1]n = 2 + n \\ \operatorname{F}(2,n) &= 2[2]n = 2 \times n \\ \operatorname{F}(3,n) &= 2[3]n = 2^n \\ \operatorname{F}(4,n) &= 2[4]n = 2^{2^{2^{{}^{.^{.^{{}_.2}}}}}} \\ &\quad\vdots \end{align}$$ एकरमैन फ़ंक्शन के कई अन्य संस्करणों की जांच की गई है।

परिभाषा: एम-एरी फ़ंक्शन
के रूप में एकरमैन का मूल तीन-तर्क कार्य $$\varphi(m, n, p)$$ गैर-नकारात्मक पूर्णांकों के लिए निम्नानुसार पुनरावर्तन परिभाषित किया गया है $$m,n,$$ तथा $$p$$:


 * $$\begin{align}

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



\begin{array}{lcl} \operatorname{A}(0, n) & = & n + 1 \\ \operatorname{A}(m+1, 0) & = & \operatorname{A}(m, 1) \\ \operatorname{A}(m+1, n+1) & = & \operatorname{A}(m, A(m+1, n)) \end{array} $$ हाइपरऑपरेशन के संबंध में एकरमेन फ़ंक्शन भी व्यक्त किया गया है:
 * $$A(m,n) = \begin{cases}

n+1 & m=0 \\ 2[m](n+3)-3 & m>0 \\ \end{cases}$$
 * या, नुथ के अप-एरो नोटेशन में लिखा गया है (पूर्णांक सूचकांकों तक विस्तारित $$\geq -2$$):
 * $$ = \begin{cases}

n+1 & m=0 \\ 2\uparrow^{m-2} (n+3) - 3 & m>0 \\ \end{cases}$$
 * या, समतुल्य रूप से, बक के फलन F के संदर्भ में: :::$$ = \begin{cases}

n+1 & m=0 \\ F(m,n+3) - 3 & m>0 \\ \end{cases}$$

परिभाषा: पुनरावृत्त 1-एरी फ़ंक्शन
के रूप में परिभाषित करना $$f^{n}$$ के n-वें पुनरावृति के रूप में $$f$$:
 * $$\begin{array}{rll}

f^{0}(x) & = & x \\ f^{n+1}(x) & = & f(f^{n}(x))\,\,\,\, \{\textrm{for} \,\, n \geq 1\} \end{array}$$ पुनरावृत्त फलन एक निश्चित संख्या में स्वयं के साथ एक फलन बनाने की प्रक्रिया है। फ़ंक्शन रचना एक साहचर्य ऑपरेशन है, इसलिए $$f(f^{n}(x)) = f^{n}(f(x))$$.

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

समारोह तब एक अनुक्रम बन जाता है $$\operatorname{A}_0, \operatorname{A}_1, \operatorname{A}_2, ...$$ यूनरी का फ़ंक्शंस, इटरेटेड फ़ंक्शन से परिभाषित:

\begin{array}{lcl} \operatorname{A}_{0}(n) & = & n+1 \\ \operatorname{A}_{m+1}(n) & = & \operatorname{A}_{m}^{n+1}(1) \\ \end{array} $$

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

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

\begin{array}{lll} \text{(r1)} & A(0,n)      & \rightarrow & S(n) \\ \text{(r2)} & A(S(m),0)   & \rightarrow & A(m,S(0)) \\ \text{(r3)} & A(S(m),S(n)) & \rightarrow & A(m,A(S(m),n)) \end{array} $$ उदाहरण

गणना करना $$A(1,2) \rightarrow_{*} 4$$ घटाव क्रम है

गणना करना $$\operatorname{A}(m, n)$$ कोई स्टैक (अमूर्त डेटा प्रकार) का उपयोग कर सकता है, जिसमें प्रारंभ में तत्व होते हैं $$\langle m,n \rangle$$.

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

\begin{array}{lllllllll} \text{(r1)} & 0    &,& n     & \rightarrow & (n+1) \\ \text{(r2)} & (m+1) &,& 0    & \rightarrow & m &,& 1 \\ \text{(r3)} & (m+1) &,& (n+1) & \rightarrow & m &,& (m+1) &,& n \end{array} $$ योजनाबद्ध रूप से, से शुरू $$\langle m,n \rangle$$:

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

स्यूडोकोड प्रकाशित हो चुकी है।.

उदाहरण के लिए, इनपुट पर $$\langle 2,1 \rangle$$, टिप्पणियां
 * रोसेटा कोड पर 225 कंप्यूटर भाषाओं में सबसे वामपंथी-अंतरतम रणनीति लागू की गई है।
 * सभी के लिए $$m,n$$ की गणना $$A(m,n)$$ से अधिक नहीं लेता है $$(A(m,n) + 1)^m$$ कदम।
 * बताया कि की गणना में $$\operatorname{A}(m,n)$$ ढेर की अधिकतम लंबाई है $$\operatorname{A}(m,n)$$, जब तक कि $$m>0$$.
 * उनका अपना एल्गोरिदम, स्वाभाविक रूप से पुनरावृत्त, गणना करता है $$\operatorname{A}(m,n)$$ अंदर $$\mathcal{O}(m \operatorname{A}(m,n))$$ समय और भीतर $$\mathcal{O}(m)$$ अंतरिक्ष।

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

\begin{array}{lll} \text{(r4)} & A(S(0),0,n)   & \rightarrow & S(n) \\ \text{(r5)} & A(S(0),S(m),n) & \rightarrow & A(S(n),m,S(0)) \\ \text{(r6)} & A(S(S(x)),m,n) & \rightarrow & A(S(0),m,A(S(x),m,n)) \end{array} $$ जैसा कि फ़ंक्शन रचना साहचर्य है, नियम r6 के बजाय परिभाषित किया जा सकता है

\begin{array}{lll} \text{(r7)} & A(S(S(x)),m,n) & \rightarrow & A(S(x),m,A(S(0),m,n)) \end{array} $$ पिछले खंड की तरह की गणना $$\operatorname{A}^1_m(n)$$ ढेर के साथ लागू किया जा सकता है।

प्रारंभ में ढेर में तीन तत्व होते हैं $$\langle 1,m,n \rangle$$.

फिर बार-बार तीन शीर्ष तत्वों को नियमों के अनुसार बदल दिया जाता है :$$ \begin{array}{lllllllll} \text{(r4)} & 1  &, 0   &, n & \rightarrow & (n+1) \\ \text{(r5)} & 1  &, (m+1) &, n & \rightarrow & (n+1) &, m &, 1 \\ \text{(r6)} & (x+2) &, m  &, n & \rightarrow & 1 &, m &, (x+1) &, m &, n \\ \end{array} $$ योजनाबद्ध रूप से, से शुरू $$\langle 1, m,n \rangle$$: जबकि ढेर की लंबाई <> 1 {   पीओपी 3 तत्व; पुश 1 या 3 या 5 तत्व, नियमों को लागू करना r4, r5, r6; }

उदाहरण

इनपुट पर $$\langle 1,2,1 \rangle$$ क्रमिक ढेर विन्यास हैं
 * $$\begin{align}

& \underline{1,2,1} \rightarrow_{r5} \underline{2,1,1} \rightarrow_{r6} 1,1,\underline{1,1,1} \rightarrow_{r5} 1,1,\underline{2,0,1} \rightarrow_{r6} 1,1,1,0,\underline{1,0,1} \\ & \rightarrow_{r4} 1,1,\underline{1,0,2} \rightarrow_{r4} \underline{1,1,3} \rightarrow_{r5} \underline{4,0,1} \rightarrow_{r6} 1,0,\underline{3,0,1} \rightarrow_{r6} 1,0,1,0,\underline{2,0,1} \\ & \rightarrow_{r6} 1,0,1,0,1,0,\underline{1,0,1} \rightarrow_{r4} 1,0,1,0,\underline{1,0,2} \rightarrow_{r4} 1,0,\underline{1,0,3} \rightarrow_{r4} \underline{1,0,4} \rightarrow_{r4} 5 \end{align}$$ संगत समानताएं हैं
 * $$\begin{align}

& A_2(1) = A^2_1(1) = A_1(A_1(1)) = A_1(A^2_0(1)) = A_1(A_0(A_0(1))) \\ & = A_1(A_0(2)) = A_1(3) = A^4_0(1) = A_0(A^3_0(1)) = A_0(A_0(A^2_0(1))) \\ & = A_0(A_0(A_0(A_0(1)))) = A_0(A_0(A_0(2))) = A_0(A_0(3)) = A_0(4) = 5 \end{align}$$ जब नियम r6 के बजाय कमी नियम r7 का उपयोग किया जाता है, तो स्टैक में प्रतिस्थापन का पालन किया जाएगा
 * $$\begin{array}{lllllllll}

\text{(r7)} & (x+2) &, m  &, n & \rightarrow & (x+1) &, m &, 1 &, m &, n \end{array}$$ क्रमिक स्टैक कॉन्फ़िगरेशन तब होगा
 * $$\begin{align}

& \underline{1,2,1} \rightarrow_{r5} \underline{2,1,1} \rightarrow_{r7} 1,1,\underline{1,1,1} \rightarrow_{r5} 1,1,\underline{2,0,1} \rightarrow_{r7} 1,1,1,0,\underline{1,0,1} \\ & \rightarrow_{r4} 1,1,\underline{1,0,2} \rightarrow_{r4} \underline{1,1,3} \rightarrow_{r5} \underline{4,0,1} \rightarrow_{r7} 3,0,\underline{1,0,1} \rightarrow_{r4} \underline{3,0,2} \\ & \rightarrow_{r7} 2,0,\underline{1,0,2} \rightarrow_{r4} \underline{2,0,3} \rightarrow_{r7} 1,0,\underline{1,0,3} \rightarrow_{r4} \underline{1,0,4} \rightarrow_{r4} 5 \end{align}$$ संगत समानताएं हैं
 * $$\begin{align}

& A_2(1) = A^2_1(1) = A_1(A_1(1)) = A_1(A^2_0(1)) = A_1(A_0(A_0(1))) \\ & = A_1(A_0(2)) = A_1(3) = A^4_0(1) = A^3_0(A_0(1)) = A^3_0(2) \\ & = A^2_0(A_0(2)) = A^2_0(3) = A_0(A_0(3)) = A_0(4) = 5 \end{align}$$ टिप्पणियां
 * किसी दिए गए इनपुट पर अब तक प्रस्तुत टीआरएस समान चरणों में अभिसरण करते हैं। वे समान कटौती नियमों का भी उपयोग करते हैं (इस तुलना में नियमों r1, r2, r3 को क्रमशः नियम r4, r5, r6/r7 के समान माना जाता है)। उदाहरण के लिए, की कमी $$A(2,1)$$ 14 चरणों में अभिसरित होता है: 6 × r1, 3 × r2, 5 × r3। की कमी $$A_2(1)$$ समान 14 चरणों में अभिसरित होता है: 6 × r4, 3 × r5, 5 × r6/r7। टीआरएस उस क्रम में भिन्न होते हैं जिसमें कटौती नियम लागू होते हैं।
 * कब $$A_{i}(n)$$ {r4, r5, r6} नियमों का पालन करते हुए गणना की जाती है, स्टैक की अधिकतम लंबाई नीचे रहती है $$2 \times A(i,n)$$. जब नियम r6 के स्थान पर कमी नियम r7 का उपयोग किया जाता है, तो स्टैक की अधिकतम लंबाई केवल होती है $$2(i+2)$$. ढेर की लंबाई रिकर्सन गहराई को दर्शाती है। नियमों के अनुसार कमी के रूप में {r4, r5, r7} में पुनरावर्तन की एक छोटी अधिकतम गहराई शामिल है, यह गणना उस संबंध में अधिक कुशल है।

टीआरएस, हाइपरऑपरेटरों पर आधारित
जैसा - या  - स्पष्ट रूप से दिखाया गया है, एकरमेन फ़ंक्शन हाइपरऑपरेशन अनुक्रम के संदर्भ में व्यक्त किया जा सकता है:
 * $$A(m,n) = \begin{cases}

n+1 & m=0 \\ 2[m](n+3) - 3 & m>0 \\ \end{cases}$$ या, बक के कार्य के संदर्भ में, पैरामीटर सूची से निरंतर 2 को हटाने के बाद
 * $$ = \begin{cases}

n+1 & m=0 \\ F(m,n+3) - 3 & m>0 \\ \end{cases}$$ बक का कार्य $$\operatorname{F}(m,n) = 2[m]n$$, एकरमैन फ़ंक्शन का एक भिन्न रूप, जिसकी गणना निम्न कमी नियमों के साथ की जा सकती है:

\begin{array}{lll} \text{(b1)} & F(S(0),0,n)         & \rightarrow & S(n) \\ \text{(b2)} & F(S(0),S(0),0)      & \rightarrow & S(S(0)) \\ \text{(b3)} & F(S(0),S(S(0)),0)   & \rightarrow & 0 \\ \text{(b4)} & F(S(0),S(S(S(m))),0) & \rightarrow & S(0) \\ \text{(b5)} & F(S(0),S(m),S(n))   & \rightarrow & F(S(n),m,F(S(0),S(m),0)) \\ \text{(b6)} & F(S(S(x)),m,n)      & \rightarrow & F(S(0),m,F(S(x),m,n)) \end{array} $$ नियम b6 के स्थान पर नियम को परिभाषित किया जा सकता है

\begin{array}{lll} \text{(b7)} & F(S(S(x)),m,n)      & \rightarrow & F(S(x),m,F(S(0),m,n)) \end{array} $$ एकरमैन फ़ंक्शन की गणना करने के लिए तीन कटौती नियमों को जोड़ना पर्याप्त है

\begin{array}{lll} \text{(r8)} & A(0,n)	     & \rightarrow & S(n) \\ \text{(r9)} & A(S(m),n)     & \rightarrow & P(F(S(0),S(m),S(S(S(n))))) \\ \text{(r10)} & P(S(S(S(m)))) & \rightarrow & m \\ \end{array} $$ ये नियम बेस केस ए (0, एन), संरेखण (एन + 3) और फज (-3) का ख्याल रखते हैं।

उदाहरण

गणना करना $$A(2,1) \rightarrow_{*} 5$$ मिलान करने वाली समानताएं हैं
 * जब टीआरएस कटौती नियम के साथ $$\text{b6}$$ लागू की गई है:
 * $$\begin{align}

& A(2,1) +3 = F(2,4) = \dots = F^6(0,2) = F(0,F^5(0,2)) = F(0,F(0,F^4(0,2))) \\ & = F(0,F(0,F(0,F^3(0,2)))) = F(0,F(0,F(0,F(0,F^2(0,2))))) = F(0,F(0,F(0,F(0,F(0,F(0,2)))))) \\ & = F(0,F(0,F(0,F(0,F(0,3))))) = F(0,F(0,F(0,F(0,4)))) = F(0,F(0,F(0,5))) = F(0,F(0,6)) = F(0,7) = 8 \end{align}$$
 * जब टीआरएस कटौती नियम के साथ $$\text{b7}$$ लागू की गई है:
 * $$\begin{align}

& A(2,1) +3 = F(2,4) = \dots = F^6(0,2) = F^5(0,F(0,2)) = F^5(0,3) = F^4(0,F(0,3)) = F^4(0,4) \\ & = F^3(0,F(0,4)) = F^3(0,5) = F^2(0,F(0,5)) = F^2(0,6) = F(0,F(0,6)) = F(0,7) = 8 \end{align}$$ टिप्पणियां
 * की गणना $$\operatorname{A}_{i}(n)$$ नियमों के मुताबिक {बी 1 - बी 5, बी 6, आर 8 - आर 10} गहरा रिकर्सिव है। नेस्टेड की अधिकतम गहराई $$F$$एस है $$A(i,n)+1$$. अपराधी वह क्रम है जिसमें पुनरावृत्ति निष्पादित होती है: $$F^{n+1}(x) = F(F^{n}(x))$$. सबसे पहला $$F$$ पूरे क्रम के सामने आने के बाद ही गायब हो जाता है।
 * नियमों के अनुसार गणना {b1 - b5, b7, r8 - r10} उस संबंध में अधिक कुशल है। पुनरावृत्ति $$F^{n+1}(x) = F^{n}(F(x))$$ कोड के एक ब्लॉक पर बार-बार लूप को सिम्युलेट करता है। घोंसला बनाना तक सीमित है $$(i+1)$$, प्रति पुनरावृत्त कार्य के लिए एक पुनरावर्तन स्तर। यह पत्राचार दिखाया।
 * ये विचार केवल पुनरावर्तन गहराई से संबंधित हैं। पुनरावृति का कोई भी तरीका समान नियमों को शामिल करते हुए समान संख्या में कटौती चरणों की ओर ले जाता है (जब नियम b6 और b7 को समान माना जाता है)। की कमी $$A(2,1)$$ उदाहरण के लिए 35 चरणों में परिवर्तित होता है: 12 × b1, 4 × b2, 1 × b3, 4 × b5, 12 × b6/b7, 1 × r9, 1 × r10। कार्यप्रणाली केवल उस क्रम को प्रभावित करती है जिसमें कटौती नियम लागू होते हैं।
 * निष्पादन समय का वास्तविक लाभ बार-बार उप-परिणामों की पुनर्गणना न करके ही प्राप्त किया जा सकता है। संस्मरण एक ऑप्टिमाइज़ेशन तकनीक है जहाँ फ़ंक्शन कॉल के परिणाम कैश किए जाते हैं और उसी इनपुट के फिर से आने पर वापस आ जाते हैं। उदाहरण के लिए देखें . एक चालाक एल्गोरिदम प्रकाशित किया जो गणना करता है $$A(i,n)$$ अंदर $$\mathcal{O}(i A(i,n))$$ समय और भीतर $$\mathcal{O}(i)$$ अंतरिक्ष।

बड़ी संख्या
यह प्रदर्शित करने के लिए कि की गणना कैसे की जाती है $$A(4, 3)$$ कई चरणों में और बड़ी संख्या में परिणाम:


 * $$\begin{align}

A(4, 3) & \rightarrow A(3, A(4, 2)) \\ & \rightarrow A(3, A(3, A(4, 1))) \\ & \rightarrow A(3, A(3, A(3, A(4, 0)))) \\ & \rightarrow A(3, A(3, A(3, A(3, 1)))) \\ & \rightarrow A(3, A(3, A(3, A(2, A(3, 0))))) \\ & \rightarrow A(3, A(3, A(3, A(2, A(2, 1))))) \\ & \rightarrow A(3, A(3, A(3, A(2, A(1, A(2, 0)))))) \\ & \rightarrow A(3, A(3, A(3, A(2, A(1, A(1, 1)))))) \\ & \rightarrow A(3, A(3, A(3, A(2, A(1, A(0, A(1, 0))))))) \\ & \rightarrow A(3, A(3, A(3, A(2, A(1, A(0, A(0, 1))))))) \\ & \rightarrow A(3, A(3, A(3, A(2, A(1, A(0, 2)))))) \\ & \rightarrow A(3, A(3, A(3, A(2, A(1, 3))))) \\ & \rightarrow A(3, A(3, A(3, A(2, A(0, A(1, 2)))))) \\ & \rightarrow A(3, A(3, A(3, A(2, A(0, A(0, A(1, 1))))))) \\ & \rightarrow A(3, A(3, A(3, A(2, A(0, A(0, A(0, A(1, 0)))))))) \\ & \rightarrow A(3, A(3, A(3, A(2, A(0, A(0, A(0, A(0, 1)))))))) \\ & \rightarrow A(3, A(3, A(3, A(2, A(0, A(0, A(0, 2)) )) )) ) \\ & \rightarrow A(3, A(3, A(3, A(2, A(0, A(0, 3)))))) \\ & \rightarrow A(3, A(3, A(3, A(2, A(0, 4))))) \\ & \rightarrow A(3, A(3, A(3, A(2, 5)))) \\ & \qquad\vdots \\ & \rightarrow A(3, A(3, A(3, 13))) \\ & \qquad\vdots \\ & \rightarrow A(3, A(3, 65533)) \\ &\qquad\vdots \\ & \rightarrow A(3, 2^{65536} - 3) \\ &\qquad\vdots \\ & \rightarrow 2^{2^{65536}} - 3. \\ \end{align}$$

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

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

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

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

सामान्य टिप्पणी

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

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

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

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


 * $$f(x_1,\ldots,x_n)<A(t,\max_i x_i).$$

एक बार यह स्थापित हो जाने के बाद, यह उसका अनुसरण करता है $$A$$ स्वयं आदिम पुनरावर्ती नहीं है, अन्यथा डालने के बाद से $$x_1=x_2=t$$ विरोधाभास की ओर ले जाएगा $$A(t,t)<A(t,t).$$ सबूत निम्नानुसार आगे बढ़ता है: वर्ग को परिभाषित करें $$\mathcal{A}$$ एकरमेन फ़ंक्शन की तुलना में धीमी गति से बढ़ने वाले सभी कार्यों में से


 * $$\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\} $$

और दिखाओ $$\mathcal{A}$$ सभी आदिम पुनरावर्ती कार्य शामिल हैं। उत्तरार्द्ध इसे दिखाकर हासिल किया जाता है $$\mathcal{A}$$ इसमें निरंतर कार्य, उत्तराधिकारी कार्य, प्रक्षेपण कार्य शामिल हैं और यह कार्य रचना और आदिम पुनरावर्तन के संचालन के तहत बंद है।

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

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

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


 * $$\alpha(m,n) = \min\{i \geq 1 : A(i,\lfloor m/n \rfloor) \geq \log_2 n\}.$$

यह कार्य ऊपर उल्लिखित एल्गोरिदम के अधिक सटीक विश्लेषण में उत्पन्न होता है, और अधिक परिष्कृत समय सीमा प्रदान करता है। असम्बद्ध-सेट डेटा संरचना में, एम संचालन की संख्या का प्रतिनिधित्व करता है जबकि एन तत्वों की संख्या का प्रतिनिधित्व करता है; मिनिमम स्पैनिंग ट्री एल्गोरिथम में, m किनारों की संख्या का प्रतिनिधित्व करता है जबकि n वर्टिकल की संख्या का प्रतिनिधित्व करता है। की कई थोड़ी अलग परिभाषाएँ α(m, n) मौजूद; उदाहरण के लिए, log2 n कभी-कभी n द्वारा प्रतिस्थापित किया जाता है, और कभी-कभी फर्श फ़ंक्शन को छत समारोह द्वारा प्रतिस्थापित किया जाता है।

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

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

यह भी देखें

 * कम्प्यूटेबिलिटी सिद्धांत
 * डबल रिकर्सन
 * तेजी से बढ़ती पदानुक्रम
 * गुडस्टीन समारोह
 * आदिम पुनरावर्ती कार्य
 * रिकर्सन (कंप्यूटर विज्ञान)

इस पेज में लापता आंतरिक लिंक की सूची

 * संगणनीयता सिद्धांत
 * कुल समारोह
 * सूडान समारोह
 * योग
 * प्रत्यावर्तन
 * पुनरावृत्त समारोह
 * समारोह रचना
 * जोड़नेवाला
 * ढेर (सार डेटा प्रकार)
 * अच्छी तरह से आदेश
 * लेक्सिकोग्राफिक ऑर्डर
 * घातांक प्रकार्य
 * तेजी से बढ़ने वाला पदानुक्रम
 * उलटा काम करना
 * न्यूनतम फैलाव वाला पेड़
 * असंयुक्त-सेट डेटा संरचना
 * फर्श समारोह

बाहरी संबंध

 * An animated Ackermann function calculator
 * Ackerman function implemented using a for loop
 * Scott Aaronson, Who can name the biggest number? (1999)
 * Ackermann functions. Includes a table of some values.
 * Hyper-operations: Ackermann's Function and New Arithmetical Operation
 * Robert Munafo's Large Numbers describes several variations on the definition of A.
 * Gabriel Nivasch, Inverse Ackermann without pain on the inverse Ackermann function.
 * Raimund Seidel, Understanding the inverse Ackermann function (PDF presentation).
 * The Ackermann function written in different programming languages, (on Rosetta Code)
 * Ackermann's Function (Archived 2009-10-24)—Some study and programming by Harry J. Smith.
 * Raimund Seidel, Understanding the inverse Ackermann function (PDF presentation).
 * The Ackermann function written in different programming languages, (on Rosetta Code)
 * Ackermann's Function (Archived 2009-10-24)—Some study and programming by Harry J. Smith.