# Distance algorithmique

En théorie de l'information, la distance algorithmique entre deux objets finis est le nombre de bits du programme le plus court qui transforme l'un des objets en l'autre sur un ordinateur universel. Elle s'appuie sur la complexité de Kolmogorov. En termes de contenu d’information, la distance algorithmique est l'information minimale nécessaire pour passer d'un objet à l'autre. Elle a été définie et étudiée en 1992 par Ming Li et Paul Vitanyi.

## Propriétés
### Définition

La distance d'information $ID(x,y)$ entre $x$ et $y$ est définie par $ID(x,y)=\min\{|p|:p(x)=y\;\wedge \;p(y)=x\},$ où $p$ est un programme pour un ordinateur universel fixé ayant pour entrées des chaînes binaires $x,y$.
Bennett et al. démontrent que $ID(x,y)=E(x,y)+O(\log \cdot \max\{K(x\mid y),K(y\mid x)\})$ avec $E(x,y)=\max\{K(x\mid y),K(y\mid x)\},$ où $K$ est la complexité de Kolmogorov$^,$ que l'on applique à la paire $(\cdot \mid \cdot )$. $E(x,y)$ est la quantité pertinente. En effet, le terme correctif sert à assurer qu'il s'agit bien d'une métrique.

### Universalité

Soit $\Delta$ la classe des distances $D(x,y)$ semi-calculables supérieurement (en) qui satisfont la condition de densité : $\sum _{x\neq y}2^{-D(x,y)}\leq 1,\;\sum _{y\neq x}2^{-D(x,y)}\leq 1.$ Cela exclut les distances non pertinentes telles que $D(x,y)={\frac {1}{2}}$ pour $x\neq y$, et cela assure que si la distance augmente, alors le nombre d'objets à cette distance d'un objet donné augmente. Si $D\in \Delta$, alors $E(x,y)\leq D(x,y)$ à un terme additif constant près. Ces expressions probabilistes de la distance constituent la première classe cohomologique en cohomologie symétrique de l'information$^,$, ce qui peut être considéré comme une propriété d'universalité.

### Métrique

La distance $E(x,y)$ est une métrique au terme additif $O(\log \cdot \max {K(x\mid y),K(y\mid x)})$ près. La version probabiliste de la métrique est unique comme l'a montré Te Sun Han en 1981.

### Chevauchement maximal

Si $E(x,y)=K(x\mid y)$, alors il existe un programme $p$ de longueur $K(x\mid y)$ qui convertit $y$ en $x$, et un programme $q$ de longueur $K(y\mid x)-K(x\mid y)$ tel que le programme $qp$ convertit $x$ en $y$. Les programmes sont écrits sous forme auto-délimitée, ce qui signifie que l'on peut décider où un programme se termine et où l'autre commence dans la concaténation des programmes, autrement dit les programmes les plus courts passant d'un objet à l'autre peuvent être rendus maximaux en chevauchement.

### Chevauchement minimal

Les programmes de conversion entre les objets $x$ et $y$ peuvent également être rendus minimalement chevauchants : il existe un programme $p$ de longueur $K(x\mid y)$ (à un terme additif en $O(\log(\max {K(x\mid y),K(y\mid x)}))$ près) qui transforme $y$ en $x$ et a une petite complexité lorsque $x$ est connu ($K(p\mid x)\approx 0$). En intervertissant les deux objets, nous obtenons l'autre programme. En gardant à l'esprit le parallélisme entre la théorie de l'information (de Shannon) et la théorie de la complexité de Kolmogorov, on peut dire que ce résultat est analogue aux théorèmes de Slepian-Wolf (en) et de Körner–Imre Csiszár–Marton.

## Applications
### Applications théoriques

Le théorème d'Andrej Muchnik sur le chevauchement minimal montre qu'à partir de n'importe quel objet, pour aller vers un objet cible, il existe un programme dont la complexité de Kolmogorov ne dépend presque que de l'objet cible ! Ce résultat est à peu près optimal, car le terme d'erreur ne peut pas être significativement amélioré.

### Applications pratiques

Pour déterminer la similarité entre des objets tels que les génomes, les langues, la musique, les virus informatiques, les logiciels, etc., des approximations de la distance algorithmique sont proposées; la complexité de Kolmogorov est remplacée par un algorithme de compression existant réellement. Le concept est alors la distance de compression normalisée (en) (NCD) entre les objets, qui sont donnés sous forme de fichiers informatiques, ainsi le génome d'une souris, le texte d'un livre, la partition d'une œuvre musicale, etc. Partant d'un identifiant d'un objet comme le « génome d'une souris », l'utilisateur d'une base de données et d'un moyen de rechercher dans la base de données (comme un moteur de recherche) obtient sous forme indirecte cette information (par exemple en décomptant les pages liées à ce nom), et il est ensuite possible de calculer (approximativement) la distance algorithmique.

## Notes et Références

* (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Information distance » (voir la liste des auteurs).