Zum Inhalt springen

kürzester Weg zwischen beliebigen Punkten


Krain

Empfohlene Beiträge

Hallo zusammen,

Mein Problem ist folgendes:

Ich habe ein Array aus verschiedenen Orten.

Nun brauche ich aus diesen Orten die kürzeste Strecke, ohne ein bestimmte Reihenfolge, einen bestimmten Start- oder Zielpunkt anzugeben!

Es muss allerdings jeder Punkt angefahren werden.

Entfernungen sind bekannt!

Wie ist der beste Ansatz dafür!?

gruss

markus

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich dachte mir, ich mach ein Array aus möglichen Permutationen und berechne deren Längen und nehme dann einfach dir Kürzeste!

Nun aber das zweite Problem, woher bekomm ich einen Algorithmus, der mir alle möglichen Permutationen bestimmt?

Oder hat jemand dazu eine Idee? Ich hatte schon ein paar ansätze, aber die sind alle in die Hose gegangen!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Servus,

das Stichwort ist Dijkstra. Der Dijkstra-Algorithmus bestimmt Dir den kostengünstigsten Weg in einem Netzwerk.

Google mal danach, der ist eigentlich recht einfach, eine Implementierung habe ich aber leider auch nicht.

Hier ist eine kleine Erklärung und Veranschaulichung: http://students.ceid.upatras.gr/~papagel/project/kef5_7_1.htm

Peter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das passt aber auch nicht ganz! Ich will alle Punkte in einer Linie bzw. Strecke abfahren ohne an einem Punkt zweimal vorbei zu kommen.

Der Dijkstra sucht doch nur den kürzesten weg zu einem beliebigen endpunkt!

Stellt es euch mal so vor:

Ich schmeiße fünf kugeln auf den boden und suche jetzt den kürzesten weg zwischen diesen um sie auf einmal abzufahren!

Wie gehe ich am besten vor!?

Djikstra sagt mir nur wie ich am kürzesten von Kugel1 zu Kugel3 oder Kugel5 komme.

Ich will aber im Allgemeinen nur die kürzeste Strecke zwischen allen Punkten ohne einen Punkt doppelt anzufahren!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das passt aber auch nicht ganz! Ich will alle Punkte in einer Linie bzw. Strecke abfahren ohne an einem Punkt zweimal vorbei zu kommen.

Das ist das Travelling Salesman Problem (wenn man die Rückkehr zum Startpunkt weglässt).

Bisher ist kein Algorithmus bekannt, der das Problem schneller als exponentiell löst. Du kannst natürlich alle möglichen Routen durchprobieren, aber bei vielen Punkten wird das sehr bald sehr langsam.

Um wieviele Punkte geht es denn?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das TSP gehört zur Klasse der NP-harten und NP-vollständigen Probleme. Es hat eine Komplexität von O(n!), deswegen wird die vollständige Lösung bei ausreichend vielen Städten sehr viel Zeit benötigen.

Es gibt allerdings verschiedene Ansätze, mit denen man zwar nicht immer den besten (kürzesten) Weg findet, aber eine gute Nährung bei geringerem Aufwand erreicht. Einfach mal im Web suchen.

Eine vollständige Lösung durch Probieren aller Permutationen macht nur bei wenigen Städten Sinn. Wenn man den Startpunkt beliebig wählt, kann man die Zahl der zu prüfenden Verbindungen reduzieren, die Komplexität des Problems an sich sinkt damit aber leichter nicht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Es sind Punkte auf einer Karte, der Einfachheit halber werden nur die Entfernung luftlinie betrachtet.

Ich hab mir schon einiges darüber durchgelesen und werde mich wohl für die Lösung mit dem neuronalen Netz entscheiden!

Ich habe einige imposante Applets dazu gesehen und bin davon überzeugt, dass es mit diesen funktioniert!

Das ausprobieren würde bei mir nicht funktionieren, da es sich teilweise um mehr als 15 oder 20 Punkte handeln kann!

Danke für eure Hilfen!

gruss

markus

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1 Jahr später...
  • 17 Jahre später...
Gast
Dieses Thema wurde nun für weitere Antworten gesperrt.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...