Home / Analizza dal vivo

Analizza dal vivo

Riordina una sequenza di fermate direttamente nel browser.

Questa è una dimostrazione, non il prodotto. Gira interamente dentro il tuo browser: puoi aprire un file di coordinate dal tuo computer, oppure usare quello inventato che trovi qui sotto.

Il file non viene inviato, non viene conservato e non arriva a Nigin. Non è un caricamento e non avvia nessuna analisi: il percorso reale comincia da una conversazione. La demo usa la distanza in linea d'aria, non la rete stradale, e riordina soltanto le fermate: non è il motore di produzione.

Che cos'è questa pagina. È una demo locale di riordinamento di una singola sequenza di fermate. Legge le coordinate dal CSV, usa l'ordine delle righe come sequenza iniziale e cerca una sequenza più corta secondo la distanza geometrica calcolata nel browser.

Non assegna ordini a una flotta, non applica il catalogo completo dei vincoli Nigin e non calcola i percorsi sulla rete stradale. È una demo di una singola rotta: nessuna assegnazione multi-mezzo, nessun vincolo produttivo, nessun routing stradale OSRM o HERE.

Il risultato è dimostrativo e non equivale al report del pilota.

01 — Il file

Apri un file dal tuo computer, oppure prova quello inventato.

Trascina qui un CSV o seleziona il file
Colonne obbligatorie: name, lat, lon · facoltativa: stop_type. Massimo 300 fermate valide, 2 MB.

Il file non deve contenere nomi, numeri di telefono o altri dati personali: per la demo bastano un identificativo e le coordinate.

Formato CSV della demo

02 — Il confronto

Sequenza iniziale e sequenza ricalcolata.

Output dimostrativo — non è un report di pilota Nigin.
Demo locale di riordinamento di una singola sequenza di fermate, eseguita nel browser. Distanze in linea d'aria (Haversine), non sulla rete stradale. Ricerca locale 2-opt e perturbazione double-bridge; risultato euristico, senza garanzia di ottimo globale, fattibilità operativa o risparmio economico.
File: — · Stampato il —
Sequenza iniziale Sequenza ricalcolata Deposito
In attesa di un file
Distanza della sequenza iniziale
—
Ordine delle righe del CSV
Distanza della sequenza ricalcolata
—
Distanza geometrica, non stradale
Differenza
—
Rispetto all'ordine iniziale del CSV
Fermate valide
—
—

Riduzione = (distanza iniziale − distanza ricalcolata) / distanza iniziale × 100. La demo conserva sempre la migliore fra la sequenza iniziale e le sequenze candidate: il risultato non può essere peggiore dell'ordine di partenza, ma può essere identico.

Il PDF eventualmente salvato mediante la funzione di stampa del browser non è il report professionale del pilota.

Segnalazioni sulla lettura del file

    Righe escluse

    RigaIdentificativoMotivo dell'esclusione

    Sequenza ricalcolata

    #IdentificativoRuoloLatLon

    03 — Formato CSV della demo

    Quattro colonne, tre obbligatorie.

    ColonnaObbligatoriaContenuto
    namesìIdentificativo leggibile della fermata. Può essere un codice pseudonimo, per esempio STOP_001. Non serve un vero nome cliente.
    latsìLatitudine in gradi decimali, fra −90 e +90.
    lonsìLongitudine in gradi decimali, fra −180 e +180.
    stop_typenoUno fra depot_start, customer, depot_end.

    Alias accettati dall'intestazione: nome / id / stop per name; latitudine / latitude per lat; lng / long / longitudine / longitude per lon; tipo / type per stop_type. I nomi delle colonne non sono sensibili alle maiuscole.

    name,lat,lon,stop_type DEPOT_START,42.5636,12.6437,depot_start STOP_001,42.5710,12.6540,customer STOP_002,42.5480,12.6250,customer DEPOT_END,42.5636,12.6437,depot_end

    Come vengono trattati i depositi

    Regole applicate

    • ✓ La prima riga con depot_start è la partenza e resta fissa
    • ✓ La prima riga con depot_end è il rientro e resta fissa
    • ✓ Senza depot_end, il percorso si chiude sulla partenza
    • ✓ Senza depot_start, la prima riga valida diventa la partenza
    • ✓ Senza la colonna stop_type, valgono le due regole precedenti

    Casi segnalati

    • ✕ Più di un depot_start: vale il primo, gli altri diventano fermate intermedie
    • ✕ Più di un depot_end: stessa regola
    • ✕ Valori di stop_type diversi dai tre previsti: riga trattata come fermata intermedia
    • ✕ Identificativi ripetuti: la riga è mantenuta e segnalata
    • ✕ La demo non gestisce più depositi né più percorsi nello stesso file

    Ogni caso di questo elenco compare come segnalazione esplicita sopra i risultati: la demo non modifica il file in silenzio.

    Lettura del file

    Il separatore è la virgola, e soltanto quella: il lettore non riconosce il punto e virgola né la tabulazione. Le virgolette doppie sono interpretate secondo la convenzione RFC 4180, quindi un identificativo può contenere il separatore. Il BOM UTF-8 iniziale viene rimosso e il file è letto come UTF-8. Le coordinate accettano sia il punto sia la virgola come separatore decimale. Le righe completamente vuote vengono ignorate senza segnalazione.

    Una riga viene esclusa, con il motivo indicato in tabella, quando il numero di campi non corrisponde all'intestazione, l'identificativo è assente, una coordinata manca, una coordinata non è numerica o una coordinata è fuori intervallo. Il file viene rifiutato per intero quando è vuoto, contiene solo l'intestazione, ha colonne duplicate o non contiene le tre colonne obbligatorie.

    Il motore conosce anche colonne come tw_start, demand e vehicle_id, ma non vanno incluse nel file: nel percorso verificato la loro presenza fa rifiutare l’input prima del calcolo, invece di produrre un risultato parziale che sembrerebbe averle rispettate. Il tracciato che conta è quello della documentazione tecnica.

    04 — Perimetro

    Che cosa ottimizza, e che cosa no.

    Che cosa ottimizza

    • ✓ L'ordine delle fermate di una singola sequenza
    • ✓ Con partenza e rientro tenuti fissi
    • ✓ Secondo la distanza geometrica fra le coordinate

    Che cosa non ottimizza

    • ✕ Assegnazione degli ordini a più mezzi e bilanciamento della flotta
    • ✕ Capacità, finestre temporali, turni e pause
    • ✕ Ritiro-consegna, split, reload, multi-viaggio, backhaul
    • ✕ Compatibilità cliente-mezzo, più depositi, ordini non serviti
    • ✕ Traffico, profili camion, ZTL e vincoli produttivi completi

    Per questi problemi serve il motore produttivo e un perimetro formalizzato.

    05 — Metodo

    Come è calcolata la sequenza.

    ◎

    Distanza geometrica

    Le distanze sono calcolate in linea d'aria sulla superficie terrestre mediante la formula Haversine, con raggio medio terrestre di 6.371,0088 km. I valori sono quindi realmente in chilometri, ma non considerano strade, sensi unici, ponti, montagne, ZTL, divieti o accessibilità dei mezzi.

    ↻

    Ricerca locale e perturbazione

    La demo applica una ricerca locale 2-opt a primo miglioramento, con gli estremi tenuti fissi, e una perturbazione double-bridge all'interno di un ciclo ILS. Sono consentite tre perturbazioni; il ciclo si arresta quando la ricerca locale non trova più miglioramenti e le perturbazioni sono esaurite.

    ⚄

    Casualità

    La perturbazione double-bridge estrae i punti di taglio in modo casuale e non usa un seed fisso. Esecuzioni successive sullo stesso file possono quindi produrre risultati differenti. La soluzione conservata è sempre la migliore incontrata, inclusa quella iniziale.

    Queste tecniche esistono anche altrove. 2-opt e double-bridge sono strumenti classici dell'ottimizzazione combinatoria, presenti anche nel patrimonio algoritmico Nigin, ma qui operano su un problema molto più semplice: la loro presenza non rende questa demo equivalente al motore produttivo. Il motore produttivo Universal Real-World Constrained VRP gestisce assegnazione, sequenza e vincoli nel perimetro configurato; questa pagina non lo esegue e non attiva né verifica le 34 famiglie canoniche di vincoli.

    Nessun ottimo globale garantito. Il risultato è euristico: non dimostra che non esista una sequenza migliore. Non garantisce fattibilità operativa né un risparmio economico, e la differenza può essere nulla.

    06 — Baseline e limiti

    Che cosa rappresenta davvero la distanza iniziale.

    La sequenza iniziale corrisponde all'ordine delle righe nel CSV, salvo le regole esplicitamente applicate ai depositi. Non è, di per sé, il giro realmente eseguito dai tuoi autisti: lo diventa soltanto se sei tu a ordinare le righe secondo la sequenza effettivamente percorsa. Per rappresentare il giro realmente percorso, ordina le righe del CSV nella sequenza effettivamente eseguita.

    ◱

    Limite di dimensione

    La demo si ferma a 300 fermate valide e a 2 MB di file. La soglia non è arbitraria: la ricerca locale costa circa 0,1 secondi di calcolo a 100 fermate, 0,9 a 200 e 3,8 a 300 nella misura eseguita su un motore JavaScript da scrivania. Oltre quella soglia la crescita rende l'attesa inaccettabile su un telefono. Un file più grande non blocca la pagina: viene rifiutato con un messaggio.

    ◷

    Reattività

    Il calcolo è suddiviso in intervalli brevi, così l'interfaccia resta reattiva e la barra di avanzamento mostra lo stato. Su file grandi l'elaborazione richiede comunque tempo: è lavoro reale, non un'animazione.

    07 — Dati

    Che cosa resta nel browser.

    Il contenuto del CSV viene letto e calcolato localmente dal browser. La demo non invia file, coordinate o risultati a Nigin: non esiste, nel codice di questa pagina, alcuna chiamata di rete che trasporti il contenuto del file, e non sono presenti analytics, logging remoto, error reporting o telemetria. Anche i due file scaricabili sono costruiti nel browser.

    Il browser effettua soltanto le richieste necessarie a caricare la pagina e i suoi asset, tutte verso questo stesso sito: i font e la libreria grafica sono ospitati qui, quindi nessun dominio di terze parti riceve il tuo indirizzo IP. L'unico dato conservato localmente è la scelta sul banner dei cookie tecnici.

    08 — Dataset dimostrativo

    Il CSV demo, e che cosa non è.

    Il pulsante «Prova con il CSV demo» carica un dataset sintetico dimostrativo: tredici punti costruiti su coordinate di comuni umbri, con identificativi pseudonimi del tipo STOP_001. Non è un giro reale, non descrive un cliente, non contiene dati personali e non va usato come riferimento di prestazioni.

    Per un confronto su rete stradale e sotto vincoli serve un perimetro distinto.

    Il passo successivo non è caricare un file.

    Il backend produttivo utilizza provider di routing e un modello operativo differente dalla demo locale. Prima di trasmettere dati, verifica finalità, formato, canale e trattamento applicabile.