algorithmcompressioncomputation-theoryinformation-theory

What is the optimum known upper bound on Kolmogorov complexity?


Given infinite time, we could approach a string's exact Kolmogorov complexity. If we don't have infinite time, we can still calculate an upper bound on the Kolmogorov complexity of a string:

...simply compress the string s with some method, implement the corresponding decompressor in the chosen language, concatenate the decompressor to the compressed string, and measure the length of the resulting string...(Wikipedia)

Is there an algorithm--guaranteed to terminate within a finite amount of time--that provides a tighter upper bound on Kolmogorov complexity than len(compressed string) + len(decompressor)?


Solution

  • Unfortunately, K(x) is not approximable. There is no upper bound. Consider compressing pi. There exists a small program that produces pi, so K(pi) is very small. But "standard" compression programs (zip, etc...) can't compress pi much. So compress(pi) is large -- arbitrarily large. Hence compress(pi) - K(pi) is unbounded.

    Put another way: we don't know how small K(x) could be so we can't place an upper bound on an approximation.