



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
4 parte degli esercizi di algoritmica, anno 2019
Tipologia: Esercizi
1 / 6
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.
r s a u
v w z x
eseguire su di esso l’algoritmo BFS(G, s), indicando ad ogni passo l’arco considerato dall’algoritmo, e calcolando sia l’albero BFS risultante che i valori d[c] per ogni nodo c del grafo.
r s a u
v w z x
eseguire su di esso l’algoritmo DFS(G, s), indicando ad ogni passo l’arco considerato dall’algoritmo, e calcolando l’albero DFS risultante.
Dato il grafo rappresentato in figura, eseguire su di esso l’algoritmo per il calcolo delle compo- nenti fortementi connesse, spiegando passo passo le computazioni fatte.
a (^) b c (^) d
e (^) f g^ h
e definito come la distanza tra i due vertici di G massimalmente distanti, se Ge connesso, `e definito come ∞ altrimenti. Formalmente:∞ se G non `e connesso maxu,v∈V d(u, v) altrimenti
dove d(u, v) e la distanza tra i due vertici u e v. Analogamente, l’eccentricita di un vertice u `e definita come
e(u) =
∞ se G non `e connesso maxv∈V d(u, v) altrimenti
mentre il raggio R(G) di G `e definito come R(G) = minu∈V e(u). Si dia un algoritmo che, dato in input un grafo G = (V, E) non diretto, calcoli D(G) e R(G).
⋄
e detto un Vertex Cover per G se per ogni {i, j} ∈ E vale {i, j} ∩ S 6 = ∅. Si descriva un algoritmo per il seguente problema: Input: G = (V, E) rappresentato mediante matrice di adiacenza, sottoinsieme S ⊆ V Output: “SI”, se Se un Vertex Cover “NO”, altrimenti. Si risolva l’esercizio anche sotto l’ipotesi che di G sia rappresentato mediante liste di adiacenze.Input: un grafo diretto G = (V, E) rappresentato mediante liste di adiacenza, due nodi v, w ∈ V. Output: Il numero di nodi raggiungibili da v che si trovano alla stessa distanza sia da v che da w.
m n o p
q (^) r s
t u^ v^ w
x y^ z
determinarne un ordinamento topologico, applicando passo passo l’algoritmo visto a lezione.
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)
(a) La costruzione di un Max-Heap con n nodi richiede Ω(n log n) nel caso peggiore; Risposta: (b) E possibile determinare l’elemento di valore massimo in un´ Max-Heap in tempo Θ(1); Risposta: (c) E possibile determinare l’elemento di valore minimo in un´ Max-Heap in tempo O(log n); Risposta: (d) L’altezza di un Max-Heap ´e Θ(n) nel caso peggiore; Risposta: