Ir para conteúdo
Fórum Script Brasil
  • 0

Problema do caixeiro viajante


Psyhclo

Pergunta

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);
}

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...