• Non ci sono risultati.

Algoritmi e Strutture Dati 2

N/A
N/A
Protected

Academic year: 2022

Condividi "Algoritmi e Strutture Dati 2"

Copied!
8
0
0

Testo completo

(1)

Ogni risposta deve essere adeguatamente motivata.

Domanda 1

Dare la definizione di albero binomiale e provare che, se n `e il numero dei nodi dell’albero, l’altezza

`e pari a log2(n).

Domanda 2

Si fornisca un limite superiore all’altezza di un B-albero di grado minimo 2, in funzione del numero m delle chiavi.

Universit`a di Padova 1

(2)

7 10 3

| {z }

I

2 5 4

| {z }

II

8 9

| {z }

III

Specificare gli alberi ottenuti dopo l’inserimento degli elementi del I gruppo, del I e II gruppo, del I, II e III gruppo. Infine, indicare l’effetto della rimozione dell’elemento 7 dall’ultimo albero ottenuto.

Universit`a di Padova 2

(3)

Esercizio 1

Si supponga di voler viaggiare dalla citt`a A alla citt`a B con un’auto che ha un’autonomia pari a d km. Lungo il percorso si trovano n − 1 distributori D1, . . . , Dn−1, a distanze di d1, . . . , dn km (di ≤ d) come indicato in figura

Dn−1 D1 D2

A d1 d2 dn B

L’auto ha inizialmente il serbatoio pieno.

a. Fornire un algoritmo greedy che seleziona il minor numero di distributori in cui far tappa durante il viaggio e se ne discuta la complessit`a.

b. Dimostrare la correttezza dell’algoritmo, secondo i seguenti passi: definire una soluzione del problema ed il suo peso, mostrare che vale la propriet`a della scelta golosa, mostrare che vale la propriet`a della sottostruttura ottima e usare questi fatti per concludere la correttezza dell’algoritmo.

Universit`a di Padova 3

(4)

Universit`a di Padova 4

(5)

Esercizio 2

Dato un grafo G = (V, E) non orientato, chiamiamo triangolo un insieme di tre nodi distinti e a due a due adiacenti in G, ovvero {a, b, c} ⊆ V tale che a 6= b 6= c e a 6= c e {(a, b), (b, c), (a, c)} ⊆ E.

a. Sia G un grafo non orientato completo: qual `e il numero dei suoi triangoli?

b. Descrivere un algoritmo che ricevendo in input un grafo non orientato descritto con la matrice delle adiacenze calcola il numero dei suoi triangoli. Fare lo stesso supponendo che il grafo in input sia rappresentato dalla lista delle adiacenze. Studiare la complessit`a di entrambi gli algoritmi senza preoccuparsi se risultano costosi.

Universit`a di Padova 5

(6)

Universit`a di Padova 6

(7)

Domanda 4

Rispondere ai seguenti quesiti:

a. Dare la definizione di taglio (S, T ) di una rete di flusso G(V, E), del flusso che lo attraversa f(S, T ) e della sua capacit`a c(S, T ).

b. Dimostrare che, dato un flusso f di una rete di flusso G = (V, E) e un taglio (S, T ) di tale rete, vale f (S, T ) = |f |.

Universit`a di Padova 7

(8)

Universit`a di Padova 8

Riferimenti

Documenti correlati

– Alan Bertossi, Alberto Montresor, Algoritmi e strutture di dati Terza Edizione, 2014, Città Studi,

Esistono due classi di memoria: automatica e statica La classe di memoria automatica è relativa a quegli oggetti locali ad un blocco (funzione o programma) che viene liberata

E responsabilità del programmatore controllare che il numero ed il tipo degli argomenti passati ad una funzione corrisponda con quanto specificato nella dichiarazione della

L Insertion Sort è uno algoritmo di ordinamento molto efficiente per ordinare un piccolo numero di elementi. L idea di ordinamento è quella che potrebbe usare un persona

L’array A[p…r] viene “suddiviso” in due sotto- array “non vuoti” A[p… q] e A[q+1…r] in cui ogni elemento di A[p…q] è minore o uguale ad ogni elemento

Lo scopo del gioco è quello di trasferire i dischi dal paletto di sinistra a quello di destra, senza mai mettere un disco su un altro di dimensione più piccola4. Regole

Si noti che l ordine in cui i piatti sono tolti dallo stack è inversa all ordine in cui essi sono stati inseriti nello stack, visto che solo il top dello stack è accessibile..

Nella situazione iniziale, tutti gli elementi sono posti nello Stack H dove l elemento al Top è la testa (Head) della coda, mentre quello al Bottom rappresenta la fine