Chaitin's constant
|
In the computer science subfield of algorithmic information theory the Chaitin constant or halting probability is a construction by Gregory Chaitin which describes the probability that a randomly generated program for a given model of computation or programming language will halt. It is usually denoted <math>\ \Omega<math>.
It is a normal and transcendental number which can be defined but cannot be computed. This means one can prove that there is no algorithm which produces the digits of <math>\ \Omega<math>.
The proof of <math>\ \Omega<math>'s uncomputability relies on an algorithm, which, given the first <math>\ n<math> digits of <math>\ \Omega<math>, solves Turing's halting problem for programs of length up to <math>\ n<math>. Since the halting problem is undecidable, <math>\ \Omega<math> can not be computed.
As <math>\ \Omega<math> depends on the program encoding used it should be called Chaitin construction instead of Chaitin constant when not referring to any specific encoding.
Definition
To define Ω formally, we first need to fix a (Turing-complete) model of computation, for instance Turing machines or Lisp or Pascal programs. We then need to specify an unambiguous encoding of programs (or machines) as bit strings. This encoding must have the property that if w encodes a syntactically correct program, then no proper prefix of w encodes a syntactically correct program. This can always be achieved by using a special end symbol. We only consider programs that don't require any input (any program that does require input is equivalent to one that does not, having instead the input as part of its initial data).
Let P be the set of all programs which halt. Ω is then defined as:
- <math>\Omega = \sum_{p \in P} 2^{-|p|}.<math>
This is an infinite sum which has one summand for every syntactically correct program which halts. |p| stands for the length of the bit string of p. The above requirement that programs be prefix-free ensures that this sum converges to a real number between 0 and 1.
Notes
It can then be shown that Ω represents the probability that a randomly produced bit string will encode a halting program. This means that if you start flipping coins, always recording a head as a one and a tail as a zero, the probability is Ω that you will eventually reach the encoding of a syntactically correct halting program.
If you fix, in addition to the computation model and encoding mentioned above, a specific consistent axiomatic system for the natural numbers, say Peano's axioms, then there exists a constant N such that no bit of Ω after the N-th can be proven to be one or zero within that system. (The constant N heavily depends on the encoding choices and does not reflect the complexity of the axiomatic system in any way.) This is an incompleteness result akin to Gödel's incompleteness theorem and Chaitin's own result mentioned under algorithmic information theory.
Ω is uncompressible (also known as irreducible or algorithmically random). This means than in a particular programming language, a program which will write the first n bits of Ω for that language must be at least n bits itself (including any input data).
Calculation of the start of a Chaitin Ω
Cristian S. Calude, Michael J. Dinneen, and Chi-Kou Shu [1] (http://www.expmath.org/expmath/volumes/11/11.3/Calude361_370.pdf) have calculated the first 64 bits of a Chaitin ΩU for a particular machine: they in fact calculated 84 bits, but only the first 64 are reliable. These are (in binary)
- 0.0000001000000100000110001000011010001111110010111011101000010000...
Translating this to decimal gives a number which starts
- 0.078749969978123844...de:Chaitinsche Konstante