¿Los árboles AVL no tienen peso equilibrado?

22

En una pregunta anterior , había una definición de árboles con peso equilibrado y una pregunta sobre árboles rojo-negros.

Esta pregunta es para hacer la misma pregunta, pero para los árboles AVL .

La pregunta es, dada la definición de árboles balanceados como en la otra pregunta,μ

¿Hay algún tal que todos los árboles AVL suficientemente grandes estén balanceados ?μ>0μ

Supongo que solo hay una definición de árboles AVL y no hay ambigüedad.

Aryabhata
fuente

Respuestas:

18

Reclamación : No, no existe tal .μ

Prueba : damos una secuencia infinita de árboles AVL de tamaño creciente cuyo valor de equilibrio de peso tiende a , contradiciendo la afirmación.0

Deje el árbol completo de altura ; tiene nodos.Chh2h+11

Deje el árbol Fibonacci de altura ; tiene nodos. [ 1 , 2 , TAoCP 3 ]ShhFh+21

Ahora dejemos con la secuencia de árboles que decimos que es un contraejemplo.(Th)i1Th=N(Sh,Ch)

Considere el valor de equilibrio de peso de la raíz de para algunos :ThhN+

Fh+22h+1+Fh+21=11+2h+1Fh+21Fh+2Fh+22h+1=15(ϕh+2ϕ^h+2)2h+1ϕh+252h+1h0

Esto concluye la prueba.

Notación :

  • Fn es el º número de Fibonaccin
  • ϕ1.6 es la proporción áurea , su conjugado.ϕ^0.62
  • fg significa que y son asintóticamente iguales, es decir, .fglimnf(n)g(n)=1

Nota bene : los árboles de Fibonacci son exactamente aquellos árboles AVL con menos nodos para una altura dada (o, equivalentemente, la altura máxima para un número dado de nodos).

Anexo : ¿Cómo podemos llegar a los árboles de Fibonacci si no hubiéramos escuchado a un profesor mencionarlos? Bueno, ¿cómo sería un árbol AVL de altura con el menor número de nodos posible? Ciertamente, necesitas una raíz. Uno de los subárboles debe tener una altura , y tenemos que elegirlo con el menor número de nodos posible. El otro puede tener altura sin violar la condición de equilibrio de altura, y lo elegimos también con el menor número de nodos posible. ¡En esencia, construimos los árboles que queremos recursivamente! Estos son los primeros cuatro:hh1h2

Los primeros cuatro árboles de Fibonacci
[ fuente ]

Configuramos una recurrencia para el número de nodos en el árbol así construido con altura :f(h)h

f(1)=1f(2)=2f(h)=f(h1)+f(h2)+1n3

Resolverlo conduce a que usamos anteriormente.f(h)=Fh+21


Nievergelt y Reingold (1972) dan la misma prueba (con menos detalles) en los árboles de búsqueda binaria de equilibrio acotado .

Rafael
fuente