Progettazione di Algoritmi



Documenti analoghi
Progettazione di Algoritmi

Progettazione di Algoritmi

Progettazione di Algoritmi

Grafi diretti. Un grafo diretto (o grafo orientato) G è una coppia (V,E) dove. V è u n i n s i e m e d i nodi (o vertici);

Algoritmi e Strutture Dati. Capitolo 13 Cammini minimi: Algoritmo di Bellman e Ford

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

Cammini minimi. Definizioni. Distanza fra vertici. Proprietà dei cammini minimi. Algoritmi e Strutture Dati

Problema del cammino minimo

Algoritmi e strutture dati

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

Grafi (orientati): cammini minimi

Cammini Minimi. Algoritmo di Dijkstra

Algoritmi e Strutture Dati

Cammini minimi in grafi:

Grafi e reti di flusso

Programmazione Dinamica (PD)

Algoritmi e Strutture Dati. Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal

Algoritmi e Strutture Dati

Introduzione ai grafi

Problemi, istanze, soluzioni

Minimo albero di copertura

Grafi pesati Minimo albero ricoprente

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

2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

ESERCIZI SULLA TECNICA Greedy

Esercizi Union-Find e su Grafi. Ugo Vaccaro

Algoritmi e Strutture Dati 2/ed Quiz a risposta multipla

AMPL Problemi su Reti

Grafi (orientati): cammini minimi

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

Ottimizzazione su grafi: massimo flusso (parte 1) Ottimizzazione su grafi:massimo flusso (parte 1) p. 1/33

Esame di Ricerca Operativa del 16/06/2015

Il Problema dell Albero Ricoprente Minimo (Shortest Spanning Tree - SST)

Esame di Ricerca Operativa del 11/07/2016

Algoritmi e Strutture Dati Grafi. Daniele Loiacono

Transcript:

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.