Dijkstra-Algorithmus kürzeste Wege

Ein Spickzettel zum Dijkstra-Algorithmus, der alle wichtigen Begriffe, Fakten und Unterschiede für die Abiturprüfung enthält, um kürzeste Wege in Graphen zu finden.

BoldSparrow442·40 Karteikarten·40 Fragen
Abiturcomputer_sciencealgorithms
0
Gewusst
1 / 40
0
Lerne noch
Vorderseite

Was ist der Dijkstra-Algorithmus?

Tippen zum Umdrehen
Rückseite

Ein Algorithmus zur Bestimmung der kürzesten Wege in einem Graphen mit nicht-negativen Kantengewichten.

Tippen zum Umdrehen
Gewusst
Lerne noch

Quiz(40 Fragen)

Frage 1 von 40

1. Was beschreibt der Dijkstra-Algorithmus?

Begriffe in diesem Lernset(40)

Grundlagen des Dijkstra-Algorithmus(16)

Was ist der Dijkstra-Algorithmus?

Ein Algorithmus zur Bestimmung der kürzesten Wege in einem Graphen mit nicht-negativen Kantengewichten.

Kernidee des Dijkstra-Algorithmus?

Iterative Auswahl des nächsten Knotens mit dem minimalen Abstand. - Minimale Distanz aktualisieren - Nachbarn betrachten

Was wird beim Dijkstra-Algorithmus verwendet?

Eine Prioritätswarteschlange, um den Knoten mit der geringsten Entfernung effizient zu finden.

Dijkstra-Algorithmus: Eingangsparameter?

Ein startender Knoten und ein Graph, der aus Knoten und Kanten besteht.

Wie funktioniert der Dijkstra-Algorithmus?

1. Initialisieren der Abstände. 2. Knoten mit minimalem Abstand auswählen. 3. Abstände der Nachbarn aktualisieren. 4. Wiederholen.

Wahr oder falsch: Dijkstra kann negative Kanten verwenden.

Falsch. Dijkstra funktioniert nur mit nicht-negativen Kantengewichten.

Was aktualisiert der Dijkstra-Algorithmus?

Die kürzesten Abstände zu jedem Knoten, wenn ein kürzerer Weg gefunden wird.

Was ist der Startknoten?

Der Knoten, von dem aus die Berechnung der kürzesten Wege beginnt.

Wie wird der minimale Abstand ausgewählt?

Durch die Verwendung einer Prioritätswarteschlange (z.B. Min-Heap), die effizient den Knoten mit dem minimalen Abstand liefert.

Ziel des Dijkstra-Algorithmus?

Den kürzesten Weg von einem Startknoten zu allen anderen Knoten im Graphen zu finden.

Dijkstra-Algorithmus: Zeitkomplexität?

Mit einer Prioritätswarteschlange: O((V+E)imesextlog(V))\displaystyle O((V + E) imes ext{log}(V)), wobei V die Knoten und E die Kanten sind.

Was passiert, wenn man einen besuchten Knoten erneut wählt?

Es hat keinen Effekt, da der kürzeste Weg bereits gefunden wurde.

Gibt es einen Unterschied zwischen Dijkstra und BFS?

Ja, BFS findet nur kürzeste Wege in ungewichteten Graphen, Dijkstra in gewichteten Graphen (nicht-negativ).

Wie wird der Algorithmus beendet?

Wenn alle Knoten besucht sind oder die minimale Distanz zu allen Knoten bestimmt wurde.

Was ist ein Beispiel für eine Anwendung?

Routenplanung, um den kürzesten Weg zwischen zwei Städten zu finden, z.B. von Berlin nach München.

Schritt 1 in Dijkstra?

Initialisierung: Setze den Abstand des Startknotens auf 0, alle anderen auf unendlich.

Anwendung und Komplexität(12)

Anwendungsbeispiel Dijkstra-Algorithmus?

Routenplanung in Navigationssystemen, z.B. Google Maps. Berechnung der kürzesten Strecke zwischen zwei Punkten.

Laufzeit des Dijkstra-Algorithmus?

Die Laufzeit ist abhängig von der Implementierung: - Mit Array: O(V²) - Mit Min-Heap: O(E + V log V)

Raumkomplexität des Dijkstra-Algorithmus?

O(V) für die Speicherung von Entfernungen und Vorgängern.

Wahr oder Falsch: Dijkstra findet auch negative Gewichtungen.

Falsch. Der Dijkstra-Algorithmus funktioniert nicht korrekt mit negativen Kanten.

Einsatzgebiet Dijkstra-Algorithmus?

Telekommunikationsnetzwerke, Verkehrsnetzwerke, Logistik, Robotik - überall, wo optimale Pfade nötig sind.

Was ist ein Beispiel für eine Eingabe?

Ein Graph mit Städten als Knoten und Straßen als Kanten mit jeweiligen Entfernungen in Kilometern.

Dijkstra vs. Bellman-Ford?

Dijkstra: schnell für positive Gewichte. Bellman-Ford: unterstützt negative Gewichte, ist jedoch langsamer bei O(VE).

Wie viele Iterationen braucht Dijkstra?

Maximal V Iterationen, wobei V die Anzahl der Knoten im Graphen ist.

Fill in the blank: Dijkstra verwendet _______ zur Auswahl des nächsten Knotens.

eine Prioritätswarteschlange (Min-Heap).

Anwendungsbeispiel im Alltag?

Planung der kürzesten Route zum nächsten Supermarkt in einer Stadt mit Straßen als Kanten.

Komplexität bei vollständigen Graphen?

O(V²) bei Verwendung eines Arrays, da alle Kanten betrachtet werden müssen.

Wahr oder Falsch: Dijkstra findet immer die optimale Lösung.

Wahr, solange alle Kanten nicht negativ sind.

Vergleich mit anderen Algorithmen(12)

Dijkstra vs. Bellman-Ford: Hauptunterschied?

Dijkstra arbeitet nur mit nicht-negativen Gewichten, Bellman-Ford auch mit negativen Gewichten.

Wahr oder Falsch: Dijkstra findet immer die kürzesten Wege.

Wahr, wenn alle Kanten nicht-negativ sind.

Nachteile von Dijkstra?

- Keine negativen Gewichte - Höhere Laufzeit mit großen Graphen.

Dijkstra vs. A*: Unterschied?

A* nutzt heuristische Schätzungen zur Pfadfindung, Dijkstra nicht.

Fülle die Lücke: Dijkstra benötigt eine ______ Liste.

Prioritätsliste zur Auswahl des nächsten Knotens.

Dijkstra vs. Floyd-Warshall: Grundlegende Anwendung?

Dijkstra: Einzelner Quellknoten; Floyd-Warshall: Alle Paare von Knoten.

Wahr oder Falsch: Dijkstra ist immer schneller als Bellman-Ford.

Falsch. Bellman-Ford kann bei negativen Gewichten effizienter sein.

Was ist die Komplexität von Dijkstra mit Min-Heap?

O((V+E)imesextlog(V))\displaystyle O((V + E) imes ext{log}(V)), wobei V Knoten und E Kanten sind.

Dijkstra: Was benötigt man für die Berechnungen?

Graph, Startknoten und eine Prioritätswarteschlange.

Vor- und Nachteile von A* gegenüber Dijkstra?

- Vorteil: Schnellere Lösungen durch Heuristik - Nachteil: Komplexere Implementierung.

Dijkstra vs. Greedy-Algorithmus: Gemeinsamkeit?

Beide wählen jeweils den nächsten optimalen Schritt, jedoch für unterschiedliche Probleme.

Was ist der Hauptnachteil des Bellman-Ford-Algorithmus?

Langsame Laufzeit von O(VimesE)\displaystyle O(V imes E) im Vergleich zu Dijkstra.

Fragen in diesem Lernset(40)

1. Was beschreibt der Dijkstra-Algorithmus?

A.Die Bestimmung der kürzesten Wege in einem Graphen mit nicht-negativen Kantengewichten.
B.Die Berechnung aller möglichen Wege zwischen zwei Knoten.
C.Die Suche nach dem längsten Weg in einem Graphen.
D.Die Analyse von Graphen ohne Kantengewichte.

2. Was ist der Hauptunterschied zwischen Dijkstra und Bellman-Ford?

A.Dijkstra arbeitet nur mit nicht-negativen Gewichten.
B.Bellman-Ford arbeitet nur mit nicht-negativen Gewichten.
C.Beide Algorithmen sind identisch.
D.Dijkstra findet immer alle kürzesten Wege.

3. Was beschreibt die Laufzeit des Dijkstra-Algorithmus bei Verwendung eines Min-Heaps?

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

4. Welches Element verwendet der Dijkstra-Algorithmus zur Auswahl des nächsten Knotens?

A.Eine Prioritätswarteschlange
B.Eine normale Liste
C.Ein Stapel
D.Ein Array

5. Wahr oder Falsch: Dijkstra funktioniert immer optimal für alle Graphen.

A.Wahr
B.Falsch
C.Nur bei kleinen Graphen
D.Nur bei großen Graphen

6. In welchem Bereich wird der Dijkstra-Algorithmus typischerweise angewendet?

A.Berechnung von Sortieralgorithmen
B.Statistische Analysen
C.Routenplanung
D.Datenverschlüsselung

7. Welches ist kein Eingangsparameter des Dijkstra-Algorithmus?

A.Ein Graph mit Knoten und Kanten
B.Ein startender Knoten
C.Ein Zielknoten
D.Eine Menge von Kanten

8. Was ist ein Nachteil des Dijkstra-Algorithmus?

A.Er kann negative Gewichte nicht verarbeiten.
B.Er benötigt keinen Startknoten.
C.Er ist immer schneller als Bellman-Ford.
D.Er findet immer den längsten Weg.

9. Welches der folgenden Szenarien ist ein Beispiel für den Dijkstra-Algorithmus?

A.Wahl der besten Lernmethode
B.Planung einer Reise von Stadt A nach Stadt B
C.Wettbewerb zwischen verschiedenen Programmiersprachen
D.Optimierung eines Suchmaschinenalgorithmus

10. Wie beginnt der Dijkstra-Algorithmus?

A.Mit der Initialisierung der Abstände
B.Mit der Auswahl des Zielknotens
C.Mit der Berechnung aller Pfade
D.Mit dem Löschen aller Knoten

11. Wie nutzt A* die Suche im Vergleich zu Dijkstra?

A.A* nutzt heuristische Schätzungen zur Pfadfindung.
B.A* hat eine geringere Laufzeit.
C.A* benötigt keine Gewichtungen.
D.A* ist einfacher zu implementieren.

12. Welches der folgenden Probleme kann der Dijkstra-Algorithmus nicht lösen?

A.Finden des kürzesten Weges in einem positiven Gewichtungsgraphen
B.Bestimmen von Routen in einem Verkehrsnetz
C.Handling von negativen Kantengewichten
D.Planung von Logistik-Routen

13. Wahr oder falsch: Dijkstra funktioniert mit negativen Kantengewichten.

A.Falsch
B.Wahr
C.Nur in bestimmten Fällen
D.Es ist nicht sicher

14. Fülle die Lücke: Dijkstra benötigt eine ______ Liste.

A.Prioritätswarteschlange
B.Normalliste
C.Koeffizientenliste
D.Knotentabelle

15. Was ist die Raumkomplexität des Dijkstra-Algorithmus?

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

16. Was passiert, wenn ein Knoten erneut besucht wird?

A.Es hat keinen Effekt.
B.Die Abstände werden neu berechnet.
C.Der Algorithmus bricht ab.
D.Der Knoten wird entfernt.

17. Was ist die grundlegende Anwendung von Floyd-Warshall im Vergleich zu Dijkstra?

A.Floyd-Warshall findet kürzeste Wege zwischen allen Knoten.
B.Floyd-Warshall findet nur den kürzesten Weg von einem Knoten.
C.Floyd-Warshall ist schneller als Dijkstra.
D.Floyd-Warshall nutzt keine Gewichtungen.

18. Wie vergleicht sich der Dijkstra-Algorithmus mit dem Bellman-Ford-Algorithmus?

A.Dijkstra ist langsamer als Bellman-Ford
B.Bellman-Ford benötigt mehr Speicher
C.Dijkstra eignet sich nicht für negative Gewichte
D.Bellman-Ford findet immer die optimale Lösung

19. Wie wird der Abstand eines Nachbarknotens aktualisiert?

A.Wenn ein kürzerer Weg gefunden wird.
B.Immer nach jedem Besuch.
C.Nur einmal zu Beginn.
D.Wenn der Nachbarknoten besucht wird.

20. Wahr oder Falsch: Dijkstra ist schneller als Bellman-Ford bei allen Arten von Graphen.

A.Wahr
B.Falsch
C.Nur bei einfachen Graphen
D.Nur bei komplexen Graphen

21. Wie viele Iterationen sind beim Dijkstra-Algorithmus maximal erforderlich?

A.Maximal E Iterationen
B.Maximal V Iterationen
C.Maximal V + E Iterationen
D.Maximal log V Iterationen

22. Was ist die Zeitkomplexität des Dijkstra-Algorithmus mit einer Prioritätswarteschlange?

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

23. Was ist die Zeitkomplexität von Dijkstra mit einer Min-Heap-Datenstruktur?

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

24. Was ist ein typisches Beispiel für eine Eingabe des Dijkstra-Algorithmus?

A.Ein Satz von Zahlen
B.Ein Graph mit Knoten und Kanten
C.Eine Liste von Wörtern
D.Ein Bild von einer Stadt

25. Welche Aussage beschreibt einen Unterschied zwischen Dijkstra und BFS?

A.Dijkstra findet kürzeste Wege in gewichteten Graphen, BFS in ungewichteten.
B.BFS ist schneller als Dijkstra.
C.Dijkstra kann keine Knoten besuchen.
D.Beide Algorithmen sind identisch.

26. Welche Voraussetzungen benötigt Dijkstra?

A.Ein Graph, einen Startknoten und eine Prioritätswarteschlange.
B.Nur einen Graph.
C.Nicht-negative Gewichte.
D.Ein Zielknoten.

27. Was ist die Hauptaufgabe des Dijkstra-Algorithmus?

A.Sortierung von Zahlen
B.Berechnung der kürzesten Wege
C.Datenkompression
D.Optimierung von Suchanfragen

28. Wann endet der Dijkstra-Algorithmus?

A.Wenn alle Knoten besucht sind.
B.Nach einer festen Zeit.
C.Wenn der Graph leer ist.
D.Wenn der Zielknoten erreicht ist.

29. Was sind Vorteile von A* im Vergleich zu Dijkstra?

A.Schnellere Lösungen durch Heuristik.
B.Einfachere Implementierung.
C.Keine Gewichtungen notwendig.
D.Immer optimal.

30. Fill in the blank: Dijkstra verwendet _______ zur Auswahl des nächsten Knotens.

A.eine Warteschlange
B.einen Stack
C.eine Prioritätswarteschlange
D.ein Array

31. Was aktualisiert der Algorithmus beim Finden eines kürzeren Weges?

A.Die Abstände zu den Knoten.
B.Die Kanten des Graphen.
C.Die Nachbarknoten.
D.Die Prioritätswarteschlange.

32. Dijkstra vs. Greedy-Algorithmus: Was ist eine Gemeinsamkeit?

A.Beide wählen den nächsten optimalen Schritt.
B.Beide können negative Gewichte verarbeiten.
C.Beide finden alle kürzesten Wege.
D.Beide sind identisch.

33. Was passiert, wenn negative Kantengewichte im Dijkstra-Algorithmus vorhanden sind?

A.Der Algorithmus funktioniert korrekt
B.Es können unerwartete Ergebnisse auftreten
C.Der Algorithmus bricht ab
D.Es wird eine Warnung ausgegeben

34. Was ist ein praktisches Beispiel für den Dijkstra-Algorithmus?

A.Routenplanung zwischen Städten.
B.Datenbankabfragen.
C.Bildverarbeitung.
D.Spielentwicklung.

35. Was ist der Hauptnachteil des Bellman-Ford-Algorithmus?

A.Langsame Laufzeit von O(V * E).
B.Er findet keine kürzesten Wege.
C.Er benötigt einen Zielknoten.
D.Er kann negative Gewichte nicht verarbeiten.

36. Wie beeinflusst die Verwendung eines Arrays die Komplexität des Dijkstra-Algorithmus?

A.Er erhöht die Zeitkomplexität auf O(V log V)
B.Er reduziert die Zeitkomplexität
C.Er führt zu einer Zeitkomplexität von O(V²)
D.Er hat keinen Einfluss

37. Was geschieht in Schritt 3 des Dijkstra-Algorithmus?

A.Abstände der Nachbarn aktualisieren.
B.Knoten mit dem maximalen Abstand auswählen.
C.Alle Knoten entfernen.
D.Den Algorithmus beenden.

38. Welche Struktur wird für die Speicherung der Knoten genutzt?

A.Ein Graph
B.Ein Baum
C.Eine Matrix
D.Ein Vektor

39. Was ist ein Hauptmerkmal des Dijkstra-Algorithmus?

A.Iterative Verbesserung der kürzesten Wege.
B.Zufällige Auswahl der Knoten.
C.Einmalige Berechnung aller Abstände.
D.Keine Verwendung von Datenstrukturen.

40. Was ist die Hauptidee des Dijkstra-Algorithmus?

A.Die Iteration über alle Knoten in beliebiger Reihenfolge.
B.Die Auswahl des nächsten Knotens mit dem kürzesten bekannten Abstand.
C.Die Verwendung von rekursiven Aufrufen zur Bestimmung des kürzesten Weges.
D.Die Berechnung des kürzesten Weges nur für ungewichtete Graphen.

Ähnliche Lernsets

Eigenes Lernset erstellen

Lade ein PDF hoch, füge Notizen ein oder beschreibe ein Thema – KI erstellt Karteikarten, Quizze und mehr in Sekunden.