4. Primeras aportaciones
4.3. Algoritmo de Tai
4.3.1. Operaciones de edici´ on y distancia de edici´ on
En su trabajo, Tai considera una ordenaci´on en preorden de los nodos del ´arbol, de tal forma que siendoT un ´arbol,t[i] representa al i-´esimo nodo deT en dicha ordenaci´on. Partiendo de esa numeraci´on, sobre los nodos de un ´arbolT es posible aplicar tresoperaciones de edici´on: cambiar la etiqueta de un nodo, eliminar un nodo del ´arbol o insertar un nuevo nodo en el ´arbol, tal y como se muestra en la figura4.2. Formalmente, tenemos la siguiente definici´on.
Definici´on 4.2 (operaciones de edici´on sobre ´arboles).
Sea T un ´arbol ordenado y etiquetado y sea Σ el alfabeto de sus etiquetas. Se considera el siguiente conjunto de operacionesde edici´on sobre ese ´arbol:
Cambio de etiqueta. Se reemplazar´a la etiqueta a∈ Σasociada a un nodo u del ´arbol T por otra etiquetab∈Σ. Tal operaci´on se notar´a comoa→b.
Borrado. Se elimina del ´arbolT un nodouetiquetado comoa∈Σ. Todos los hijos del nodo eliminado pasan a ser hijos del padre de dicho nodo. Esto es, el lugar que ten´ıa el nodo eliminado entre sus hermanos es ocupado por la secuencia de sus hijos. La operaci´on de borrado del nodo etiquetado como a se denotar´a comoa→ε, siendo ε /∈Σun s´ımbolo que representa a un nodo nulo.
Inserci´on. Se a˜nade un nodo etiquetado comob∈Σcomo hijo de otro nodo de T etiquetado como
a∈Σ. Un subconjunto consecutivo de los hijos del nodoase convertir´an en hijos del nodo insertado,
b. Dicha secuencia de hijos depender´a, en cada caso, del contexto. La notaci´on empleada para representar esta operaci´on ser´aε→b.
El conjunto de todas estas operaciones de edici´on se denota OP, definido como:
4.3. ALGORITMO DE TAI 39 ε ( b) ε (b ) (a b) T T ’ b Cambio de etiqueta a T T ’ Insersión a a b T T ’ Borrado a b a
Figura 4.2: Operaciones de edici´on sobre ´arboles.
Tal como se ilustra en la figura 4.2, las operaciones de borrado supondr´an la eliminaci´on del arco asociado al nodo eliminado, que ser´a sustituido por un conjunto de arcos que unir´an al padre de dicho nodo con cada uno de los hijos que pudiera tener el nodo eliminado, manteniendo el orden existente entre esos hijos. En el caso de las inserciones se realiza la modificaci´on complementaria. Se seleccionar´a un padre para el nuevo nodo y se a˜nadir´a un arco que los una. Adem´as, parte de los hijos del nodo padre podr´an pasar a ser hijos del nuevo nodo. La elecci´on del nodo padre y de los hijos del nuevo nodo no se especifica directamente en la operaci´on, sino que vendr´a determinada por el contexto en el cual sea realizada. En nuestro caso, al tratarse del c´alculo de distancias entre ´arboles, se considerar´a siempre que se eligen los nodos que den lugar al ´arbol m´as parecido al de partida. Normalmente, para transformar un ´arbol en otro no bastar´a con utilizar una ´unica operaci´on, siendo necesario introducir el concepto desecuencia de edici´on.
Definici´on 4.3 (secuencia de edici´on).
Si T′ es el ´arbol que se obtiene a partir deT despu´es de aplicar una operaci´on op∈OP, se dir´a que op transforma al ´arbolT en el ´arbolT′ y se notar´aT ⇒
opT′, o simplementeT ⇒T′.
Una secuencia S = op1, op2, . . . , opn de operaciones de edici´on, donde opi ∈ OP, ∀i 1 ≤ i ≤ n, se denominasecuencia de edici´on si existe un conjunto de ´arbolesTi, 1≤i≤ntales que la operaci´onopi transforma al ´arbolTi−1en el ´arbolTi, ∀1≤i≤n.
Adem´as, en ese caso, se dir´a que la secuencia S transforma al ´arbolT =T1en el ´arbolT′ =Tn, lo que se notar´a comoT ⇒S T′.
Al igual que en el caso de las cadenas, para obtener el valor de la distancia es necesario transformar la secuencia de operaciones necesarias para transformar un ´arbol en otro en un valor num´erico. Esto se consigue asociando a cada operaci´on de edici´on un n´umero real no negativo, su coste. Para ello se utiliza unafunci´on de coste.
40 CAP´ITULO 4. PRIMERAS APORTACIONES. Definici´on 4.4 (funci´on de coste).
Se define unafunci´on de costecomo una funci´onγ:OP −→Rque asocia a cada operaci´on op∈OPun n´umero real no negativo,γ(op), que verifica las siguientes propiedades:
1. γ(op)≥0, ∀op∈OP
2. γ(a→a) = 0, ∀a∈Σ
3. γ(a→b) =γ(b→a), ∀a, b∈Σ∪ {ε}
4. γ(a→c)≤γ(a→b) +γ(b→c), ∀a, b, c∈Σ∪ {ε}
Del mismo modo, dada una secuencia de operaciones de edici´on S =op1, op2, . . . , opn. El costeγ(S)de
dicha secuencia se define como la suma del coste de cada una de las operaciones individuales que forman parte de ella, formalmente ser´a:
γ(S) = n X i=1
γ(opi)
Tal y como se muestra en la definici´on, se desea que la funci´onγverifique las propiedades de una m´etrica. De entre esas propiedades es especialmente importante la ´ultima, conocida como desigualdad triangular. Esta propiedad asegura que si un ´arbol se puede obtener directamente con una sola operaci´on el coste de esa operaci´on ser´a menor o igual que el coste de dos operaciones diferentes que den lugar a ese mismo ´arbol. Tambi´en se puede comprobar que la extensi´on de la funci´onγa secuencias de operaciones mantiene esas propiedades. En este caso, la desigualdad triangular garantiza que, cuando un ´arbol se pueda obtener por distintas secuencias de operaciones, una de ellas, al menos, tendr´a un coste menor o igual que el de todas las dem´as. La consecuencia directa es que siempre existir´a una secuencia de operaciones cuyo coste sea menor que el de cualquier otra. De todo esto, se llega a la definici´on dedistancia de edici´on,d(T, T′), entre los ´arbolesT yT′.
Definici´on 4.5.
Dados dos ´arboles ordenados y etiquetados T y T′ y una funci´on de coste γ, se define la distancia de edici´on entreT yT′,d(T, T′), de la siguiente forma:
d(T, T′) =min{γ(S)|S es una secuencia de operaciones de edici´on que transformaT enT′}
Como ocurr´ıa en el caso de la distancia entre cadenas, se cuantifica la similaridad entre dos ´arboles, T y T′, como el m´ınimo coste de todas las posibles secuencias de operaciones de edici´on v´alidas que transforman un ´arbol en el otro. Como se ver´a en la siguiente secci´on para calcular la distancia no ser´a necesario estudiar todas las posibles secuencias de operaciones. Bastar´a con centrarse en un tipo especial de secuencias con unas caracter´ısticas determinadas que se describir´an a continuaci´on.