Distance d'édition sur les arbres

Un article de Wikipédia, l'encyclopédie libre.

En informatique théorique, en biochimie et aussi dans des applications, en vision par ordinateur par exemple, la distance d'édition d'arbres (en anglais tree edit distance) est une mesure qui évalue, en termes de nombre de transformations élémentaires, le nombre d'opérations nécessaires et leur coût pour passer d'un arbre à un autre. C'est une notion qui étend, aux arbres, la distance d'édition (ou distance de Levenshtein) entre chaînes de caractères. Le distance aide à comparer par exemple la structure secondaire de l'ARN, ou des arbres phylogénétiques en biologie ou même pour guider les recommandations d'éditions aux étudiants dans des systèmes de tutorats intelligents[1].

Plusieurs variantes de cette notion existent, en fonction de la nature des arbres que l'on considère. En toute généralité, ce sont des arbres abstraits ; de façon plus restrictive, on considère des arbres plans, c'est-à-dire tels que les sommets voisins d'un sommet sont ordonnés. Plus particulier encore est le cas des arbres plans enracinés : un tel arbre est composé d'une racine et d'une suite ordonnée de sous-arbres. C'est ce cas qui est détaillé ci-dessous. Un exposé de synthèse est donné par un article de Benjamin Paaßen[1].

Les opérations élémentaires de transformations d'arbres sont, comme pour les chaînes de caractères, la suppression, l'insertion et le renommage, appliqués à un nœud d'un arbre.

Notations[modifier | modifier le code]

On considère les arbres comme des structures récursives : un arbre est composé d'un nœud racine , et d'une forêt qui est une suite d'arbres. La distance d'édition de deux arbres et est le nombre minimum d'insertions, suppressions ou renommages de nœuds, noté , nécessaires pour transformer en . Le calcul d'une distance d'édition sur arbre est similaire au calcul sur les chaînes. Cependant le choix de l'ordre des récursions peut changer la complexité en temps du calcul de manière significative.

Stratégies de décomposition[modifier | modifier le code]

L'exposé qui suit est repris de l'article de Dulucq et Touzet[2]. Soient et deux arbres non vides. Le calcul de se fait comme suit :

(resp. , resp. ) désigne le coût associé à la suppression (resp. insertion, resp. renommage) d'un nœud.

Le coût du calcul de la distance d'édition sur les arbres se fait grâce à une distance d'édition sur les forêts, toujours notée . Le calcul de la distance d'édition sur les forêts peut se faire de deux manières, en privilégiant la gauche ou la droite : le calcul s'applique à deux suites d'arbres, notées et , où et sont des arbres et et les restes des suites. En posant et , les stratégies sont :

  • à gauche :
  • à droite :

Une stratégie de décomposition est une succession de choix entre une décomposition à gauche ou une décomposition à droite. Chaque algorithme basé sur une décomposition a dans le pire des cas une complexité en temps au moins en . Des algorithmes de programmation dynamique peuvent être étudiés avec la stratégie de décomposition. Deux stratégies parmi les plus utilisées sont celles de Zhang-Shasha (1989) et celle de Klein (1998) :

Zhang-Shasha[modifier | modifier le code]

La stratégie de décomposition de Zhang-Shasha[3] consiste à utiliser systématiquement la décomposition à gauche.

Zhang et Shasha ont montré que la complexité en temps de leur algorithme pour le calcul de la distance d’édition de deux arbres et est en , où est la somme des tailles des deux arbres. D’autre part, la complexité en place de cet algorithme est en .

Klein[modifier | modifier le code]

La stratégie de décomposition de Klein[4] utilise une notion de chemin lourd[5]. Le choix de la décomposition est « à gauche » si le premier fils droit de A est sur le chemin lourd et « à droite » dans les autres cas.

La complexité en temps de cet algorithme est en .

Variante[modifier | modifier le code]

Un algorithme pour calculer une distance d'édition sur les arbres basée sur la stratégie de décomposition de Dulucq et Touzet[2] a été proposé par Demaine et ses coauteurs[5]: Cet algorithme a une complexité en temps dans le pire des cas en et en pour la complexité en espace.

Notes et références[modifier | modifier le code]

  1. a et b Paaßen 2018.
  2. a et b Dulucq et Touzet 2003.
  3. Zhang et Shasha 1989.
  4. Klein 1998.
  5. a et b Erik D. Demaine, Shay Mozes, Benjamin Rossmann et Oren Weimann, « An optimal decomposition algorithm for tree edit distance », ACM Transactions on Algorithms, vol. 6, no 1,‎ (DOI 10.1145/1644015.1644017).

Bibliographie[modifier | modifier le code]

  • Benjamin Paaßen, « Revisiting the tree edit distance and its backtracing: A tutorial », Supplementary material for the ICML 2018 paper: Tree Edit Distance Learning via Adaptive Symbol Embeddings,‎ (arXiv 1805.06869).
  • Serge Dulucq et Hélène Touzet, « Tree edit distance analysis », dans Combinatorial Pattern Matching CPM 2003, Springer, coll. « Lecture Notes in Computer Science 2676 », (ISSN 0302-9743, DOI 10.1007/3-540-44888-8_7, présentation en ligne), p. 83-95.
  • K. Zhang et D. Shasha, « Simple fast algorithms for the editing distance between trees and related problems », SIAM Journal of Computing, vol. 18, no 4,‎ , p. 1245–1262.
  • Philip N. Klein, « Computing the edit-distance between unrooted ordered trees », Proceedings of 6th European Symposium on Algorithms,,‎ , p. 91-102 (lire en ligne, consulté le ).

Lien externe[modifier | modifier le code]