Simplifique su flujo de trabajo: Busque miniwebtool.
Añadir
Página de inicio > Matemáticas > Operaciones matemáticas avanzadas > Solucionador del Viajante de Comercio (TSP)
 

Solucionador del Viajante de Comercio (TSP)

Encuentre el recorrido más corto que visite cada ciudad exactamente una vez y regrese al inicio. Programación dinámica exacta (Held-Karp) para instancias pequeñas y heurísticas de vecino más cercano + 2-opt para instancias más grandes. Acepta coordenadas o una matriz de distancias y genera un recorrido animado en SVG.

Solucionador del Viajante de Comercio (TSP)
Líneas de coordenadas: A, 10, 20 o 10 20. Filas de matriz: 0 10 15 20 — una fila por línea, cuadrada, no negativa. Máximo 40 ciudades.
Etiquetas separadas por comas o espacios, una por fila de matriz. Por defecto A, B, C… si se omite.

Embed Solucionador del Viajante de Comercio (TSP) Widget

Solucionador del Viajante de Comercio (TSP)

El Solucionador del Viajante de Comercio es una calculadora práctica y educativa para el clásico Problema del Viajante de Comercio (TSP): dado un conjunto de ciudades y distancias entre pares, encontrar el recorrido más corto posible que visite cada ciudad exactamente una vez y regrese al inicio. Este solucionador acepta coordenadas planas o una matriz de distancias personalizada, selecciona automáticamente el mejor algoritmo según el tamaño del problema y representa el recorrido resultante como un mapa SVG animado.

¿Qué es el Problema del Viajante de Comercio?

Formalmente, dado un grafo ponderado completo G = (V, E) con un conjunto de vértices V = {1, 2, ..., n} y pesos de aristas d(i, j), el TSP busca una permutación π de los vértices que minimice:

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

El término final cierra el bucle. El TSP es uno de los problemas más antiguos y estudiados en optimización combinatoria: es NP-duro en el caso general, lo que significa que no se conoce ningún algoritmo que resuelva cada instancia en tiempo polinomial. A pesar de ello, aparece en innumerables aplicaciones del mundo real: rutas de vehículos, perforación de PCB, secuenciación de ADN, rutas de recogida en almacenes, horarios de observación astronómica e incluso entrega de correo rural.

Cómo Funciona este Solucionador

Programación Dinámica de Held–Karp (Exacta)

Para instancias pequeñas (hasta 12 ciudades), el solucionador calcula el recorrido demostrablemente óptimo utilizando el algoritmo de Held–Karp, publicado de forma independiente por Richard Bellman y por Michael Held y Richard Karp en 1962. La recurrencia clave, donde C(S, j) es el camino más corto desde el vértice 1 hasta el vértice j visitando exactamente el subconjunto S, es:

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

El costo del recorrido óptimo es entonces minj [C({1,...,n}, j) + d(j, 1)]. Held–Karp se ejecuta en un tiempo O(2n · n²) y memoria O(2n · n), una mejora enorme sobre la fuerza bruta n!, pero sigue siendo exponencial. Pasadas las 20 ciudades aproximadamente, la huella de memoria se vuelve impracticable.

Vecino más Cercano + 2-opt (Heurística)

Para instancias más grandes, el solucionador utiliza una heurística de dos etapas. Primero, el Vecino más Cercano construye un recorrido rápido dirigiéndose con avidez a la ciudad no visitada más cercana desde cada vértice de inicio. El solucionador prueba muchos vértices de inicio y se queda con el mejor recorrido. Luego, la búsqueda local 2-opt mejora el recorrido eliminando iterativamente dos aristas y volviendo a conectar los dos caminos resultantes de la única otra manera posible:

Antes: ... a — b ... c — d ... Después del intercambio 2-opt: ... a — c ... b — d ... Si d(a,c) + d(b,d) < d(a,b) + d(c,d) → se acepta el intercambio, se invierte el subtramo b..c

Geométricamente, 2-opt elimina cada "cruce" en el recorrido: cualquier par de segmentos que se crucen siempre se puede descruzar para obtener una longitud total más corta. El algoritmo se detiene en un óptimo local donde ningún intercambio individual ayuda, lo que se denomina un recorrido 2-óptimo. En instancias euclidianas realistas, 2-opt suele encontrar recorridos dentro del 2 al 5% del óptimo real en milisegundos.

Formatos de Entrada

Modo de Coordenadas (x, y)

Una ciudad por línea. Cada línea es etiqueta, x, y (la etiqueta es opcional). El solucionador calcula las distancias euclidianas automáticamente y visualiza las ciudades en sus posiciones reales.

A, 10, 20 B, 40, 70 C, 75, 30 París: 2.35, 48.86 10 20 ← etiquetado auto C1

Modo de Matriz de Distancias

Una matriz cuadrada de n × n distancias no negativas, una fila por línea, valores separados por espacios o comas. Las matrices pueden ser simétricas o asimétricas; las matrices asimétricas modelan calles de sentido único, precios de vuelos con disponibilidad variable y viajes que dependen del viento. Opcionalmente, proporciona etiquetas en el campo de Etiquetas de matriz.

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

Comparación de Algoritmos

Algoritmo Complejidad temporal Memoria Calidad del resultado Tamaño práctico
Fuerza bruta O(n!) O(n) Óptimo n ≤ 10
Held–Karp DP O(2n · n²) O(2n · n) Óptimo n ≤ 20
Vecino más Cercano O(n²) O(n) ~25% peor que el óptimo n ≤ miles
NN + 2-opt O(n² · pasadas) O(n) ~2–5% peor que el óptimo n ≤ cientos

Cómo Usar este Solucionador

  1. Elige un modo de entrada. Coordenadas si tus ciudades tienen posiciones (x, y) significativas; Matriz de distancias si tus costos no son euclidianos o son asimétricos.
  2. Pega o escribe tus datos. Una ciudad o fila por línea. Haz clic en un botón de ejemplo rápido sobre el formulario para rellenar un ejemplo válido.
  3. Elige el algoritmo. Déjalo en Auto para el valor predeterminado correcto: Held–Karp cuando la instancia es lo suficientemente pequeña para la optimización demostrable, NN + 2-opt en caso contrario. Fuerza un algoritmo específico si deseas comparar.
  4. Elige cerrado o abierto. Un recorrido cerrado regresa al inicio (el TSP tradicional). El modo de ruta abierta resuelve el problema relacionado del Camino Hamiltoniano, donde el viajante termina en una ciudad diferente.
  5. Haz clic en Resolver. La página de resultados muestra la longitud total del recorrido, un SVG animado de la ruta (haz clic en "Reproducir animación" para repetirla), la secuencia completa de ciudades, un desglose por arista y la matriz de distancias con las aristas del recorrido resaltadas.

Ejemplo Práctico

Considera cinco ciudades —un rectángulo más un pico—: A (0, 0), B (4, 0), C (4, 3), D (0, 3), E (2, 5). El solucionador devuelve:

Aplicaciones en el Mundo Real

Preguntas Frecuentes

¿Qué es el Problema del Viajante de Comercio?

El Problema del Viajante de Comercio (TSP) busca el recorrido más corto posible que visite cada ciudad exactamente una vez y regrese a la ciudad de origen. Es uno de los problemas más famosos en optimización combinatoria y es NP-duro en el caso general, lo que significa que no existe un algoritmo conocido que resuelva todas las instancias en tiempo polinomial.

¿Qué es el algoritmo Held–Karp?

Held–Karp es un algoritmo de programación dinámica que resuelve el TSP exactamente en tiempo O(2n · n²) y memoria O(2n · n). Es drásticamente más rápido que la fuerza bruta (n factorial) pero sigue siendo exponencial, por lo que en la práctica solo se usa para instancias de hasta unas 20 ciudades. Este solucionador utiliza Held–Karp cuando hay 12 ciudades o menos.

¿Qué es 2-opt y por qué se utiliza?

2-opt es una heurística de búsqueda local que elimina repetidamente dos aristas del recorrido actual y vuelve a conectar los dos caminos resultantes de la otra manera posible. Cuando el nuevo recorrido es más corto, se mantiene el intercambio. 2-opt se ejecuta en tiempo polinomial por iteración y encuentra sistemáticamente recorridos dentro de un pequeño porcentaje del óptimo, por lo que es la heurística clásica de referencia para instancias de TSP de mayor tamaño.

¿Cuándo debo usar coordenadas frente a una matriz de distancias?

Usa coordenadas cuando tus ciudades se sitúen en un plano con distancias en línea recta; por ejemplo, puntos en un mapa, ubicaciones de almacenes o agujeros en una placa de circuito. Usa una matriz de distancias cuando el costo entre pares no sea euclidiano; por ejemplo, precios de vuelos, tiempos de viaje con tráfico, distancias en carreteras de sentido único o costos asimétricos. El modo de matriz acepta cualquier distancia no negativa, incluso las asimétricas.

¿Es óptima la solución 2-opt?

No, 2-opt devuelve un recorrido 2-óptimo, lo que significa que no se puede intercambiar ningún par individual de aristas para producir una ruta más corta. Se trata de un óptimo local que suele estar a pocos puntos porcentuales del óptimo global en instancias bien comportadas, pero no se garantiza que sea el mejor global. Para un recorrido demostrablemente óptimo en instancias pequeñas, elige Held–Karp.

¿Admite esta herramienta matrices de distancia asimétricas?

Sí. En el modo de Matriz de distancias puedes introducir cualquier matriz cuadrada no negativa, incluidas las asimétricas donde D[i][j] difiere de D[j][i]. Tanto Held–Karp como 2-opt gestionan correctamente las matrices asimétricas. Esto es útil para problemas de rutas del mundo real con calles de sentido único, tráfico o costos de vuelo que dependen del viento.

Lecturas Adicionales

Cite este contenido, página o herramienta como:

"Solucionador del Viajante de Comercio (TSP)" en https://MiniWebtool.com/es/solucionador-del-viajante-de-comercio-tsp/ de MiniWebtool, https://MiniWebtool.com/

por el equipo de miniwebtool. Actualizado: 21 de abr de 2026

También puede probar nuestro Solucionador de Matemáticas AI GPT para resolver sus problemas matemáticos mediante preguntas y respuestas en lenguaje natural.

Otras herramientas relacionadas:

Operaciones matemáticas avanzadas:

Herramientas destacadas:

Calculadora de Signo Solar, Lunar y Ascendente 🌞🌙✨Calculadora de día del año - ¿Qué día del año es hoy?📅 Calculadora de FechaCalculadora de Compatibilidad AmorosaGenerador de IMEI AleatorioSelector de Nombre AleatorioConvertidor de cm a pies y pulgadasCalendario del Día del AñoConvertidor de Pies y Pulgadas a CentímetrosGenerador de Cartas de Baraja AleatorioCalculadora de Número del NombreCalculadora de Promedio - Alta PrecisiónSelector de Películas AleatorioCalculadora de Sumacalculadora-de-hba1cCalculadora de NumerologíaCalculadora del Signo de VenusConvertidor de kPa a psiCalculadora de Duración de TiempoCalculadora de Combinaciónbúsqueda-de-direcciones-MACExtractor de Imágenes de VideoEliminar acentos del textoBúsqueda de ID de usuario de FacebookCalculadora de Desviación Estándar RelativaBúsqueda de ID de Usuario de InstagramCalculadora de Camino más Corto de DijkstraGenerador de Código MorseGenerador Aleatorio de ListasCalculadora del Signo de MarteSelector AleatorioEliminar espaciosCalculadora HexadecimalCalculadora de Número MaestroConvertidor de Decimal a Tiempoconvertidor ppm a porcentajePrimeros n Dígitos de PiCalculadora de Pasos a DistanciaGenerador de anagramasConvertidor de FPSGenerador de Superpoder AleatorioCalculadora de Área de Polígono IrregularConvertidor de Porcentaje a PPMCalculadora de cociente y residuoContador de líneasBola Mágica 8Calculadora de MóduloGenerador de Palabras DesordenadasCalculadora de Número del AlmaConvertidor de Número a PalabraGenerador de Nombres AleatoriosCalculadora CPMSimulador de Puertas Lógicas📅 Calculadora de Diferencia entre FechasDescargador de Miniaturas de YouTubeVerificador de Nombre de Usuario en Redes SocialesConvertidor de números romanos¿Cuál es mi número de la suerte?Divisor de imágenesCalculadora de Promedio de BateoDivisor de AudioCalculadora de Aumento PorcentualConvertidor de Notación Científica a DecimalOrdenar NúmerosCalculadora Octal🖱️ Contador de ClicsCalculadora de Número de DestinoCalculadora de CírculosCalculadora de edadConvertidor de Metros a Pies¿Cuál es mi signo del zodiaco?Calculadora de Coeficiente de VariaciónConvertidor de dirección IP a binarioGenerador de Texto InvisibleAnalizador Avanzado de Compatibilidad ZodiacalGenerador de cartones de bingoConvertidor de fracción a número mixtoCalculadora de notación científicaLista de Años BisiestosCreador de Diagramas de Caja y BigotesGenerador de números de loteríaGenerador de Fechas AleatoriasGenerador de Números AleatoriosCalculadora de media, mediana y modaCalculadora de Error PorcentualCalculadora de PermutaciónCalculadora de la Conjetura de CollatzGraficador de FuncionesLanzador de DadosConversor de HTML a TextoDecodificador de Código MorseCalculadora de Número de Trayecto de VidaCreador de CrucigramasCalculadora de números de ángelesConvertidor hexadecimal a binarioCalculadora de reducción porcentualconvertidor de palabras a números de teléfonoGenerador de Unir los PuntosLanzador de MonedasCalculadora de Mínimo Común MúltiploCalculadora de Retorno de SaturnoGenerador de hora aleatoriaCalculadora de Percentil de EstaturaHerramienta de Cifrado CésarGenerador de País AleatorioEliminador de Caracteres InvisiblesCalculadora de Horas de TrabajoGenerador Aleatorio de Nombres en LíneaCalculadora de pendiente y gradogenerador-de-texto-al-revésCalculadora de ERAConvertidor de Tamaño de ArchivoConvertidor de Tiempo a DecimalCalculadora de EscaleraCalculadora de media aritméticaGenerador de Distribución Gaussiana🌐 Convertidor de Zona HorariaGenerador de LaberintosCalculadora de Log Base 10Formateador de TextoGenerador de direcciones MACCalculadora de Cambio PorcentualCalculadora de Descuento PorcentualValidador XMLCalculadora de Edad GestacionalConvertidor Decimal a OctalGenerador de Números Decimales AleatoriosCalculadora de Compatibilidad de Signos Lunares⏱️ Calculadora de HorasEstadísticas del Canal de YouTubeSolucionador de InecuacionesCalculadora BinariaConvertidor de BaseSimplificador de Álgebra BooleanaGenerador de Coordenadas AleatoriasCalculadora de Números ComplejosCalculadora de RedondeoCalculadora del día de la semana de nacimientoConversor de Libras a KilogramosConvertidor de Porcentaje a DecimalGenerador de sopa de letrasGenerador de Tarjeta de Crédito AleatorioConvertidor de psi a kPaGenerador de PIN AleatorioGenerador de Cumpleaños AleatorioSimplificador de FraccionesConvertidor de Decimal a BCDGenerador de Colores AleatoriosCalculadora de ComisionesCalculadora de raíz cuadradaConvertidor de Lectura BiónicaCalculadora de Proporción ÁureaConvertidor de Número a FracciónGenerador de letras aleatoriasCalculadora de Tipo CorporalGenerador aleatorio de animalesCalculadora de número de dígitosCalculadora CientíficaCalculadora de Tasa de Crecimiento PorcentualGenerador de ítems aleatoriosConvertidor de dirección IP a hexadecimalPredictor de peso de cachorrosCalculadora de Log (Logaritmo)Generador de Verdad o Reto Aleatoriocalculadora-de-exponentes-alta-precisiónSolucionador de Mapa de Karnaugh (K-Map)Calculadora de Diferencia de ListasCalculadora de distribución binomialEliminar saltos de líneaGenerador de Tabla de Valor PosicionalGraficador de funciones trigonométricasContador de SílabasExtractor de AudioGenerador de CriptogramaGenerador de Plantilla de Cono DesarrolladoGira la RuletaCalculadora de Ganancias de TwitchConvertidor de decimal a notación científicaCalculadora de Punto de EquilibrioCalculadora Log Base 2Convertidor Binario a Código GrisGraficador de Curvas ParamétricasConvertidor de CM a PulgadasCalculadora de Distribución de ProbabilidadCalculadora de Raíz CúbicaCalculadora del Método de NewtonConvertidor de Fracción a PorcentajeConvertidor de Decimal a BinarioGenerador de cuadrado mágicoGenerador de cadenas aleatoriasGenerador aleatorio de númerosExtractor de URLConvertidor binario a BCDDivisor de vídeoGenerador de acordes aleatoriosAnalizador de Direcciones MACCalculadora de División LargaConvertidor de decimal a porcentajeConvertidor de Gramos a LibrasTemporizador de Posturas de YogaCalculadora de SWOLF de NataciónPredictor de Tiempo de CarreraCalculadora de Potencia de Golpe de BoxeoCalculadora de Puntos de RugbyCalculadora de Run Rate de CríquetCalculadora de xG (Goles Esperados) de FútbolMarcador de TenisCalculadora de Escala de Wells TVP/EPCalculadora de la Escala de Coma de GlasgowCalculadora de Puntuación APGARCalculadora de FFMICalculadora de Carrera de 12 Minutos de CooperCalculadora del Test de Caminata de una Milla RockportCalculadora de Masa Magra a FuerzaCalculadora de Relación Carbohidratos-InsulinaCalculadora de Factor de Sensibilidad a la InsulinaConversor de Calendario HebreoConversor de Calendario HijriConvertidor de Calendario LunarCalculadora de Edad en CulturasCalculadora de Hace Cuánto TiempoCalculadora Cuánto Falta ParaGenerador de Patrones de FechasCalculadora de Fecha IntermediaSumar Días Hábiles a una FechaCalculadora de Días HábilesAnalizador de Frecuencia de PalabrasAnalizador de Variación de Longitud de OracionesEditor de Legibilidad Estilo HemingwayConvertidor de Pronunciación IPAHerramienta de Cifrado VigenèreHerramienta de Cifrado AtbashCodificador y Decodificador ROT13Visor y Eliminador de Datos EXIFTraductor de Pig LatinGenerador de BackronymsGenerador de AcrónimosVerificador de PangramasVerificador de LipogramaTrazador de Imagen a SVGConvertidor de Imagen a Arte ASCIIGenerador de Esquemas JSONPlayground de TypeScriptCompilador de Less a CSSCompilador de SCSS a CSSConversor de SVG a React/JSXConstructor de Cadenas de ConsultaAnalizador de URLValidador y Decodificador de UUIDReferencia de Códigos de Estado HTTPGenerador de Comandos cURLGenerador de Triángulo de SierpinskiTrazador de Superficies 3DTrazador de Ecuaciones PolaresGenerador de Conjunto de JuliaExplorador del Conjunto de MandelbrotGenerador de Fractales L-SystemGenerador de Triangulación de DelaunayGenerador de Diagramas de VoronoiGenerador de espirografoGenerador de TeseladosCalculadora de Capacidad de Proceso Seis SigmaGenerador de Diagramas de ParetoCalculadora de NPS (Net Promoter Score)Calculadora de Retención por CohortesCalculadora de Tasa de AbandonoCalculadora de Coste de Adquisición de Cliente (CAC)Calculadora de Valor del Tiempo de Vida del Cliente CLVCalculadora de Tasa de ConversiónCalculadora de Tamaño de Muestra para Test A/BCalculadora de Significancia de Pruebas A/BCalculadora de la Ecuación de las LentesCalculadora de Campo Magnético de un CableCalculadora de Campo EléctricoCalculadora de la Ley de CoulombCalculadora de la Ley de SnellCalculadora de Momento de InerciaCalculadora de Velocidad AngularCalculadora de Fuerza CentrípetaCalculadora del Periodo del PénduloCalculadora de Constante de ResorteCalculadora de Efecto DopplerCalculadora de Ratio de SortinoCalculadora de Ratio de TreynorCalculadora de Beta de AccionesCalculadora de Bonos del Tesoro Protegidos contra la Inflación (TIPS)Calculadora de Recálculo de HipotecaCalculadora de Tasa ForwardCalculadora de Duración del Bono (Macaulay y Modificada)Calculadora de Convexidad de BonosCalculadora de Anualidad Indexada FijaCalculadora de Anualidad VariableCalculadora de Hipoteca InversaCalculadora de Pagos de AnualidadSimulador de Soroban Ábaco JaponésMultiplicación Campesina RusaCalculadora de Trucos de Matemática VédicaCalculadora de Multiplicación EgipciaCalculadora de Matemáticas con Números RomanosEntrenador de Cálculo MentalExamen de Tablas de MultiplicarVisualizador de Llevadas y PrestadasGenerador de Descomposiciones NuméricasSolucionador de Problemas de MonedasCalculadora del Triángulo de Distancia, Velocidad y TiempoResolutor de Problemas de Tasa de TrabajoResolutor de Problemas de MezclasSolucionador de Problemas de EdadSolucionador de Problemas de Encuentro de TrenesCalculadora de HidrataciónCalculadora de Ritmo a CaloríasCalculadora de Dosis de MedicamentosCalculadora de Calorías del AlcoholCalculadora de Recomposición CorporalGenerador de Temas de Debate AleatoriosGenerador de Nombres Aleatorios para Gatos y PerrosGenerador de Versículos Bíblicos AleatoriosGenerador Aleatorio de Problemas de MatemáticasGenerador de Párrafos AleatoriosGenerador de Oraciones Aleatorias en InglésCalculadora de Grava, Arena y Tierra VegetalCalculadora de Peso de AceroCalculadora de Par de Apriete de PernosCalculadora de Flujo en TuberíasCalculadora de Carga de VigasConvertidor de Dólares a OroCalculadora de Probabilidad de OpcionesCalculadora de División de AccionesCalculadora de ESPPCalculadora de Recargo por Mora en FacturaCalculadora de Tarifa por Hora para FreelancersCalculadora de Leasing vs CompraDivisor de Propinas AvanzadoGenerador de Lista de EquipajeCalculadora de Jet LagCalculadora de Presupuesto de ViajeCalculadora de Distancia de VueloCalculadora de Pérdida de CalorCalculadora de Costo de Generación de ElectricidadCalculadora de Consumo de AguaCalculadora de Costo de Energía de ElectrodomésticosCalculadora de Auditoría Energética del HogarCalculadora de ROI SolarCalculadora de Paneles SolaresCalculadora de Compost (Relación C:N)Calculadora de Fertilizante para CéspedCalculadora de Fechas de HeladasCalculadora de Tierra para Bancal ElevadoCalculadora de Fertilizante NPKCalculadora de Tasa de Germinación de SemillasCalculadora de Bitrate de VideoTranspositor de Tonalidad MusicalCalculador de BPM por ToquesEstimador de tamaño de archivo de fotoCalculadora de Megapíxeles a Tamaño de ImpresiónCalculadora de Factor de RecorteCalculadora del Triángulo de ExposiciónCalculadora de Capacidad de Remolque del VehículoCalculadora de Arrendamiento de AutoCalculadora de 0–60 y Cuarto de MillaCalculadora de Tiempo de Carga de VECalculadora de Autonomía de VECalculadora de Distancia 3DCalculadora de ToroCalculadora de Tronco de ConoCalculadora de Polígono RegularIdentificador de Sección CónicaCalculadora de HipérbolaContador de Caracteres Twitter/XSelector de Comentarios de YouTubeExtractor de Etiquetas de YouTubeEstimador de Ganancias de YouTubeGenerador de personaje RPG aleatorio