Simplifique seu fluxo de trabalho: Pesquise miniwebtool.
Adicionar
Página Inicial > Matemática > Operações matemáticas avançadas > Solucionador do Caixeiro Viajante (TSP)
 

Solucionador do Caixeiro Viajante (TSP)

Encontre a rota mais curta que visita cada cidade exatamente uma vez e retorna ao início. Programação dinâmica exata (Held-Karp) para instâncias pequenas e heurísticas de vizinho mais próximo + 2-opt para instâncias maiores. Aceita coordenadas ou uma matriz de distância e renderiza um tour animado em SVG.

Solucionador do Caixeiro Viajante (TSP)
Linhas de coordenadas: A, 10, 20 ou 10 20. Linhas da matriz: 0 10 15 20 — uma linha por vez, quadrada, não negativa. Máx 40 cidades.
Etiquetas separadas por vírgula ou espaço, uma por linha da matriz. Padrão A, B, C… se omitido.

Embed Solucionador do Caixeiro Viajante (TSP) Widget

Solucionador do Caixeiro Viajante (TSP)

O Solucionador do Caixeiro Viajante é uma calculadora prática e educativa para o clássico Problema do Caixeiro Viajante (TSP): dado um conjunto de cidades e distâncias entre pares, encontre a rota mais curta possível que visite cada cidade exatamente uma vez e retorne ao início. Este solucionador aceita coordenadas planas ou uma matriz de distância personalizada, seleciona o melhor algoritmo automaticamente com base no tamanho do problema e renderiza a rota resultante como um mapa SVG animado.

O Que é o Problema do Caixeiro Viajante?

Formalmente, dado um grafo ponderado completo G = (V, E) com conjunto de vértices V = {1, 2, ..., n} e pesos de aresta d(i, j), o TSP busca uma permutação π dos vértices que minimize:

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

O termo final fecha o loop. O TSP é um dos problemas mais antigos e estudados em otimização combinatória — ele é NP-difícil no caso geral, o que significa que nenhum algoritmo conhecido resolve todas as instâncias em tempo polinomial. Apesar disso, ele aparece em inúmeras aplicações do mundo real: roteamento de veículos, perfuração de PCB, sequenciamento de DNA, rotas de coleta em armazéns, cronogramas de observação astronômica e até entrega de correspondência rural.

Como Funciona Este Solucionador

Programação Dinâmica Held–Karp (Exata)

Para instâncias pequenas (até 12 cidades), o solucionador calcula a rota comprovadamente ideal usando o algoritmo Held–Karp, publicado independentemente por Richard Bellman e Michael Held & Richard Karp em 1962. A recorrência chave, onde C(S, j) é o caminho mais curto do vértice 1 ao vértice j visitando exatamente o subconjunto S:

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

O custo da rota ideal é então minj [C({1,...,n}, j) + d(j, 1)]. O Held–Karp é executado em tempo O(2n · n²) e memória O(2n · n) — uma melhoria enorme sobre a força bruta n!, mas ainda exponencial. Após cerca de 20 cidades, a pegada de memória torna-se impraticável.

Vizinho Mais Próximo + 2-opt (Heurística)

Para instâncias maiores, o solucionador usa uma heurística de dois estágios. Primeiro, o Vizinho Mais Próximo constrói uma rota rápida caminhando gananciosamente para a cidade não visitada mais próxima de cada vértice inicial. O solucionador tenta muitos vértices iniciais e mantém a melhor rota. Em seguida, a busca local 2-opt melhora a rota removendo iterativamente duas arestas e reconectando os dois caminhos resultantes da única outra maneira possível:

Antes: ... a — b ... c — d ... Após troca 2-opt: ... a — c ... b — d ... Se d(a,c) + d(b,d) < d(a,b) + d(c,d) → aceitar troca, inverter a sub-rota b..c

Geometricamente, o 2-opt remove todos os "cruzamentos" na rota: quaisquer dois segmentos que se cruzam podem sempre ser descruzados para um comprimento total menor. O algoritmo para em um ótimo local onde nenhuma troca única ajuda, chamado de rota 2-ideal. Em instâncias euclidianas realistas, o 2-opt normalmente encontra rotas de 2 a 5% do valor ideal real em milissegundos.

Formatos de Entrada

Modo Coordenadas (x, y)

Uma cidade por linha. Cada linha é etiqueta, x, y — a etiqueta é opcional. O solucionador calcula distâncias euclidianas automaticamente e visualiza as cidades em suas posições reais.

A, 10, 20 B, 40, 70 C, 75, 30 Paris: 2.35, 48.86 10 20 ← etiqueta auto C1

Modo Matriz de distância

Uma matriz quadrada n × n de distâncias não negativas, uma linha por vez, valores separados por espaços ou vírgulas. As matrizes podem ser simétricas ou assimétricas — as assimétricas modelam ruas de mão única, preços de passagens aéreas com disponibilidade variável e viagens dependentes do vento. Opcionalmente, forneça etiquetas no campo Etiquetas da matriz.

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

Comparação de Algoritmos

Algoritmo Complexidade de tempo Memória Qualidade do resultado Tamanho prático
Força bruta O(n!) O(n) Ideal n ≤ 10
Held–Karp DP O(2n · n²) O(2n · n) Ideal n ≤ 20
Vizinho Mais Próximo O(n²) O(n) ~25% pior que o ideal n ≤ milhares
NN + 2-opt O(n² · passagens) O(n) ~2–5% pior que o ideal n ≤ centenas

Como Usar Este Solucionador

  1. Escolha um modo de entrada. Coordenadas se suas cidades tiverem posições (x, y) significativas; Matriz de distância se seus custos forem não euclidianos ou assimétricos.
  2. Cole ou digite seus dados. Uma cidade ou linha por vez. Clique em um botão de exemplo rápido acima do formulário para preencher um exemplo válido.
  3. Escolha o algoritmo. Deixe em Automático para o padrão correto: Held–Karp quando a instância for pequena o suficiente para a idealidade comprovável, NN + 2-opt caso contrário. Force um algoritmo específico se quiser comparar.
  4. Escolha fechado ou aberto. Uma rota fechada retorna ao início — o TSP tradicional. O modo de caminho aberto resolve o problema relacionado do Caminho Hamiltoniano, onde o vendedor termina em uma cidade diferente.
  5. Clique em Resolver. A página de resultados mostra o comprimento total da rota, um SVG animado do percurso (clique em "Replay da animação" para repetir), a sequência completa de cidades, um detalhamento por aresta e a matriz de distância com as arestas da rota destacadas.

Exemplo Prático

Considere cinco cidades — um retângulo mais um pico: A (0, 0), B (4, 0), C (4, 3), D (0, 3), E (2, 5). O solucionador retorna:

Aplicações no Mundo Real

Perguntas Frequentes

O que é o Problema do Caixeiro Viajante?

O Problema do Caixeiro Viajante (TSP) busca a rota mais curta possível que visite cada cidade exatamente uma vez e retorne à cidade de partida. É um dos problemas mais famosos em otimização combinatória e é NP-difícil no caso geral, o que significa que nenhum algoritmo conhecido resolve todas as instâncias em tempo polinomial.

O que é o algoritmo Held–Karp?

Held–Karp é um algoritmo de programação dinâmica que resolve o TSP exatamente em tempo O(2n · n²) e memória O(2n · n). É dramaticamente mais rápido que a força bruta (n fatorial), mas ainda exponencial, portanto, na prática, é usado apenas para instâncias de até cerca de 20 cidades. Este solucionador usa Held–Karp quando há 12 cidades ou menos.

O que é o 2-opt e por que é usado?

O 2-opt é uma heurística de busca local que remove repetidamente duas arestas da rota atual e reconecta os dois caminhos resultantes da outra maneira possível. Quando a nova rota é mais curta, a troca é mantida. O 2-opt é executado em tempo polinomial por iteração e consistentemente encontra rotas a poucos pontos percentuais da ideal, por isso é a heurística clássica para instâncias maiores de TSP.

Quando devo usar coordenadas versus uma matriz de distância?

Use coordenadas quando suas cidades estiverem em um plano com distâncias em linha reta — por exemplo, pontos em um mapa, locais de armazéns ou furos em uma placa de circuito. Use uma matriz de distância quando o custo entre os pares não for euclidiano — por exemplo, preços de passagens aéreas, tempos de viagem com tráfego, distâncias rodoviárias de mão única ou custos assimétricos. O modo matriz aceita quaisquer distâncias não negativas, mesmo as assimétricas.

A solução 2-opt é a ideal?

Não, o 2-opt retorna uma rota 2-ideal, o que significa que nenhum par único de arestas pode ser trocado para produzir uma rota mais curta. Este é um ótimo local e geralmente está a poucos pontos percentuais do ótimo global em instâncias bem comportadas, mas não há garantia de que seja o melhor global. Para uma rota comprovadamente ideal em instâncias pequenas, escolha Held–Karp.

Esta ferramenta suporta matrizes de distância assimétricas?

Sim. No modo Matriz de distância, você pode inserir qualquer matriz quadrada não negativa, incluindo as assimétricas onde D[i][j] difere de D[j][i]. Tanto Held–Karp quanto 2-opt lidam corretamente com matrizes assimétricas. Isso é útil para problemas de roteamento do mundo real com ruas de mão única, tráfego ou custos de voo dependentes do vento.

Leitura Adicional

Cite este conteúdo, página ou ferramenta como:

"Solucionador do Caixeiro Viajante (TSP)" em https://MiniWebtool.com/br/solucionador-do-caixeiro-viajante-tsp/ de MiniWebtool, https://MiniWebtool.com/

pela equipe miniwebtool. Atualizado: 21 de abr de 2026

Você também pode experimentar nosso Solucionador de Matemática AI GPT para resolver seus problemas de matemática através de perguntas e respostas em linguagem natural.

Outras ferramentas relacionadas:

Operações matemáticas avançadas:

Ferramentas em destaque:

Gerador de Cartelas de BingoGerador de Letras AleatóriasRemover espaçosCalculadora de Número de ExpressãoGerador de Código MorseGerador de Cores AleatóriasCalculadora de Compatibilidade AmorosaPesquisa de ID de Usuário do InstagramCalculadora BináriaCalculadora de Número de DestinoCalculadora de Signo Solar, Lunar e Ascendente 🌞🌙✨📅 Calculadora de DatasDecodificador de Código MorseFormatador de TextoCalculadora de ProporçãoCalculadora de Dia do Ano - Que Dia do Ano é Hoje?Contador de linhasGerador de endereços MACCalculadora de Combinaçãopesquisa-de-endereço-MACCalculadora de Desvio Padrão RelativoCalculadora de número de anjoCalculadora de Média HarmônicaGerador de Superpoder AleatórioGerador de Caça-PalavrasClassificar NúmerosGerador de IMEI AleatórioConversor de Hex para BinárioConversor de Binário para HexGerador de Palavras Aleatórias em InglêsCalculadora de Desvio Padrão - Alta PrecisãoCalculadora do Teste Qui-Quadrado📅 Calculadora de Diferença entre DatasCalculadora de 1RM (Repetição Máxima)Calculadora de IdadeGerador de Números da LoteriaCalculadora de Número MestreCalculadora de Medianaconversor de palavra para número de telefoneConversor de Tamanho de Arquivo⏱️ Calculadora de HorasGerador de Endereço Falso AleatórioRemover acentos do textoPesquisa de ID de Usuário do FacebookGerador de Cartas de Baralho AleatórioLista de Anos BissextosSimulador de Portas LógicasRandomizador de Nomes Onlineconversor de ppm para porcentagemGerador de AnagramasSelecionador de Nomes AleatóriosCalculadora de cálcio corrigidaGerador de Embaralhar PalavrasRemover Linhas Vazias do TextoCalculadora de Dosagem de MedicamentoConversor de BaseRandomizador de ListasCalculadora de NumerologiaGerador de Cartão de Crédito AleatórioGerador de País AleatórioGerador de Hora AleatóriaCalculadora de Variação PercentualPrimeiros n Dígitos do PiConversor Octal para DecimalConversor de Graus Decimais para DMSGerador de Aniversário AleatórioGerador de Texto Pequeno ⁽ᶜᵒᵖʸ ⁿ ᵖᵃˢᵗᵉ⁾🖱️ Contador de CliquesDivisor de ÁudioExtrator de Imagem de VídeoInverter TextoVerificador de Nome de Usuário de Mídia SocialGerador de CriptogramaGerador de Grupos AleatóriosConversor de Porcentagem para PPMGerador de Tabela VerdadeQual é o meu Número da Sorte?Criador de Palavras CruzadasGerador aleatório de animaisDivisor de ImagensCalculadora de Retorno de SaturnoConversor de endereço IP para binárioConversor de Binário para OctalCalculadora de Número de Desejo da AlmaCalculadora de Log (Logaritmo)Girar VídeoGerador de Coordenadas AleatóriasLançador de MoedaAnalisador de Endereço MACGerador de Versículos Bíblicos AleatóriosCalculadora de Taxa de Crescimento PercentualCalculadora de Média, Mediana e ModaFerramenta Online para Remover PontuaçãoCalculadora de Média GeométricaCalculadora de raiz quadradaCalculadora de EscadaCalculadora de Estratégia MartingaleCalculadora de Passos para DistânciaCalculadora HexCalculadora de Octal para HexadecimalEstatísticas do Canal do YouTubeCalculadora OctalCompactador de HTML OnlineGerador de LabirintosFerramenta de Cifra de CésarGraficador de Função TrigonométricaConversor de Binário para DecimalGerador de Nomes AleatóriosGerador de Personagem RPG AleatórioCalculadora de Derivadas ParciaisCalculadora de distribuição binomialConversor de cm para Pés e PolegadasGerador de Verdade ou Desafio AleatórioAdicionar Quebras de LinhaGerador de Sequência Aleatóriacalculadora-hba1cCalculadora de MóduloGerador de Número Decimal AleatórioCalculadora de bônusCalculadora de Log Base 10Conversor de Decimal para BinárioConversor de Decimal para HexConversor de Octal para BinárioValidador de XMLCalculadora de Erro PercentualExtrator de Tags do YouTubeCalculadora de redução de porcentagemConversor Decimal para OctalCalculadora de Número de DígitosCalculadora de Coeficiente de VariaçãoCalculadora de Intervalo InterquartilCalculadora de Erro PadrãoCalculadora de Monetização do YouTube ShortsConversor de Notação Científica para DecimalGerador de Endereço IP AleatórioConversor de FPSCalculadora de Tamanho de Impressão e Resolução (DPI/PPI)Remover Quebras de LinhaCalculadora de Nota de ProvaConversor de kPa para psiConversor de Tamanhos de SapatoEstimador de Ganhos do YouTubeConversor de Libras para QuilogramasCalculadora de MultiplicaçãoCalculadora de notação científicaGerador de Hash SHA256Gerador de Texto InvisívelRemovedor de Caracteres InvisíveisCalculadora de NotasMesclar VídeosRemover Números de Linha do TextoConversor de Hexadecimal para OctalCalculadora de Número do NomeCalculadora de quociente e restanteBaixador de Miniaturas do YouTubeCalculadora de CírculoCalculadora de Peso de AçoSelecionador AleatórioCalculadora de ArredondamentoCalculadora de Tipo CorporalCalculadora de EstimativaExtrator de URLCalculadora de MolaridadeExtrator de Números de TelefoneGerador de Estado Americano AleatórioCalculadora de Área de Polígono IrregularCalculadora de LinhaCalculadora de Mínimo Múltiplo ComumCalculadora de Números ComplexosCalculadora de Número do Caminho da VidaContador de SílabasGerador de Hash Argon2Gerador de Quadrado Mágico🔊 Gerador de TomCalculadora de Aumento de PorcentagemCalculadora de Déficit CalóricoConversor de Fração para Percentual⏱️ Cronômetro OnlineGerador de Número Inteiro AleatórioSimplificador de Álgebra BooleanaGerador de Código de BarrasGerador de Data AleatóriaGerador de Ligue os PontosGerador de User-Agent AleatórioCalculadora de Log Base 2Criador de Box Plot (Gráfico de Caixa)Criador de Gráfico de DispersãoCalculadora de Circunferência de Elipsecalculadora-de-expoentes-alta-precisãoCalculadora de Inflação nos EUACalculadora de PermutaçãoCalculadora de Número de PersonalidadeCalculadora WHtRCalendário do Dia do AnoConversor de Número para PalavraSelecionador de Filmes AleatórioCalculadora de dia da semana de nascimentoCalculadora de FraçõesCalculadora de Lógica BináriaCalculadora de tempo de dobraTemporizador de Posturas de YogaCalculadora de SWOLF de NataçãoPreditor de Tempo de CorridaCalculadora de Potência de Soco no BoxeCalculadora de Pontos de RugbyCalculadora de Run Rate de CríqueteCalculadora de xG (Gols Esperados) no FutebolMarcador de TênisCalculadora de Escore de Wells (TVP/EP)Calculadora da Escala de Coma de GlasgowCalculadora de Escore de APGARCalculadora de FFMICalculadora de Corrida de 12 Minutos de CooperCalculadora do Teste de Caminhada de Uma Milha RockportCalculadora de Massa Magra para ForçaCalculadora de Relação Carboidrato-InsulinaCalculadora de Fator de Sensibilidade à InsulinaConversor de Calendário HebraicoConversor de Calendário HijriConversor de Calendário LunarCalculadora de Idade em CulturasCalculadora de Há Quanto TempoCalculadora Quanto Tempo AtéGerador de Padrão de DatasCalculadora de Data IntermediáriaAdicionar Dias Úteis a uma DataCalculadora de Dias ÚteisAnalisador de Frequência de PalavrasAnalisador de Variação de Comprimento de FrasesEditor de Legibilidade Estilo HemingwayConversor de Pronúncia IPAFerramenta de Cifra de VigenèreFerramenta de Cifra AtbashCodificador e Decodificador ROT13Visualizador e Removedor de Dados EXIFTradutor de Pig LatinGerador de BackronymsGerador de AcrônimosVerificador de PangramasVerificador de LipogramaRastreador de Imagem para SVGConversor de Imagem para Arte ASCIIGerador de Esquema JSONPlayground TypeScriptCompilador de Less para CSSCompilador de SCSS para CSSConversor de SVG para React/JSXConstrutor de Query StringAnalisador de URLValidador e Decodificador de UUIDReferência de Códigos de Status HTTPConstrutor de Comandos cURLGerador de Triângulo de SierpinskiPlotador de Superfície 3DPlotador de Equações PolaresGerador de Conjunto de JuliaExplorador do Conjunto de MandelbrotGerador de Fractais L-SystemGerador de Triangulação de DelaunayGerador de Diagrama de VoronoiGerador de EspirógrafoGerador de TesselaçãoCalculadora de Capacidade de Processo Seis SigmaGerador de Gráfico de ParetoCalculadora de NPS (Net Promoter Score)Calculadora de Retenção de CoorteCalculadora de Taxa de RotatividadeCalculadora de Custo de Aquisição de Cliente (CAC)Calculadora de Valor Vitalício do Cliente (CLV)Calculadora de Taxa de ConversãoCalculadora de Tamanho de Amostra para Teste A/BCalculadora de Significância de Teste A/BCalculadora da Equação das LentesCalculadora de Campo Magnético de FioCalculadora de Campo ElétricoCalculadora da Lei de CoulombCalculadora da Lei de SnellCalculadora de Momento de InérciaCalculadora de Velocidade AngularCalculadora de Força CentrípetaCalculadora de Período do PênduloCalculadora de Constante de MolaCalculadora de Efeito DopplerCalculadora do Índice de SortinoCalculadora de Índice de TreynorCalculadora de Beta de AçõesCalculadora de Títulos do Tesouro Protegidos Contra Inflação (TIPS)Calculadora de Recálculo de HipotecaCalculadora de Taxa a TermoCalculadora de Duração do Título (Macaulay e Modificada)Calculadora de Convexidade de TítulosCalculadora de Anuidade Indexada FixaCalculadora de Anuidade VariávelCalculadora de Hipoteca ReversaCalculadora de Pagamento de AnuidadeSimulador de Soroban Ábaco JaponêsMultiplicação Camponesa RussaCalculadora de Truques de Matemática VédicaCalculadora de Multiplicação EgípciaCalculadora de Matemática com Números RomanosTreinador de Matemática MentalQuiz de TabuadaVisualizador de Vai um e EmprestaGerador de Decomposições NuméricasSolucionador de Problemas de MoedasCalculadora do Triângulo Distância-Velocidade-TempoResolvedor de Problemas de Taxa de TrabalhoResolvedor de Problemas de MisturaSolucionador de Problemas de IdadeSolucionador de Problema de Encontro de TrensCalculadora de HidrataçãoCalculadora de Ritmo para CaloriasCalculadora de Calorias do ÁlcoolCalculadora de Recomposição CorporalGerador de Tópicos de Debate AleatóriosGerador de Nomes Aleatórios para Gatos e CãesGerador de Problemas de Matemática AleatóriosGerador de Parágrafos AleatóriosGerador de Frases Aleatórias em InglêsCalculadora de Cascalho, Areia e SoloCalculadora de Torque de ParafusoCalculadora de Fluxo em TubosCalculadora de Carga de VigaConversor de Dólar para OuroCalculadora de Probabilidade de OpçõesCalculadora de Desdobramento de AçõesCalculadora de ESPPCalculadora de Multa por Atraso em FaturaCalculadora de Tarifa Horária para FreelancersCalculadora de Leasing vs CompraDivisor de Conta com Gorjeta AvançadoGerador de Lista de BagagemCalculadora de Jet LagCalculadora de Orçamento de ViagemCalculadora de Distância de VooCalculadora de Perda de CalorCalculadora de Custo de Geração de EletricidadeCalculadora de Uso de ÁguaCalculadora de Custo de Energia de EletrodomésticosCalculadora de Auditoria Energética ResidencialCalculadora de ROI SolarCalculadora de Painéis SolaresCalculadora de Compostagem C:NCalculadora de Fertilizante para GramadoCalculadora de Datas de GeadaCalculadora de Solo para Canteiro ElevadoCalculadora de Fertilizante NPKCalculadora de Taxa de Germinação de SementesCalculadora de Bitrate de VídeoTranspositor de Tom MusicalCalculadora de BPM por ToqueEstimador de Tamanho de Arquivo de FotoCalculadora de Megapixel para Tamanho de ImpressãoCalculadora de Fator de CorteCalculadora do Triângulo de ExposiçãoCalculadora de Capacidade de Reboque do VeículoCalculadora de Leasing de CarroCalculadora de 0–60 e Quarto de MilhaCalculadora de Tempo de Carregamento de VECalculadora de Autonomia VECalculadora de Distância 3DCalculadora de TorusCalculadora de Tronco de ConeCalculadora de Polígono RegularIdentificador de Seção CônicaCalculadora de HipérboleCalculadora de Divisão LongaContador de Caracteres Twitter/XSeletor de Comentários do YouTube