日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

算法设计与分析——回溯法——旅行售货员问题

發(fā)布時間:2023/12/4 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 算法设计与分析——回溯法——旅行售货员问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
#include<iostream> #include<bits/stdc++.h> using namespace std; const int noEdge=65535; class Traveling {public:void BackTrack(int i);int n; //圖G的頂點數(shù) int *x; //當(dāng)前的解 int *bestx; // 當(dāng)前的最優(yōu)解 int **a; // 圖G的臨界矩陣 int cc; // 當(dāng)前費用 int bestc; //當(dāng)前最優(yōu)花費的值 // int noEdge 無邊標記 };void Traveling::BackTrack(int i){if(i == n){if(a[x[n-1]][x[n]] !=noEdge && a[x[n]][1] !=noEdge &&(cc+a[x[n-1]][x[n]]+a[x[n]][1]<bestc || bestc ==noEdge)){for(int j=1;j<=n;j++){bestx[j]=x[j];}bestc=cc+a[x[n-1]][x[n]]+a[x[n]][1];}}else{for(int j=i;j<=n;j++){if(a[x[i-1]][x[j]] != noEdge && (cc+a[x[i-1]][x[j]]<bestc||bestc == noEdge)){swap(x[i],x[j]);cc+=a[x[i-1]][x[i]];BackTrack(i+1);cc-=a[x[i-1]][x[i]];swap(x[i],x[j]);}}}} int TSP(int **a,int v[],int n){Traveling Y;Y.x = new int [n+1];for(int i=1;i<=n;i++){Y.x[i]=i;}Y.a= a;Y.n= n;Y.bestc = noEdge;Y.bestx = v;Y.cc = 0;Y.BackTrack(2);cout<<"旅行售貨員問題的最優(yōu)路徑:";for(int i=1;i<=n;i++){cout<<Y.bestx[i]<<" ";}cout<<1<<endl;delete []Y.x;return Y.bestc; } int main() {int n;cout<<"輸入城市的個數(shù)";cin>>n;int **vector = new int *[n+1];for(int i=1;i<=n;i++){vector[i] = new int [n+1];}for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){vector[i][j]= noEdge;}}int x;cout<<"輸入城市間存在的通路的個數(shù)";cin>>x;cout<<"輸入數(shù)據(jù)的形式為:(1 2 3)"<<endl;int index_i,index_j,value;for(int i=0;i<x;i++){cin>>index_i>>index_j>>value;vector[index_i][index_j]=value;vector[index_j][index_i]=value;}cout<<"輸出臨界矩陣"<<endl; for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){cout<<setw(5)<<vector[i][j]<<" ";}cout<<endl;}int *v = new int [n+1];cout<<"旅行售貨員問題的最優(yōu)值為:"<<TSP(vector,v,n)<<endl;}

總結(jié)

以上是生活随笔為你收集整理的算法设计与分析——回溯法——旅行售货员问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。