Le operazioni che vogliamo realizzare sono. Supporremo che una tabella T abbia i seguenti attributi: 1. Table(T): costruisce una tabella vuota T.

Documenti analoghi
Analisi ammortizzata. Illustriamo il metodo con due esempi. operazioni su di una pila Sia P una pila di interi con le solite operazioni:

Allora v = v2 =

1 La domanda di moneta

LE FREQUENZE CUMULATE

Il logaritmo discreto in Z p Il gruppo moltiplicativo Z p delle classi resto modulo un primo p è un gruppo ciclico.

1. La domanda di moneta

Code a priorità (Heap) Definizione Heapify (mantenimento coda a priorità) Costruire un Heap Insert, Maximum e Extract-Max

MACROECONOMIA A.A. 2014/2015

ESERCIZIO 4.1 Si consideri una popolazione consistente delle quattro misurazioni 0, 3, 12 e 20 descritta dalla seguente distribuzione di probabilità:

* PROBABILITÀ - SCHEDA N. 2 LE VARIABILI ALEATORIE *

Gestione della produzione e della supply chain Logistica distributiva. Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena

Architetture aritmetiche. Corso di Organizzazione dei Calcolatori Mariagiovanna Sami

Controllo e scheduling delle operazioni. Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena

RICHIAMI SULLA RAPPRESENTAZIONE IN COMPLEMENTO A 2

La teoria microeconomica del consumo

V n. =, e se esiste, il lim An

4. ALGORITMI GREEDY. cambia-monete scheduling a minimo il ritardo. Il problema del cambia-monete. Proprietà di una soluzione ottima

Il modello markoviano per la rappresentazione del Sistema Bonus Malus. Prof. Cerchiara Rocco Roberto. Materiale e Riferimenti

Rappresentazione dei numeri PH. 3.1, 3.2, 3.3

Esercizio. Alcuni esercizi su algoritmi e programmazione. Schema a blocchi. Calcolo massimo, minimo e media

ESERCIZI DI MATEMATICA FINANZIARIA DIPARTIMENTO DI ECONOMIA E MANAGEMENT UNIFE A.A. 2016/2017. Esercizi 3

3) Entropie condizionate, entropie congiunte ed informazione mutua

Lezione 10. L equilibrio del mercato finanziario: la struttura dei tassi d interesse

Luciano Battaia. Versione del 22 febbraio L.Battaia. Condensatori e resistenze

Intorduzione alla teoria delle Catene di Markov

B - ESERCIZI: IP e TCP:

Esercizi sulle reti elettriche in corrente continua (parte 2)

Precisione e Cifre Significative

una variabile casuale è continuase può assumere un qualunque valore in un intervallo

Rappresentazione dei numeri

Definizione di campione

6. Catene di Markov a tempo continuo (CMTC)

Allenamenti di matematica: Teoria dei numeri e algebra modulare Soluzioni esercizi

Il dimensionamento dei sistemi di fabbricazione

Dipartimento di Statistica Università di Bologna. Matematica Finanziaria aa lezione 3:

Algoritmo di Carlier- Pinson per problemi di Job Shop Scheduling: un esempio

SOLUZIONE ESERCIZI: STRUTTURA DI MERCATO. ECONOMIA INDUSTRIALE Università degli Studi di Milano-Bicocca. Christian Garavaglia

Lezione n. 10. Legge di Raoult Legge di Henry Soluzioni ideali Deviazioni dall idealit. idealità Convenzioni per le soluzioni reali

NUMERI GRANDI DI FIBONACCI come trovare velocemente i loro esatti valori numerici Cristiano Teodoro

Ricerca Operativa e Logistica Dott. F.Carrabs e Dott.ssa M.Gentili. Modelli per la Logistica: Single Flow One Level Model Multi Flow Two Level Model

Dipartimento di Statistica Università di Bologna. Matematica Finanziaria aa lezione 22: 30 maggio 2013

Integrazione numerica dell equazione del moto per un sistema lineare viscoso a un grado di libertà. Prof. Adolfo Santini - Dinamica delle Strutture 1

Esercizi di econometria: serie 1

Premessa essa sulle soluzioni

Esercitazione sulle Basi di di Definizione

Soluzioni 3.1. n(n 1) (n k + 1) z n k! k + 1 n k. lim k

Sommatori: Full Adder. Adder. Architetture aritmetiche. Ripple Carry. Sommatori: Ripple Carry [2] Ripple Carry. Ripple Carry

Algebra Sia A un anello commutativo. Si ricorda che in un anello commutativo vale il teorema binomiale, cioè. (a + b) n = a i b n i i.

Metodi e Modelli per l Ottimizzazione Combinatoria Progetto: Metodo di soluzione basato su generazione di colonne

PROBLEMA DI SCELTA FRA DUE REGIMI DI

ESERCIZI DI MATEMATICA FINANZIARIA DIPARTIMENTO DI ECONOMIA E MANAGEMENT UNIFE A.A. 2016/ Esercizi 2

I MODELLI MULTISTATO PER LE ASSICURAZIONI DI PERSONE

Manuale di istruzioni Manual de Instruções Millimar C1208 /C 1216

Ottimizzazione nella gestione dei progetti Capitolo 6 Project Scheduling con vincoli sulle risorse CARLO MANNINO

Linguaggio C. funzioni e procedure. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Amplificatori operazionali

5: Strato fisico: limitazione di banda, formula di Nyquist; caratterizzazione del canale in frequenza

Capitolo 7. La «sintesi neoclassica» e il modello IS-LM. 2. La curva IS

Il campionamento casuale semplice

Sviluppo delle lamiere

Capitolo 3 Covarianza, correlazione, bestfit lineari e non lineari

Soluzione esercizio Mountbatten

L efficacia delle politiche nel modello IS-LM

- Riproduzione riservata - 1

Segmentazione di immagini

CAPITOLO 3 CIRCUITI DI RESISTORI

SERIE STORICHE, TREND, MEDIE MOBILI, REGRESSIONE Andrea Prevete

Corso di Statistica (canale P-Z) A.A. 2009/10 Prof.ssa P. Vicard

Soluzione del compito di Fisica febbraio 2012 (Udine)

4.6 Dualità in Programmazione Lineare

Macchine. 5 Esercitazione 5

Variabili statistiche - Sommario

7. TERMODINAMICA RICHIAMI DI TEORIA

ESERCITAZIONE 2 DIAGRAMMI A BARRE, COSTRUZIONE DI ISTOGRAMMA. Notazione: x i = i-esima modalità della variabile X

Circuiti di ingresso differenziali

Introduzione 2. Problema. I sali presenti nell acqua (all estrazione) causano problemi di corrosione. Soluzione

Questo è il secondo di una serie di articoli, di

3 (solo esame 6 cfu) Elementi di Analisi Numerica, Probabilità e Statistica, modulo 2: Elementi di Probabilità e Statistica (3 cfu)

IL GRUPPO SIMMETRICO S n

La contabilità analitica nelle aziende agrarie

SERVITU PREDIALI. Definizione: peso imposto sopra un fondo (servente), per l utilità di un altro fondo (dominante) appartenente a diverso proprietario

Cariche in movimento.corrente elettrica.

LEZIONE 2. Riassumere le informazioni: LE MEDIE MEDIA ARITMETICA MEDIANA, MODA, QUANTILI. La media aritmetica = = N

Università degli Studi di Torino D.E.I.A.F.A. Forze conservative. Forze conservative (1)

Sommario. Obiettivo. Quando studiarla? La concentrazione. X: carattere quantitativo tra le unità statistiche. Quando studiarla?

Dall appello del 16/7/04

Unità n La concentrazione

Metodi di Ottimizzazione mod. Modelli per la pianificazione delle attività

GLI STATI DI AGGREGAZIONE DELLA MATERIA. Lo stato liquido

GUGLIOTTA CALOGERO. Liceo Scientifico E.Fermi Menfi (Ag.) ENTROPIA

Circuiti elettrici in regime stazionario

Induzione elettromagnetica

Modelli descrittivi, statistica e simulazione

INTERPOLAZIONE MEDIANTE CURVE SPLINE. '' ( b ) = 0

FUNZIONAMENTO IN REGIME ALTERNATO SINUSOIDALE

ELETTRONICA dei SISTEMI DIGITALI Universita di Bologna, sede di Cesena. Fabio Campi

9.6 Struttura quaternaria

IL MAGNETISMO IL CAMPO MAGNETICO E ALTRI FENOMENI GSCATULLO

ESERCITAZIONI di ECONOMIA POLITICA ISTITUZIONI (A-K)

Il modello del Relay Variabile è implementato attraverso Simulink di Matlab. Esso è composto da 3 Blocchi: Relay, Controllo Relay, Frequency Meter.

Transcript:

tabelle dnamche Tabelle dnamche Spesso non s conosce a pror quanta memora serve per memorzzare una struttura dat (tabella d dat ~ array, tabella hash, heap, stack, ecc.. Può captare qund d allocare una certa quanttà d memora e po accorgers, durante l esecuzone del programma, che tale memora non è suffcente. In tal caso bsogna allocare una memora maggore, rcopare l contenuto della veccha memora nella nuova e rlascare la veccha memora. E anche opportuno, dopo aver rmosso molt element, rdurre la memora allocando una memora pù pccola n cu memorzzare gl element rmast. Vedremo come sa possble aggungere e toglere un elemento dalla tabella n tempo ammortzzato costante O( benchè tal operazon abbano costo maggore quando comportano espansone o rduzone della memora. Vedremo anche che questo s può fare garantendo che la memora nutlzzata sa sempre nferore ad una frazone costante della memora allocata. Supporremo che una tabella T abba seguent attrbut: a un puntatore pt[t] alla memora rservata per memorzzare gl element. b due camp nter [T] e sze[t] che contengono rspettvamente l ero d element present nella tabella e la dmensone della tabella. Le operazon che voglamo realzzare sono. Table(T: costrusce una tabella vuota T.. Insert(T, x: nsersce l oggetto x nella tabella T. 3. Delete(T, x: rmuove l oggetto x dalla tabella T. 3 Non c cureremo d come gl element sano organzzat nella memora allocata né d altr dettagl mplementatv ma c lmteremo ad assumere che sano defnte le tre operazon: Push(pt, x memorzza l elemento x nella memora Pop(pt, x rmuove l elemento x dalla memora Copy(pt, pt, n rcopa nella memora n element memorzzat nella memora Per allocare e rlascare memora utlzzeremo le due operazon: Allocate(n che rserva memora per n element e resttusce un puntatore a tale memora. Free(pt, n che rlasca la memora per n element. 5 6

Espansone Consderamo dapprma l caso n cu vengono esegute soltanto nserzon d nuov element e nessuna rmozone. Defnamo come fattore d carco della tabella l rapporto α = / sze. Quando α =la tabella è pena ed occorre espanderla allocando nuova memora. Una eurstca comune è raddoppare la memora, l che garantsce un fattore d carco α > /. La defnzone della funzone Table(T che nzalzza una tabella vuota è: Table(T sze[t] 0 [T] 0 pt[t] nl Essa rchede un tempo costante. Espansone 7 La defnzone della funzone Insert(x è: Insert(T, x f sze[t] = 0 then pt[t] Allocate( sze[t] f [T] = sze[t] then pt Allocate( * sze[t] Copy(pt, pt[t], [T] Free(pt[T], sze[t] pt[t] pt sze[t] * sze[t] Push(pt[T], x [T] [T] + 9 Per l anals della complesstà d Insert possamo assumere che le operazon Allocate, Free e Push rchedano tempo costante e che Copy rcheda tempo proporzonale al ero d element copat. Consderamo l costo d una sequenza d n operazon Insert esegute a partre da una tabella vuota. Il costo della -esma Insert è se non v è espansone ed è se v è espansone ( -per la Copy degl -element precedent pù per le altre operazon. 0 Sccome sze[t] è sempre una potenza d e l espansone s ha quando [T] = -èuguale a sze[t] l costo della -esma Insert è: se è una potenza d c = altrment e l costo totale della sequenza d n Insertè: C( n = n = c log ( n j log ( n + = n + = n + < 3n j= 0 Insert ha qund costo ammortzzato O(3n/n = O(. Il metodo degl accantonament mostra perchè l costo ammortzzato debba essere 3.. una untà d costo vene spesa subto per l nsermento dell elemento stesso,. una vene attrbuta come credto all elemento stesso per pagare un suo successvo rcopamento e 3. la terza vene attrbuta come credto ad un (eventuale altro elemento rcopato prma e rmasto prvo d credto. Al momento dell espansone ogn elemento ha una untà d costo per pagars l rcopamento.

Possamo usare l metodo del potenzale sceglendo una funzone potenzale Φ che vale 0 (all nzo e subto dopo un rcopamento e che cresce tra una espansone e la successva, raggungendo la dmensone della tabella quando questa è pena. Una tale funzone è: Φ = sze 3 6 sze Φ = -sze Subto dopo l rcopamento: Φ = sze sze = 0 Quando la tabella è pena: Φ = sze sze = sze 6 3 3 Il costo ammortzzato d un nsermento senza espansone è: = c + Φ Φ ( sze ( sze ( + sze + sze con espansone c (tabella vuota e per > : ˆ = + ( sze ( + ( + sze + 5 Espansone e contrazone Delete(x s realzza con una Pop(pt, x che rmuove l elemento x dalla tabella. Ad evtare uno spreco eccessvo d memora è opportuno contrarre la tabella quando l fattore d carco α = / sze dventa troppo pccolo. Questo s fa allocando una memora pù pccola, rcopando element present nella tabella, e rlascando la veccha memora. Espansone e contrazone 6 La stratega ovva è dmezzare la memora quando l fattore d carco α dventa /. Questo c asscura un fattore d carco α > / anche n presenza d operazon Delete. Purtroppo, con questa stratega l costo ammortzzato delle operazon non è pù costante. Consderamo una successone d n = k (k>3 operazon delle qual le prme k- sono Insert mentre le altre k- sono una rpetzone d k-3 grupp d quattro operazon: una Insert seguta da due Delete segute da una Insert. L esecuzone d ogn gruppo comporta una espansone da sze = k- a k d costo k- ed una contrazone da sze = k a k- anch essa con costo k-. 7 3

Il costo della sequenza d k-3 grupp è qund par a k-3 (+ k- + k- = O( k = O(n. Qund l costo ammortzzato d una operazone è O(n / n = O(n. Il problema è che dopo l espansone (che porta α ad / e consuma tutt credt non s eseguono rmozon suffcent ad accumulare credt per la successva contrazone. Occorre qund aspettare che sa stata rmossa almeno una metà degl element, ossa che α dvent /. La defnzone della funzone Delete(x è: Delete(T, x f [T] sze[t] / then pt Allocate(sze[T] / Copy(pt, pt[t], [T] Free(pt[T], sze[t] pt[t] pt sze[t] sze[t] / Pop(pt[T], x [T] [T] - 9 0 Usamo l metodo del potenzale sceglendo una funzone potenzale Φ che vale 0 sa all nzo che subto dopo una espansone o contrazone e che cresce fno a raggungere l ero d element present nella tabella quando l fattore d carco α aumenta fno ad o dmnusce fno ad /. Una funzone d questo tpo è Φ = sze sze / se α / se α / 3 6 sze Φ 6 3 Se α / l costo ammortzzato d un nsermento senza espansone è: ( sze ( ( + sze sze con espansone c (tabella vuota e per > : ˆ = = c + Φ Φ + ( sze ( + ( + + sze sze + 3 Se α </non v è scuramente espansone e l costo ammortzzato d un nsermento è: = c + Φ Φ ( sze / ( sze / sze / ( + sze / + = 0

Se α / l costo ammortzzato d una rmozone senza contrazone è: = c + Φ Φ ( sze / ( sze / sze / ( sze / + = mentre con contrazone è: = + ( sze / ( sze + ( / + 5 Se α > / non v è scuramente contrazone e l costo ammortzzato d una rmozone è: = c + Φ Φ ( sze ( sze ( sze + sze = 6 Eserczo 6 Eserczo 6. Assumere che la contrazone della tabella dnamca venga effettuata quando α = /3 nvece che quando α = / e che nvece d rdurre la sua dmensone ad / sze essa venga rdotta a /3 sze. Calcolare l costo ammortzzato delle operazon usando la funzone potenzale: Φ = - sze 7 5