Nicolas Gutierrez Castilla , Eyner Pariguana Medina,National University of San Agustin
L os Heaps son estructuras de datos de la forma de un arbol. Existen los Heaps maximos donde su principal car- acterstica es que el nodo padre tiene un valor mayor que el de sus hijos, por otra parte los Heaps mnimos se distinguen por lo contrario el nodo padre tiene un valor menor que el de sus hijos. Una estructura Heap es la imple- mentacion mas basica y habitual de una cola de prioridad. 1 Conceptos Iniciales 1.1 Binary Heap: Es un arbol binario balanceado y semi-completo. En su insercion se llena de izquierda a derecha. Cada vez que se va llenando nodo tras nodo, se puede dar el caso a menudo que se inserte un nodo a esta es- tructura, y se encuentre que su valor es menor que el valor de su padre si esta estructura en un Heap mnimo, o que el valor de dicho nodo es mayor que el valor de su padre en un Heap maximo, en estos tipos de casos no cumple con las propiedades de una estructura Heap, para ello el mtodo de solucin es hacer un swap de valores entre el padre y el nodo recien insertado, y llamar dicha funcion recursiva- mente esta vez con el padre de este nodo, hasta que llegue a la raz o cumpla con la condicin en alg un nivel de un Heap mnimo o maximo (dependiendo del caso). En su eliminaci on, se procede a retirar al primer elemento o raz y reemplazarlo por el ultimo elemento ingresado. Es un caso mas sencillo en la estructura de los Heaps comparado con los siguientes casos que se vera. Figure 1: Ejemplo de Heap 1.2 Binomial Heap: Es un conjunto de arboles binomiales. Un rbol bino- mial en su mnima expresion sera un nodo, debido a que ese es el caso mnimo, de tal forma ese sera el caso base o rbol binomial de orden 0. Ahora de man- era recursiva un rbol de nivel K es un conjunto de K arboles binomiales es decir contiene a los arboles de orden k-1, k-2,.., orden 2, orden 1, orden 0 (un solo nodo), donde la raz de dicho arbol tendra k hijos. El n umero de sus nodos es 2 elevado al exponente k. Supongamos que un Binomial Heap H tiene un total de n nodos. El n umero de rboles binomiales es igual al n umero de unos de la representaci on binaria de n . Eliminacion de un nodo , para eliminar un nodo x decrementamos su clave hasta - para hacerlo subir hasta la raz y luego extraemos el elemento minimo .Es una operacin de O(log n ). Page 1 of 3 Figure 2: Denicion recursiva de arboles binomiales Figure 3:
Arboles binomiales B 0 hastaB 4 Figure 4: Ejemplo de Heap Binomial 1.3 Fibonacci Heap: Es un conjunto de arboles ordenados , aunque no son unicamente arboles binomales.Son muy parecidos a los heaps binomiales pero tienen la ventaja de que las operaciones en donde no se eliminen nodos son de O(1). La eliminacin es similar a la de los heaps binomiales . Esta estructura puede ser usada para calcular el arbol mnimo de un grafo mediante el algoritmo de Prim mejorando as su tiempo de ejecucion asintotico, como tambien puede ser usado para calcular el camino ms corto en un grafo mediante el algoritmo de Dijkstra. Figure 5: Ejemplo de Heap de Fibonaci Figure 6: Representacion de Heaps de Fibonaci Page 2 of 3 2 Comparaci on : Inserci on , Eliminaci on , Get Min, Decreace Key : Antes de ver los diferentes casos de este tipo de estructura, primero se vera una breve comparacion entre Fibonacci Heap y Binomial Heap debido a que son parecidos. La estructura Fibonacci Heap sus operaciones insertar, encontrar el mnimo, disminuir la clave y la uni on trabajan con un tiempo constante debido a la amortizacin de la estructura, en cambio a las operaciones de borrado tiene un coste logartmico amortizado, esto signica que en una secuencia de a operaciones del primer grupo y b operaciones del segundo grupo se demorara en el peor caso (a + b log (n) ), mientras que en un Binomial Heap su peor caso sera ( ( a + b ) log (n) ), de esta manera un Fibonacci Heap es mucho mejor que un Binomial Heap. Operacion Binay Binomial Fibonacci Heap Heap Heap Insercion Log N Log N 1 Eliminacion Log N Log N Log N Get - Min 1 Log N 1 Decrease - Key Log N Log N 1 References [1] Alfred Aho, Jerey Ullman, and John Hopcroft. Data structures and Algo-rithms. Addison Wesley, 1st edition edition , 1983. Gilles Brassard. Fundamentos de Algoritmia. Prentice Hall, 1ra edicion edition, 2000. Thomas Cormen. Introduction to Algorithms. The MIT Press, 3rd edition edition, 2009. Donald Knuth. Art of Computer Programming. Addison Wesley Professional, 3rd edition edition, 1998. William Press, Brian Flannery, Saul Teukolsky, and William Vetterling. Numerical Recipes in C. Cambridge University Press, 2nd edition edition,1992. Robert Sedgewick. Algorithms. Addison Wesley Professional, 4th edition, 2011. Steve Skiena. The Algorithm Design Manual. Springer, corrected edition , 1997. Montculo (Informatica) Wikipedia Fibonacci Heaps University Princeton Binary and Binomial heaps University Princeton Page 3 of 3