From 7759d363acf538f6bebbe640fabeed355149d146 Mon Sep 17 00:00:00 2001 From: JITHIKA SAGAR <44131656+JITHIKASAGAR123@users.noreply.github.com> Date: Fri, 18 Oct 2019 12:07:36 +0530 Subject: [PATCH] Travelling salesman c++ program added Travelling salesman c++ program added and uploaded..... --- Travelingsakesman.cpp | 91 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 Travelingsakesman.cpp diff --git a/Travelingsakesman.cpp b/Travelingsakesman.cpp new file mode 100644 index 0000000..f9825ed --- /dev/null +++ b/Travelingsakesman.cpp @@ -0,0 +1,91 @@ + +// CPP program to implement traveling salesman +// problem using naive approach. +#include + +using namespace std; +#define V 4 + + +// implementation of traveling Salesman Problem + +int travllingSalesmanProblem(int graph[][V], int s) +{ + + // store all vertex apart from source vertex + + vector vertex; + + for (int i = 0; i < V; i++) + + if (i != s) + + vertex.push_back(i); + + + + // store minimum weight Hamiltonian Cycle. + + int min_path = INT_MAX; + + do { + + + + // store current Path weight(cost) + + int current_pathweight = 0; + + + + // compute current path weight + + int k = s; + + for (int i = 0; i < vertex.size(); i++) { + + current_pathweight += graph[k][vertex[i]]; + + k = vertex[i]; + + } + + current_pathweight += graph[k][s]; + + + + // update minimum + + min_path = min(min_path, current_pathweight); + + + + } while (next_permutation(vertex.begin(), vertex.end())); + + + + return min_path; +} + + +// driver program to test above function + +int main() +{ + + // matrix representation of graph + + int graph[][V] = { { 0, 10, 15, 20 }, + + { 10, 0, 35, 25 }, + + { 15, 35, 0, 30 }, + + { 20, 25, 30, 0 } }; + + int s = 0; + + cout << travllingSalesmanProblem(graph, s) << endl; + + return 0; +} \ No newline at end of file