Simplifique seu fluxo de trabalho: Pesquise miniwebtool.
Adicionar
Ferramentas relacionadas
Gerador de Fractais L-SystemGerador de LabirintosGerador de Espirógrafo
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.

Operações matemáticas avançadas:

Ferramentas em destaque:

Pesquisa de ID de Usuário do InstagramRemover espaçosGerador de Cartão de Crédito AleatórioGerador de Letras AleatóriasCalculadora de Número de DestinoGerador de Cartelas de BingoGerador de endereços MACCalculadora de Signo Solar, Lunar e Ascendente 🌞🌙✨Gerador de Código MorseGerador de IMEI AleatórioCalculadora de Número de ExpressãoGerador de Cores Aleatórias📅 Calculadora de DatasCalculadora de ProporçãoFormatador de TextoContador de linhasCalculadora de 1RM (Repetição Máxima)Gerador de Superpoder AleatórioCalculadora de Compatibilidade Amorosapesquisa-de-endereço-MACCalculadora de CombinaçãoGerador de Cartas de Baralho AleatórioGerador de Caça-PalavrasCalculadora de número de anjoCalculadora de Dia do Ano - Que Dia do Ano é Hoje?Remover Linhas Vazias do TextoClassificar NúmerosFerramenta Online para Remover PontuaçãoEstatísticas do Canal do YouTubeCalculadora de Variação Percentual🖱️ Contador de CliquesCalculadora de Desvio Padrão RelativoCalculadora BináriaGerador de AnagramasPesquisa de ID de Usuário do FacebookGerador de Números da LoteriaCalculadora de NumerologiaCalculadora de cálcio corrigidaRemovedor de Caracteres InvisíveisConversor de kPa para psiDivisor de ÁudioRemover acentos do textoCalculadora de Monetização do YouTube ShortsCalculadora de Número MestreGerador de Embaralhar PalavrasCalculadora de MedianaConversor de Hex para BinárioRandomizador de ListasGerador de Endereço IP AleatórioExtrator de Imagem de VídeoAdicionar Quebras de LinhaCalculadora de Taxa de Crescimento PercentualDecodificador de Código MorseGerador de Texto Pequeno ⁽ᶜᵒᵖʸ ⁿ ᵖᵃˢᵗᵉ⁾Conversor de Binário para HexGerador de Palavras Aleatórias em Inglêscalculadora-hba1cGerador de Sequência AleatóriaLista de Anos BissextosCalculadora de Retorno de SaturnoConversor de Tamanho de Arquivoconversor de ppm para porcentagemCalculadora de Estratégia MartingaleCalculadora de Tempo de FalaGerador de Hash SHA256Gerador de Hora AleatóriaGerador de Coordenadas AleatóriasGerador de Personagem RPG AleatórioConversor de FPSConversor de cm para Pés e PolegadasCalculadora de bônusConversor de Fração para Percentual🎮 Conversor de Sensibilidade de JogosReverter VídeoCalculadora de Desvio Padrão - Alta PrecisãoBaixador de Miniaturas do YouTubeCalculadora de Coeficiente de VariaçãoGerador de Aniversário AleatórioCalculadora de reduzir fraçõesCalculadora de EscadaConversor de Binário para DecimalGerador de Verdade ou Desafio AleatórioGerador de CriptogramaCalculadora de Ritmo de Corrida👙 Calculadora de Tamanho de SutiãCalculadora de Ingestão de ProteínaCalculadora de Média HarmônicaCalculadora de Tamanho de Impressão e Resolução (DPI/PPI)Selecionador de Filmes AleatórioGerador de Endereço Falso AleatórioAnalisador de Endereço MACCalculadora de Média, Mediana e ModaCalculadora de Dosagem de MedicamentoCalculadora de Posição do Sol⬛ Calculadora de Proporção de TelaCalculadora de Divisão LongaCalculadora de Número do Caminho da VidaCalculadora de Torque de ParafusoCalculadora de ÁreaCalculadora de Número de Desejo da AlmaSimplificador de FraçõesBola Mágica 8Gerador de DegradêRandomizador de Linhas de Texto de EntradaCalculadora de Aumento de PorcentagemGerador de Nomes AleatóriosPrimeiros n Dígitos do PiVerificador de Idade de DomínioCriador de Palavras CruzadasGerador de País AleatórioCalculadora de Número de DígitosRandomizador de Nomes OnlineCompactador de HTML Onlineconversor de palavra para número de telefone🔊 Gerador de TomCalculadora de FraçõesCalculadora de IdadeCalculadora de MultiplicaçãoCalculadora HexCalculadora de Média - Alta PrecisãoExtrator de Tags do YouTubeGerador de PIN AleatórioConversor Octal para DecimalEstimador de Ganhos do YouTubeRemover Números de Linha do TextoCalculadora de Percentil de Crescimento do BebêCalculadora de Tempo de LeituraCalculadora de Área SuperficialGerador de Grupos AleatóriosCalculadora de NPS (Net Promoter Score)Conversor de Porcentagem para PPMDivisor de ImagensExtrator de URLGerador de Molde Planificado de ConeCalculadora de Ganhos do Twitch⏱️ Calculadora de HorasConversor de Decimal para HexQual é o meu signo do zodíaco?Verificador de Nome de Usuário de Mídia SocialVerificador de Número Par ou ÍmparCalculadora de CoberturaCalculadora de Peso de AçoCalculadora de Tamanho de Cortina⏱️ Cronômetro OnlineQual é o meu Número da Sorte?🔍 Verificador de Plágio📅 Calculadora de Diferença entre DatasCalculadora de Log (Logaritmo)Calculadora de Mistura de Óleo 2 TemposCompressor de VídeoGerador de LabirintosLançador de MoedaRemovedor de Aspas InteligentesCalculadora de Cavalos de PotênciaCalculadora de Frações ComparadasCalculadora de Média GeométricaCalculadora de raiz quadradaCalculadora de redução de porcentagemSimulador de Portas LógicasCalculadora de Custo de ImpressãoConversor de Calendário HebraicoConversor de Pés e Polegadas em CentímetrosGerador de Número Decimal AleatórioSimulador de Soroban Ábaco JaponêsValidador de XMLVerificador de Contraste de Cores⏰ Calculadora de Cartão de PontoConversor de BaseConversor de psi para kPaConversor de Octal para BinárioGerador de Esboço de Artigo com IAGerador de Ligue os PontosInverter VídeoCalculadora de Distribuição de PoissonCalculadora de Juros de Cartão de CréditoConversor de Códigos de Cor (Todos os Formatos)Conversor de endereço IP para binárioGerador de Chaves de Torneio AleatórioGirar VídeoRelógio MundialCalculadora de ComissãoCalculadora de Cilindrada do MotorCalculadora de Inflação nos EUACalculadora de Risco de RuínaCalculadora de Signo LunarCalculadora de Vantagem MecânicaConversor de Tamanhos de SapatoConversor de Decimal para BCDGerador de Frases Aleatórias em InglêsBloco de Notas OnlineCalculadora de Área de Polígono IrregularCalculadora de Equilíbrio dos Elementos AstrológicosCalculadora de MolaridadeCalculadora de RetângulosCalculadora de Tamanho de Ponto CruzGerador de Data AleatóriaGerador de Versículos Bíblicos AleatóriosInverter TextoRemover Quebras de LinhaVerificador de Links QuebradosCalculadora de Tamanho de BicicletaCronômetro de Splits para SpeedrunCalculadora de StablefordCalculadora de Checkout de DardosCalculadora de Economia de Bowling no CríqueteCalculadora de Strike Rate no CríqueteCalculadora de Net Run RateCalculadora de Ratio K/DCalculadora de Rating EloCalculadora de Recuperação da Frequência CardíacaCalculadora de Tempo de CaminhadaCalculadora de Ritmo de RemoCalculadora de Corrida Ajustada por IdadeCalculadora de FTP e Zonas de PotênciaCalculadora de Beep TestCalculadora de Pontuação do ACFTCalculadora Wilks & DOTSCalculadora de Offset de RodaConsulta de Índice de Carga e Classificação de Velocidade do PneuCalculadora de Custo por MilhaCalculadora de Compra de LeasingCalculadora de Mistura de OctanagemCalculadora de Sofá na PortaCalculadora de Cordas de LenhaCalculadora de CADR de Purificador de ArCalculadora de Tamanho de DesumidificadorCalculadora de Tamanho de Ventilador de TetoCalculadora de Tamanho de TapeteCalculadora de Altura para Pendurar QuadrosCalculadora de Altura de Instalação de TVCalculadora de Tamanho de TVCalculadora de Volume e Lona de LagoCalculadora de Sal para PiscinaCalculadora de Volume de PiscinaCalculadora de Tamanho de Aquecedor de ÁguaCalculadora de Resina EpóxiCalculadora de Espaçamento de BalaústresCalculadora de Rodapé e AcabamentoCalculadora de RevestimentoCalculadora de Verniz para DeckCalculadora de Sementes de GramaCalculadora de GramaCalculadora de AsfaltoCalculadora de Jardas CúbicasCalculadora de Comprimento de AntenaCalculadora de Preenchimento de ConduíteCalculadora de Capacitores em Série e ParaleloCalculadora de Reatância IndutivaCalculadora de Iluminação de AmbientesCalculadora de Lux para LumensConversor de Lumens para WattsCalculadora de Tamanho de GeradorConversor de mAh para WhCalculadora de Potência TrifásicaCalculadora de kVACalculadora de Amperes para WattsCalculadora de Watts para AmpèresCalculadora de Resistores em SérieCalculadora de AtritoCalculadora de Plano InclinadoCalculadora de Velocidade do SomCalculadora de Velocidade da OndaCalculadora de EmpuxoCalculadora de Velocidade TerminalCalculadora de Comprimento de Onda de de BroglieCalculadora de Energia do FótonCalculadora E=mc²Calculadora de Dilatação do TempoCalculadora da Terceira Lei de KeplerCalculadora de Velocidade de EscapeCalculadora de Força GravitacionalCalculadora da Lei de Beer-LambertCalculadora da Equação de NernstCalculadora de Pressão OsmóticaCalculadora de Elevação do Ponto de EbuliçãoCalculadora de Depressão do Ponto de CongelamentoCalculadora de Composição PercentualCalculadora de NormalidadeCalculadora de MolalidadeConversor de pKa para KaCalculadora de Henderson-HasselbalchCalculadora de Rendimento TeóricoCalculadora de Reagente LimitanteCalculadora de Configuração EletrônicaTabela Periódica InterativaGerador de Plano de Aula com IAGerador de Quiz com IAGerador de Citações (APA/MLA/Chicago)Calculadora de Porcentagem de PresençaCalculadora de Pontuação APCalculadora de Pontuação ACTCalculadora de Pontuação do SATConversor de Porcentagem para CGPAConversor de CGPA para PorcentagemCorretor de Provas Fácil (EZ Grader)Calculadora do Custo de Criar um FilhoCalculadora de Consumo de Leite do BebêCalculadora de Tamanho de FraldasGerador de Nomes de BebêPreditor de Cor dos Olhos do BebêCalculadora de Percentil de IMC InfantilPreditor de Altura InfantilCalculadora de Tempo de Duplicação do hCGCalculadora de Data de Parto FIVCalculadora de ImplantaçãoPreditor Chinês de Sexo do BebêFormatador de Data ISO 8601Conversor de Data JulianaCalculadora de CochiloMoon Phase CalculatorCalculadora de Nascer e Pôr do SolConversor de Data para Números RomanosContagem Regressiva para AposentadoriaCalculadora de SobriedadeCalculadora de Meio AniversárioCalculadora de AniversárioCalculadora de Número da SemanaCalculadora de Divisão de GorjetasCalculadora de ROI de Email MarketingCalculadora de Custo por LeadCalculadora de Capital de Giro