Home / Capacità e limiti del motore
◇ Matrice sintetica · zero chiamate di rete Motore produttivo · 34 famiglie attive insieme

Fin dove arriva il motore, con tutti i vincoli accesi.

Questa pagina misura una cosa sola: quanto grande può essere il problema perché il motore produttivo restituisca comunque un piano completo, con tutte e 34 le famiglie di vincoli attive nello stesso momento e un secondo programma che ricontrolla il risultato. Non misura quanto quel piano sia vicino al minimo possibile: quella è una prova diversa, ed è stata fatta il 14 agosto su istanze pubbliche — sta qui, con i suoi numeri.

Famiglie di vincoli
34 / 34
attive insieme nello stesso problema, non una alla volta, in ogni singola esecuzione conclusa
Massimo stabile di clienti
88 · 10
clienti con dieci mezzi, 90 servizi, fra 4 minuti e 22 e 4 minuti e 45
Massimo stabile di mezzi
90
con 96 clienti e 98 servizi, fra 3 minuti e 37 e 4 minuti e 2
Ogni massimo dichiarato
4 / 4
quattro esecuzioni riuscite su quattro, due semi ripetuti due volte. Un livello che ne fa tre su quattro non entra in questa pagina come massimo

Campagna del 12 agosto 2026, riconfermata il 14 agosto con il criterio di attivazione più severo. Limite tecnico di 300 secondi per esecuzione su MacBook Air M1. Che cosa significano esattamente, come sono stati ottenuti e che cosa non dicono è scritto qui sotto, per intero.

Stato: quattro assi percorsi, tre massimi stabili. campagna del 12 agosto 2026 · 48 esecuzioni · riconferma del 14 agosto · 12 esecuzioni · quarto asse del 14 agosto · 12 esecuzioni

Il metodo era dichiarato prima del risultato, e non è cambiato: cento iterazioni, limite tecnico di 300 secondi per esecuzione, due semi indipendenti, un livello chiamato stabile solo con quattro esecuzioni riuscite su quattro. I numeri qui sotto sono quelli usciti, compresi quelli che ridimensionano le prove precedenti.

Il quarto asse adesso ha un numero. Era la domanda che farebbe un’azienda — pochi mezzi con molte fermate ciascuno, cioè la forma di un giro vero — e il 14 agosto è stata misurata. Con cinque mezzi e tutte e 34 le famiglie il motore regge 48 clienti, 58 servizi su cinque mezzi, cioè dodici fermate ciascuno, in poco più di un minuto. A 72 clienti, sedici fermate per mezzo, conclude tre volte su quattro. A 96 non conclude più. È la forma più vicina a un giro reale che questa pagina abbia misurato, ed è anche quella che si ferma prima.

Che cosa resta aperto. Una cosa sola, adesso: il comportamento su una matrice stradale vera invece che sintetica, che non è stato misurato e finché non lo sarà resta senza risposta. L’altra, la distanza dall’ottimo su istanze pubbliche, il 14 agosto è stata misurata: sul riordino delle fermate il motore tocca l’ottimo dimostrato, sull’assegnazione dei clienti ai mezzi resta indietro dell’8,5 per cento. I due numeri, e come sono stati ottenuti →

Quattro assi · il tetto dimensionale

Quattro assi, quattro risposte diverse.

Non esiste un numero solo. «Massimo di clienti», «massimo di mezzi» e «quanto può essere lungo un giro» sono domande diverse e hanno risposte diverse, quindi il problema è stato fatto crescere lungo quattro assi separati. Il metodo era dichiarato prima dei risultati, e non è cambiato.

Come cresce il problema
Massimo stabile
Tempo
Primo livello che non conclude
Clienti e mezzi insieme
nessun massimo stabile
288 · 72 ottenuto 1 volta su 4
299,9 s
304 clienti · 76 mezzi
Solo i clienti, flotta ferma a 10 mezzi
88 clienti · 10 mezzi
90 servizi
261,6–285,1 s
96 clienti
Solo il numero di mezzi
90 mezzi · 96 clienti
98 servizi
216,7–241,9 s
106 mezzi
Pochi mezzi, molte fermate ciascuno
48 clienti · 5 mezzi
58 servizi · 72 ottenuto 3 volte su 4
70,4–76,5 s
96 clienti

Che cosa vuol dire «stabile». Quattro esecuzioni riuscite su quattro: due semi diversi, ripetuti due volte ciascuno. Un livello che riesce una volta e fallisce l’altra non entra in questa tabella. È il caso di 98 mezzi, che ha concluso una volta in 282,0 secondi e l’altra no. Ed è il caso di 288 clienti con 72 mezzi: il 12 agosto aveva fatto quattro su quattro fra 260,6 e 263,9 secondi, ma riprovato il 14 agosto ne ha fatta una su quattro, e quell’una ha chiuso a 299,9 secondi su un tetto di 300 — un decimo di secondo. Un numero che ha bisogno di quel margine non è un massimo su cui far contare qualcuno, quindi è sceso qui: resta un risultato ottenuto, non un limite. Ed è il caso di 72 clienti sul quarto asse, che ha concluso tre volte su quattro fra 275,1 e 288,2 secondi: sta nella tabella come risultato ottenuto, non come massimo. E il limite è il tempo, non un guasto: oltre quei numeri il motore non si rompe e non perde consegne, semplicemente impiega più di cinque minuti. Su 48 esecuzioni: 37 concluse, 11 fermate dal tetto di tempo, zero errori e zero esaurimenti di memoria. Memoria massima osservata in una prova conclusa: 218 MiB.

Il contratto di prova, per intero. MacBook Air con processore Apple M1 e 8 GB di memoria, Node v24.15.0. Solutore routelogic-universal-constrained-ils-v1 versione 2.0.0, invocato dal punto d’ingresso produttivo. Cento iterazioni. Limite tecnico 300 secondi. Semi 11 e 29, due ripetizioni ciascuno. Matrice sintetica deterministica calcolata fuori rete: zero chiamate a OSRM, zero chiamate a HERE, zero chiamate di rete.

Risoluzione della ricerca, cioè quanto è stretto il confine. Sull’asse combinato il passo è di 2 celle, cioè 16 clienti e 4 mezzi. Sui due assi singoli è di 8. Sul quarto è di 24 clienti, ed è il più largo dei quattro: fra 48 e 96 restano due livelli non provati. Fra il massimo stabile e il primo livello che non conclude non è stato provato nulla: il confine vero sta in mezzo e non è noto con precisione maggiore di così.

Che cosa dimostra. Che il motore produttivo, con le 34 famiglie attive contemporaneamente nello stesso problema, restituisce un piano fattibile e superato dal controllore indipendente fino a quelle dimensioni, su quella macchina, entro cinque minuti. In ogni esecuzione conclusa: nessun cliente obbligatorio rimasto senza mezzo, una sola invocazione del solutore, nessun ripiego su altri motori, e a parità di seme le stesse impronte cifra per cifra.

Che cosa non dimostra. Non dice nulla sulla qualità delle soluzioni: quanto siano vicine al minimo possibile è una prova diversa, ed è su un’altra pagina. Non dice come si comporti su una matrice stradale reale invece che sintetica. E non è un impegno sui tempi: su un’altra macchina i secondi sono altri.

Da dove vengono questi numeri, per intero. La campagna è stata eseguita il 12 agosto 2026, separatamente dal lavoro sul catalogo dei vincoli. Le impronte SHA-256 dei tre file che decidono i tempi — il metodo ILS, il punto d’ingresso produttivo e il collegamento fra i due — sono identiche a quelle dei file oggi nel repository, verificate una per una: f424b6a1…, 8e053a60…, 36f9f8eb…. I numeri di frontiera appartengono quindi al motore che gira oggi.

Quello che è cambiato dopo, e come è finita. Il 13 agosto il controllo che dichiara una famiglia «attiva» è stato irrigidito — ogni predicato confronta ora il valore osservato con il limite dichiarato dal singolo mezzo — e al verificatore indipendente è stato aggiunto il ricalcolo del confronto col baseline, che prima mancava del tutto. Il 14 agosto i tre vertici sono stati rieseguiti quattro volte ciascuno con quelle regole. Esito: 34 famiglie su 34 e verificatore superato in ognuna delle nove esecuzioni concluse. Il criterio più severo non fa cadere nulla.

Ha fatto cadere un numero, però, ed è il motivo per cui la prima riga della tabella non ha un massimo stabile: 288 clienti con 72 mezzi ha fatto una su quattro. Il file della riconferma è scaricabile insieme a quello della campagna.

Quanto è stretta questa misura. È una misura a cronometro, e la riesecuzione del 14 agosto lo ha mostrato in modo utile: i due assi con un minuto o più di margine si sono riprodotti senza incertezze, quello che ne aveva tredici secondi no. È il motivo per cui questa pagina pubblica i due numeri che reggono e non il più grande. Un massimo che dipende dal decimo di secondo non è un massimo: è un record.

Un difetto trovato misurando il quarto asse, e corretto. Il programma della campagna dichiarava nel proprio commento la regola dei quattro su quattro, ma nel codice ne applicava un’altra: eseguiva le due ripetizioni di conferma e ne buttava via l’esito, quindi «stabile» voleva dire due esecuzioni su due. Il quarto asse lo ha reso visibile — 72 clienti usciva PASS, PASS, PASS, TIMEOUT e veniva riportato come massimo stabile. Il 14 agosto la regola è stata resa asimmetrica ed esplicita: per dichiarare stabile un livello servono quattro esecuzioni su quattro, per scartarlo bastano i due fallimenti della prima ripetizione. Affermare costa più che negare. Con la regola corretta il quarto asse dà 48, non 72.

I numeri degli altri assi non dipendono da quel difetto: vengono dalla riconferma del 14 agosto, fatta da un programma diverso che il quattro su quattro lo controllava già, ed è la stessa riconferma che ha fatto cadere 288 clienti con 72 mezzi. Il file della campagna del 12 agosto, scaricabile come tutti gli altri, è stato prodotto prima della correzione: resta pubblicato com’è, con questa nota accanto.

Il limite che serviva a te, e adesso ha un numero. Guarda il rapporto fra clienti e mezzi: 88 su 10 fanno nove fermate per mezzo; 96 su 90 poco più di una. Nessuno dei primi tre assi ha la forma di un giro reale, ed è per questo che il quarto è stato misurato a parte: mezzi fermi a cinque, clienti che crescono.

Come si legge il numero della quarta riga. Il livello conta i clienti che crescono, non tutte le consegne: a 48 il problema ne ha in tutto 56, per 58 servizi su cinque mezzi, perché il caso di prova porta con sé un nucleo fisso di otto lavori che serve ad accendere le 34 famiglie. Le dodici fermate per mezzo vengono da 58 diviso 5, non da 48 diviso 5.

La risposta è questa, e non è comoda. Alla domanda «con tre furgoni e centoventi consegne al giorno, ce la fa?» la misura risponde no: a 96 clienti liberi il motore non conclude più entro cinque minuti, né con un seme né con l’altro. Ce la fa stabilmente a dodici fermate per mezzo, e tre volte su quattro a sedici. Un giro di distribuzione vero ne ha venti, trenta, quaranta: la metà di quello che serve, o poco più.

Il limite resta il tempo, non un guasto: anche qui, oltre quei numeri, il motore non si rompe e non perde consegne, impiega più di cinque minuti. Su una macchina diversa da un MacBook Air M1, o con un limite di tempo diverso da cinque minuti, i numeri sono altri — ma questa pagina dichiara quelli che ha misurato, non quelli che spera.

Prova conclusa · la struttura

Tutti i vincoli accesi insieme, e un controllore che non è il solutore.

Questa prova non misura una dimensione e non misura un tempo. Risponde a una sola domanda: quando il motore produttivo lavora con tutte le famiglie di vincoli attive contemporaneamente nello stesso problema, il piano che restituisce è completo e regge a un controllo fatto da un programma diverso? La risposta è documentata, ed è indipendente da quanto fosse carica la macchina.

✓

34 famiglie su 34, nello stesso problema

Non provate una alla volta: attive tutte insieme, nella stessa esecuzione. Il controllo di attivazione confronta il valore osservato con il limite dichiarato dal singolo mezzo, quindi cadrebbe se il motore smettesse di applicare la famiglia: messo alla prova con ventidue manomissioni della soluzione, ognuna delle 34 cade in almeno una. In ogni esecuzione conclusa il conteggio viene registrato nel file dei risultati: nessuna famiglia mancante, mai. Il catalogo, riga per riga, con lo stato della prova →

✓

Verificatore indipendente

Un secondo programma di 674 righe che non usa il solutore: ricalcola per conto proprio e confronta. Se non torna, l’esecuzione si ferma e non produce alcun risultato. Nessuna esecuzione è stata conclusa con il controllo fallito.

✓

Nessun cliente perso, nessun ripiego

Nessun cliente obbligatorio è rimasto senza mezzo. Una sola invocazione del solutore per esecuzione, nessun ripiego su altri motori: il risultato è di quel motore lì, non di un sostituto chiamato quando il primo non ce la fa.

✓

Rieseguibile, e legata a questo codice

Con lo stesso seme la stessa prova ridà le stesse impronte, cifra per cifra. Il file dei risultati registra l’impronta SHA-256 dei file su cui la prova è girata. Le tre che riguardano il motore — metodo ILS, punto d’ingresso produttivo e collegamento fra i due — coincidono con i file oggi presenti nel repository, verificate una per una. Il caso di prova e il programma della campagna sono scaricabili.

Che cosa dimostra. Che le 34 famiglie non sono una lista di funzioni scritte nel codice, ma vincoli che il motore rispetta davvero quando sono accesi tutti insieme, con un controllo esterno che lo conferma.

Che cosa non dimostra. Non dice nulla sulla qualità delle soluzioni: quanto siano vicine al minimo possibile è misurato altrove. Non dice fino a che dimensione il motore arriva: quella è la misura qui sopra, ed è una prova diversa da questa. E non dice come si comporti su una matrice stradale reale invece che sintetica.

Limiti

Che cosa non è ancora misurato.

Questa pagina si chiama «capacità e limiti», e i limiti vanno scritti con la stessa precisione dei risultati. Le prove qui sotto che non hanno la spunta non esistono: non sono in corso di pubblicazione, non sono riservate, semplicemente non sono state fatte. Quando ci saranno, compariranno su questa pagina con il loro numero, anche se il numero non ci farà comodo.

✓

Distanza dall’ottimo — misurata, e sono due numeri diversi

Era la casella gialla di questa pagina. Il 14 agosto il confronto è stato fatto su quindici istanze pubbliche, con l’avversario scelto da altri: su TSPLIB, dove il minimo è dimostrato, il motore lo tocca esattamente in quattro casi su sei e lo scarto mediano è zero; su CVRPLIB, dove bisogna anche distribuire i clienti fra i mezzi, resta indietro di un 8,46% mediano. Sa mettere in fila, sa assegnare peggio. La misura, per intero →

✓

La forma di un giro reale — misurata, e il numero è basso

Era la casella rossa di questa pagina. Il 14 agosto il quarto asse è stato misurato tenendo i mezzi fermi a cinque: il motore regge stabilmente dodici fermate per mezzo e tre volte su quattro sedici. Un giro vero ne ha venti, trenta, quaranta, quindi alla domanda «tre furgoni e centoventi consegne» la risposta misurata è no. Il numero c’è, e non ci fa comodo: era il patto.

—

Comportamento su rete stradale vera — non misurato

La campagna gira su una matrice sintetica deterministica, calcolata fuori rete: è una scelta voluta, perché rende la prova ripetibile e toglie di mezzo la latenza di un fornitore di distanze. Ma vuol dire che questi tempi non comprendono il costo di ottenere le distanze reali, e che su una matrice stradale vera il comportamento del motore non è stato osservato.

✓

Tetto dimensionale — misurato su quattro assi

Era la casella vuota di questa pagina. Adesso i quattro assi sono tutti percorsi, e tre hanno un massimo stabile: 88 clienti con 10 mezzi, 90 mezzi, 48 clienti con 5 mezzi. Sul quarto, quello che fa crescere clienti e mezzi insieme, la riesecuzione del 14 agosto non ha confermato nessun massimo stabile. I numeri, il contratto di prova e i limiti della misura sono qui sopra.

Una regola che ci diamo. Nessuna capacità viene dichiarata su questo sito perché esiste il codice che la implementa. Viene dichiarata quando esiste una prova che chiunque può rieseguire ottenendo lo stesso risultato. Fino ad allora sta qui, fra i limiti.

Dove guardare adesso

Le altre due pagine che rispondono a domande diverse.

Il meccanismo, disegnato

Questa pagina dice quanto regge il motore, non quanto è buono il piano che produce. Il piano si vede sullo scenario sintetico: 250 fermate e 10 rotte in Umbria, con le regole di generazione dichiarate e i file per rifare i conti. Dati inventati, non un cliente reale. Vai allo scenario sintetico →

Le 34 famiglie, una per una

Qui sopra si dice «34 famiglie attive insieme». Il catalogo le elenca tutte, con funzione, dati necessari, limiti e lo stato della prova riga per riga — e i due comandi per riprodurla. Vai al catalogo dei vincoli →

E il caso reale. Questa pagina e lo scenario sintetico lavorano su dati costruiti da noi. L’unico calcolo eseguito su dati di un’azienda vera è il confronto tecnico su IDEA Global Service, ed è l’unico posto in cui compaiono indirizzi e giornate reali.