Algoritmo Held-Karp


El algoritmo Held-Karp , también llamado algoritmo Bellman-Held-Karp , es un algoritmo de programación dinámica propuesto en 1962 de forma independiente por Bellman [1] y por Held y Karp [2] para resolver el problema del viajante de comercio (TSP), en el que el La entrada es una matriz de distancia entre un conjunto de ciudades, y el objetivo es encontrar un recorrido de duración mínima que visite cada ciudad exactamente una vez antes de regresar al punto de partida. Encuentra la solución exacta a este problema y a varios problemas relacionados, incluido el problema del ciclo hamiltoniano , en tiempo exponencial .

Numere las ciudades , con designadas arbitrariamente como una ciudad "inicial" (dado que la solución para TSP es un ciclo, la elección de la ciudad inicial no importa). El algoritmo de Held-Karp comienza calculando, para cada conjunto de ciudades y cada ciudad no contenida en , el camino de ida más corto desde a que pasa por cada ciudad en algún orden (pero no a través de otras ciudades). Denote esta distancia y escriba la longitud del borde directo de a . Calcularemos los valores de comenzar con los conjuntos más pequeños y terminar con los más grandes.

Cuando tiene dos o menos elementos, el cálculo requiere mirar uno o dos posibles caminos más cortos. Por ejemplo, es simplemente y tiene la longitud de . Del mismo modo, es la longitud de o , lo que sea más corto.