Tengo un gran conjunto de redes lineales y me gustaría encontrar los dos extremos de cada red que están más distantes entre sí a lo largo de la red (en la imagen a continuación, sería D a K). La solución de la fuerza bruta para este problema es calcular la ruta más corta a lo largo de la red para cada par de origen, pero tengo cientos de redes con miles de extremos, por lo que calcular cada ruta posible es bastante pesado.
¿Hay una manera óptima de calcular esto sin usar la fuerza bruta? ¿Puedo excluir algunos puntos basados en algunas reglas inteligentes?
EDITAR: He agregado una ilustración del camino más largo mencionado por @Alex Tereshenkov para aclarar mi pregunta. La ruta negra es el resultado del algoritmo de ruta más larga (ruta más larga sin repetir vértices). En mi caso, imagine que ingresa a la red desde cualquiera de las letras y necesita conducir a otra letra lo más rápido que pueda. ¿Qué dos letras son las más difíciles de unir?