动态规划解TSP问题(状态压缩dp)
TSP问题简述
给定图上若干个点,以及他们之间的距离,求一条距离和最小的回路,使得该回路正好经过每个点一次。TSP也叫旅行商问题、货郎担问题。。。
状态转移方程
用 V’ 表示一个点的集合,假设从顶点 s 出发, d ( i , V’ ) 表示当前到达顶点 i,经过 V’ 集合中所有顶点一次的最小花费。
1.当 V’ 为仅包含起点的集合,也就是:d ( s , { s } ) = 0 ;
2.其他情况,则对子问题求最优解。需在 V’ 这个城市集合中,尝试每一个城市结点,并求出最优解。
d(i,V′+i)=mink∈V′{
d(k,V′)+C