एकरमैन फंक्शन के लिए स्पष्ट म्यू-पुनरावर्ती अभिव्यक्ति


15

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

जवाब के सबसे करीब से पी। स्मिथ "गोडेल के प्रमेयों के लिए एक परिचय" (CUP, 2007) (29.4 Ackermann-Peter फ़ंक्शन μ-पुनरावर्ती है) में जाता है, लेकिन वह निम्नलिखित बातों के साथ आता है: "तर्क को स्पष्ट करना बहुत सुंदर है" थकाऊ हालांकि मुश्किल नहीं है। विवरण यहाँ वर्तनी से सीखने के लिए कुछ भी नहीं है: इसलिए हम नहीं करेंगे। ”

मैंने रोज़ा पेटर की पुस्तक "रिकर्सिव फ़ंक्शंस" (1967, अकादमिक प्रेस) की भी कोशिश की। वहाँ दिए गए पुनरावर्तन ऑपरेटरों के लिए बहुत सारे संस्करण हैं। आमतौर पर एक दूसरे को कम कर देता है। मेरा मानना ​​है कि एक प्रकार का रिकर्सन ऑपरेटर होता है जो एकरमन फ़ंक्शन की परिभाषा और चरणों के अनुक्रम के लिए फिट होता है जो इसे आदिम पुनर्वितरण और न्यूनकरण ऑपरेटरों के लिए कम करता है, लेकिन मैंने खुद को पूरे तरीके से जांच करने में असमर्थ पाया।


1
वास्तव में यह उतना कठिन नहीं है जितना यह पहले लग सकता है। चाल ऑपरेटर को एकरमैन फ़ंक्शन की गणना के लिए खोज करने देता है, अर्थात इनपुट तक के मानों की तालिका, और फिर जाँचें कि तालिका फ़ंक्शन की परिभाषा का अनुसरण करती है। क्या आवश्यक है परिमित दृश्यों को कूटबन्धन / डिकोड करना, और तालिका की जाँच करना। एन्कोडिंग / डिकोडिंग को स्पष्ट रूप से कई पाठ्यपुस्तकों में परिभाषित किया गया है, जाँच एक बंधे हुए सार्वभौमिक क्वांटिफायर द्वारा तालिका की प्रविष्टियों के बीच एक साधारण संबंध पर की जा सकती है। बाउंडेड यूनिवर्सल क्वांटिफायर को बाउंड गुणा के रूप में व्यक्त किया जा सकता है,μ
केव

और के मामले में घिरे गुणन का एक स्पष्ट परिभाषा -recursion भी पाठ्यपुस्तकों में पाया जा सकता है। μ
केव

@ केवी हाँ, एक ही विचार पी। स्मिथ के "गोडेल के प्रमेयों के लिए एक परिचय" में लागू किया गया। एन्कोडिंग और न्यूनतमकरण ऑपरेटर के आवेदन वहां दिए गए हैं। जैसा कि आप इसे नाम देते हैं, तो ट्रिकी हिस्सा "टेबल" कैसे उत्पन्न करता है। स्मिथ ने इसे छोड़ दिया। इसलिए ऐसा लगता है कि मुझे यहाँ समाधानों की प्रतीक्षा करने के बजाय इस पर सोचना होगा;) सामान्य दृष्टिकोण के लिए आपकी स्वीकृति के लिए कम से कम धन्यवाद।
आर्टेम पेलेनिट्सिन

तालिका केवल एक सीमित अनुक्रम है जहां प्रविष्टियों को एक युग्मन फ़ंक्शन के परिणाम द्वारा अनुक्रमित किया जाता है। जहां आर ( , एक्स , वाई )μc:x<Len(c)y,z<x,x=<y,z>→c<y,z>=R(c,x,y)R(c,x,y) के समीकरण का rs है । Ack(x,y)
केव

जवाबों:


13

प्राथमिक संचालकों के लिए सभी प्रकार से एकरमैन को तोड़ना वास्तव में काफी लंबा होगा, लेकिन यहाँ एक स्केच है:

ध्यान दें कि गणना करते समय की गणना किसी भी बिंदु पर आप फॉर्म A ( m 1 , A ( m 2 , , A) ( m k , z ) ) की अभिव्यक्ति के साथ कर रहे हैं । एक द्विभाजित जोड़ी समारोह पी उलटा साथ ( π 1 , π 2 ) , हम के रूप में इस राज्य सांकेतिक शब्दों में बदलना कर सकते हैं पी ( जेड , पी ( कश्मीरA(m,x)A(m1,A(m2,,A(mk,z))p(π1,π2) (बस पी ( जेड , 0 ) के मामले में के = 0 )। हम तब एक-चरणीय मूल्यांकन कार्य को परिभाषित कर सकते हैं, जो एक राज्य है:p(z,p(k,p(mk,,p(m2,m1))p(z,0)k=0

;e(p(z,0))=p(z,0)

;e(p(z,p(k,p(0,c))))=p(z+1,p(k1,c))

;e(p(0,p(k,p(m+1,c))))=p(1,p(k,p(m,c)))

e(p(z+1,p(k,p(m+1,c))))=p(z,p(k+1,p(m+1,p(m,c))))

फिर आप आदिम पुनरावर्तन का उपयोग करके n-चरण मूल्यांकन फ़ंक्शन प्राप्त करते हैं:

और E ( n + 1 , m , x ) = e ( E ( n , m , x ) )E(0,m,x)=p(x,p(1,m))E(n+1,m,x)=e(E(n,m,x))

अंत में, लपेट आसपास -recursion बिंदु है जहां हम प्रपत्र के एक राज्य के लिए मिलता है खोजने के लिए पी ( z , 0 ) - जेड हो जाएगा एक ( मीटर , एक्स )μEp(z,0)zA(m,x)


धन्यवाद! एक और सवाल (शायद काफी भोला, क्षमा करें): पैटर्न-मिलान-जैसी परिभाषाएं (एफ (0) = ..., एफ (एन + 1) = ...) व्यापक रूप से उपयोग की जाती हैं, लेकिन मुझे संदेह है कि वे वास्तव में बदल रहे हैं म्यू-पुनरावर्ती कार्य की परिभाषा। क्या वो?
आर्टेम पेलेनिट्सिन

इस तरह का मामला भेद (उदाहरण के लिए, को f ( 0 , y ) = g ( y ) और f ( x + 1 , y ) = h ( x , y ) द्वारा परिभाषित करना एक विशेष मामला है वास्तव में पिछले मूल्य का उपयोग नहीं करता है कि आदिम पुनरावृत्ति की। की गणना में एक ( एक्स , वाई ) , तो आप अतिरिक्त सहायक कार्यों का प्रयोग करेंगे और प्रतिलोम πf(x,y)f(0,y)=g(y)f(x+1,y)=h(x,y)A(x,y)π1,π2

ee(s)=f1(π1(s),π2(s))f1(z,0)=p(z,0)f1(z,m+1)=f2(z,π1(m+1),π2(m+1)), where f2 you get the idea.
Klaus Draeger

7

This is a variant of the idea posted by Kaveh, but I am posting anyway since it allows you to sweep many nasty details under the rug without actually doing any handwaving.

The key fact is that the graph of the Ackermann function is primitive recursive. It's not that hard to find a very crude primitive recursive bound B(m,n,w) on the code for the table of Ackermann values needed to verify that A(m,n)=w. Don't try to get sharp bounds — the cruder the easier! Something like B(m,n,w)=2mww should be good enough, but that depends on your choice of coding scheme. Since the verification of the table values can be described by a bounded formula, it is primitive recursive.

Once you have a primitive recursive definition for the graph G(m,n,w) of the Ackermann function, simply define A(m,n)=μwG(m,n,w).

Sadly, this strategy doesn't work for all functions defined by double (or multiple) recursion. The reason it works for the Ackermann function — as you will see when trying to figure out a good B(m,n,w) — is that it grows very monotonically. For the general case, you must use Kaveh's idea and have μ look for the appropriate table of values. This is basically the same reason why the Kleene's Normal Form Theorem needs to do a projection after applying the μ operator.


1
Hi François. It's nice to see you on cstheory.
Kaveh

Hi Kaveh. Nice to finally get to answer something here!
François G. Dorais
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.