Clase 32: Árbol balanceado AVL



Documentos relacionados
Árboles AVL. Laboratorio de Programación II

Árboles balanceados. Alonso Ramírez Manzanares Computación y Algoritmos Thursday, April 30, 15

árbol como un conjunto de nodos y líneas

Arboles Binarios de Búsqueda

Capítulo 6. ÁRBOLES.

Árboles Binarios Ordenados Árboles AVL

Estructuras de datos: Árboles binarios de

Ampliación de Estructuras de Datos

NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS

Árboles. Cursos Propedéuticos Dr. René Cumplido M. en C. Luis Rodríguez Flores

DEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006

Árbol binario. Elaborado por Ricardo Cárdenas cruz Jeremías Martínez Guadarrama Que es un árbol Introducción

PRÁCTICA No. 13 ÁRBOL BINARIO DE BÚSQUEDA

Capítulo 12: Indexación y asociación

Árboles binarios de búsqueda ( BST )


MANUAL DE USUARIO: Simulador ArbolBinarioBusqueda<T>

Tema 10- Representación Jerárquica: Tema 10- Representación Jerárquica: Árboles Binarios

PROCEDIMIENTOS DE TÍTULOS. Para solicitar los títulos al finalizar determinadas enseñanzas es preciso seguir un proceso en la aplicación Plumier XXI.

Árboles balanceados (AVL) Estructura de datos

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

Programación Genética

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Computación I Representación Interna Curso 2011

Programación de Sistemas

GRAFOS. Prof. Ing. M.Sc. Fulbia Torres

Estructuras de Datos. Montículos. Montículos. Montículos. Tema 3. Montículos. Definiciones básicas: Definiciones básicas:

ARREGLOS DEFINICION GENERAL DE ARREGLO

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

Características de funciones que son inversas de otras

TEMA 2: Representación de la Información en las computadoras

Funciones, x, y, gráficos

Árboles binarios de búsqueda

Solución al Examen de Prácticas de Programación (Ingeniería Informática)

Notas de Clase. Prof. Juan Andrés Colmenares, M.Sc. Instituto de Cálculo Aplicado Facultad de Ingeniería Universidad del Zulia. 21 de febrero de 2004

Capítulo V Operaciones Booleanas

SISTEMAS NUMERICOS CAMILO ANDREY NEIRA IBAÑEZ UNINSANGIL INTRODUCTORIO A LA INGENIERIA LOGICA Y PROGRAMACION

DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP

BREVE MANUAL DE SOLVER

Manual del módulo TRAZABILIDAD EUROWIN 8.0 SQL BALANCES CONTABLES

CURSO INSTALACION E IMPLEMENTACION ALOJA SOFTWARE HOTEL MODULO 02: Datos Adicionales de configuración [1]

Unidad 6 Cálculo de máximos y mínimos

ENERGÍA (II) FUERZAS CONSERVATIVAS

DOMINIO Y RANGO página 89. Cuando se grafica una función existen las siguientes posibilidades:

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

EJERCICIOS SOBRE : NÚMEROS ENTEROS

A estas alturas de nuestros conocimientos vamos a establecer dos reglas muy prácticas de cómo sumar dos números reales:

MÉTODOS DE ELIMINACIÓN Son tres los métodos de eliminación más utilizados: Método de igualación, de sustitución y de suma o resta.

Estructuras de datos: Proyecto 2

Informática Bioingeniería

Ing. Manuel Ramírez López ITESCA

PARTE 3 ECUACIONES DE EQUIVALENCIA FINANCIERA T E M A S

Estructuras de Datos y Algoritmos. Árboles de Expresión

TEMA 2 WINDOWS XP Lección 4 BLOC DE NOTAS

ELO320 Estructuras de Datos y Algoritmos. Arboles Binarios. Tomás Arredondo Vidal

Apoyo para la preparación de los estudios de Ingeniería y Arquitectura Física (Preparación a la Universidad) Unidad 4: Vectores

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

TERMINAL DE COMANDOS (RED HAT, CENTOS Y FEDORA)

Cifras significativas e incertidumbre en las mediciones

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009

Los sistemas de numeración se clasifican en: posicionales y no posicionales.

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

Observatorio de COSTES DEL TRANSPORTE DISCRECIONAL DE VIAJEROS EN AUTOBÚS de la Comunidad de Madrid

Estructura de Datos. Temario Unidad VI. Árboles Árboles AVL

Plataforma Educativa Manual del Docente Nivel II Módulo 3 Wiki

Lección 4: Suma y resta de números racionales

Materia: Informática. Nota de Clases Sistemas de Numeración

Cuentas por Cobrar Capítulo 1 CUENTAS POR COBRAR Y FACTURACIÓN DacEasy Contabilidad

Tema I. Sistemas Numéricos y Códigos Binarios

Descripción: dos. función. decreciente. Figura 1. Figura 2

Autor: Microsoft Licencia: Cita Fuente: Ayuda de Windows

Representación de números en binario

Tema 2 : NÚMEROS ENTEROS. Primero de Educación Secundaria Obligatoria. I.e.s Fuentesaúco.

Sistemas de Numeración Operaciones - Códigos

A continuación voy a colocar las fuerzas que intervienen en nuestro problema.

Estructuras de Datos y Algoritmos Tecnólogo en Informática

SISTEMAS NUMERICOS. Ing. Rudy Alberto Bravo

PAUTA ACTIVIDADES: ECUACIONES DE PRIMER GRADO CON UNA INCÓGNITA Y BALANZAS

parte del tiempo de procesamiento en realizar este tipo de Es importante por que una computadora consume gran

APLICACIONES DE LA DERIVADA

Text Mining: Distancia de Levenshtein

Capitulo V Administración de memoria

La Tabla 1 muestra los valores de los dígitos de un número binario.

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda:

❷ Aritmética Binaria Entera

PowerPoint 2010 Modificar el diseño de las diapositivas

Búsqueda heurística Prof. Constantino Malagón

Funciones de varias variables

CAPITULO V. SIMULACION DEL SISTEMA 5.1 DISEÑO DEL MODELO

21/02/2012. Agenda. Unidad Central de Procesamiento (CPU)

PANEL DE CONTROL (Zona de Administración) MANUAL DE USO Por conexanet. Revisión 1.1 Fecha

Sistema de Inscripciones en Línea de la Olimpiada Mexicana de Matemáticas, Delegación Yucatán MANUAL DE USUARIO

Tutorial: Primeros Pasos con Subversion

Unidad de trabajo 2: INFORMÁTICA BÁSICA (primera parte)

STRATO LivePages Inicio rápido

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

GUIA DE COMPRA ONLINE ROSANNA DLR. Puedes visualizar la tienda online en español o en inglés.

Transcripción:

Clase 32: Árbol balanceado AVL http://computacion.cs.cinvestav.mx/~efranco @efranco_escom efranco.docencia@gmail.com (Prof. Edgardo A. Franco) 1

Contenido Problema de los árboles binarios de búsqueda Variantes de los árboles binarios de búsqueda Árbol balanceado AVL Definición Condición de equilibrio Características Operaciones sobre un AVL Insertar nodos Balancear Eliminar Nodos Calcular altura Complejidad de la búsqueda Ordenes de complejidad Búsquedas y recorridos Ejercicios de árboles AVL Inserción de claves Eliminación de claves Liga Web 2

Problema de los árboles binarios de búsqueda Los árboles binarios, son eficientes en las operaciones de búsqueda, inserción y eliminación cuando el árbol crece o decrece descontroladamente, la eficiencia de la estructura de datos decae. Una situación critica es cuando se insertan elementos ordenados. Insertar los datos 15,18,30,60 Insertar los datos 32,11,9,4, 15 18 Se expanden incrementando las comparaciones, operación de O(N) 11 32 30 9 3 60 4

Variantes de los árboles binarios de búsqueda Con el objetivo de mantener la eficiencia en la operación de búsqueda surgen modificaciones a las reglas de operación del árbol binario de búsqueda. Árbol rojo-negro Árbol balanceado(avl) Árbol biselado Estas variantes presentan ventajas en cuanto al rendimiento que ofrecen a la hora de realizar búsquedas principalmente. 4

Árbol balanceado AVL La principal característica de estos es la de realizar reacomodos o balanceos, después de inserciones o eliminaciones de elementos. Estos árboles también reciben el nombre de AVL (autores: 2 matemáticos rusos G.M. Adelson-Velskii y E.M Landis en 1962). Formalmente se define un árbol balanceado como un árbol de búsqueda, en el cual se debe cumplir la siguiente condición: Para todo nodo T del árbol la altura de los subárboles izquierdo y derecho no debendiferir enalosumounaunidad. 5

Definición Básicamente un árbol AVL es un Árbol Binario de Búsqueda al que se le añade una condición de equilibrio. Para todo nodo la altura de sus subárboles izquierdo y derecho pueden diferir a lo sumo en 1. Gracias a esta forma de equilibrio (o balanceo), la complejidad de una búsqueda en uno de estos árboles se mantiene siempre en orden de complejidad O(log n). 6

Condición de equilibrio Para todos los nodos, la altura de la rama izquierda no difiere en mas de una unidad de la altura de la rama derecha 7

Características UnAVL es unabb. La diferencia entre las alturas de los subárboles. derecho e izquierdo no debe excederse en más de 1. Cada nodo tiene asignado un peso de acuerdo a las alturas de sus subárboles. Un nodo tiene un peso de 1 si su subárbol derecho es más alto, -1 si su subárbol izquierdo es más alto y 0 si las alturas son las mismas. La inserción y eliminación en un árbol AVL es la misma que en un ABB. 8

Ejemplo de AVL 0 1 1 2 0 3-1 4-1 6 7 0-1 8 0 1-2 6 1 2 0 4 0 0 3 7 0 8 Sólo el árbol de la izquierda es AVL. El de la derecha viola la condición de equilibrio en el nodo 6, ya que su subárbol izquierdo tiene altura 3 y su subárbol derecho tiene altura 1. 9

Equilibrio Equilibrio =(altura derecha) (altura izquierda) Describe relatividad entre subárbol derecho y subárbolizquierdo. +(positivo) derecha mas alto (profundo) -(negativo) izquierda mas alto (profundo) Un árbol binario es un AVL si y sólo si cada uno de susnodostieneunequilibriode 1, 0,+1 Si alguno de los pesos de los nodos se modifica en un valor no válido (2 ó -2) debe seguirse un esquema de rotación. 10

Desequilibrios Desequilibrio hacia la izquierda (Equilibrio > +1) Desequilibrio hacia la derecha (Equilibrio < -1)

Operaciones sobre un AVL 1. Insertarnodo 2. Balancear Caso1Rotación simple izquierdarsi Caso 2 Rotación simple derecha RSD Caso3Rotación doble izquierdardi Caso 4 Rotación doble derecha RDD 3. Eliminarnodo 4. Calcularaltura 12

Insertar un nodo 1. Se usa la misma técnica que para insertar un nodo en un ABB ordenado 2. Trazamos una ruta desde el nodo raíz hasta un nodo hoja (donde hacemos la inserción). 3. Insertamos el nodo nuevo. 4. Volvemos a trazar la ruta de regreso al nodo raíz, ajustando el equilibrio a lo largo de ella. 5. Si el equilibrio de un nodo llega a ser + - 2, volvemos a ajustar los subárboles de los nodos para que su equilibrio se mantenga acorde con los lineamientos AVL (que son +- 1) 13

Balancear Caso 1: Rotación simple izquierda RSI Si esta desequilibrado a la izquierda (E>+1) y su hijo derecho tiene el mismo signo (+) hacemos rotación sencilla izquierda. 14

Caso 1: Rotación simple izquierda RSI 15

Caso 2: Rotación simple derecha RSD Si esta desequilibrado a la derecha (E<-1) y su hijo izquierdo tiene el mismo signo (-) hacemos rotación sencilla derecha. 16

Caso 2: Rotación simple derecha RSD 0-1 0 D 17

Caso 2: Rotación simple derecha RSD 18

Rotación simple izquierda o derecha. Observaciones: Se conserva elordenapropiado del árbol. Restablece todos los nodo a equilibrios apropiados AVL Conserva el recorrido en orden que el árbol anterior. Sólo se necesita a lo más modificar 3 apuntadores para lograr el nuevo equilibrio (con la de la raíz) 19

Caso 3: Rotación doble izquierda RDI Si está desequilibrado a la derecha (E< 1), y su hijo izquierdo tiene distinto signo (+) hacemos rotación dobleizquierda-derecha. 20

Caso 3: Rotación doble izquierda RDI 21

Caso 3: Rotación doble izquierda RDI Ejercicios de árboles AVL (Edgardo A. Franco) 22

Caso 4: Rotación doble derecha RDD Si esta desequilibrado a la izquierda (E>+1), y su hijo derecho tiene distinto signo ( ) hacemos rotación doblederecha-izquierda. 23

Caso 4: Rotación doble derecha RDD 24

Caso 4: Rotación doble derecha RDD Ejercicios de árboles AVL (Edgardo A. Franco) 25

Eliminar Al eliminar un nodo en un árbol AVL puede afectar el equilibrio de sus nodos. Entonces hay que hacer rotaciones simples o dobles. Eliminar un nodo se realiza de la misma manera que en un árbol binario ordenado. Al localizar el nodo que se desea eliminar se realiza el siguiente procedimiento: Si el nodo es un nodo hoja, simplemente lo eliminamos. Si el nodo solo tiene un hijo, lo sustituimos con su hijo. Si el nodo eliminado tiene dos hijos, lo sustituimos por el nodo que se encuentra mas a la derecha en el subárbol izquierdo o más a la izquierda en el subárbol derecho. 26

Una vez que se ha eliminado el nodo, se tiene que equilibrar el árbol: Si el equilibrio del padre del nodo eliminado cambia de0a +-1 el algoritmo concluye. Si el padre del nodo eliminado cambio de +-1 a0, la altura del árbol ha cambiado y se afecta el equilibrio de su abuelo. Si el equilibrio del padre del nodo eliminado cambia de +- 1 a +- 2 hay que hacer una rotación. Después de concluirla, el equilibrio del padre podría cambiar, lo que, a su vez, podría forzarnos a hacer otros cambios (y probables rotaciones) en toda la ruta hacia arriba a medida que ascendemos hacia la raíz. Si encontramos en la ruta un nodo que cambie de 0 a +- 1 entonces se concluye. 27

Calcular altura Una función para calcular la altura a partir de una posición puede escribirse recursivamente como: //Calcula la altura de un árbol a partir de una posición p int Altura(arbol *a, posicion p) { if(nullnode(a,p)) return 0; //Retornar la mayor altura (Izquierda o Derecha) else return 1 + Max(Altura(a,LeftSon(a,p)),Altura(a,RightSon(a,p))); } 28

Complejidad de búsqueda Los árboles AVL están siempre equilibrados de tal modo que para todos los nodos, la altura de la rama izquierda no difiere en mas de una unidad de la altura de la rama derecha. Gracias a esta forma de equilibrio (o balanceo), la complejidad de una búsqueda en uno de estos arboles se mantiene siempre enordendecomplejidado(log 2 n). 29

Ordenes de complejidad Ejemplo: 1 h de cómputo para un problema de tamaño N=100. O(f(n)) N=100 N=200 En un t=2h (N=?) log n 1 h 1.15 h 10000 n 1 h 2 h 200 n log n 1 h 2.30 h 199 n 2 1 h 4 h 141 n 3 1 h 8 h 126 2 n 1 h 10 30 h 101 30

Ejercicios de inserción 1. Inserte las claves 10 47 38 06 55 90 49 50 51 58 en el árbol balanceado que se da a continuación. -1-1 35 62 0 80 0 22 31 Ejercicios de árboles AVL (Edgardo A. Franco)

Ejercicios de eliminación 2. Elimine las siguientes claves del árbol balanceado siguiente: 73 66 50 47 39 94 1-1 -1 66 44 85-1 0 1 0 22 50 73 90 0 1 9 37 0 47 0 0 88 94 0 39 32

Liga Web Simulación del funcionamiento de un Árbol AVL http://www.cs.jhu.edu/~goodrich/dsa/trees/avltree.html 33