• Non ci sono risultati.

UNIVERSITÀ DEGLI STUDI DI BERGAMO

N/A
N/A
Protected

Academic year: 2021

Condividi "UNIVERSITÀ DEGLI STUDI DI BERGAMO"

Copied!
2
0
0

Testo completo

(1)

1

Corso di Laurea in Ingegneria Informatica

Esame di Informatica III B – Progettazione e algoritmi a.a. 2010/11 Appello del 16 Febbraio 2011

1. Quale delle seguenti affermazioni è vera? [0,5 pt]

a. n = O(n) b. n = O(log n) c. log n = O(log log n)

d. Nessuna delle precedenti è vera

2. Qual è il tempo richiesto per la ricerca in un albero AVL di n elementi? [0,5 pt]

a. O(n) b. O(log n) c. O(n2)

d. Non è possibile dirlo a priori: dipende dall’altezza h dell’albero

3. Usando il teorema Principale (Master), fornire una soluzione diretta alla ricorrenza:

n n n T n

T( )=3 ( /4)+ lg [1 pt]

4. Dato il grafo orientato in figura, trovare i costi minimi e i percorsi minimi da b (nodo sorgente) ad ogni altro vertice usando l’algoritmo di Dijkstra. [4 pt]

5. Si definisce Interval Tree un albero binario di ricerca in cui: [4 pt]

gli elementi sono intervalli [a, b], con a e b sulla retta reale;

la chiave di un elemento [a, b] è l’estremo sinistro a dell’intervallo;

non possono esistere intervalli annidati, ovvero [a, b] e [c, d] con c<=a e b<=d.

Ad esempio,l’Interval Tree costruito a partire dall’albero vuoto inserendo nell’ordine gli intervalli [9, 12], [4, 7], [17, 18], [1, 3], [8, 10], [14, 16], [20, 21], [2, 4], [13, 15] è:

a. Si definisca lo pseudocodice di un algoritmo efficiente che, dato un intervallo [a,b] e un Interval Tree T, determina se [a, b] può essere inserito in T, ovvero se non esiste in T un intervallo che contiene interamente [a, b] o che è contenuto interamente in [a, b].

b. Qual è la complessità dell’algoritmo?

UNIVERSITÀ DEGLI STUDI DI BERGAMO

DIPARTIMENTO DI INGEGNERIA

DELL’INFORMAZIONE E METODI MATEMATICI

(2)

2

SOLUZIONE:

1. Risposta: (a) 2. Risposta: (b) 3. Risposta:

4. Risposta: Vedi figura sotto. Le etichette nei vertici sono i costi minimi, mentre i cammini minimi da b sono indicati dagli archi rossi. Per brevità non sono riportate le fasi intermedie.

5. Risposta: Un possibile algoritmo ricorsivo è il seguente (si noti che riceve in input anche un nodo generico v di T, che inizialmente è la radice):

Algoritmo InsertCheck (a,b,v)

if v== null return YES //albero vuoto [c, d] = v.elemt().key

if ((c <= a <= b <= d) OR (a <= c <= d <= b)) return NO

if (a < c) return InsertCheck(a,b,v.left) /* Si prosegue nel sottoalbero sinistro perché in questo caso un eventuale intervallo che contiene interamente [a, b] può stare solo nel sottoalbero sinistro. */

else return InsertCheck(a,b,v.right) //si prosegue nel sottoalbero destro

Quando l’algoritmo è invocato su un nodo v, esso scende al più sino alle foglie eseguendo, ad ogni livello attraversato, un numero di operazioni costante. La sua complessità è allora proporzionale all’altezza del sottoalbero Tv con radice v, che, se v è la radice, è l’altezza di T.

) lg ( ) (

4 / 3 ), ( lg ) 4 / 3 ( ) 4 / lg(

) 4 / ( 3 ) / (

. 3

2 . 0 ), (

) (

lg ) ( , 4 , 3 , lg ) 4 / ( 3 ) (

3 log

793 . 0 3 log log

4 4

n n n T

c n cf n n n

n b n af caso

n n

f

n n n

n n n f b

a n n n T n T

ba

Θ

=

=

=

=

= Ω

=

=

=

=

=

= +

=

+ε ε

Riferimenti

Documenti correlati

liste di adiacenza: una lista di tutti i nodi e, per ciascuno di essi, una lista dei nodi

Dato il grafo orientato con i pesi associati agli archi rappresentato in figura 1, determinare il peso dei cammini minimi (massimi) dal nodo s a tutti i nodi del grafo6.

Ministero dell’Istruzione, dell’Università e della Ricerca Istituto Magistrale Statale

 riferire oralmente su argomenti di ordine generale seguendo ed esplicitando l’ordine logico della trattazione.  motivare le proprie opinioni e prese di posizione su argomenti di

Una volta definiti gli articoli allocati sulla ci occuperemo di trovare la sequenza di prodotti da lanciare sulla linea, al fine di ridurre i tempi di cambio formato sul

Le insegnanti ………., della classe IV B, dopo un’attenta osservazione del bambino e quanto dichiarato nell’analisi di partenza della suddetta classe,

Applicando il metodo di Fourier-Motzkin dire se il seguente sistema lineare ammette un’unica soluzione ovvero ammette infinite soluzioni ovvero non ammette

Date 2 matrici booleane M,N tali che M sia una matrice nxm ed N sia una matrice mxt, definiamo prodotto booleano MxN la matrice booleana ottenuta calcolando il prodotto righe