У мене великий набір лінійних мереж, і я хотів би знайти два кінці кожної мережі, які є найбільш віддаленими один від одного вздовж мережі (на зображенні нижче це було б D до K). Вирішення цієї проблеми грубою силою - обчислити найкоротший шлях по мережі для кожної пари походження, але у мене сотні мереж з тисячами кінців, тому обчислення кожного можливого шляху є досить важким.
Чи існує оптимальний спосіб обчислити це без використання грубої сили? Чи можу я виключити деякі пункти на основі деяких розумних правил?
EDIT: Я додав ілюстрацію найдовшого шляху, про який згадував @Alex Tereshenkov, щоб уточнити моє запитання. Чорний шлях є результатом алгоритму найдовшого шляху (найдовший шлях без повторення вершин). У моєму випадку уявіть, що ви входите в мережу з будь-якого з літер і вам потрібно якнайшвидше переїхати на інший лист. Які дві букви найскладніше з'єднати?