ร่างบทพิสูจน์ ของ ปัญหาการยุติการทำงาน

บทพิสูจน์ใช้การพิสูจน์แบบการสร้างข้อขัดแย้ง (หรือที่เรียกในภาษาละตินว่า reductio ad absurdum) โดยสมมติว่ามีขั้นตอนวิธีที่อธิบายได้ด้วยโปรแกรม halt (a, i) ซึ่งตัดสินว่าขั้นตอนวิธีที่ระบุด้วยข้อความ a จะยุติการทำงานเมื่อได้รับข้อมูลป้อนเข้าเป็นข้อความ i เราจะแสดงว่าข้อสมมติดังกล่าวจะทำให้เกิดข้อขัดแย้ง และนั่นหมายความว่าโปรแกรม halt นั้นไม่สามารถมีตัวตนอยู่ได้

สมมติให้โปรแกรม halt (a, i) คืนค่าจริง ถ้าขั้นตอนวิธีที่ระบุด้วยข้อความ a ยุติการทำงานเมื่อรับ i เป็นข้อมูลป้อนเข้า และคืนค่าเท็จ ในกรณีอื่น ๆ ด้วยโปรแกรมดังกล่าว เราสามารถสร้างโปรแกรมอีกโปรแกรมหนึ่ง ชื่อว่า trouble (s) ดังต่อไปนี้:

 function trouble (string s)     if halt (s, s) = false         stop     else         loop forever

โปรแกรม trouble รับข้อความ s และเรียกโปรแกรม halt โดยใช้ข้อมูลป้อนเข้าทั้งที่เป็นข้อความที่ระบุขั้นตอนวิธี a และข้อความที่จะใช้เป็นข้อมูลป้อนเข้า i ของขั้นตอนวิธีดังกล่าวเป็น s กล่าวอย่างไม่เป็นทางการก็คือ trouble ถาม halt ว่าขั้นตอนวิธี s เมื่อรับข้อความที่ระบุตัวขั้นตอนวิธีเองแล้ว จะยุติการทำงานหรือไม่ จากนั้น ถ้า halt (s,s) คืนค่าเท็จ โปรแกรม trouble จะจบการทำงาน แต่ถ้า halt (s,s) คืนค่าจริง โปรแกรม trouble จะวนรอบไม่รู้จบ

เนื่องจากโปรแกรมใด ๆ สามารถเขียนระบุเป็นข้อความได้ ดังนั้นสำหรับโปรแกรม trouble เองก็มีข้อความ ⌜trouble⌝ ที่ระบุโปรแกรม trouble พิจารณาคำถามต่อไปนี้:

trouble (⌜trouble⌝) จะยุติการทำงานหรือไม่?

มีความเป็นไปได้ทั้งหมดสองกรณี:

  1. สมมติว่า trouble (⌜trouble⌝) ยุติการทำงาน: หากพิจารณาการทำงานของโปรแกรม trouble จะพบว่า halt (⌜trouble⌝,⌜trouble⌝) ต้องคืนค่าเท็จ แต่ถ้า halt ทำงานถูกต้องก็หมายความว่า trouble (⌜trouble⌝) จะทำงานไม่รู้จบ ทำให้เกิดข้อขัดแย้งกับสมมุติฐานว่า trouble (⌜trouble⌝) ยุติการทำงาน
  2. สมมติว่า trouble (⌜trouble⌝) ทำงานไม่รู้จบ: เนื่องจาก halt (⌜trouble⌝,⌜trouble⌝) ทำงานจบเสมอ สาเหตุเดียวที่ทำให้ trouble (⌜trouble⌝) ทำงานไม่รู้จบก็คือ halt (⌜trouble⌝,⌜trouble⌝) ต้องคืนค่าจริง อย่างไรก็ตามนี่หมายความว่า trouble (⌜trouble⌝) จะต้องมีการยุติการทำงาน ทำให้เกิดข้อขัดแย้งกับสมมุติฐานว่า trouble (⌜trouble⌝) ทำงานไม่รู้จบ

เนื่องจากทั้งสองกรณีทำให้เกิดข้อขัดแย้งที่ล้วนเป็นไปไม่ได้ ดังนั้นสามารถสรุปได้ว่าข้อสมมติเริ่มต้นแรกสุด (มีขั้นตอนวิธีที่อธิบายได้ด้วยโปรแกรม halt (a, i) ) นั้นไม่ถูกต้อง กล่าวคือไม่มีโปรแกรม halt หรือขั้นตอนวิธีใด ๆ ที่สามารถตัดสินปัญหาการยุติการทำงานได้

ใกล้เคียง

ปัญหา ปัญหาสิ่งแวดล้อมในประเทศไทย ปัญหาวิถีสั้นสุด ปัญหาราชวงศ์ ปัญหาปี ค.ศ. 2000 ปัญหาสิ่งแวดล้อมในประเทศอัฟกานิสถาน ปัญหาสกันทอร์ป ปัญหาการแต่งงานที่มีเสถียรภาพ ปัญหาวันเกิด ปัญหารางวัลมิลเลนเนียม