# What metaphors might you use for the halting problem? How might those metaphors help one understand the problem?

## Cathy

That's a really good question, I hope that someone will be able to come up with some metaphors for the halting problem, because that might help me to understand it! It doesn't make sense to me, because it seems like there would be a lot of programs that would have predictable stopping times. I also don't really get why one has to use the program or Turing machine itself as the input. I decided to jump on the bandwagon and look for a web page that might explain this a little better, I thought that this page (`http//faculty.juniata.edu/rhodes/intro/theory2.htm`) was a little more clear than Dewdney, although it still doesn't help me to really understand the _point_ of the halting problem--I mean, isn't the whole point of most programs that they stop when they output whatever it is you want? I guess I just need some kind of metaphor :)

## Ivy

Hmmm... From what I remember from the reading, the halting problem was where the problem somehow got stuck in a loop so it kept going around and around and could never reach the end of the problem. I don't know what a good metaphor would be for this except maybe a train track where the tracks get switched so the train can't keep on going as planned?

## Jae

The Halting Problem I

...Turing machines sometimes halt, and sometimes they enter an infinite loop. A Turing machine might halt for one input string, but go into an infinite loop when given some other string. The halting problem asks: Is it possible to tell, in general, whether a given machine will halt for some given input?

If it is possible, then there is an effective procedure to look at a Turing machine and its input and determine whether the machine will halt with that input. If there is an effective procedure, then we can build a Turing machine to implement it.

We will now prove that the halting problem is insoluable.

At `http://www.netaxs.com/people/nerp/automata/halting1.html` offers a simpler seeming little definition of the implications of the halting problem.

The most relevant metaphor to this problem lies in linguistics. Matuszek touches on this metaphor in the Halting Problem II, which begins with the thought This sentence is false. Anyone can easily see that the sentence makes grammatical sense, even though it refers to itself as false. The criticism of Chomsky's grammar in the world of linguistics leads you straight to the concept of the rhizome, as articulated by Guattari and Peleuze in A Thousand Plateaus. In this paradigm, Chomsky's system is criticized for being too categorical and ignoring the sense of language as a continuously developing system. The metaphor of the halting problem, which is unsolvable by a Turing machine, is Chomsky's language system (which relies on successive dichotomies, like yes or no answers, or Noun and Verb, etc.) and the halting problem demonstrates metaphorically the truth we know: language communicates, and can be described by these sort of dichotomies (though they would rather not), but we'll never know all the ways of communicating sensical statements in a language (ones that develop, ones that are new), never grasp all the mysteries because they are in a state of continual development in which language evolves rhizomatically. This gives us a better understanding of the Halting Problem as one of philosophical import beyond mathematics and computer science, and into the realm of the structure of the human mind which created these systems from their perceptions of the world.

## Jeana

I didn't completely understand the halting problem as it was described in Dewdney. I got that it was Turing-unsolvable, a problem for which there was no formal system that could procedurally or computationally solve the problem at hand. If, in this way, the halting problem is along the lines of Godel's theorem, that there are true statements that cannot be proved by formal, step-by-step decision processes, then there are many metaphors you could use for the halting problem. For example, we know that unicorns don't exist, but there is no formal, procedural method by which we can prove this. It's just a fact that we accept. I guess that any metaphor one might use with regard to the halting problem would simply illustrate that sometimes other methods of deduction must be used in solving a problem, be it mere observation, experimentation, or some other form of non-computational problem-solving.

## Jeff

Generally, the halting problem is related to the Turing machine. David Mutszek discusses the Turing machine and halting problems `http://www.netaxs.com/people/nerp/automata/halting1.html`: The input to a Turing machine is a string. Turing machines themselves can be written as strings, and these strings can be used as input to other Turing machines. In particular, we have already discussed the notion of a universal Turing machine whose input consists of a description M of some arbitrary Turing machine, and some input w to which machine M is to be applied (we will write this combined input as M+w), and produces the same output that would be produced by M. We could write this as UniversalTuringMachine(M+w)=M(w). Since a Turing machine can be represented as a string, it is entirely possible to supply a Turing machine as input to itself, e.g. M(M). This isn't even a particularly bizarre thing to do -- for example, suppose you wrote a C prettyprinter in C, then used the prettyprinter on itself. Another common usage is bootstrapping-- you would use some convenient language to write a minimal compiler for some new language X, then used this minimal compiler for X to write (in language X) a new, improved compiler for language X. Each time you add a feature to language X, you can recompile and use this new feature in the next version of the compiler. Turing machines sometimes halt, and sometimes they enter an infinite loop. A Turing machine might halt for one input string, but go into an infinite loop when given some other string. The halting problem asks: Is it possible to tell, in general, whether a given machine will halt for some given input?

Program 1:

``` for(quarts = 1 ; quarts < 10 ; quarts++) {
liters = quarts/1.05671;
}
```

Program 2:

```limit = prompt("Max Value","");
for(quarts = 1 ; quarts < limit ; quarts++) {
liters = quarts/1.05671;
}
```

Program 3:

```green = ON
red = amber = OFF
while(true){
amber = ON; green = OFF;
wait 10 seconds;
red = ON;  amber = OFF;
wait 40 seconds;
green = ON; red = OFF;
}
```

The first program clearly is a one that will terminate after printing in an alert 10 lines of output. The second program alerts as many times as indicated by the input. The last program runs forever. Furthermore, the Halting problem asks the question. Given a program and an input to the program, determine if the program will eventually stop when it is given that input.

A metaphor for the halting problem could be analysis of a language. Each individual symbol or icon is analyzed (run through the Turing machine) and an output is produced. The output is the meaning of the symbol or icon. Assume all words are interrelated. The knowledge of the individual symbol or icon now redefines or redetermines the meanings of all other words. The meaning of the original symbol or icon is now redefined because all the symbols or icon are defined differently or contain a different meaning.

A metaphor could help understand the problem. The metaphor contains the loop that the halting problem contains.

## Joel

In general, The halting problem asks: Is it possible to tell whether a given machine will halt for some given input?

I think a lot of metaphors can be given for this situation, depending on how accurate or specific you want to be. One metaphor I thought of was putting a computer together without knowing how to or having the instructions in front of you. You would essentially have to guess as to wear to plug things in until you found the combination that would make the computer work. Furthermore, I think this metaphor could work for putting together anything, such as a bike or a car. i think the computer metaphor is better, though, because with a bike or car it might be too easy to tell what part goes where even without the directions. or maybe a better metaphor would be to reduce this one to just replacing a single part on the computer or the bike or car. This way, you would have to guess were it went and then see if the machine worked, which is the whole point of the halting problem.

I think metaphors help us understand the halting problem just like any analogy helps us understand the world. It puts the same general idea into a context we can understand or relate to, and therefore, understand the original idea (i.e. the halting problem) better. I think metaphors are great learning devices and are very beneficial.

## Kevin

What the hey? People really let this Dewdney guy walk the streets without repetitively smacking him over and over again with large, heavy, prickly sticks? Why can't he just explain things in ways that people understand, without suddenly introducing new variables and whatnot in his explanations? I want sanity! Please, some sanity?!? I need some!!

Okay, before I go nuts and start doing strange book-burning rituals, I had better answer the question. I can think of a few metaphors for understanding the halting problem which probably don't require such evil mathematical understanding and the like. A good metaphor in my head is that given two groups of people walking into a movie theater, can the ticket-taker of that theater tell that he/she shouldn't let the first group in because of ticket frauud of some kind before the group gets through the line, or something to that effect. I don't know that I completely understood what Dewdney was trying to say, but I hope that at least helps in some small way. I suppose this particular metaphor would help (and even helps me) understand the problem because it pertains to something at least somewhat more understandable than a big group of variables; there's no way to really know if the ticket-taker will ever figure out what's up. I think. I don't know. I'm just having continually worse time dealing with the Canadian people influencing my life.

## Liz

Ok, first, do I understand the halting problem? Maybe. It states that given a turing machine and input, if you do specific alterations to the machine and input, you can tweak the output so it's either halted or caught in an endless loop.

As for a metaphor...the only thing that came to my mind as slightly similar is the philosophical idea of "begging the question," answering a question with the question itself. If the only answer to a question is the question, you can end up in an endless loop. i don't know if that is anywhere near the right sort of thing, but it's all I could think of.

## Sam

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.