Semplifica il tuo flusso di lavoro: cerca miniwebtool.
Aggiungi
Pagina Iniziale > Matematica > Operazioni matematiche avanzate > Risolutore del Commesso Viaggiatore (TSP)
 

Risolutore del Commesso Viaggiatore (TSP)

Trova il percorso più breve che visita ogni città esattamente una volta e torna all'inizio. Programmazione dinamica esatta (Held-Karp) per istanze piccole ed euristiche nearest-neighbor + 2-opt per quelle più grandi. Accetta coordinate o una matrice di adiacenza e genera un tour animato in SVG.

Risolutore del Commesso Viaggiatore (TSP)
Linee coordinate: A, 10, 20 o 10 20. Righe matrice: 0 10 15 20 — una riga per linea, quadrata, non negativa. Max 40 città.
Etichette separate da virgola o spazio, una per ogni riga della matrice. Default A, B, C… se omesso.

Embed Risolutore del Commesso Viaggiatore (TSP) Widget

Risolutore del Commesso Viaggiatore (TSP)

Il Risolutore del Commesso Viaggiatore è un calcolatore pratico ed educativo per il classico Problema del Commesso Viaggiatore (TSP): dato un insieme di città e le distanze tra le coppie, trovare il tour più breve possibile che visiti ogni città esattamente una volta e torni alla partenza. Questo risolutore accetta sia coordinate planari che una matrice di distanza personalizzata, seleziona automaticamente il miglior algoritmo in base alla dimensione del problema e renderizza il tour risultante come una mappa SVG animata.

Cos'è il Problema del Commesso Viaggiatore?

Formalmente, dato un grafo pesato completo G = (V, E) con un insieme di vertici V = {1, 2, ..., n} e pesi degli archi d(i, j), il TSP cerca una permutazione π dei vertici che minimizzi:

minimizza Σi=1n-1 d(π(i), π(i+1)) + d(π(n), π(1))

L'ultimo termine chiude il ciclo. Il TSP è uno dei problemi più antichi e studiati nell'ottimizzazione combinatoria — è NP-hard nel caso generale, il che significa che non esiste un algoritmo noto che risolva ogni istanza in tempo polinomiale. Nonostante ciò, appare in innumerevoli applicazioni del mondo reale: routing di veicoli, foratura di circuiti stampati (PCB), sequenziamento del DNA, percorsi di prelievo nei magazzini, programmi di osservazione astronomica e persino consegna della posta rurale.

Come Funziona Questo Risolutore

Programmazione Dinamica Held–Karp (Esatta)

Per istanze piccole (fino a 12 città) il risolutore calcola il tour dimostrabilmente ottimale utilizzando l'algoritmo Held–Karp, pubblicato indipendentemente da Richard Bellman e Michael Held & Richard Karp nel 1962. La ricorrenza chiave, dove C(S, j) è il percorso più breve dal vertice 1 al vertice j visitando esattamente il sottoinsieme S:

C(S, j) = mink ∈ S \ {j} [ C(S \ {j}, k) + d(k, j) ]

Il costo del tour ottimale è quindi minj [C({1,...,n}, j) + d(j, 1)]. Held–Karp gira in tempo O(2n · n²) e memoria O(2n · n) — un enorme miglioramento rispetto alla forza bruta n!, ma comunque esponenziale. Oltre le 20 città circa, l'impronta di memoria diventa impraticabile.

Nearest-Neighbor + 2-opt (Euristico)

Per istanze più grandi, il risolutore utilizza un'euristica a due fasi. Innanzitutto, il Nearest-Neighbor costruisce un tour rapido camminando avidamente verso la città non visitata più vicina da ogni vertice di partenza. Il risolutore prova molti vertici di partenza e mantiene il miglior tour. Successivamente, la ricerca locale 2-opt migliora il tour rimuovendo iterativamente due archi e ricollegando i due percorsi risultanti nell'unico altro modo possibile:

Prima: ... a — b ... c — d ... Dopo lo scambio 2-opt: ... a — c ... b — d ... Se d(a,c) + d(b,d) < d(a,b) + d(c,d) → accetta lo scambio, inverti il subtour b..c

Geometricamente, il 2-opt rimuove ogni "incrocio" nel tour: due segmenti che si incrociano possono sempre essere disincrociati per ottenere una lunghezza totale inferiore. L'algoritmo si ferma a un ottimo locale dove nessuno scambio singolo aiuta, chiamato tour 2-ottimale. Su istanze euclidee realistiche, il 2-opt trova tipicamente tour entro il 2-5% del vero ottimo in millisecondi.

Formati di Input

Modalità coordinate (x, y)

Una città per riga. Ogni riga è etichetta, x, y — l'etichetta è opzionale. Il risolutore calcola automaticamente le distanze euclidee e visualizza le città nelle loro posizioni reali.

A, 10, 20 B, 40, 70 C, 75, 30 Parigi: 2.35, 48.86 10 20 ← auto-etichettata C1

Modalità matrice di distanza

Una matrice quadrata n × n di distanze non negative, una riga per riga, valori separati da spazi o virgole. Le matrici possono essere simmetriche o asimmetriche — le matrici asimmetriche modellano strade a senso unico, prezzi dei voli con disponibilità variabile e viaggi dipendenti dal vento. È possibile fornire etichette nel campo Etichette matrice.

0 10 15 20 10 0 35 25 15 35 0 30 20 25 30 0

Confronto tra Algoritmi

Algoritmo Complessità temporale Memoria Qualità del risultato Dimensione pratica
Forza bruta O(n!) O(n) Ottimale n ≤ 10
Held–Karp DP O(2n · n²) O(2n · n) Ottimale n ≤ 20
Nearest-Neighbor O(n²) O(n) ~25% peggiore dell'ottimale n ≤ migliaia
NN + 2-opt O(n² · passaggi) O(n) ~2–5% peggiore dell'ottimale n ≤ centinaia

Come Usare Questo Risolutore

  1. Scegli una modalità di input. Coordinate se le tue città hanno posizioni (x, y) significative; Matrice di distanza se i costi non sono euclidei o sono asimmetrici.
  2. Incolla o digita i tuoi dati. Una città o riga per riga. Clicca su un pulsante di esempio rapido sopra il modulo per precompilare un esempio valido.
  3. Scegli l'algoritmo. Lascia su Auto per l'impostazione predefinita corretta: Held–Karp quando l'istanza è abbastanza piccola per l'ottimalità dimostrabile, NN + 2-opt altrimenti. Forza un algoritmo specifico se desideri fare un confronto.
  4. Scegli chiuso o aperto. Un tour chiuso ritorna alla partenza — il TSP tradizionale. La modalità percorso aperto risolve il problema correlato del Cammino Hamiltoniano in cui il venditore finisce in una città diversa.
  5. Clicca su Risolvi. La pagina dei risultati mostra la lunghezza totale del tour, un SVG animato del percorso (clicca "Riproduci animazione" per rivederlo), la sequenza completa delle città, un dettaglio per ogni arco e la matrice di distanza con gli archi del tour evidenziati.

Esempio Svolto

Consideriamo cinque città — un rettangolo più una punta: A (0, 0), B (4, 0), C (4, 3), D (0, 3), E (2, 5). Il risolutore restituisce:

Applicazioni nel Mondo Reale

Domande Frequenti

Cos'è il Problema del Commesso Viaggiatore?

Il Problema del Commesso Viaggiatore (TSP) richiede di trovare il tour più breve possibile che visiti ogni città esattamente una volta e torni alla città di partenza. È uno dei problemi più famosi nell'ottimizzazione combinatoria ed è NP-hard nel caso generale, il che significa che non esiste alcun algoritmo noto che risolva ogni istanza in tempo polinomiale.

Cos'è l'algoritmo Held–Karp?

Held–Karp è un algoritmo di programmazione dinamica che risolve il TSP esattamente in tempo O(2n · n²) e memoria O(2n · n). È drasticamente più veloce della forza bruta (n fattoriale) ma comunque esponenziale, quindi in pratica viene utilizzato solo per istanze fino a circa 20 città. Questo risolutore usa Held–Karp quando ci sono 12 o meno città.

Cos'è il 2-opt e perché viene usato?

Il 2-opt è un'euristica di ricerca locale che rimuove ripetutamente due archi dal tour corrente e ricollega i due percorsi risultanti nell'altro modo possibile. Quando il nuovo tour è più breve, lo scambio viene mantenuto. Il 2-opt gira in tempo polinomiale per iterazione e trova costantemente tour entro pochi punti percentuali dall'ottimale, motivo per cui è l'euristica classica di riferimento per istanze TSP più grandi.

Quando dovrei usare le coordinate rispetto a una matrice di distanza?

Usa le coordinate quando le tue città si trovano su un piano con distanze in linea retta — per esempio punti su una mappa, posizioni di magazzino o fori su un circuito stampato. Usa una matrice di distanza quando il costo a coppie non è euclideo — per esempio prezzi dei voli, tempi di viaggio con traffico, distanze stradali a senso unico o costi asimmetrici. La modalità matrice accetta qualsiasi distanza non negativa, anche asimmetrica.

La soluzione 2-opt è ottimale?

No, il 2-opt restituisce un tour 2-ottimale, il che significa che nessuna singola coppia di archi può essere scambiata per produrre un percorso più breve. Questo è un ottimo locale e solitamente si trova entro pochi punti percentuali dall'ottimo globale su istanze ben strutturate, ma non è garantito che sia il migliore in assoluto. Per un tour dimostrabilmente ottimale su istanze piccole, scegli Held–Karp.

Questo strumento supporta matrici di distanza asimmetriche?

Sì. Nella modalità Matrice di distanza puoi inserire qualsiasi matrice quadrata non negativa, incluse quelle asimmetriche dove D[i][j] differisce da D[j][i]. Sia Held–Karp che 2-opt gestiscono correttamente le matrici asimmetriche. Questo è utile per problemi di routing nel mondo reale con strade a senso unico, traffico o costi di volo dipendenti dal vento.

Ulteriori Approfondimenti

Cita questo contenuto, pagina o strumento come:

"Risolutore del Commesso Viaggiatore (TSP)" su https://MiniWebtool.com/it/risolutore-del-commesso-viaggiatore-tsp/ di MiniWebtool, https://MiniWebtool.com/

dal team di miniwebtool. Aggiornato: 21 apr 2026

Puoi anche provare il nostro Risolutore di Matematica AI GPT per risolvere i tuoi problemi matematici attraverso domande e risposte in linguaggio naturale.

Altri strumenti correlati:

Operazioni matematiche avanzate:

Strumenti in primo piano:

Calcolatore dei numeri degli angeliCalcolatrice di Compatibilità Amorosa📅 Calcolatore di DataCalcolatore Segno Solare, Lunare e Ascendente 🌞🌙✨Calcolatore dei VotiCalcolatore di combinazioneCalcolatore di SommeConvertitore da esadecimale a decimaleEstrattore di Immagini da VideoCalcolatore di Compatibilità dei Segni LunariConvertitore di Piedi e Pollici in CentimetriRimuovi spaziCalcolatore del Giorno dell'Anno - Che giorno dell'anno è oggi?Calcolatore EsadecimaleCalcolatore Binario⏱️ Calcolatore di OreFormattatore di TestoStrumento online per rimuovere la punteggiaturaGeneratore di CrucipuzzleQual è il mio numero fortunato?Divisore di ImmaginiGeneratore di parole casuali in ingleseCalcolatore di ArrotondamentoInverti TestoSelettore di Film CasualeGeneratore di stringhe casualiGeneratore di Colori CasualiRicerca ID Utente InstagramCalcolatore di ScalaCalcolatore per ridurre frazioniGeneratore casuale di animaliGeneratore di oggetti casualiRicerca ID Utente FacebookCalcolatrice di NumerologiaSelettore di Nome CasualeGeneratore di Citazioni Casualiconvertitore da ppm a percentualeGeneratore di Gruppi CasualiPalla Magica 8Convertitore da decimale a esadecimaleConvertitore da Esadecimale a BinarioCalcolatore di radice quadrataConvertitore di Tempo in DecimaliConvertitore di Frazione in PercentualeContatore di SillabeOrdina NumeriCalcolatore della Congettura di CollatzCalcolatore del Numero dell'AnimaDivisore AudioGeneratore di Date CasualiCalcolatore di Durata del TempoConvertitore FPSCalcolatore di calcestruzzoCalendario del Giorno dell'AnnoCalcolatore del Numero del Nomericerca-indirizzo-MACRisolutore di DisequazioniCalcolatore della Media GeometricaCalcolatore del Segno LunareCalcolatore del SonnoCalcolatore Dimensioni di Stampa e Risoluzione (DPI/PPI)Calcolatore del calcio correttoVerificatore di Nome Utente sui Social MediaCalcolatore di Conversione Scala ModelloConvertitore da Decimale a TempoCalcolatore del numero di percorso di vitaConvertitore in numeri romaniGeneratore di Unisci i PuntiniCalcolatore del deficit caloricoConvertitore da binario a esadecimaleLista di Anni BisestiliCalcolatore Ritmo NuotoCalcolatore di Differenza di ListeGeneratore di anagrammiGeneratore di Carte da Gioco CasualeStrumento Cifrario di CesareCalcolatore del Test Chi-QuadratoCalcolatore della MediaConvertitore da cm a piedi e polliciCalcolatore della deviazione standard - Alta precisioneCalcolatore dell'Aspettativa di VitaGeneratore di Superpotere CasualeCalcolatore della Circonferenza di un EllisseCalcolatore di Voti PonderatiGeneratore di Compleanni CasualiPrimi n Numeri di Pi GrecoConvertitore HTML in Testocalcolatore-hba1cCalcolatrice della Deviazione Standard RelativaConvertitore da Decimale a Ottalecalcolatore-di-esponenti-alta-precisioneCalcolatore del Numero del DestinoConvertitore di Percentuale in PPMGeneratore di Modello Cono SviluppatoGeneratore di Orario CasualeCalcolatore del percentile di altezzaConfronta due stringheConta il numero di caratteriConvertitore Numero in FrazioneCalcolatore di etàConvertitore di pollici in cmGeneratore di Lettera CasualeCalcolatore Passi in DistanzaCalendario di luna nuova e luna pienaLanciatore di DadiCompressore VideoStatistiche del Canale YouTubeCalcolatore di CartongessoCalcolatrice ScientificaGeneratore di Hash SHA256Calcolatore di Comparazione di FrazioniCalcolatore di Valutazione AziendaleConvertitore di AngoliConvertitore EsadecimaleCalcolatore di Inflazione USCreatore di CruciverbaGeneratore di Persona Utente CasualeGeneratore di Obbligo o Verità AleatorioEstrattore AudioGeneratore di Crittogrammageneratore-di-testo-capovoltoAnalizzatore Avanzato di Compatibilità ZodiacaleCalcolatore della Tangente🖱️ Contatore di ClicContatore di lineaGeneratore di Tabelloni Torneo CasualiVerificatore Numero Pari o DispariCalcolatore dell'Arcocoseno (Coseno Inverso)Generatore di Parole MescolateCalcolatore del valore attualeCalcolatore di Log in Base 2Calcolatore di Pendenza e GradoUnisci Videoconvertitore da parole a numero di telefonoCalcolatore di Addizione e Sottrazione in ColonnaCalcolatore di ProfittoCalcolatore del Numero MaestroCalcolatore del Test Esatto di FisherCalcolatore di Arctan2Validatore XMLGeneratore di Carte di Credito CasualeCalcolatore di Log in Base 10🔊 Generatore di ToniConvertitore da kPa a psiGeneratore di LabirintiRandomizzatore di Nomi OnlineConvertitore di dimensioni del fileCalcolatore del Minimo Comune MultiploCalcolatore di VelocitàQual è il mio segno dello zodiaco?Calcolatore del Test di DivisibilitàCalcolatore delle frazioni equivalentiCalcolatore Proporzioni RicetteConvertitore da Ottale a DecimaleCalcolatore del Tempo di ParolaCalcolatore dello Zodiaco dell'Albero CelticoCalcolatore QuadratoCalcolatrice del Fattoriale⏱️ Cronometro OnlineGeneratore di PasswordCalcolatore di Area del Poligono IrregolareCalcolatore di Decibel (dB)Calcolatore di notazioni scientifiche⬛ Calcolatore Rapporto di AspettoGeneratore di numeri della lotteriaCalcolatore Handicap GolfContatore di Token AIStrumento gratuito online per randomizzare i numeriAggiungi Punteggiatura AICalcolatore del Numero della PersonalitàCalcolatore di diminuzione di percentualeCalcolatore EBITDACalcolatore Punteggio TestConvertitore da indirizzo IP a binarioGeneratore di Paese CasualeMiglioratore di ImmaginiCalcolatore da frazione a decimaleCalcolatore del Coefficiente BinomialeCalcolatore di Peso AcciaioCalcolatore di Velocità di CiclismoGeneratore di faviconGeneratore di Personaggi RPG CasualeCalcolatore del Tronco di ConoCalcolatore dell'ArcotangenteCalcolatore di ImpedenzaCalcolatore di ModuloCambio di Tempo SRTConvertitore BinarioGeneratore di Distribuzione GaussianaGeneratore di Numero Decimale CasualeRandomizzatore di listaRimuovi interruzioni di rigaVerificatore di Squadratura (Regola 3-4-5) 📐Calcolatore del Giorno della SettimanaConvertitore da Gradi Decimali a DMSCreatore di IstogrammiDecodificatore di Morse CodeAnalizzatore di Indirizzi MACCalcolatore di conversione da decimale a frazioneCalcolatore di Guadagni TwitchCalcolatore Run Rate CricketCalcolatore xG (Expected Goals) nel CalcioSegnapunti TennisCalcolatore del Punteggio di Wells (TVP/EP)Calcolatore della Scala del Coma di GlasgowCalcolatore del Punteggio APGARCalcolatore FFMICalcolatore della Corsa di 12 Minuti di CooperCalcolatore del Test del Cammino di un Miglio RockportCalcolatore da Massa Magra a ForzaCalcolatore del Rapporto Carboidrati-InsulinaCalcolatore del Fattore di Sensibilità InsulinicaConvertitore Calendario EbraicoConvertitore Calendario HijriConvertitore di Calendario LunareCalcolatore Età nelle CultureCalcolatore Quanto Tempo FaCalcolatore Quanto Manca AlGeneratore di schemi di dateCalcolatore di Data IntermediaAggiungi Giorni Lavorativi a una DataCalcolatore Giorni LavorativiAnalizzatore di Frequenza delle ParoleAnalizzatore di Varianza di Lunghezza FrasiEditor di Leggibilità Stile HemingwayConvertitore di Pronuncia IPAStrumento Cifrario di VigenèreStrumento Cifrario AtbashCodificatore e Decodificatore ROT13Visualizzatore e Rimuovi Dati EXIFTraduttore Pig LatinGeneratore di BackronimiGeneratore di AcronimiVerificatore di PangrammiVerificatore di LipogrammaTracciatore da Immagine a SVGConvertitore da Immagine ad Arte ASCIIGeneratore di Schema JSONPlayground TypeScriptCompilatore Less in CSSCompilatore SCSS in CSSConvertitore da SVG a React/JSXGeneratore di Stringhe di QueryParser URLValidatore e decodificatore UUIDRiferimento codici di stato HTTPGeneratore di Comandi cURLGeneratore del Triangolo di SierpinskiPlotter di Superficie 3DTracciatore di Equazioni PolariGeneratore di Insieme di JuliaEsploratore dell'Insieme di MandelbrotGeneratore di Frattali L-SystemGeneratore di Triangolazione di DelaunayGeneratore di Diagrammi di VoronoiGeneratore di SpirografoGeneratore di TassellatureCalcolatore di Capacità di Processo Sei SigmaGeneratore di Diagrammi di ParetoCalcolatore NPS (Net Promoter Score)Calcolatore della fidelizzazione per coorteCalcolatore Tasso di AbbandonoCalcolatore del Costo di Acquisizione Cliente (CAC)Calcolatore del Valore del Ciclo di Vita del Cliente (CLV)Calcolatore del Tasso di ConversioneCalcolatore Dimensione Campione Test A/BCalcolatore di Significatività Test A/BCalcolatore dell'Equazione delle LentiCalcolatore di Campo Magnetico di un FiloCalcolatore di Campo ElettricoCalcolatore della Legge di CoulombCalcolatore della Legge di SnellCalcolatore del Momento d'InerziaCalcolatore di Velocità AngolareCalcolatore di forza centripetaCalcolatore del Periodo del PendoloCalcolatore Costante ElasticaCalcolatore Effetto DopplerCalcolatore Indice di SortinoCalcolatore Indice di TreynorCalcolatore Beta di AzioniCalcolatore di Titoli del Tesoro Protetti dall’Inflazione (TIPS)Calcolatore di Ricalcolo MutuoCalcolatore Tasso ForwardCalcolatore della Duration Obbligazionaria (Macaulay e Modificata)Calcolatore di Convessità delle ObbligazioniCalcolatore di Rendita Indicizzata FissaCalcolatore di Rendita VariabileCalcolatore di Mutuo InversoCalcolatore di Pagamento RenditaSimulatore Soroban Abaco GiapponeseMoltiplicazione del Contadino RussoCalcolatore di Trucchi di Matematica VedicaCalcolatore di Moltiplicazione EgiziaRisolutore Matematico con Numeri RomaniAllenatore di Calcolo MentaleQuiz delle TabellineVisualizzatore di Riporto e PrestitoGeneratore di Decomposizioni NumericheRisolutore di Problemi di MoneteCalcolatore del Triangolo Distanza-Velocità-TempoRisolutore Problemi Tasso di LavoroRisolutore Problemi di MiscelaRisolutore Problemi di EtàRisolutore Problemi Incontro TreniCalcolatore di IdratazioneCalcolatore di Passo in CalorieCalcolatore Dosaggio FarmacoCalcolatore Calorie AlcolCalcolatore di Ricomposizione CorporeaGeneratore di Argomenti di Dibattito CasualiGeneratore di Nomi Casuali per Gatti e CaniGeneratore di Versetti Biblici CasualiGeneratore di Problemi di Matematica CasualiGeneratore di Paragrafi CasualiGeneratore di Frasi Casuali in IngleseCalcolatore di Ghiaia, Sabbia e TerriccioCalcolatore di Coppia di Serraggio BulloniCalcolatore di Flusso nelle TubazioniCalcolatore di Carico della TraveConvertitore Dollaro OroCalcolatore di Probabilità delle OpzioniCalcolatore di Frazionamento AzioniCalcolatore ESPPCalcolatore di Penale per Ritardo nel PagamentoCalcolatore Tariffa Oraria per FreelanceCalcolatore Leasing vs AcquistoDivisore di Mancia AvanzatoGeneratore di Lista BagagliCalcolatore Jet LagCalcolatore del Budget di ViaggioCalcolatore della Distanza di VoloCalcolatore della Perdita di CaloreCalcolatore del Costo di Generazione ElettricaCalcolatore del Consumo di AcquaCalcolatore del Costo Energetico degli ElettrodomesticiCalcolatore di Audit Energetico DomesticoCalcolatore ROI SolareCalcolatore per Pannelli SolariCalcolatore del Compost (Rapporto C:N)Calcolatore Fertilizzante per PratoCalcolatore Date di GeloCalcolatore Terriccio per Orto RialzatoCalcolatore Fertilizzante NPKCalcolatore del Tasso di Germinazione dei SemiCalcolatore di Bitrate VideoTraspositore di Tonalità MusicaleCalcolatore BPM a ToccoStimatore Dimensioni File FotoCalcolatore da Megapixel a Dimensione di StampaCalcolatore del Fattore di CropCalcolatore del Triangolo di EsposizioneCalcolatore della Capacità di Traino del VeicoloCalcolatore Leasing AutoCalcolatore 0–60 e Quarto di MiglioCalcolatore Tempo di Ricarica EVCalcolatore Autonomia EVCalcolatore Distanza 3DCalcolatore del ToroCalcolatore di Poligono RegolareIdentificatore di Sezione ConicaCalcolatore di IperboleCalcolatore di Divisione LungaContatore Caratteri Twitter/XSelettore di Commenti YouTubeEstrattore di tag YouTubeScaricatore di Miniature YouTubeCalcolatore Guadagni YouTube