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

From Vigyanwiki
No edit summary
No edit summary
Line 35: Line 35:


सामान्यीकृत अतिसंचालन, उदाहरण - <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 name="letop3" group="n">with parameter order reversed</ref>वेरिएंट F पर आधारित है:{{sfn|Buck|1963}}{{sfn|Meeussen|Zantema|1992|p=6}}
1963 में आर.सी. बक अतिसंचालन सीक्वेंस पर एक सहज ज्ञान युक्त दो-चर <ref name="letop3" group="n">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>
अधिकांश अन्य संस्करणों की तुलना में बक के फलन में कोई अनावश्यक ऑफ़सेट नहीं है:
अधिकांश अन्य संस्करणों की तुलना में बक के फलन में कोई अनावश्यक ऑफ़सेट नहीं है:
Line 61: Line 61:
विभिन्न दो-प्राचर संस्करणों में से, पेटर और रॉबिन्सन द्वारा विकसित एक (जिसे अधिकांश लेखकों द्वारा एकरमैन फलन कहा जाता है) को ऋणोतर पूर्णांकों के लिए परिभाषित किया गया है <math>m</math> तथा <math>n</math> निम्नलिखित नुसार:
विभिन्न दो-प्राचर संस्करणों में से, पेटर और रॉबिन्सन द्वारा विकसित एक (जिसे अधिकांश लेखकों द्वारा एकरमैन फलन कहा जाता है) को ऋणोतर पूर्णांकों के लिए परिभाषित किया गया है <math>m</math> तथा <math>n</math> निम्नलिखित नुसार:


: <math>  
:<math>  
\begin{array}{lcl}
\begin{array}{lcl}
\operatorname{A}(0, n) & = & n + 1 \\
\operatorname{A}(0, n) & = & n + 1 \\
Line 95: Line 95:


फलन तब एक अनुक्रम बन जाता है <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}
\operatorname{A}_{0}(n) & = & n+1 \\
\operatorname{A}_{0}(n) & = & n+1 \\
Line 108: Line 108:
=== टीआरएस, 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}
\text{(r1)} & A(0,n)      & \rightarrow & S(n) \\
\text{(r1)} & A(0,n)      & \rightarrow & S(n) \\
Line 224: Line 224:
=== टीआरएस, पुनरावृत्त 1-सरणी फलन === पर आधारित है
=== टीआरएस, पुनरावृत्त 1-सरणी फलन === पर आधारित है
पुनरावृत्त <u>1-ary</u> एकरमैन फलन की परिभाषा विभिन्न कमी नियमों की ओर ले जाती है
पुनरावृत्त <u>1-ary</u> एकरमैन फलन की परिभाषा विभिन्न कमी नियमों की ओर ले जाती है
: <math>  
:<math>  
\begin{array}{lll}
\begin{array}{lll}
\text{(r4)} & A(S(0),0,n)    & \rightarrow & S(n) \\
\text{(r4)} & A(S(0),0,n)    & \rightarrow & S(n) \\
Line 333: Line 333:
टिप्पणियां
टिप्पणियां
*किसी दिए गए आगम पर अब तक प्रस्तुत टीआरएस समान चरणों में अभिसरण करते हैं। वे समान कटौती नियमों का भी उपयोग करते हैं (इस तुलना में नियमों 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 348: Line 348:
\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}
\text{(b1)} & F(S(0),0,n)          & \rightarrow & S(n) \\
\text{(b1)} & F(S(0),0,n)          & \rightarrow & S(n) \\
Line 365: Line 365:
</math>
</math>
एकरमैन फलन की गणना करने के लिए तीन कटौती नियमों को जोड़ना पर्याप्त है
एकरमैन फलन की गणना करने के लिए तीन कटौती नियमों को जोड़ना पर्याप्त है
: <math>  
:<math>  
\begin{array}{lll}
\begin{array}{lll}
\text{(r8)}  & A(0,n)     & \rightarrow & S(n) \\
\text{(r8)}  & A(0,n)     & \rightarrow & S(n) \\
Line 490: Line 490:
|}
|}
मिलान करने वाली समानताएं हैं  
मिलान करने वाली समानताएं हैं  
* जब टीआरएस कटौती नियम के साथ <math>\text{b6}</math> लागू की गई है:
*जब टीआरएस कटौती नियम के साथ <math>\text{b6}</math> लागू की गई है:
:<math>\begin{align}
:<math>\begin{align}
& A(2,1) +3
& A(2,1) +3
Line 508: Line 508:
= 8
= 8
\end{align}</math>
\end{align}</math>
* जब टीआरएस कटौती नियम के साथ <math>\text{b7}</math> लागू की गई है:
*जब टीआरएस कटौती नियम के साथ <math>\text{b7}</math> लागू की गई है:
:<math>\begin{align}
:<math>\begin{align}
& A(2,1) +3
& A(2,1) +3
Line 527: Line 527:
\end{align}</math>
\end{align}</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> पूरे क्रम के सामने आने के बाद ही गायब हो जाता है।
*की गणना <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> अंतरिक्ष।


===बड़ी संख्या===
===बड़ी संख्या===
यह प्रदर्शित करने के लिए कि की गणना कैसे की जाती है <math>A(4, 3)</math> कई चरणों में और बड़ी संख्या में परिणाम:<ref group="n" name="letop1" />
यह प्रदर्शित करने के लिए कि की गणना कैसे की जाती है <math>A(4, 3)</math> कई चरणों में और बड़ी संख्या में परिणाम:<ref group="n" name="letop1" />  


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


{| class="wikitable"
{| class="wikitable"
|+ Values of ''A''(''m'',&nbsp;''n'')
|+Values of ''A''(''m'',&nbsp;''n'')
|-
|-
! {{diagonal split header|''m''|''n''}}
! {{diagonal split header|''m''|''n''}}
Line 579: Line 579:
!3
!3
!4
!4
!''n''  
!''n''
|-
|-
!0
! 0
|1
|1
|
|
2||3||4||5||<math>n + 1</math>
2||3||4||5||<math>n + 1</math>
|-
|-
!1
! 1
|2
|2
|
|  
3||4||5||6||<math>n + 2 = 2 + (n + 3) - 3</math>
3||4|| 5|| 6||<math>n + 2 = 2 + (n + 3) - 3</math>
|-
|-
!2
! 2
|3
|3
|
|  
5||7||9||11||<math>2n + 3 = 2\cdot(n + 3) - 3</math>
5||7||9||11 ||<math>2n + 3 = 2\cdot(n + 3) - 3</math>
|-
|-
!3
!3
|5
|5
|
|
13||29||61||125||<math>2^{(n + 3)} - 3</math>
13||29|| 61||125||<math>2^{(n + 3)} - 3</math>
|-
|-
!4
!4
| 13 <br /><br /><math>={2^{2^{2}}}-3</math><br /><math>=2\uparrow\uparrow 3 - 3</math>
|13 <br /><br /><math>={2^{2^{2}}}-3</math><br /><math>=2\uparrow\uparrow 3 - 3</math>
| 65533 <br /><br /><math>={2^{2^{2^{2}}}}-3</math><br /><math>=2\uparrow\uparrow 4 - 3</math>
|65533 <br /><br /><math>={2^{2^{2^{2}}}}-3</math><br /><math>=2\uparrow\uparrow 4 - 3</math>
|2<sup>65536</sup>&nbsp;−&nbsp;3 <br /><br /><math>={2^{2^{2^{2^{2}}}}}-3</math><br /><math>=2\uparrow\uparrow 5 - 3</math>
|2<sup>65536</sup>&nbsp;−&nbsp;3 <br /><br /><math>={2^{2^{2^{2^{2}}}}}-3</math><br /><math>=2\uparrow\uparrow 5 - 3</math>
|<math>{2^{2^{65536}}} - 3</math> <br /><br /><math>={2^{2^{2^{2^{2^{2}}}}}}-3</math><br /><math>=2\uparrow\uparrow 6 - 3</math>
|<math>{2^{2^{65536}}} - 3</math> <br /><br /><math>={2^{2^{2^{2^{2^{2}}}}}}-3</math><br /><math>=2\uparrow\uparrow 6 - 3</math>
Line 640: Line 640:


{| class="wikitable"
{| class="wikitable"
|+ Values of ''A''(''m'',&nbsp;''n'')
|+Values of ''A''(''m'',&nbsp;''n'')
|-
|-
! {{diagonal split header|''m''|''n''}}
! {{diagonal split header|''m''|''n''}}
Line 646: Line 646:
!1
!1
!2
!2
!3
! 3
!4
!4
!''n''  
!''n''
|-
|-
!0
!0
|0+1||1+1 ||2+1 ||3+1 ||4+1||''n'' + 1
|0+1||1+1||2+1||3+1||4+1 ||''n'' + 1
|-
|-
!1
!1
|''A''(0, 1)||''A''(0, ''A''(1, 0))<br />= ''A''(0, 2)||''A''(0, ''A''(1, 1))<br />= ''A''(0, 3)||''A''(0, ''A''(1, 2))<br />= ''A''(0, 4)||''A''(0, ''A''(1, 3))<br />= ''A''(0, 5)||''A''(0, ''A''(1, ''n''−1))
|''A''(0, 1)|| ''A''(0, ''A''(1, 0))<br />= ''A''(0, 2)|| ''A''(0, ''A''(1, 1))<br />= ''A''(0, 3)|| ''A''(0, ''A''(1, 2))<br />= ''A''(0, 4)|| ''A''(0, ''A''(1, 3))<br />= ''A''(0, 5)||''A''(0, ''A''(1, ''n''−1))
|-
|-
!2
!2
|''A''(1, 1)||''A''(1, ''A''(2, 0))<br />= ''A''(1, 3)||''A''(1, ''A''(2, 1))<br />= ''A''(1, 5)||''A''(1, ''A''(2, 2))<br />= ''A''(1, 7)||''A''(1, ''A''(2, 3))<br />= ''A''(1, 9)||''A''(1, ''A''(2, ''n''−1))
|''A''(1, 1)|| ''A''(1, ''A''(2, 0))<br />= ''A''(1, 3)|| ''A''(1, ''A''(2, 1))<br />= ''A''(1, 5)|| ''A''(1, ''A''(2, 2))<br />= ''A''(1, 7)|| ''A''(1, ''A''(2, 3))<br />= ''A''(1, 9)||''A''(1, ''A''(2, ''n''−1))
|-
|-
!3
!3
|''A''(2, 1)||''A''(2, ''A''(3, 0))<br />= ''A''(2, 5)||''A''(2, ''A''(3, 1))<br />= ''A''(2, 13)||''A''(2, ''A''(3, 2))<br />= ''A''(2, 29)||''A''(2, ''A''(3, 3))<br />= ''A''(2, 61)||''A''(2, ''A''(3, ''n''−1))
|''A''(2, 1)|| ''A''(2, ''A''(3, 0))<br />= ''A''(2, 5)|| ''A''(2, ''A''(3, 1))<br />= ''A''(2, 13)|| ''A''(2, ''A''(3, 2))<br />= ''A''(2, 29)|| ''A''(2, ''A''(3, 3))<br />= ''A''(2, 61)||''A''(2, ''A''(3, ''n''−1))
|-
|-
!4
!4
|''A''(3, 1)||''A''(3, ''A''(4, 0))<br />= ''A''(3, 13)||''A''(3, ''A''(4, 1))<br />= ''A''(3, 65533)||''A''(3, ''A''(4, 2))||''A''(3, ''A''(4, 3))||''A''(3, ''A''(4, ''n''−1))
|''A''(3, 1)|| ''A''(3, ''A''(4, 0))<br />= ''A''(3, 13)|| ''A''(3, ''A''(4, 1))<br />= ''A''(3, 65533)||''A''(3, ''A''(4, 2))||''A''(3, ''A''(4, 3))||''A''(3, ''A''(4, ''n''−1))
|-
|-
!5
!5
Line 676: Line 676:


===सामान्य टिप्पणी===
===सामान्य टिप्पणी===
* यह तुरंत स्पष्ट नहीं हो सकता है कि का मूल्यांकन <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> जो स्पष्ट रूप से [[ट्यूरिंग मशीन]] जैसी अनंत मेमोरी वाली मशीन पर गणना योग्य है और इसलिए एक गणना योग्य फलन है, किसी भी मूल पुनरावर्ती फलन की तुलना में तेजी से बढ़ता है और इसलिए मूल पुनरावर्ती नहीं है।


=== मूल पुनरावर्ती === नहीं
=== मूल पुनरावर्ती === नहीं
Line 699: Line 699:
यह व्युत्क्रम कुछ एल्गोरिदम के समय [[कम्प्यूटेशनल जटिलता सिद्धांत]] में प्रकट होता है, जैसे कि अलग-अलग सेट डेटा संरचना और [[बर्नार्ड चाज़ेल]] के [[कलन विधि]] न्यूनतम फैले हुए पेड़ों के लिए। कभी-कभी इन सेटिंग्स में एकरमैन के मूल फलन या अन्य विविधताओं का उपयोग किया जाता है, लेकिन वे सभी समान उच्च दर से बढ़ते हैं। विशेष रूप से, कुछ संशोधित फलन -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>
Line 713: Line 713:




== यह भी देखें==
==यह भी देखें==  
<!-- keep alphabetical -->
<!-- keep alphabetical -->
*संगणनीयता सिद्धांत
*संगणनीयता सिद्धांत
Line 720: Line 720:
*[[गुडस्टीन समारोह|गुडस्टीन फलन]]
*[[गुडस्टीन समारोह|गुडस्टीन फलन]]
*मूल पुनरावर्ती फलन
*मूल पुनरावर्ती फलन
*[[रिकर्सन (कंप्यूटर विज्ञान)|पुनरावर्ती (कंप्यूटर विज्ञान)]]  
*[[रिकर्सन (कंप्यूटर विज्ञान)|पुनरावर्ती (कंप्यूटर विज्ञान)]]
<!-- keep alphabetical -->
<!-- keep alphabetical -->


Line 1,034: Line 1,034:




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


*संगणनीयता सिद्धांत
*संगणनीयता सिद्धांत

Revision as of 16:58, 18 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]
         
         
         
         
         
         
                   
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         

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

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