Heap Fibonacci heap de Fibonacci es una estructura de datos similar a un heap binomial pero con mejor coste amortizado. se utiliza para mejorar el tiempo.

Slides:



Advertisements
Presentaciones similares
Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I
Advertisements

ESTRUCTURA DE DATOS Unidad 04 TDA no lineales - Árboles.
GRAFOS Presentado por: Oscar Leonardo Ramírez John Freddy Sandoval
IBD Clase 7.
ESTRUCTURA DE DATOS Unidad 04 Árboles BINARIOS DE BUSQUEDA.
Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.
Montículos Daniel González Pérez Cristina Sánchez Aragón
Complejidad Algorítmica: Análisis de algoritmos
Estructuras de datos y algoritmos
ÁRBOLES BINARIOS DE BUSQUEDA
Estructura de Datos en memoria secundaria
Unidad 4: Análisis de algoritmos (parte II)
ESTRUCTURAS DE DATOS AVANZADAS
Algoritmos Aleatorizados
Teoría de lenguajes y compiladores
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
Integrantes: Esteban Jiménez Guesseppe Lozada Mario Rodriguez Gustavo Tenorio Fabio.
Extracto del material disponible en Estrategias para la recolección de basura (Garbage Collection.
Listas circulares.
Problemes de Viatjants
AED I. Estructuras de Datos.
Ordenamiento topológico
GRAFOS HUGO ARAYA CARRASCO.
1 Algoritmos Elementales de Grafos Agustín J. González ELO-320: Estructura de Datos Y Algoritmos 1er.Sem
PROGRAMACIÓN PARALELA EN ALGORITMOS SOBRE GRAFOS
Material de apoyo Unidad 4 Estructura de datos
Temas importantes para el desarrollo de la segunda parte del TPE
Estructuras de Datos MC Beatriz Beltrán Martínez.
Árboles, montículos y grafos Cola de prioridades, montículos
Ordenamiento, Heapsort y Colas de prioridad
Heaps Mauro Maldonado Abril/2005. Introducción La estructura heap es frecuentemente usada para implementar colas de prioridad. En este tipo de colas,
ESTRUCTURAS DE DATOS I Conocer, comprender y analizar algunos de los principales tipos de estructuras de datos.
Diseño y análisis de algoritmos
Estructura de Datos II Equipo 4 Equipo 7 Acosta Montiel Miguel A.
Parte II. Algorítmica. 3. Algoritmos voraces.
Almacenamiento y Recuperacion de Información- Arbol AVL
Aplicación de estructuras de datos
Surge cuando se necesita un modelo costo-efectividad que permita transportar ciertos bienes desde un lugar de origen a un destino que necesita aquellos.
METODOS DE BUSQUEDA INFORMADOS CAPITULO 5
Árboles AVL por Jorge Riera Ledesma Departamento de Estadística, Investigación Operativa Y Computación.
Árboles Recomendado: 1. Nivelación Funciones
UNIVERSIDAD POPULAR DEL CESAR
Árboles Binarios Estructuras de Datos.
Dr. Eric Jeltsch F. Ingenieria en Computacion, ULS(DAA_2004) 1 Fibonacci Heap(HF) H min marcado Para conocer en detalle.
Capítulo 7 Gestión de memoria.
Clasificación de los TDA
Estructuras de datos para Grafos
Universitarios: Ricardo Gonzales Jimenez Wilfredo Coca Reinaldo Yohan Docente: Lic. Israel Torrez Valverde Tema: Listas doblemente Enlazadas.
Análisis y Diseño de Algoritmos
Estructura de Datos M.C. José Andrés Vázquez Flores FCC/BUAP
Minimum Spanning Tree (Árbol de Expansión Mínima)
Parte I. Estructuras de Datos.
Minimum Spanning Tree (Árbol de Expansión Mínima)
Arboles B (búsqueda externa)
Punteros, referencias Listas enlazadas Arboles
ALGORÍTMICA Ingeniería Técnica en Informática de Gestión y de Sistemas curso Teoría: Domingo Giménez Seminario C: José María Rodríguez Prácticas.
UNIDAD 2 Grafos Árboles abarcadores mínimos Caminos más cortos.
ARBOLES GENERALIZADOS
Árboles Binarios de Búsqueda (ABB)
A YUDANTÍA 5: A RBOLES Carlos Pulgar R. Mail: Página Ayudantía:
Actualizado agosto 2010 por Guiomar Mora de Reyes
Árboles Equilibrados Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2015.

M.C. Meliza Contreras González
75.41 Algoritmos y Programación II Cátedra Ing. Patricia Calvo Complejidad algorítmica.
Matemáticas Discretas MISTI
Recorridos de grafos Segunda Parte M.C. Meliza Contreras González.
PUNTEROS. Los punteros son de amplia utilización en programación y muchos lenguajes permiten la manipulación directa o indirecta de los mismos. Su razón.
Clase II Estructuras dinámicas (TAD) Listas Enlazadas. ¿A que llamamos estructuras dinámicas? ¿Por qué son necesarias? Ventajas y Desventajas que tendremos.
Heaps.
Transcripción de la presentación:

Heap Fibonacci heap de Fibonacci es una estructura de datos similar a un heap binomial pero con mejor coste amortizado. se utiliza para mejorar el tiempo de ejecución asintótico del algoritmo de Dijkstra para calcular el camino más corto en un grafo y el algoritmo de Prim para calcular el árbol mínimo de un grafo. En particular, las operaciones Insertar, encontrar el mínimo, decrementar la clave, y la unión trabajan con tiempo constante amortizado.

Heap Fibonacci Análisis amortizado En general, el coste de cada operación sobre el TAD (estructura de datos) no es independiente de las operaciones realizadas previamente. En lugar de caracterizar el coste (mejor, peor, medio) de cada operación individual resulta más adecuado considerar secuencias de operaciones arbitrarias sobre el TAD. Es posible que una operación tenga un coste peor elevado, pero que éste sea muy improbable cuando la operación se aplica dentro de secuencias de operaciones válidas.

Heap Fibonacci Análisis amortizado Coste amortizado: coste que evalúa la eficiencia de un conjunto de operaciones que se aplican en un mismo contexto. El coste amortizado determina una cota superior (peor caso) para el coste de una secuencia de operaciones. Se dice que una operación tiene un coste amortizado t si en cualquier secuencia de operaciones en la que aparezca, el coste total de las operaciones dividido por el número de éstas es menor o igual a t.

Heap Fibonacci Análisis amortizado El análisis amortizado difiere del análisis en el caso medio en que no se consideran probabilidades. El análisis amortizado garantiza la eficiencia media de cada operación en el peor caso. Referencia para el tema: Capítulo 17 (pag. 405) “Introduction to Algorithms” T.H. Cormen, C.E. Leiserson, R.L. Rivest. MIT Press, 1990.

Heap Fibonacci

Heap Fibonacci Heap Fibonacci y Heap Binomial son una colección de heap ordenados. Propiedades: Nodos en FH no están ordenados (por grado) en la lista de raíz o como hermanos. Raíz y hermanos están dispuestos en una lista enlazada circular. Cada nodo almacena su grado (nº de hijos). Min(H) es un puntero al mínimo raíz en la lista de raíz. N(H) es el nº de nodos actualmente en H.

Heap Fibonacci

Heap Fibonacci Sea A un árbol con raíz min(H), extrae A desde H. Elimina la raíz de A; reinserta el resto de los árboles “abandonados”en la lista raíz del heap, actualiza min(H) durante este proceso. Une raíz de igual grado hasta que al menos una raíz restante de cada grado.

Heap Fibonacci Crea un nuevo árbol que contiene x y lo agrega a la lista de raíz. Y actualiza punteros adecuadamente.

Heap Fibonacci

Heap Fibonacci Las operaciones Borrar y Borrar el mínimo tienen un coste O(logn) como coste amortizado. Esto significa que, empezando con una estructura de datos vacía, cualquier secuencia de ‘a’ operaciones del primer grupo y ‘b’ operaciones del segundo grupo tardarían O(a + b.logn). En un heap ‘binomial’ esta secuencia de operaciones tardarían O((a+b)log(n)). Un heap de Fibonacci es mejor que un heap binomial cuando b es asintóticamente más pequeño que a. Aunque los costes son los arriba indicados, algunas operaciones pueden llevar mucho tiempo (en concreto Decrementar clave, Borrar y Borrar mínimo tienen un coste lineal en el peor caso). Por esta razón los Heaps de Fibonacci y otras estructuras de datos con coste amortizado no son apropiadas para sistemas de tiempo real.

Heap Fibonacci Como resultado, algunas operaciones pueden llevar mucho tiempo mientras que otras se hacen muy deprisa. En el análisis del coste de ejecución amortizado se pretende que las operaciones muy rápidas tarden un poco más de lo que tardan. Este tiempo extra se resta después al tiempo de ejecución de operaciones más lentas. La cantidad de tiempo ahorrada para un uso posterior es medida por una función potencial. Esta función es: Potencial (H)= t (H)+ 2m(H) Donde t es el número de árboles en el Heap de Fibonacci, y m es el número de nodos marcados. Un nodo está marcado si al menos uno de sus hijos se cortó desde que el nodo se fue hecho hijo de otro nodo (todas las raíces están desmarcadas).

Heap Fibonacci Sea A un árbol con raíz min(H), extrae A desde H. Elimina la raíz de A; reinserta el resto de los árboles “abandonados”en la lista raíz del heap, actualiza min(H) durante este proceso. Une raíz de igual grado hasta que al menos una raíz restante de cada grado.

Heap Fibonacci

Heap Fibonacci

Heap Fibonacci

Heap Fibonacci