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:

Remover espaçosGerador de Cartelas de BingoCalculadora de Número de ExpressãoGerador de endereços MACGerador de Cores AleatóriasGerador de Letras AleatóriasCalculadora BináriaCalculadora de ProporçãoGerador de Código Morse📅 Calculadora de DatasContador de linhaspesquisa-de-endereço-MACCalculadora de Compatibilidade AmorosaGerador de Caça-PalavrasFormatador de TextoCalculadora de Número de DestinoGerador de IMEI AleatórioCalculadora de CombinaçãoClassificar NúmerosCalculadora de Desvio Padrão RelativoPesquisa de ID de Usuário do InstagramCalculadora de cálcio corrigidaCalculadora de Dia do Ano - Que Dia do Ano é Hoje?Gerador de Endereço Falso AleatórioCalculadora de Desvio Padrão - Alta PrecisãoCalculadora de Média HarmônicaGerador de Superpoder AleatórioCalculadora de número de anjoConversor de Hex para BinárioGerador de Números da LoteriaDecodificador de Código Morse📅 Calculadora de Diferença entre DatasDivisor de ImagensCalculadora de MedianaCalculadora de Variação PercentualGerador de Palavras Aleatórias em InglêsCalculadora de Número MestreCalculadora de 1RM (Repetição Máxima)Gerador de Coordenadas AleatóriasCalculadora do Teste Qui-QuadradoPesquisa de ID de Usuário do FacebookCalculadora de Estratégia MartingaleRemover Linhas Vazias do TextoConversor de Binário para HexGerador de AnagramasDivisor de ÁudioConversor de Binário para OctalCalculadora de Erro PercentualCalculadora de Signo Solar, Lunar e Ascendente 🌞🌙✨Conversor Octal para DecimalConversor de Tamanho de ArquivoSelecionador de Nomes AleatóriosCalculadora de Taxa de Crescimento PercentualRemover acentos do textoCalculadora de Distribuição de Poissonconversor de ppm para porcentagemcalculadora-hba1cGerador de Hora AleatóriaLista de Anos BissextosFerramenta Online para Remover PontuaçãoGerador de Cartas de Baralho AleatórioGerador de CriptogramaGerador de Embaralhar PalavrasConversor de Octal para BinárioRandomizador de ListasCalculadora de Números ComplexosConversor de BaseValidador de XMLAnalisador de Endereço MACExtrator de Imagem de VídeoCalculadora de notação científicaGerador de User-Agent AleatórioGerador de Cartão de Crédito AleatórioCalculadora de Aumento de PorcentagemCalculadora de bônusConversor de Hexadecimal para OctalCalculadora de Média, Mediana e Moda⏱️ Calculadora de HorasSimulador de Portas LógicasGerador de LabirintosGerador de Texto Pequeno ⁽ᶜᵒᵖʸ ⁿ ᵖᵃˢᵗᵉ⁾Conversor de Pés e Polegadas em CentímetrosExtrator de Tags do YouTubeRemovedor de Caracteres InvisíveisGerador de Aniversário AleatórioCalculadora de Octal para HexadecimalGerador de Endereço IP AleatórioGerador de Grupos AleatóriosCalculadora de NumerologiaCalculadora de Coeficiente de VariaçãoConversor de kPa para psiGerador de Data AleatóriaConversor de Decimal para BCDCalculadora de EscadaCalculadora de Número de Desejo da AlmaPrimeiros n Dígitos do PiCalculadora HexCompactador de HTML OnlineGerador de Personagem RPG AleatórioGerador de Tabela VerdadeSimulador 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 Dosagem de MedicamentoCalculadora 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 Versículos Bíblicos AleatóriosGerador 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 Peso de AçoCalculadora 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 Consumo de CombustívelConversor de Tamanhos de RoupasTabela de Tamanhos de PapelConversor de Tamanho de AnelConversor de Unidade AstronômicaConversor de Eficiência de CombustívelConversor de Taxa de Transferência de DadosConversor de Torque (Nm, ft-lb, kgf-cm)Gerador de Texto TachadoVisualizador de Espaços em BrancoCalculadora de Tempo de LeituraCalculadora de Tempo de FalaContador de ParágrafosContador de FrasesContador de SílabasConversor de Texto para Binário/Hex/ASCIIGerador de Imagem Placeholder Lorem PicsumGerador de Arquivo .envGerador de Comandos GitConversor de Códigos de Cor (Todos os Formatos)Gerador e Verificador de Hash BcryptGerador JWTGerador de CSS GridCalculadora de Integração NuméricaCalculadora de Transformada ZCalculadora de Transformada Rápida de Fourier (FFT)Calculadora de Produto TensorialCalculadora de Exponencial de MatrizesCalculadora de Forma Normal de JordanCalculadora de Anéis e CorposCalculadora de Ordem em Teoria dos GruposSolucionador de Sistemas de EDOsCalculadora de EDO de BernoulliCalculadora do Método de EulerPlotter de Campo de Direção e InclinaçãoSolucionador de EDO de Segunda OrdemSolucionador de EDO de Primeira OrdemSolucionador do Problema do Casamento EstávelCalculadora de Fluxo em Rede (Fluxo Máximo)Verificador de Grafo PlanarVerificador de Caminho HamiltonianoSolucionador do Caixeiro Viajante (TSP)Solucionador de Programação LinearCalculadora de Inclusão-ExclusãoSolucionador de Relações de RecorrênciaCalculadora de Matriz de AdjacênciaCalculadora de Ordenação TopológicaCalculadora de Coloração de GrafosSolucionador de Mapa de Karnaugh (K-Map)Simplificador de Álgebra BooleanaCalculadora de Função de PartiçãoCalculadora de Raiz DigitalVerificador de Número de FibonacciCalculadora de Frações EgípciasCalculadora de Função de MöbiusVerificador da Conjectura de GoldbachVerificador de Primo de MersenneLocalizador de Primos GêmeosVerificador de Números AmigáveisVerificador de Número PerfeitoCalculadora de Exponenciação ModularCalculadora de Permutações com RepetiçãoCalculadora de Tamanho de EfeitoCalculadora de Risco RelativoCalculadora de Razão de ChancesCalculadora de Tabela de ContingênciaCalculadora do Teste Exato de FisherCalculadora de Correlação de Postos de SpearmanCalculadora de Distribuição BetaCalculadora de Distribuição de WeibullCalculadora de Distribuição ExponencialCalculadora de Distribuição GeométricaCalculadora de Distribuição Binomial NegativaCalculadora de Distribuição HipergeométricaCalculadora de Teste F e Distribuição FCalculadora do Teorema de BayesCalculadora de Polinômio CaracterísticoCalculadora de Potência de MatrizCalculadora de Decomposição de CholeskyCalculadora de Decomposição QRCalculadora de Diagonalização de MatrizCalculadora Regra de CramerCalculadora de Espaço ColunaCalculadora de Espaço NuloCalculadora de Ângulo Entre VetoresCalculadora de Vetor UnitárioCalculadora de Magnitude de VetorCalculadora de Produto VetorialCalculadora de Produto EscalarCalculadora de Multiplicação de MatrizesCalculadora de Matriz InversaCalculadora RREF (Forma Escalonada Reduzida)Calculadora do Método de NewtonCalculadora de Matriz JacobianaCalculadora de Integral de SuperfícieCalculadora de Integral de LinhaCalculadora de RotacionalCalculadora de DivergênciaCalculadora de Gradiente MultivariávelCalculadora de Otimização (Cálculo)Solucionador de Taxas RelacionadasCalculadora de Taxa de Variação InstantâneaCalculadora de Taxa Média de VariaçãoCalculadora de Soma de Séries InfinitasCalculadora de Teste de Convergência de SériesCalculadora de Séries de PotênciaCalculadora de Série de MaclaurinCalculadora da Regra de L'HôpitalCalculadora de Integral ImprópriaCalculadora da Regra de SimpsonCalculadora da Regra TrapezoidalCalculadora de Soma de RiemannGraficador de Curvas ParamétricasCalculadora de Superfície de RevoluçãoCalculadora de Volume de RevoluçãoCalculadora de Distância em Geometria CoordenadaCalculadora Fórmula de HeronCalculadora de Linha Tangente ao CírculoCalculadora de Bissetriz do ÂnguloCalculadora de Círculo Inscrito (Incírculo)Calculadora de Circunscrição (Circuncírculo)Calculadora de Distância do Grande CírculoCalculadora de Distância 3DCalculadora de TorusCalculadora de Tronco de ConeCalculadora de Área de Polígono IrregularCalculadora de Polígono RegularIdentificador de Seção CônicaCalculadora de HipérboleCalculadora de ParábolaCalculadora de Expansão do Teorema BinomialGerador do Triângulo de PascalCalculadora de Notação de Produto (Notação Pi)Calculadora de Notação Sigma (Somatório)Calculadora do Teorema da Raiz RacionalCalculadora da Regra dos Sinais de DescartesCalculadora de Linhas Paralelas e PerpendicularesCalculadora de Equação da RetaConversor de Forma Padrão para Forma ReduzidaCalculadora de Forma Ponto-InclinaçãoResolvedor de Sistema de Equações Não LinearesSolucionador de Equações RacionaisResolvedor de Equações LiteraisSolucionador de Equações TrigonométricasResolvedor de Equações ExponenciaisResolvedor de Equações LogarítmicasCalculadora de Equação QuárticaSolucionador de Equação CúbicaCalculadora de EstimativaConversor de Número para FraçãoGerador de Contagem SalteadaCalculadora de Taxa UnitáriaCalculadora de Teto e PisoCalculadora de Valor AbsolutoEncontrador de Padrões NuméricosGerador de Gráfico de Valor PosicionalCalculadora de Ordem das Operações (PEMDAS)Calculadora de Adição e Subtração LongaCalculadora de Multiplicação LongaGerador de Tabuada🎮 Conversor de Moeda de Jogo🎲 Calculadora de Probabilidade de Loot🎰 Calculadora de Pity Gacha⚔️ Calculadora de DPS🎮 Conversor de Sensibilidade de Jogos❄️ Calculadora de Dia de Neve🚚 Estimador de Custo de Mudança🔍 Verificador de Plágio📷 OCR / Imagem para Texto📈 Criador de Gráfico de Linha🥧 Criador de Gráfico de Pizza📊 Criador de Gráfico de Barras🔊 Gerador de Tom🖱️ Contador de CliquesBloco de Notas Online⬛ Calculadora de Proporção de Tela🌍 Calculadora de Pegada de Carbono👙 Calculadora de Tamanho de SutiãCalculadora de Tamanho de PneuCalculadora de Custo de Combustível💧 Calculadora de Ponto de Orvalho🌡️ Calculadora de Índice de Calor🌬️ Calculadora de Sensação Térmica do Vento⏰ Despertador Online⏰ Calculadora de Cartão de Ponto🕐 Conversor de Hora Militar⏱️ Cronômetro Online⏱️ Temporizador de Contagem Regressiva🌐 Conversor de Fuso HorárioCalculadora de CarpeteCalculadora de Muro de ContençãoCalculadora de Dimensionamento HVACCalculadora de IsolamentoCalculadora de PavimentaçãoCalculadora de VergalhãoCalculadora de MadeiraCalculadora de Metragem QuadradaCalculadora de Multiplicação CruzadaCalculadora de Resumo de Cinco NúmerosCalculadora de PercentilCalculadora de Distribuição NormalCalculadora de Valor PCalculadora de ProporçãoCalculadora de Completar o QuadradoCalculadora de ArredondamentoCalculadora de Divisão LongaContador de Caracteres Twitter/XSeletor de Comentários do YouTubeBaixador de Miniaturas do YouTubeEstimador de Ganhos do YouTube