Übung Kürzeste Wege in Graphen

Aus ProgrammingWiki
Archivierte Version vom 2015-11-11T08:20:38+00:00. Aktuelle Version

Inhaltsverzeichnis

Unbewertete Graphen

Übung 1.1

Überlegen Sie, wie viele verschiedene kürzeste Wege es in einem "Manhatten-Graphen" mit neun, sechzehn, fünfundzwanzig oder beliebig vielen Knoten gibt. Finden Sie so viele Wege wie möglich und versuchen sie, eine allgemeine Lösung (eine systematische Aufzählung oder eine allgemeine Formel) zu finden.

Übung 1.2

Finden Sie den kürzesten Weg mittels Breitensuche oder mit "Scharfem Hinsehen". Flhaje_unberwerteter Graph.PNG

Übung Kürzeste Wege in bewerteten Graphen

Übung 2.1

  • Führen Sie den Dijkstra-Algorithmus per Hand für folgende Graphendarstellung aus.
  • Legen Sie dazu eine Tabelle an.
Darstellung Graph G

Alpreu_Auk1.png

Übung 2.2

  • Implementieren Sie den Floyd-Algorithmus in einer Programmiersprache Ihrer Wahl.
  • Lesen Sie dazu eine Matrix ein (alternativ: im Quelltext hardcoden)
  • Wenden Sie den Algorithmus an.
  • Geben Sie die Ergebnismatrix aus.
  • Um ihren Algorithmus zu testen können Sie hier Eingabematrizen und die korrekte Ausgabematrix generieren.

Übung 2.3

Machen Sie sich selbstständig mit verschiedenen Datenstrukturen und ihren Vor-/Nachteilen für die verschiedenen Algorithmen vertraut. (Bsp. Fibonacci-Heap)

Übung 2.4

  • Machen Sie sich mit weiteren Algorithmen zur Bestimmung des kürzesten Weges vertraut.
  • Welche Charakteristiken und Unterschiede weisen diese auf? (Bsp. A*-Algorithmus, Bellman-Ford-Algorithmus)

Übung 2.5*

  • Fügen Sie die folgende Klassen in ihre IDE ein.
  • Vervollständigen Sie die Klasse DijkstraAlgorithm mithilfe des in Kommentaren angegebenen Pseudocodes.
  • Testen Sie den Algorithmus auf Funktionsfähigkeit mithilfe der folgenden JUnit Test Klasse:

Lösungen

Aufgabe 2.1

Alpreu_Auk1-u.png