Ho un ampio set di reti lineari e vorrei trovare le due estremità di ciascuna rete che sono le più distanti tra loro lungo la rete (nell'immagine sotto, sarebbe da D a K). La soluzione della forza bruta a questo problema è calcolare il percorso più breve lungo la rete per ogni coppia di origine, ma ho centinaia di reti con migliaia di estremità, quindi calcolare ogni possibile percorso è piuttosto pesante.
C'è un modo ottimale per calcolare questo senza usare la forza bruta? Posso escludere alcuni punti in base ad alcune regole intelligenti?
EDIT: ho aggiunto un'illustrazione del percorso più lungo menzionato da @Alex Tereshenkov al fine di chiarire la mia domanda. Il percorso nero è il risultato dell'algoritmo del percorso più lungo (percorso più lungo senza ripetere i vertici). Nel mio caso, immagina di entrare nella rete da una qualsiasi delle lettere e di dover guidare verso un'altra lettera il più velocemente possibile. Quali sono le due lettere più difficili da unire?