回溯法 旅行售貨員問題

2021-10-10 10:34:54 字數 756 閱讀 8272

全排列回溯

#include using namespace std;

const int max_ = 0x3f3f3f; //定義乙個最大值

const int noedge = -1; //兩個點之間沒有邊

int citynum; //城市數

int edgenum; //邊數

int currentcost; //記錄當前的路程

int bestcost; //記錄最小的路程(最優)

int graph[100][100]; //圖的邊距記錄

int x[100]; //記錄行走順序

int bestx[100]; //記錄最優行走順序

void input()

}//初始化

void initilize()

}void swap(int &a, int &b)

void backtrack(int i) //這裡的i代表第i步去的城市而不是代號為i的城市

}else}}

}void output()

int main()

旅行售貨員問題 回溯法

某售貨員要到若干城市去推銷商品,已知各城市之間的路程,他要選定一條從駐地出發,經過每個城市一遍,最後回到住地的路線,使總的路程最短。結果為 1 3 2 4 1 回溯法,序列樹,假設起點為 1。演算法開始時 x 1,2,3,n x 1 n 有兩重含義 x 1 i 代表前 i 步按順序走過的城市,x i...

回溯法之旅行售貨員問題

問題描述 某售貨員要到若干城市去推銷商品,已知各城市之間的路程,他要選定一條從駐地出發,經過每個城市一遍,最後回到住地的路線,使總的路程最短。演算法描述 回溯法,序列樹,假設起點為 1。演算法開始時 x 1,2,3,n x 1 n 有兩重含義 x 1 i 代表前 i 步按順序走過的城市,x i 1 ...

分支限界法 旅行售貨員問題

一 問題描述 某售貨員要到若干城市去推銷商品,已知各城市之間的路程 或旅費 他要選定一條從駐地出發,經過每個城市一次,最後回到駐地的路線,使總的路程 或總旅費 最小。如下圖 1,2,3,4 四個城市及其路線費用圖,任意兩個城市之間不一定都有路可達。二 問題理解 1.分支限界法利用的是廣度優先搜尋和最...