Mam duży zestaw sieci liniowych i chciałbym znaleźć dwa końce każdej sieci, które są najbardziej od siebie oddalone wzdłuż sieci (na poniższym obrazku byłoby to od D do K). Rozwiązaniem tego problemu dla brutalnej siły jest obliczenie najkrótszej ścieżki w sieci dla każdej pary pochodzenia, ale mam setki sieci z tysiącami końców, więc obliczenie każdej możliwej ścieżki jest dość ciężkie.
Czy istnieje optymalny sposób na obliczenie tego bez użycia brutalnej siły? Czy mogę wykluczyć niektóre punkty na podstawie sprytnych zasad?
EDYCJA: Dodałem ilustrację najdłuższej ścieżki wspomnianej przez @Alex Tereshenkov w celu wyjaśnienia mojego pytania. Czarna ścieżka jest wynikiem algorytmu najdłuższej ścieżki (najdłuższa ścieżka bez powtarzania wierzchołków). W moim przypadku wyobraź sobie, że wchodzisz do sieci z dowolnej litery i musisz jechać do innej litery tak szybko, jak to możliwe. Które dwie litery są najtrudniejsze do połączenia?