Análisis del caso promedio
•
El plan:
– Probabilidad
– Análisis probabilista
– Árboles binarios de búsqueda construidos aleatoriamente
– Tries, árboles digitales de búsqueda y Patricia
– Listas “skip”
Abb
’s construidos aleatoriamente
•
Recordar… árbol binario de búsqueda (
abb
):
– La clave de todo nodo es mayor o igualque las de sus descendientes izquierdos y menor que las de sus descendientes derechos.
– Las operaciones básicas (búsqueda, inserción, borrado…) tienen un
coste O(h), donde h es la altura del árbol.
– La altura de un abb varía con las inserciones y
borrados y, en el peor caso, puede llegar a ser igual al número de nodos, O(n).
¿Qué ocurrirá en un caso “promedio”?
ama su a al eso si sin
Abb
’s construidos aleatoriamente
•
Abb
de
n
nodos construido aleatoriamente:
– Es el resultante tras la inserción consecutiva de nclaves en orden aleatorio en un árbol vacío,
suponiendo que las n! permutaciones posibles de las claves son equiprobables.
– La pregunta: ¿cuál es el coste promedio de las operaciones con estos árboles?,
es decir, ¿cuál es la altura media de estos árboles?
Abb
’s construidos aleatoriamente
•
Longitud de los caminos internos y externos de
un árbol binario
– Definición. Árbol binario extendido: el resultante de añadir un nodo
especial en el lugar de cada subárbol vacío.
– Definición. Longitud de
caminos externos, E: es la suma de las longitudes de todos los
caminos desde la raíz hasta las hojas, .
– Definición. Longitud de caminos internos, I: es la suma de las longitudes de todos los caminos desde la raíz hasta todos los nodos internos, .
ama su a al eso si sin E = 26 I = 12
Abb
’s construidos aleatoriamente
•
Teorema:
E
=
I
+ 2
n
, donde
n
es el número de
nodos internos.
– Demostración: supongamos que se borra un nodo
interno V a distancia k de la raíz y tal que sus dos hijos son hojas.
• En tal caso, E disminuye en 2(k+1), porque los hijos de V
desaparecen, y aumenta en k, porque V pasa a ser hoja, luego
E se convierte en E-k-2.
• Por otra parte, I disminuye en k.
• Por tanto, E-I disminuye en 2 por cada nodo que se borra. • Borrando los n nodos se llega a un árbol vacío, es decir con
Abb
’s construidos aleatoriamente
•
Notación y relación fundamental:
– Cn : número medio de comparaciones en una búsqueda con éxito en un árbol de n nodos construido aleatoria- mente, suponiendo que la búsqueda de toda clave es equiprobable.
– Cn ': número medio de comparaciones en una búsqueda sin éxito, suponiendo que cada uno de los n+1
intervalos entre las claves y fuera de sus valores extremos son equiprobables.
– Entonces: Cn = 1 + I/n y Cn ' = E/(n+1) – Por tanto (E = I + 2n): 1 1 1 n n C n C
Abb
’s construidos aleatoriamente
•
Finalmente…
– El número de comparaciones necesarias para
encontrar una clave es exactamente uno más que el número de comparaciones que se necesitaban cuando esta clave no estaba en el árbol, por tanto:
que unido a nos da la recurrencia: (n+1)Cn ' = 2n + C0 ' + C1 ' + + Cn-1 ' n C C C Cn n 1 0 1 1 1 1 1 n n C n C
Supongamos que cada una de las n! ordenaciones posibles de las n claves es una secuencia de inserción igualmente probable para construir el árbol
Abb
’s construidos aleatoriamente
– Para resolver (n+1)Cn ' = 2n + C0 ' + C1 ' + + Cn-1 ' se resta nCn-1 ' = 2(n-1) + C0 ' + C1 ' + + Cn-2 ' y se obtiene (n+1)Cn ' - nCn-1 ' = 2 + Cn-1 ' es decir Cn ' = Cn-1 ' + 2/(n+1) y como C0 ' = 0, entonces Cn ' = 2Hn+1 – 2 donde Hn es la serie armónicaAplicando y simplificando: ) 1 ( ln 1 1 O n i H n i n 1 1 1 n n C n C ) (log 3 1 1 2 H O n n Cn n
Abb
’s construidos aleatoriamente
•
El anterior es un buen resultado, pero…
– Si un abb se construye aleatoriamente y se “somete” después a una secuencia de inserciones aleatorias y de
borrados aleatorios, el árbol resultante pierde la aleatoriedad, con lo que se carece de resultados
teóricos sobre el coste promedio de las operaciones.
– No obstante, la evidencia empírica sugiere que tras una secuencia de borrados e inserciones aleatorios, la altura del árbol tiende a disminuir, si bien no he
encontrado en la literatura la explicación teórica de este comportamiento.
Abb
’s construidos aleatoriamente
•
Otra definición de “
abb
’s elegidos al azar”:
– Hipótesis de equiprobabilidad de todos los abb’sposibles de n nodos.
– Primera cuestión: ver que ésta es una definición de “abb aleatorio” distinta a la anterior.
• Hay 5 abb’s distintos de 3 nodos (suponer a1 <a2 <a3 ), por tanto cada uno tiene probabilidad 1/5:
a1 a2 a3 a1 a3 a1 a3 a2 a 1 a3 a2 a3 a2
Abb
’s construidos aleatoriamente
• Sin embargo, construyéndolos a partir de las permutaciones posibles de a1 , a2 , a3 salen 6, cada uno con probabilidad 1/6:
a1 a2 a3 a1 a3 a2 a2 a1 a3 a2 a3 a1 a3 a1 a2 a3 a2 a1 a1 a2 a3 a1 a3 a2 a1 a3 a2 a1 a3 a2 a1 a3 a2 a1 a3 a2
Es decir, ¡éste árbol tiene el doble de probabilidad que los otros! (1/3)
Abb
’s construidos aleatoriamente
•
Cálculo de la profundidad media de un nodo en
un
abb
de
n
nodos elegido al azar:
– Recordar: longitud de caminos internos, In , de un
árbol de n nodos (suma de las longitudes de todos los caminos desde la raíz hasta todos los nodos internos).
– I1 = 0
– Un árbol de n nodos tiene un subárbol izquierdo con i nodos (para algún 0 i < n) y un subárbol derecho con n-i-1 nodos, por tanto:
Abb
’s construidos aleatoriamente
– Hipótesis adicional: el número de nodos de un
subárbol (izquierdo o derecho) de un abb de n nodos elegido al azar es equiprobable para todos los valores posibles (de 0 a n-1), por tanto:
– Y aplicándolo a la recurrencia anterior (se omite el operador esperanza por comodidad), se obtiene la recurrencia: 1 0 1 1 ] E[ ] E[ n j j i n i I n I I 1 2 1 0 I n n I n j j n
Abb
’s construidos aleatoriamente
– Resolución de: • Multiplicando por n: • Y por tanto: • Restando ambas: • Es decir: 1 2 1 0 I n n I n j j n n n I nI n j j n 2 1 0 2 ) 1 ( ) 1 ( 2 ) 1 ( 2 2 0 1 I n n I n n j j n 2 2 2 ) 1 ( 1 1 n I I n nIn n n 2 2 ) 1 ( 1 n I n nIn nAbb
’s construidos aleatoriamente
– Y para resolver esta nueva recurrencia:
• Dividiendo por n(n+1) y despreciando la constante:
• Luego: 2 2 ) 1 ( 1 n I n nIn n 1 2 1 1 n n I n In n 3 2 2 3 1 2 2 1 2 1 1 2 3 2 2 1 I I n n I n I n n I n I n n n n 1 3 1 2 1 2 1 : sumando n i n i I n I
Abb
’s construidos aleatoriamente
• Finalmente, como
• Se sigue que
• Y como In es la suma de las longitudes de todos los caminos desde la raíz hasta todos los nodos internos, entonces la
profundidad media de cada nodo es O(log n). ) log (n n O In armónica) (serie ) (log 1 2 1 3 n O i n i
Abb
’s construidos aleatoriamente
•
De nuevo, al anterior es un buen resultado pero…
– El efecto de las operaciones de borrado destruye laaleatoriedad.
– No he encontrado en la literatura resultados teóricos sobre el coste promedio resultante considerando
secuencias de operaciones de inserción y borrado.
Abb de 500 nodos
Profundidad media: 9’98
Tras 250.000 pares de operaciones de inser- ción y borrado. Profundidad media: 12’51
Abb
’s construidos aleatoriamente
•
Para evitar el crecimiento de la altura del árbol
hay dos tipos de soluciones:
– Realizar alguna operación de “equilibrado” del árbol tras cada inserción/borrado (árboles AVL, árboles 2-3, árboles B, árboles rojinegros).
– Renunciar a un equilibrado tan estricto y aplicar
alguna regla de re-estructuración que ayude a que las futuras secuencias de operaciones sean más eficientes (análisis amortizado, lo veremos más adelante).
• Este tipo de estructuras se llaman auto-organizativas (listas auto-organizativas, árboles auto-organizativos o “splay