Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int distanz(int perm[], int dist[], int len)
- {
- int i, s = 0;
- for(i = 0; i < len; i++)
- {
- s += dist[perm[i]][perm[(i+1)%4]];
- }
- return s;
- }
- void testop(int perm[], int dist[], int opt[], int len)
- {
- int i;
- if(distanz(perm, dist, len) < distanz(opt, dist, len))
- {
- for(i = 0; i < len; i++)
- {
- opt[i] = perm[i];
- }
- }
- }
- int next(int i, int perm[], int len)
- {
- while(i < len)
- {
- if(perm[i] == -1)
- {
- return i
- }
- i++;
- }
- return i;
- }
- int minimum(int dist[], int len)
- {
- int i,j, min;
- min = dist[0];
- for(i = 0; i < len; i++)
- {
- if(dist[i] == 0)
- {
- i++;
- }
- if(dist[i] < min)
- {
- min = dist[i];
- }
- }
- return min;
- }
- int distanz_min(int perm[], int dist[], int len)
- {
- int x, l = 0;
- for(x = next(0, perm, len); x < len; x++)
- {
- l += minimum(&dist[x], len);
- }
- return l;
- }
- void tsp(int perm[], int dist[], int opt[], int ebene, int len)
- {
- int x;
- if(ebene == len)
- {
- testop(perm,dist,opt,len);
- }else
- {
- x = next(0, perm, len);
- perm[x] = ebene;
- tsp(perm, dist, int opt, ebene + 1, len);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement