เป็นไปได้หรือไม่ว่าปัญหาการหยุดพักสามารถแก้ไขได้สำหรับอินพุตทั้งหมดยกเว้นรหัสของเครื่อง?


9

คำถามนี้เกิดขึ้นกับฉันเกี่ยวกับปัญหาการหยุดชะงักและฉันไม่สามารถหาคำตอบที่ดีทางออนไลน์ได้โดยสงสัยว่ามีใครสามารถช่วยได้บ้าง

เป็นไปได้หรือไม่ว่าปัญหาการหยุดชะงักนั้นสามารถตัดสินใจได้สำหรับ TM ใด ๆ บนอินพุตใด ๆ ตราบใดที่อินพุตไม่ใช่ TM เอง? โดยทั่วไป:

Halts(TM, I)
    IF TM == I:
        Undecidable, return a random result/throw an exception, whatever
    ELSE:
        Solve the problem

Halts'(X)
    IF Halts(X, X):
        Loop infinitely
    ELSE:
        Print 'done'

สิ่งนี้ดูเหมือนจะช่วยแก้ไขความขัดแย้ง เมื่อเราเรียก Halts ที่ขัดแย้งกัน (Halts ') เราไม่สามารถคาดหวังพฤติกรรมที่สอดคล้องกันได้ แต่การโทรไปยัง Halts (และ Halts') อื่น ๆ นั้นถูกต้องตามกฎหมายและสามารถแก้ไขได้

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

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

ขอบคุณสำหรับความช่วยเหลือ


7
การตัดสินใจไม่ได้รับผลกระทบจากการเปลี่ยนแปลงที่ จำกัด

มีเป็น # อนันต์ของหน่วยความจำที่เทียบเท่าและไม่มี(decidable)วิธีการตรวจสอบหน่วยความจำเทียบเท่า (เช่นของหลักเช่นเดียวกับลังเลปัญหาเอง) อย่างไรก็ตามมี "ช่องโหว่" ที่ซับซ้อนอยู่บ้าง ลองวิทยาการคอมพิวเตอร์เพื่อการวิเคราะห์เพิ่มเติมเกี่ยวกับปัญหาการหยุดชะงักที่เกี่ยวข้องกับการพิสูจน์ thm อัตโนมัติ ฯลฯ ... อาจลองทำคำตอบนี้ ...
vzn

แตะต้องคำถามของฉันให้ชัดเจนขึ้นขออภัยถ้าฉันเข้าใจผิดทุกคน
CS101

คำตอบคือไม่เช่นเดียวกับในคำตอบนี้cstheory.stackexchange.com/questions/2853/ …
Mohammad Alaggan

คำตอบ:


4

แต่เราสามารถ จำกัด ขอบเขตของคุณได้อย่างง่ายดาย สมมติว่าโปรแกรมG ที่ฝืนบิตของอินพุตและโทรหาคุณ H บนผลลัพธ์จากนั้นกำหนด !Hด้วยบิตทั้งหมดย้อนกลับ (เช่น 0 สำหรับ 1s, 1s สำหรับ 0s) จากนั้นเราสามารถโทรหาคุณH กับ G(!H) และเรากลับไปที่ปัญหาดั้งเดิม


ขอบคุณ. หลังจากอ่านคำตอบของ @David Richerby ฉันเริ่มคิดว่านี่เป็นคำตอบ หากเราสามารถสร้าง Q 'ที่เทียบเท่ากับการใช้งานได้' สำหรับโปรแกรมทั้งหมด Q จากนั้นเราสามารถตัดสินใจได้อีกครั้งว่าการหยุดชะงักของปัญหาทั้งหมดไม่ใช่เพียงแค่เส้นทแยงมุม ฉันเห็นนี่คือสิ่งที่คุณพูด
CS101

12

เรียกคืนการพิสูจน์มาตรฐานของความลังเลของปัญหาการหยุดชะงัก สมมติว่าเครื่องบางอย่าง H ตัดสินปัญหาการหยุดชะงักและปล่อยให้ Q เป็นเครื่องที่ในการป้อนข้อมูล M การใช้งาน H เพื่อตรวจสอบว่า M(M) หยุดและถ้าเป็นเช่นนั้น Q ลูป; มิฉะนั้น,Q หยุดพัก ตอนนี้Q(Q) หยุดถ้าและถ้าไม่หยุด

เป็นไปได้หรือไม่ว่าปัญหาการหยุดชะงักนั้นสามารถตัดสินใจได้สำหรับ TM ใด ๆ บนอินพุตใด ๆ ตราบใดที่อินพุตไม่ใช่ TM เอง?

ไม่ถ้าคุณเปลี่ยนคำจำกัดความของปัญหาการหยุดพักด้วยวิธีนี้การพิสูจน์ยังคงใช้ได้ เราไม่สนใจว่าจะเกิดอะไรขึ้นเมื่อ H ได้รับ H เป็นอินพุตเนื่องจากความขัดแย้งเกิดขึ้นหลังจากเราป้อนข้อมูล Q,Q ถึง H.

ประการที่สองถ้าคุณแก้ไข Hในการตรวจสอบว่าการป้อนข้อมูลที่เราจะได้รับความขัดแย้งเดียวกันโดยใช้เครื่องอื่น ๆ Q ที่เทียบเท่า Q ในแง่ที่ว่าสำหรับการป้อนข้อมูลใด ๆ w, Q(w) หยุดถ้าและถ้าหาก Q(w) หยุดพัก มีมากมายเหล่านี้และH ไม่สามารถตรวจจับทั้งหมดได้เพราะไม่สามารถบอกได้ว่าเครื่องทัวริงสองเครื่องนั้นเทียบเท่ากันหรือไม่


3
ย่อหน้าสุดท้ายเพียงอย่างเดียวอาจเพียงพอที่จะตอบคำถาม: คุณไม่สามารถ hardcode เก็บการเข้ารหัสทั้งหมดของเครื่องจักรที่เทียบเท่าไม่ว่าการปรับตัวที่ จำกัด (ตามความหมาย) ที่คุณต้องการดำเนินการ (นั่นไม่ได้หมายความว่าส่วนที่เหลือของโพสต์ของคุณจะไม่คุ้มค่าที่จะอ่าน!)
Raphael

ขอบคุณสำหรับคำตอบ ความไม่สามารถตัดสินใจได้ไม่ว่าโปรแกรมนั้นจะมีคุณสมบัติเทียบเท่าหรือไม่นั้นเกิดจากความลังเลของปัญหาการหยุดชะงักหรือไม่? ทำไมสิ่งนี้จะไม่ให้เหตุผลแบบวงกลม?
CS101

1
@ CS101: ความไม่แน่นอนของ HALTเป็นทฤษฎีบทและทุกครั้งที่เราไม่ได้ "โกง" เมื่อเราใช้มันเพื่อแสดงให้เห็นว่ามันเป็นไปไม่ได้ที่จะแก้ปัญหาอีกปัญหาHALTซึ่งพยายามหลีกเลี่ยงข้อ จำกัด ในฐานะที่เป็นหมายเหตุข้างเรารู้วิธีปฏิบัติในการพิสูจน์การเลิกจ้างหรือการไม่สิ้นสุดของโปรแกรมเชิงปฏิบัติหลายโปรแกรม (ไม่ใช่ทุกโปรแกรม) อย่างไรก็ตามการพิสูจน์ความเท่าเทียมกันของโปรแกรมกลายเป็นเรื่องยากในการปฏิบัติอย่างมีนัยสำคัญ(แม้ว่าพวกเขาทั้งสองจะไม่สามารถตัดสินใจได้)
ดี้

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