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[note 1]. 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 entre et est définie par où est un programme pour un ordinateur universel fixé ayant pour entrées des chaînes binaires .
Bennett et al. démontrent[1] que avec où est la complexité de Kolmogorov[2],[3] que l'on applique à la paire [note 2]. est la quantité pertinente. En effet, le terme correctif sert à assurer qu'il s'agit bien d'une métrique.
Universalité
Soit la classe des distancessemi-calculables supérieurement(en) qui satisfont la condition de densité : Cela exclut les distances non pertinentes telles que pour , et cela assure que si la distance augmente, alors le nombre d'objets à cette distance d'un objet donné augmente. Si , alors à un terme additif constant près[1]. Ces expressions probabilistes de la distance constituent la première classe cohomologique en cohomologie symétrique de l'information[4],[5], ce qui peut être considéré comme une propriété d'universalité.
Métrique
La distance est une métrique au terme additif près[1]. La version probabiliste de la métrique est unique comme l'a montré Te Sun Han en 1981[6].
Chevauchement maximal
Si , alors il existe un programme de longueur qui convertit en , et un programme de longueur tel que le programme convertit en . 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[1].
Chevauchement minimal
Les programmes de conversion entre les objets et peuvent également être rendus minimalement chevauchants : il existe un programme de longueur (à un terme additif en près) qui transforme en et a une petite complexité lorsque est connu (). En intervertissant les deux objets, nous obtenons l'autre programme[7]. 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[7] 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é[8].
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[note 3] sont proposées; la complexité de Kolmogorov est remplacée par un algorithme de compression existant réellement[note 4]. 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[9].[pas clair]
↑La complexité de Kolmogorov d'un objet correspond à l'information contenue dans cet objet. Ici, il est question de deux objets, dont on veut savoir de combien ils diffèrent en termes de quantité d’information.
↑ est la longueur du plus petit programme qui calcule si est fourni par ailleurs.
↑ La complexité de Kolmogorov est une borne inférieure de la longueur en bits d'une version compressée de l'objet.
Références
↑ abc et d(en) C.H. Bennett, P. Gacs, M. Li, P.M.B. Vitanyi et W. Zurek, « Information distance », IEEE Transactions on Information Theory, vol. 44:4, , p. 1407–1423. Disponible sur ArXiv : « Information distance »
↑(en) Pierre Baudot, « The Poincaré-Shannon Machine: Statistical Physics and Machine Learning Aspects of Information Cohomology », Entropy, vol. 21, no 9, , p. 881 (ISSN1099-4300, DOI10.3390/e21090881, lire en ligne, consulté le )
↑ a et b(en)Andrej A. Muchnik, « Conditional complexity and codes », Theoretical Computer Science, vol. 271, nos 1–2, , p. 97–109 (DOI10.1016/S0304-3975(01)00033-0)