Programmazione dinamica Flashcards

1
Q

Quali sono le differenze rispetto alla ricorsione?

A

La programmazione dinamica è destinati a problemi di ottimizzazione che hanno una struttura ottima, segue un approccio bottom-up, prima di risolvere un problema controlla se è già stato fatto.
C’è anche la memoization che è top-down.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quali sono i passi per arrivare a una soluzione ottima?

A

Verifica di applicabilità + soluzione ricorsiva per il valore + ricostruzione bottom-up iterativa della soluzione

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Quando si ha una struttura ottima?

A

Quando la struttura può essere divisa in sottostrutture anche esse ottime nel senso che sono ottime le soluzioni ai sottoproblemi

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Come si calcola in generale la complessità?

A

Theta(num di sottoproblemi * costo di ricombinazione)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Come funziona la memoization?

A

Attraverso il look up controlla se la soluzione esiste già e per questo deve memorizzare le sol ai sottoproblemi

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

unsigned long fib (int n, unsigned link *knownF);

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Che caratteristiche ha il P. Greedy?

A

Non sempre trova una soluzione ottima ma è meno complesso.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Come funziona il P. Greedy?

A

A ogni passo sceglie una soluzione localmente ottima che non rivaluta più. La scelta viene fatta in base all’appetibilità

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Codici Huffamn: lunghezza

A
  • fissa: n°bit = parte intera di log_2(card(S)) dove card(S) è il numero di tutti i bit che bisogna codificare
  • variabile: più difficile, meno memoria, frequenze diverse
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Codici di Huffman: vincolo

A

nessun codice è prefisso di un altro codice

How well did you know this?
1
Not at all
2
3
4
5
Perfectly