Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2019
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.09 KB | None | 0 0
  1. int distanz(int perm[], int dist[], int len)
  2. {
  3. int i, s = 0;
  4. for(i = 0; i < len; i++)
  5. {
  6. s += dist[perm[i]][perm[(i+1)%4]];
  7. }
  8. return s;
  9. }
  10.  
  11. void testop(int perm[], int dist[], int opt[], int len)
  12. {
  13. int i;
  14. if(distanz(perm, dist, len) < distanz(opt, dist, len))
  15. {
  16. for(i = 0; i < len; i++)
  17. {
  18. opt[i] = perm[i];
  19. }
  20. }
  21. }
  22.  
  23. int next(int i, int perm[], int len)
  24. {
  25. while(i < len)
  26. {
  27. if(perm[i] == -1)
  28. {
  29. return i
  30. }
  31. i++;
  32. }
  33. return i;
  34. }
  35.  
  36. int minimum(int dist[], int len)
  37. {
  38. int i,j, min;
  39. min = dist[0];
  40. for(i = 0; i < len; i++)
  41. {
  42. if(dist[i] == 0)
  43. {
  44. i++;
  45. }
  46. if(dist[i] < min)
  47. {
  48. min = dist[i];
  49. }
  50. }
  51. return min;
  52. }
  53.  
  54. int distanz_min(int perm[], int dist[], int len)
  55. {
  56. int x, l = 0;
  57. for(x = next(0, perm, len); x < len; x++)
  58. {
  59. l += minimum(&dist[x], len);
  60. }
  61. return l;
  62. }
  63.  
  64. void tsp(int perm[], int dist[], int opt[], int ebene, int len)
  65. {
  66. int x;
  67. if(ebene == len)
  68. {
  69. testop(perm,dist,opt,len);
  70. }else
  71. {
  72. x = next(0, perm, len);
  73. perm[x] = ebene;
  74. tsp(perm, dist, int opt, ebene + 1, len);
  75.  
  76. }
  77.  
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement