ปัญหาการยุติการทำงาน

ความสำคัญและผลสืบเนื่อง

ปัญหานี้มีความสำคัญเพราะว่าเป็นปัญหาแรกที่พิสูจน์ได้ว่าเป็นปัญหาที่ไม่สามารถตัดสินได้ หลังจากนั้นปัญหาในกลุ่มนี้อีกหลายปัญหาก็ถูกระบุออกมา วิธีพิสูจน์ทั่วไปทำโดยใช้เทคนิคการลดรูป ซึ่งเป็นการแสดงว่าถ้ามีขั้นตอนวิธีในการแก้ปัญหาต่างๆ เหล่านี้ เราจะสามารถนำมาใช้เพื่อตัดสินปัญหาที่ไม่สามารถตัดสินได้ (โดยการแปลงตัวปัญหา (instance) ของปัญหาที่ไม่สามารถตัดสินได้นั้นให้อยู่ในรูปของปัญหาใหม่นี้) แต่เนื่องจากเราทราบว่าไม่มีขั้นตอนวิธีใดจะตัดสินปัญหาที่ไม่สามารถตัดสินได้ เราจึงสรุปได้ว่าไม่มีวิธีใดที่จะตัดสินปัญหาอันใหม่ได้ด้วย
การที่เราไม่สามารถตัดสินปัญหาการยุติการทำงานได้ มีผลสืบเนื่องทำให้เราไม่มีทางมีวิธีทั่วไปในการตัดสินได้ว่าถ้อยแถลง (statement) เกี่ยวกับจำนวนธรรมชาติในเป็นจริงหรือไม่ ทั้งนี้เนื่องจากประพจน์ที่ระบุว่าขั้นตอนวิธีหนึ่งๆ จะยุติการทำงานเมื่อรับข้อมูลป้อนเข้าหนึ่งๆ นั้นสามารถเขียนให้อยู่ในรูปของถ้อยแถลงเกี่ยวกับจำนวนธรรมชาติที่เทียบเท่ากันได้ ดังนั้น ขั้นตอนวิธีที่ตัดสินความจริงของถ้อยแถลงเกี่ยวกับจำนวนธรรมชาติ จะสามารถนำมาใช้เพื่อตัดสินปัญหาการยุติการทำงานได้ ข้อสรุปก็คือ ขั้นตอนวิธีดังกล่าวจึงไม่สามารถมีอยู่จริง เพราะว่าเราทราบว่าไม่มีขั้นตอนวิธีใดที่ตัดสินปัญหาการยุติการทำงานได้ สังเกตว่าการแสดงการไม่สามารถตัดสินได้ดังกล่าวใช้วิธีการลดทอนปัญหาสู่ปัญหาการยุติการทำงาน
อย่างไรก็ตาม การแสดงว่าปัญหาบางปัญหาไม่สามารถตัดสินได้นั้น ยังสามารถแสดงได้ด้วยวิธีอื่นๆ โดยไม่จำเป็นต้องผ่านการลดทอนสู่ปัญหาการยุติการทำงานเสมอไป เกเกอรี่ ไชตินได้แสดงว่ามีปัญหาที่ไม่สามารถตัดสินได้ในทฤษฎีข้อมูลเชิงขั้นตอนวิธีที่ไม่ต้องใช้ปัญหาการยุติการทำงาน นอกจากนี้เขายังได้ให้นิยามที่น่าประหลาดเกี่ยวกับความน่าจะเป็นในการยุติการทำงานที่แสดงถึงความน่าจะเป็นที่โปรแกรมที่สร้างขึ้นแบบสุ่มจะทำงานสิ้นสุด
แม้ว่าบทพิสูจน์ของทัวริงจะแสดงว่าไม่มีวิธีใดที่สามารถตัดสินได้ว่าขั้นตอนวิธีที่ให้มานั้น ทำงานสิ้นสุดได้ สำหรับบางขั้นตอนวิธีแล้ว เราก็มีวิธีในการแสดงว่าขั้นตอนวิธีนั้นทำงานสิ้นสุด หรือแม้กระทั่งแสดงขอบเขตของเวลาที่ขั้นตอนวิธีดังกล่าวจะต้องใช้ในการทำงาน นักวิทยาศาสตร์คอมพิวเตอร์มักสร้างบทพิสูจน์ดังกล่าว เพื่อแสดงว่าขั้นตอนวิธีทำงานถูกต้อง ซึ่งบทพิสูจน์ดังกล่าวมักเป็นส่วนหนึ่งของบทพิสูจน์ความถูกต้อง อย่างไรก็ตาม บทพิสูจน์ดังกล่าวแต่ละอันนั้น จะใช้รูปแบบในการให้เหตุผลที่แตกต่างกัน นั่นคือ: ไม่มี วิธีอัตโนมัติเชิงกลที่สามารถตัดสินได้ว่าขั้นตอนวิธีใดๆ จะทำงานสิ้นสุดได้. สำหรับโปรแกรมทั่วไปแล้ว บ่อยครั้งความรู้เฉพาะทางบางอย่างสามารถนำมาใช้เพื่อสร้างข้อพิสูจน์ของการยุติการทำงานได้ การศึกษาเกี่ยวกับเรื่องนี้เรียกว่าการวิเคราะห์การยุติการทำงาน
ข้อจำกัดอีกประการหนึ่งของบทพิสูจน์ว่าปัญหาการยุติการทำงานของโปรแกรมคือ โมเดลในการคำนวณที่บทพิสูจน์ใช้นั้น อนุญาตให้โปรแกรมสามารถใช้หน่วยความจำได้ไม่จำกัด แม้ว่าในเวลาหนึ่ง ๆ โปรแกรมจะสามารถเก็บข้อมูลได้จำกัด แต่มันจะเก็บข้อมูลเพิ่มขึ้นได้เรื่อย ๆ และไม่มีวันที่หน่วยความจำจะเต็ม ถ้าหน่วยความจำและเนื้อที่เก็บข้อมูลเพิ่มเติมของโปรแกรมมีจำกัด เช่นเดียวกับเครื่องคอมพิวเตอร์ในปัจจุบัน ในทางทฤษฎีแล้ว ปัญหาการยุติการทำงานนั้น ก็จะสามารถแก้ได้ผ่านทางโปรแกรมที่ไม่ซับซ้อนนัก กล่าวคือ ในกรณีดังกล่าว สถานะที่เป็นไปได้ทั้งหมดที่โปรแกรมจะมีได้นั้นมีจำกัด ซึ่งจะทำให้โปรแกรมที่ไล่พิจารณาสถานะทั้งหมดสามารถตัดสินได้ว่า ขั้นตอนวิธีที่รับมานั้นจะยุติการทำงานหรือไม่ อย่างไรก็ดีโปรแกรมดังกล่าวจะใช้เวลาในการทำงานที่นานเกินไป จนไม่สามารถนำมาใช้จริงได้

ข้อควรระวัง

ความยากในปัญหาการยุติการทำงานคือการที่ต้องตอบคำถามสำหรับทุกๆโปรแกรมและทุกๆข้อมูลนำเข้าว่าจะเกิดการยุติการทำงานหรือไม่ ดังนั้นขั้นตอนวิธีที่ตอบเพียงว่าจะ "ยุติการทำงาน" หรือ "ไม่ยุติการทำงาน" เพียงอย่างเดียวไม่สามารถแก้ไขปัญหานี้ได้ พิจารณาโปรแกรมที่จำลองการทำงานของโปรแกรมอื่น หากโปรแกรมที่เราทดสอบนั้นยุติการทำงาน โปรแกรมจำลองก็จะให้ผลลัพธ์ถูกต้อง แต่หากโปรแกรมทดสอบไม่ยุติการทำงาน โปรแกรมจำลองก็ย่อมไม่ยุติการทำงานด้วยเช่นกัน ซึ่งส่งผลให้ไม่สามารถแก้ปัญหานี้ได้ตามที่ได้กล่าวไว้
ปัญหาการยุติการทำงานเป็นปัญหาที่สามารถตัดสินใจได้ (นั่นคือสามารถแก้ได้) บนเครื่องจักรที่มีหน่วยความจำจำกัด (linear bounded automata; LBAs) เนื่องจากจำนวนสถานะในเครื่องจักรเหล่านี้มีจำกัด เมื่อทำงานไปเรื่อยๆ โดยหลักรังนกพิราบ จะมีจุดหนึ่งที่สถานะในหน่วยความจำเหมือนกัน นั่นคือถ้าหากเราปล่อยให้โปรแกรมทำงานต่อไปอีก สถานะก็จะมาซ้ำที่จุดเดิมอีกไปเรื่อยๆ ดังนั้นเมื่อมาถึงจุดๆนั้น เราก็สามารถบอกได้ทันทีว่าโปรแกรมนี้ ไม่ยุติการทำงาน
ถึงแม้คอมพิวเตอร์ในยุคปัจจุบันจะเป็นเครื่องจักรที่มีหน่วยความจำจำกัดประเภทหนึ่ง จำนวนสถานะที่แตกต่างกันทั้งหมดของคอมพิวเตอร์นั้นมีมากกว่า 2¹ ⁰⁰⁰ ⁰⁰⁰ สถานะ ซึ่งมากมายมหาศาล เวลาในการแก้ไขปัญหานี้จึงมากมายมหาศาลด้วยเช่นกัน (สามารถเปรียบเทียบว่าเวลาในการแก้ไขปัญหานี้ ทำให้ช่วงเวลาอายุของเอกภพไร้ความหมายได้เลย)