Algoritmi di shortest path Dijkstra domande

Una raccolta di domande e risposte sui fondamenti e l'implementazione dell'algoritmo di Dijkstra, utile per studenti universitari in informatica.

GabrieleKoalapj·48 schede·48 domande
universitàcomputer_sciencealgorithms
0
Lo so
1 / 48
0
Sto imparando
Fronte

Qual è l'obiettivo dell'algoritmo di Dijkstra?

Tocca per girare
Retro

Trovare il percorso più breve da un nodo sorgente a tutti gli altri nodi in un grafo pesato.

Tocca per girare
Lo so
Sto imparando

Quiz(48 domande)

Domanda 1 di 48

1. Quale delle seguenti applicazioni usa l'algoritmo di Dijkstra per ottimizzare i percorsi?

Termini in questo set(48)

Fondamenti dell'algoritmo di Dijkstra(16)

Qual è l'obiettivo dell'algoritmo di Dijkstra?

Trovare il percorso più breve da un nodo sorgente a tutti gli altri nodi in un grafo pesato.

Dijkstra lavora con grafi positivi? Vero o falso?

Vero. L'algoritmo di Dijkstra funziona correttamente solo con archi di peso positivo.

Cosa rappresenta il termine "nodo"?

Un punto nel grafo che può rappresentare città, intersezioni, o altri elementi.

Qual è il primo passo dell'algoritmo di Dijkstra?

Inizializzare i pesi di tutti i nodi a infinito, tranne il nodo sorgente che è zero.

Qual è la struttura dati principale usata da Dijkstra?

La coda di priorità, per selezionare il nodo con il peso minimo.

Come si aggiornano i pesi dei nodi?

Se un percorso attraverso un nodo è più breve, il peso viene aggiornato con il nuovo valore.

Dijkstra può trovare soluzioni ottimali in grafi non connessi?

No, Dijkstra non trova percorsi per nodi in componenti non connessi.

Qual è la complessità temporale dell'algoritmo usando una coda di priorità?

La complessità è O((V+E)imesextlog(V))\displaystyle O((V + E) imes ext{log}(V)), dove V è il numero di nodi e E il numero di archi.

Quando termina l'algoritmo di Dijkstra?

Quando tutti i nodi sono stati visitati e i loro pesi definitivi sono stati determinati.

Cosa succede se ci sono archi con peso negativo?

L'algoritmo di Dijkstra non garantisce un risultato corretto con pesi negativi.

Esempio pratico: nodo A a nodo C, costi 10 e 15.

Se A → B è 10 e B → C è 5, il percorso A → B → C ha costo 15 (minore di 15).

Qual è il ruolo del nodo sorgente?

Il nodo sorgente è il punto di partenza da cui calcolare i percorsi più brevi.

Qual è la differenza tra Dijkstra e Bellman-Ford?

Dijkstra gestisce solo pesi positivi; Bellman-Ford gestisce anche pesi negativi.

Quale proprietà dei cammini più brevi usa Dijkstra?

La proprietà del cammino ottimale: ogni sotto-percorso di un cammino più breve è anch'esso un cammino più breve.

Cosa si intende per "costo" in Dijkstra?

Il costo è il peso associato agli archi tra i nodi nel grafo.

Qual è la caratteristica principale dell'algoritmo di Dijkstra?

Trova il cammino più breve da un nodo sorgente a tutti gli altri nodi di un grafo pesato, non negativo, usando una strategia greedy.

Implementazione e complessità(16)

Qual è la complessità temporale di Dijkstra?

La complessità temporale è O((V+E)imesextlogV)\displaystyle O((V + E) imes ext{log} V) con una coda di priorità.

Vero o falso: Dijkstra funziona per grafi con pesi negativi.

Falso. Dijkstra non gestisce pesi negativi, altrimenti produce risultati errati.

Quale struttura dati è comune per l'implementazione?

La coda di priorità è utilizzata per gestire i nodi da esplorare.

Cosa rappresenta V ed E in Dijkstra?

V è il numero di vertici, E è il numero di archi nel grafo.

Qual è l'output dell'algoritmo?

L'output è un array delle distanze minime da un nodo sorgente a tutti gli altri nodi.

Qual è la differenza tra Dijkstra e Bellman-Ford?

Dijkstra è più veloce, O((V+E)imesextlogV)\displaystyle O((V + E) imes ext{log} V), mentre Bellman-Ford gestisce pesi negativi con O(VimesE)\displaystyle O(V imes E).

Perché Dijkstra è preferito per grafi non negativi?

Dijkstra garantisce soluzioni ottimali più rapidamente rispetto ad altri algoritmi in grafo non negativo.

Qual è la complessità spaziale di Dijkstra?

La complessità spaziale è O(V)\displaystyle O(V) per memorizzare le distanze e i predecessori.

Cosa succede se il grafo ha cicli negativi?

Dijkstra non può gestire cicli negativi e può restituire distanze errate.

Implementazione: quali algoritmi per la coda di priorità?

- Heap binario - Fibonacci heap - Array

Fill in the blank: Dijkstra utilizza una ______ per esplorare i nodi.

coda di priorità.

Cos'è un nodo visitato in Dijkstra?

Un nodo visitato ha una distanza finale e non verrà più aggiornato.

Qual è il ruolo del nodo sorgente?

Il nodo sorgente è il punto di partenza per calcolare le distanze minime.

Esempio: Distanza da A a B in un grafo.

Se A ha un arco diretto di peso 5 verso B, la distanza è 5.

Cosa significa 'relaxation' in Dijkstra?

Significa aggiornare la distanza minima di un nodo se si trova una via più corta.

Cosa determina la scelta del nodo successivo?

Il nodo con la distanza minima attualmente nota viene scelto per l'esplorazione.

Applicazioni dell'algoritmo(16)

Qual è un'applicazione pratica dell'algoritmo di Dijkstra?

Navigazione GPS per trovare il percorso più breve tra due località.

Dijkstra è usato in quale settore?

Trasporti, telecomunicazioni, e reti informatiche.

Verità o falsità: Dijkstra trova il percorso più breve in un grafo non pesato.

Falsità. Funziona solo con grafi pesati con valori non negativi.

Compara Dijkstra e Bellman-Ford.

Dijkstra: solo pesi non negativi; Bellman-Ford: gestisce pesi negativi.

Quale algoritmo aiuta nella gestione delle reti di computer?

L'algoritmo di Dijkstra è utilizzato per ottimizzare il routing nei pacchetti dati.

Completa: L'algoritmo di Dijkstra è efficace per ____ .

reti stradali e mappe digitali.

In quale scenario si utilizza Dijkstra?

Per ottimizzare il percorso di consegna in un servizio di logistica.

Quale applicazione in un videogioco può usare Dijkstra?

Navigazione NPC per muoversi in modo efficiente nel mondo di gioco.

Qual è un utilizzo di Dijkstra nella robotica?

Pianificazione del percorso per robot autonomi in ambienti complessi.

Dijkstra può essere usato in quali tipi di grafo?

Grafi diretti e indiretti con pesi non negativi.

Qual è una limitazione nell'uso di Dijkstra?

Non gestisce pesi negativi, il che limita alcuni grafo.

Dijkstra è utile per l'ottimizzazione dei percorsi in ____ .

sistemi di trasporto pubblico e pianificazione urbana.

Quale applicazione può usare Dijkstra nelle telecomunicazioni?

Ottimizzazione della rete per la trasmissione di dati.

Qual è un esempio di utilizzo in una rete stradale?

Calcolo del percorso più veloce per un viaggio in auto.

Quale problema del mondo reale risolve Dijkstra?

Il problema del cammino minimo in molte applicazioni pratiche.

Dijkstra è usato in robotica per ____ .

navigare autonomamente evitando ostacoli.

Domande in questo set(48)

1. Quale delle seguenti applicazioni usa l'algoritmo di Dijkstra per ottimizzare i percorsi?

A.Sistemi di navigazione GPS
B.Analisi delle immagini
C.Compressione dati
D.Codifica video

2. Qual è lo scopo principale dell'algoritmo di Dijkstra?

A.Trovare il percorso più breve da un nodo sorgente a tutti gli altri nodi in un grafo pesato.
B.Calcolare il percorso più lungo in un grafo.
C.Determinare il costo massimo tra i nodi.
D.Trovare il nodo isolato in un grafo.

3. Qual è la complessità temporale dell'algoritmo di Dijkstra utilizzando una coda di priorità?

A.O((V + E) log V)
B.O(V^2)
C.O(E^2)
D.O(V + E)

4. Dove si applica l'algoritmo di Dijkstra nel settore dei trasporti?

A.Pianificazione delle rotte aeree
B.Calcolo delle tasse automobilistiche
C.Gestione delle flotte di taxi
D.Ottimizzazione delle reti ferroviarie

5. Dijkstra funziona correttamente con archi di peso negativo?

A.No, non funziona correttamente.
B.Sì, funziona sempre.
C.Solo in alcuni casi.
D.Solo con pesi razionali.

6. Dijkstra può essere utilizzato su grafi con pesi negativi?

A.No
B.Sì, con alcune modifiche
C.Sì, sempre
D.Solo in grafi non connessi

7. Quale affermazione sul grafo è vera per l'algoritmo di Dijkstra?

A.Funziona con pesi negativi
B.Richiede nodi non connessi
C.Richiede pesi non negativi
D.Funziona solo su grafi diretti

8. Quale delle seguenti affermazioni descrive meglio un nodo in un grafo?

A.È un punto di connessione tra archi.
B.È la distanza tra due nodi.
C.È un'operazione di calcolo.
D.È un elemento di controllo del flusso.

9. Quale delle seguenti strutture dati è frequentemente utilizzata per implementare Dijkstra?

A.Array
B.Coda di priorità
C.Lista di adiacenza
D.Stack

10. Qual è una differenza chiave tra Dijkstra e l'algoritmo di Bellman-Ford?

A.Dijkstra è più lento
B.Bellman-Ford gestisce pesi negativi
C.Dijkstra funziona solo su grafi diretti
D.Bellman-Ford non gestisce cicli

11. Qual è la prima operazione da eseguire nell'algoritmo di Dijkstra?

A.Inizializzare i pesi di tutti i nodi a infinito.
B.Visitare il nodo sorgente.
C.Calcolare i pesi degli archi.
D.Rimuovere i nodi visitati dalla lista.

12. Cosa rappresentano V ed E nell'algoritmo di Dijkstra?

A.Vertici e archi
B.Variabili ed errori
C.Visite ed esplorazioni
D.Velocità ed efficienza

13. In quale contesto Dijkstra è comunemente usato in informatica?

A.Compressione di file
B.Ottimizzazione del routing nei pacchetti dati
C.Gestione di database
D.Calcolo di statistiche

14. Qual è la struttura dati principale utilizzata nell'algoritmo di Dijkstra?

A.Coda di priorità.
B.Lista collegata.
C.Albero binario.
D.Array statico.

15. Qual è l'output dell'algoritmo di Dijkstra?

A.La lista di tutti i nodi
B.Una matrice di adiacenza
C.Un array di distanze minime
D.Un grafo ridotto

16. Dijkstra è utile per calcolare percorsi in quale ambito urbano?

A.Analisi della criminalità
B.Pianificazione della viabilità
C.Controllo qualità dell'aria
D.Gestione dei rifiuti

17. Cosa succede quando si trova un percorso più breve per un nodo già visitato?

A.Il suo peso non viene aggiornato.
B.Si deve ripetere il calcolo per quel nodo.
C.Il nodo viene riaggiunto alla coda.
D.Il percorso più breve viene ignorato.

18. In che modo Dijkstra si differenzia dall'algoritmo di Bellman-Ford?

A.Dijkstra è più lento
B.Bellman-Ford gestisce pesi negativi
C.Dijkstra utilizza un array
D.Bellman-Ford non è un algoritmo di ricerca

19. Quale scenario non utilizza l'algoritmo di Dijkstra?

A.Navigazione in un videogioco
B.Calcolo degli interessi bancari
C.Ottimizzazione della logistica
D.Pianificazione del percorso per robot

20. Qual è la complessità temporale dell'algoritmo di Dijkstra usando una coda di priorità?

A.O((V + E) log(V))
B.O(V^2)
C.O(E log(E))
D.O(V + E)

21. Perché Dijkstra è preferito per grafi con pesi non negativi?

A.Perché è più semplice
B.Perché garantisce soluzioni ottimali più velocemente
C.Perché usa meno memoria
D.Non è preferito

22. Qual è un'applicazione dell'algoritmo di Dijkstra nella robotica?

A.Controllo di voli droni
B.Pianificazione del percorso per robot autonomi
C.Riconoscimento vocale
D.Analisi di immagini

23. Quando l'algoritmo di Dijkstra termina?

A.Quando tutti i nodi sono stati visitati.
B.Quando il nodo sorgente è stato visitato.
C.Quando non ci sono più archi nel grafo.
D.Quando si trova un ciclo nel grafo.

24. Qual è la complessità spaziale dell'algoritmo di Dijkstra?

A.O(V)
B.O(E)
C.O(V + E)
D.O(1)

25. Quale utilizzo di Dijkstra è tipico nelle telecomunicazioni?

A.Compressione di file
B.Sicurezza delle reti
C.Ottimizzazione della rete per la trasmissione di dati
D.Analisi delle prestazioni

26. In un grafo non connesso, Dijkstra può trovare tutti i percorsi più brevi?

A.No, solo per i nodi connessi.
B.Sì, sempre.
C.Solo per il nodo sorgente.
D.Solo se il grafo è pesato.

27. Cosa succede se un grafo ha cicli negativi durante l'esecuzione di Dijkstra?

A.Dijkstra fornisce risultati corretti
B.Dijkstra non può gestirli
C.I cicli negativi vengono ignorati
D.Dijkstra termina premiando i cicli

28. Qual è una limitazione dell'algoritmo di Dijkstra?

A.Non gestisce cicli
B.Richiede pesi negativi
C.Non trova sempre il percorso più breve
D.Non gestisce pesi negativi

29. Che cosa rappresenta il costo in Dijkstra?

A.Il peso associato agli archi tra i nodi.
B.Il numero totale di nodi nel grafo.
C.La distanza più lunga nel grafo.
D.Il tempo impiegato per calcolare i percorsi.

30. Quali algoritmi possono essere utilizzati per la coda di priorità in Dijkstra?

A.Coda FIFO
B.Heap binario
C.Listas
D.Heap di Fibonacci

31. Quale tipo di grafo è adatto per l'algoritmo di Dijkstra?

A.Solo grafi diretti
B.Grafi con pesi negativi
C.Grafi con pesi positivi e non negativi
D.Grafi non connessi

32. Qual è una caratteristica fondamentale dell'algoritmo di Dijkstra?

A.Utilizza una strategia greedy per trovare il cammino più breve.
B.Calcola sempre il percorso più lungo.
C.Richiede pesi negativi.
D.Può essere applicato solo a grafi non pesati.

33. Completa la frase: Dijkstra utilizza una ______ per esplorare i nodi.

A.Lista di adiacenza
B.Tabella hash
C.Coda di priorità
D.Coda FIFO

34. Dijkstra è utile per calcolare percorsi in quale situazione pratica?

A.Predire il tempo atmosferico
B.Calcolare il percorso più veloce per un viaggio in auto
C.Gestire il magazzino
D.Analizzare dati finanziari

35. Qual è il ruolo del nodo sorgente nell'algoritmo di Dijkstra?

A.È il punto di partenza per il calcolo dei percorsi più brevi.
B.È il nodo finale da raggiungere.
C.Non ha alcun ruolo particolare.
D.Deve essere isolato nel grafo.

36. Cosa significa 'nodo visitato' in Dijkstra?

A.Un nodo che viene esplorato
B.Un nodo già elaborato
C.Un nodo con distanza infinita
D.Un nodo non connesso

37. Quale applicazione di Dijkstra è rilevante in un videogioco?

A.Rendering grafico
B.Navigazione degli NPC
C.Scripting delle missioni
D.Creazione di suoni

38. Qual è il principale vantaggio di Dijkstra rispetto all'algoritmo di Bellman-Ford?

A.Gestisce solo pesi positivi.
B.È più semplice da implementare.
C.Funziona meglio con pesi negativi.
D.Richiede meno memoria.

39. Qual è il ruolo del nodo sorgente nell'algoritmo di Dijkstra?

A.È un nodo casuale
B.È il punto di arrivo
C.È il punto di partenza per le distanze minime
D.Non ha importanza

40. Qual è un'area in cui Dijkstra è ampiamente utilizzato?

A.Sistemi di monitoraggio della salute
B.Ottimizzazione dei percorsi in sistemi di trasporto pubblico
C.Contabilità e finanza
D.Progettazione di interfacce utente

41. Cosa si intende per la proprietà del cammino ottimale utilizzata in Dijkstra?

A.Ogni sotto-percorso di un cammino più breve è anch'esso un cammino più breve.
B.I cammini più lunghi sono sempre migliori.
C.Sono necessari cicli per trovare il percorso più breve.
D.I pesi devono essere uniformi.

42. Se un grafo ha un arco diretto di peso 5 da A a B, quale sarà la distanza da A a B?

A.0
B.5
C.10
D.Inf

43. Qual è un esempio di problema che Dijkstra risolve nel mondo reale?

A.Ottimizzazione dell'uso di energia
B.Il problema del cammino minimo
C.Gestione dei dati nei database
D.Analisi delle vendite

44. Quale delle seguenti opzioni NON è una fase dell'algoritmo di Dijkstra?

A.Aggiornare i pesi dei nodi
B.Selezionare il nodo con il peso massimo
C.Inizializzare i pesi dei nodi
D.Visitare i nodi adiacenti

45. Cosa si intende per 'relaxation' in Dijkstra?

A.Esplorazione dei nodi
B.Aggiornamento delle distanze minime
C.Rimozione dei nodi visitati
D.Calcolo dei pesi

46. Quale delle seguenti situazioni rappresenta un uso non appropriato dell'algoritmo di Dijkstra?

A.Determinare il percorso più breve in una rete stradale con pesi non negativi.
B.Calcolare il percorso in un grafo con pesi negativi.
C.Ottimizzare il routing nei pacchetti di dati.
D.Pianificare il percorso per un robot in un ambiente senza ostacoli.

47. In quale situazione Dijkstra potrebbe fallire nel fornire un percorso corretto?

A.Quando ci sono archi con peso positivo
B.Quando si considera un grafo connesso
C.Quando ci sono archi con peso negativo
D.Quando si utilizza una coda di priorità

48. Cosa determina quale nodo viene scelto per la prossima esplorazione in Dijkstra?

A.Il nodo con il peso più alto
B.Il nodo con la distanza minima
C.Il nodo più recente
D.Un nodo a caso

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.