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 día del año - ¿Qué día del año es hoy?Calculadora de Signo Solar, Lunar y Ascendente 🌞🌙✨📅 Calculadora de FechaGenerador de IMEI AleatorioCalculadora de Compatibilidad AmorosaSelector de Nombre AleatorioConvertidor de Pies y Pulgadas a CentímetrosCalendario del Día del AñoConvertidor de cm a pies y pulgadasCalculadora de Número del NombreExtractor de Imágenes de VideoConvertidor de kPa a psiCalculadora de Promedio - Alta Precisiónbúsqueda-de-direcciones-MACcalculadora-de-hba1cCalculadora de SumaCalculadora de CombinaciónCalculadora de Duración de TiempoCalculadora de Desviación Estándar RelativaEliminar acentos del textoCalculadora de Móduloconvertidor ppm a porcentajeConvertidor de Porcentaje a PPMCalculadora HexadecimalGenerador Aleatorio de ListasCalculadora de Aumento PorcentualCalculadora de NumerologíaGenerador de Nombres Aleatorios📅 Calculadora de Diferencia entre FechasSelector de Películas AleatorioGenerador de Código MorseBúsqueda de ID de Usuario de InstagramSelector AleatorioEliminar espaciosBúsqueda de ID de usuario de FacebookCalculadora CPMCalculadora OctalConvertidor de Decimal a TiempoGenerador de sopa de letrasGenerador de Palabras DesordenadasConvertidor de dirección IP a binarioGenerador de cartones de bingoCalculadora BinariaConvertidor de Número a PalabraCalculadora del Signo de VenusConvertidor de FPSBola Mágica 8Generador de Superpoder AleatorioCalculadora de Número MaestroCalculadora de cociente y residuoContador de líneas¿Cuál es mi número de la suerte?Primeros n Dígitos de PiOrdenar NúmerosCreador de CrucigramasCalculadora de pendiente y gradoCalculadora de PermutaciónLanzador de MonedasCalculadora de reducción porcentualCalcular tiempo entre dos fechasGenerador de Cumpleaños AleatorioCalculadora de Distribución NormalConvertidor de números romanosConvertidor de fracción a número mixtoGenerador de números de loteríaCreador de Diagramas de Caja y BigotesCalculadora de Error PorcentualCalculadora de Coeficiente de Variación¿Cuál es mi signo del zodiaco?Convertidor de Decimal a BCDConvertidor de Notación Científica a DecimalConvertidor hexadecimal a binarioDivisor de imágenesGraficador de FuncionesCalculadora de Descuento PorcentualCalculadora de Retorno de SaturnoDivisor de AudioVerificador de Nombre de Usuario en Redes SocialesCalculadora de Cambio PorcentualCalculadora de Percentil de EstaturaConvertidor de Tiempo a DecimalCalculadora del Signo de MarteGenerador de LaberintosCalculadora de media, mediana y modaDecodificador de Código MorseCalculadora de Promedio de BateoCalculadora de Log Base 10Calculadora de la Conjetura de CollatzConvertidor de decimal a notación científicaCalculadora de RedondeoConversor de HTML a Textoconvertidor de palabras a números de teléfonoCalculadora de media aritméticaConvertidor octal a binarioConvertidor Decimal a HexadecimalFormateador de TextoGenerador de Unir los PuntosConvertidor de Porcentaje a DecimalConvertidor de psi a kPaSolucionador de InecuacionesVerificador de Camino HamiltonianoSolucionador del Viajante de Comercio (TSP)Solucionador de Programación LinealCalculadora de Inclusión-ExclusiónSolucionador de Relaciones de RecurrenciaCalculadora de Matriz de AdyacenciaCalculadora de Ordenación TopológicaCalculadora de Coloración de GrafosSimulador de Puertas LógicasSolucionador de Mapa de Karnaugh (K-Map)Simplificador de Álgebra BooleanaCalculadora de Función de ParticiónCalculadora de Raíz DigitalVerificador de Número de FibonacciCalculadora de Fracciones EgipciasCalculadora de Función de MöbiusVerificador de la Conjetura de GoldbachVerificador de Primo de MersenneBuscador de Primos GemelosVerificador de Números AmigosVerificador de Números PerfectosCalculadora de Exponenciación ModularCalculadora de Permutaciones con RepeticiónCalculadora de Tamaño del EfectoCalculadora de Riesgo RelativoCalculadora de Razón de MomiosCalculadora de Tabla de ContingenciaCalculadora de la Prueba Exacta de FisherCalculadora de Correlación de Rangos de SpearmanCalculadora de Distribución BetaCalculadora de Distribución de WeibullCalculadora de Distribución ExponencialCalculadora de Distribución GeométricaCalculadora de Distribución Binomial NegativaCalculadora de Distribución HipergeométricaCalculadora de Prueba F y Distribución FCalculadora del Teorema de BayesCalculadora de Polinomio CaracterísticoCalculadora de Potencia de MatrizCalculadora de Descomposición de CholeskyCalculadora de Descomposición QRCalculadora de Diagonalización de MatricesCalculadora de la Regla de CramerCalculadora de Espacio ColumnaCalculadora de Espacio NuloCalculadora del Ángulo entre VectoresCalculadora de Vector UnitarioCalculadora de Magnitud de VectorCalculadora de Producto VectorialCalculadora de Producto EscalarCalculadora de Multiplicación de MatricesCalculadora de Matriz InversaCalculadora RREF (Forma Escalonada Reducida por Filas)Calculadora del Método de NewtonCalculadora de Matriz JacobianaCalculadora de Integral de SuperficieCalculadora de Integral de LíneaCalculadora de RotacionalCalculadora de DivergenciaCalculadora de Gradiente MultivariableCalculadora de Optimización (Cálculo)Solucionador de Tasas RelacionadasCalculadora de Tasa de Cambio InstantáneaCalculadora de Tasa de Cambio PromedioCalculadora de Suma de Series InfinitasCalculadora de Prueba de Convergencia de SeriesCalculadora de Series de PotenciasCalculadora de Series de MaclaurinCalculadora de la Regla de L'HôpitalCalculadora de Integral ImpropiaCalculadora de la Regla de SimpsonCalculadora de la Regla del TrapecioCalculadora de Suma de RiemannGraficador de Curvas ParamétricasCalculadora de Superficie de RevoluciónCalculadora de Volumen de RevoluciónCalculadora de Distancia de Geometría CoordenadaCalculadora de la Fórmula de HerónCalculadora de Línea Tangente al CírculoCalculadora de Bisectriz del ÁnguloCalculadora de Círculo Inscrito (Incirculo)Calculadora de Círculo Circunscrito (Circuncentro)Calculadora de Distancia del Círculo MáximoCalculadora de Distancia 3DCalculadora de ToroCalculadora de Tronco de ConoCalculadora de Área de Polígono IrregularCalculadora de Polígono RegularIdentificador de Sección CónicaCalculadora de HipérbolaCalculadora de ParábolaCalculadora de Expansión del Teorema BinomialGenerador del Triángulo de PascalCalculadora de Notación de Producto (Notación Pi)Calculadora de Notación Sigma (Sumatoria)Calculadora del Teorema de la Raíz RacionalCalculadora de la Regla de los Signos de DescartesCalculadora de Líneas Paralelas y PerpendicularesCalculadora de Ecuación de la RectaConvertidor de Forma Estándar a Pendiente-OrdenadaCalculadora de Forma Punto-PendienteResolvedor de Sistema de Ecuaciones No LinealesSolucionador de Ecuaciones RacionalesResolvedor de Ecuaciones LiteralesSolucionador de Ecuaciones TrigonométricasResolvedor de Ecuaciones ExponencialesSolucionador de Ecuaciones LogarítmicasCalculadora de Ecuación CuárticaCalculadora de Ecuación CúbicaCalculadora de EstimaciónConvertidor de Número a FracciónGenerador de Conteo SalteadoCalculadora de Precio UnitarioCalculadora de Techo y PisoCalculadora de Valor AbsolutoBuscador de Patrones NuméricosGenerador de Tabla de Valor PosicionalCalculadora de Orden de Operaciones (PEMDAS)Calculadora de Suma y Resta LargaCalculadora de Multiplicación LargaGenerador de Tablas de Multiplicar🎮 Conversor de Moneda de Juego🎲 Calculadora de Probabilidad de Loot🎰 Calculadora de Pity Gacha⚔️ Calculadora de DPS🎮 Convertidor de Sensibilidad de Juegos❄️ Calculadora de Día de Nieve🚚 Estimador de Costos de Mudanza🔍 Verificador de Plagio📷 OCR / Imagen a Texto📈 Creador de Gráficos de Líneas🥧 Creador de Gráfico Circular📊 Creador de Gráficos de Barras🔊 Generador de Tonos🖱️ Contador de ClicsBloc de Notas en Línea⬛ Calculadora de Relación de Aspecto🌍 Calculadora de Huella de Carbono👙 Calculadora de Talla de SujetadorCalculadora de Tamaño de NeumáticosCalculadora de Costo de Combustible💧 Calculadora de Punto de Rocío🌡️ Calculadora de Índice de Calor🌬️ Calculadora de Sensación Térmica por Viento⏰ Despertador en Línea⏰ Calculadora de Tarjeta de Tiempo🕐 Conversor de Hora Militar⏱️ Calculadora de Horas⏱️ Cronómetro en Línea⏱️ Temporizador de Cuenta Regresiva🌐 Convertidor de Zona HorariaCalculadora de AlfombrasCalculadora de Muro de ContenciónCalculadora de Dimensionamiento HVACCalculadora de AislamientoCalculadora de AdoquinesCalculadora de VarillaCalculadora de MaderaCalculadora de Pies CuadradosCalculadora de Multiplicación CruzadaCalculadora de Resumen de Cinco NúmerosCalculadora de PercentilCalculadora de Valor pCalculadora de ProporcionesCalculadora de Completar el CuadradoCalculadora de División LargaCalculadora CientíficaTemporizador de Estudio PomodoroCalculadora de Cifras SignificativasCalculadora de Calificaciones de ExamenCalculadora de Calificaciones PonderadasCalculadora de Nota FinalCalculadora de CalificacionesCalculadora de Frecuencia de ResonanciaCalculadora de ImpedanciaCalculadora de Decibelios (dB)Calculadora de Factor de PotenciaCalculadora de constante de tiempo RCCalculadora de TransformadoresCalculadora de Calibre de CableCalculadora de Temporizador 555Calculadora de CondensadorCalculadora de Resistencias en ParaleloCalculadora de Divisor de VoltajeCalculadora de Resistencia para LEDConvertidor de Mol/Gramo/PartículaCalculadora de TitulaciónCalculadora de Punto de EbulliciónCalculadora de Fórmula EmpíricaCalculadora de Rendimiento PorcentualCalculadora de EstequiometríaBalanceador de Ecuaciones QuímicasCalculadora de DiluciónCalculadora de Caballos de FuerzaCalculadora de TorqueCalculadora de Caída LibreCalculadora de la Ley de los Gases IdealesCalculadora de PresiónCalculadora de DensidadCalculadora de Trabajo y PotenciaCalculadora de Energía PotencialCalculadora de Energía CinéticaCalculadora de Movimiento de ProyectilCalculadora de MomentoCalculadora de VelocidadCalculadora de AceleraciónCalculadora de FuerzaCalculadora de ROI de InfluencersCalculadora de ROASCalculadora de CTROptimizador de Horarios de Publicación en Redes SocialesCalculadora de ROI de Redes SocialesCalculadora de Costos de Anuncios de FacebookCalculadora de Monetización de YouTube ShortsCalculadora de Ganancias de TwitchCalculadora de Tiempo de Reproducción de YouTubeConversor de Marca de Tiempo de Twitter/XEstadísticas del Canal de YouTubeCalculadora de Dinero de TikTokGuía de Tamaños de Imagen para Redes SocialesGenerador de Fuentes para InstagramContador de Caracteres Twitter/XSelector de Comentarios de YouTubeExtractor de Etiquetas de YouTubeDescargador de Miniaturas de YouTubeEstimador de Ganancias de YouTubeGenerador de personaje RPG aleatorio