Is there an infinite set of strings whose Kolmogorov complexities are computable?

  • 1
    $\begingroup$ I re-tagged away from "complexity-theory" because that tag sounds like computational complexity, or at least could be easily confused with it. $\endgroup$ Dec 3, 2010 at 2:59
  • $\begingroup$ The phrasing of the question is somewhat imprecise. For any particular string, its Kolmogorov complexity is trivially computable, because the complexity is just some particular natural number. In my answer I took the most reasonable non-trivial interpretation. $\endgroup$ Dec 3, 2010 at 3:04
  • $\begingroup$ @Carl: thanks for that, I conflated those... $\endgroup$ Dec 3, 2010 at 5:41
  • $\begingroup$ @CarlMummert 'For any particular string, its Kolmogorov complexity is trivially computable, because the complexity is just some particular natural number.' Does this mean that there exist strings with known Kolmogorov complexity? $\endgroup$
    – user93511
    Jun 14, 2016 at 13:15
  • $\begingroup$ @Aidan Rocke: well, whatever the Kolmogorov complexity of $\langle 0101 \rangle$ is, that is its complexity, which we can hard-code into a program. The issue with computation is when we want a program that can take arbitrary strings as inputs, not just one particular string. Separately, in some universal prefix free codes we do know the complexity of particular strings. For example we can arrange any particular string we want, $s$, to have complexity $1$ by setting up the universal prefix free code $\phi$ so that $\phi(\langle 0\rangle) = s$. That still leaves all strings of form $1\sigma$ $\endgroup$ Jun 14, 2016 at 13:44

1 Answer 1


I think you are asking this: is there an infinite r.e. set of pairs $(\sigma,n)$ where $\sigma \in 2^{<\omega}$ is a string of Kolmogorov complexity $n$. The answer to that is no.

For a contradiction, assume such a list is r.e. - then there arbitrarily long strings in it, and thus strings of arbitrarily high Kolmogorov complexity. Define a function $P$ that takes input $\tau \in 2^{<\omega}$ and does the following. First, it effectively enumerates that list until it finds a pair $(\sigma, n)$ where $n > |\tau|$. Then it prints out $\sigma$.

The assumptions we have made ensure that $P$ is a total computable function. Therefore, applying Kleene's recursion theorem to $P$ gives a program $e_0$ that, when run with no input, computes $P(e_0)$. Thus the output of program $e_0$, run with no input, is a string of Kolmogorov complexity larger than $|e_0|$, which is impossible.

  • $\begingroup$ Thank you, I understand why my question was ambiguous now. $\endgroup$
    – user4353
    Dec 3, 2010 at 6:26
  • $\begingroup$ I was worried about the strings being too regular. For example, let each string be all 1's. I guess your point is that an n-bit string of all 1's still has complexity log(n) which grows arbitrarily. Is that right? Thanks $\endgroup$ Dec 8, 2010 at 0:58
  • 1
    $\begingroup$ @Ross Millikan: The problem is that the $\log(n)$ type bound is just an upper bound on the complexity. The question asks for an infinite set on which we can compute the complexity exactly, not just provide an upper bound. An exact computation like that is impossible, which is what my answer is intended to prove. $\endgroup$ Dec 9, 2010 at 15:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.