旅行商问题
2011-10-24 22:37
141 查看
旅行商问题(Traveling Saleman Problem,TSP)又译为旅行推销员问题、货郎担问题,简称为TSP问题,是最基本的路线问题,该问题是在寻求单一旅行者由起点出发,通过所有给定的需求点之后,最后再回到原点的最小路径成本。最早的旅行商问题的数学规划是由Dantzig(1959)等人提出。
问题描述
由n个城市组成的网络,编号为V1,V2,....,Vn, Dij 表示Vi到Vj的距离(或时间,费用等),一般Dij ≠ Dji,一个推销员从V1开始,访问每个城市一次且仅一次,然后返回V1。这个推销员如何选择线路,才能使行程最短?
问题抽象
一个有向图G(V,E),从某个顶点出发,经过每个结点一次且仅一次,返回出发结点。对于任意Vi,Vj ∈ V , 存在Eij和Eji,0 < Eij < ∞ ,0 < Eji < ∞,如果没有此条件,问题有可能无解,也就是说,此图是一个有向完全图。
问题求解
(1)枚举法
相当于对V1,V2,V3,....,Vn做圆周排列,圆周排列为n!/n = (n-1)!,也即有(n-1)!条路径,需要(n-1)(n-1)!次加法,(n-1)!-1次比较。
(2)动态规划
令f(Vi ; V)表示结点从结点Vi出发,遍历V中的点一次且仅一次,然后返回V1的最短距离,其中V是某些结点构成的集合,且V1,Vi
V。
多段判决公式: f(Vi ; V ) = min { Dij + f(Vj ; V\{Vj} } (Vj ∈ V)
因此问题就成了求 f(V1 ; { V2,V3,V4,...,Vn} } 的最小值
问题描述
由n个城市组成的网络,编号为V1,V2,....,Vn, Dij 表示Vi到Vj的距离(或时间,费用等),一般Dij ≠ Dji,一个推销员从V1开始,访问每个城市一次且仅一次,然后返回V1。这个推销员如何选择线路,才能使行程最短?
问题抽象
一个有向图G(V,E),从某个顶点出发,经过每个结点一次且仅一次,返回出发结点。对于任意Vi,Vj ∈ V , 存在Eij和Eji,0 < Eij < ∞ ,0 < Eji < ∞,如果没有此条件,问题有可能无解,也就是说,此图是一个有向完全图。
问题求解
(1)枚举法
相当于对V1,V2,V3,....,Vn做圆周排列,圆周排列为n!/n = (n-1)!,也即有(n-1)!条路径,需要(n-1)(n-1)!次加法,(n-1)!-1次比较。
(2)动态规划
令f(Vi ; V)表示结点从结点Vi出发,遍历V中的点一次且仅一次,然后返回V1的最短距离,其中V是某些结点构成的集合,且V1,Vi
V。
多段判决公式: f(Vi ; V ) = min { Dij + f(Vj ; V\{Vj} } (Vj ∈ V)
因此问题就成了求 f(V1 ; { V2,V3,V4,...,Vn} } 的最小值
相关文章推荐
- 贪心解决:TSP问题(Travelling Salesman Problem)即旅行商问题
- 双调欧几里得旅行商问题(TSPhdu2224)
- hdu2224The shortest path(双调旅行商问题)
- hdu 2224 双调欧几里得旅行商问题tsp
- 算法导论第十五章15-3双调欧几里得旅行商问题
- 分支限界求解货郎担/旅行商问题
- hdu 5418 Victor and World 状态压缩dp,旅行商问题
- POJ 2677 (算法导论15-3)双调欧几里得旅行商问题 dp
- 【回溯】旅行商问题
- 遗传算法的简单应用-巡回旅行商(TSP)问题的求解
- hdu2224The shortest path 经典问题之 旅行商问题
- hdu3001 Travelling 旅行商问题 状态压缩DP
- 网络分析优化旅行商问题TSP算法资源
- [置顶] 蚁群算法求解旅行商问题 python
- HDU 4281 Judges' response 状压dp+多旅行商问题
- 小蜜蜂轻易破解数学大难题“旅行商问题”
- 1347 - Tour (双调欧几里得旅行商问题)
- uva 1347(双调欧几里得旅行商问题)
- 【算法设计与分析基础】8、穷举 旅行商问题
- hdu 3001 Travelling 旅行商问题