旅行商问题(TSP)(精选PPT)课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《旅行商问题(TSP)(精选PPT)课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 旅行 问题 TSP 精选 PPT 课件
- 资源描述:
-
1、主讲:重庆大学 龚劬1主要内容基本概念算法简介TSP模型的应用最佳灾情巡视路线的模型的建立与求解引 例2: 1. 98 1. 98年全国大学生数学建模竞赛年全国大学生数学建模竞赛B B题题“最佳灾最佳灾 今年今年(1998(1998年年) )夏天某县遭受水灾夏天某县遭受水灾. . 为考察灾情、为考察灾情、组织自救,县领导决定,带领有关部门负责人到组织自救,县领导决定,带领有关部门负责人到全县各乡(镇)、村巡视全县各乡(镇)、村巡视. . 巡视路线指从县政府巡视路线指从县政府所在地出发,走遍各乡(镇)、村,又回到县政所在地出发,走遍各乡(镇)、村,又回到县政府所在地的路线府所在地的路线. .情巡
2、视路线情巡视路线”中的前两个问题:中的前两个问题:3: 1 1)若分三组(路)巡视,试设计总路程最)若分三组(路)巡视,试设计总路程最短且各组尽可能均衡的巡视路线短且各组尽可能均衡的巡视路线. . 2 2)假定巡视人员在各乡(镇)停留时间)假定巡视人员在各乡(镇)停留时间T T=2=2小时,在各村停留时间小时,在各村停留时间t t=1=1小时,汽车行驶速度小时,汽车行驶速度V V=35=35公里公里/ /小时小时. . 要在要在2424小时内完成巡视,至少应分小时内完成巡视,至少应分几组;给出这种分组下最佳的巡视路线几组;给出这种分组下最佳的巡视路线. .4公路边的数字为该路段的公里数公路边的
3、数字为该路段的公里数. .52. 2. 问题分析问题分析本题给出了某县的公路网络图,要求在不同的条件下,本题给出了某县的公路网络图,要求在不同的条件下,灾情巡视的最佳分组方案和路线灾情巡视的最佳分组方案和路线. . 将每个乡(镇)或村看作一个图的顶点,各乡镇、村之将每个乡(镇)或村看作一个图的顶点,各乡镇、村之间的公路看作此图对应顶点间的边,各条公路的长度(或间的公路看作此图对应顶点间的边,各条公路的长度(或行驶时间)看作对应边上的权,所给公路网就转化为加权行驶时间)看作对应边上的权,所给公路网就转化为加权图,问题就转化为图论中一类称之为旅行推销员问题,图,问题就转化为图论中一类称之为旅行推销
4、员问题,即在给定的加权网络图中寻找从给定点即在给定的加权网络图中寻找从给定点O O出发,行遍所有出发,行遍所有顶点至少一次再回到点顶点至少一次再回到点O O,使得总权(路程或时间)最小,使得总权(路程或时间)最小. .6旅行商问题旅行商问题(TSP(TSP,traveling salesman problem)traveling salesman problem) 一个商人欲到一个商人欲到n n个城市推销商品,每两个城市个城市推销商品,每两个城市i i和和j j之间的距离为之间的距离为d dijij,如何选择一条道路使得,如何选择一条道路使得商人每个城市正好走一遍后回到起点且所走路商人每个城市
5、正好走一遍后回到起点且所走路线最短。线最短。:7图论模型图论模型 构造一个图构造一个图G=G=(V V,E E),顶点表示城市,边),顶点表示城市,边表示连接两城市的路,边上的权表示连接两城市的路,边上的权W W(e e)表示距)表示距离(或时间或费用)。于是旅行推销员问题就离(或时间或费用)。于是旅行推销员问题就成为在加权图中寻找一条经过每个顶点正好一成为在加权图中寻找一条经过每个顶点正好一次的最短圈的问题,即求最佳次的最短圈的问题,即求最佳Hamilton Hamilton 圈的圈的问题。问题。 :8基本概念基本概念1) 1) 哈米尔顿路径哈米尔顿路径(H(H路径路径) ): : 经过图经
6、过图G G每个顶点正好一次的路径每个顶点正好一次的路径; ;2) 2) 哈米尔顿圈哈米尔顿圈(H(H圈圈) );经过;经过G G的每个顶点正好一次的圈的每个顶点正好一次的圈; ;3) 3) 哈米尔顿图哈米尔顿图(H(H图图) ): : 含含H H圈的图。圈的图。4) 4) 最佳最佳H H圈圈: : 在加权图在加权图G=G=(V V,E E)中,权最小的)中,权最小的H H圈;圈;5) 5) 最佳推销员回路最佳推销员回路: : 经过每个经过每个 顶点一次的权最小闭通路顶点一次的权最小闭通路; ;6) 6) TSPTSP问题问题: : 在完备加权图中求最佳在完备加权图中求最佳H H圈的问题。圈的问
7、题。:9TSP问题举例v工件排序 设有n个工件等待在一台机床上加工,加工完i,接着加工j,这中间机器需要花费一定的准备时间tij,问如何安排加工顺序使总调整时间最短? 此问题可用TSP的方法求解,n个工件对应n个顶点,tij表示(i,j) 上的权,因此需求图中权最小的H路径。v计算机布线 一个计算机接口含几个组件。每个组件上都置有若干管脚。这些管脚需用导线连接。考虑到以后改变方便和管脚的细小。要求每个管脚最多连两条线。为避免信号干扰以及布线的简洁,要求导线总长度尽可能小。 10TSP问题举例v计算机布线(续) 问题容易转化为TSP问题,每个管脚对应于图的顶点,d(x,y)代表两管脚x与y的距离
8、,原问题即为在图中寻求最小权H路径。v电路板钻孔 MetelcoSA是希腊的一个印刷电路板(PCCB)制造商。在板子上对应管脚的地方必须钻孔,以便以后电子元件焊在这板上。典型的电路板可能有500个管脚位置,大多数钻孔都由程序化的钻孔机完成,求最佳钻孔顺序。此问题其实就是求500个顶点的完备加权图的最佳H圈的问题,即TSP问题。用求解出的H圈来指导生产,使Metclo的钻孔时间缩短了30%,提高了生产效率。 11算法简介算法简介 TSP TSP问题是问题是NP-hardNP-hard问题,即不存在多项式时间算法问题,即不存在多项式时间算法. .也就是说也就是说, ,对于大型网络对于大型网络( (
9、赋权图赋权图),),目前还没有一个精确求解目前还没有一个精确求解TSPTSP问题的有效算法,因此只能找能求出相当好(不一定最问题的有效算法,因此只能找能求出相当好(不一定最优)的解的算法优)的解的算法. .12算法简介算法简介v近似算法或近似算法或启发式算法启发式算法 1.1. 一般是以构造型算法得到一个初始解,然后再用改一般是以构造型算法得到一个初始解,然后再用改进型算法逐步改进。进型算法逐步改进。2.2.常见的构造型算法有两种:常见的构造型算法有两种:ChristofidesChristofides最小权匹最小权匹配算法配算法 ,对角线完全算法。,对角线完全算法。3.3.常见的改进型算法有
10、两种:二次逐次修正法,常见的改进型算法有两种:二次逐次修正法,FeiringFeiring矩阵逐次改进法。矩阵逐次改进法。v 分枝定界法分枝定界法13算法简介算法简介v 二次逐次修正法二次逐次修正法(1)任取初始H圈 C0=v1,v2,vi,vj,vm,v1(2)对所有的i,j,1i+1jm,若 w(vi,vj)+w(vi+1,vj+1) w(vi,vi+1)+w(vj,vj+1)则在C0中删去边(vi,vi+1)和(vj,vj+1)而加入边(vi,vj)和(vi+1,vj+1),形成新的H圈C,即 C=v1,v2,vi,vj,vj-1,vi+1,vj+1,vi,v1(3)C0C,重复步骤(2
11、),直到条件不满足为止,最后得到的C即为所求。 14例对下图的K6,用二边逐次修正法求较优H圈.较优较优H圈圈:其权为其权为W(C3)=19213265413vvvvvvvC 15 分析分析: 这个解的近似程度可用最优这个解的近似程度可用最优H圈的权圈的权的下界与的下界与其比较而得出其比较而得出.即利用最小生成树可得最即利用最小生成树可得最优优H圈的一个下界圈的一个下界. 设设C是是G的一个最优的一个最优H圈,则对圈,则对G的任一顶点的任一顶点v, C-v是是G-v的生成树的生成树.如果如果T是是G-v的的最小生成树最小生成树,且且e1是是e2与与v关联关联的边中权最小的两条的边中权最小的两条
12、边边,则则w(T)+w(e1)+w(e2)将是将是w(C)的一个下界的一个下界.取取v=v3,得得G-v3的一的一最小生成树最小生成树(实线实线),其权其权w(T)=122,与与v3关联关联的权最的权最小的两条边为小的两条边为v1v3和和v2v3,w(T)+w(v1v3)+w(v2v3)=178. 故最优故最优H圈的权圈的权故故w(C)应满足应满足178 w(C) 192.16对角线完全算法 结论: 若能在nn距离矩阵中找出n个不同行也不同列的元素,使它们的和为最小值。若这n个元素构成一条哈米尔顿圈时,此圈便是最佳H圈。 矩阵的简化 :将矩阵的每一行的各元素减去本行的最小元素称为对行简化,从第
13、i行减去的数称为第i行的约数,记为R(i)。将矩阵的每一列的各元素减去本列的最小元素称为对列简化,从第j列减去的数称为第j列的约数,记为R(j)。各行各列的约数之和称为矩阵的约数,记为R。矩阵经行的简化和列的简化后所得矩阵称为该矩阵的简化矩阵。 17对角线完全算法 例 求下列距离矩阵D的简化矩阵及各行,各列的约数。其中107822624509161519253017527314025DD中各行的约数R(1)=25,R(2)=5,R(3)=1,R(4)=6,R(5)=718对角线完全算法 D经行简化得求出D各列的约数R(1)=0,R(2)=0,R(3)=0,R(4)=3,R(5)=0015620
14、12252018145034418015103DU19对角线完全算法 D经列简化得由于简化矩阵同一行各元素减同一数,同列各元素也是减同一数,因而每个H圈的权都减少同一数即R.015312012222018142034418015100D20对角线完全算法 定理 设D是图G的距离矩阵D的简化矩阵,则D对应的图G的最佳(有向)H圈也是原图G的最佳(有向)H圈。G只是边权与G不同,去掉权之后完全一样。因此当简化矩阵中的零元素构成H圈时,该H圈也是原问题的最佳H圈。 罚数: 在图G的距离矩阵的简化矩阵D中,第i行的最小元素与次小元素之差称为第i行的罚数,记为P(i)。第j列的最小元素与次小元素之差称为
15、第j列的罚数,记为P(j),某行(或列)的罚数即是若H圈不选择该行(或列)的最小元素会使其权增加的最小值。21对角线完全算法 算法步骤输入:图的距离矩阵D(1)求D的简化矩阵D以及各行各列的约数R(i), R(j),罚数P(i),P(j)(2)计算在简化矩阵中零元素所在行与列的罚数 和,即P(i,j)=P(i)+P(j)。将P(i,j)由大到小 排列后,依次选取可作为可行部分路的边 (i,j)。这些边对应的零元素记为0*。用这些 选择出来的边构成可行部分路。定义 一个H圈的一些不相交路径称为可行部分路。22对角线完全算法 (3)构造新的距离矩阵称为重构距离矩阵:按上述可行部分路的顶点序重新排列
16、简化距离D的行,列也按使上述所有“0*”位于对角线上的次序重新排列。(4)产生D的子阵:设重构矩阵对角线上m个非零元素对应的边为(i1,j1),(i2,j2),(im,jm),则从D中取出相应的m行,m列构成一个mm子阵D1。为保证选出的边与原来的可行部分路不形成子循环,有m条边不能选择,将其对应的元素置为。并将列作适当调整使对角线元素为。(5)对D1重复(1)(4)步,直到重构矩阵对角线上的元素全为0为止,这时便可得到一个H圈。23对角线完全算法 例 用对角线完全法求加权图K10的较佳H圈 320590848477335357438462570320270653198901502904456
17、44590270580197281304388586806848653580464573521410462600477198197464143130191388608335902815731436020362568357150304521130601403085204382903884101912001401984184624455864623883623081982205706448066006085684204182201098765432110987654321D24对角线完全算法 1 12 23 34 45 56 67 78 89 91010RiRiPiPi1 10 019819830
18、03003483483883881161165195194244241201202202201161162 20 00 01101101641641901900 032132124724734341981980 03 325625658580 0606051516 618118115015068681401406 64 443843824824880800 0707019719717717790906767606067675 54864863023021401400 0838324924915415430304545606030306 645645625825861610 0131370700
19、 068681171171301300 07 716816852520 0111111163163545410310324324320820841041052528 858758738938919119110710784840 0119119737316316319719773739 953253235535520020060600 01081082992991131130 090900 01010228228142142118118373715151571572642642032030 03203201515RjRj22220 00 00 00 00 026426467670 0230230
20、PjPj16816852520 00 00 051516 61031033030343425对角线完全算法 2 求出以上第一级简化阵中零元素对应的罚数,如P(1,2)=P(1,2)=P(1)+P(2)=116+52=168,并将这些罚数按由大到小的次序排列如下:P(1,2)=168, P(2,1)=168, P(8,6)=124P(6,8)=103, P(4,5)=67, P(7,3)=52P(10,9)=45, P(9,10)=34, P(5,4)=30P(2,7)=6, P(3,4)=6, P(2,3)=0P(6,4)=0, P(9,5)=026对角线完全算法 现依次从上述各边选择能形成可
21、行部分路的边,现依次从上述各边选择能形成可行部分路的边, 先选第一边先选第一边(1,2), 之后(之后(2,1),(),(2,1)不行,)不行,因(因(1,2),(),(2,1)形成子循环;)形成子循环; 接着接着(8,6),但(但(6,8)不行,()不行,(6,8)会与()会与(8,6)构)构成子循环;成子循环; 再下是再下是(4,5),(7,3),(10,9),但,但(9,10)不能入选;不能入选;(5,4)也不能也不能入选,因会和前面选中的入选,因会和前面选中的(4,5)构成子循环;构成子循环; 接着是接着是(2,7),(3,4),但但(2,3)不能入选,否则与不能入选,否则与(2,7)
22、会使会使2的的出次大于出次大于1。同理(。同理(6,4),(),(9,5)也不能入选。)也不能入选。 综上得到可形成可行部分路的边为:综上得到可形成可行部分路的边为:(1,2), (8,6), (4,5), (7,3),(10,9),(2,7)和和(3,4)。它们对应的零元素为。它们对应的零元素为0*。 可行部分路:可行部分路:1-2-7-3-4-5,8-6和和10-9,三条不相交路径。,三条不相交路径。 27对角线完全算法 2734586109110*20*70*30*40*528180647710096443. 以1,2,7,3,4,5,8,6,10,9的顺序重新排列D的行,为使所有0*位
展开阅读全文