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 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 punti; ogni risposta errata vale -1 punto; ogni domanda lasciata in bianco vale 0 punti. Le domande a risposta multipla valgono in tutto 3 punti, quelle aperte 68 punti per un totale di 100 punti. NOME: COGNOME: MATRICOLA: Quesito risposta multipla uso di un algoritmo problema 1 problema Totale Punti /3 /18 /5 /5 /100
Quesito 1 1. Quali delle seguenti affermazioni è vera? A. log n = O(log log n) B. n = O (log n) C. log log n = O (log log n) D. nessuna delle precedenti è vera. In quali casi la visita in profondità e la visita in ampiezza su un grafo non orientato producono esattamente lo stesso albero? A. Se il grafo ha n vertici ed n archi B. Se il grafo è un ciclo semplice C. Se il grafo è un cammino (catena) D. Mai 3. Qual è il tempo di esecuzione del seguente frammento di codice? A. O(log n) B. O(n) C. Θ(n ) D. Ω(n ). L algoritmo di Huffman calcola una codifica prefissa binaria γ per un alfabeto S con frequenze f(s), per s S, associando ad ogni s S, la parola codice γ(s), di lunghezza γ(s), in modo tale da minimizzare A. Σ s S γ(s) B. Σ s S γ(s) C. Σ s S f(s)γ(s) D. Σ s S f(s) γ(s) 5. Un minimo albero di copertura (MST) per un grafo pesato G=(V,E) è? A. Un sottografo di peso totale minimo B. Un insieme aciclico di archi di peso totale minimo C. Un albero col minimo numero di archi il cui insieme di vertici è V D. Nessuna delle risposte precedenti 6. Gli algoritmi di Dijkstra e di Bellman-Ford risolvono il problema dei cammini minimi in un grafo orientato e pesato. Inoltre A. Entrambi funzionano correttamente per qualsiasi tipo di grafo (orientato e pesato, con costi positivi e negativi) B. L algoritmo di Dijkstra funziona correttamente per tutti i grafi (orientati e pesati) in cui non vi siano cicli di costo negativo C. L algoritmo di Bellman-Ford funziona correttamente per tutti i grafi (orientati e pesati) in cui non vi siano archi di costo negativo D. Nessuna delle risposte precedenti è vera 7. Il valore di un flusso in una rete G=(V,E) è: A. La somma dei flussi uscenti dalla sorgente B. La capacità minima di un cammino dalla sorgente al pozzo C. Una funzione f:e R + che rispetta le proprietà di capacità e di conservazione D. Nessuna delle risposte precedenti 8. Un ordinamento topologico per il grafo diretto G=(V,E) con V={u, v, x, y, z}, E={(u,x), (v,x), (v,y), (v,u), (x,y), (y,z)} è: A. z, y, x, u, v B. v, u, x, y, z C. G non ammette un ordinamento topologico D. Nessuna delle risposte precedenti è vera for i=1 to n/ if x>y then x=x-y endfor return x 1
Quesito Applicazione algoritmo Usa l algoritmo di Ford-Fulkerson per trovare il flusso massimo dalla sorgente s al pozzo t nella rete riportata nella seguente figura. Mostra l augmenting path utilizzato in ogni iterazione. b 1 3 6 s a 5 d 3 t 5 10 c
Quesito 3 Problema 1 Stai facendo il consulente per un azienda di trasporti che consegna pacchi fra Palermo e Milano. Il numero di pacchi è così elevato che c è la necessità di spedire molti furgoni ogni giorno fra le due città. Ogni furgone ha un limite di W Kg sul peso massimo che può trasportare. Non ci sono limiti sul numero di furgoni che si può utilizzare, ma le sedi sono piccole e hanno spazio solo per un autoveicolo alla volta. I pacchi devono essere spediti nell ordine in cui arrivano (altrimenti i clienti potrebbero protestare). L azienda al momento utilizza un approccio greedy: riempie un furgone fino a che c è la possibilità di inserire un nuovo pacco senza superare il massimo del peso (non ci sono problemi di spazio) e lo fa partire e passa ad un nuovo furgone. Ti hanno chiamato per stabilire se c è un modo per fare meglio e ridurre il numero di furgoni utilizzati. Fornisci una prova del fatto che l approccio attualmente utilizzato è ottimale. (Suggerimento: si fornisca una prova simile a quella vista per il problema della schedulazione di intervalli.) 3
Quesito Problema Sei l amministratore delegato di un azienda che produce hardware per PC e la tua azienda è il fornitore di molti punti vendita su tutto il territorio nazionale. Nelle prossime n settimane c è la previsione di spedire lotti di s i componenti hardware, misurati in Kg, per i=1,, n. L azienda si avvale di trasportatori, Bertollini e STA. Bertollini fa pagare una quota fissa di r per Kg (quindi per spedire un lotto di peso s i si paga r s i ) STA invece offre un contratto per una spesa fissa c per settimana e permette di spedire senza limiti. Tuttavia il contratto deve essere fatto per almeno settimane consecutive. Un piano di spedizione è una scelta della compagnia di trasporto per le prossime n settimane con il vincolo che se per una settimana si sceglie STA allora per almeno altre 3 settimane successive si deve usare STA. Il costo di un piano di spedizione è il costo totale da pagare alle compagnie. Come amministratore delegato sei responsabile della scelta del piano di spedizione. Fornisci un algoritmo efficiente per trovare il piano di spedizione con costo minimo.