





Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
5 parte degli esercizi di algoritmi, anno 2019
Tipologia: Esercizi
1 / 9
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!






Progettazione di Algoritmi Anno Accademico 2018–
Ugo Vaccaro
N.B. Si ricorda che ogni algoritmo va accompagnato da una argomentazione sul perche calcola correttamente l’output e da un’analisi della sua complessita di tempo. Inoltre, si possono usare algo- ritmi visti a lezione (come BFS, DFS, etc.) senza necessariamente riportare il relativo pseudocodice, purche lo si menzioni esplicitamente. In generale, di ogni algoritmo e preferibile presentare il relativo pseudocodice. Tuttavia, anche una sola descrizione a parole dell’idea dell’algoritmo (purche precisa e corretta) verr`a accettata all’esame.
s
t
y
x
z
(a) Si proponga un algoritmo che determini, oltre ad un cammino minimo p 1 da v a t che supponiamo essere p 1 = (v, s 1 , ...sn, t), un secondo cammino p 2 che sia il cammino di lunghezza minima tra quelli che congiungono v con t e non contengono l’arco (sn, t). (b) Si provi la correttezza e si valuti la complessit`a dell’algoritmo proposto. (c) Si proponga un algoritmo che determini, oltre ad un cammino minimo p 1 da v a t, un secondo cammino p 2 che sia il cammino di lunghezza minima tra tutti i cammini che congiungono v con t e sono distinti da p 1.
e associato un peso w(u) > 0. Descrivere un algoritmo per calcolare i cammini di peso minimi da un nodo sorgente s ∈ V a tutti i nodi v ∈ V. In questa situazione, il peso di un camminoe definito come la somma dei pesi dei nodi che appaiono nel cammino. (Sugg.: si riduca il problema a quello di calcolare i cammini di peso minimi in un opportuno grafo con pesi su archi).I
A M
E
F
H
G J
L B
C
D
K
10 8
4
6
5
2
8
20 4 5 4
3
6
7
5
8
(^10 )
4
6
J
K
M
A
B
E
C G
F I
D
H
L
4
2
5
6
5
1
2 5
2
1
3 6 3
(^6 )
4 6
4
5
3
(a) Si descriva brevemente un algoritmo efficiente (per esempio tra quelli visti a lezione) che determini un Minimum Spanning Tree per G e se ne valuti la complessita. (b) Si provi o si refuti la seguente proprieta: dato un Minimum Spanning Tree per G questo contiene almeno un arco tra quelli aventi peso minimo in G. (c) Si provi o si refuti la seguente propriet`a: dato un Minimum Spanning Tree per G questo contiene un cammino minimo per ogni coppia di nodi in G.
Input: n persone ed n job da eseguire E dato un grafo direttoG = (V, E) con archi che vanno solo da persone a job, in cui un arco dalla persona p al job j vuol dire che potenzialmente la persona p potrebbe eseguire il job j (se l’arco (p, j) non c’e vuol dire che la persona p non puo eseguire il job j). Sono dati i seguenti vincoli al problema: Ciascuna persona puo essere assegnata ad esattamente un job Ciascun job puo essere assegnato ad esattamente una sola persona Output: Trovare una assegnazione degli n job alle n persone che soddisfi i vincoli al problema (o dichiarare che cio non `e possibile, se una tale assegnazione non esiste). Suggerimento: si proceda in maniera analoga a come fatto per risolvere il problema del Massimo Matching.
⋄
u di 3 volte. In piu, ogni studente non puo danzare piu di 10 volte in totale. Il problema `e di massimizzare il numero di danze in totale. Formalizzare con precisione il problema come un problema di massimo flusso.⋄
s
t
y
x
z
e al piu pari alla capacit`a c(A, B) del taglios
t
s
t
a dell’arco, ed il secondo denota una assegnazione di flusso gia su di esso effettuato. Qual e il valore di questo flusso gia assegnato? Di quanto pu`o essere ancora aumentato perarrivare ad un flusso di valore massimo? Giustificare le risposte.
s
5 t
3
2
s
8 9 t
9
t