14.7 KOLMOGOROV COMPLEXITY 483
The next statement is false.
The preceding statement is true.
These paradoxes are versions of what is called the Epimenides liar para-
dox, and it illustrates the pitfalls involved in self-reference. In 1931, G
¨
odel
used this idea of self-reference to show that any interesting system of
mathematics is not complete; there are statements in the system that are
true but that cannot be proved within the system. To accomplish this, he
translated theorems and proofs into integers and constructed a statement
of the above form, which can therefore not be proved true or false.
The halting problem in computer science is very closely connected
with G
¨
odel’s incompleteness theorem. In essence, it states that for any
computational model, there is no general algorithm to decide whether a
program will halt or not (go on forever). Note that it is not a statement
about any specific program. Quite clearly, there are many programs that
can easily be shown to halt or go on forever. The halting problem says
that we cannot answer this question for all programs. The reason for this
is again the idea of self-reference.
To a practical person, the halting problem may not be of any immediate
significance, but it has great theoretical importance as the dividing line
between things that can be done on a computer (given unbounded memory
and time) and things that cannot be done at all (such as proving all true
statements in number theory). G
¨
odel’s incompleteness theorem is one of
the most important mathematical results of the twentieth century, and its
consequences are still being explored. The halting problem is an essential
example of G
¨
odel’s incompleteness theorem.
One of the consequences of the nonexistence of an algorithm for the
halting problem is the noncomputability of Kolmogorov complexity. The
only way to find the shortest program in general is to try all short programs
and see which of them can do the job. However, at any time some of
the short programs may not have halted and there is no effective (finite
mechanical) way to tell whether or not they will halt and what they will
print out. Hence, there is no effective way to find the shortest program to
print a given string.
The noncomputability of Kolmogorov complexity is an example of the
Berry paradox. The Berry paradox asks for the shortest number not name-
able in under 10 words. A number like 1,101,121 cannot be a solution
since the defining expression itself is less than 10 words long. This illus-
trates the problems with the terms nameable and describable;theyare
too powerful to be used without a strict meaning. If we restrict ourselves
to the meaning “can be described for printing out on a computer,” we can
resolve Berry’s paradox by saying that the smallest number not describable