Dev - C++ - problema del vendedor ambulante con la programación dinámica

 
Vista:
sin imagen de perfil
Val: 36
Ha disminuido su posición en 3 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

problema del vendedor ambulante con la programación dinámica

Publicado por Juan Carlos (19 intervenciones) el 11/09/2021 19:12:20
Hola a todos
Alguien que me pueda ayudar no sé cómo obtener la ruta que usa, sería muy útil si alguien me podría ayudar imprimiendo la ruta que usa este codigo
#include<iostream>
using namespace std;

#define INT_MAX 999999

int n=4;
int dist[10][10] = {
{0,20,42,25},
{20,0,30,34},
{42,30,0,10},
{25,34,10,0}
};
int VISITED_ALL = (1<<n) -1;

int dp[16][4];


int tsp(int mask,int pos){

if(mask==VISITED_ALL){
return dist[pos][0];
}
if(dp[mask][pos]!=-1){
return dp[mask][pos];
}

//Now from current node, we will try to go to every other node and take the min ans
int ans = INT_MAX;

//Visit all the unvisited cities and take the best route
for(int city=0;city<n;city++){

if((mask&(1<<city))==0){

int newAns = dist[pos][city] + tsp( mask|(1<<city), city);
ans = min(ans, newAns);
}

}

return dp[mask][pos] = ans;
}

int main(){
/* init the dp array */
for(int i=0;i<(1<<n);i++){
for(int j=0;j<n;j++){
dp[i][j] = -1;
}
}
cout<<"Travelling Saleman Distance is "<<tsp(1,0);

return 0;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

problema del vendedor ambulante con la programación dinámica

Publicado por anonymous (146 intervenciones) el 11/09/2021 19:39:45
Hola, oye si quieres que te ayuden será necesario que des más detalles de tu problema, que expliques de que se trata el programa, y exactamente que deseas, porque así cono está, será difícil encontrar la solución a tu problema, suerte, saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar