What Good Is Kolmogorov Complexity Since It Is Relative? Kolmogorov complexity is relative to a choice of Universal Turing Machine. Because of the Invariance Theorem, the difference in complexity assigned by two Universal Turing Machines is bounded by a constant that depends on the choice of that pair. They can't disagree too much because one can always switch over to emulating the other. However, this amount of maximum disagreement can be arbitrarily large.

Given that, of what use is Kolmogorov complexity? I suppose if you have a sequence of bitstrings, then you can talk about the asymptotic growth of the complexity of these bitstrings, and you will know that this is independent of choice of UTM.

But I thought that Kolmogorov was supposed to be meaningful for individual finite strings. But every bitstring can be produced by an arbitrarily small program: imagine a language that functions just like Java but where an empty file produces the bitstring under consideration.

Doesn't this relativity make Kolmogorov complexity basically pointless? I must be mistaken, right?
The relativity is up to an additive constant. Suppose that you express Kolmogorov complexity relative to your favourite universal Turing machine&nbsp;$U$, but I do it relative to my favourite UTM&nbsp;$V$. If the shortest program for&nbsp;$V$ that outputs a string&nbsp;$x$ is&nbsp;$M$, then the shortest program for your machine&nbsp;$U$ can't be any longer than the one that simulates&nbsp;$V$ running&nbsp;$M$, and that has length $|M|+k$, where $k$&nbsp;is the size of the simulator.

So, yes, you could pick a UTM that has a very efficient coding for some finite set of strings. However, that would increase the length of the coding of at least that the same number of other strings, and we're typically interested in the asymptotic behaviour of infinite families of strings, rather than individual strings.