Ich habe eine große Anzahl linearer Netzwerke und möchte die beiden Enden jedes Netzwerks finden, die entlang des Netzwerks am weitesten voneinander entfernt sind (in der Abbildung unten wären es D bis K). Die Brute-Force-Lösung für dieses Problem besteht darin, den kürzesten Pfad entlang des Netzwerks für jedes Ursprungspaar zu berechnen. Ich habe jedoch Hunderte von Netzwerken mit Tausenden von Enden. Daher ist die Berechnung jedes möglichen Pfads recht schwierig.
Gibt es eine optimale Methode, um dies zu berechnen, ohne die Brute Force einzusetzen? Kann ich einige Punkte aufgrund einiger cleverer Regeln ausschließen?
EDIT: Ich habe eine Illustration des längsten von @Alex Tereshenkov erwähnten Pfades hinzugefügt, um meine Frage zu klären. Der schwarze Pfad ist das Ergebnis des Algorithmus für den längsten Pfad (längster Pfad ohne Wiederholung von Scheitelpunkten). Stellen Sie sich in meinem Fall vor, Sie betreten das Netzwerk von einem beliebigen Buchstaben aus und müssen so schnell wie möglich zu einem anderen Buchstaben fahren. Welche beiden Buchstaben sind am schwierigsten zu verbinden?