Olá, estou tentando implementar o algoritmo do problema do caixeiro viajante, mas acontece que eu não estou conseguindo fazer ele apontar para a cidade de partida. Pra quem conhece o algoritmo, sabe do que estou falando. Eu estava tentando fazer a partir do algoritmo de Dijkstra, e assim mecher alguma coisa nele, pra fazer ele voltar pra cidade de partida, se alguém conseguir alguma coisa ai eu agradeço. Esse código ai e do dijkstra com a tentativa do salesman problem rsrs.
se souberem de algum site que possa ajudar, que tenha o pseudocódigo, Obrigado.
#define MAX 1000
#define INFINITY MAX*MAX
int i, k, e, j, u, v, w, n, ini, fim, menor=0, aux;
int visitado[MAX];
long dist[MAX][MAX];
long d[MAX];
int prev[MAX];
int custo[MAX];
int salesman(int s, int f){
int i, k, mini;
int visitado[MAX];
for (i = 1; i <= n; ++i) {
d[i] = INFINITY;
prev[i] = -1; /* ainda não foi achado caminho para i*/
visitado[i] = 0; /* o i-esimo elemento ainda não foi visitado */
}
d[s] = 0;//o vertice inicial foi inicializado com 0
for (k = 1; k <= n; ++k) {
mini = -1;
for (i = 1; i <= n; ++i)
if (!visitado[i] && ((mini == -1) || (d[i] < d[mini])))
mini = i;
visitado[mini] = 1;
for (i = 1; i <= n; ++i)
if (dist[mini][i])
if (d[mini] + dist[mini][i] < d[i]) {
d[i] = d[mini] + dist[mini][i];
prev[i] = mini;
}
}
}
int imprimeCaminho(int dest) {
if (prev[dest] != -1)
imprimeCaminho(prev[dest]);
printf("%d ", dest);
}
Pergunta
Psyhclo
Olá, estou tentando implementar o algoritmo do problema do caixeiro viajante, mas acontece que eu não estou conseguindo fazer ele apontar para a cidade de partida. Pra quem conhece o algoritmo, sabe do que estou falando. Eu estava tentando fazer a partir do algoritmo de Dijkstra, e assim mecher alguma coisa nele, pra fazer ele voltar pra cidade de partida, se alguém conseguir alguma coisa ai eu agradeço. Esse código ai e do dijkstra com a tentativa do salesman problem rsrs.
se souberem de algum site que possa ajudar, que tenha o pseudocódigo, Obrigado.
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.