La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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.

Presentaciones similares


Presentación del tema: "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."— Transcripción de la presentación:

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.


Descargar ppt "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."

Presentaciones similares


Anuncios Google