旅行商问题(TSP)
旅行商问题是一个经典的组合优化问题。
经典的TSP问题可以描述为:一个商品推销员要去若干个城市进行商品推销,该推销员从一个城市出发,需要经过所有城市,回到出发地。应如何选择行进路线,以使总的行程最短。
从图论的角度来看,该问题实质是在一个带权完全无向图中,找一个权值最小的Hamilton回路。
由于该问题的可行解是所有顶点的全排列,随着顶点数的增加,会产生组合爆炸。
在这里我们以贪心算法来解决这个问题,当数据规模越大时,以近似解来替代最优解。
#include <iostream>
#include <assert.h>
using namespace std;
#define MAX 1000000
#define n 4
int D[n][n]; //记录两城市间距离
int S[n]; //记录第i次去的城市