Unit four, section four#

Models of computation

Assignment 4 (chapter four, section four)#

  1. What is the significance of the unsolvability of the halting problem?

Note

I opted to choose this question because I found the similarity interesting, since the halting problem and the NP-problem are of a related topic (The NP-problem was one I found in one of the earlier chapters Challenge Work questions).

Answer#

The halting problem is important in computing since it demonstrates there is no general algorithmic approach to determine if a program will halt (stop, or terminate) or run indefinitely and forever. This is an undecidable problem. No algorithm can solve it an any case, and it’s the first of many known limitations, like the similar NP-problem about complexity where no efficient algorithm can solve (in polynomial time) a complex problem set, and its solution could not be verified any faster. The halting problem is different because unlike the NP-problem, the limitation is that it’s undecidable, and not just difficult.

The key significance to computing is that it introduces the challenges of automation for debugging and analysis prior to runtime, since there’s no way of knowing if the problem is undecidable or not. This is why infinite loops exist, and why software verification is a difficult and continuing area of research.

Historically, the halting problem contributed many theoretical areas of study, like the church-turing thesis, one which demonstrated that certain tasks were beyond the capabilities of machine and computation, and only a human could understand or solve them.

Works cited#

Schneider, G. Michael, and Judith Gersting. Invitation to Computer Science. 6th ed., Cengage Learning, 2013.