Distance d'édition sur les arbres
Un article de Wikipédia, l'encyclopédie libre.
Cet article est une ébauche concernant l’informatique.
Vous pouvez partager vos connaissances en l’améliorant. (Comment ?).
|
Sommaire |
[modifier] Introduction
Soit l et des nœuds racines, F et des forêts (un ensemble d'arbre) ordonnées. On défini l(F) et comme étant des arbres de taille n et m, avec comme nœuds racines respectifs l et . Les fils directs de l et sont les nœuds racines des forêts respectives F et . La distance d'édition est le coût minimum d'opérations élémentaires consistant en la suppression, l'insertion et le renommage d'un nœud, pour transformer l(F) en . La première version de cette distance fût proposée par Tai dont la complexité en temps et en espace pour le pire des cas est en O(n6).
De plus l'opérateur permet de concaténer un arbre à une forêt. 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é temporelle du calcul de manière significative.
[modifier] Stratégie de décomposition
Dans l'article \cite{dulucq2003ate} les auteurs ont proposé un cadre d'étude sur l'ensemble des algorithmes de programmation dynamique pour calculer la distance d'édition sur les arbres.
Le calcul de la distance d'édition sur les arbres se fait grâce à une distance d'édition sur les forêts \delta_{\text{forêt}} .
Le calcul de la distance d'édition sur les forêts peut se faire deux manières :
- à gauche : :
- ou à droite : :
Une << stratégie de décomposition >> est succession de choix entre une décomposition à gauche ou une décomposition à droite. Plus formellement si nous définissons l'ensemble des sous-forêts de F , et l'ensemble des choix de décomposition {droite,gauche}, alors une stratégie S pour le calcul de est défini comme l'application .
L'ensemble des algorithmes basés sur cette décomposition ont au moins dans le pire des cas une complexité temporelle en Ω(n.m.log(n).log(m)).
Les algorithmes de programmation dynamique, peuvent être étudiés avec la stratégie de décomposition. Nous allons nous intéresser aux deux stratégies les plus utilisées :
- Zhang - Shasha (1989) et
- Klein (1998).
[modifier] Zhang - Shasha
La stratégie de décomposition SZhang-Shasha utisée par Zhang et Shasha est simple car elle est toujours à 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 T et est en O(n4). D’autre part, la complexité spatiale de cet algorithme est en .
[modifier] Klein
Une façon d'expliquer la stratégie de décomposition SKlein de Klein est d'utiliser la notion de chemin lourd \cite{demaine2007oda}. Le choix de la décomposition est << gauche >> si le premier nœud de f est sur le chemin lourd et << droit >> dans les autres cas.
La complexité temporelle, dans le pire des cas, de cet algorithme est en O(n3log(n)).
[modifier] Demaine
Dans \cite{demaine2007oda} les auteurs ont proposé un algorithme pour calculer une distance d'édition sur les arbres basée sur la stratégie de décomposition de Dulucq et Touzet. Cet algorithme a une complexité temporelle dans le pire des cas en O(n3) et en O(n2) pour la complexité spatiale.
la stratégie de décomposition utilisée par Demaine est