Algoritmi e strutture dati

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Algoritmi e strutture dati"

Transcript

1 Algoritmi e Strutture Dati Code con priorità Tipo di dato CodaPriorità (1/2) 2

2 Tipo di dato CodaPriorità (2/2) 3 Tre implementazioni d-heap: generalizzazione degli heap binari visti per l ordinamento heap binomiali heap di Fibonacci 4

3 d-heap 5 Definizione Un d-heap è un albero radicato d-ario con le seguenti proprietà: 1. Struttura: è completo almeno fino al penultimo livello 2. Contenuto informativo: ogni nodo v contiene un elemento elem(v) ed una chiave chiave(v) presa da un dominio totalmente ordinato 3. Ordinamento a heap: per ogni nodo v (diverso dalla radice) chiave(v) chiave(parent(v)) 6

4 Esempio Heap d-ario con 18 nodi e d = 3 7 Proprietà 1. Un d-heap con n nodi ha altezza O(log d n) 2. La radice contiene l elemento con chiave minima (per via della proprietà di ordinamento a heap) 3. Può essere rappresentato implicitamente tramite vettore posizionale grazie alla proprietà di struttura 8

5 Procedure ausiliarie Utili per ripristinare la proprietà di ordinamento a heap su un nodo v che non la soddisfi T(n) = O(log d n) T(n) = O(d log d n) 9 findmin T(n) = O(1) 10

6 insert(elem e, chiave k) T(n) = O(log d n) ( muovialto ) 11 delete(elem e) e deletemin T(n) = O(d log d n) ( muovibasso ) Può essere usata anche per implementare cancellazione del minimo 12

7 decreasekey(elem e, chiave d) T(n) = O(log d n) ( muovialto ) 13 increasekey(elem e, chiave d) T(n) = O(d log d n) ( muovibasso ) 14

8 Heap binomiali 15 Alberi binomiali Albero binomiale B h (definito ricorsivamente) : 1. B 0 consiste di un unico nodo 2. Per i 0, B i+1 ottenuto fondendo due alberi binomiali B i con radice di uno figlia della radice dell altro 16

9 Proprietà strutturali 17 Definizione di heap binomiale Un heap binomiale è una foresta di alberi binomiali con le seguenti proprietà: 1. Struttura: ogni albero B i nella foresta è un albero binomiale 2. Unicità: per ogni i, esiste al più un B i nella foresta 3. Contenuto informativo: ogni nodo v contiene un elemento elem(v) ed una chiave chiave(v) presa da un dominio totalmente ordinato 4. Ordinamento a heap: per ogni nodo v (diverso da una delle radici) chiave(v) chiave(parent(v)) 18

10 Proprietà In un heap binomiale con n nodi, vi sono al più log 2 n alberi binomiali, ciascuno con grado ed altezza O(log n) 19 Procedura ausiliaria Utile per ripristinare la proprietà di unicità in un heap binomiale T(n) è proporzionale al numero di alberi binomiali in input 20

11 Realizzazione (1/3) 21 Realizzazione (2/3) 22

12 Realizzazione (3/3) Tutte le operazioni richiedono tempo T(n) = O(log n) Durante l esecuzione della procedura ristruttura esistono infatti al più tre B i, per ogni i 0 23 Analisi Ammortizzata 24

13 Metodologie di analisi di algoritmi Finora abbiamo visto tre tipi di analisi: Analisi nel caso peggiore Analisi nel caso medio Analisi nel caso atteso (algoritmi randomizzati) Ne vedremo un altro: Analisi ammortizzata 25 Analisi ammortizzata Strutture dati con garanzia assoluta sui loro tempi di esecuzione: analisi di caso peggiore per operazione (esempio: analisi di heap in heapsort) Analisi ammortizzata: non ci interessa tanto caratterizzare tempo richiesto nel caso peggiore da un operazione sulla struttura dati quanto caratterizzare tempo totale richiesto dalle operazioni sulla struttura dati ovvero tempo medio di un operazione, dove la media è sulla sequenza di operazioni 26

14 Analisi ammortizzata Supponiamo di avere una sequenza di σ operazioni su una particolare struttura dati La sequenza richiede tempo totale O(σ t) per essere eseguita Diremo che il tempo ammortizzato per ogni operazione della sequenza è O(t) Media sulla sequenza: O(σ t) / σ = O(t) Nota: una singola operazione potrebbe richiedere più di O(t) nel caso peggiore! 27 Analisi ammortizzata Sequenza di σ operazioni richiede tempo O(σ t) Tempo ammortizzato: O(σ t) / σ = O(t) OK per molte applicazioni Abbiamo bisogno di utilizzare strutture dati su sequenze di operazioni Analizzare prestazioni su sequenze di prestazioni 28

15 Esempio 1 Pila con le seguenti due operazioni push(x): push elemento x sulla pila multipop(k): esegui k pop sulla pila (se la pila ha almeno k elementi) Analisi nel caso peggiore: push(x): O(1) multipop(k): O( min{ k, P } ) = O(n) dove P è la dimensione della pila 29 Esempio 1 Analisi nel caso peggiore: push(x): O(1) multipop(k): O( min { k, P } ) = O(n) dove P è la dimensione della pila Quanto tempo richiederà una sequenza di σ operazioni? O(σ n)? No! 30

16 Analisi ammortizzata dell Esempio 1 Intuizione: Prima di togliere un elemento x con una multipop dobbiamo averlo inserito con una push(x) Ogni sequenza di σ push e multipop richiede in totale tempo O(σ ) Tempo ammortizzato per operazione: O(σ ) / σ = Ο(1) Vedremo un analisi più formale di questo 31 Metodologie di analisi ammortizzata Tre tipologie di analisi diverse: Metodo cumulativo: Sequenza di σ operazioni richiede tempo O(σ t) Tempo ammortizzato: O(σ t) / σ = O(t) Metodo del banchiere: Per eseguire un passo dobbiamo pagare 1 EUR Allocare EUR in modo da pagare per tutti i passi Metodo del potenziale: Analogia con analisi potenziale (Fisica) 32

17 Metodo del Banchiere per Esempio 1 Quando esegui push(x) sborsa 2 EUR: 1 EUR per pagare lavoro richiesto da push(x) 1 EUR conservato nell elemento x Quando esegui multipop(k) sborsa 0 EUR: lavoro richiesto da multipop(k) pagato dagli EUR conservati negli elementi! 1. Per ogni operazione sborsi al più O(1) EUR 2. Tutti gli EUR sborsati sufficienti a pagare per lavoro richiesto dalle operazioni 33 Metodo del Potenziale Definisci potenziale Φ per struttura dati D Φ(D) misura potenzialità di D ad eseguire lavoro (configurazione attuale) Durante operazione i-esima, struttura dati passa da configurazione D i a configurazione D i+1 Passa da potenziale Φ(D i ) a potenziale Φ(D i+1 ) Tenere in conto variazione di potenziale Δ Φ = Φ(D i+1 ) - Φ(D i ) Operazione può essere molto costosa ma mette struttura dati in grado di eseguire più efficientemente operazioni future (costo operazione compensato da Δ Φ ) 34

18 Metodo del Potenziale Tipicamente potenziale Φ soddisfa le: Φ(D 0 ) = 0 e Φ(D i ) 0 per ogni i Definiamo tempo ammortizzato a i dell operazione i- esima: a i = t i + Φ(D i+1 ) - Φ(D i ) dove t i è il tempo (attuale) operazione i-esima Sommando su sequenza di operazioni Σ i a i = Σ i t i + Σ i ( Φ(D i+1 ) - Φ(D i ) ) Σ i a i = Σ i t i + ( Φ(D n ) - Φ(D 0 ) ) Σ i a i Σ i t i 35 Metodo del Potenziale per Esempio 1 Definiamo potenziale Φ della pila P: Nota che: Φ(P) = P Φ(P 0 ) = 0 e Φ(P i ) 0 per ogni i Tempo ammortizzato a i di operazione i-esima: a i = t i + Φ(D i+1 ) - Φ(D i ) Costo ammortizzato di push(x) : a i = t i + Φ(D i+1 ) - Φ(D i ) = = 2 Costo ammortizzato di multipop(k) : a i = t i + Φ(D i+1 ) - Φ(D i ) = k + ( -k) = 0 36

19 Heap di Fibonacci 37 Heap di Fibonacci Heap binomiale rilassato: si ottiene da un heap binomiale rilassando la proprietà di unicità dei B i ed utilizzando un atteggimento più pigro durante l operazione insert (perché ristrutturare subito la foresta quando potremmo farlo dopo?) Heap di Fibonacci: si ottiene da un heap binomiale rilassato rilassando la proprietà di struttura dei B i che non sono più necessariamente alberi binomiali Analisi sofisticata: i tempi di esecuzione sono ammortizzati su sequenze di operazioni 38

20 Conclusioni: tabella riassuntiva L analisi di DHeap e HeapBinomiale è nel caso peggiore, mentre quella per HeapBinomialeRilassato e HeapFibonacci è ammortizzata 39

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Capitolo 8 Code con priorità: Heap binomiali Riepilogo Array non ord. Array ordinato Lista non ordinata Lista ordinata Find Min Insert Delete DelMin Incr. Key Decr. Key merge

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Soluzione esercizi di approfondimento Stefano Leucci stefano.leucci@univaq.it Una terza variante dell IS InsertionSort3 (A) 1. for k=1 to n-1 do 2. x = A[k+1] 3. j = ricerca_binaria(a[1,k],x)

Dettagli

Code con priorità. Moreno Marzolla Dip. di Scienze dell'informazione Università di Bologna.

Code con priorità. Moreno Marzolla Dip. di Scienze dell'informazione Università di Bologna. Code con priorità Moreno Marzolla Dip. di Scienze dell'informazione Università di Bologna marzolla@cs.unibo.it http://www.moreno.marzolla.name/ Copyright 2009 2012 Moreno Marzolla, Università di Bologna

Dettagli

Esercizi Capitolo 6 - Alberi binari di ricerca

Esercizi Capitolo 6 - Alberi binari di ricerca Esercizi Capitolo 6 - Alberi binari di ricerca Alberto Montresor 23 settembre 200 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile

Dettagli

Complessità Computazionale

Complessità Computazionale Complessità Computazionale Analisi Algoritmi e pseudocodice Cosa significa analizzare un algoritmo Modello di calcolo Analisi del caso peggiore e del caso medio Esempio di algoritmo in pseudocodice INSERTION

Dettagli

Fasi di creazione di un programma

Fasi di creazione di un programma Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma

Dettagli

Esercizi per il corso di Algoritmi e Strutture Dati

Esercizi per il corso di Algoritmi e Strutture Dati 1 Esercizi per il corso di Algoritmi e Strutture Dati Esercizi sulla Tecnica Divide et Impera N.B. Tutti gli algoritmi vanno scritti in pseudocodice (non in Java, né in C++, etc. ). Di tutti gli algoritmi

Dettagli

Algoritmi e strutture dati. Codici di Huffman

Algoritmi e strutture dati. Codici di Huffman Algoritmi e strutture dati Codici di Huffman Memorizzazione dei dati Quando un file viene memorizzato, esso va memorizzato in qualche formato binario Modo più semplice: memorizzare il codice ASCII per

Dettagli

Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali

Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali 1 Modelli imperativi: le RAM (Random Access Machine) I modelli di calcolo imperativi sono direttamente collegati al modello Von Neumann,

Dettagli

16.3.1 Alberi binari di ricerca

16.3.1 Alberi binari di ricerca 442 CAPITOLO 16. STRUTTURE DI DATI DINAMICHE root 7 5 11 2 8 13 10 Figura 16.11 Esempio di albero binario: ogni nodo contiene il dato da immagazzinare e tre puntatori che definiscono le sue relazioni di

Dettagli

Note su quicksort per ASD 2010-11 (DRAFT)

Note su quicksort per ASD 2010-11 (DRAFT) Note su quicksort per ASD 010-11 (DRAFT) Nicola Rebagliati 7 dicembre 010 1 Quicksort L algoritmo di quicksort è uno degli algoritmi più veloci in pratica per il riordinamento basato su confronti. L idea

Dettagli

Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo

Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo L. De Giovanni G. Zambelli 1 Problema del flusso a costo minimo Il problema del flusso a costo minimo é definito

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo

Dettagli

Corso di Algoritmi e Strutture Dati Informatica per il Management Prova Scritta, 25/6/2015

Corso di Algoritmi e Strutture Dati Informatica per il Management Prova Scritta, 25/6/2015 Corso di Algoritmi e Strutture Dati Informatica per il Management Prova Scritta, 25/6/2015 Chi deve recuperare il progetto del modulo 1 ha 1 ora e 30 minuti per svolgere gli esercizi 1, 2, 3 Chi deve recuperare

Dettagli

B-Tree. Struttura dati usata in applicazioni che necessitano di gestire insiemi di chiavi ordinate Una variante (B+-Tree) è diffusa in:

B-Tree. Struttura dati usata in applicazioni che necessitano di gestire insiemi di chiavi ordinate Una variante (B+-Tree) è diffusa in: B-Tree Prof. Rudolf Bayer Struttura dati usata in applicazioni che necessitano di gestire insiemi di chiavi ordinate Una variante (B+-Tree) è diffusa in: Filesystem: btrfs, NTFS, ReiserFS, NSS, XFS, JFS

Dettagli

1. PRIME PROPRIETÀ 2

1. PRIME PROPRIETÀ 2 RELAZIONI 1. Prime proprietà Il significato comune del concetto di relazione è facilmente intuibile: due elementi sono in relazione se c è un legame tra loro descritto da una certa proprietà; ad esempio,

Dettagli

Alberi auto-aggiustanti

Alberi auto-aggiustanti Alberi auto-aggiustanti Dispensa didattica per il corso di Algoritmi e Strutture Dati a.a. 2007/2008 ver. 1.3 Ing. Claudio Mazzariello, Prof. Carlo Sansone 27 Maggio 2008 A differenza di altre possibili

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

Esercizi su. Funzioni

Esercizi su. Funzioni Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità

Dettagli

CALCOLO COMBINATORIO

CALCOLO COMBINATORIO CALCOLO COMBINATORIO 1 Modi di formare gruppi di k oggetti presi da n dati 11 disposizioni semplici, permutazioni Dati n oggetti distinti a 1,, a n si chiamano disposizioni semplici di questi oggetti,

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione

Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione Esercizi II parte Esercizio 1 Discutere la correttezza di ciascuna delle seguenti affermazioni. Dimostrare formalmente la validità

Dettagli

Problema del trasporto

Problema del trasporto p. 1/1 Problema del trasporto Supponiamo di avere m depositi in cui è immagazzinato un prodotto e n negozi che richiedono tale prodotto. Nel deposito i è immagazzinata la quantità a i di prodotto. Nel

Dettagli

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI Indice 1 Le frazioni algebriche 1.1 Il minimo comune multiplo e il Massimo Comun Divisore fra polinomi........ 1. Le frazioni algebriche....................................

Dettagli

Plate Locator Riconoscimento Automatico di Targhe

Plate Locator Riconoscimento Automatico di Targhe Progetto per Laboratorio di Informatica 3 - Rimotti Daniele, Santinelli Gabriele Plate Locator Riconoscimento Automatico di Targhe Il programma plate_locator.m prende come input: l immagine della targa

Dettagli

Algoritmi e strutture dati

Algoritmi e strutture dati Algoritmi e Strutture Dati Alberi di ricerca Dizionari Gli alberi di ricerca sono usati per realizzare in modo efficiente il tipo di dato dizionario 2 Alberi binari di ricerca (BST = binary search tree)

Dettagli

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati Informatica 3 Informatica 3 LEZIONE 10: Introduzione agli algoritmi e alle strutture dati Modulo 1: Perchè studiare algoritmi e strutture dati Modulo 2: Definizioni di base Lezione 10 - Modulo 1 Perchè

Dettagli

Il sistema monetario

Il sistema monetario Il sistema monetario Premessa: in un sistema economico senza moneta il commercio richiede la doppia coincidenza dei desideri. L esistenza del denaro rende più facili gli scambi. Moneta: insieme di tutti

Dettagli

Introduzione alla teoria dei database relazionali. Come progettare un database

Introduzione alla teoria dei database relazionali. Come progettare un database Introduzione alla teoria dei database relazionali Come progettare un database La struttura delle relazioni Dopo la prima fase di individuazione concettuale delle entità e degli attributi è necessario passare

Dettagli

Algoritmi e Strutture Dati II: Parte B Anno Accademico 2004-2005. Lezione 11

Algoritmi e Strutture Dati II: Parte B Anno Accademico 2004-2005. Lezione 11 Algoritmi e Strutture Dati II: Parte B Anno Accademico 2004-2005 Docente: Ugo Vaccaro Lezione 11 In questa lezione vedremo alcune applicazioni della tecnica greedy al progetto di algoritmi on-line. Vediamo

Dettagli

Come ragiona il computer. Problemi e algoritmi

Come ragiona il computer. Problemi e algoritmi Come ragiona il computer Problemi e algoritmi Il problema Abbiamo un problema quando ci poniamo un obiettivo da raggiungere e per raggiungerlo dobbiamo mettere a punto una strategia Problema Strategia

Dettagli

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File

Dettagli

Scheduling. Sistemi Operativi e Distribuiti A.A. 2004-2005 Bellettini - Maggiorini. Concetti di base

Scheduling. Sistemi Operativi e Distribuiti A.A. 2004-2005 Bellettini - Maggiorini. Concetti di base Scheduling Sistemi Operativi e Distribuiti A.A. 2-25 Bellettini - Maggiorini Concetti di base Il massimo utilizzo della CPU si ottiene mediante la multiprogrammazione Ogni processo si alterna su due fasi

Dettagli

Operazioni binarie fondamentali

Operazioni binarie fondamentali Operazioni binarie fondamentali Operazioni fondamentali: operazioni elementari sui bit. Sono definite le operazioni aritmetiche più le operazioni logiche (AND, OR, NOT). Le operazioni possono essere descritte

Dettagli

Alberi di ricerca. Dizionari. Definizione. Alberi binari di ricerca (BST = binary search tree) Algoritmi e Strutture Dati

Alberi di ricerca. Dizionari. Definizione. Alberi binari di ricerca (BST = binary search tree) Algoritmi e Strutture Dati Algoritmi e Strutture Dati Dizionari Gli alberi di ricerca sono usati per realizzare in modo efficiente il tipo di dato dizionario Alberi di ricerca Basato su materiale di C. Demetrescu, I. Finocchi, G.F.

Dettagli

Algoritmi di clustering

Algoritmi di clustering Algoritmi di clustering Dato un insieme di dati sperimentali, vogliamo dividerli in clusters in modo che: I dati all interno di ciascun cluster siano simili tra loro Ciascun dato appartenga a uno e un

Dettagli

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata Lezione n.6 Unità di controllo microprogrammata 1 Sommario Unità di controllo microprogrammata Ottimizzazione, per ottimizzare lo spazio di memoria occupato Il moltiplicatore binario Esempio di architettura

Dettagli

Ricorsione. Rosario Culmone. - p. 1/13

Ricorsione. Rosario Culmone. - p. 1/13 Ricorsione Rosario Culmone - p. 1/13 Induzione e Ricorsione Spesso utilizzeremo le definizioni induttive. Sono forme di definizione compatte che descrivono un numero infinito di elementi. I contesti di

Dettagli

Comparatori. Comparatori di uguaglianza

Comparatori. Comparatori di uguaglianza Comparatori Scopo di un circuito comparatore é il confronto tra due codifiche binarie. Il confronto può essere effettuato per verificare l'uguaglianza oppure una relazione d'ordine del tipo "maggiore",

Dettagli

risulta (x) = 1 se x < 0.

risulta (x) = 1 se x < 0. Questo file si pone come obiettivo quello di mostrarvi come lo studio di una funzione reale di una variabile reale, nella cui espressione compare un qualche valore assoluto, possa essere svolto senza necessariamente

Dettagli

Programmazione dinamica

Programmazione dinamica Capitolo 6 Programmazione dinamica 6.4 Il problema della distanza di edit tra due stringhe x e y chiede di calcolare il minimo numero di operazioni su singoli caratteri (inserimento, cancellazione e sostituzione)

Dettagli

Due algoritmi di ordinamento. basati sulla tecnica Divide et Impera: Mergesort e Quicksort

Due algoritmi di ordinamento. basati sulla tecnica Divide et Impera: Mergesort e Quicksort Due algoritmi di ordinamento basati sulla tecnica Divide et Impera: Mergesort e Quicksort (13 ottobre 2009, 2 novembre 2010) Ordinamento INPUT: un insieme di n oggetti a 1, a 2,, a n presi da un dominio

Dettagli

Progettazione Fisica FILE

Progettazione Fisica FILE Progettazione Fisica Organizzazione dei files Organizzazione indici FILE Insieme di record lunghezza fissa (R) lunghezza variabile Record Header BH RH record1 RH record2 RH record2 RH record3 Block Header

Dettagli

Mac Application Manager 1.3 (SOLO PER TIGER)

Mac Application Manager 1.3 (SOLO PER TIGER) Mac Application Manager 1.3 (SOLO PER TIGER) MacApplicationManager ha lo scopo di raccogliere in maniera centralizzata le informazioni piu salienti dei nostri Mac in rete e di associare a ciascun Mac i

Dettagli

Codifica dei numeri negativi

Codifica dei numeri negativi E. Calabrese: Fondamenti di Informatica Rappresentazione numerica-1 Rappresentazione in complemento a 2 Codifica dei numeri negativi Per rappresentare numeri interi negativi si usa la cosiddetta rappresentazione

Dettagli

Analisi e diagramma di Pareto

Analisi e diagramma di Pareto Analisi e diagramma di Pareto L'analisi di Pareto è una metodologia statistica utilizzata per individuare i problemi più rilevanti nella situazione in esame e quindi le priorità di intervento. L'obiettivo

Dettagli

Obiettivi dell Analisi Numerica. Avviso. Risoluzione numerica di un modello. Analisi Numerica e Calcolo Scientifico

Obiettivi dell Analisi Numerica. Avviso. Risoluzione numerica di un modello. Analisi Numerica e Calcolo Scientifico M. Annunziato, DIPMAT Università di Salerno - Queste note non sono esaustive ai fini del corso p. 3/43 M. Annunziato, DIPMAT Università di Salerno - Queste note non sono esaustive ai fini del corso p.

Dettagli

Sistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P 1 2 0 0 P 1 1 2 2 3 3 2 P 2 3 0 2 P 2 6 0 0 P 3 2 1 1 P 3 0 1 1 < P 1, >

Sistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P 1 2 0 0 P 1 1 2 2 3 3 2 P 2 3 0 2 P 2 6 0 0 P 3 2 1 1 P 3 0 1 1 < P 1, > Algoritmo del banchiere Permette di gestire istanze multiple di una risorsa (a differenza dell algoritmo con grafo di allocazione risorse). Ciascun processo deve dichiarare a priori il massimo impiego

Dettagli

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling SCHEDULING DELLA CPU 5.1 Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling Real-Time

Dettagli

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1 SCHEDULING DELLA CPU 5.1 Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling Real-Time

Dettagli

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta

Dettagli

HORIZON SQL PREVENTIVO

HORIZON SQL PREVENTIVO 1/7 HORIZON SQL PREVENTIVO Preventivo... 1 Modalità di composizione del testo... 4 Dettaglia ogni singola prestazione... 4 Dettaglia ogni singola prestazione raggruppando gli allegati... 4 Raggruppa per

Dettagli

Una percentuale di una certa importanza nel mondo economico è il tasso di interesse. Il tasso di

Una percentuale di una certa importanza nel mondo economico è il tasso di interesse. Il tasso di Capitalizzazione e attualizzazione finanziaria Una percentuale di una certa importanza nel mondo economico è il tasso di interesse. Il tasso di interesse rappresenta quella quota di una certa somma presa

Dettagli

Blanchard, Macroeconomia Una prospettiva europea, Il Mulino 2011 Capitolo IV. I mercati finanziari. Capitolo IV. I mercati finanziari

Blanchard, Macroeconomia Una prospettiva europea, Il Mulino 2011 Capitolo IV. I mercati finanziari. Capitolo IV. I mercati finanziari Capitolo IV. I mercati finanziari 1. La domanda di moneta La moneta può essere usata per transazioni, ma non paga interessi. In realtà ci sono due tipi di moneta: il circolante, la moneta metallica e cartacea,

Dettagli

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1 DIAGRAMMI A BLOCCHI TEORIA ED ESERCIZI 1 1 Il linguaggio dei diagrammi a blocchi è un possibile formalismo per la descrizione di algoritmi Il diagramma a blocchi, o flowchart, è una rappresentazione grafica

Dettagli

Università degli Studi di Salerno

Università degli Studi di Salerno Università degli Studi di Salerno Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Tesi di Laurea Algoritmi basati su formule di quadratura interpolatorie per GPU ABSTRACT

Dettagli

Sia data la rete di fig. 1 costituita da tre resistori,,, e da due generatori indipendenti ideali di corrente ed. Fig. 1

Sia data la rete di fig. 1 costituita da tre resistori,,, e da due generatori indipendenti ideali di corrente ed. Fig. 1 Analisi delle reti 1. Analisi nodale (metodo dei potenziali dei nodi) 1.1 Analisi nodale in assenza di generatori di tensione L'analisi nodale, detta altresì metodo dei potenziali ai nodi, è un procedimento

Dettagli

Processi e Thread. Scheduling (Schedulazione)

Processi e Thread. Scheduling (Schedulazione) Processi e Thread Scheduling (Schedulazione) 1 Scheduling Introduzione al problema dello Scheduling (1) Lo scheduler si occupa di decidere quale fra i processi pronti può essere mandato in esecuzione L

Dettagli

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza Il problema di flusso di costo minimo (MCF) Dati : grafo orientato G = ( N, A ) i N, deficit del nodo i : b i (i, j) A u ij, capacità superiore (max quantità di flusso che può transitare) c ij, costo di

Dettagli

Economia e politica di gestione del territorio. [1:cap.4]

Economia e politica di gestione del territorio. [1:cap.4] Economia e politica di gestione del territorio Corso di Laurea in Scienze e Tecnologie Agrarie (L.M.) A.A. 2013-2014 Lezione n.5: Efficienza ed Equità [1:cap.4] Docente: Antonio Lopolito tel. 0881-589.417

Dettagli

Corso di Programmazione Concorrente

Corso di Programmazione Concorrente Corso di Programmazione Concorrente Stallo Valter Crescenzi crescenz@dia.uniroma3.it http://www.dia.uniroma3.it/~crescenz Assunzione di Progresso Finito Tutti i processori virtuali hanno una velocità finita

Dettagli

I tipi di dato astratti

I tipi di dato astratti I tipi di dato astratti.0 I tipi di dato astratti c Diego Calvanese Fondamenti di Informatica Corso di Laurea in Ingegneria Elettronica A.A. 001/00.0 0 I tipi di dato astratti La nozione di tipo di dato

Dettagli

Corso di Calcolo Numerico

Corso di Calcolo Numerico Corso di Calcolo Numerico Dott.ssa M.C. De Bonis Università degli Studi della Basilicata, Potenza Facoltà di Ingegneria Corso di Laurea in Ingegneria Meccanica Sistemi di Numerazione Sistema decimale La

Dettagli

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...

Dettagli

Le Macchine di Turing

Le Macchine di Turing Le Macchine di Turing Come è fatta una MdT? Una MdT è definita da: un nastro una testina uno stato interno un programma uno stato iniziale Il nastro Il nastro è infinito suddiviso in celle In una cella

Dettagli

Calcolatori: Algebra Booleana e Reti Logiche

Calcolatori: Algebra Booleana e Reti Logiche Calcolatori: Algebra Booleana e Reti Logiche 1 Algebra Booleana e Variabili Logiche I fondamenti dell Algebra Booleana (o Algebra di Boole) furono delineati dal matematico George Boole, in un lavoro pubblicato

Dettagli

L orizzonte temporale nei prospetti semplificati dei fondi aperti. Nota di studio. Ufficio Studi

L orizzonte temporale nei prospetti semplificati dei fondi aperti. Nota di studio. Ufficio Studi L orizzonte temporale nei prospetti semplificati dei fondi aperti Nota di studio Ufficio Studi Gennaio 2012 1 1] Premessa Nel corso del 2010 uno degli obiettivi del Gruppo di Lavoro Rischio e Classificazione

Dettagli

SCHEDULATORI DI PROCESSO

SCHEDULATORI DI PROCESSO Indice 5 SCHEDULATORI DI PROCESSO...1 5.1 Schedulatore Round Robin...1 5.2 Schedulatore a priorità...2 5.2.1 Schedulatore a code multiple...3 5.3 Schedulatore Shortest Job First...3 i 5 SCHEDULATORI DI

Dettagli

MODELLISTICA DI IMPIANTI E SISTEMI 2

MODELLISTICA DI IMPIANTI E SISTEMI 2 MODELLISTICA DI IMPIANTI E SISTEMI 2 Indice 1 Dalla traccia al modello 2 1.1 BAS................................................ 4 I Traccia Si consideri il problema della gestione efficiente dei servizi

Dettagli

Brochure Internet. Versione 2010.1 The Keyrules Company s.r.l. Pagina 2 di 8

Brochure Internet. Versione 2010.1 The Keyrules Company s.r.l. Pagina 2 di 8 Ogni organizzazione possiede un sistema di regole che la caratterizzano e che ne assicurano il funzionamento. Le regole sono l insieme coordinato delle norme che stabiliscono come deve o dovrebbe funzionare

Dettagli

4.1 Modelli di calcolo analisi asintotica e ricorrenze

4.1 Modelli di calcolo analisi asintotica e ricorrenze 4 Esercizi Prima Parte 4.1 Modelli di calcolo analisi asintotica e ricorrenze Esercizio 4 1 Rispondere alle seguenti domande: 1. Come misuriamo l efficienza di un algoritmo?. Quali sono gli algoritmi più

Dettagli

Eletec S.n.c Via G. Agnelli, 12/14 25086 Rezzato (BS) www.eletec.com

Eletec S.n.c Via G. Agnelli, 12/14 25086 Rezzato (BS) www.eletec.com Mercati altrimenti impossibili La flessibilità e la convenienza di LOGO! hanno consentito ad Eletec di affrontare con successo mercati altrimenti restii ad accettare soluzioni di automazione avanzate La

Dettagli

4. Operazioni elementari per righe e colonne

4. Operazioni elementari per righe e colonne 4. Operazioni elementari per righe e colonne Sia K un campo, e sia A una matrice m n a elementi in K. Una operazione elementare per righe sulla matrice A è una operazione di uno dei seguenti tre tipi:

Dettagli

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione.

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione. Grafi ed Alberi Pag. /26 Grafi ed Alberi In questo capitolo richiameremo i principali concetti di due ADT che ricorreranno puntualmente nel corso della nostra trattazione: i grafi e gli alberi. Naturale

Dettagli

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti) (Esercizi Tratti da Temi d esame degli ordinamenti precedenti) Esercizio 1 L'agenzia viaggi GV - Grandi Viaggi vi commissiona l'implementazione della funzione AssegnaVolo. Tale funzione riceve due liste

Dettagli

Teoria dei Giochi. Anna Torre

Teoria dei Giochi. Anna Torre Teoria dei Giochi Anna Torre Almo Collegio Borromeo 26 marzo 2015 email: anna.torre@unipv.it sito web del corso:www-dimat.unipv.it/atorre/borromeo2015.html COOPERAZIONE Esempio: strategie correlate e problema

Dettagli

Sequenziamento a minimo costo di commutazione in macchine o celle con costo lineare e posizione home (In generale il metodo di ottimizzazione

Sequenziamento a minimo costo di commutazione in macchine o celle con costo lineare e posizione home (In generale il metodo di ottimizzazione Sequenziamento a minimo costo di commutazione in macchine o celle con costo lineare e posizione home (In generale il metodo di ottimizzazione presentato in questo file trova la seq. a costo minimo per

Dettagli

Introduzione all Information Retrieval

Introduzione all Information Retrieval Introduzione all Information Retrieval Argomenti della lezione Definizione di Information Retrieval. Information Retrieval vs Data Retrieval. Indicizzazione di collezioni e ricerca. Modelli per Information

Dettagli

Il tipo di dato astratto Pila

Il tipo di dato astratto Pila Il tipo di dato astratto Pila Il tipo di dato Pila Una pila è una sequenza di elementi (tutti dello stesso tipo) in cui l inserimento e l eliminazione di elementi avvengono secondo la regola seguente:

Dettagli

Guida all uso di Java Diagrammi ER

Guida all uso di Java Diagrammi ER Guida all uso di Java Diagrammi ER Ver. 1.1 Alessandro Ballini 16/5/2004 Questa guida ha lo scopo di mostrare gli aspetti fondamentali dell utilizzo dell applicazione Java Diagrammi ER. Inizieremo con

Dettagli

Calcolo del Valore Attuale Netto (VAN)

Calcolo del Valore Attuale Netto (VAN) Calcolo del Valore Attuale Netto (VAN) Il calcolo del valore attuale netto (VAN) serve per determinare la redditività di un investimento. Si tratta di utilizzare un procedimento che può consentirci di

Dettagli

Basi di Dati Multimediali. Fabio Strocco

Basi di Dati Multimediali. Fabio Strocco Basi di Dati Multimediali Fabio Strocco September 19, 2011 1 Contents 2 Introduzione Le basi di dati (o database) hanno applicazioni in molti campi, in cui è necessario memorizzare, analizzare e gestire

Dettagli

3 GRAFICI DI FUNZIONI

3 GRAFICI DI FUNZIONI 3 GRAFICI DI FUNZIONI Particolari sottoinsiemi di R che noi studieremo sono i grafici di funzioni. Il grafico di una funzione f (se non è specificato il dominio di definizione) è dato da {(x, y) : x dom

Dettagli

Struttura di un programma Java

Struttura di un programma Java Struttura di un programma Java Un programma in Java è un insieme di dichiarazioni di classi. Una classe non può contenere direttamente delle istruzioni, ma può contenere la dichiarazione di metodi, che

Dettagli

= 0, 098 ms. Da cui si ricava t 2 medio

= 0, 098 ms. Da cui si ricava t 2 medio 1. Una macchina ha uno spazio degli indirizzi a 32 bit e una pagina di 8 KB. La tabella delle pagine è completamente nell hardware, con una parola a 32 bit per voce. Quando parte un processo, la tabella

Dettagli

Come utilizzare il sistema per ricavare e scaricare un elenco iscritti per la propria gara

Come utilizzare il sistema per ricavare e scaricare un elenco iscritti per la propria gara Come utilizzare il sistema per ricavare e scaricare un elenco iscritti per la propria gara Le società organizzatrici attraverso le utilità fornite dal sistema di gestione gare hanno la possibilità di ricavare

Dettagli

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Scopo: Stimare l onere computazionale per risolvere problemi di ottimizzazione e di altra natura

Dettagli

APPUNTI SU PROBLEMI CON CALCOLO PERCENTUALE

APPUNTI SU PROBLEMI CON CALCOLO PERCENTUALE APPUNTI SU PROBLEMI CON CALCOLO PERCENTUALE 1. Proporzionalità diretta e proporzionalità inversa Analizziamo le seguenti formule Peso Lordo = Peso Netto + Tara Ricavo = Utile + Costo Rata = Importo + Interesse

Dettagli

ISC. L indicatore sintetico di costo del conto corrente

ISC. L indicatore sintetico di costo del conto corrente ISC L indicatore sintetico di costo del conto corrente Indice Cos è l ISC, l Indicatore Sintetico di Costo del conto corrente I 7 profili tipo di utilizzo Ma in definitiva, perché controllare l ISC? Dove

Dettagli

Obiettivi dell esercitazione. Requisiti (cont.) Requisiti. Università di Roma La Sapienza A.A. 2008-2009. Facoltà di Ingegneria Sede di Latina

Obiettivi dell esercitazione. Requisiti (cont.) Requisiti. Università di Roma La Sapienza A.A. 2008-2009. Facoltà di Ingegneria Sede di Latina Università di Roma La Sapienza A.A. 2008-2009 Facoltà di Ingegneria Sede di Latina Laurea in Ingegneria Informatica ed Ingegneria dell Informazione Corso di PROGETTAZIONE DEL SOFTWARE Esercitazione sulla

Dettagli

Introduzione ai tipi di dato astratti: applicazione alle liste

Introduzione ai tipi di dato astratti: applicazione alle liste Universitàdegli Studi di L Aquila Facoltàdi Scienze M.F.N. Corso di Laurea in Informatica Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2005/2006 Introduzione ai tipi di dato astratti: applicazione

Dettagli

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Scopo della lezione. Informatica. Informatica - def. 1. Informatica Scopo della lezione Informatica per le lauree triennali LEZIONE 1 - Che cos è l informatica Introdurre i concetti base della materia Definire le differenze tra hardware e software Individuare le applicazioni

Dettagli

Liberare la memoria allocata dinamicamente.

Liberare la memoria allocata dinamicamente. Scrivere un programma per la gestione dei libri e dei prestiti di una biblioteca universitaria. I libri sono caratterizzati dalle seguenti informazioni: titolo, autore, collocazione del libro, numero di

Dettagli

Sistemi Informativi Territoriali. Map Algebra

Sistemi Informativi Territoriali. Map Algebra Paolo Mogorovich Sistemi Informativi Territoriali Appunti dalle lezioni Map Algebra Cod.735 - Vers.E57 1 Definizione di Map Algebra 2 Operatori locali 3 Operatori zonali 4 Operatori focali 5 Operatori

Dettagli

Metodi Stocastici per la Finanza

Metodi Stocastici per la Finanza Metodi Stocastici per la Finanza Tiziano Vargiolu vargiolu@math.unipd.it 1 1 Università degli Studi di Padova Anno Accademico 2011-2012 Lezione 6 Indice 1 Il metodo bootstrap 2 Esercitazione 3 Interpolazione

Dettagli

Parte 2. Determinante e matrice inversa

Parte 2. Determinante e matrice inversa Parte. Determinante e matrice inversa A. Savo Appunti del Corso di Geometria 013-14 Indice delle sezioni 1 Determinante di una matrice, 1 Teorema di Cramer (caso particolare), 3 3 Determinante di una matrice

Dettagli

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T Scorrimento-Rotazione-Ricerca Prerequisiti Programmazione elementare Conoscenza ed uso di vettori Introduzione Lo scopo di questa Unità è approfondire il concetto di vettore

Dettagli