动态规划---->货郎担问题
2013-05-14 10:21
218 查看
货郎担问题
其一般提法为:有n个城市,用1,2,…,n表示,城i,j之间的距离为dij,有一个货郎从城1出发到其他城市一次且仅一次,最后回到城市1,怎样选择行走路线使总路程最短?
旅行商问题的提法为:假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路经的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。路径的选择目标是要求得的路径路程为所有路径之中的最小值。
假设周游路线是开始于结点1并终止于结点1 的一条简单路径。每一条周游路线都由一条边〈1,k〉和一条由结点k 到结点1 的路径所组成, 其中k∈V-{1} ; 而这条由结点k 到结点1 的路径通过V-{1 ,k}的每个结点各一次。容易看出, 如果这条周游路线是最优的, 那么这条由k 到1 的路径必定是通过V-{1, k}中所有结点的由k到1的最短路径, 因此最优性原理成立。设g(i,S)是由结点i开始,
通过S中的所有结点, 在结点1终止的一条最短路径长度。g(1,V-{1}) 是一条最优的周游路线长度。于是, 可以得出
g(1,V-{1}) = min{c1k + g( k,V-{1,k})} 2≤k≤ n
一般化可得g(i,S) = min{ cij+ g(j,S-{j}) }
![](https://img-blog.csdn.net/20130804153920015?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbmNlcHV6aHVhbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
问题描述
货郎担问题也叫旅行商问题,即TSP问题(Traveling Salesman Problem),是数学领域中著名问题之一。其一般提法为:有n个城市,用1,2,…,n表示,城i,j之间的距离为dij,有一个货郎从城1出发到其他城市一次且仅一次,最后回到城市1,怎样选择行走路线使总路程最短?
旅行商问题的提法为:假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路经的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。路径的选择目标是要求得的路径路程为所有路径之中的最小值。
假设周游路线是开始于结点1并终止于结点1 的一条简单路径。每一条周游路线都由一条边〈1,k〉和一条由结点k 到结点1 的路径所组成, 其中k∈V-{1} ; 而这条由结点k 到结点1 的路径通过V-{1 ,k}的每个结点各一次。容易看出, 如果这条周游路线是最优的, 那么这条由k 到1 的路径必定是通过V-{1, k}中所有结点的由k到1的最短路径, 因此最优性原理成立。设g(i,S)是由结点i开始,
通过S中的所有结点, 在结点1终止的一条最短路径长度。g(1,V-{1}) 是一条最优的周游路线长度。于是, 可以得出
g(1,V-{1}) = min{c1k + g( k,V-{1,k})} 2≤k≤ n
一般化可得g(i,S) = min{ cij+ g(j,S-{j}) }
2、例子
g(2 ,空) = c21 = 5 g(3,空) = c31 = 6 g(4,空) = c41 = 8 由式g( i, S) = min{cij + g( j, S - {j}) } 得 g(2,{3} ) = c23 + g(3,空) = 15 g(2,{4} ) = 18 g(3,{2} ) = 18 g(3,{4} ) = 20 g(4,{2} ) = 13 g(4,{3} ) = 15 接着,计算在| S| = 2 且i≠1,1| S,i| S 情况下的g( i,S) : g(2,{3,4} ) = min{c23 + g( 3,{4}), c24 + g(4,{3} )} = 25 g(3,{2,4} ) = min{c32 + g( 2,{4}), c34 + g(4,{2} )} = 25 g(4,{2,3} ) = min{c42 + g( 2,{3}), c43 + g(3,{2} )} = 23 最后,得 g(1,{2,3,4} ) = min{c12 + g( 2,{3,4}), c13 + g(3,{2,4} ), c14 + g( 4,{2,3}) }= min{35,40,43} = 35 |
相关文章推荐
- 动态规划---->货郎担问题
- 一本通上的某动态规划题:股票买卖(openjudge->NOI->2.6->8464)
- poj 1973 分配任务 进阶动态规划 <难题>
- 动态规划---->0/1背包问题
- 动态规划8:最优编辑str1-->str2
- 动态规划之 <筷子>
- 动态规划---->可靠性设计
- 总结: 0-1背包问题 --> 动态规划d…
- 动态规划---->最优二分检索树
- 动态规划入门<三>
- 动态规划之 <筷子>
- <每日一题>动态规划入门:求最小硬币个数
- 动态规划---->最优二分检索树
- 一本通上的某动态规划题:糖果(openjudge->NOI->2.6->2989)
- 动态规划---->多段图
- 动态规划货郎担问题
- <蓝桥杯>动态规划解最长公共子序列
- 动态规划---->每对定点之间的最短路径 Floyd(弗洛伊德)算法
- 动态规划---->每对定点之间的最短路径 Floyd(弗洛伊德)算法
- 算法之动态规划-->>数塔问题