0 évaluation0% ont trouvé ce document utile (0 vote)
50 vues11 pages
El documento describe los árboles B y B+, estructuras de datos que permiten una implementación eficiente de conjuntos y diccionarios. Los árboles B son árboles binarios no equilibrados que usan claves para ordenar sus nodos, mientras que los árboles B+ almacenan todas las claves en las hojas para permitir un rápido acceso secuencial. El documento explica las operaciones de búsqueda, inserción y borrado en ambos tipos de árboles.
El documento describe los árboles B y B+, estructuras de datos que permiten una implementación eficiente de conjuntos y diccionarios. Los árboles B son árboles binarios no equilibrados que usan claves para ordenar sus nodos, mientras que los árboles B+ almacenan todas las claves en las hojas para permitir un rápido acceso secuencial. El documento explica las operaciones de búsqueda, inserción y borrado en ambos tipos de árboles.
El documento describe los árboles B y B+, estructuras de datos que permiten una implementación eficiente de conjuntos y diccionarios. Los árboles B son árboles binarios no equilibrados que usan claves para ordenar sus nodos, mientras que los árboles B+ almacenan todas las claves en las hojas para permitir un rápido acceso secuencial. El documento explica las operaciones de búsqueda, inserción y borrado en ambos tipos de árboles.
Los arboles B 14 constituyen una categora muy importante de estructuras de datos,
Que permiten una implementacin eficiente de conjuntos y diccionarios, para operaciones De consulta y acceso secuencial. Existe una gran variedad de arboles B: los arboles B, B+ y B*; pero todas ellas estn basadas en la misma idea, la utilizacin de arboles de Bsqueda no binarios y con condicin de balanceo. En concreto, los arboles B+ son ampliamente utilizados en la representacin de ndices en bases de datos. De hecho, este tipo de arboles estn diseados especficamente Para aplicaciones de bases de datos, donde la caracterstica fundamental es la predominancia Del tiempo de las operaciones de entrada/salida de disco en el tiempo de ejecucin Total. En consecuencia, se busca minimizar el nmero de operaciones de lectura o escritura De bloques de datos del disco duro o soporte fsico. DEFINICIN. El B-rbol son rboles cuyos nodos pueden tener un nmero mltiple de hijos tal como muestra el esquema de uno de ellos en la figura 1.
Como se puede observar en la figura 1, un B-rbol se dice que es de orden m si sus nodos pueden contener hasta un mximo de m hijos. En la literatura tambin aparece que si un rbol es de orden m significa que el mnimo nmero de hijos que puede tener es m+1(m claves).Nosotros no la usaremos para diferenciar el caso de un nmero mximo par e impar de claves en un nodo. El conjunto de claves que se sitan en un nodo cumplen la condicin:
De forma que los elementos que cuelgan del primer hijo tienen una clave con valor menor que K 1 , los que cuelgan del segundo tienen una clave con valor mayor que K 1 y menor que K 2 , etc...Obviamente, los que cuelgan del ltimo hijo tienen una clave con valor mayor que la ltima clave (hay que tener en cuenta que el nodo puede tener menos de m hijos y por consiguiente menos de m-1 claves). Para que un rbol sea B-rbol adems deber cumplir lo siguiente: Todos los nodos excepto la raz tienen al menos E ((m-1)/2) claves. Lgicamente para los nodos interiores eso implica que tienen al menos E ((m+1)/2) hijos. Todas las hojas estn en el mismo nivel. El hecho de que la raz pueda tener menos descendientes se debe a que si el crecimiento del rbol hace que la raz se divida en dos hay que permitir dicha situacin para que los nuevos nodos mantengan esa propiedad. En el caso de que eso ocurra en un nodo interior distinto a la raz se soluciona propagando hacia arriba; lgicamente esta operacin no se puede realizar en el caso de raz. Por otro lado, con el hecho de que los nodos interiores tengan un nmero mnimo de descendientes aseguramos que en el nivel n(nivel 1 corresponde a la raz)haya un mnimo de 2E n-1 ((m+1)/2)(el 2 es el mnimo de hijos de la raz y E((m+1)/2) el mnimo para los dems)y teniendo en cuenta que un rbol con N claves tiene N+1 descendientes en el nivel de las hojas, podemos establecer la siguiente desigualdad:
Resolviendo:
Que nos da una cota superior del nmero de nodos a recorrer para localizar un elemento en el rbol. BSQUEDA EN UN B-RBOL. Localizar una clave en un B-rbol es una operacin simple pues consiste en situarse en el nodo raz del rbol, si la clave se encuentra ah hemos terminado y si no es as seleccionamos de entre los hijos el que se encuentra entre dos valores de clave que son menor y mayor que la buscada respectivamente y repetimos el proceso hasta que la encontremos. En caso de que se llegue a una hoja y no podamos proseguir la bsqueda la clave no se encuentra en el rbol. En definitiva, los pasos a seguir son los siguientes: 1. Seleccionar como nodo actual la raz del rbol. 2. Comprobar si la clave se encuentra en el nodo actual: 1. Si la clave est, fin. 2. Si la clave no est: Si estamos en una hoja, no se encuentra la clave. Fin. Si no estamos en una hoja, hacer nodo actual igual al hijo que corresponde segn el valor de la clave a buscar y los valores de las claves del nodo actual (i buscamos la clave K en un nodo con n claves: el hijo izquierdo si K<K 1 , el hijo derecho si K>K n y el hijo i-simo si K i <K<K i+1 ) y volver al segundo paso.
INSERCIN EN UN B-RBOL. Para insertar una nueva clave usaremos un algoritmo que consiste en dos pasos recursivos: 1. Buscamos la hoja donde debiramos encontrar el valor de la clave de una forma totalmente paralela a la bsqueda de sta tal como comentbamos en la seccin anterior (si en esta bsqueda encontramos en algn lugar del rbol la clave a insertar, el algoritmo no debe hacer nada ms).Si la clave no se encuentra en el rbol habremos llegado a una hoja que es justamente el lugar donde debemos realizar esa insercin. 2. Situados en un nodo donde realizar la insercin si no est completo, es decir, si el nmero de claves que existen es menor que el orden menos 1 del rbol, el elemento puede ser insertado y el algoritmo termina. En caso de que el nodo est completo insertamos la clave en su posicin y puesto que no caben en un nico nodo dividimos en dos nuevos nodos conteniendo cada uno de ellos la mitad de las claves y tomando una de stas para insertarla en el padre (se usar la mediana).Si el padre est tambin completo, habr que repetir el proceso hasta llegar a la raz. En caso de que la raz est completa, la altura del rbol aumenta en uno creando un nuevo nodo raz con una nica clave. En la figura 2 podemos observar el efecto de insertar una nueva clave en un nodo que est lleno.
Podemos realizar una modificacin al algoritmo de forma que se retrase al mximo el momento de romper un nodo en dos. Con ello podramos vernos beneficiados por dos razones fundamentalmente: 1. La razn ms importante para modificar as el algoritmo es que los nodos en el rbol estn ms llenos con lo cual el gasto en memoria para mantener la estructura es mucho menor. 2. Retrasamos el momento en que la raz llega a dividirse y por consiguiente retrasamos el momento en que la altura del rbol aumenta. La forma ms sencilla de realizar esta modificacin es que en el caso de que tengamos que realizar esa divisin, antes de llevarla a cabo, comprobemos si los hermanos adyacentes tienen espacio libre de forma que si alguno de ellos lo tiene se redistribuyen las claves que se encuentran en el nodo actual ms las de ese hermano ms la clave que los separa(que se encuentra en el padre)ms la clave a insertar de forma que en el padre se queda la mediana y las dems quedan distribuidas entre los dos nodos. En la figura 3 podemos observar el efecto de insertar una nueva clave en un nodo que est lleno pero con redistribucin.
BORRADO EN UN B-RBOL. La idea para realizar el borrado de una clave es similar a la insercin teniendo en cuenta que ahora, en lugar de divisiones, realizamos uniones. Existe un problema aadido, las claves a borrar pueden aparecer en cualquier lugar del rbol y por consiguiente no coincide con el caso de la insercin en la que siempre comenzamos desde una hoja y propagamos hacia arriba. La solucin a esto es inmediata pues cuando borramos una clave que est en un nodo interior, lo primero que realizamos es un intercambio de este valor con el inmediato sucesor en el rbol, es decir, el hijo ms a la izquierda del hijo derecho de esa clave. Las operaciones a realizar para poder llevar a cabo el borrado son por tanto: 1. Redistribucin: la utilizaremos en el caso en que al borrar una clave el nodo se queda con un nmero menor que el mnimo y uno de los hermanos adyacentes tiene al menos uno ms que ese mnimo, es decir, redistribuyendo podemos solucionar el problema. 2. Unin: la utilizaremos en el caso de que no sea posible la redistribucin y por tanto slo ser posible unir los nodos junto con la clave que los separa y se encuentra en el padre. En definitiva, el algoritmo nos queda como sigue: 1. Localizar el nodo donde se encuentra la clave. 2. Si el nodo localizado no es una hoja, intercambiar el valor de la clave localizada con el valor de la clave ms a la izquierda del hijo a la derecha. En definitiva colocar la clave a borrar en una hoja. Hacemos nodo actual igual a esa hoja. 3. Borrar la clave. 4. Si el nodo actual contiene al menos el mnimo de claves como para seguir siendo un B-rbol, fin. 5. Si el nodo actual tiene un nmero menor que el mnimo: 1. Si un hermano tiene ms del mnimo de claves, redistribucin y fin. 2. Si ninguno de los hermanos tiene ms del mnimo, unin de dos nodos junto con la clave del padre y vuelta al paso 4 para propagar el borrado de dicha clave (ahora en el padre). RBOLES B+
1. INTRODUCCIN Los rboles B+ constituyen otra mejora sobre los rboles B, pues conservan la propiedad de acceso aleatorio rpido y permiten adems un recorrido secuencial rpido. En un rbol B+ todas las claves se encuentran en hojas, duplicndose en la raz y nodos interiores aquellos que resulten necesarias para definir los caminos de bsqueda. Para facilitar el recorrido secuencial rpido las hojas se pueden vincular, se, de esta forma, una trayectoria secuencial para recorrer las claves del rbol. Su principal caracterstica es que todas las claves se encuentran en las hojas. Los rboles B+ ocupan algo ms de espacio que los rboles B, pues existe duplicidad en algunas claves. En los rboles B+ las claves de las pginas raz e interiores se utilizan nicamente como ndices.
El orden de insercin de los diversos elementos fue: p v d e b c s a r f t q 2. BUSQUEDA EN UN RBOL B+ En este caso, la bsqueda no debe detenerse cuando se encuentre la clave en la pgina raz o en una pgina interior, sino que debe proseguir en la pgina apuntada por la rama derecha de dicha clave. 3. INSERCIN EN UN RBOL B+ Su diferencia con el proceso de insercin en rboles B consiste en que cuando se inserta una nueva clave en una pgina llena, sta se divide tambin en otras dos, pero ahora la primera contendr con m/2 claves y la segunda 1+m/2, y lo que subir a la pgina antecesora ser una copia de la clave central. Insertar las siguientes claves a un rbol de orden 5: 10-27-29-17-25-21-15-31-13-51- 20-24-48-19-60-35-66
4. Eliminacin: La operacin de eliminacin en rboles-B+ es ms simple que en rboles-B. Esto ocurre porque las claves a eliminar siempre se encuentran en las pginas hojas. En general deben distinguirse los siguientes casos: 1. Si al eliminar una clave, la cantidad de llaves queda mayor o igual que [m/2] entonces termina la operacin. Las claves de los nodos raz o internos no se modifican por ms que sean una copia de la clave eliminada en las hojas. 2. Si al eliminar una clave, la cantidad de llaves queda menor que [m/2] entonces debe realizarse una redistribucin de claves, tanto en el ndice como en las pginas hojas. Ejemplo del caso 1:
Ejemplo del caso 2:
RBOLES B *
1. INTRODUCCIN. En 1973, Knuth propone nuevas reglas para realizar el mantenimiento de los B- rboles de forma que no se realiza una divisin de un nodo en dos ya que eso hace que los nodos resultantes tengan la mitad de claves, sino que se realizan divisiones de dos nodos completos a tres de forma que los nodos resultantes tienen dos tercios del total. Por consiguiente, este tipo de rboles son muy similares a los anteriores pero teniendo en cuenta: 1. Cada nodo tiene un mximo de m descendientes. 2. Cada nodo excepto el raz tiene al menos (2m-1)/3 hijos. 3. La raz tiene al menos dos descendientes (a menos de que sea hoja). 4. Una hoja contiene al menos E [(2m-1)/3] claves. 5. Todas las hojas aparecen en el mismo nivel. 6. Un nodo que no sea hoja con k descendientes contiene k-1 llaves. 7. Un nodo hoja contiene por lo menos E [(2m-1)/3] llaves, y no ms de m-1. Existe un problema aadido a este tipo de rboles pues cuando la divisin de nodos se propaga hasta la raz dividirla segn hemos visto implicara que junto a uno de sus hermanos que estuvieran completos se crearn tres nuevos nodos llenos en dos terceras partes. Esto no es posible pues la raz no tiene hermanos. La solucin al problema puede ser permitir que la raz tenga un nmero superior de claves de forma que si se divide se puedan producir 3 nodos cumpliendo las caractersticas de los rboles B * . Los cambios crticos entre el anterior conjunto de propiedades y el conjunto que se define para un rbol B convencional estn en las reglas 2 y 6: un rbol B * tiene nodos que contienen un mnimo de (2m-1)/3 llaves. Por supuesto, esta nueva propiedad afecta los procedimientos de eliminacin y redistribucin. Para realizar los procedimientos de rboles B * tambin se debe abordar la cuestin de dividir la raz, la cual, por definicin, nunca tiene hermanos. Si no existen hermanos, no es posible la divisin de dos a tres. Knuth sugiere permitir que la raz crezca hasta un tamao mayor que los dems nodos, de tal forma que, cuando se divida, pueda producir dos nodos cada uno lleno casi a las dos terceras partes. Esta sugerencia tiene la ventaja de asegurar que todos los nodos por debajo del nivel de la raz se adhieren a las caractersticas de los rboles B * . Sin embargo, tiene la desventaja de requerir que los procedimientos sean capaces de manejar un nodo que sea de mayor tamao que todos los dems. Otra solucin es realizar la divisin de la raz como una divisin convencional de uno a dos. Esta segunda solucin evita cualquier lgica especial de manejo de nodos. Por otro lado, complica la eliminacin, la redistribucin y otros procedimientos que deben ser sensibles al nmero mnimo de llaves permitidas en un nodo. Tales procedimientos tendran que ser capaces de reconocer que los nodos descendientes de la raz legalmente pueden estar solo llenos.
Se Conoce Con El Nombre de Topografía A La Disciplina o Técnica Que Se Encarga de Describir de Manera Detallada La Superficie de Un Determinado Terreno