Sto cercando l'algoritmo più efficiente per il seguente calcolo:
Ho una traccia gps formata da n punti (possono essere anche migliaia). Questa traccia è il percorso di un velivolo.
Per ogni punto del percorso ho: latitudine, longitudine, tempo e altitudine.
Devo trovare 4 segmenti consecutivi (e quindi 5 punti) la cui somma (distanza) sia la massima possibile.
L'ho risolto con questo metodo che però è troppo laborioso:
1) mi sono calcolato la matrice delle distanze tra ogni punto usando formule di geodetica (trascurando l'altitudine): matrice nxn dove n è il numero dei punti.
2) ho calcolato la lunghezza di tutti i possibili 4 segmenti consecutivi ed ho tenuto la maggiore
Il problema è che il software che ho scritto per fare i calcoli ci ha impiegato 70 secondi per calcolare una piccola traccia di 107 punti. Il tempo maggiore è stato occupato per il punto 2).
Dovrò elaborare tracce molto più grandi, anche di 8000 punti e quindi questo sistema è troppo laborioso per il calcolatore.
Qualche idea per semplificare il processo?