J'ai un grand ensemble de réseaux linéaires et je voudrais trouver les deux extrémités de chaque réseau qui sont les plus éloignées l'une de l'autre le long du réseau (sur l'image ci-dessous, ce serait D à K). La solution par force brute à ce problème est de calculer le chemin le plus court le long du réseau pour chaque paire d'origine, mais j'ai des centaines de réseaux avec des milliers d'extrémités, donc le calcul de chaque chemin possible est assez lourd.
Existe-t-il un moyen optimal de calculer cela sans utiliser la force brute? Puis-je exclure certains points en fonction de règles intelligentes?
EDIT: J'ai ajouté une illustration du plus long chemin mentionné par @Alex Tereshenkov afin de clarifier ma question. Le chemin noir est le résultat de l'algorithme du chemin le plus long (le chemin le plus long sans répéter aucun sommet). Dans mon cas, imaginez que vous entrez dans le réseau à partir de l'une des lettres et que vous devez conduire vers une autre lettre aussi vite que possible. Quelles sont les deux lettres les plus difficiles à joindre?