นิพจน์ mu-recursive ชัดเจนสำหรับฟังก์ชัน Ackerman


15

คุณช่วยชี้ให้เห็นถึงวิธีการสร้างฟังก์ชั่น Ackerman (อันที่จริงฉันสนใจรุ่นที่เสนอโดยRózsaPéterและ Raphael Robinson) ผ่านผู้ให้บริการ mu-recursive มาตรฐานหรือไม่? ฉันลองใช้เอกสารต้นฉบับโดยPéterและ Robinson แต่กระดาษของPéterใช้ภาษาที่แตกต่างจากเอกสารภาษาอังกฤษและของโรบินสัน“ การเรียกซ้ำและการเรียกซ้ำสองครั้ง” และ“ ฟังก์ชั่นการเรียกซ้ำแบบดั้งเดิม” ก็ไม่ได้ช่วยอะไรเลย เรียกตัวดำเนินการเรียกซ้ำสองครั้งเพื่อกำหนดฟังก์ชัน Ackerman ดังนั้นในกรณีนี้คำจำกัดความที่ชัดเจนของผู้ประกอบการในเงื่อนไข mu-recursive จะถูกค้นหา

คำตอบที่ใกล้ที่สุดที่สุดคือพี. สมิ ธ ใน“ คำนำของทฤษฎีบทของ Godel” (CUP, 2007) (29.4 ฟังก์ชัน Ackermann-Peter นั้นเป็นμ-recursive) แต่เขากลับมาพร้อมกับสิ่งต่อไปนี้: น่าเบื่อ แต่ก็ไม่ยาก ไม่มีอะไรที่จะเรียนรู้ได้จากการสะกดรายละเอียดที่นี่: ดังนั้นเราจะไม่ทำ”

ฉันยังลองหนังสือของRózsaPéter“ ฟังก์ชั่นวนซ้ำ” (1967, Academic Press) มีตัวแปรมากมายสำหรับตัวดำเนินการเรียกซ้ำที่ให้ไว้ โดยปกติจะลดลงหนึ่งไปยังอีก ฉันเชื่อว่ามีตัวดำเนินการเรียกซ้ำที่เหมาะสมกับคำนิยามของฟังก์ชัน Ackerman และลำดับขั้นตอนที่ลดไปที่ตัวดำเนินการเรียกซ้ำและการย่อขนาดดั้งเดิม แต่ฉันพบว่าตัวเองไม่สามารถตรวจสอบได้ทั้งหมด


1
จริงๆแล้วนี่ไม่ยากอย่างที่คิดในตอนแรก เคล็ดลับคือการให้โอเปอเรเตอร์ค้นหาการคำนวณของฟังก์ชัน Ackerman เช่นตารางค่าถึงอินพุตจากนั้นตรวจสอบว่าตารางเป็นไปตามคำจำกัดความของฟังก์ชัน สิ่งที่จำเป็นคือการเข้ารหัส / ถอดรหัสลำดับ จำกัด และตรวจสอบตาราง การเข้ารหัส / ถอดรหัสมีการกำหนดไว้อย่างชัดเจนในตำราเรียนหลายเล่มการตรวจสอบสามารถทำได้โดยตัวระบุปริมาณสากลแบบมีขอบเขตบนความสัมพันธ์แบบง่าย ๆ ระหว่างรายการของตาราง ปริมาณสากลที่ถูก จำกัด ขอบเขตสามารถแสดงเป็นการคูณที่มีขอบเขตμ
Kaveh

และคำจำกัดความที่ชัดเจนของการคูณที่ถูกผูกไว้ในแง่ของ -recursion สามารถพบได้ในตำรา μ
Kaveh

@ Kaveh ใช่แนวคิดเดียวกันนี้ได้นำไปใช้ใน "การแนะนำทฤษฎีบทของ Godel" ของ P. Smith การเข้ารหัสและการประยุกต์ใช้ตัวดำเนินการย่อเล็กสุดจะได้รับที่นั่น ส่วนที่ยุ่งยากคือวิธีสร้าง“ ตาราง” ตามที่คุณตั้งชื่อ สมิ ธ ข้ามมันไป ดังนั้นดูเหมือนว่าฉันจะต้องคิดให้หนักขึ้นแทนที่จะรอวิธีแก้ปัญหาที่นี่;) อย่างน้อยก็ขอขอบคุณที่คุณอนุมัติแนวทางทั่วไป
Artem Pelenitsyn

ตารางเป็นเพียงลำดับที่แน่นอนที่รายการถูกทำดัชนีโดยผลลัพธ์ของฟังก์ชันการจับคู่ โดยที่R ( c , x , y )μc:x<Len(c)y,z<x,x=<y,z>→c<y,z>=R(c,x,y)R(c,x,y)เป็น RHS ของสมการสำหรับk ( x , Y ) Ack(x,y)
Kaveh

คำตอบ:


13

การทำลายฟังก์ชั่น Ackermann ไปจนถึงผู้ให้บริการระดับประถมศึกษานั้นจะค่อนข้างยาว แต่นี่เป็นภาพร่าง:

ทราบว่าเมื่อคำนวณ( ม. , x )ซ้ำที่จุดของการคำนวณที่คุณจะจัดการกับการแสดงออกในรูปแบบใด ๆ( ม. 1 , ( ม. 2 , ... , ( k , Z ) ... ) . ระบุ ฟังก์ชันจับคู่ bijective p ที่มีค่าผกผัน( π 1 , π 2 ) , เราสามารถเข้ารหัสสถานะนี้เป็นp ( z , p ( kA(m,x)A(m1,A(m2,,A(mk,z))p(π1,π2) (เพียง p ( z , 0 )ในกรณี k = 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 , ม. , 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 รอบEเพื่อหาจุดที่เราได้รับให้กับรัฐในรูปแบบพี( Z , 0 ) - Zจะ( ม. , x )μEp(z,0)zA(m,x)


ขอบคุณ! อีกหนึ่งคำถาม (อาจจะไร้เดียงสาขอโทษ): คำจำกัดความการจับคู่รูปแบบ (f (0) = ... , f (n + 1) = ... ) ใช้กันอย่างแพร่หลาย แต่ฉันสงสัยว่าพวกเขาได้รับการยกย่องโดย ความหมายของฟังก์ชั่น mu-recursive ที่พวกเขา?
Artem Pelenitsyn

ชนิดของกรณีความแตกต่างนี้ (ตัวอย่างเช่นการกำหนดโดย( 0 , Y ) = กรัม( Y )และF ( x + 1 , Y ) = H ( x , Y ) ) เป็นเพียงกรณีพิเศษ การเรียกซ้ำแบบดั้งเดิมที่ไม่ได้ใช้ค่าก่อนหน้า ในการคำนวณA ( x , y )คุณจะต้องใช้ฟังก์ชั่นเสริมและผกผันπf(x,y)f(0,y)=g(y)f(x+1,y)=h(x,y)A(x,y)ค่อนข้างน้อยถ้าคุณต้องการแยกมันออกเป็นชุดปฏิบัติการพื้นฐาน π1,π2
Klaus Draeger

ตัวอย่างเช่นคุณสามารถแปลความหมายของเป็นe ( s ) = f 1 ( π 1 ( s ) , π 2 ( s ) )โดยที่f 1 ( z , 0 ) = p ( z , 0 )และf 1 ( z , m + 1 ) = f 2 ( z , π 1ee(s)=f1(π1(s),π2(s))f1(z,0)=p(z,0)ที่ f 2 ...คุณได้รับความคิด f1(z,m+1)=f2(z,π1(m+1),π2(m+1))f2
Klaus Draeger

7

นี่เป็นความแตกต่างของความคิดที่โพสต์โดย Kaveh แต่ฉันกำลังโพสต์ต่อไปเนื่องจากมันช่วยให้คุณสามารถกวาดรายละเอียดที่น่ารังเกียจมากมายภายใต้พรมปูพื้นได้โดยไม่ต้องทำด้วยมือ

ความจริงที่สำคัญคือกราฟของฟังก์ชัน Ackermann เป็นแบบเรียกซ้ำ มันไม่ยากที่จะหาน้ำมันดิบมากดั้งเดิม recursive ผูกพันในรหัสสำหรับตารางค่า Ackermann ที่จำเป็นในการตรวจสอบว่า( ม. , n ) = W อย่าพยายามทำให้คมชัด - การไล่ล่านั้นง่ายกว่า! บางอย่างเช่นB ( m , n , w ) = 2 m w wB(m,n,w)A(m,n)=wB(m,n,w)=2mwwควรจะดีพอ แต่ขึ้นอยู่กับการเลือกรูปแบบการเข้ารหัสของคุณ เนื่องจากการตรวจสอบค่าตารางสามารถอธิบายได้ด้วยสูตรที่มีขอบเขตดังนั้นจึงเป็นการเรียกซ้ำแบบดั้งเดิม

เมื่อคุณมีนิยามแบบเรียกซ้ำแบบดั้งเดิมสำหรับกราฟของฟังก์ชัน Ackermann เพียงกำหนดA ( m , n ) = μ wG(m,n,w) )A(m,n)=μwG(m,n,w)

น่าเศร้ากลยุทธ์นี้ใช้ไม่ได้กับทุกฟังก์ชั่นที่กำหนดโดยการเรียกซ้ำสองครั้ง (หรือหลายครั้ง) เหตุผลที่มันใช้งานได้กับฟังก์ชั่น Ackermann - อย่างที่คุณจะเห็นเมื่อพยายามหาที่ดีนั่นก็คือมันโตขึ้นอย่างน่าเบื่อ สำหรับกรณีทั่วไปคุณต้องใช้ความคิดของ Kaveh และมีμมองหาตารางค่าที่เหมาะสม นี่เป็นเหตุผลเดียวกันว่าทำไมทฤษฎีบทรูปแบบปกติของคลีนจึงจำเป็นต้องทำการฉายภาพหลังจากใช้โอเปอเรเตอร์μB(m,n,w)μμ


1
สวัสดีFrançois ยินดีที่ได้พบคุณในโรงละคร
Kaveh

สวัสดี Kaveh ยินดีที่ได้ตอบบางสิ่งที่นี่ในที่สุด!
François G. Dorais
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.