Algoritmi greedy applicazioni esame

Queste flashcards coprono i principali algoritmi greedy e le loro applicazioni pratiche, utili per chi si prepara a un esame di algoritmi in informatica.

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

Algoritmo greedy

Tocca per girare
Retro

Un algoritmo che prende decisioni ottimali locali per trovare una soluzione globale. Si basa sull'idea di scegliere sempre l'opzione migliore in quel momento.

Tocca per girare
Lo so
Sto imparando

Quiz(24 domande)

Domanda 1 di 24

1. Qual è l'obiettivo principale del problema del cambio monetario?

Termini in questo set(24)

Concetti Fondamentali(12)

Algoritmo greedy

Un algoritmo che prende decisioni ottimali locali per trovare una soluzione globale. Si basa sull'idea di scegliere sempre l'opzione migliore in quel momento.

Principio di scelta locale

Ogni passo dell'algoritmo implica una scelta che sembra migliore in quel momento, senza considerare le conseguenze future.

Esempio di problema: zaino

Problema in cui si devono selezionare oggetti da un insieme, massimizzando il valore totale senza superare un peso limite. Si usano pesi e valori per determinare le scelte.

Vero o falso: gli algoritmi greedy garantiscono sempre la soluzione ottimale.

Falso. Gli algoritmi greedy non sempre trovano la soluzione globale ottimale, ma funzionano bene in molti casi specifici.

Differenza tra algoritmo greedy e programmazione dinamica

L'algoritmo greedy fa scelte immediate senza considerare tutte le possibilità, mentre la programmazione dinamica esplora tutte le opzioni per trovare la soluzione ottimale.

Esempio di scelta greedy: cambio

Se si devono restituire 1, 2 e 5 euro come resto, l'algoritmo greedy restituirà prima 5 euro, poi 2 euro e infine 1 euro.

Criteri per applicare greedy

- Struttura del problema - Optimalità locale - Soluzione globale raggiungibile attraverso scelte locali

Algoritmo di Prim

Un algoritmo greedy per trovare l'albero di copertura minimo in un grafo. Aggiunge il nodo più vicino non incluso nell'albero corrente.

Fase di selezione

In ogni iterazione, l'algoritmo seleziona l'elemento migliore secondo un criterio definito. Questa fase è cruciale per ottenere una buona soluzione.

Esempio di problema: intervalli

Nel problema di selezione degli intervalli, si scelgono il maggior numero possibile di intervalli che non si sovrappongono. Si ordinano per fine e si selezionano sequenzialmente.

Vantaggi degli algoritmi greedy

Semplicità Velocità Facilità di implementazione. Spesso più efficienti di altre tecniche, anche se non sempre ottimali.

Condizione di ottimalità

Perché un algoritmo greedy funzioni, deve soddisfare la condizione di ottimalità. Questo implica che ogni scelta locale contribuisce alla soluzione globale.

Applicazioni Pratiche(12)

Problema del cambio monetario

Utilizza algoritmi greedy per determinare il numero minimo di monete per un importo dato.

Albero di copertura minimo

L'algoritmo di Prim trova l'albero di copertura minimo in un grafo pesato con un approccio greedy.

Ciclo di attività

Seleziona attività non sovrapposte, massimizzando il numero totale di attività svolte.

Problema della borsa

Massimizza il valore degli oggetti in base al peso, selezionando gli oggetti in ordine di valore per unità di peso.

Vero o falso: Algoritmi greedy garantiscono sempre la soluzione ottima.

Falso. Non sempre forniscono la soluzione ottima, ma possono essere molto efficienti.

Algoritmo di Dijkstra

Trova il percorso più breve in un grafo senza pesi negativi usando un approccio greedy.

Selezione di intervalli

Un esempio di algoritmo greedy che richiede di selezionare il maggior numero di intervalli non sovrapposti.

Riempimento di knapsack

In un knapsack frazionario, utilizza un approccio greedy per massimizzare il valore totale degli oggetti.

Problema di Huffman

Utilizza un algoritmo greedy per costruire un codice di compressione ottimale basato sulla frequenza dei caratteri.

Vero o falso: Gli algoritmi greedy sono sempre più lenti di quelli dinamici.

Falso. Gli algoritmi greedy possono essere più rapidi grazie alla loro semplicità e alla mancanza di memorizzazione.

Esempio di selezione di attività

Attività: [1-3, 2-5, 4-6, 6-7, 5-9]. Seleziona: 1-3, 4-6, 6-7.

Vantaggi degli algoritmi greedy

- Semplicità - Velocità - Facili da implementare

Domande in questo set(24)

1. Qual è l'obiettivo principale del problema del cambio monetario?

A.Determinare il numero minimo di monete per un importo dato.
B.Massimizzare il numero di monete utilizzate.
C.Selezionare monete in ordine casuale.
D.Ridurre il valore totale delle monete.

2. Cos'è un algoritmo greedy?

A.Un algoritmo che prende decisioni ottimali locali per trovare una soluzione globale.
B.Un algoritmo che analizza tutte le possibili opzioni prima di prendere una decisione.
C.Un algoritmo che si basa su un approccio casuale per risolvere i problemi.
D.Un algoritmo che richiede una grande quantità di risorse per funzionare.

3. Quale algoritmo è utilizzato per trovare l'albero di copertura minimo in un grafo pesato?

A.Algoritmo di Prim.
B.Algoritmo di Bellman-Ford.
C.Algoritmo di Kruskal.
D.Algoritmo di Dijkstra.

4. Qual è il principio di scelta locale in un algoritmo greedy?

A.Ogni passo dell'algoritmo implica una scelta che sembra migliore in quel momento.
B.L'algoritmo valuta tutte le opzioni precedentemente scelte.
C.L'algoritmo deve sempre considerare l'intero problema prima di decidere.
D.Ogni scelta locale deve essere verificata attraverso simulazioni.

5. Selezionando attività non sovrapposte, quale obiettivo vogliamo raggiungere?

A.Massimizzare il numero totale di attività svolte.
B.Minimizzare il tempo totale delle attività.
C.Ridurre i costi delle attività.
D.Aumentare il numero di sovrapposizioni.

6. Quale dei seguenti problemi è un esempio classico di algoritmo greedy?

A.Il problema dello zaino.
B.Il problema del cammino minimo.
C.Il problema della ricerca binaria.
D.Il problema di ordinamento.

7. Nel problema della borsa, quale strategia è utilizzata per massimizzare il valore?

A.Selezionare oggetti in base al valore per unità di peso.
B.Selezionare oggetti in base al peso totale.
C.Selezionare oggetti casualmente.
D.Minimizzare il valore totale degli oggetti.

8. È vero o falso che gli algoritmi greedy garantiscono sempre la soluzione ottimale?

A.Falso.
B.Vero.
C.Dipende dal problema.
D.Solo per problemi specifici.

9. Vero o falso: Gli algoritmi greedy garantiscono sempre la soluzione ottima.

A.Falso.
B.Vero.
C.Solo in alcuni casi.
D.Sempre.

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

A.L'algoritmo greedy fa scelte immediate senza considerare tutte le possibilità.
B.La programmazione dinamica non utilizza scelte locali.
C.L'algoritmo greedy richiede più tempo per trovare la soluzione.
D.La programmazione dinamica è sempre più semplice da implementare.

11. Qual è la funzione principale dell'algoritmo di Dijkstra?

A.Trovare il percorso più breve in un grafo.
B.Costruire un albero di copertura minimo.
C.Selezionare attività non sovrapposte.
D.Massimizzare il valore in un knapsack.

12. Quale dei seguenti è un esempio di scelta greedy nel contesto del resto?

A.Restituire prima le monete di maggior valore.
B.Restituire sempre 1 euro.
C.Restituire monete in ordine casuale.
D.Restituire sempre il valore più basso.

13. Quale di queste opzioni NON è un esempio di algoritmo greedy?

A.Selezione di intervalli.
B.Algoritmo di Huffman.
C.Recursion Backtracking.
D.Problema del cambio monetario.

14. Quali sono i criteri per applicare un algoritmo greedy?

A.Struttura del problema, optimalità locale e soluzione globale raggiungibile.
B.Soluzioni precedenti, approccio casuale e tempo di esecuzione.
C.Solo la presenza di scelte casuali.
D.Nessuno dei precedenti.

15. Nella selezione di intervalli, quale situazione è ideale per applicare un algoritmo greedy?

A.Quando gli intervalli si sovrappongono.
B.Quando gli intervalli non si sovrappongono.
C.Quando ci sono pochi intervalli.
D.Quando gli intervalli hanno lunghezze variabili.

16. Cosa fa l'algoritmo di Prim?

A.Trova l'albero di copertura minimo in un grafo.
B.Ordina gli elementi in modo crescente.
C.Risolvi il problema dello zaino.
D.Calcola il cammino più corto tra due nodi.

17. In un knapsack frazionario, cosa si cerca di massimizzare?

A.Il valore totale degli oggetti.
B.Il numero di oggetti.
C.Il peso totale nel knapsack.
D.Il volume del knapsack.

18. Cosa implica la fase di selezione in un algoritmo greedy?

A.Selezionare l'elemento migliore secondo un criterio definito.
B.Valutare tutte le opzioni possibili.
C.Evitare qualsiasi scelta basata su criteri definiti.
D.Selezionare casualmente un elemento dall'insieme.

19. Quale dei seguenti problemi utilizza un algoritmo greedy per costruire codici di compressione?

A.Problema di Huffman.
B.Problema della borsa.
C.Selezione di attività.
D.Algoritmo di Prim.

20. Nel problema di selezione degli intervalli, quale strategie si utilizza?

A.Selezionare il maggior numero possibile di intervalli che non si sovrappongono.
B.Selezionare solo intervalli di lunghezza massima.
C.Selezionare intervalli in modo casuale.
D.Selezionare solo intervalli sovrapposti.

21. Vero o falso: Gli algoritmi greedy sono sempre più lenti di quelli dinamici.

A.Falso.
B.Vero.
C.Solo in alcuni casi.
D.Sempre.

22. Quali sono alcuni vantaggi degli algoritmi greedy?

A.Semplicità, velocità e facilità di implementazione.
B.Richiedono molto tempo per l'esecuzione.
C.Non sono mai utilizzati nella programmazione.
D.Richiedono risorse elevate.

23. Quali sono alcuni vantaggi degli algoritmi greedy?

A.Semplicità e velocità.
B.Complessità e lentezza.
C.Difficoltà di implementazione.
D.Costi elevati.

24. Cosa significa condizione di ottimalità in un algoritmo greedy?

A.Ogni scelta locale deve contribuire alla soluzione globale.
B.La soluzione deve essere la più complessa possibile.
C.Le scelte locali possono essere ignorate.
D.Non è necessario considerare le scelte precedenti.

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.