- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
动态规划旅行售货员问题
xxxxxxxx大学
解决旅行售货商问题xxxxxxxxxxxxx
院 系: xxxxxxxxxxxxxx
学生姓名: xxxxxx
学 号: xxxxxxxxx
指导教师: xxxxxx
2015年月5日摘要:
旅行商问题(TSP问题)时是指旅行家要旅行n个城市然后回到出发城市,要求各个城市经历且仅经历一次,并要求所走的路程最短。该问题又称为货郎担问题、邮递员问题、售货员问题,是图问题中最广为人知的问题。 动态规划 ( dynamic programming )算法 是解决 多阶段决策过程最优化问题 的一种常用方法,难度比较大,技巧性也很强。利用动态规划算法,可以优雅而高效地解决很多贪婪算法或分治算法不能解决的问题。
本次课程设计运用动态规划解决旅行售货员问题,动态规划的基本思想是:把求解的问题分成许多若干阶段或许多子问题,然后按顺序求解各子问题。前一子问题的解,为后一子问题的求解提供了有用的信息,在求解任一子问题时列出各种可能的局部解,通过决策保留那些有可能达到最优的局部解,丢弃其他局部解。依次解决各子问题,最后一个子问题就是初始问题的解。通过图的关系矩阵来表示个城市之间的关系,二维数组表示顶点之间的距离关系,对子问题进行求解比较,最后得出所求结果。
关键字:旅行商问题 动态规划法 图 矩阵
目录
第一章 绪论
1.1算法介绍
1.2算法应用
第二章 动态规划理论知识
2.1动态规划的基本思想
2.2动态规划设计步骤
第三章 旅行售货员问题
3.1问题描述:旅行售货员问题
3.2算法设计内容
3.3算法分析
3.4流程图
第四章 物流配送网络
第五章 结论
第一章 绪论
1.1算法介绍1.2算法应用第二章i出发,令d(i,V’)表示从顶点i出发经过V’中各个顶点一次且仅一次,最后回到出发点i的最短路径的长度,开始时,V’=V-{i},于是,旅行商问题的动态规划函数为:
d(i,V’) = min{cik + d(k,V’-{k})} (k∈V’) 1)
d(k,{}) = cki (k ≠ i) 2)
简单来说,就是用递归表达:从出发点0到1号点,假设1是第一个,则剩下的路程就是从1经过剩下的点最后回到0点的最短路径. 所以当V’为空的时候, d(k,{}) = cki (k ≠ i), 找的是最后一个点到0点的距离.递归求解1之后,再继续求V’之中剩下的点,最后找出min.
如果按照这个思想直接做,对于每一个i都要递归剩下的V中所有的点,所以这样的时间复杂度就近似于N!,其中有很多重复的工作.
可以从小的集合到大的集合算,并存入一个二维数组,这样当加入一个节点时,就可以用到之前的结果,如四个点的情况:
邻接矩阵:
node 0 1 2 3 0 ? 5 3 2 1 5 ? 7 9 2 3 7 ? 12 3 2 9 12 ? 动态填表:
表中元素代表第i个节点经过V集合中的点最后到0点的最短值.如果有多个值,取其中最小的一个.
i\Vj 0 1 2 3 1,2(取min) 1,3(取min) 2,3(取min) 1,2,3(取min) 0 ? ? ? ? ? ? ? c[0][i]+d[i][v’]=21 1 5 ? 10 11 ? ? {c[1][2]+
d[2][{3}]=21,
c[1][3]+
d[3][{2}]=24} ? 2 3 12 ? 14 ? {c[2][1]+
d[1][{3}]=18,
c[2][3]+
d[3][{1}]=26} ? ? 3 2 14 15 ? {c[3][1]+
d[1][{2}]=19,
c[3][2]+
d[2][{1}]=24} ? ? ? 这样一共循环(2^(N-1)-1)*(N-1)次,就把时间复杂度缩小到O(N*2N )的级别.
核心伪代码如下:
{
for (i =1;in;i++)
d[i][0]=c[i][0];
for( j=1;j2^(N-1)-1;j++)
for(i=1 ; in ;i++)
{
if(子集Vj中不包含i){
对Vj中的每个元素k,计算d[i][Vj] = min{c[i][k] + d[k][{Vj-k}] | 每一个k∈Vj};
}
}
对V[2^(n-1)-1]中的每个元素k,计算:
d[0][2^(n-1)-1] = min{c[0][k] + d[k][2^(n-1
您可能关注的文档
- 初二语文综合性学习.docx
- 初化学复习题`].doc
- 初升高衔接课程(记叙文写作).doc
- 初升高衔接课程9记叙文写作.doc
- 初升高衔接课程记叙文写作.doc
- 初四数学第一学期期末试题.doc
- 初探鼓励教学法对初三学生英语学习成效的影响.doc
- 初涉职场面试技巧全攻略.doc
- 初等几何研究第一章习题的答案.doc
- 初等教育英语教育方向专业剖析().doc
- 中国国家标准 GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- 《GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计》.pdf
- 中国国家标准 GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- 《GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置》.pdf
- 中国国家标准 GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- GB/T 17889.4-2024梯子 第4部分:铰链梯.pdf
- 《GB/T 17889.4-2024梯子 第4部分:铰链梯》.pdf
文档评论(0)