Progettazione di Algoritmi

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Progettazione di Algoritmi"

Transcript

1 Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 29/01/2016 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via avrai 3 ore di tempo per rispondere alle domande. La prova consta di 8 domande a risposta multipla e 3 domande aperte. Per le domande a risposta multipla occorre rispondere inserendo la lettera scelta nell apposito quadratino accanto al numero della domanda. In caso di ripensamento, cancellare la risposta data e scrivere la nuova risposta nel successivo quadratino. Ogni risposta esatta vale 4 punti; ogni risposta errata vale -1 punto; ogni domanda lasciata in bianco vale 0 punti. Le domande a risposta multipla valgono in tutto 32 punti, quelle aperte 68 punti per un totale di 100 punti. NOME: COGNOME: MATRICOLA: Quesito risposta multipla uso di un algoritmo problema 1 problema 2 Totale Punti /32 /18 /25 /25 /100

2 Quesito 1 1. Un algoritmo è efficiente? A. Se riesce ad esaminare l input in tempo polinomiale B. Se risolve il problema indipendentemente dalla grandezza dell input C. Se risolve il problema in tempo polinomiale D. Se riesce a verificare una soluzione in tempo polinomiale 2. Un algoritmo risolve un problema in 3 10 n millisecondi, dove n è la grandezza dell input. Usando l algoritmo su un istanza di grandezza 12, l algoritmo termina in A. circa 1 giorno e mezzo B. quasi 3 anni C. quasii 1 millennio D. Un tempo incalcolabile 3. Sia T un albero DFS di un grafo G=(V,E) e siano x e y nodi di T tali che esiste l arco (x,y) E. A. x e y possono essere due nodi qualsiasi nell albero T B. x e y devono essere due foglie dell albero T C. x e y uno dei due deve essere un antenato dell altro nell albero T D. x e y uno dei due deve essere la radice dell albero T 4. Stiamo costruendo un MST di un grafo G=(V,E). Abbiamo già selezionato un sottoinsieme proprio S E degli archi. Il prossimo arco che selezioniamo per la costruzione del MST è A. l arco di peso minimo (v,w) con v V e w V-S B. l arco di peso minimo fra quelli rimanenti C. l arco di peso minimo (v,w) con v V e w V D. l arco di peso minimo (v,w) con v S e w V-S 5. Esiste una implementazione della struttura dati Union-Find per un insieme di n elementi e k operazioni di Union con i seguenti tempi di esecuzione? A. Make: O(log n), Union: O(k) in media, e Find: O(log n) B. Make: O(n), Union: O(1) e Find: O(log log n) C. Make: O(n), Union: O(1) e Find: O(1) in media D. Make: O(log n), Union: O(log n), Find: O(log n) 6. In uno schema di codifica a lunghezza variabile conviene (se si può) A. Assegnare parole brevi a tutti i simboli B. Assegnare parole lunghe a simboli meno frequenti e parole brevi per simboli più frequenti C. Assegnare parole lunghe a tutti i simboli D. Assegnare parole lunghe a simboli più frequenti e parole brevi per simboli meno frequenti 7. Sia f un flusso f:e R +. Quali delle seguenti affermazioni è vera A. Il valore di f è la somma di f(u,v) su tutti gli archi uscenti da un qualsiasi nodo u B. Il valore di f è la somma di f(s, v) su tutti gli archi uscenti da dalla sorgente s C. Il valore di f è la somma di f(v, s) su tutti gli archi entranti nella sorgente s D. Il valore di f è la somma di f(u,v) su tutti gli archi in un cammino dalla sorgete s al pozzo t. 8. La programmazione dinamica sfrutta: A. L impossibilità di usare un algoritmo greedy B. La possibilità di suddividere il problema originale in tanti sottoproblemi C. La possibilità di risolvere un numero polinomiale di sottoproblemi per risolvere tutto il problema originale D. L impossibilità di risolvere in modo efficiente un problema usando la forza bruta 1

3 Quesito 2 Applicazione algoritmo Usa l algoritmo di Huffman per calcolare il codice ottimale per una sorgente di simboli le cui frequenze sono (0.3, 0.20, 0.15, 0.07, 0.05, 0.04, 0.03, 0.02, 0.02, 0.01, 0.01) Mostra la costruzione dell albero ad ogni passo. 2

4 Quesito 3 Problema 1 Un gruppo di amici astrofili pianifica nottate di osservazioni di eventi interessanti (passaggi di comete, allineamento di pianeti, etc). Durante ogni nottata sono previsti molti eventi e per semplicità assumeremo che ci siano n eventi ognuno separato da esattamente un minuto: quindi l evento j ha luogo al minuto j; se non l osservano al minuto j lo perdono. Per osservare un evento devono girare il telescopio e di nuovo per semplicità assumeremo che la posizione del telescopio sia misurato in gradi da 0 a 360: per posizionare correttamente il telescopio per l osservazione dell evento j occorre spostarlo nella posizione d j. Purtroppo non potranno vedere tutti gli eventi in quanto il telescopio, che è abbastanza grande e complesso, può spostarsi solo alla velocità di un grado per minuto. Ad esempio, se si osserva un evento alla posizione d=355, per osservare un evento alla posizione d=7 occorreranno 12 minuti per spostare il telescopio. Quindi se si decide di vedere un particolare evento si dovranno saltare altri eventi. L ultimo evento n è quello più importante quindi questo evento non deve essere perso. Aiuta gli amici astrofili a ideare un algoritmo che permetta loro di pianificare in modo ottimale, cioè selezionando il massimo numero di eventi da vedere con il vincolo che l evento n sia sempre incluso, le nottati di osservazioni astronomiche. 3

5 Quesito 4 Problema 2 Ti hanno assunto come consulente presso un azienda che produce parti meccaniche per aerei. L azienda ha molti dipendenti ognuno capace di svolgere un determinato sottoinsieme di compiti fra i tanti di cui l azienda ha bisogno. Per semplicità assumeremo che l azienda ha n dipendenti e che ci sono n compiti diversi da svolgere e che un dipendente è sufficiente a svolgere un compito. Il tuo obiettivo è quello di trovare un modo per rappresentare le competenze dei singoli dipendenti e poi un algoritmo efficiente per assegnare a ciascuno dei dipendenti uno specifico compito da svolgere in modo tale da minimizzare il numero di dipendenti che rimangono senza un compito. 4

Progettazione di Algoritmi

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

Dettagli

Progettazione di Algoritmi

Progettazione di Algoritmi Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 06/07/2016 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via

Dettagli

Progettazione di Algoritmi

Progettazione di Algoritmi Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 1/01/016 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via avrai

Dettagli

Esercizi Union-Find e su Grafi. Ugo Vaccaro

Esercizi Union-Find e su Grafi. Ugo Vaccaro Progettazione di Algoritmi Anno Accademico 0 07 Esercizi Union-Find e su Grafi. Ugo Vaccaro. Esercizio: Scrivere pseudocodice per Make-Set, Union, e Find-Set usando la rappresentazione attraverso liste

Dettagli

AMPL Problemi su Reti

AMPL Problemi su Reti Dipartimento di Matematica Università di Padova Corso di Laurea Informatica Outline Problemi su Reti Cammino Minimo Molti problemi di ottimizzazione combinatoria possono essere modellati ricorrendo ai

Dettagli

Esame di Ricerca Operativa del 11/07/2016

Esame di Ricerca Operativa del 11/07/2016 Esame di Ricerca Operativa del /0/01 (Cognome) (Nome) (Matricola) Esercizio 1. Un erboristeria vuole produrre una nuova tisana utilizzando tipi di tisane già in commercio. Tali tisane sono per lo più composte

Dettagli

Esercitazione 3. Osserviamo che, dato un grafo con pesi distinti, questo ammette un unico MST.

Esercitazione 3. Osserviamo che, dato un grafo con pesi distinti, questo ammette un unico MST. Esercitazione 3 Problema 6: Sia G = (V, E) un grafo con pesi distinti sugli archi ed e E un arco di G. Progettare un algoritmo lineare in grado di determinare se esiste un MST di G che contiene l arco

Dettagli

METODI DELLA RICERCA OPERATIVA

METODI DELLA RICERCA OPERATIVA Università degli Studi di Cagliari FACOLTA' DI INGEGNERIA CORSO DI METODI DELLA RICERCA OPERATIVA Dott.ing. Massimo Di Francesco ([email protected]) i i Dott.ing. Maria Ilaria Lunesu ([email protected])

Dettagli

Esame di Ricerca Operativa del 15/01/2015

Esame di Ricerca Operativa del 15/01/2015 Esame di Ricerca Operativa del 1/01/201 (Cognome) (Nome) (Matricola) Esercizio 1. Un azienda produce palloni da calcio e da basket che vende a 1 e 20 euro rispettivamente. L azienda compra ogni settimana

Dettagli

Esame di Ricerca Operativa del 15/01/2015

Esame di Ricerca Operativa del 15/01/2015 Esame di Ricerca Operativa del 1/01/01 (Cognome) (Nome) (Matricola) Esercizio 1. Un azienda produce palloni da basket e da calcio che vende rispettivamente a 1 e euro. L azienda compra ogni settimana 00

Dettagli

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 17 giugno 2013

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 17 giugno 2013 A UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa Seconda prova intermedia 7 giugno 0 Nome: Cognome: Matricola: Orale /06/0 ore aula N Orale 0/07/0 ore aula N

Dettagli

Problemi, istanze, soluzioni

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

Dettagli

Algoritmi Greedy. Tecniche Algoritmiche: tecnica greedy (o golosa) Un esempio

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

Dettagli

LA METAFORA DELL UFFICIO

LA METAFORA DELL UFFICIO LA METAFORA DELL UFFICIO Lavagna di lavoro Lavagna di programma Sportello utenti Impiegato Capo Ufficio LAVAGNA DI LAVORO Chiamiamo variabili le posizioni sulla lavagna, identificate ognuna da un nome

Dettagli

Grafi e reti di flusso

Grafi e reti di flusso Grafi e reti di flusso Molti problemi di ottimizzazione sono caratterizzati da una struttura di grafo: in molti casi questa struttura emerge in modo naturale, in altri nasce dal particolare modo in cui

Dettagli

Ottimizzazione nella Gestione dei Progetti - Esercitazione 1: calcolo degli schedule ottimi

Ottimizzazione nella Gestione dei Progetti - Esercitazione 1: calcolo degli schedule ottimi Università degli Studi di Roma La Sapienza Ottimizzazione nella Gestione dei Progetti - Esercitazione : calcolo degli schedule ottimi di FABIO D ANDREAGIOVANNI Dipartimento di Informatica e Sistemistica

Dettagli

Esame di Ricerca Operativa del 07/09/2016

Esame di Ricerca Operativa del 07/09/2016 Esame di Ricerca Operativa del 0/09/201 (Cognome) (Nome) (Matricola) Esercizio 1. Un industria chimica produce due tipi di fertilizzanti (A e B) la cui lavorazione è affidata ai reparti di produzione e

Dettagli

Programmazione Dinamica (PD)

Programmazione Dinamica (PD) Programmazione Dinamica (PD) Altra tecnica per risolvere problemi di ottimizzazione, piu generale degli algoritmi greedy La programmazione dinamica risolve un problema di ottimizzazione componendo le soluzioni

Dettagli

Esame di Ricerca Operativa del 16/06/2015

Esame di Ricerca Operativa del 16/06/2015 Esame di Ricerca Operativa del 1/0/01 (Cognome) (Nome) (Matricola) Esercizio 1. Una ditta produce vernici in tre diversi stabilimenti (Pisa, Cascina, Empoli) e le vende a tre imprese edili (A, B, C). Il

Dettagli

Algoritmi e Strutture Dati

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

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione

Appunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica (IN0 Fondamenti) Grafi e alberi: introduzione Marco Liverani ([email protected])

Dettagli

Algoritmi e Strutture Dati

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

Dettagli

Esercizi per il corso di Algoritmi, anno accademico 2011/12

Esercizi per il corso di Algoritmi, anno accademico 2011/12 Esercizi per il corso di Algoritmi, anno accademico 2011/12 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

Dettagli

Cammini minimi in grafi:

Cammini minimi in grafi: Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Cammini minimi in grafi: una trilogia Cammini minimi in grafi: Episodio III: la fine della trilogia Input: nelle puntate

Dettagli