I think its bootless to try to define the "minimum possible" Kolmogorov complexity. Here's why:<p>1. Note, kolmogorov complexity is defined by the length of the shortest <i>program</i> which prints out the string. What counts is the <i>number</i> of instructions, and not the <i>complexity of those instructions</i>.<p>2. So say S is a very complex spring. We can always construct a turing machine which could print out S using a zero length program: it could just start in a state which prints out S when you turn it on, and then halts.<p>3. So there is no such thing as a turing machine which prints out <i>every</i> string shorter than <i>any</i> other turing machine prints it out, QED.<p>That's the bad news. The good news is we don't even need to do that. For any string S, say that M and N are any two universal turing machines. Without loss of generality, specify that KM(S) <= KN(S). Then there is always some C for which KM(S) <= KN(S) + C. The constant C being the length of the program required to <i>emulate</i> machine M on machine N.<p>We are used to abstracting out constant sums and constant factors like this. The strings we are dealing with (as a species) are growing in length exponentially--that's why we went from 8-bit, to 16bit, etc computers. So as the length of S goes to infinity, the difference between the its complexity for any two machines becomes negligible.