You are on page 1of 10

PROYECTO DE INVESTIGACIN SOBRE EL

ALGORITMO DE HEAP BINOMIAL




RESUMEN:
En el presente trabajo se hizo la investigacin del algoritmo Heap Binomial,
que consta de 9 operaciones las cuales son: Make-binomial-heap(),
binomial-heap-minimum(H), binomial-link(y,z), binomial heap-merge(H1, H2),
binomial-heap-union(H1, H2), binomial al-heap-insert(H, x), binomial-heap-
extract-min(H), binomial-heap-decrease-key(H, x, k), binomial-heap-delete(H,
x); desarrolladas
e implementadas logrando la ejecucin y experimentacin de lo que el
algoritmo puede hacer
Tiempo de ejecucin, la cual en cada operacin sali un valor, lo cual hace
notar que heap binomial es mejor que el heap binario ya que en algunos
casos el tipo de operacin que ejecuta es mejor que el del heap binario.

PALABRAS CLAVE:
Heap binomial , rbol binomial, make, merge

1. INTRODUCCIN

El presente trabajo es el resultado de un estudio minucioso acerca del
funcionamiento del heap binomial el cual se componen de un bosque de
arboles binomiales.
Estos se definen recursivamente y aparecen a lo sumo una vez en el bosque.
Un rbol binomial es un rbol ordenado donde B consiste en un nico
nodo,B se compone de dos rboles donde uno de los dos esta dosado a
la raz del otro como su hijo extremo derecho.
Pero primero debemos conocer el concepto de heap, el cual nos dice que es
un rbol binario semicompleto en el que el valor de la clave almacenado en
cualquier nodo es menor o igual que los valores de clave de sus hijos.
Esta estructura de datos es ms compleja a comparacin del heap binario
pero ofrece una mayor eficiencia en la fusin de dos heaps, haciendo que el
tiempo de ejecucin se reduzca a O (log n).
Este consta de algunas operaciones como son: insertar, eliminar, crear heap,
extraer mnimo, enlace y unin.

2. CONTENIDO

HEAP BINOMIAL.

- Un montculo binomial es una coleccin de arboles binomiales.
- Arbol binomial, , se define recursivamente:
B es un solo nodo .
Consiste en dos arboles binomiales enlazados de la
siguiente forma: la raz de uno es el hijo mas a la izquierda de la raz del
otro.















Propiedades del rbol binomial B

- Tiene

nodos.
- Su altura es K.
- Tiene (

) nodos en el nivel i; para i=0,1,2,,k;


- La raz tiene grado K (numero de hijos) y es el nodo de mximo grado;
mas aun, si se numeran los hijos de la raz de izquierda a derecha
como k 1, k 2,, 0, el hijo i es la raz de un subrbol Bi.

DEMOSTRACION DE LAS PROPIEDADES, por induccin:

- Se cumplen para B.
- Suponer que se cumplen para :
- consiste en dos copias de , luego B tiene

nodos.
- Por construccin de Consiste en dos copias de
- Sea D (k,i) en el n de nodos de en el nivel i. por construccin de
D(k,i) = D (k-1, i) + D(k-1, i-1)
= (

) + (


) = (

)
- El unico nodo con grado mayor en que en es la raz que tiene
un hijo mas que en como la raz de tiene grado k-1 , la de
tiene grado k.
- Por ultimo , por hiptesis de induccin los hijos de la raz de son ,
de izquierda a derecha , las races de B0.

Por lo tanto , cuando se enlaza a los hijos de la raz resultante
son las races de , B0.


Corolario: el grado mximo de cualquier nodo en un rbol binomial de n
nodos es log n.
- Demostracin se sigue de las propiedades 1 y a.

Monticulo binomial:
- Es un conjunto de arboles binomiales tales que :
Cada rbol binomial e un rbol parcialmente ordenado , es
decir , la clave de todo nodod es mayor o iagual que la de
su padre.
Contiene no mas de un rbol binomial Bi para cada grado i.
Propiedades (consecuencia de la definicin):
- Todo montculo binomial M de n nodos consta de , como mucho
arboles binomiales .
- Demostracin: la representacin binaria de n tiene bits ,
de forma que:




Como Bi tiene 2i nodos, Bi aparece en M si y solo si bi=1.

Un ejemplo de moticulo binomial de 13 nodos:







La representacin binaria de 13 es <1, 1, 0, 1>, por tanto M contiene los
arboles binomiales B, B y B con 8m 4 y 1 nodos , respectivamente.

ALGORITMO
- Tiempo de ejecucin









LAS OPERACIONES DE HEAP BINOMIAL.




















































Secuencia de rboles binarios que satisfacen la propiedad HEAP
BINOMIAL.
















Invariancia de Bucle (Correctitud del Algoritmo) :
El bucle principal de todo el algoritmo es el que se encuentra en la
funcin Binomial- Heap- Union (H1,H2)

El invariante de bucle seria :
Degree [ x ] = degree [ next-x]
Que se cumple antes , durante y al finalizar el bucle principal.

REFERENCIAS
http://www.cse.yorku.ca/~aaw/Sotirios/BinomialHeapAlgorithm.html
http://jc-info.blogspot.com/search/label/C%2FC%2B%2B
http://es.wikibooks.org/wiki/Estructuras_de_datos_din%C3%A1micas/Colas_de_prioridad_y_montones
http://www.cse.yorku.ca/~aaw/Sotirios/BinomialHeap.
Thomas H. Cormen - Introduction to Algorithms 2da edicion.

You might also like