Users Online

· Guests Online: 123

· Members Online: 0

· Total Members: 188
· Newest Member: meenachowdary055

Forum Threads

Newest Threads
No Threads created
Hottest Threads
No Threads created

Latest Articles

C++ Program to Implement Traveling Salesman Problem using Nearest Neighbour Algorithm

C++ Program to Implement Traveling Salesman Problem using Nearest Neighbour Algorithm

 

 

This C++ program implements the Travelling Salesman Problem which computes the minimum cost required to visit all the nodes by traversing across the edges only once.

 

Here is the source code of the C++ program to display the minimum cost by taking an undirected graph as input. This C++ program is successfully compiled and run on DevCpp, a C++ compiler. The program output is given below.

  1. /*
  2. * C++ Program to Implement Traveling Salesman Problem using Nearest neighbour Algorithm
  3.  */
  4. #include<stdio.h>
  5. #include<conio.h>
  6. #include<iostream>
  7. using namespace std;
  8. int c = 0,cost = 999;
  9. int graph[4][4] = { {0, 10, 15, 20},
  10.                     {10, 0, 35, 25},
  11.                     {15, 35, 0, 30},
  12.                     {20, 25, 30, 0}
  13.                   };
  14. void swap (int *x, int *y)
  15. {
  16.     int temp;
  17.     temp = *x;
  18.     *x = *y;
  19.     *y = temp;
  20. }
  21. void copy_array(int *a, int n)
  22. {
  23.     int i, sum = 0;
  24.     for(i = 0; i <= n; i++)
  25.     {
  26.         sum += graph[a[i % 4]][a[(i + 1) % 4]];
  27.     }
  28.     if (cost > sum)
  29.     {
  30.         cost = sum;
  31.     }
  32. }  
  33. void permute(int *a, int i, int n) 
  34. {
  35.    int j, k; 
  36.    if (i == n)
  37.    {
  38.         copy_array(a, n);
  39.    }
  40.    else
  41.    {
  42.         for (j = i; j <= n; j++)
  43.         {
  44.             swap((a + i), (a + j));
  45.             permute(a, i + 1, n);
  46.             swap((a + i), (a + j));
  47.         }
  48.     }
  49. } 
  50. int main()
  51. {
  52.    int i, j;
  53.    int a[] = {0, 1, 2, 3};  
  54.    permute(a, 0, 3);
  55.    cout<<"minimum cost:"<<cost<<endl;
  56.    getch();
  57. }

 

Output
minimum cost:80

 

Comments

No Comments have been Posted.

Post Comment

Please Login to Post a Comment.

Ratings

Rating is available to Members only.

Please login or register to vote.

No Ratings have been Posted.
Render time: 1.04 seconds
10,268,458 unique visits