Вы находитесь на странице: 1из 20

Universidad Nacional Del Altiplano -Puno

Facultad: Ingeniera Mecnica Elctrica, Electrnica y Sistemas

Escuela Profesional: Ingeniera de Sistemas

rea: Estructura de Datos y Algoritmos

Grupo:N 4

Tema: rboles de Caminos Mltiples

Integrantes:

Cristian Rony Yaguno Mamani




Docente: Ing. Pablo Cesar Tapia Catacora


INDICE
INTRODUCCIN .......................................................................................... 3
ARBOLES DE CAMINOS MULTIPLES ............................................................ 4
1.-Familia de rboles B, B*, B+ y R.............................................................. 5
rboles-B ................................................................................................ 5
rbol B+ ................................................................................................ 12
rbol R .................................................................................................. 15
rbol B* ................................................................................................ 16
2.-Arboles digitales................................................................................... 16
Bsqueda en un rbol digital .............................................................. 17
Insercin en un rbol digital ............................................................... 17
Eliminacin en un rbol digital ........................................................... 18
Costo promedio de bsqueda en un rbol digital ............................... 18
3.-rbole B+ de Prefijos ............................................................................ 18
4.-Conclusiones ........................................................................................ 19
5.-Bibliografia ........................................................................................... 20
INTRODUCCIN

La unidad bsica de operaciones de E/S asociadas a un disco es un bloque. Cuando


la informacin se lee de un disco, todo el bloque que contiene esta informacin se lee
en la memoria, y cuando la informacin se almacena en un disco, un bloque entero se
inscribe en el disco. Cada vez que la informacin se solicita de un disco, esta informacin
debe localizarse en el disco, la cabeza debe posicionarse sobre la parte donde reside la
informacin, y el disco tiene que girar de modo que todo el bloque pase debajo de la
cabeza para ser transferido a la memoria. Esto significa que hay varios componentes
para el acceso a los datos:Tiempo de acceso=Tiempo de Busqueda+retardo rotacional
(latencia)+tiempo de-transferencia

Este proceso es sumamente lento comparado con la transferencia de informacin


dentro de la memoria. El primer componente tiempo de bsqueda, es particularmente
lento debido a que depende del movimiento mecnico de la cabeza de disco para
posicionar la cabeza en la pista correcta del disco. La latencia es el tiempo requerido
para posicionarse sobre el bloque correcto y, en promedio, es igual al tiempo requerido
para hacer media revolucin.
ARBOLES DE CAMINOS MULTIPLES

Un rbol multicamino posee un grado g mayor a dos, donde cada nodo de informacin
del rbol tiene un mximo de g hijos.

Sea un rbol de m-caminos A, es un rbol m-caminos si y solo si:

A est vaco
Cada nodo de A muestra la siguiente
estructura: [nClaves,Enlace0,Clave1,...,ClavenClaves,EnlacenClaves] nClaves es el

nmero de valores de clave de un nodo, pudiendo ser: 0 <=Claves <= g-1

Clavei, son los valores de clave, pudiendo ser: 1 <= i <= nClaves

Enlacei, son los enlaces a los subrboles de A, pudiendo ser: 0 <= i <= nClaves

Clavei < Clavei+1

Cada valor de clave en el subrbol Enlacei es menor que el valor de


Clavei+1

Los subrboles Enlacei, donde 0 <= i <= nClaves , son tambin rboles

m-caminos.

Existen muchas aplicaciones en las que el volumen de la informacin es tal, que los datos
no caben en la memoria principal y es necesario almacenarlos, organizados en archivos,
en dispositivos de almacenaminento secundario. Esta organizacin de archivos debe ser
suficientemente adecuada como para recuperar los datos del mismo en forma eficiente.
1.-Familia de rboles B, B*, B+ y R.

rboles-B

B-rbol es un rbol de bsqueda que puede estar vaco o aquel cuyos nodos pueden
tener varios hijos, existiendo una relacin de orden entre ellos, tal como muestra el
dibujo.

Un rbol-B de orden M (el mximo nmero de hijos que puede tener cada nodo) es un
rbol que satisface las siguientes propiedades:

1. Cada nodo tiene como mximo M hijos.


2. Cada nodo (excepto raz) tiene como mnimo (M)/2 claves.
3. La raz tiene al menos 1 hijos si no es un nodo hoja. (segn M)
4. Todos los nodos hoja aparecen al mismo nivel.
5. Un nodo no hoja con k hijos contiene k-1 elementos almacenados.
6. Los hijos que cuelgan de la raz (r1, , rm) tienen que cumplir ciertas
condiciones:

El primero tiene valor menor que r1.


El segundo tiene valor mayor que r1 y menor que r2, etc.
El ltimo hijo tiene valor mayor que rm.

Altura: El mejor y el peor caso

En el mejor de los casos, la altura de un rbol-B es:

En el peor de los casos, la altura de un rbol-B es:

Donde M es el nmero mximo de hijos que puede tener un nodo.

Estructura de Nodos
Cada elemento de un nodo interno acta como un valor separador, que lo divide en
subrboles. Por ejemplo, si un nodo interno tiene tres nodos hijo, debe tener dos valores
separadores o elementos a1 y a2. Todos los valores del subrbol izquierdo deben ser
menores a a1, todos los valores del subrbol del centro deben estar entre a1 y a2, y todos
los valores del subrbol derecho deben ser mayores a a2.

Los nodos internos de un rbol B, es decir los nodos que no son hoja, usualmente se
representan como un conjunto ordenado de elementos y punteros a los hijos. Cada
nodo interno contiene un mximo de U hijos y, con excepcin del nodo raz, un mnimo
de L hijos. Para todos los nodos internos exceptuando la raz, el nmero de elementos
es uno menos que el nmero de punteros a nodos. El nmero de elementos se
encuentra entre L-1 y U-1. El nmero U debe ser 2L o 2L-1, es decir, cada nodo interno
est por lo menos a medio llenar. Esta relacin entre U y L implica que dos nodos que
estn a medio llenar pueden juntarse para formar un nodo legal, y un nodo lleno puede
dividirse en dos nodos legales (si es que hay lugar para subir un elemento al nodo padre).
Estas propiedades hacen posible que el rbol B se ajuste para preservar sus propiedades
ante la insercin y eliminacin de elementos.

Los nodos hoja tienen la misma restriccin sobre el nmero de elementos, pero no
tienen hijos, y por tanto carecen de punteros.

El nodo raz tiene lmite superior de nmero de hijos, pero no tiene lmite inferior. Por
ejemplo, si hubiera menos de L-1 elementos en todo el rbol, la raz sera el nico nodo
del rbol, y no tendra hijos.

Un rbol B de altura n+1 puede contener U veces por elementos ms que un rbol B de
profundidad n, pero el costo en la bsqueda, insercin y eliminacin crece con la altura
del rbol. Como todo rbol balanceado, el crecimiento del costo es ms lento que el del
nmero de elementos.

Algunos rboles balanceados guardan valores slo en los nodos hoja, y por lo tanto sus
nodos internos y nodos hoja son de diferente tipo. Los rboles B guardan valores en cada
nodo, y pueden utilizar la misma estructura para todos los nodos. Sin embargo, como
los nodos hoja no tienen hijos, una estructura especial para stos mejora el
funcionamiento.
Class nodo rbol B en c++

#define TAMANO 1000

struct stclave {
int valor;
long registro;
};

class bnodo {
public:
bnodo (int nClaves); // Constructor
~bnodo (); // Destructor

private:
int clavesUsadas;
stclave *clave;
bnodo **puntero;
bnodo *padre;

friend class btree;


};

Algoritmo

La bsqueda es similar a la de los rboles binarios. Se empieza en la raz, y se recorre el


rbol hacia abajo, escogiendo el sub-nodo de acuerdo a la posicin relativa del valor
buscado respecto a los valores de cada nodo. Tpicamente se utiliza la bsqueda
binaria para determinar esta posicin relativa.
Procedimiento

ejemplo2 insercin en rbol B.


1. Situarse en el nodo raz.
2. (*) Comprobar si contiene la clave a buscar.
Encontrada fin de procedimiento.
No encontrada:
1. Si es hoja no existe la clave.
2. En otro caso el nodo actual es el hijo que corresponde:

La clave a buscar k < k1: hijo izquierdo.


La clave a buscar k > ki y k < ki+1 hijo isimo.
Volver a paso 2(*).

Insercin

Las inserciones se hacen en los nodos hoja.

1. Realizando una bsqueda en el rbol, se halla el nodo hoja en el cual


debera ubicarse el nuevo elemento.
2. Si el nodo hoja tiene menos elementos que el mximo nmero de
elementos legales, entonces hay lugar para uno ms. Inserte el nuevo
elemento en el nodo, respetando el orden de los elementos.
3. De otra forma, el nodo debe ser dividido en dos nodos. La divisin se
realiza de la siguiente manera:

Se escoge el valor medio entre los elementos del nodo y el nuevo


elemento.
Los valores menores que el valor medio se colocan en el nuevo nodo
izquierdo, y los valores mayores que el valor medio se colocan en el
nuevo nodo derecho; el valor medio acta como valor separador.
El valor separador se debe colocar en el nodo padre, lo que puede
provocar que el padre sea dividido en dos, y as sucesivamente.
Si las divisiones de nodos suben hasta la raz, se crea una nueva raz con un nico
elemento como valor separador, y dos hijos. Es por esto por lo que la cota inferior del
tamao de los nodos no se aplica a la raz. El mximo nmero de elementos por nodo
es U-1. As que debe ser posible dividir el nmero mximo de elementos U-1 en dos
nodos legales. Si este nmero fuera impar, entonces U=2L, y cada uno de los nuevos
nodos tendran (U-2)/2 = L-1 elementos, y por lo tanto seran nodos legales. Si U-1 fuera
par, U=2L-1, as que habra 2L-2 elementos en el nodo. La mitad de este nmero es L-1,
que es el nmero mnimo de elementos permitidos por nodo.

Un algoritmo mejorado admite una sola pasada por el rbol desde la raz, hasta el nodo
donde la insercin tenga lugar, dividiendo todos los nodos que estn llenos encontrados
a su paso. Esto evita el costo de volver a cargar en memoria los nodos padres (lo que
puede llegar a ser caro si los nodos se encuentran en una memoria secundaria). Sin
embargo, para usar este algoritmo mejorado, debemos ser capaces de enviar un
elemento al nodo padre y dividir el resto U-2 elementos en 2 nodos legales, sin aadir
un nuevo elemento. Esto requiere que U=2L en lugar de U=L-1, lo que explica por qu
algunos libros de texto imponen este requisito en la definicin de rboles-B.

Eliminacin

La eliminacin de un elemento es directa si no se requiere correccin para garantizar


sus propiedades. Hay dos estrategias populares para eliminar un nodo de un rbol B.

localizar y eliminar el elemento, y luego corregir, o


hacer una nica pasada de arriba a abajo por el rbol, pero cada vez que se
visita un nodo, reestructurar el rbol para que cuando se encuentre el
elemento a ser borrado, pueda eliminarse sin necesidad de continuar
reestructurando

Se pueden dar dos problemas al eliminar elementos. Primero, el elemento puede ser un
separador de un nodo interno. Segundo, puede suceder que al borrar el elemento
nmero de elementos del nodo quede debajo de la cota mnima. Estos problemas se
tratan a continuacin en orden.

Eliminacin en un nodo hoja


Busque el valor a eliminar.
Si el valor se encuentra en un nodo hoja, se elimina directamente la clave,
posiblemente dejndolo con muy pocos elementos; por lo que se requerirn
cambios adicionales en el rbol.

eliminar clave 20 de un nodo interno.

Eliminacin en un nodo interno

(Recursivamente) del nuevo nodillo.

En el segundo caso, uno de los dos nodos hijos tienen un nmero de elementos mayor
que el mnimo. Entonces izquierdo o el menor elemento del nuevo separador.

Como se ha eliminado un elemento de un nodo hoja, se tar este caso de


manera equivalente.

Rebalanceo despus de la eliminacin

Si al eliminar un elemento de un nodo hoja el nodo se ha quedado con menos elementos


que el mnimo permitido, algunos elementos se deben redistribuir. En algunos casos el
cambio lleva la deficiencia al nodo padre, y la redistribucin se debe aplicar
iterativamente hacia arriba del rbol, quiz incluso hasta a la raz. Dado que la cota
mnima en el nmero de elementos no se aplica a la raz, el problema desaparece cuando
llega a sta.

Formalmente se define un rbol-B de la siguiente manera:

1. Cada pgina, excepto la raz, contiene entre n y 2n elementos. Se utilizar m para


indicar el nmero de elementos por pgina.

2. Cada pgina, excepto la pgina raz y las pginas hojas,


tienen entre n+1 y 2n+1 descendientes.

3. La pgina raz tiene al menos dos descendientes.

4. Las pginas hojas estn todas al mismo nivel.

rbol B+

Un rbol B+ simple (una variacin del rbol B) que enlaza los elementos 1 al 7 a valores
de datos d1-d7. Note la lista enlazada (en rojo) que permite el recorrido de los
elementos en orden.
En ciencias de la computacin, un rbol B+ es un tipo de estructura de datos de rbol,
representa una coleccin de datos ordenados de manera que se permite una insercin
y borrado eficientes de elementos. Es un ndice, multinivel, dinmico, con un lmite
mximo y mnimo en el nmero de claves por nodo. Un rbol B+ es una variacin de
un rbol B.

En un rbol B+, toda la informacin se guarda en las hojas. Los nodos internos slo
contienen claves ypunteros. Todas las hojas se encuentran en el mismo nivel, que
corresponde al ms bajo. Los nodos hoja se encuentran unidos entre s como una lista
enlazada para permitir principalmente recuperacin en rango mediante bsqueda
secuencial.

Caractersticas

Las estructuras de rbol B+ renen las siguientes caractersticas:

El nmero mximo de claves en un registro es llamado el orden del rbol B+.


El mnimo nmero de claves por registro es la mitad del mximo nmero de claves.
Por ejemplo, si el orden de un rbol B+ es n, cada nodo (exceptuando la raz) debe
tener entre n/2 y n claves.
El nmero de claves que pueden ser indexadas usando un rbol B+ est en funcin
del orden del rbol y su altura.

Altura: El mejor y el peor caso

Dado un M, el cual corresponde al nmero mximo de hijos que un nodo puede


contener se define por:

La altura h de un rbol B+ (El peor caso):

La altura h de un rbol B+ (Mejor caso) :


Este caso se debe a que si guardamos menos hijos en los nodos, se necesitarn ms
niveles para almacenar todo.

Cantidades de Claves

Para un rbol B+ de orden n, con una altura h:

El nmero mximo de claves es:

El nmero mnimo de claves es:

Formalmente se define un rbol-B+ de la siguiente manera:

1. Cada pgina, excepto la raz , contiene entre n y 2n elementos.

2. Cada pgina, excepto la raz, tiene entre n+1 y 2n+1 descendientes. Se


utiliza m para expresar el nmero de elementos por pgina.

3. La pgina raz tiene al menos dos descendientes.

4. Las pginas hojas estn todas al mismo nivel.

5. Todas las claves se encuentran en las pginas hojas.

6. Las claves de las pginas raz e interiores se utilizan como ndices.


rbol R

Ejemplo simple de un rbol-R para rectngulos 2D.

Los rboles-R o R-rboles son estructuras de datos de tipo rbol similares a los rboles-
B, con la diferencia de que se utilizan para mtodos de acceso espacial, es decir, para
indexar informacin multidimensional; por ejemplo, las coordenadas (x, y) de un lugar
geogrfico. Un problema con aplicacin prctica en el mundo real podra ser: "Encontrar
todos los museos en un radio de dos kilmetros alrededor de la posicin actual".

La estructura de datos divide el espacio de forma jerrquica en conjuntos, posiblemente


superpuestos.

Cada nodo de un rbol-R tiene un nmero variable de entradas (hasta un mximo


predefinido). Cada entrada de un nodo interno almacena dos datos: una forma de
identificar a un nodo hijo y el conjunto lmite de todas las entradas de ese nodo hijo.

Los algoritmos de insercin y borrado utilizan los conjuntos lmite de los nodos para
asegurar que elementos cercanos estn localizados en la misma hoja (en particular, un
nuevo elemento ser insertado en la hoja que requiera el menor aumento del conjunto
lmite). Cada entrada de una hoja contiene dos datos: una forma de identificar el
elemento actual (que, alternativamente, podra estar directamente en el nodo) y el
conjunto lmite de ese elemento.
De forma similar, los algoritmos de bsqueda utilizan los conjuntos lmite para decidir
en qunodo buscar. De este modo, la mayora de los nodos del rbol nunca son
examinados durante una bsqueda. Esto hace que este tipo de rboles (como los
rboles-B) sean idneos para el trabajo con bases de datos.

Se pueden utilizar distintos algoritmos para dividir nodos cuando estos crecen
demasiado, resultando subtipos de rbol-R cuadrticos y lineales.

Los rboles-R no garantizan un buen rendimiento en el peor caso, pero en general se


comportan bien con datos del mundo real. Sin embargo, recientemente, en2004, se
public un nuevo algoritmo que define el rbol R-de prioridad, que parece ser tan
eficiente como los mtodos actuales ms eficientes y, al mismo tiempo, ptimo para el
peor caso.

rbol B*

Un rbol-B* es una estructura de datos de rbol, una variante de rbol-B utilizado en los
sistemas de ficheros HFS y Reiser4, que requiere que los nodos no raz estn por lo
menos a 2/3 de ocupacin en lugar de 1/2. Para mantener esto los nodos, en lugar de
generar inmediatamente un nodo cuando se llenan, comparten sus claves con el nodo
adyacente. Cuando ambos estn llenos, entonces los dos nodos se transforman en tres.
Tambin requiere que la clave ms a la izquierda no sea usada nunca.

No se debe confundir un rbol-B* con un rbol-B+, en el que los nodos hoja del rbol
estn conectados entre s a travs de una lista enlazada, aumentando el coste de
insercin para mejorar la eficiencia en la bsqueda.

2.-Arboles digitales

Suponga que los elementos de un conjunto se pueden representar como una secuencia
de bits:

X = b0b1b2...bk

Adems, suponga que ninguna representacin de un elemento en particular


es prefijo de otra. Un rbol digital es un rbol binario en donde la posicin de insercin
de un elemento ya no depende de su valor, sino de su representacin binaria. Los
elementos en un rbol digital se almacenan slo en sus hojas, pero no necesariamente
todas las hojas contienen elementos (ver ejemplo ms abajo). Esta estructura de datos
tambin es conocida como trie.

El siguiente ejemplo muestra un rbol digital con 5 elementos.

Bsqueda en un rbol digital

Para buscar un elemento X en un rbol digital se procede de la siguiente manera:

Se examinan los bits bi del elemento X, partiendo desde b0 en adelante.


Si bi = 0 se avanza por la rama izquierda y se examina el siguiente bit, bi+1.
Si bi = 1 se avanza por la rama derecha y se examina el siguiente bit.
El proceso termina cuando se llega a una hoja, nico lugar posible en donde
puede estar insertado X.

Insercin en un rbol digital

Suponga que se desea insertar el elemento X en el rbol digital. Se realiza una bsqueda
infructuosa de X hasta llegar a una hoja, suponga que el ltimo bit utilizado en la
bsqueda fuebk. Si la hoja esta vaca, se almacena X en dicha hoja. En caso contrario, se
divide la hoja utilizando el siguiente bit del elemento, bk+1, y se repite el procedimiento,
si es necesario, hasta que quede slo un elemento por hoja.

Con este proceso de insercin, la forma que obtiene el rbol digital es insensible al orden
de insercin de los elementos.
Eliminacin en un rbol digital

Suponga que el elemento a eliminar es X. Se elimina el elemento de la hoja, y por lo


tanto sta queda vaca. Si la hoja vaca es hermana de otra hoja no vaca (i.e., una hoja
con datos), entonces ambas se fusionan y se repite el procedimiento mientras sea
posible.

Costo promedio de bsqueda en un rbol digital

El costo promedio de bsqueda en un rbol digital es mejor que en un ABB, ya que en


un rbol digital la probabilidad que un elemento se encuentre en el subrbol izquierdo
o derecho es la misma, 1/2, dado que slo depende del valor de un bit (0 o 1). En cambio,
en un ABB dicha probabilidad es proporcional al "peso" del subrbol respectivo.

Hn son los nmeros armnicos y P(n) es una funcin peridica de muy baja amplitud
(O(10-6))

3.-rbole B+ de Prefijos

La separacin de los ndices y conjunto de secuencias en los rboles-B+ es


intuitivamente atrayente. Tener en cuenta que parte de los ndices sirven implemente
como un mapa de caminos para guiar la bsqueda de la hoja correcta; no necesita
contener todas las claves actuales. Cuando las claves consisten en una tira de caracteres
hay buena razn para no usar las claves actuales como separadores: las claves actuales
requieren demasiado espacio. Bayer y Unterauer consideran como alternativa el B+
rbol prefijo.

Supongamos que la secuencia alfabtica de claves, 'binary', 'computer', 'electronic',


'program' y 'system' estn asignadas o localizadas en un rbol-B como el mostrado en la
Figura 15. El separador valora o seala entre las claves 'computer', 'electronic', las cuales
no necesitan estar ntegramente: basta con alguna cadena de caracteres. Por ejemplo,
algunos de estas tiras, 'elec', 'e' 'd' serviran perfectamente. Ya que no se hace
diferencia durante el proceso de recuperar, el ms corto separador debera ser usado
para as guardar espacio. Como los requerimientos de espacio pueden llegar a ser muy
pequeos, muchas claves pueden estar situadas en cada nodo, aumentando as los
elementos y disminuyendo la altura del rbol. Ya que los rboles son ms cortos tiene
un coste menor la bsqueda, usando separadores cortos disminuir el tiempo de
acceso as como guardamos espacio.

La tcnica ms simple para elegir el nico prefijo ms corto de la clave para servir
como separador da resultado. En el ejemplo, el prefijo ms corto de 'electronic' es
suficiente para distinguirlo de 'computer'. Algunas veces, sin embargo, la tcnica del
prefijo no funciona bien: eligiendo el prefijo ms corto de 'programers' para distinguirlo
de 'programer' no resulta del todo correcto. En cada uno de los casos, Bayer y Unterauer
sugieren explora unas pequeas claves cercanas para obtener una buena pareja para el
algoritmo de separacin. Mientras esto pueda dejar los nodos desigualmente cargados,
teniendo no mucha cantidad de claves extra en uno de los nodos, no afectar al coste
global.

4.-Conclusiones

Ahora que comprendemos cmo reacciona el optimizador ante las tcnicas descriptas,
analicemos un escenario en el que se muestran claramente las aplicaciones respectivas
de los ndices de mapas de bits y de los de rbol B.
Habiendo creado un ndice de mapa de bits para la columna GENDER, creemos otro del
mismo tipo asociado a la columna SAL y, a continuacin, ejecutemos algunas consultas.
Las consultas volvern a ejecutarse con ndices de rbol B asociados a esas columnas.

5.-Bibliografia

Wirth, N (1987) Algoritmos y Estructuras de Datos


Joyanes, L (1986) Estructuras de Datos en C++ (TAD)
Knuth, D (1973) The Art of Computer Programming[El arte de la programacin
de computadoras]
Pozo, S (2001) Arboles-B. Extrado de http://articulos.conclase.net/arboles-b
o Marqus, M (2001) Arboles B y rboles B+. Extrado de
http://www3.uji.es/~mmarques/f47/apun/node27.html.
Luna, F (2001) Tutorial de los rboles B. Extrado de
http://usuarios.lycos.es/arbolesbpro/

Вам также может понравиться