• Non ci sono risultati.

Fast Updating of Well-Balanced Fast Updating of Well-Balanced TreesTrees

N/A
N/A
Protected

Academic year: 2021

Condividi "Fast Updating of Well-Balanced Fast Updating of Well-Balanced TreesTrees"

Copied!
25
0
0

Testo completo

(1)

Università degli Studi di Catania Università degli Studi di Catania Facoltà di Scienze Matematiche FF.NN.Facoltà di Scienze Matematiche FF.NN.

Corso di Laurea in InformaticaCorso di Laurea in Informatica

1° Prova in itinere di Algoritmi e complessità

Fast Updating of Well-Balanced Fast Updating of Well-Balanced

Trees Trees

Daniele Contarino

(2)

Executive summary Executive summary

Introduzione agli alberi ben bilanciati;

Manutenzione di un albero;

Manutenzione di un albero quasi perfettamente bilanciato

Manutenzione di un albero perfettamente bilanciato (con solo inserimenti o cancellazioni)

Alberi densi

(3)

Alberi ben bilanciati - Intro Alberi ben bilanciati - Intro

Cosa intendiamo per “bilanciamento”?

Intuitivamente, possiamo pensare che in un dato albero, tutti i suoi livelli siano completi, lasciando al massimo l'ultimo incompleto.

(4)

Alberi ben bilanciati - Intro Alberi ben bilanciati - Intro

A

lbero bilanciato Albero NON bilanciato

(5)

Passando dall'intuizione ai concetti, possiamo dare la seguente

Definizione 1

“Un albero binario ha un'altezza ottimale se e solo se l'altezza dell'albero è ”

dove con intendiamo il numero di nodi dell’albero.

Alberi ben bilanciati - Intro Alberi ben bilanciati - Intro

log (n+1)⌉

n

(6)

Alberi ben bilanciati - Intro Alberi ben bilanciati - Intro

h = 4

log(n+1)⌉=⌈log(14+1)⌉=⌈3,906⌉=4 Esempio 1

(7)

Alberi ben bilanciati - Intro Alberi ben bilanciati - Intro

h = 4

log(n+1)⌉=⌈log(12+1)⌉=⌈3,700⌉=4 Esempio 2

(8)

Alberi ben bilanciati - Intro Alberi ben bilanciati - Intro

Sicuri che l'albero dell'Esempio 2 sia bilanciato?

Livelli completi

Livelli incompleti Se osserviamo bene, vediamo che quest'albero non rispetta la nostra intuizione iniziale. Il solo concetto di altezza ottimale non basta!

Occore dare un'altra definizione!

(9)

La nostra idea era quella di lasciare al più un livello incompleto.

Per marcare questo concetto diamo la seguente

Definizione 2

“Un albero binario si dice perfettamente bilanciato se e solo se la differenza tra l'altezza del percorso più lungo e del più corto è al più uguale a 1”

Alberi ben bilanciati - Intro Alberi ben bilanciati - Intro

(10)

Alberi ben bilanciati - Intro Alberi ben bilanciati - Intro

H = 4

Esempio 2

h = 2

H-h = 2

L'albero non è bilanciato!

(11)

Se un albero è ben bilanciato, i tempi delle operazioni

principali (inserimento, ricerca e cancellazione) saranno .

Però i continui inserimenti e cancellazioni posso far

sbilanciare l'albero.

O (log n)

Alberi ben bilanciati – L'idea Alberi ben bilanciati – L'idea

Esistono già algoritmi che permettono l'aggiornamento con un costo ammortizzato . Noi cercheremo di

portare questo costo a , mantenendo per la ricerca.

Θ(n) O (log2n) O (log n)

(12)

Alberi quasi ottimamente bilanciati Alberi quasi ottimamente bilanciati

Permettiamo al nostro albero di possedere una altezza quasi ottimale, ovvero fissato un certo , l'altezza massima consentita all'albero sarà ϵ>0

log(n+1)+ϵ⌉

log(n+1)+ϵ⌉

(13)

Alberi quasi ottimamente bilanciati Alberi quasi ottimamente bilanciati

Inoltre, permettiamo al nostro albero di avere la lunghezza del path più corto di .

Questo permette di una certa flessibilità nella differenza tra il path più lungo e quello più corto.

log(n+1)−ϵ⌋

log(n+1)−ϵ⌋

(14)

Alberi quasi ottimamente bilanciati Alberi quasi ottimamente bilanciati

Combinando l'altezza quasi ottimale e il percorso

minimo vicino al massimo, otteniamo un costo per ogni aggiornamento pari a O

(

logϵ2n

)

(15)

Abbiamo detto che un albero tende a sbilanciarsi a causa dei continui inserimenti o cancellazioni.

Ma se il nostro albero non necessità eliminazioni, è possibile ottenere un albero perfettamente bilanciato con costo di ristrutturazione di .

Identico costo si ha anche nel caso di un albero in cui vengono effettuate solo delle eliminazioni

Alberi ottimamente bilanciati Alberi ottimamente bilanciati

O

(

log3n

)

(16)

Abbiamo detto che un albero tende a sbilanciarsi a causa dei continui inserimenti o cancellazioni.

Ma se il nostro albero non necessità eliminazioni, è possibile ottenere un albero perfettamente bilanciato con costo di ristrutturazione di .

Identico costo si ha anche nel caso di un albero in cui vengono effettuate solo delle eliminazioni.

Alberi ottimamente bilanciati Alberi ottimamente bilanciati

O

(

log3n

)

(17)

L'idea di fondo è quella di effettuare la ricostruzione parziale solo dove serve (ovvero nel sotto albero che fà sforare l'altezza ottimale consentita)

Alberi ottimamente bilanciati Alberi ottimamente bilanciati

(18)

Alberi Densi Alberi Densi

Nonostante gli sforzi fatti, il costo minimo per ogni aggiornamento (anche con alcune limitazioni) è di . Siamo ancora lontani da un tempo

logaritmico.

Quindi ora introduciamo una nuova idea: Gli alberi densi.

O

(

logϵ2n

)

(19)

Alberi Densi Alberi Densi

Nei alberi densi vi troviamo 2 entità:

L'albero superiore

Le foglie – sotto alberi

(20)

Alberi Densi Alberi Densi

L'idea di fondo è quella di lavorare con delle

ristrutturazioni parziali o nelle foglie-sotto alberi (che vengono trattati come alberi) oppure nell'albero

superiore (e gli alberi sottostanti vengono considerati come foglie, quindi non vengono toccati)

(21)

Alberi Densi Alberi Densi

Il vantaggio dei alberi densi è che la maggior parte delle operazioni interesseranno solo le foglie-sotto alberi. Un albero superiore sarà soggetto a ricostruzione solo se una foglia-sotto albero sarà divisa in 2 sotto-alberi o si procederà a un merge di 2 sotto-alberi.

Il costo ammortizzato per l'aggiornamento è di con .

Nel caso di aggiornamenti per l'albero superiore, il costo si avvicina a .

O

(

log nϵ2

)

0<ϵ<1 2

Θ

(

log n

)

(22)

Alberi Densi Alberi Densi

Dove sta l'inghippo?

Per ottenere un albero denso, dobbiamo permettere all'albero di poter tenere fino a 4 livelli incompleti.

(23)

Conclusioni Conclusioni

Grazie a queste considerazioni, siamo riusciti a

mantenere un albero binario di ricerca ben bilanciato passando da tempo a , rendendo più

attraente questa struttura dati.

O

(

log n

)

Θ

(

n

)

(24)

Reference Reference

Fast Updating of Well Balanced Trees

A Andersson, T Lai - SWAT 90, 1990 – Springer Alberi bilanciati

F. d'Amore - Università di Roma "La Sapienza", 2002

(25)

Fine Fine

Grazie a tutti voi per l'attenzione!

Riferimenti

Documenti correlati

costruire un albero binario di ricerca Marco Lapegna – Laboratorio di Programmazione 2 Cenni agli alberi. procedura ricerca(in: radice, e;

Relational poverty as a cause of economic growth The Negative Endogenous Growth (NEG) g g ( ). (Bartolini and Bonatti 2003

• La prospettiva detta della “efficienza interna”, studia i processi aziendali con l’obiettivo di individuare quelli core per la soddisfazione del cliente e dell’azionista..

• La prima delle relazioni sta a significare che le azioni che vengono svolte da chi opera nella prospettiva dell’efficienza interna, devono portare alla fissazione del giusto

The min-max MGGPP2 can be solved in a similar way, testing with a binary search all possible thresholds γ, enumerating the O(n 2 ) central components that respect such a

It slightly improves the first model through the addition of two further variables, the upper columns’ stiffness, but these two variables, although significant according to

Nicola Colacurci (Napoli) Giulio De Matteis (Roma) Nicolina Di Biase (Roma) Massimo Giovannini (Roma) Salvatore Gueli Alletti (Roma) Alessandro Iuliano (Roma) Vittorio Le Rose (Roma)

 Figli destro e sinistro di un nodo: nodi puntati dai link di quel nodo (padre)..  Sottoalbero destro e sinistro di