Ho lavorato per un po 'ora su un servizio che genera rotte ottimali per un determinato set di indirizzi e veicoli (problema di routing del veicolo / problema del commesso viaggiatore).
Ora funziona tutto bene, ma il collo di bottiglia è ottenere la distanza / tempo tra due indirizzi utilizzati per il calcolo. Attualmente utilizziamo i servizi web come google / mapquest per richiedere la distanza e archiviare il risultato per la memorizzazione nella cache. Quindi richiediamo solo le distanze una volta.
Al momento abbiamo circa 100 milioni di record in cache e mi sono chiesto: come fa Google a fare questo per ogni indirizzo nel mondo? Stiamo parlando di centinaia di miliardi di combinazioni.
Anche solo memorizzare ogni angolo in una mappa stradale e poi calcolare ogni strada dritta con un form di haversine e aggiungere i risultati comporterebbe enormi quantità di dati.
Ora capisco che Google può gestire enormi quantità di dati, ma ci sono anche molte piccole aziende che forniscono informazioni a distanza / via. Memorizzano tutti questi dati da soli o c'è qualche metodo magico di calcolo che mi manca?