begin process at 2012 05 29 08:54:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Algorithme

 > 

Maths

 > 

HELP voyageur de commerce


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

HELP voyageur de commerce

vendredi 25 février 2011 à 18:17:58 | HELP voyageur de commerce

yrazine

bonjour chers lecteurs

cela fait quelques jours que je me prend la tête avec le problème du voyageur du commerce.

je souhaite a travers ce forum avoir votre aide si quelqu'un aura un algorithme utilisant une fonction récursive

j'ai travaillé sur un algorithme dijkstra que j'ai essayé de modifié mais je me retrouve completement paumé vous allez le remarquer vous même donc je vs remercie d'avance ^pour toute reponse postée à propos de ce sujet


1. #include <stdio.h>
2. #define MAX 100
3. #define INFINITY 999
4.
5. int voyageur_de_commerce (
6.
7. int c[][MAX],
8. int voyage[],
9. int ville_depart,
10. int n
11.
12. );
13.
14. int main()
15. {
16. int n; /* nombre de ville. */
17. int i, j; /* le compteur de circuit. */
18. int c[MAX][MAX]; /* matrice de distance. */
19. int voyage[MAX]; /* Voyage matrice. */
20. int distance; /* les moindre distance. */
21.
22. printf ("ce programme illustre le problem du voyageur de commerce.");
23. printf ("\n combine de villes a traverser? ");
24. scanf ("%d", &n);
25. printf ("saisir la matrice des distance: (999: plus de lien)\n");
26. for (i=0; i<n; i++)
27. for (j=0; j<n; j++)
28. scanf ("%d", &c[i][j]);
29.
30. for (i=0; i<n; i++)
31. voyage[i] = i;
32.
33. distance = voyageur_de_commerce (c, voyage, 0, n);
34.
35. printf ("distance minimum: %d.\n Voyage: ", distance);
36. for (i=0; i<n; i++)
37. printf ("%d ", voyage[i]+1);
38. printf ("1\n");
39. }
40.
41. int voyageur_de_commerce (int c[][MAX], int voyage[], int ville_depart, int n)
42. {
43. int i, j, k; /* Circuit counters. */
44. int temp[MAX]; /* calculs temporaires. */
45. int distance_minimale; /* distance minimal. */
46. int distance_actuelle; /* distance actuel. */
47.
48. /* fin de la condition de recursion. */
49. if (ville_depart == n - 2)
50. return c[voyage[n-2]][voyage[n-1]] + c[voyage[n-1]][0];
51.
52. /* calculer le */
53. distance_minimale = INFINITY;
54. for (i = ville_depart+1; i<n; i++)
55. {
56.
57. for (j=0; j<n; j++)
58. temp[j] = voyage[j];
59.
60. /* ajuster les postions. */
61. temp[ville_depart+1] = voyage[i];
62. temp[i] = voyage[ville_depart+1];
63.
64. /* trouver le meilleur cycle */
65. if (c[voyage[ville_depart]][voyage[i]] +
66. (distance_actuelle = voyageur_de_commerce (c, temp, ville_depart+1, n)) < distance_minimale) {
67. distance_minimale = c[voyage[ville_depart]][voyage[i]] + distance_actuelle;
68. }
69. }
70.
71. return distance_minimale;
72. }








Cette discussion est classée dans : int, distance, ville, depart, voyage


Répondre à ce message

Sujets en rapport avec ce message

ERREUR C2143 [ par alex64100 ] BONSOIR, le code suivant me donne des cheveux blancs !! il est bourré d'érreurs C2143. Pourtant j'ai vérifié les accolades, parenthèse, rien à faire Besoin d'aide les amis ! [ par charlimoun ] Bonsoir les amis ! J'ai un projet de programmation à rendre en fin de semaine et la majorité des fonctions ne marchent pas :s S'il vous plait aidez voyageur de commerce : recusivité [ par ianov ] je voudrais implémenter une méthode récursive du voyageur de commerce. En effet, je ne voudrais pas explorer tous les circuits possibles mais seulemen Dictionnaire de traduction [ par JSG19 ] Salut j'ai un dictionnaire a programmer a chaque fois que je programme soit j'ai le premier mot soit le dernier ou toute la liste de traduction donc Besoin d'aide c++ [ par sevio14 ] Quelqu'un peut-il m'aider à faire le programme de l'algorithme d'uzawa? Voici ce que j'ai commencé à définir: #include #include #include #includ Erreur dans mon code SHA-1 [ par ndubien ] Bonjour, Je viens d'essayer de développer une application retournant la valeur hachée (SHA-1) d'un fichier, cependant malgré de nombreuses relectures Premier prog [ par ryder0007 ] Bonjour, Voila j'ai terminer de programmer mon premier programme et je voudrais savoir ce que vous en pensez. Il permet de compter le nombre de caract Question triviale: Qui suis-je ? [ par ArthurAuguste ] Bonjour, Trivial certainement pour un non débutant ! J'écris un petit programme en C++ qui utilise l'API 32 sous Windows XP, il commence donc par: int chaîne de caractère [ par digitserg ] slt à tous ça fait deux mois que j'apprends le c j'ai donc décidé de faire mon tout premier petit programme aujourd'hui,il s'agit du calcul de la sur


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,312 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales