Si usamos un algoritmo np para el problema del vendedor ambulante donde la gente va en cada ruta. ¿Por qué hay 2 ^ n personas en total? ¿Es porque una persona está viajando una ruta o no está viajando una ruta?

Es un error pensar que hay rutas [matemáticas] 2 ^ n [/ matemáticas], ya que en total hay rutas [matemáticas] n! [/ Matemáticas]. Eso es todo permutaciones (suponiendo que la conectividad completa) es posible.

Por otro lado, hay un algoritmo [matemático] O (n ^ 2 2 ^ n) [/ matemático] que proviene de una forma diferente de ver la resolución del problema. En lugar de tratar de enumerar todas las rutas, hacemos la siguiente observación de que solo hay [matemáticas] 2 ^ n [/ matemáticas] formas de seleccionar un subconjunto del conjunto completo.

El algoritmo utiliza la programación dinámica y así es como ahorra tiempo, imagine dos rutas.

a B C D e F
abcdf e

Los puntos de partida son los mismos y, por lo tanto, hay una gran cantidad de cálculos, que pueden reducirse mediante la programación dinámica.

Veremos el algoritmo de la siguiente manera.

  1. Primero supondremos que el punto de partida es la ubicación (vértice) [matemática] s [/ matemática], e iteraremos y asignaremos cada uno de los vértices como ubicación de partida.
  2. Sea [math] B (S, s, k) [/ math] el camino más corto que comienza desde [math] s [/ math] que contiene todos los elementos en [math] S [/ math] y termina en [math] k [ /mates]
  3. Esto se calcula de la siguiente manera
    [matemáticas] B (S, s, k) = min_ {v \ en S} B (S – \ {v \}, s, v) + d (v, k) [/ matemáticas]
    Esto nos da la solución TSP para un caso secundario de ubicaciones S con s como punto de partida yk como final.
  4. El cálculo anterior lleva tiempo [matemático] O (n) [/ matemático] pero no requiere ramificación ya que la respuesta una vez elegida es fija.
  5. Dado que esto se basa en el número total de [matemática] S [/ matemática] posible, está acotada superiormente NO por el número de rutas sino por el número de conjuntos de potencia y es por eso que es [matemática] 2 ^ n [/ matemática]

algoritmo