Vertiefungsaufgabe

Aus ProgrammingWiki
Archivierte Version vom 2012-06-24T11:05:31+00:00. Aktuelle Version

Robert Riedel: s3roried@stud.hszg.de
Bettina Sprenger: s3bespre@stud.hszg.de


Lösung des Rundreiseproblems (TSP)

Aufgabenstellung

Eine PKW-Rundreise soll durch die folgenden Städte führen und dabei jeden dieser 16 Orte genau einmal besuchen:

  • Dresden
  • Berlin
  • Spröda
  • Lüneburg
  • Löbau
  • Limbach-Oberfrohna
  • Blankenheim (06528)
  • Dohna
  • Eisenach (99817)
  • Dürrhennersdorf
  • Callenberg (09337)
  • Eisenhüttenstadt
  • Pirna
  • Riesa
  • Coswig (01640)
  • Seerhausen

Ausnahme: Die Stadt, in der die Rundreise beginnt und endet, ist die einzige zweimal besuchte Stadt.

Gesucht ist die kürzeste Rundreise.

Entfernungsmatrix

Unser TSP umfasst also 16 Städte und 120 Entfernungen. Der daraus konstruierte Graph besitzt demnach Knotenanzahl |V| = 16 und Kantenanzahl |E| = 120. Daraus resultiert folgende symmetrische Entfernungsmatrix.

Croxeldyffic_Adjmatrix.jpg

Ermittelte Rundreise

Croxeldyffic_Map03.jpg

Im Internet existieren zahlreichen Dienste und Programme, die für einen Graphen auf Basis einer Karte mit Entfernungsdaten (Quelle ist meistens Google Maps) die optimale Rundreise ermitteln. So berechnet auch der Roundtrip Solver Optimap von GEBWEG für unser TSP eine optimale Tour von 1443 km Länge.

Starten wir beispielsweise in Dresden, so führt uns diese Rundreise folgenden Weg entlang, bis wir wieder an unserem Startpunkt ankommen:

Dresden, Dohna, Pirna, Dürrhennersdorf, Löbau, Eisenhüttenstadt, Berlin, Lüneburg, Eisenach, Blankenheim, Spröda, Callenberg, Limbach-Oberfrohna, Seerhausen, Riesa, Coswig, Dresden.

Link zur Optimap-Webseite

Intuitiver Algorithmus

Lösungsverfahren Branch & Bound

Näherungslösung MST-Heuristik

Fazit