Programmazione dinamica knapsack domande

Questo insieme di flashcard esplora il concetto di programmazione dinamica applicato al problema dello zaino (knapsack), utile per studenti universitari in informatica. Le carte coprono definizioni, tecniche e applicazioni pratiche della programmazione dinamica.

Aurora36·24 schede·24 domande
universitàcomputer_sciencealgorithms
0
Lo so
1 / 24
0
Sto imparando
Fronte

Cos'è la programmazione dinamica?

Tocca per girare
Retro

È una tecnica di ottimizzazione per risolvere problemi complessi, dividendo in sottoproblemi più semplici e memorizzando i risultati.

Tocca per girare
Lo so
Sto imparando

Quiz(24 domande)

Domanda 1 di 24

1. Qual è l'obiettivo principale della programmazione dinamica?

Termini in questo set(24)

Introduzione alla programmazione dinamica(12)

Cos'è la programmazione dinamica?

È una tecnica di ottimizzazione per risolvere problemi complessi, dividendo in sottoproblemi più semplici e memorizzando i risultati.

Problema dello zaino definizione

È il problema di massimizzare il valore degli oggetti in uno zaino di capacità limitata.

Verità o Falsità: La programmazione dinamica è sempre la soluzione migliore.

Falsità: Non tutti i problemi ne beneficiano; a volte, algoritmi più semplici sono più efficaci.

Cosa rappresenta la capacità nello zaino?

La capacità rappresenta il limite massimo di peso o volume che lo zaino può contenere.

Esempio pratico del problema dello zaino.

Oggetti: (peso, valore) = [(2, 3), (3, 4), (4, 5)], Capacità = 5. Massimo valore = 7.

Causa → Effetto: Sottoproblemi nella programmazione dinamica.

Dividere un problema in sottoproblemi porta a soluzioni più efficienti e rapide.

Quali sono le fasi principali della programmazione dinamica?

1. Definizione del problema. 2. Identificazione dei sottoproblemi. 3. Memorizzazione dei risultati. 4. Combinazione delle soluzioni.

Funzione obiettivo nello zaino

Massimizzare il valore totale degli oggetti, rispettando la capacità dello zaino.

Cos'è la memoizzazione?

Tecnica per ottimizzare la programmazione dinamica, memorizzando i risultati dei sottoproblemi per evitarne il ricalcolo.

Confronto: Programmazione dinamica vs. Ricorsione.

Programmazione dinamica: più veloce, usa memoria. Ricorsione: più semplice, meno efficiente.

Completa: La soluzione del problema dello zaino è _____.

la combinazione di oggetti che massimizza il valore senza superare la capacità.

Qual è la complessità temporale della programmazione dinamica nel problema dello zaino?

È O(nimesW)\displaystyle O(n imes W), dove n\displaystyle n è il numero di oggetti e W\displaystyle W è la capacità dello zaino.

Varianti del problema dello zaino(12)

Problema dello zaino 0-1

Ogni oggetto può essere scelto o scartato. Utilizza la programmazione dinamica per massimizzare il valore totale.

Zaino frazionario

Oggetti possono essere frazionati. Si massimizza il valore totale dividendo gli oggetti in parti.

Vero o falso: il problema dello zaino è NP-completo.

Vero. Non esiste un algoritmo noto che risolva tutti i casi in tempo polinomiale.

Differenza tra 0-1 e zaino frazionario

0-1: oggetti interi. Frazionario: oggetti possono essere divisi.

Qual è l'algoritmo per lo zaino 0-1?

Utilizza una tabella per memorizzare i valori massimi. Formula: K(i,w)=max(K(i−1,w),K(i−1,w−wi)+vi)\displaystyle K(i, w) = max(K(i-1, w), K(i-1, w-w_i) + v_i).

Esempio di zaino frazionario

Oggetti: (valore 60, peso 10), (valore 100, peso 20). Capacità zaino: 30. Prendi tutto del primo e il 50% del secondo.

Cosa rappresenta il valore di utilità?

È il valore totale ottenuto dagli oggetti nello zaino. Si cerca di massimizzarlo.

Zaino multidimensionale

Considera più vincoli (es. peso e volume). Richiede una programmazione dinamica più complessa.

Qual è un'applicazione pratica del problema dello zaino?

Pianificazione delle risorse in scenari di budget limitato, come investimenti o distribuzione di risorse.

Cause ed effetti nel 0-1 knapsack

Scelta di un oggetto → incremento del valore totale. Scelta non ottimale → valore inferiore.

Zaino con ripetizione

Ogni oggetto può essere scelto più volte. Utilizza una formula simile alla 0-1, ma consente ripetizioni.

Come si calcola il valore massimo nello zaino?

Confrontando ogni oggetto, aggiornando il valore totale in base alla capacità disponibile.

Domande in questo set(24)

1. Qual è l'obiettivo principale della programmazione dinamica?

A.Massimizzare l'efficienza di algoritmi risolvendo sottoproblemi
B.Semplificare ogni problema in un singolo passaggio
C.Aumentare la complessità degli algoritmi
D.Evitare l'uso di memoria

2. Qual è la caratteristica principale del problema dello zaino 0-1?

A.Ogni oggetto può essere scelto o scartato
B.Oggetti possono essere divisi
C.Ogni oggetto deve essere scelto
D.Si massimizza solo il peso totale

3. Quale dei seguenti problemi può essere risolto con la programmazione dinamica?

A.Problema del cammino minimo
B.Problema della ricerca binaria
C.Problema di ordinamento
D.Problema di hashing

4. Cosa accade nel problema dello zaino frazionario?

A.Gli oggetti non possono essere divisi
B.Gli oggetti possono essere frazionati
C.Si possono scegliere solo oggetti di valore uguale
D.Si massimizza solo il peso

5. Qual è la caratteristica fondamentale della programmazione dinamica?

A.Utilizza solo la ricorsione
B.Divide il problema in sottoproblemi sovrapposti
C.Richiede un approccio grezzo
D.Non memorizza alcun risultato

6. Vero o falso: il problema dello zaino 0-1 è considerato NP-completo.

A.Vero
B.Falso
C.Solo in alcuni casi
D.Nessuna delle precedenti

7. In quale caso la programmazione dinamica non è la migliore scelta?

A.Quando i sottoproblemi non si sovrappongono
B.Quando la memoria è abbondante
C.Quando il problema è piccolo
D.Quando il problema è altamente complesso

8. Qual è la principale differenza tra il problema dello zaino 0-1 e il frazionario?

A.0-1 consente solo oggetti interi, frazionario consente divisioni
B.Frazionario è più semplice da risolvere
C.0-1 è più veloce da calcolare
D.Frazionario non ha vincoli

9. Cosa indica la funzione obiettivo nel problema dello zaino?

A.Il costo totale degli oggetti
B.Il numero di oggetti nello zaino
C.La massimizzazione del valore totale
D.Il peso medio degli oggetti

10. Qual è la formula utilizzata nell'algoritmo per lo zaino 0-1?

A.K(i, w) = max(K(i-1, w), K(i-1, w-w_i) + v_i)
B.K(i, w) = K(i-1, w) + v_i
C.K(i, w) = K(i-1, w-w_i) + v_i
D.K(i, w) = min(K(i-1, w), K(i-1, w-w_i) + v_i)

11. Qual è un esempio di utilizzo della memoizzazione?

A.Memorizzare i risultati di calcoli già effettuati
B.Creare nuovi problemi da zero
C.Evitare di ripetere un algoritmo
D.Semplificare il codice alla base

12. In un esempio di zaino frazionario, se hai un oggetto di valore 120 e peso 30, quale percentuale puoi portare se la capacità dello zaino è 60?

A.100%
B.50%
C.30%
D.70%

13. Quale dei seguenti approcci è più veloce nel risolvere il problema dello zaino?

A.Programmazione dinamica
B.Ricorsione pura
C.Forza bruta
D.Algoritmo di ordinamento

14. Cosa rappresenta il valore di utilità nel problema dello zaino?

A.Il valore totale degli oggetti nello zaino
B.Il peso totale degli oggetti nello zaino
C.La capacità massima dello zaino
D.Il numero totale di oggetti nello zaino

15. Cosa rappresenta la capacità nello zaino?

A.Il numero di oggetti che possono essere scelti
B.Il limite massimo di peso o volume
C.Il valore totale degli oggetti
D.La dimensione media degli oggetti

16. Qual è una caratteristica del problema dello zaino multidimensionale?

A.Considera solo un vincolo
B.Richiede una programmazione dinamica più complessa
C.Non ha una soluzione ottimale
D.Si basa solo su oggetti di valore basso

17. Qual è la complessità temporale tipica della programmazione dinamica nel problema dello zaino?

A.O(n + W)
B.O(n * W)
C.O(n^2)
D.O(2^n)

18. Qual è un'applicazione pratica del problema dello zaino?

A.Pianificazione di viaggi
B.Gestione di rifiuti
C.Distribuzione di risorse in scenari di budget limitato
D.Calcolo delle distanze

19. Quale di queste è una fase della programmazione dinamica?

A.Eliminazione dei sottoproblemi
B.Definizione del problema
C.Randomizzazione
D.Diminuzione incrementale

20. Cosa accade quando si sceglie un oggetto nel problema dello zaino?

A.Si riduce il valore totale
B.Si incrementa il valore totale
C.Si aumenta il peso massimo
D.Non cambia nulla

21. Quale dei seguenti è un vantaggio della programmazione dinamica rispetto alla ricorsione?

A.Richiede meno memoria
B.È più semplice da implementare
C.Riduce i tempi di esecuzione
D.Non utilizza sottoproblemi

22. Qual è una peculiarità dello zaino con ripetizione?

A.Ogni oggetto può essere scelto una sola volta
B.Ogni oggetto può essere scelto più volte
C.Non ci sono oggetti
D.Si basa solo su oggetti di peso leggero

23. Qual è la principale differenza tra programmazione dinamica e programmazione greedy?

A.La programmazione dinamica esplora tutte le soluzioni possibili, mentre la programmazione greedy sceglie la soluzione migliore locale in ogni passo.
B.La programmazione greedy può sempre garantire la soluzione ottimale, mentre la programmazione dinamica non lo fa.
C.La programmazione dinamica è più semplice da implementare rispetto alla programmazione greedy.
D.La programmazione greedy utilizza più memoria rispetto alla programmazione dinamica.

24. Come si calcola il valore massimo che può essere ottenuto nello zaino?

A.Sommando i pesi degli oggetti
B.Confrontando i valori e aggiornando il valore totale
C.Confrontando i pesi degli oggetti
D.Utilizzando solo un oggetto

Set correlati

Crea il tuo set di studio

Carica un PDF, incolla le tue note o descrivi un argomento – l'IA genera schede, quiz e altro in pochi secondi.