ตัวแปรของฟังก์ชันบีเวอร์ไม่ว่าง


9

การอ่านคำถามนี้ " ปัญหาที่ไม่อาจเกิดขึ้นได้อย่างเป็นธรรมชาติ แต่ไม่ทัวริงสมบูรณ์ " ภาษาต่อไปนี้อยู่ในใจของฉัน:

ถ้าเป็นฟังก์ชั่นบีเวอร์ไม่ว่าง (คะแนนสูงสุดที่สามารถทำได้ในระหว่างการหยุดเครื่องทัวริง 2 สัญลักษณ์ n-state ประเภทที่อธิบายข้างต้นเมื่อเริ่มต้นด้วยเทปเปล่า) ให้กำหนดฟังก์ชัน:Σ()

BB(M)={1M computes Σ()0 otherwise

ตอนนี้กำหนดภาษา:

L={M|M halts and BB(M)=0}

คือนับซ้ำ? (มันควรจะเป็นอีกครั้ง: เพียงแค่จำลองในขนาน M กับ TM ทั้งหมดที่มีความยาวเท่ากันและถ้าหยุดและหยุดอีกด้วยคะแนนที่สูงกว่าเพิ่ม M ในการนับ)LMM

เราสามารถลดปัญหาการหยุดชะงักเป็นหรือไม่ (ดูเหมือนว่ามันไม่สามารถ "จับ" การหยุดชะงักของบีเว่อร์ไม่ว่าง)L


คือจำนวนของรัฐ? |M|
Pål GD

เมื่อคุณจะระบุที่ไม่ได้หยุดลงใน ? ไม่สามารถเป็น RE เว้นแต่ว่าคุณระบุสมาชิกทั้งหมดของมันและขั้นตอนที่คุณอธิบายไว้จะระบุเฉพาะสมาชิกที่หยุดจริง MLL
Steven Stadnicki

@ PålGD: ใช่มันเป็นจำนวนของรัฐ (ไม่รวมสถานะหยุดพัก)
Vor

@StevenStadnicki: ฉันสันนิษฐานว่ามีเพียงเครื่องจักรที่หยุด ... บางทีฉันควรอธิบายให้ชัดเจนในคำถาม (ให้ฉันลองคิดดูสักหน่อยบางทีมันอาจเป็นคำถามที่ไม่สำคัญ) L
Vor

2
@Kaveh มันไม่ได้เป็นปัญหาสัญญา - คุณสามารถกำหนด (เพราะฉันเชื่อว่า OP ตั้งใจ) เป็น\} LL={M|M haltsBB(M)=0}
Steven Stadnicki

คำตอบ:


3

ฉันไม่อยากจะเชื่อเลยว่าฉันไม่เคยเห็นสิ่งนี้มาก่อน - แต่ใช่ด้วย oracle สำหรับคุณสามารถแก้ปัญหาการหยุดชะงักได้ เห็นได้ชัดว่า oracle สำหรับทำให้เรา 'หยุดยั้ง' ทั้งหมดที่ไม่ว่างเครื่อง Beaver หยุดดังนั้นคำถามคือ 'เราสามารถหา recursively ในสิ่งที่บีเวอร์ยุ่งคืออะไร?' กำหนดเป็นฟังก์ชันนับของ 'บีเวอร์ที่ยุ่งที่สุดอันดับสอง'; นั่นคือคะแนนที่สามารถบรรลุได้สูงสุดเป็นอันดับสองในบรรดาหยุดสองสัญลักษณ์ state TMs เคล็ดลับที่นี่คือมีฟังก์ชันแบบเรียกซ้ำเช่น (เกือบจะแน่ใจว่าLLLΣ2(n)nf()Σ(n)Σ2(f(n))f(n)=n+1จริง ๆ แล้วจะทำเคล็ดลับ แต่ต้องรู้ว่าฟังก์ชั่น BB เพิ่มขึ้นอย่างเข้มงวด): เนื่องจากเครื่องขนาดที่พิมพ์ 1s บนเทปของมันแล้วหยุดพักมีและ สองเครื่องแต่ละขนาดที่พิมพ์อย่างแน่นอน 1s และ 1s ตามลำดับบนเทปของพวกเขา - และสิ่งนี้ถือเป็นจริงสำหรับเครื่องจักร 'ช่องคลอดยุ่ง'แม้ว่าเราจะไม่สวม ไม่รู้อย่างแน่นอน ซึ่งหมายความว่าการผูกกับฟังก์ชั่น 'beaver busy' ในครั้งที่สองสำหรับจะให้ฟังก์ชัน Beaver ที่ยุ่งในMnΣ(M)c>1cnΣ(M)Σ(M)+1M Mf(n)n; แต่เมื่อมีสิ่งนี้มันง่ายที่จะแก้ปัญหาการหยุดชะงักสำหรับ TMมีขนาด - ถ้าจากนั้นบอกว่าหยุดทำงาน; มิฉะนั้นให้ค้นหาเครื่องที่รันนานที่สุดของขนาดใน (ซึ่งสามารถทำได้ซ้ำ ๆ เนื่องจากมีเพียงเครื่องจำนวนมากที่มีขนาด ) และจำลองสำหรับขั้นตอนต่างๆ หยุด. หากไม่หยุดภายในเวลานั้นอาจหยุดไม่ได้MnMLMf(n)Lf(n)MMM


ขอบคุณ; ได้รับแรงบันดาลใจจากคำตอบของคุณฉันพบด่วน (เล็กน้อย) -: การลดโดยตรงจากปัญหาการหยุดพักในคำตอบแยกต่างหาก
Vor

3

นี่เป็นคำตอบที่ดีของสตีเว่นรุ่นปรับปรุงใหม่พร้อมการลดปัญหา Halting อย่างชัดเจน

รับ buildที่รันบนและถ้ามันหยุดไปทางด้านขวาของเทปเขียน 0 และหยุดM,wMMw

ถ้าหยุด,เพราะมี TM ที่เทียบเท่าซึ่งมีขนาดเท่ากันที่เขียน 1 และหยุดทำงาน; เพื่อให้เราสามารถใช้ decider สำหรับเพื่อตรวจสอบว่าหยุดทำงานบน (หยุดทำงานบน iff )MBB(M)=0LMwMwML

... มันกลับกลายเป็นว่าคำถามนั้นสำคัญจริง ๆ :-)

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