• Non ci sono risultati.

r.minUgu = 3, r.nonUgu = 5, r.magUgu = 8

N/A
N/A
Protected

Academic year: 2022

Condividi "r.minUgu = 3, r.nonUgu = 5, r.magUgu = 8 "

Copied!
3
0
0

Testo completo

(1)

Algoritmi e Laboratorio a.a. 2004/2005 Prova scritta del 1 aprile 2005

COGNOME ………. NOME ………..………

Matr. n. ………..

1. (PUNTI 2 + 1) Completare i seguenti due algoritmi con gli invarianti di ciclo e (quando richiesto) le asserzioni finali che permettono di dimostrarne la correttezza.

ALGORITMO 1 {A.I.: m,n >= 0}

a ← n b ← m z ← 0

{I.C. : ………}

while a > 0 do

if not (a mod 2 = 0) then z ← z + b a ← a div 2

b ← b + b return z

{A.F.: z = m*n}

ALGORITMO 2 {A.I.: n >= 0}

c ← n r ← 1

{I.C.: ………}

while c ≥ 1 do r ← r ∗c c ← c – 1 return r

{A.F.: r = ………}

2. (PUNTI 2)

Fornire la definizione di “algoritmo di ordinamento stabile”.

3. (PUNTI 2 + 1) Risolvere la seguente equazione di ricorrenza:

T(1) = 1

T(n) = 4T( ⎣n/2⎦ ) + ⎣n/2⎦ per n >1

• mediante il metodo iterativo

• mediante applicazione del teorema principale

(2)

4. (PUNTI 5)

Scrivere un algoritmo “Divide et Impera” che risolva il seguente problema:

Dati in input un array A[1..n] di interi e un intero v, calcolare (restituendo una tripla r di valori interi r.minUgu, r.nonUgu, e r.magUgu) il numero degli elementi di A che risultano rispettivamente minori o uguali, diversi, maggiori o uguali di v.

Esempio:

V

= 5 A 5 9 5 12 5 7 12 11

r.minUgu = 3, r.nonUgu = 5, r.magUgu = 8

5. (PUNTI 2)

Il seguente codice (per l’alfabeto: A,B,C,D,E) puo’ essere un codice di Huffman (MOTIVARE LA RISPOSTA) ?

A: 1 B: 01 C: 000 D: 001 E: 010

6. (PUNTI 2 + 2 + 2 + 2) a) Definire che cos'è un "ordinamento topologico" di un grafo orientato.

………...

………...

………...

b) Scrivere l'algoritmo "Topological_Sort".

c)

Completarlo con le asserzioni di input e di output.

d) Individuare un ordinamento topologico del seguente grafo, applicando l'algoritmo

Topological_Sort, nell'ipotesi che gli adiacenti siano memorizzati nelle liste in ordine alfabetico.

………

b

e a

c

g

h d

i

f

k

(3)

7. (PUNTI 5 + 1)

a) Applicando l’algoritmo di Dijkstra si determinino i pesi dei cammini minimi che collegano il vertice A con tutti gli altri vertici. Nel seguito ci riferiremo all’albero dei cammini minimi restituito dall’algoritmo con il termine “soluzione”.

A

B C

D E

F G H

2

6 4

8 5

4

8 3

9

6 6

Per svolgere correttamente l’esercizio occorre:

- compilare le seguenti tabelle (la riga 0 è già compilata), e

- disegnare (un disegno per ogni riga delle tabelle) l’albero mantenuto dall’algoritmo (contenente SIA gli archi che fanno parte della soluzione CHE gli archi candidati) al termine di ogni iterazione (cioe’ DOPO che sono state aggiornate le appetibilita’ dei vertici in coda).

La prima tabella indica, per ogni iterazione del ciclo esterno, per ogni vertice v che non appartiene alla soluzione, la stima d[v] della distanza dal vertice A (all’inizio il valore di tale stima e’ ∞).

Il valore di d non deve essere più riportato quando il vertice e’ ormai parte della soluzione (si metta il simbolo -).

La seconda tabella indica, per ogni iterazione del ciclo esterno, l'insieme dei vertici v che sono entrati a far parte della soluzione (per i quali d[v] è la distanza dal vertice A).

La riga 0 corrisponde al temine dell’inizializzazione (prima di entrare nel ciclo).

Quando nella coda con priorità ci sono vertici con lo stesso valore minimo di d si scelga quello che viene prima secondo l’ordine alfabetico.

A B C D E F G H Insieme dei vertici t inclusi nella soluzione

0 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 { }

1 1

2 2

3 3

4 4

5 5

6 6

7 7

8 8

b) L’albero ottenuto e’ l’unico albero dei camini minimi dal vertice A per il grafo dato (MOTIVARE LA RISPOSTA) ?

8. (PUNTI 4) Sia G un grafo non orientato e non pesato. Ogni visita in ampiezza di G individua una foresta di visita BFS con nodi interni e foglie.

Scrivere un algoritmo che, realizzando una visita in ampiezza di G, restituisca nella variabile MIN_ALTEZZA l’altezza dell’albero di minore altezza e nella variabile MAX_ALTEZZA l’altezza dell’albero di maggiore altezza tra gli alberi della foresta di visita BFS.

d

Riferimenti

Documenti correlati

3A– Components in the tank Tav.. 3A– Composants de

Manutenzione aree esterne del centro commerciale “Porte di Torino” in Corso Romania finalizzato alla cessione e assoggettamento delle aree alla Città di Torino:

La Carta dei Servizi del “Centro terapeutico riabilitativo intensivo ed estensivo per disturbi dello spettro autistico Valori” individua e rappresenta lo strumento

L’ azione del primo c secondo atto ha luogo in un podere di Laurina poco lontano da Benevento: quella del terzo e quarto succede in un \ illaggio vicino, presso una congiunta

Partecipazione, efficienza e trasparenza Il personale, i genitori, gli alunni sono prota- gonisti e responsabili dell’attuazione della Carta mediante la

Provare la seguenti propriet` a utilizzando i soli assiomi algebrici dei numeri reali ed eventualmente le propriet` a che la precedono.. Risolvere gli esercizi 1-4 del libro

Un albero ` e un grafo connesso in cui non ci sono cammini chiusi Quindi in un albero si pu` o andare da un vertice a un altro in un solo

Allora esiste una funzione lineare a z per cui ˆz