Implementierung des Lösungsalgorithmus
Die benutzte Klasse zur Verwaltung von Graphen
Die Implementierung benutzt die Klasse GraphMitDaten
.

(siehe graph.txt)
Erzeugung von Permutationen
Zur Erzeugung aller möglichen Rundreisen benutzen wir eine Funktion naechste_permutation
, die systematisch neue Reihenfolgen der zu besuchenden Städte erzeugt.
Aufgabe 1
Teste die Funktion naechste_permutation
durch Funktionsaufrufe wie die folgenden:
>>> naechste_permutation(['A', 'B', 'C', 'D', 'E'])
['A', 'B', 'C', 'E', 'D']
>>> naechste_permutation(['A', 'B', 'C', 'E', 'D'])
['A', 'B', 'D', 'C', 'E']
Aufgabe 2
Entwickle ein Testprogramm, mit dem man ermitteln kann, wie viele verschiedene Permutationen bei einer Liste mit 5 verschiedenen Elementen (Städten) möglich sind.
Suche nach der kürzesten Rundreise
Mit Hilfe der Funktion naechste_permutation
lässt sich die Erzeugung und Verarbeitung der Rundreisen wie folgt implementieren.
Zum Testen benötigst du noch die Datei graph_eu_6.xml
Aufgabe 3
Führe das Testprogramm aus. Ändere es auch wie folgt ab: Es sollen alle erzeugten Routen mit ihren Längen ausgegeben werden. Es soll zusätzlich mitgezählt werden, wie viele Routen erzeugt werden (zur Kontrolle: 120).