Home / Verifica
Scaricabili subito · nessuna richiesta via email

Gli artefatti: i file su cui poggiano i numeri.

Su questo sito la parola verificabile compare molte volte. Questa pagina esiste perché quella parola abbia un significato: qui ci sono i file, con la loro impronta intera e i comandi per controllarli. Non c’è un modulo da compilare e non c’è un indirizzo a cui scrivere. Si scaricano e basta.

Disponibili adesso

Diciotto file, con la loro impronta.

nigin_simulazione_umbria.py

Lo script che genera lo scenario sintetico dell’Umbria: sceglie i venti comuni con i pesi dichiarati, sparge le fermate, forma i dieci gruppi e riordina le sequenze. È il file identificato da questa impronta fin dalla prima pubblicazione dello scenario.

8.970 byte · usato in Lo scenario sintetico

2421bf5a9b3a564d7af83b0a776dd80ffc1433f719737d13ada03d1709f412eb

nigin-mappa-umbria.json

Il dataset disegnato dalla mappa: le duecentocinquanta fermate, i dieci gruppi e le geometrie delle rotte calcolate su OpenStreetMap. È lo stesso file che il tuo browser scarica aprendo la pagina dello scenario, quindi lo stai già ricevendo: qui è solo dichiarato.

3.111.678 byte · usato in Lo scenario sintetico

a593ef02e345119a9029933e0b4daf73a5437de82e1d43c6379db7e2f7f2a1a9

universal_vrp_all34_stress_case.js

Il caso di prova con tutte e 34 le famiglie di vincoli accese insieme. Dentro c’è anche il blocco dei predicati di attivazione: sono le righe che decidono quando una famiglia si dichiara attiva, e sono la cosa da leggere per giudicare se «34 su 34» vuol dire qualcosa.

28.382 byte · usato in Il catalogo delle 34 famiglie

32d7a8805ab0b43302ef3c4c873fd0e3501a0187003a340f25472b222facd9d5

universal_vrp_all34_max_stress.py

Il programma che conduce la campagna di misura: i quattro assi, il passo di ricerca, i due semi, le due ripetizioni e la regola che chiama stabile un livello solo con quattro esecuzioni riuscite su quattro. È il metodo, in forma eseguibile invece che descritta. Corretto il 14 agosto 2026: fino a quel giorno le due ripetizioni venivano eseguite e il loro esito ignorato, quindi il codice applicava due su due mentre il commento dichiarava quattro su quattro. Adesso la regola è asimmetrica ed esplicita — quattro su quattro per affermare, due fallimenti per negare — ed è scritta nel codice, non solo nel commento.

10.614 byte · usato in Capacità e limiti del motore

fbdae8161a546896e04142a5045a763f40370eb772dbfb1853b4873d66ae0213

campagna-34-famiglie-20260812.json

Il file grezzo della campagna: tutte e 48 le esecuzioni, una per una, con esito, secondi impiegati, famiglie attive, impronta della soluzione e impronta della verifica. È il file che permette di controllare che i numeri pubblicati siano quelli usciti e non una selezione comoda: le 37 concluse e le 11 fermate dal tetto di tempo sono tutte lì dentro, comprese quelle che ridimensionano le prove precedenti.

146.230 byte · usato in Capacità e limiti del motore

9d47cf9766d21c5cae284efe0352fd8550de0ac62d0c7274fc7e7ae9229479e5

matrici-idea-15042026.json

Le matrici del caso reale: per ognuna delle cinque giornate, le distanze e le durate fra tutti i punti, la sequenza salvata dal solutore e l’ordine dell’elenco fornito dall’azienda. I punti sono numerati: l’indice 0 è il deposito, e nel file non compaiono coordinate, indirizzi né nomi. Bastano per rifare i chilometri; non bastano per sapere dove abitano i clienti di qualcun altro.

17.436 byte · usato in Confronto tecnico IDEA Global Service

9937dcc9bbe264615a1849568707493195a325e17316d32c786e94cf33c5cf5d

verifica-idea.py

Il programma che rifa’ i conti leggendo soltanto il file qui accanto: ricostruisce il giro a naso, calcola l’ottimo esatto con Held-Karp — che esplora tutte le sequenze, quindi è un minimo dimostrato e non una stima — e confronta i totali con quelli pubblicati. Se un numero non torna, esce con errore e dice quale. Non serve OSRM, non serve il motore, non serve chiedere niente a noi.

4.032 byte · python3 verifica-idea.py matrici-idea-15042026.json

2085a0c71857b3afded01113390bf23c266f4064e4029d9af855cec2e8306f2d

conferma-tre-vertici-risultati.json

La riconferma del 14 agosto: i tre massimi trovati in campagna, rieseguiti quattro volte ciascuno con il criterio di attivazione irrigidito il 13 e il verificatore che ricalcola anche il confronto col baseline. Dodici esecuzioni, con tempi e impronte. È il file che documenta sia la conferma delle 34 famiglie sia la caduta di un numero che questa pagina prima dichiarava.

6.882 byte · usato in Capacità e limiti del motore

8c03775b694c74c13d306d39c3821cd35573aeb708b96d6a8bfdd63f08dba2c4

conferma-tre-vertici.py

Il programma che ha prodotto quel file: nessuna ricerca, solo i tre vertici già noti riprovati due semi per due ripetizioni, con lo stesso tetto di 300 secondi. Registra anche le impronte dei sei file su cui la prova è girata, motore e caso di prova compresi.

5.412 byte · python3 conferma-tre-vertici.py

11a26a7f82863775c5050046410cfcc123ec8d9265c7173d8998d11c06ac904f

quarto-asse-risultati.json

Il quarto asse, quello con la forma di un giro reale: mezzi fermi a cinque e clienti che crescono. Dodici esecuzioni, una per riga, con esito, secondi, famiglie attive e impronte. Dentro si legge anche perché il massimo è 48 e non 72: al livello 72 le righe sono PASS, PASS, PASS, TIMEOUT.

33.371 byte · usato in Capacità e limiti del motore

90215e130155b3c6eaf7e60b64ad39c728e9cfe1a41f3927648a78f1b53298e5

misura-quarto-asse.py

Il programma che ha prodotto quel file. Non contiene metodo proprio: riusa senza modificarli il programma della campagna e il caso di prova, quindi tetto di 300 secondi, semi e regola dei quattro su quattro sono gli stessi degli altri tre assi. Cambia una cosa sola, e la dichiara: i mezzi generici restano tre.

1.860 byte · python3 misura-quarto-asse.py

4e46d6146d98cb88ec50126566c85974b6008e06110bfbeb4a075e28afdfa965

qualita-campaign-a-config.json

Il contratto della campagna sulla distanza dall’ottimo, bloccato prima che partisse la prima esecuzione: le quindici istanze scelte in anticipo con dimensione e valore di riferimento, l’indirizzo ufficiale da cui ognuna è stata scaricata con la sua impronta, la formula di distanza del benchmark, i due semi, le cento iterazioni e il tetto di 300 secondi. È il file che rende controllabile che le istanze non siano state scelte dopo aver visto i risultati.

13.363 byte · usato in Distanza dall’ottimo

c42efce6f3e5b469e1a2b8d9fac84e3c831167c5223e52ed0da303e96f1bc51c

qualita-campaign-a-results.json

Il file grezzo: tutte e 60 le esecuzioni, una per riga, con costo ottenuto, scarto percentuale, secondi, iterazioni, impronta della soluzione, esito del verificatore indipendente e impronta dei quattordici file del motore su cui l’esecuzione è girata. Ci sono anche le sedici fuori tempo e le otto che non hanno prodotto alcun piano: sono i numeri che non ci fanno comodo, ed è il motivo per cui il file è qui.

603.334 byte · usato in Distanza dall’ottimo

888248267e55d71c9c7c549b58c971e5cfd83509e20ff6bc58cd613a3988e519

qualita-campaign-a.log

Il registro cronologico della campagna, riga per riga, nell’ordine in cui le esecuzioni sono avvenute: inizio, esito, costo, scarto, secondi e impronta. Serve a confrontare l’ordine reale con il file dei risultati, e a vedere che non ci sono buchi fra la riga 1 e la riga 60.

15.011 byte · usato in Distanza dall’ottimo

a3f1f608b40ca6d3dfcbde065cb6c9012e3ce94a355779d3cbe26c0fbd5c6515

qualita-run_campaign_a.py

Il programma che conduce la campagna: legge il contratto, scarica nulla di nascosto, invoca il motore dal punto d’ingresso produttivo una volta per esecuzione, applica il tetto di tempo e scrive ogni riga solo dopo che il verificatore indipendente l’ha superata. È il metodo in forma eseguibile invece che descritta.

21.458 byte · python3 qualita-run_campaign_a.py

20fbeef32e70329ce609d9fa47b72943cffbd31aa8fa57d1777a358c665f76b0

qualita-public_benchmark_independent_verifier.py

Il controllore che non usa il solutore: ricostruisce le distanze dalle coordinate dell’istanza con la formula del benchmark, risomma i percorsi da capo, controlla che ogni cliente sia servito esattamente una volta e che il costo minimizzato sia soltanto la somma delle distanze. Se un controllo fallisce, l’esecuzione non entra fra i risultati. È il file da leggere per giudicare se lo scarto pubblicato significhi qualcosa.

10.321 byte · usato in Distanza dall’ottimo

c2504160f813c46a53240c02bd92e2bdb6d51553fe895dfdaca494204a818bea

qualita-public_benchmark_reader.py

Il lettore dei formati TSPLIB e CVRPLIB: apre i file delle istanze così come sono stati scaricati e ne ricava coordinate, domande, portata e numero di mezzi. Sta qui perché un errore di lettura del formato falserebbe ogni scarto senza farsi notare da nessun’altra parte.

10.453 byte · usato in Distanza dall’ottimo

385732b3847a1b70e9a0a9cdfcc6500baf446738b57312d465998909830cd16d

qualita-public_quality_case.js

Il caso di prova che traduce un’istanza pubblica nella forma che il motore accetta: nessun costo per mezzo, nessun costo per ora, nessuna penale che permetta di lasciare un cliente non servito. È il file che decide se il problema risolto sia davvero quello del benchmark, e per questo è corto: quattromila byte che si leggono in dieci minuti.

4.418 byte · usato in Distanza dall’ottimo

43d95de0b1ff201b19298303b42430cb0882780a52efc537b2c424653e5238cc

Come si controlla

Due comandi, e uno serve a poco.

1. L’identità del file. Verifica che la copia che hai scaricato sia byte per byte quella dichiarata qui sopra.

shasum -a 256 nigin_simulazione_umbria.py     # macOS
sha256sum nigin_simulazione_umbria.py         # Linux

2. Il contenuto. Questo è quello che conta davvero: aprire il file e leggerlo. Lo scenario dell’Umbria dichiara i pesi con cui sceglie i comuni e la deviazione con cui sparge le fermate; il caso di prova dichiara, riga per riga, quando una famiglia di vincoli si considera attiva; la campagna dichiara il passo di ricerca e la regola di stabilità. Se una di quelle regole ti sembra compiacente, l’hai trovata leggendo, non fidandoti.

L’impronta prova l’identità dei byte, non la correttezza del risultato: non impedisce che una tabella sia stata scritta a mano, e non è una validazione indipendente. Serve a una cosa sola, e quella la fa.

Quello che non troverai

Due cose non sono qui, ed è una scelta.

Quello che non troverai qui, ed è una scelta. Il motore non è pubblicato. Questi file permettono di leggere il metodo e di giudicare se le regole con cui misuriamo siano oneste; non permettono di rieseguire il solutore, che resta il prodotto.

E non troverai gli indirizzi dei clienti. Il caso IDEA è pubblicato con l’autorizzazione scritta dell’azienda, ma l’autorizzazione copre la dimostrazione, non la diffusione di un elenco di punti di consegna altrui. Quando le matrici arriveranno, i punti saranno numerati: i chilometri si ricalcolano lo stesso, gli indirizzi restano di chi è.