Bonjour a tous,
Voila je dois resoudre de la maniere la plus brutale possible (c'est a dire en essyant toutes les possibilite) le probleme du TSP (du voyaveur de commece)
Le but etant de trouver le chemin le plus court en passant une et une seule fois par chaque ville !
Donc pour cela, je sais qu'il faut faire du recursif pour reussir a faire cela mais j'arrive pas a le faire
Pour mon probleme, je stocke toutes les villes dans un tableau.
J'ai fais les fonction qui me permettent de calculer la distance entre 2 ville.
Voici un bout de mon code :
Le main d'abord
La fonction parcours_Complet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 parcours_Complet (data); // data est une structure donnees (ayant le nombre de ville du tableau et le tableau
Et la je sais pas comment implemente ma fonction parcours_Complet_Rec( .. ) pour reussir correctement a faire mes appel recursif (je ne sait pas comment ecrire la condition d'arret deja
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 void parcours_Complet(donnees d) { // Effectuer l'énumération et l'évaluation de toutes les solutions (toutes les permutations possibles) et de choisir la meilleure float dist_totale=0.0; int i=0; printf("nombre de noeud %d\n",d.nb_noeuds); dist_totale = parcours_Complet_Rec(d,1); // d est les donnees et un est le numero du noeud que je suis entrain de traiter printf("\n\tParcours Complet :\n"); printf("\t Distance Totale : %10.2f\n",dist_totale); })
Bref, je suis totalement dans le flou
Si quelqu'un pouvais m'aider je lui en serai reconnaissant !
merci d'avance
Ou si vous avez un liens ou il donne un algo simple de resolution du probleme du voyageur de commerce ? je suis aussi preneur
Partager