• Non ci sono risultati.

008AA – ALGORITMICA E LABORATORIO

N/A
N/A
Protected

Academic year: 2021

Condividi "008AA – ALGORITMICA E LABORATORIO"

Copied!
1
0
0

Testo completo

(1)

008AA – ALGORITMICA E LABORATORIO Appello del 19 gennaio 2018

Cognome Nome: N. Matricola: Corso: A B

Esercizio 1. [3+3 punti]

Indicare e risolvere la relazione di ricorrenza che descrive la complessit`a asintotica in tempo della seguente funzione:

foo( n ) {

if (n < 10) return 1;

a = foo(n/2) + foo(n/2);

i = 1;

while (i < n) { j = 1;

while (j < n) {j = 3*j; a++;}

i++;

}

return a + foo(n/2) + foo(n/2);

}

Esercizio 2. [5+2 punti]

Dato un albero binario T di n nodi, scrivere lo pseudocodice di un algoritmo efficiente che restituisce TRUE se per ogni nodo u di T vale la seguente propriet`a: il sottoalbero sinistro di u ha una dimensione almeno doppia di quella del sottoalbero destro di u. Discutere la complessit`a dell’algoritmo proposto.

Esercizio 3. [5+2 punti]

E dato un grafo orientato G = (V, E), i cui nodi sono pesati (ossia contengono valori interi memorizzati in un` opportuno campo peso). Dati due vertici x e y e un intero k, si deve stabilire se esiste un cammino da x a y i cui vertici sono tutti di peso minore o uguale a k.

1. Dare una realizzazione dell’algoritmo in pseudocodice, e commentarla.

2. Valutare la complessit`a dell’algoritmo proposto.

Esercizio 4. [3+3 punti]

Date le stringhe A = IN V ERN O e B = SEN T IERO, simulare l’algoritmo di programmazione dinamica LCS per il calcolo della lunghezza della sottosequenza comune pi`u lunga, mostrando il contenuto della tabella che l’algoritmo riempie dinamicamente e la soluzione trovata dall’algoritmo.

Esercizio 5. [4 punti]

Si dimostri che la versione decisionale del problema dello Zaino appartiene alla classe NP. (Suggerimento:

descrivere un algoritmo di verifica polinomiale.)

Riferimenti

Documenti correlati

Calcolare la visita DFS su G e si mostri l’albero DFS specificando anche il tipo di archi individuati dalla visita (ossia dell’albero, indietro, in avanti, attraversamento – o

(4+3+3 punti) Si progetti un algoritmo ricorsivo basato sulla tecnica Divide et Impera che calcola il secondo elemento pi` u grande di un vettore A di n interi, senza modificarlo..

(4+4) Si definisca la relazione che consente di calcolare mediante Programmazione Dinamica la Edit Distance di due stringhe S1 e S2, nell’ipotesi che l’errore di mismatch abbia costo

• Si diano le regole per navigare sull’heap ternario, cio` e le regole per cui, dato il nodo i, si possa accedere direttamente ai 3 figli o al padre.. • Si fornisca l’algoritmo

Dato un albero binario T in cui ogni nodo contiene un intero positivo, diciamo che la media di un sottoalbero non vuoto ` e la somma degli interi contenuti nei suoi nodi diviso

In caso di risposta affermativa al punto 2, disegnare l’albero di decisione corrispondente all’algoritmo trovato che risolve il problema con due

Un grafo non orientato ` e detto 2-colorabile se ` e possibile attribuire a ogni vertice uno tra due colori in modo che vertici adiacenti siano colorati con colori distinti..

Progettare e descrivere in pseudocodice un algoritmo di tipo divide et impera per calcolare la somma di n interi positivi, ciascuno di valore Θ(1), memorizzati in un array1.