ProfilWeblogVokabelnSpielchenQuizBücherwurm gRayman.de

Kategorien

Style

Anzeigen

Alle Einnahmen von den folgenden Anzeigen werden an die Deutsche Krebshilfe gespendet.

RSS 0.91

17. Januar 2005

/verschiedenes/training
Denksport: Schnellste Zugverbindung (Beispiellösung)  

Hier ist eine Lösung der Aufgabe „Schnellste Zugverbindung“

Die Lösung ist eigentlich ganz einfach: Wir benutzen -> Dijkstras Algoritmus zur Bestimmung des kurzesten Pfades, um die optimale Zugverbindung zu finden. Allerdings nicht direkt mit dem Originalgraphen mit Bahnhöfen als Knoten und nur nach einem Fahrplan befahrbaren Kannten, sondern einen Graphen, den wir aus dem Fahrplan erstellen.

Unsere Knoten generieren wir aus den Paaren (Bahnhof, Zeit) und unsere Kannten aus den Fahrzeiten in den Zügen oder den Wartezeiten in den Bahnhöfen

In meiner Beispiellösung ignoriere ich die nötigen Umstiegszeiten und wenn es überhaupt keine Verbindung zwischen dem gewählten Ausgangs- und Zielbahnhof gibt, wird das Programm in einer Endlosschleife versinken und irgendwann mit einer Speicherfehrlermeldung abbrechen. Es zu korrigieren wäre recht einfach, aber diese Aufgabe überlasse ich dem interessierten Leser ;-)

Hier die Lösung in Java5. Sie wird unter JDK 1.4 nicht kompilierbar sein, ich wollte mit den neuen Java-Features wie den Generics, Annotations und den vereinfachten for-Schleifen rumspielen.

2 Kommentar(e) permalink

      Impressum:  Gregor Raýman · Auf dem Kirchbüchel 3 · D-53127 Bonn Kontakt: webmaster@grayman.de         Valid HTML 4.01! Valid HTML 4.01! .