Tengo un gran conjunto de redes lineales y me gustaría encontrar los dos extremos de cada red que están más alejados entre sí a lo largo de la red (en la imagen de abajo, sería de D a K). La solución de fuerza bruta a este problema es calcular el camino más corto a lo largo de la red para cada par de orígenes, pero tengo cientos de redes con miles de extremos, por lo que calcular cada posible camino es bastante pesado.
¿Existe una forma óptima de calcular esto sin utilizar la fuerza bruta? ¿Puedo excluir algunos puntos basándome en algunas reglas inteligentes?
EDIT: He añadido una ilustración del camino más largo mencionado por @Alex Tereshenkov para aclarar mi pregunta. El camino negro es el resultado del algoritmo del camino más largo (camino más largo sin repetir ningún vértice). En mi caso, imagina que entras en la red desde cualquiera de las letras y tienes que conducir hasta otra letra lo más rápido que puedas. ¿Qué dos letras son las más difíciles de unir?
3 votos
¡Una habilidad loca para pintar!