Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porRoldán Tobias Modificado hace 9 años
1
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 1 Fibonacci Heap(HF) 723 30 17 35 2646 24 H 39 411852 3 44 min marcado Para conocer en detalle de como representar un HF mediante estructuras de datos, vea la pág. 422, CLR.
2
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 2 Fibonacci Heap(HF) 723 30 17 35 2646 24 H 39 411852 3 44 min marcado grado[x] = grado del nodo x (nº de hijos). marca[x] = nodo marcado x (gris). t(H)= # arbol. m(H)= # nodos marcados. (H)= t(H) + 2m(H), es la función potencial. t(H) = 5, m(H) = 3, (H) = 11 grado 3
3
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 3 Fibonacci Heap(HF) 723 30 17 35 2646 24 H 39 411852 3 44 min Insertar(x): Crea un nuevo árbol con x como raíz, y se situa a la izq. del puntero min. Actualizando el min si corresponde. Insert 21 21
4
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 4 Fibonacci Heap(HF) 723 30 17 35 2646 24 H 39 411852 3 44 min 21 Insert 2
5
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 5 Fibonacci Heap(HF) 723 30 17 35 2646 24 H 39 411852 3 44 min 212
6
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 6 Fibonacci Heap(HF) 723 30 17 35 2646 24 H 39 411852 3 44 min 212
7
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 7 Fibonacci Heap(HF) Union. Concatenar dos Fibonacci heaps. Las raices son implementadas a través de listas circulares doblemente enlazadas. Sea H1, el HF que se obtiene luego de insertar y en este orden, los datos: 12, 7, 25, 15, 28, 33, 41. Analog. H2 con 18, 3, 6, 37. 3328 25 1512 min 417 H1 37 6 318 H2 min 3328 25 1512 417 H1+H2 37 6 318 min
8
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 8 Fibonacci Heap(HF) min 39 41 717 1852 3 30 23 35 2646 24 44 21 min 39 41 717 1852 3 30 23 35 2646 24 44 21 min H1 H2 H1+H2
9
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 9 Fibonacci Heap(HF) Eliminar Min:Borra el min y concatena sus hijos en la lista de raices. Aplicar Consolidate(H), esto es, ningún par de raíces tienen el mismo grado. Concatena Fibonacci heaps. Las raices son implementadas a través de listas circulares doblemente enlazadas. Se usa un array auxiliar A[0..log(nH)]. 39 411852 3 44 min 1723 30 7 35 2646 24 Eliminar 3
10
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 10 Fibonacci Heap(HF) 39 411852 3 44 min 1723 30 7 35 2646 24
11
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 11 Fibonacci Heap(HF) 39 411852 44 min 1723 30 7 35 2646 24 Consolidate(H),
12
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 12 Fibonacci Heap(HF) 39 4117231852 30 7 35 2646 24 44 actual min 01234 Consolidate(H),
13
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 13 Fibonacci Heap(HF) 39 4117231852 30 7 35 2646 24 44 actual min 01234 Consolidate(H),
14
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 14 Fibonacci Heap(HF) 39 4117231852 30 7 35 2646 24 44 actual min 01234 Consolidate(H),
15
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 15 Fibonacci Heap(HF) 39 4117231852 30 7 35 2646 24 44 actual min 01234 Merge los arboles con raíz 17 y 23. Consolidate(H),
16
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 16 Fibonacci Heap(HF) 39 4117 23 1852 30 7 35 2646 24 44 actual min 01234 Merge los arboles con raíz 7 y 17. Consolidate(H),
17
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 17 Fibonacci Heap(HF) 39 4117 23 1852 30 7 35 2646 24 44 actual min 01234 Merge los arboles con raíz 24 y 17. Consolidate(H),
18
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 18 Fibonacci Heap(HF) 39 4117 23 1852 30 7 35 2646 24 44 actual min 01234 Consolidate(H),
19
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 19 Fibonacci Heap(HF) 39 4117 23 1852 30 7 35 2646 24 44 actual min 01234 Consolidate(H),
20
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 20 Fibonacci Heap(HF) 39 4117 23 1852 30 7 35 2646 24 44 actual min 01234 Consolidate(H),
21
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 21 Fibonacci Heap(HF) 3941 17 23 18 52 30 7 35 2646 24 44 actual min 01234 Consolidate(H), Merge los arboles con raíz 18 y 41.
22
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 22 Fibonacci Heap(HF) 3941 17 23 18 52 30 7 35 2646 24 44 min Fin de Consolidate(H), Costo de consolidar arboles. O(D(n) + t(H)). D(n)= grado max de cualquier nodo en HF con n nodos. t(H)= # arboles en heap H.
23
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 23 Fibonacci Heap(HF) Decrementar la clave de un elemento x a k. Caso 0 : propiedades del min-heap no alteradas. – Decrementa la clave de x a k – Cambia el puntero min del heap, si es necesario. 24 46 17 30 23 7 88 26 21 52 39 18 41 38 Decrementa 46 a 45. 72 46* 35 min
24
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 24 Fibonacci Heap(HF) Decrementar la clave de un elemento x a k. Caso 0 : propiedades del min-heap no alteradas. – Decrementa la clave de x a k – Cambia el puntero min del heap, si es necesario. 24 46 17 30 23 7 88 26 21 52 39 18 41 38 Decrementa 46 a 45. 72 45 35 min
25
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 25 Fibonacci Heap(HF) Decrementar la clave de un elemento x a k. Caso 1 : padre de x no está marcado. Decrementa clave de x a k; Corta el enlace entre x y su padre; Marca al padre; Agrega el árbol con raíz x a la lista de raíces, actualizando el puntero a min del heap. 24 46 17 30 23 7 88 26 21 52 39 18 41 38 Decrementa 45 a 15. 72 15 35 min
26
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 26 Fibonacci Heap(HF) Decrementar la clave de un elemento x a k. Caso 1 : padre de x no está marcado. Decrementa clave de x a k; Corta el enlace entre x y su padre; Marca al padre; Agrega el árbol con raíz x a la lista de raíces, actualizando el puntero a min del heap. 24 46 17 30 23 7 88 26 21 52 39 18 41 38 72 15 35 min Decrementa 45 a 15.
27
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 27 Fibonacci Heap(HF) 24 46 17 30 23 7 88 26 21 52 39 18 41 38 72 15 35 min Decrementar la clave de un elemento x a k. Caso 1 : padre de x no está marcado. Decrementa clave de x a k; Corta el enlace entre x y su padre; Marca al padre; Agrega el árbol con raíz x a la lista de raíces, actualizando el puntero a min del heap. Decrementa 45 a 15.
28
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 28 Fibonacci Heap(HF) Decrementar la clave de un elemento x a k. Caso 1 : padre de x no está marcado. Decrementa clave de x a k; Corta el enlace entre x y su padre; Marca al padre; Agrega el árbol con raíz x a la lista de raíces, actualizando el puntero a min del heap. 24 46 17 30 23 7 88 26 21 52 39 18 41 38 72 15 35 min Decrementa 35 a 15.
29
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 29 Fibonacci Heap(HF) Decrementar la clave de un elemento x a k. Caso 2 : Si padre de x está marcado. Decrementa la clave de x a k; corta el enlace entre x y su padre p[x], y agrega x a la lista de raices; corta el enlace entre p[x] y p[p[x]], agrega p[x] a la lista de raices. n Si p[p[x]] no está marcado, lo marca. n Si p[p[x]] está marcado, corta p[p[x]] no marcado, y repite el proceso. 24 46 17 30 23 7 88 26 21 52 39 18 41 38 72 15 35 min Decrementa 35 a 5.
30
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 30 Fibonacci Heap(HF) Decrementar la clave de un elemento x a k. Caso 2 : Si padre de x está marcado.Decrementa la clave de x a k; corta el enlace entre x y su padre p[x], y agrega x a la lista de raices; corta el enlace entre p[x] y p[p[x]], agrega p[x] a la lista de raices. n Si p[p[x]] no está marcado, lo marca. n Si p[p[x]] está marcado, corta p[p[x]] no marcado, y repite el proceso. 24 46 17 30 23 7 88 26 21 52 39 18 41 38 72 15 5 min Decrementa 35 a 5.
31
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 31 Fibonacci Heap(HF) Decrementar la clave de un elemento x a k. Caso 2 : Si padre de x está marcado.Decrementa la clave de x a k; corta el enlace entre x y su padre p[x], y agrega x a la lista de raices; corta el enlace entre p[x] y p[p[x]], agrega p[x] a la lista de raices. n Si p[p[x]] no está marcado, lo marca. n Si p[p[x]] está marcado, corta p[p[x]] no marcado, y repite el proceso. 24 46 17 30 23 7 88 26 21 52 39 18 41 38 72 15 5 min Decrementa 35 a 5.
32
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 32 Fibonacci Heap(HF) Decrementar la clave de un elemento x a k. Caso 2 : Si padre de x está marcado.Decrementa la clave de x a k; corta el enlace entre x y su padre p[x], y agrega x a la lista de raices; corta el enlace entre p[x] y p[p[x]], agrega p[x] a la lista de raices. n Si p[p[x]] no está marcado, lo marca. n Si p[p[x]] está marcado, corta p[p[x]] no marcado, y repite el proceso. 24 46 17 30 23 7 88 26 21 52 39 18 41 38 72 155 min Decrementa 35 a 5.
33
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 33 Fibonacci Heap(HF) Decrementar la clave de un elemento x a k. Caso 2 : Si padre de x está marcado.Decrementa la clave de x a k; corta el enlace entre x y su padre p[x], y agrega x a la lista de raices; corta el enlace entre p[x] y p[p[x]], agrega p[x] a la lista de raices. n Si p[p[x]] no está marcado, lo marca. n Si p[p[x]] está marcado, corta p[p[x]] no marcado, y repite el proceso. 2446 17 30 23 7 88 26 21 52 39 18 41 38 72 155 min Decrementa 35 a 5. Eliminar nodo x. n Decrementar x a - . n Eliminar el min elem. del heap.
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.