Esercizi per il corso di Algoritmi
|
|
|
- Evangelina Martino
- 8 anni fa
- Visualizzazioni
Transcript
1 1 Esercizi per il corso di Algoritmi Esercizi sulla Tecnica Programmazione Dinamica 1. Esercizio: Si consideri la seguente variante del problema dello Zaino 0/1. L input é costituito da n oggetti a 1...,a n di peso w 1,w 2,...,w n, e di valore v 1,v 2,...,v n, rispettivamente. Per ogni possibile v = 1,...,nV, dove V = max{v 1,...,v n }, e possibile indice i = 1,...,n, si intende calcolare la quantitá w(i,v) pari al minimo peso di un sottoinsieme di {a 1,...,a i } di profitto esattamente uguale a v (si puó assumere, per convenzione, che se non esiste un sottoinsieme di {a 1,...,a i } di profitto uguale a v, allora w(i,v) = ). Si determini una equazione di ricorrenza per i valori w(i,v), e si presenti un algoritmo di Programmazione Dinamica per il loro calcolo. 2. Esercizio: Siano dati un intero positivo T ed un insieme di interi positivi A = {a 1,...,a k }. Progettare un algoritmo di Programmazione Dinamica che ritorni il valore True se esiste o meno un sottoinsieme B A tale che T = b Bb, il valore False nel caso contrario. 3. Esercizio: Dati interi i, j, con 0 i j, i numeri Z(i, j) sono definiti dalla equazione di ricorrenza ZZ(i,j) = (i+5)z(i,j 1)+(j i+1)z(i 1,j 1), per j > 0 e i 0,j e dalle condizioni iniziali Z(0,j) = 1, per j 0, Z(i,0) = 1 per i 0, Z(j,j) = 0, per ogni j > 0. Si scriva un algoritmo di Programazione Dinamica che, prendendo in input interi A,B, con 0 A B, restituisca in output il corrispondente numero Z(A,B). Si analizzi la complessitá dell algoritmo proposto. 4. Esercizio: Si consideri la seguente variante del problema dello Zaino 0/1. L input é costituito da oggetti di peso w 1,w 2,...,w n, di valore v 1,v 2,...,v n, e da una capacitá di carico totale W. Si chiede di determinare il massimo valore di una collezione di oggetti, di peso totale al piú W, sotto la condizione che di ciascun oggetto ne possiamo prendere anche piú di una copia (nella variante studiata a lezione di ciascun oggetto si poteva prendere al piú una copia). Il seguente esempio illustra la differenza tra i problemi. Abbiamo 4 oggetti, di peso 6,3,4,2 e valore $30,$14,$16,$9, rispettivamente, e capacitá di carico W = 10. Se possiamo prendere di ciascun oggetto piú di una copia, allora una possibile soluzione potrebbe consistere nel prendere una copia del primo oggetto, e due copie del quarto oggetto (valore totale $48). Se possiamo prendere solo una copia di ogni oggetto, allora la migliore soluzione consiste nel prendere il primo oggetto ed il terzo oggetto (valore totale $46).
2 2 5. Esercizio: Siano dati un intero positivo t ed un insieme di interi positivi A = {a 1,...,a k }. Progettare un algoritmo di Programmazione Dinamica che ritorni il valore True se esistono o meno elementi a i1,...,a il (non necessariamente distinti) in A tali che l j=1 a i j = t, ritorni il valore False, nel caso contrario. 6. Esercizio: Dati interi k,n, con 0 k n, i numeri di Stirling del secondo tipo sono denotati con il simbolo { n k}, definiti dalla equazione di ricorrenza { { } { } n n 1 n 1 = k + k} k k 1 e dalle condizioni iniziali { } 0 = 1, 0 { n = 0 per n > 1, e 0} { n = 1, n. n} Si scriva un algoritmo di Programazione Dinamica che, prendendo in input interi k, n, con 0 k n, restituisca in output il corrispondente numero di Stirling { n k}. Si analizzi la complessitá dell algoritmo. 7. Esercizio: Dati interi k,n, con 0 k n, i numeri di Eulero sono denotati con il simbolo n k, definiti dalla equazione di ricorrenza n n 1 = (k +1) k k +(n k) n 1, n > 0 k 1 e dalle condizioni iniziali n n = 1, n 0, = 0, n > 0. 0 n Si scriva un algoritmo di Programazione Dinamica che, prendendo in input interi k,n, con 0 k n, restituisca in output il corrispondente numero di Eulero n k. Si analizzi la complessitá dell algoritmo. 8. Esercizio: Dati due vettori di interi A[1...n] e B[1...m], si vuole determinare il piú grande intero k per cui esistono indici 1 i 1 <... < i k min{n,m} per cui A[i 1 ] B[i 1 ],...,A[i k ] B[i k ]. Scrivere un algoritmo basato sulla Programmazione Dinamica per il calcolo di un tale k. 9. Esercizio: Scrivere un algoritmo basato sull tecnica della memoization per il calcolo della LCS di due sequenze. 10. Esercizio: Date n matrici M 1,...,M n, da moltiplicare nel prodotto M 1 M 2... M n, derivare l algoritmo di Programmazione Dinamica che calcola il minimo numero totale di moltiplicazioni scalari per effettuare il prodotto M 1 M 2... M n. 11. Esercizio: Descrivere il problema del Cambio delle Monete studiato a lezione, e derivare per esso un algoritmo di Programmazione Dinamica.
3 3 Esercizi sulla Tecnica Greedy 1. Esercizio: Si determini il codice di Huffman per il seguente insieme di caratteri e relative frequenze, basate sui primi 8 numeri di Fibonacci: a:1 b:1 c:2 d:3 e:5 f:8 g:13 h:21 Si descriva la forma che puó avere l albero che rappresenta il codice di Huffman, per un insieme generico di n caratteri, le cui frequenze siano i primi n numeri di Fibonacci. Si giustifichi la risposta. 2. Esercizio: Si intende riparare un tubo di gomma che ha n fori su di esso. Si rappresenti l iesimo ciascun foro con il numero x i, dove x i é la distanza, in centimetri, del foro i-esimo dalla estremitá sinistra del tubo. La riparazione avviene attaccando pezzi di nastro adesivo al tubo, dove ciascun pezzo di nastro adesivo é lungo k centimetri, k parametro dato. Il problema é quello di riparare il tubo (ovvero coprire tutti i buchi) utilizzando il minor numero di pezzi di nastro adesivo. Si consideri il seguente algoritmo greedy per il problema appena enunciato: si ordinino i numeri x i in modo tale che x 1 x 2... x n, indi si attacchi un pezzo di nastro adesivo al tubo, partendo dal buco x 1 fino a x 1 +k. Si iteri sui buchi rimasti scoperti, fin a quando tutti i buchi sono stati coperti. Si provi che tale algoritmo copre tutti i buchi utilizzando minor numero di pezzi di nastro adesivo. 3. Esercizio: Si supponga di dover effettuare un viaggio dalla localitá A alla localitá B con un auto che ha un autonomia di k chilometri. Lungo il percorso, a partire da A sono presenti n distributori di benzina, ciascuno distante dal precedente meno di k chilometri e l ultimo dista meno di k chilometri da B. Sia d i la distanza che separa il distributore i dal distributore i+1, per i = 1,2,...,n 1 e sia d n la distanza da B dell ultimo distributore. Descrivere un algoritmo greedy che seleziona un numero minimo di distributori in cui far tappa durante il viaggio. Giustificare le affermazioni fatte. 4. Esercizio: Si costruisca un codice di Huffman per il seguente insieme di caratteri e relative frequenze a:5 b:5 c:12 d:9 e:8 f:13 g:14 h:14 5. Esercizio: Si codifichi il testo abracaddabbrra! usando il codice di Huffman, da calcolarsi in via preliminare sulle relative frequenze dei caratteri cosí come essi appaiono nel testo.
4 4 6. Esercizio: Si applichi l algoritmo Greedy Activity Selector sul seguente insieme di attivitá: A = {A 1,A 2,...,A 11 }, con A 1 = [3,14], A 2 = [6,8], A 3 = [6,10], A 4 = [13,15], A 5 = [2,5], A 6 = [9,12], A 7 = [4,6], A 8 = [9,13], A 9 = [7,11], A 10 = [4,9], A 11 = [1,7], illustrandone il comportamento ad ogni passo. 7. Esercizio: Si descriva in dettaglio l algoritmo Greedy-Zaino frazionario per il problema dello zaino frazionario, e si provi che esso produce una soluzione ottima.
5 Esercizi su Code a Prioritá 1. Esercizio: Sia dato un Max-Heap rappresentato da un array A[1...n]. Si scriva un procedura (in pseudocodice, per favore)che, intempoo(logn), avendoininputaedunindicei,1 i n, cancelli l elemento A[i] dallo heap. L array in output dovrá ancora essere un Max-Heap. Si illustri la esecuzione dell algoritmo sul seguente heap, con i = 2 (L algoritmo puó usare, al suo interno, chiamata a procedure note viste a lezione, purché se ne spieghi chiaramente l utilizzo e la funzione) Esercizio: Si dia la rappresentazione mediante albero del Min-Heap: A = [1,4,5,9,8,7,6,10,11,15,12,13]. Si ridisegni sia l albero che il vettore corrispondente dopo l esecuzione delle seguenti operazioni: (a) Heap-Extract-Min(A), seguita da (b) Heap-Insert(A, 0) 3. Esercizio: Si assuma che n numeri diversi tra di loro siano memorizzati in un Min-Heap. Si dia un algoritmo che in tempo O(1) trovi il terzo elemento piú piccolo di A. Sotto l ipotesi che i sia costante, si dica come l i-esimo elemento piú grande di A possa essere trovato in tempo O(1). 4. Esercizio: Dato un array di n numeri A[1...n], si presenti un algoritmo che, avendo in input l array A, ritorni True se A rappresenta un Min-Heap, ritorni il piú piccolo indice i su cui la proprietá dello heap é violata, altrimenti. Si valuti la complessitá dell algoritmo proposto. 5. Esercizio: Si consideri la struttura dati Max-Heap e le seguenti affermazioni. Si indichino con un Si le affermazioni che sono vere, e con un No quelle false (qui n denota il numero di nodi dell albero). (a) La costruzione di un Max-Heap con n nodi richiede Ω(nlogn) nel caso peggiore; (b) (c) É possibile determinare l elemento di valore massimo in un Max-Heap in tempo Θ(1); É possibile determinare l elemento di valore minimo in un Max-Heap in tempo O(logn); (d) L altezza di un Max-Heap é Θ(n) nel caso peggiore; (e) L altezza di un Max-Heap é Θ(log n) nel caso peggiore; 5
6 6 (f) É possibile determinare il successore di un elemento in un Max-Heap in tempo Θ(logn) nel caso peggiore; (g) L inserimento di un nuovo elemento in un Max-Heap richiede tempo Ω(log n) nel caso peggiore; (h) La cancellazione di un elemento in un Max-Heap richiede tempo Θ(log n) nel caso peggiore. (i) Dato un Max-Heap, é possibile ordinare gli elementi che lo costituiscono in accordo ai loro valori chiavi in tempo O(n). (j) La ricerca di un elemento in un Max-Heap richiede tempo O(h), dove h é l altezza del Max-Heap. 6. Esercizio: Descrivere, con sufficiente precisione, una struttura dati che permetta la cancellazione e l inserimento di un elemento in tempo O(logn), e la restituzione sia del minimo che del massimo, e sia del secondo minimo e del secondo massimo, in tempo O(1). La struttura dati deve usare O(n) locazioni di memoria per memorizzare n numeri. 7. Esercizio: Scopo di quest esercizio é di studiare Heap ternari. Si consideri quindi un albero ternario completo di altezza h definito con le seguenti proprietá: (1) per 0 i < h ci sono 3 i nodi al livello i; (2) tutti i nodi interni al livello h 1 sono alla sinistra delle eventuali foglie che stanno a quel livello e hanno tutti 3 figli tranne, eventualmente quello più a destra. (Dati due nodi v e u sullo stesso livello, diciamo che v è alla sinistra di u se lo precede nella visita preorder.) Sia n il numero di nodi dell albero. a). Descrivere un implementazione efficiente dell albero ternario completo tramite un vettore. b). Si supponga di memorizzare n entry distinte nei nodi dellalbero (una entry per nodo) con la proprietà che un nodo ha chiave minore di quelle dei suoi figli. Si ottiene cosí uno heap ternario. Descrivere e analizzare un implementazione efficiente delle operazioni di inserimento di un nodo con chiave k in un tale heap, e di estrazione del minimo da tale heap. 8. Esercizio: Si argomenti su come sia possibile usare un Min-Heap per risolvere il problema di trovare l elemento di rango i in un array A[1...n]. Si valuti la complessitá dell algoritmo proposto in funzione sia di i che di n, si determinino i valori di i per cui l algoritmo abbia una complessitá simile a quella dell algoritmo Select(A,i) visto al corso, ed i valori di i per cui l algoritmo proposto abbia una complessitá peggiore di quella dell algoritmo Select(A, i).
7 7 9. Esercizio: Si esegua l algoritmo Costruisci-Min-Heap(A) sul vettore A = [15, 18, 16, 17, 3, 10, 9, 5, 11, 12], disegnando ad ogni passo l albero corrispondente. 10. Esercizio: Si esegua l algoritmo HeapSort(A) sullo heap descrivendo esplicitamente tutti i passi dell algoritmo. 11. Esercizio: Sia A un MinHeap, usato come una coda con prioritá. Si scriva una procedura che calcoli il massimo incremento tra la priorità di un elemento e la priorità dell elemento immediatamente successivo. Ad esempio se A = [4,5,5,9,10,12,12] gli incrementi sono 1,0,4,1,2,0 e il massimo tra gli incrementi è 4. La procedura può utilizzare solamente le funzioni ExtractMax()(estrae l elemento di priorità massima dalla coda), e CodaVuota() (restituisce 1 se la coda è vuota, 0 altrimenti) e deve segnalare errore se la coda A è vuota o contiene solamente un elemento. 12. Esercizio: Dato un array A di n elementi, tutti distinti tra di loro, rappresentante un Max- Heap. (a) In che posizione di A compare l elemento massimo? (b) In quali posizioni di A puó comparire il secondo massimo? (c) Per k = 3,4, in che posizioni di A puó comparire il k-esmo elemento piú grande di A? (d) In che posizioni di A puó comparire l elemento minimo di A? Giustificare le risposte.
Esercizi per il corso di Algoritmi, anno accademico 2014/15
1 Esercizi per il corso di Algoritmi, anno accademico 2014/15 Esercizi sulla Tecnica Programmazione Dinamica Per la risoluzione degli esercizi di Programmazione Dinamica si richiede che venga innanzitutto
Problemi di ordinamento
Problemi di ordinamento Input: una sequenza di n numeri a 1, a 2,..., a n ; Output: una permutazione a 1, a 2,..., a n di a 1, a 2,..., a n tale che a 1 a 2... a n. Generalmente, la sequenza è rappresentata
Algoritmi Greedy. Tecniche Algoritmiche: tecnica greedy (o golosa) Un esempio
Algoritmi Greedy Tecniche Algoritmiche: tecnica greedy (o golosa) Idea: per trovare una soluzione globalmente ottima, scegli ripetutamente soluzioni ottime localmente Un esempio Input: lista di interi
ALGORITMI CORSO DI STUDIO IN INFORMATICA (laurea triennale) UNIVERSITÀ DEGLI STUDI DI CATANIA ANNO ACCADEMICO 2014/15
ANNO ACCADEMICO 2014/15 1 a prova in itinere 13 gennaio 2015 ESERCIZIO 1 Si risolva l equazione di ricorrenza al variare del parametro reale a>1. T (n) = 27 n a T + n 2 log n a ESERCIZIO 2 Si ordinino
Algoritmi e Strutture Dati
Heap Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Heap Heap binari: definizione Un heap binario è una struttura dati composta
Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti
Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente,
Laboratorio di Algoritmi e Strutture Dati. Code con Priorità
Laboratorio di Algoritmi e Strutture Dati Code con Priorità Teresa M.A. Basile [email protected] Dipartimento di Informatica Università degli Studi di Bari Aldo Moro Materiale di base gentilmente concesso
Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti
Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Alberto Montresor 27 marzo 2012 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente,
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
Esercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla [email protected] Ultimo aggiornamento: 3 novembre 2010 1 Trova la somma/1 Scrivere un algoritmo che dati in input un array A[1... n] di n interi
Note per la Lezione 6 Ugo Vaccaro
Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 6 Ugo Vaccaro Ancora sulla tecnica Programmazione Dinamica Nella lezione scorsa abbiamo appreso che la tecnica Divide-et-Impera,
Note per la Lezione 4 Ugo Vaccaro
Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 4 Ugo Vaccaro Ripasso di nozioni su Alberi Ricordiamo che gli alberi rappresentano una generalizzazione delle liste, nel senso che
ADT Coda con priorità
Code con priorità ADT Coda con priorità Una coda con priorità è una struttura dati dinamica che permette di gestire una collezione di dati con chiave numerica. Una coda con priorità offre le operazioni
Laboratorio di Algoritmi e Strutture Dati. Aniello Murano. people.na.infn.it/~murano/ Murano Aniello - Lab. di ASD Terza Lezione
Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ Heap e Heapsort Algoritmi di ordinamento Insertion Sort Quicksort Heapsort Insertion Sort L
Algoritmi e strutture di dati 2
Paola Vocca Lezione 4: Programmazione dinamica 1 Caratteristiche Programmazione dinamica: paradigma basato sullo stesso principio utilizzato per il divide et impera o il problema viene decomposto in sotto-problemi
Macchine RAM. API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD
Macchine RAM API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD 2 Macchina RAM 3 Esercizio Si consideri il linguaggio definito da: L = wcw R w a, b } 1. Codificare un programma RAM per il riconoscimento
Dati e Algoritmi I (Pietracaprina) Esercizi su Alberi Binari di Ricerca e (2,4)-Tree
Dati e Algoritmi I (Pietracaprina) Esercizi su Alberi Binari di Ricerca e (2,4)-Tree Dati e Algoritmi I (Pietracaprina): Esercizi 1 Problema 1 Si definisca Interval Tree un albero binario di ricerca le
Programmazione dinamica
Programmazione dinamica Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati Programmazione
Heap e code di priorità
Heap e code di priorità Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010
Esercizio 1. E vero che in un AVL il minimo si trova in una foglia o nel penultimo livello? FB = -1. livello 0 FB = -1. livello 1 FB = -1.
Esercizio 1 E vero che in un AVL il minimo si trova in una foglia o nel penultimo livello? FB = -1 livello 0 FB = -1 FB = -1 livello 1 FB = -1 livello 2 livello 3 L altezza è 3, il minimo si trova nel
Esercitazione 3. Heapsort
Esercitazione Heapsort Heapsort Algoritmo di ordinamento che utilizza una struttura dati detta heap per la gestione delle informazioni Tempo di esecuzione O(n lg n) Heap (binario) = struttura dati composta
Esercizi Capitolo 6 - Alberi binari di ricerca
Esercizi Capitolo 6 - Alberi binari di ricerca Alberto Montresor 9 Agosto, 204 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile
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
Esercizi su alberi binari
Esercizi su alberi binari Esercizi svolti: Determinazione nodi contenti verifica completezza verifica quasi completezza lunghezza del cammino interno determinazione ultima foglia in un quasi completo verifica
Problemi, istanze, soluzioni
lgoritmi e Strutture di Dati II 2 Problemi, istanze, soluzioni Un problema specifica una relazione matematica tra dati di ingresso e dati di uscita. Una istanza di un problema è formata dai dati di un
In questa lezione. Heapsort. ordinamento con complessità, nel caso peggiore, O(nlogn) [CLRS01] cap. 6 da pag. 106 a pag. 114
In questa lezione Heapsort ordinamento con complessità, nel caso peggiore, O(nlogn) [CLRS01] cap. 6 da pag. 106 a pag. 11 1 Paternità L heapsort è stato pubblicato da J. W. J. Williams nel 106. Pochi mesi
Algoritmi (9 CFU) (A.A ) Heap e Algoritmo HeapSort. Prof. V. Cutello Algoritmi 1
Algoritmi (9 CFU) (A.A. 2009-10) Heap e Algoritmo HeapSort. Prof. V. Cutello Algoritmi 1 Overview Definiamo la struttura dati heap Operazioni di costruzione e gestione di un heap Algoritmo Heapsort Code
Algoritmi e Strutture Dati (Mod. B) Algoritmi Greedy (parte I)
Algoritmi e Strutture Dati (Mod. B) Algoritmi Greedy (parte I) Algoritmi greedy Gli algoritmi per problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione
Dati e Algoritmi I (Pietracaprina) Esercizi sugli Alberi
Dati e Algoritmi I (Pietracaprina) Esercizi sugli Alberi Dati e Algoritmi I (Pietracaprina): Esercizi 1 Problema 1 Dimostrare che un albero non vuoto con n nodi interni, dove ogni nodo interno ha almeno
Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni.
Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni. Algoritmi e Strutture Dati + Lab A.A. 14/15 Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro
Algoritmi e Strutture Dati 2/ed Quiz a risposta multipla
Camil Demetrescu Irene Finocchi Giuseppe F. Italiano Algoritmi e Strutture Dati 2/ed Quiz a risposta multipla Indice 1 Un introduzione informale agli algoritmi 1 2 Modelli di calcolo e metodologie di
Sviluppo di programmi
Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla
Algoritmi di Ricerca
Algoritmi di Ricerca Contenuto Algoritmi non informati Nessuna conoscenza sul problema in esame Algoritmi euristici Sfruttano conoscenze specifiche sul problema Giochi Quando la ricerca è ostacolata da
Dati e Algoritmi I (Pietracaprina) Esercizi sulle Nozioni di Base
Dati e Algoritmi I (Pietracaprina) Esercizi sulle Nozioni di Base Dati e Algoritmi I (Pietracaprina): Esercizi 1 Problema 1. Sia T una stringa arbitraria di lunghezza n 1 su un alfabeto Σ. È sempre possibile
Programmazione Greedy I codici di Huffman
Programmazione Greedy I codici di Huffman Codifica dell informazione La rappresentazione ordinaria dell informazione prevede l impiego di un numero costante di bit; per esempio ad ogni carattere del codice
Alberi binari e alberi binari di ricerca
Alberi binari e alberi binari di ricerca Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica
Algoritmi e strutture dati
Algoritmi e Strutture Dati Cammini minimi Definizioni Sia G = (V,E) un grafo orientato pesato sugli archi. Il costo di un cammino π = è dato da: Un cammino minimo tra una coppia di
PROVETTE D ESAME. Algoritmi e Strutture Dati
PROVETTE D ESAME Algoritmi e Strutture Dati ESERCIZIO 1 Si ottengano limiti superiori e inferiori per la seguente ricorrenza ESERCIZIO 1 ESERCIZIO 2 Dato un albero binario T, il grado di sbilanciamento
Problema del cammino minimo
Algoritmi e Strutture di Dati II Problema del cammino minimo Un viaggiatore vuole trovare la via più corta per andare da una città ad un altra. Possiamo rappresentare ogni città con un nodo e ogni collegamento
Esercizi svolti. delle matrici
Esercizi svolti. astratti. Si dica se l insieme delle coppie reali (x, y) soddisfacenti alla relazione x + y è un sottospazio vettoriale di R La risposta è sì, perchè l unica coppia reale che soddisfa
Geometria BIAR Esercizi 2
Geometria BIAR 0- Esercizi Esercizio. a Si consideri il generico vettore v b R c (a) Si trovi un vettore riga x (x, y, z) tale che x v a (b) Si trovi un vettore riga x (x, y, z) tale che x v kb (c) Si
MODULO 07. La soluzione dei problemi mediante gli algoritmi
MODULO 07 La soluzione dei problemi mediante gli algoritmi MODULO 07 Unità didattica 02 Impariamo a fare i diagrammi a blocchi In questa lezione impareremo: come descrivere l algoritmo risolutivo utilizzando
LE STRUTTURE DATI DINAMICHE: GLI ALBERI. Cosimo Laneve
LE STRUTTURE DATI DINAMICHE: GLI ALBERI Cosimo Laneve 1 argomenti 1. definizione di alberi e nozioni relative 2. implementazione degli alberi, creazione, visita 3. algoritmo di visita iterativa e sua implementazione
Progettazione di Algoritmi
Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 0/06/06 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via avrai
Algoritmi e Strutture Dati
Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Il concetto di dato Il concetto di tipo di dato Insertion Sort for j 2 to lenght[a]
Tempo e spazio di calcolo (continua)
Tempo e spazio di calcolo (continua) I numeri di Fibonacci come case study (applichiamo ad un esempio completo le tecniche illustrate nei lucidi precedenti) Abbiamo introdotto tecniche per la correttezza
In questa lezione Alberi binari di ricerca: la cancellazione
In questa leione Alberi binari di ricerca: la cancellaione 1 L algoritmo di Hibbard per cancellare (1962) Sia il nodo da cancellare: 1) è una foglia: si rimuove 2) ha un solo figlio x: si rende x figlio
Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 12 Array e Oggetti A. Miola Dicembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Array e Oggetti 1 Contenuti Array paralleli
Sommario. Tabelle ad indirizzamento diretto e hash Funzioni Hash
Funzioni Hash Sommario Tabelle ad indirizzamento diretto e hash Funzioni Hash Requisiti Metodo della divisione Metodo della moltiplicazione Funzione Hash Universale La ricerca Talvolta si richiede che
Algoritmi greedy. Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione
Algoritmi greedy Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione Gli algoritmi greedy sono algoritmi basati sull idea
Esercizi vari. Alberto Montresor. 19 Agosto, 2014
Esercizi vari Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle rispettive soluzioni
Algoritmi e Strutture Dati
Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Algoritmi e Strutture Dati Capitolo 2 Minimo albero ricoprente: Algoritmo di Prim Il problema del calcolo di un Minimum
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 1 Un introduzione informale agli algoritmi Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Definizione informale di algoritmo Insieme di istruzioni, definite
lezione 9 min-heap binario Heap e Alberi posizionali generali
lezione 9 Heap e Alberi posizionali generali min-heap binario Un min-heap è un albero binario quasi completo in cui ogni nodo i diverso dalla radice soddisfa la seguente proprietà: il valore memorizzato
Laboratorio di Programmazione Laurea in Bioinformatica
Laboratorio di Programmazione Laurea in Bioinformatica 15 dicembre 2008 1 Programmazione strutturata 1.1 Esercizio 1 Si scriva lo pseudocodice di un programma che calcola la media di due numeri reali.
Funzione esponenziale Equazioni esponenziali RIPASSO SULLE POTENZE
RIPASSO SULLE POTENZE Proprietà delle potenze La formula a n indica l operazione chiamata potenza, ( a è la base ed n l esponente) che consiste nel moltiplicare la base a per se stessa n volte. Per le
Esercizi su strutture dati
Esercizi su strutture dati Marco Alberti Programmazione e Laboratorio, A.A. 2016-2017 Dipartimento di Matematica e Informatica - Università di Ferrara Ultima modifica: 21 dicembre 2016 Liste collegate
Alberi Binari di Ricerca
Alberi Binari di Ricerca Prof. G. M. Farinella [email protected] www.dmi.unict.it/farinella Riferimenti Bibliografici Cormen T.H., Leiserson C.E., Rivest R.L Introduction to Algorithms, Third Edition,
Algoritmi e Strutture Dati
Algoritmi Ricorsivi e Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 I conigli di Fibonacci Ricerca Binaria L isola dei conigli
Università del Piemonte Orientale
Compito di Algebra del 13 Gennaio 2009 1) Trovare l ordine di [11] 112 in Z 112. Si dica poi per quali valori di k si ha [11] k 112 [34] 112 = [31] 112. Soluzione. L ordine di [11] 112 è 12. k 12 8. 2)
Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni. Lab 06 Array" Lab06 1
Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 06 Array" Lab06 1 Esercizio 1" n Creare un programma che legga da input un numero non noto a priori di interi
Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati
Informatica 3 LEZIONE 10: Introduzione agli algoritmi e alle strutture dati Modulo 1: Perchè studiare algoritmi e strutture dati Modulo 2: Definizioni di base Informatica 3 Lezione 10 - Modulo 1 Perchè
Alberi e alberi binari I Un albero è un caso particolare di grafo
Alberi e alberi binari Un albero è un caso particolare di grafo È costituito da un insieme di nodi collegati tra di loro mediante archi Gli archi sono orientati (ogni arco esce da un nodo origine ed entra
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Informazioni sul corso + Un introduzione informale agli algoritmi Domenico Fabio Savo 1 Domenico Fabio Savo Email: [email protected] Web: http://www.dis.uniroma1.it/~savo
Grafi pesati Minimo albero ricoprente
Algoritmi e Strutture Dati Definizioni Grafi pesati Minimo albero ricoprente Sia G=(V,E) un grafo non orientato e connesso. Un albero ricoprente di G è un sottografo T G tale che: T è un albero; T contiene
6) Descrivere con un diagramma a blocchi un algoritmo che legga da input due numeri ne calcoli il prodotto in termini di somme ripetute.
I due esercizi seguenti su un esempio semplice (trovare il massimo tra due o tra tre numeri) introducono la descrizione di algoritmi con diagrammi a blocchi, le strutture di controllo sequenza e condizione,
Metodi e Modelli per l Ottimizzazione Combinatoria Cover inequalities
Metodi e Modelli per l Ottimizzazione Combinatoria Cover inequalities L. De Giovanni M. Di Summa In questa lezione introdurremo una classe di disuguaglianze, dette cover inequalities, che permettono di
Esercizi di Programmazione Lineare - Dualità
Esercizi di Programmazione Lineare - Dualità Esercizio n1 Dato il seguente problema 3 + 3 2 2 + a scriverne il duale; b risolvere il duale (anche geometricamente indicando cosa da esso si può dedurre sul
Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi
Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore
Rappresentazione degli algoritmi
Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti
LABORATORIO DI INFORMATICA ESERCITAZIONE VIII
LABORATORIO DI INFORMATICA ESERCITAZIONE VIII Cercate di eseguire gli esercizi da soli. Se non ci riuscite, cercate di capire i messaggi di errore. Se non ci riuscite, provateci di nuovo. Poi chiamate
