Loading AI tools
De Wikipedia, la enciclopedia libre
El problema del vendedor viajero (problema del vendedor ambulante, problema del agente viajero o problema del viajante, PCP, TSP por sus siglas en inglés, Travelling Salesman Problem) responde a la siguiente pregunta: dada una lista de ciudades y las distancias entre cada par de ellas, ¿cuál es la ruta más corta posible que visita cada ciudad exactamente una vez y al finalizar regresa a la ciudad origen? Este es un problema NP-Hard dentro en la optimización combinatoria, muy importante en investigación operativa y en ciencias de la computación.
El problema fue formulado por primera vez en 1930 y es uno de los problemas de optimización más estudiados. Es usado como prueba para muchos métodos de optimización. Aunque el problema es computacionalmente complejo, se conoce gran cantidad de heurísticas y métodos exactos, así que es posible resolver planteamientos concretos del problema desde cien hasta miles de ciudades.
El TSP tiene diversas aplicaciones aún en su formulación más simple, tales como: la planificación, la logística y la fabricación de circuitos electrónicos. Un poco modificado, aparece como subproblema en muchos campos como la secuenciación de ADN. En esta aplicación, el concepto de “ciudad” representa, por ejemplo: clientes, puntos de soldadura o fragmentos de ADN y el concepto de “distancia” representa el tiempo de viaje o costo, o una medida de similitud entre los fragmentos de ADN. En muchas aplicaciones, restricciones adicionales como el límite de recurso o las ventanas de tiempo hacen el problema considerablemente difícil. El TSP es un caso especial de los Problemas del Comprador Viajante (travelling purchaser problem).
En la teoría de la complejidad computacional, la versión de decisión del TSP (donde, dada una longitud “L”, el objetivo es decidir si el grafo tiene un camino menor o igual que L) pertenece a la clase de los problemas NP-completos. Por tanto, es probable que en el caso peor el tiempo de ejecución para cualquier algoritmo que resuelva el TSP aumente de forma exponencial con respecto al número de ciudades.
El origen de los problemas del viajante no está claro. Una guía para viajantes de 1832 menciona el problema e incluye ejemplos de viajes a través de Alemania y Suiza, pero no contiene un tratamiento matemático del mismo.[1]
El problema del viajante fue definido en los años 1800s por el matemático irlandés W. R. Hamilton y por el matemático británico Thomas Kirkman. El Juego Icosian de Hamilton fue un puzle recreativo basado en encontrar un ciclo de Hamilton.[2] Todo parece indicar que la forma general del TSP fue estudiada, por primera vez por matemáticos en Viena y Harvard, durante los años 1930s. Destacándose Karl Menger, quien definió los problemas, considerando el obvio algoritmo de fuerza bruta, y observando la no optimalidad de la heurística de vecinos más cercanos:
Denotamos por “Problema del Mensajero” (dado que en la práctica esta pregunta puede resolverse por cada cartero, aunque puede ser resuelta por varios viajeros) la pregunta es encontrar, para un conjunto finito de puntos de los cuales se conocen las distancias entre cada par, el camino más corto entre estos puntos. Por supuesto, el problema es resuelto por un conjunto finito de intentos. La regla que se debe seguir es que desde el punto inicial se va al punto más cercano a este, de ahí a su más cercano y así sucesivamente, en general este algoritmo no retorna la ruta más corta.[3]
Hassler Whitney de la Universidad de Princeton introdujo el nombre “travelling salesman problem” poco después.[4]
Durante los años 1950 a 1960, el problema fue incrementando su popularidad entre el círculo de científicos de Europa y Estados Unidos. Una notable contribución fue la de George Dantzig, Delbert Ray Fulkerson y Selmer M. Johnson de la Corporación RAND en Santa Mónica, quienes expresaron el problema como Programación Lineal en Enteros y desarrollaron para solucionarlo el método de Planos Cortantes. Con este nuevo método, resolvieron una instancia con 49 ciudades, óptimamente, mediante la construcción de un recorrido y probando que no había un recorrido que pudiera ser más corto. En las siguientes décadas, el problema fue estudiado por muchos investigadores, matemáticos, científicos de la computación, químicos, físicos, etc.
Richard M. Karp mostró en 1972 que el Problema del Ciclo de Hamilton era un problema NP-completo, lo cual implica que el TSP sea un problema NP-duro. Esto tiene su explicación matemática por la evidente dificultad computacional para encontrar recorridos óptimos.
Gran progreso tuvo a finales de los 70 y principios de los 80, donde Grötschel, Padberg, Rinaldi y otros, manejaron soluciones exactas para instancias con 2392 ciudades, usando Planos Cortantes y Ramificación y Acotación.
En los 90s, Applegate, Bixby, Chvátal, y Cook desarrollaron el programa Concorde, el cual es usado en muchos de los registros de soluciones recientes. Gerhard Reinelt publicó el TSPLIB en 1991, una colección de instancias de pruebas de dificultad variable, la cual es usada por muchos grupos investigativos para comparar resultados. En 2006, Cook y otros, obtuvieron un recorrido óptimo para 85,900 ciudades dado por un problema de diseño de microchip, actualmente TSPLIB es la instancia más larga resuelta. Para otras muchas instancias con millones de ciudades, la solución puede ser encontrada garantizando que la solución contiene un 2-3% del recorrido óptimo.[5]
En el problema se presentan N! rutas posibles, aunque se puede simplificar ya que dada una ruta nos da igual el punto de partida y esto reduce el número de rutas a examinar en un factor N quedando (N-1)!. Como no importa la dirección en que se desplace el viajante, el número de rutas a examinar se reduce nuevamente en un factor 2. Por lo tanto, hay que considerar (N-1)!/2 rutas posibles.
En la práctica, para un problema del viajante con 5 ciudades hay (5-1)!/2=12 rutas diferentes y no necesitamos un ordenador para encontrar la mejor ruta, pero apenas aumentamos el número de ciudades las posibilidades crece factorialmente:
Puede comprobarse que por cada ciudad nueva que incorporemos, el número de rutas se multiplica por el factor N y crece factorialmente. Por ello el problema pertenece a la clase de problemas NP-completos.
El TSP puede ser modelado como un grafo ponderado no dirigido, de manera que las ciudades sean los vértices del grafo, los caminos son las aristas y las distancias de los caminos son los pesos de las aristas. Esto es un problema de minimización que comienza y termina en un vértice específico y se visita el resto de los vértices exactamente una vez. Con frecuencia, el modelo es un grafo completo (cada par de vértices es conectado por una arista). Si no existe camino entre un par de ciudades, se añade arbitrariamente una arista larga para completar el grafo sin afectar el recorrido óptimo.
En el ‘’’TSP simétrico’’’, la distancia entre un par de ciudades es la misma en cada dirección opuesta, formando un grafo no dirigido. Este problema reduce a la mitad el número de soluciones posibles. En el ‘’’TSP asimétrico’’’, pueden no existir caminos en ambas direcciones o las distancias pueden ser diferentes, formando un grafo dirigido. Los accidentes de tráfico, las calles de un solo sentido y las tarifas aéreas para ciudades con diferentes costos de partida y arribo, son ejemplos de cómo esta simetría puede ser quebrada.
El TSP puede ser formulado por la programación lineal en enteros.[7][8][9] Sea igual 1, si existe el camino de ir de la i a la ciudad j, y 0 en otro caso, para el conjunto de ciudades 0,..., n. Sean para i = 1,..., n variables artificiales y sea la distancia desde la ciudad i a la ciudad j. Entonces el modelo de programación lineal en enteros puede ser escrito como:
El primer conjunto de igualdades asegura que cada ciudad 0,..., n de salida llegue exactamente a una ciudad, y el segundo conjunto de igualdades aseguran que desde cada ciudad 1,..., n se salga exactamente hacia una ciudad (ambas restricciones también implican que exista exactamente una salida desde la ciudad 0.) La última restricción obliga a que un solo camino cubra todas las ciudades y no dos o más caminos disjuntos cubran conjuntamente todas las ciudades. Para probar esto se muestra en (1) que toda solución factible contiene solamente una secuencia cerrada de ciudades, y en (2) que para cada uno de los recorridos que cubren todas las ciudades, hay valores para todas las variables que satisfacen las restricciones.
Para probar que cada solución factible contiene solamente una secuencia cerrada de ciudades, es suficiente mostrar que cada sub-ruta en una solución factible pasa a través de la ciudad 0 (note que las igualdades aseguran que solamente puede haber un recorrido de ese tipo). Por tanto, si sumamos todas las desigualdades correspondiente a para cada sub-ruta de k pasos que no pasan a través de la ciudad 0, obtenemos lo cual es una contradicción.
Ahora, mostramos que para cada recorrido que cubre todas las ciudades, hay valores de las variables que satisfacen las restricciones.
Sin pérdida de generalidad, se define el recorrido con origen y fin en la ciudad 0. Escoger si la ciudad i es visitada en el paso t (i, t = 1, 2,..., n). Entonces dado no puede ser mayor que n y no puede ser menor que 1; por lo tanto las restricciones se satisfacen siempre que Para se satisfacen las restricciones.
Las líneas tradicionales para atacar un problema NP-duro son las siguientes:
El problema es NP-duro, y la versión del Problema de decisión (“dado el costo y un número x, decidir si hay una ruta de viaje más barata que x”) es NP-completo. El problema del viajante con cuello de botella es también NP-duro. El problema sigue siendo NP-duro aún para los casos donde las ciudades están en el plano con distancias Euclidianas, al igual que en otros casos restrictivos. Eliminando la condición de visitar cada ciudad exactamente una vez no se elimina la condición de problema NP-duro, ya que se ve fácilmente que en el caso planal hay un recorrido óptimo que visita cada ciudad una sola vez (de otra manera, por desigualdades triangulares, un atajo que se salta una visita repetida no incrementa la longitud del camino).
En el caso general, encontrar el camino más corto del viajante es NP-completo. Si la medida de distancia es una métrica y es simétrica, el problema se convierte en APX-completo[10] y el Algoritmo de Christofides lo aproximan a 1.5.[11]
Si las distancias son restringidas a 1 y 2 (pero aun es una métrica) la proporción aproximada es de 8/7.[12] En el caso de que sea asimétrico, es conocido solamente un rendimiento logarítmico, el mejor algoritmo actual logra una proporción de 0.814 log n;[13] esta es una pregunta abierta, si existe un factor constante de aproximación.
El correspondiente problema de aproximación, de encontrar el recorrido más largo del viajante es aproximable a 63/38.[14] Si la función de distancia es simétrica, el camino más largo puede aproximarse a 4/3 por una algoritmo determinista[15] y a por un algoritmo aleatorio.[16]
La solución más directa puede ser, intentar todas las permutaciones (combinaciones ordenadas) y ver cuál de estas es la menor (usando una Búsqueda de fuerza bruta). El tiempo de ejecución es un factor polinómico de orden , el Factorial del número de ciudades, esta solución es impracticable para dado solamente 20 ciudades. Una de las mejores aplicaciones de la Programación dinámica es el algoritmo Held–Karp que resuelve el problema en .[17]
La mejora de estos límites de tiempos es difícil. Por ejemplo, no ha sido determinado si existe un algoritmo para el TSP que corra en un tiempo de orden [18]
Otras aproximaciones incluyen:
Una solución exacta para 15,112 pueblos alemanes desde TSPLIB fue encontrada en 2001 usando el método de planos cortantes propuesto por George Dantzig, Ray Fulkerson, y Selmer M. Johnson en 1954, basados en la programación lineal. Los cálculos fueron realizados por una red de 110 procesadores ubicados en la Universidad Rice y en la Universidad de Princeton (vea el enlace externo Princeton). El tiempo total de cálculo fue equivalente a 22.6 años en un Procesador alpha de 500 MHz. En mayo de 2004, el problema del viajante de visitar todos los 24,978 poblados en Suecia fue resuelto: un recorrido de tamaño aproximado de 72,500 kilómetros fue encontrado y se probó que no existía un camino menor.[19]
En marzo de 2005, el problema del viajante de visitar todos los 33,810 puntos en una tabla de circuitos fue resuelto usando Concorde TSP Solver: un recorrido de 66,048,945 unidades fue encontrado y se probó que no existía un recorrido menor. El cálculo tomo aproximadamente 15.7 años - CPU (Cook et al. 2006). En abril de 2006, una instancia con 85,900 puntos fue resuelta usando ´´Concorde TSP Solver´´, tomando 136 años- CPU, vea Applegate et al. (2006).
Varios algoritmos heurísticos y aproximados que retornan rápidamente buenas soluciones han sido creados. Métodos modernos pueden encontrar soluciones para problema extremadamente largos (millones de ciudades) en un tiempo razonable.[5]
Varias categorías de heurísticas son reconocidas:
El Algoritmo del vecino más próximo (NN por sus siglas en inglés) o también llamado algoritmo voraz (greedy) permite al viajante elegir la ciudad no visitada más cercana como próximo movimiento. Este algoritmo retorna rápidamente una ruta corta. Para N ciudades aleatoriamente distribuidas en un plano, el algoritmo en promedio, retorna un camino de un 25% más largo que el menor camino posible.[20] Sin embargo, existen muchos casos donde la distribución de las ciudades dada hace que el algoritmo NN devuelva el peor camino (Gutin, Yeo, and Zverovich, 2002). Esto es verdad lo mismo para TSP simétricos que asimétricos (Gutin and Yeo, 2007). Rosenkrantz et al. [1977] mostró que el algoritmo NN tiene un factor de aproximación de orden para instancias que satisfacen la desigualdad triangular. Una variación del algoritmo NN, llamada operador de Fragmento más cercano (NF por sus siglas en inglés) la cual conecta un grupo (fragmento) de ciudades no visitadas más cercanas, puede encontrar la ruta más corta con iteraciones sucesivas.[21] El operador NF puede ser aplicado también, en la obtención de soluciones iniciales para el algoritmo NN para además ser mejorado en un modelo elitista, donde solamente son aceptadas las mejores soluciones.
Las construcciones basadas en un árbol de expansión mínima (minimum spanning tree) tienen una proporción de aproximación de 2. El Algoritmo de Christofides logra una proporción de 1.5.
Match Twice and Stitch (MTS) (Kahng, Reda 2004[22]), es otra heurística constructiva, que realiza dos comparaciones secuenciales (matchings), donde el segundo macheo es ejecutado después de eliminar todas las aristas del primer macheo, retornando un conjunto de ciclos. Los ciclos son unidos para producir el camino final.
Los algoritmos optimizados de cadenas de Márkov que usan heurísticas de búsquedas locales como sub-algoritmos pueden encontrar una ruta extremadamente cerca de la ruta óptima para instancias de 700 a 800 ciudades. EL TSP es la base para muchas heurísticas diseñadas para la optimización combinatoria como: los algoritmos genéticos, el recocido simulado, la Búsqueda tabú, la optimización por colonias de hormigas, la Inteligencia de enjambre, entre otras.
El investigador de Inteligencia artificial, Marco Dorigo describió en 1997 un método que genera heurísticamente “buenas soluciones” para el TSP usando una simulación de una colonia de hormigas llamada ACS (Ant Colony System).[23] El cual modela el comportamiento observado en las hormigas reales de encontrar caminos cortos entre las fuentes de comida y su nido, emergió como un comportamiento la preferencia de cada hormiga de seguir el sendero de feromonas depositado por las otras hormigas.
ACS envía un gran número de hormigas (agentes virtuales) para explorar las posibles rutas en el mapa. Cada hormiga elige probabilísticamente la próxima ciudad a visitar basada en una heurística, combinando la distancia a la ciudad y la cantidad de feromonas depositadas en la arista hacia la ciudad. La hormiga exploradora, deposita feromonas en cada arista que ella cruce, hasta que complete todo el camino. En este punto la hormiga que completó el camino más corto deposita feromonas virtuales a lo largo de toda la ruta recorrida (actualización del camino global). La cantidad de feromonas depositadas es inversamente proporcional a la longitud del camino: el camino más corto, tiene más cantidad de feromonas.
En el “TSP métrico”, también conocido como delta-TSP o Δ-TSP, las distancias entre las ciudades satisfacen la Desigualdad triangular.
Una restricción muy natural para el TSP es que las distancias entre las ciudades formen una Métrica que satisfagan las desigualdades triangulares; que significa que la conexión desde A hasta B no sea mayor que la ruta de “A” a “B” pasando por C:
Las aristas se expanden y construyen una Métrica para el conjunto de vértices. Cuando las ciudades son vistas como puntos en el plano aparecen varias funciones de distancia y muchas instancias del TSP satisfacen los requerimientos de las mismas.
Los siguientes son ejemplos de TSP métricos para varias definiciones de las funciones de distancias:
Las dos últimas métricas aparecen, por ejemplo, enrutando una máquina que perfora un conjunto dado de huecos en circuitos impresos (PCB por sus siglas en inglés). La métrica Manhattan corresponde a la máquina que ajusta a una máquina que ajusta en primer lugar, la primera coordenada y luego la otra, así el tiempo de movimiento al nuevo punto es la suma de ambos movimientos. La métrica máxima corresponde a una máquina que ajusta ambas coordenadas simultáneamente, así el tiempo de moverse al nuevo punto es más despacio que los otros dos movimientos. En esta definición, el TSP no permite visitar ciudades dos veces, pero muchas aplicaciones no necesitan esta restricción. En tales casos, una instancia simétrica, no métrica puede ser reducida a una instancia con métrica. Este remplaza el grafo original con un grafo completo en el cual las distancias entre ciudades es reemplazada por el camino más corto entre y en el grafo original.
La expansión del árbol de expansión mínima de la red is a natural es un límite inferior natural para expandir la ruta óptima, porque eliminando cualquier arista de la ruta óptima, devuelve un Camino de Hamilton, el cual es un árbol de expansión en . En el TSP con desigualdades triangulares es posible probar en términos de límites superiores del árbol de expansión mínima y diseñar un algoritmo que haga una verificación de los límites superiores en la expansión de la ruta. El primer ejemplo publicado (y el más simple) es el siguiente:
Es fácil probar que el último paso funciona. Además, gracias a la desigualdad triangular, cada salto del paso 4 es en efecto un camino corto, por ejemplo, la longitud del ciclo no se incrementa. Por lo cual, para un recorrido del TSP este no es más largo que el doble del recorrido óptimo.
El Algoritmo de Christofides sigue un diseño similar pero combina el árbol de expansión mínima con una solución de otro problema, mínimo pero del macheo perfecto. Esto retorna un camino del TSP que es a lo sumo 1.5 veces el óptimo. El algoritmo de Christofides fue una de los primeros algoritmos de aproximación, y fue en parte responsable por la imagen que se le dio a los algoritmos de aproximación como un acercamiento práctico a los problemas intratables. Como un hecho importante se tiene que, el término "algorithm" no fue comúnmente extendido a algoritmos de aproximación hasta más adelante el algoritmo Christofides fue inicialmente referido como la Heurística Christofides.
El TSP Euclidiano, o TSP planal, es el TSP que utiliza la Distancia euclidiana.
El TSP euclidiano es en particular un caso del TSP métrico, dado que las distancias en un plano cumplen la desigualdad triangular.
Como el TSP general, el TSP Euclidiano es NP-duro. El problema con métrica discretizada (distancia redondeada por exceso a un entero), es NP-completo. Sin embargo, con respecto a esto es más fácil que el TSP métrico general. Por ejemplo, el árbol de expansión mínima del grafo asociado con una instancia del TSP Euclidiano es un árbol de expansión mínima euclidiano, y puede calcularse en un tiempo de O(n log n) para n Sin embargo, con respecto a esto es más fácil que el TSP métrico general. Por ejemplo, el árbol de expansión mínima del grafo asociado con una instancia del TSP Euclidiano es un árbol de expansión mínima euclidiano, y puede calcularse en un tiempo de 2- aproximación simple para el TSP con desigualad triangular anterior, operar más rápidamente. En general, para cualquier c > 0, donde d es el número de dimensiones en el espacio Euclidiano, existe un algoritmo polinomial que encuentra un camino de longitud a lo sumo (1 + 1/c), el óptimo para instancia geométricas del TSP se da en tiempo ; este es llamado un esquema de aproximación a tiempo polinomial (PTAS por sus siglas en inglés). Sanjeev Arora y Joseph S. B. Mitchell se adjudicaron el Premio Gödel en 2010 por el descubrimiento de un PTAS para el TSP Euclidiano. En la práctica, heurísticas con pocas garantías continúan siendo usadas.
En la mayoría de los casos, la distancia entre dos nodos en red del TSP es la misma en ambas direcciones. El caso donde la distancia de A a B no es igual que la distancia de B a A es llamado asimétrico. Una aplicación práctica de un TSP asimétrico es la optimización de rutas usando un enrutamiento calle-nivel (el cual es asimétrico por calles de un solo nivel, carreteras deslizantes, caminos de motos, etc.).
Resolver un grafo del TSP asimétrico puede ser algo complicado. La siguiente es una matriz de 3×3 que contiene todos los caminos ponderados entre los nodos A, B y C. Una opción es cambiar una matriz asimétrica de tamaño N por una matriz simétrica de tamaño 2N.[24]
A | B | C | |
---|---|---|---|
A | 1 | 2 | |
B | 6 | 3 | |
C | 5 | 4 |
Doblar el tamaño, cada nodo en el grafo es duplicado, creando un segundo nodo fantasma. Usando los nodos duplicados con pesos muy bajos, como −∞, proporciona rutas baratas con enlaces hacia atrás, al nodo real y permiten continuar la evaluación simétrica. La matriz original de 3×3 mostrada anteriormente es visible en la parte inferior izquierda y el inverso de la original en la parte superior derecha. Ambas copias de la matriz tienen sus diagonales reemplazadas por el menor costo de los caminos saltados, representados por −∞.
A | B | C | A′ | B′ | C′ | |
---|---|---|---|---|---|---|
A | −∞ | 6 | 5 | |||
B | 1 | −∞ | 4 | |||
C | 2 | 3 | −∞ | |||
A′ | −∞ | 1 | 2 | |||
B′ | 6 | −∞ | 3 | |||
C′ | 5 | 4 | −∞ |
La matriz original de 3×3 produce dos ciclos hamiltonianos (un camino que visita todos los nodos una vez), particularmente A-B-C-A [costo 9] y A-C-B-A [costo 12]. Evaluando la versión simétrica de 6×6, el mismo problema ahora produce más caminos, incluyendo A-A′-B-B′-C-C′-A, A-B′-C-A′-A, A-A′-B-C′-A [todos los costos 9 – ∞].
Un tema importante sobre cada nueva secuencia se forma alternando los nodos (A, B, C) y sus simétricos (A′,B′,C′) y el enlace para ¨saltar¨ entre cualquier par relacionado (A-A′) es efectivamente libre. Una versión para el algoritmo puede usar cualquier peso para el camino A-A′, mientras que el peso sea menor que todos los otros pesos presentes en el grafo. Como el peso del camino A-A′ es libre, el valor cero puede ser usado para representar su costo, si cero no está siendo usado para otro propósito (como el de designar caminos inválidos). En los dos ejemplos anteriores, no existen caminos entre los nodos, estos son mostrados con el espacio en blanco.
Para evaluar los algoritmos del TSP, TSPLIB es una librería de instancias de ejemplos del TSP y de problemas relacionados, véase la referencia externa TSPLIB. Muchos de estas instancias son listas de ciudades actuales y diseños de circiutos impresos actuales.
El RSP, en particular la variante Euclidiana del problema, atrae la atención de los investigadores en Psicología cognitiva. Estos observan que los humanos son capaces de producir rápidamente buenas soluciones. El primer ejemplar del Journal of Problem Solving es dedicado al tema del rendimiento de los humanos en el TSP.
Suponiendo N puntos aleatoriamente distribuidos en un cuadrado de 1×1 con N>>1. Considerar muchos de estos cuadrados. Suponer que conocemos el promedio del camino más corto (por ejemplo, en la solución del TSP) de cada cuadrado.
Es un límite inferior obtenido por asumir iun punto en la secuencia e i tiene como próximo vecino el último en el camino.
Es un mejor límite inferior obtenido asumiendo que el último de i's es el próximo de i's, y el antiguo i's es el que le sigue al próximo i's.
Es un aún mejor límite inferior obtenido dividiendo el camino en dos partes como antes_de_i y después_de_i cada parte contiene N/2 puntos, y luego eliminamos antes_de_i formando un conjunto de puntos relajado.
, donde 0.522 proviene de los puntos del límite del cuadrado que contiene menos vecinos.
Este es un problema análogo en la teoría de las medidas geométricas la cual presenta la siguiente interrogante: ¿Bajo qué condiciones puede un subconjunto E del espacio Euclidiano contener en una curva rectificable (esto es, cuando una curva con longitud finita visita todos los puntos en “E”)? Este problema es conocido como TSP de analyst (analyst's travelling salesman problem) o TSP geométrico.
Nombre |
Licencia | Lenguaje API | Breve información |
---|---|---|---|
Concorde | Libre (académico) | solamente ejecutable | Require instalar un solucionador lineal para el subproblemas MILP. |
DynOpt | ? | C | Una solución aproximada de la implementación en ANSI C de un algoritmo basado en la programación dinámica desarrollado por Balas y Simonetti. |
LKH | solamente investigativa | C | Una efectiva implementación de la heurística Lin-Kernighan para TSP Euclidianos. |
OpenOpt | BSD | Python | Soluciones exactas y aproximadas, STSP / ATSP, pueden manejar multigrafos, restricciones, problemas multiobjetivos. |
R TSP package | GPL | R | Infraestructura y soluciones para STSP / ATSP, interface de Concorde |
TSP Solver and Generator | GPL | C++ | Algoritmo de ramificación y acotación |
TSPGA | ? | C | Solución aproximada del STSP usando el paquete "pgapack" |
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.