เมนูนำทาง
ปัญหาการยุติการทำงาน ร่างบทพิสูจน์บทพิสูจน์ใช้การพิสูจน์แบบการสร้างข้อขัดแย้ง (หรือที่เรียกในภาษาละตินว่า 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⌝)
จะยุติการทำงานหรือไม่?มีความเป็นไปได้ทั้งหมดสองกรณี:
trouble (⌜trouble⌝)
ยุติการทำงาน: หากพิจารณาการทำงานของโปรแกรม trouble
จะพบว่า halt (⌜trouble⌝,⌜trouble⌝)
ต้องคืนค่าเท็จ แต่ถ้า halt
ทำงานถูกต้องก็หมายความว่า trouble (⌜trouble⌝)
จะทำงานไม่รู้จบ ทำให้เกิดข้อขัดแย้งกับสมมุติฐานว่า trouble (⌜trouble⌝)
ยุติการทำงานtrouble (⌜trouble⌝)
ทำงานไม่รู้จบ: เนื่องจาก halt (⌜trouble⌝,⌜trouble⌝)
ทำงานจบเสมอ สาเหตุเดียวที่ทำให้ trouble (⌜trouble⌝)
ทำงานไม่รู้จบก็คือ halt (⌜trouble⌝,⌜trouble⌝)
ต้องคืนค่าจริง อย่างไรก็ตามนี่หมายความว่า trouble (⌜trouble⌝)
จะต้องมีการยุติการทำงาน ทำให้เกิดข้อขัดแย้งกับสมมุติฐานว่า trouble (⌜trouble⌝)
ทำงานไม่รู้จบเนื่องจากทั้งสองกรณีทำให้เกิดข้อขัดแย้งที่ล้วนเป็นไปไม่ได้ ดังนั้นสามารถสรุปได้ว่าข้อสมมติเริ่มต้นแรกสุด (มีขั้นตอนวิธีที่อธิบายได้ด้วยโปรแกรม halt (a, i)
) นั้นไม่ถูกต้อง กล่าวคือไม่มีโปรแกรม halt
หรือขั้นตอนวิธีใด ๆ ที่สามารถตัดสินปัญหาการยุติการทำงานได้
เมนูนำทาง
ปัญหาการยุติการทำงาน ร่างบทพิสูจน์ใกล้เคียง
ปัญหา ปัญหาสิ่งแวดล้อมในประเทศไทย ปัญหาวิถีสั้นสุด ปัญหาราชวงศ์ ปัญหาปี ค.ศ. 2000 ปัญหาสิ่งแวดล้อมในประเทศอัฟกานิสถาน ปัญหาสกันทอร์ป ปัญหาการแต่งงานที่มีเสถียรภาพ ปัญหาวันเกิด ปัญหารางวัลมิลเลนเนียมแหล่งที่มา
WikiPedia: ปัญหาการยุติการทำงาน http://www.abelard.org/turpap2/tp2-ie.asp