Information distance

Information distance is the distance between two finite objects (represented as computer files) expressed as the number of bits in the shortest program which transforms one object into the other one or vice versa on a 
universal computer. This is an extension of Kolmogorov complexity. The Kolmogorov complexity of a "single" finite object is the information in that object; the information distance between a "pair" of finite objects is the minimum information required to go from one object to the other or vice versa.
Information distance was first defined and investigated in based on thermodynamic principles, see also. Subsequently, it achieved final form in. It is applied in the normalized compression distance and the normalized Google distance.
Properties.
Formally the information distance formula_1 between formula_2 and formula_3 is defined by 
with formula_5 a finite binary program for the fixed universal computer
with as inputs finite binary strings formula_6. In it is proven that
formula_7 with 
where formula_9 is the Kolmogorov complexity defined by of the prefix type. This formula_10 is the important quantity.
Universality.
Let formula_11 be the class of upper semicomputable distances formula_12 that satisfy the density condition 
This excludes irrelevant distances such as formula_14 for formula_15;
it takes care that if the distance growth then the number of objects within that distance of a given object grows.
If formula_16 then formula_17 up to a constant additive term.
The probabilistic expressions of the distance is the first cohomological class in information symmetric cohomology, which may be conceived as a universality property.
Metricity.
The distance formula_10 is a metric up to an additive formula_19
term in the metric (in)equalities. The probabilistic version of the metric is indeed unique has shown by Han in 1981.
Maximum overlap.
If formula_20, then there is a program formula_5 of length formula_22 that converts formula_3 to formula_2, and a program formula_25 of length formula_26 such that the program formula_27 converts formula_2 to formula_3. (The programs are of the self-delimiting format which means that one can decide where one program ends and the other begins in concatenation of the programs.) That is, the shortest programs to convert between two objects can be made maximally overlapping: For formula_30 it can be divided into a program that converts object formula_2 to object formula_3, and another program which concatenated with the first converts formula_3 to formula_2 while the concatenation of these two programs is a shortest program to convert between these objects.
Minimum overlap.
The programs to convert between objects formula_2 and formula_3 can also be made minimal overlapping.
There exists a program formula_5 of length formula_22 up to an additive term of formula_39 that maps formula_3 to formula_2 and has small complexity when formula_2 is known (formula_43). Interchanging the two objects we have the other program Having in mind the parallelism between Shannon information theory and Kolmogorov complexity theory, one can say that this result is parallel to the Slepian-Wolf and Körner–Imre Csiszár–Marton theorems.
Applications.
Theoretical.
The result of An.A. Muchnik on minimum overlap above is an important theoretical application showing
that certain codes exist: to go to finite target object from any object there is a program which almost only
depends on the target object! This result is fairly precise and the error term cannot be significantly improved. Information distance was material in the textbook, it occurs in the Encyclopedia on Distances.
Practical.
To determine the similarity of objects such as genomes, languages, music, internet attacks and worms, software programs, and so on, information distance is normalized and the Kolmogorov complexity terms approximated by real-world compressors (the Kolmogorov complexity is a lower bound to the length in bits of a compressed version of the object). The result is the normalized compression distance (NCD) between the objects. This pertains to objects given as computer files like the genome of a mouse or text of a book. If the objects are just given by name such as `Einstein' or `table' or the name of a book or the name `mouse', compression does not make sense. We need outside information about what the name means. Using a data base (such as the internet) and a means to search the database (such as a search engine like Google) provides this information. Every search engine on a data base that provides aggregate page counts can be used in the normalized Google distance (NGD).
A python package for computing all information distances and volumes, multivariate mutual information, conditional mutual information, joint entropies, total correlations, in a dataset of n variables is available .