We are faced with the task of storing and communicating increasingly huge amounts of information. The development of digital storage media and communication channels have not been able to keep up with this increasing demand in an economically viable way. Data compression is fast emerging as the key technique in resolving this technological issue. Kolmogorov complexity is the central tool used in this analysis. Informally the Kolmogorov complexity of an object is the length of the shortest string from which the original can be reconstructed lossless by a general-purpose computer. Thus the Kolmogorov complexity of an object measures the maximum amount of compression that any lossless compression program can achieve in theory. The main issue in translating theory to application is the fact that Kolmogorov complexity is non-computable. This means that no computer program can compute precisely the Kolmogorov complexity of a given string. Fortunately Kolmogorov complexity can be approximated by a computer, and this has been used as the standard method of implementing classification techniques.