# Class 43: The Limits of Computing

Back to Costs of Computing. On to Planning for the Rest of the Semester.

Held Wednesday, April 19, 2000

Overview

Today we consider an important limit of computing: are there things that can't be computed?

Question 43 for discussion today: What metaphors might you use for the halting problem? How might those metaphors help one understand the problem?

Question 44 for discussion Friday: What chapters/topics do you plan to present? When? Please list alternatives.

Notes

• Upcoming events:
• Thursday night's Africana studies conference
• Cool talk on bias in standardized testing Thursday at 4:30.
• On Monday, April 24th at 7 p.m. in South Lounge, Katie Koestner, a nationally recognized, outspoken survivor of college date rape and sexual assault prevention specialist, will present a program for students and community members.
• A few of you have suggested a different structure for the last few weeks of the semester: each of you pick a topic (preferably including a chapter in Dewdney or Forester and Morrison) to present. Everyone reads the appropriate chapter. The presenter also reads supplementary materials that she/he finds on the Web and consults with Sarah and me as necessary.

Contents

Summary

## Are there uncomputable problems?

• We've determined that
• There is a limit to models of computing (Church's thesis)
• Some problems are difficult to compute effectively (NP-completeness)
• That leads to a new question:
• Are there things that we can't compute?

## The Halting Problem

• The halting problem is a simple problem:
• Given a program and the input to the program, will the program eventually stop.
• For example, does the following program stop?
```while (x != y) {
if (x < y) {
x = (x-1)*(x-1);
y = sqrt(y);
}
else {
y = (y-1)*(y-1);
x = sqrt(x);
}
} // while
```
• Why is this important? It would be helpful to know if programs stop.
• There are also many other things that it would be helpful to know about programs, such as whether or not two programs are equivalent.
• Surprisingly, it turns out that it is impossible to write a general program that determines if other programs halt.

## History

Saturday, 22 January 2000

• Created as a blank outline.

Wednesday, 19 April 2000

• Filled in the details.

Back to Costs of Computing. On to Planning for the Rest of the Semester.

Disclaimer Often, these pages were created "on the fly" with little, if any, proofreading. Any or all of the information on the pages may be incorrect. Please contact me if you notice errors.