Tôi có một tập hợp lớn các mạng tuyến tính và tôi muốn tìm hai đầu của mỗi mạng cách xa nhau nhất dọc theo mạng (trên hình ảnh bên dưới, nó sẽ là D đến K). Giải pháp mạnh mẽ cho vấn đề này là tính toán đường đi ngắn nhất dọc theo mạng cho mỗi cặp nguồn gốc, nhưng tôi có hàng trăm mạng với hàng ngàn đầu, vì vậy tính toán mỗi đường dẫn có thể khá nặng.
Có cách nào tối ưu để tính toán điều này mà không cần sử dụng lực lượng vũ phu? Tôi có thể loại trừ một số điểm dựa trên một số quy tắc thông minh?
EDIT: Tôi đã thêm một minh họa về con đường dài nhất được đề cập bởi @Alex Tereshenkov để làm rõ câu hỏi của tôi. Đường dẫn màu đen là kết quả của thuật toán đường dẫn dài nhất (đường dẫn dài nhất mà không lặp lại bất kỳ đỉnh nào). Trong trường hợp của tôi, hãy tưởng tượng rằng bạn nhập mạng từ bất kỳ chữ cái nào và bạn cần lái xe đến một chữ cái khác nhanh nhất có thể. Hai chữ cái nào khó tham gia nhất?