Vediamo cos’è di preciso l’Heap (in italiano Pila) di Fibonacci.

Slides:



Advertisements
Presentazioni simili
Algoritmi e Strutture Dati
Advertisements

Algoritmi e Strutture Dati
Strutture dati per insiemi disgiunti
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Alberi binari Definizione Sottoalberi Padre, figli
Estendere i linguaggi: i tipi di dato astratti
Strutture dati lineari
Lez. 91 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Alberi di ricerca.
RB-alberi (Red-Black trees)
Strutture dati elementari
Alberi binari di ricerca
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Stesso approccio.
Capitolo 8 Code con priorità Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Capitolo 8 Code con priorità Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Stesso approccio.
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
STRUTTURE DATI e LABORATORIO II ESERCITAZIONE N°13 Heap massimo.
Esercizi su alberi binari
Alberi binari Definizione della struttura dati: struct tree { };
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 22/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 19/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
U V U V (a) |cfc|=2 prima e dopo (b) |cfc|=2 prima e |cfc|=1 dopo
Algoritmi e strutture Dati - Lezione 7
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 4 Ordinamento:
Il problema del dizionario
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 4 Ordinamento: Heapsort Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 8 Code con.
Algoritmi e Strutture Dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 8 Code con.
Algoritmi e Strutture Dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Il problema.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Alberi AVL (Adelson-Velskii.
Interrogazioni su un albero binario di ricerca Search(S,k) – dato un insieme S ed un valore chiave k restituisce un puntatore x ad un elemento in S tale.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Usa la tecnica del.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Alberi AVL (Adelson-Velskii.
Algoritmi e Strutture Dati Alberi Binari di Ricerca.
Esercizi su alberi binari
Heap binomiali Gli heap binomiali sono strutture dati su cui si possono eseguire efficientemente le operazioni: Make(H) : crea uno heap vuoto Insert(H,
memoria gestita staticamente:
Fibonacci Heaps e il loro utilizzo nell’algoritmo di Prim
Strutture dati per insiemi disgiunti
Ispezione lineare La funzione hash h(k,i) si ottiene da una funzione hash ordinaria h'(k) ponendo L’esplorazione inizia dalla cella h(k,0) = h'(k) e continua.
ALGORITMI a.
Alberi CORDA – Informatica A. Ferrari Testi da
AlgoLab - Code unificabili Code unificabili con alberi binomiali Laboratorio di Algoritmi 02/03 Prof. Ugo de’ Liguoro.
Algoritmi e Strutture Dati
Implementazione di dizionari Problema del dizionario dinamico Scegliere una struttura dati in cui memorizzare dei record con un campo key e alcuni altri.
Heap concetti ed applicazioni. maggio 2002ASD - Heap2 heap heap = catasta condizione di heap 1.albero binario perfettamente bilanciato 2.tutte le foglie.
Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati.
Alberi Alberi radicati : alberi liberi in cui un vertice è stato scelto come radice. Alberi liberi : grafi non orientati connessi e senza cicli. Alberi.
MODULO STRUTTURE DATI FONDAMENTALI: Strutture dinamiche
Capitolo 13 Cammini minimi: Ordinamento topologico Algoritmi e Strutture Dati.
Capitolo 8 Code con priorità Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Heap di Fibonacci.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 8 Code con.
Capitolo 13 Cammini minimi Algoritmi e Strutture Dati.
Capitolo 8 Code con priorità Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 4 Ordinamento: Heapsort Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Progettare algoritmi.
Algoritmi e Strutture Dati HeapSort. Select Sort: intuizioni L’algoritmo Select-Sort  scandisce tutti gli elementi dell’array a partire dall’ultimo elemento.
Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Capitolo 8 Code con priorità Algoritmi e Strutture Dati.
Albero genealogico. Si abbia un albero genealogico come nella figura sotto. Si supponga che i nomi propri delle persone siano tutti diversi, e quindi.
Prof.ssa Rossella Petreschi Lezione del 17 /10/2014 del Corso di Algoritmica Lezione n°5.
Prof.ssa Rossella Petreschi Lezione del 15 /10/2012 del Corso di Algoritmica B-alberi Lezione n°5.
Prof.ssa Rossella Petreschi Lezione del 29/10/2012 del Corso di Algoritmi e Strutture Dati Riferimenti: Capitolo 19 del testo Cormen, Leiserson, Rivest,
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Transcript della presentazione:

Vediamo cos’è di preciso l’Heap (in italiano Pila) di Fibonacci. 1 Per Heap in generale si intende una struttura dati atta a contenere e gestire un insieme di dati ordinabili. Gli Heap di Fibonacci furono introdotti da Fredman e Tarjan nel 1978. I Fibonacci Heaps sono un‘ottima implementazione di Heap in quanto le operazioni più costose hanno complessità ammortizzata (e sono quelle che prevedono l'eliminazione di un elemento dall’heap) mentre tutte le altre costano tempo (ammortizzato) costante. La tecnologia dei Fibonacci Heap è utilizzata anche oggi nei processori della famiglia Pentium di casa Intel. Vediamo cos’è di preciso l’Heap (in italiano Pila) di Fibonacci. Davide Valeriani

1 Gli Heap di Fibonacci sono un insieme di alberi caratterizzati dall'ordinamento parziale dello heap; questi alberi non sono ordinati per grandezza come negli Heap Binomiali e le loro radici sono poste in una lista bidirezionale. Ogni nodo ha un puntatore al nodo precedente (padre), un puntatore al successivo (figlio), un puntatore al suo fratello destro ed uno al suo sinistro. Inoltre, ogni elemento ha un campo intero che contiene il valore del nodo (chiave), un campo intero che contiene il numero di nodi a cui punta (grado) e un'altro campo booleano che indica se tale nodo ha perso un figlio dall'ultima volta in cui è diventato figlio di un altro nodo. Davide Valeriani

attributo descrizione attributo descrizione 2 Lo Heap di Fibonacci possiede i seguenti attributi: attributo descrizione ptesta puntatore alla prima radice della lista pmin puntatore alla radice con chiave minima nnodi numero complessivo di nodi nalberi numero complessivo di alberi Ogni nodo dello Heap possiede i seguenti attributi: attributo descrizione ppadre puntatore al padre pfigli puntatore alla lista dei figli pdestro puntatore al fratello destro psinistro puntatore al fratello sinistro grado numero di figli chiave valore del nodo marcato indica se il nodo è marcato o no Davide Valeriani

Creazione di un nuovo heap di Fibonacci 3 Creazione di un nuovo heap di Fibonacci La creazione di un nuovo heap di Fibonacci consisterà semplicemente nell’assegnare agli attributi i seguenti valori: attributo valore ptesta NULL pmin nnodi nalberi La chiave di ogni nodo è minore o uguale della chiave dei figli; in questo modo è garantito che il nodo con chiave minima è una delle radici. Davide Valeriani

Inserimento di un nuovo nodo 5 Inserimento di un nuovo nodo Il nuovo elemento viene inserito in testa alla lista delle radici e vengono opportunamente inizializzati tutti i suoi campi; se necessario viene aggiornato il minimo dello Heap e infine vengono incrementati i contatori del numero dei nodi e del numero di radici. Davide Valeriani

Inserimento di un nuovo nodo 8 Inserimento di un nuovo nodo A differenza delle funzioni di inserimento di altri tipi di heap, questa funzione non si preoccupa di ristrutturare in nessun modo la struttura dati. In questo senso si dice che gli Heap di Fibonacci sono una struttura dati “pigra”' poiché tende a rinviare il lavoro; questo aspetto dimostra come il progetto degli Heap di Fibonacci sia andato di pari passo con l'analisi ammortizzata delle complessità delle sue operazioni. Ricerca del minimo Per calcolare il valore minimo dell’heap, è sufficiente stampare il contenuto del nodo con chiave minima, puntato da ogni nodo grazie al puntatore pmin. Davide Valeriani

La spirale di Fibonacci 13 Curiosità su Leonardo Pisano Fibonacci (1170 – 1250) Triangolo di Pascal La spirale di Fibonacci Cercando su google la parola fibonacci, si trovano circa 3.870.000 pagine web! Davide Valeriani

21 Siamo arrivati alla fine di questa breve presentazione della tecnologia del Fibonacci Heap. Forse non ci avete fatto caso, ma in questa serie di slide c’era un riferimento a una delle più famose scoperte del matematico italiano. Sapete dove? Esatto! I numeri delle pagine in alto a destra si susseguivano seguendo la sequenza di Fibonacci. Che numero avrà la prossima pagina? Vediamo. Davide Valeriani

34 Il numero è ovviamente 34. Per sapere quali sono i numeri successivi, usate la procedura ricorsiva!!! Davide Valeriani