3第三章最短路问题课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《3第三章最短路问题课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三 短路 问题 课件
- 资源描述:
-
1、第三章第三章 最短路问题最短路问题 让我们先把最短路问题的提法明确一下让我们先把最短路问题的提法明确一下3.1 什么是最短路问题什么是最短路问题 1.求有向图上的最短路问题:设求有向图上的最短路问题:设G=(V,A)是一是一个有向图,它的每一条弧个有向图,它的每一条弧ai都有一个非负的长度都有一个非负的长度l(ai).在在G中指定了两个顶点中指定了两个顶点vs与与vt,要求把从要求把从vs到到vt并且长度最小的有向路找出来并且长度最小的有向路找出来 2.求无向图上的最短求无向图上的最短(无向无向)路问题:设路问题:设G=(V,E)是一个无向图,它的每一条弧是一个无向图,它的每一条弧ei都有一个
2、都有一个非负的长度非负的长度l(ei).在在G中指定了两个顶点中指定了两个顶点vs与与vt,要要求把连接求把连接vs与与vt并且长度最小的并且长度最小的(无向无向)路找出来路找出来 例例2:某两人有一只某两人有一只8升的酒壶装满了酒,还有两升的酒壶装满了酒,还有两只空壶,分别为只空壶,分别为5升和升和3升升.现要将酒平分,求最少现要将酒平分,求最少的操作次数的操作次数.解解 设设x1,x2,x3分别表示分别表示8,5,3升酒壶中的酒量升酒壶中的酒量.则则1231238,8,5,3.xxxxxx容易算出容易算出(x1,x2,x3)的组合形式共的组合形式共24种种.(0,5,3);(1,5,2);
3、(1,4,3);(2,5,1);(2,4,2);(2,3,3);(3,5,0);(3,4,1);(3,3,2);(3,2,3);(4,4,0);(4,3,1);(4,2,2);(4,1,3);(5,3,0);(5,2,1);(5,1,2);(5,0,3);(6,2,0);(6,1,1);(6,0,2);(7,1,0);(7,0,1);(8,0,0);于是问题转化为在该图中求于是问题转化为在该图中求(8,0,0)到到(4,4,0)的一条最的一条最短路短路(求最短路的算法在有向图中仍适用求最短路的算法在有向图中仍适用).结果如下:结果如下:(8,0,0)(3,5,0)(3,2,3)(6,2,0)(
4、6,0,2)(1,5,2)(1,4,3)(4,4,0).每种组合用一个点表示,若点每种组合用一个点表示,若点u能通过倒酒的方式变能通过倒酒的方式变换为换为v,则则 u向向v 连有向边,并将各边赋权连有向边,并将各边赋权1,得一个有向,得一个有向赋权图赋权图.这一节介绍一种求有向图上最短有向路的方这一节介绍一种求有向图上最短有向路的方法,叫做法,叫做标号法。标号法。3.2 求最短有向路的标号法求最短有向路的标号法 所谓标号所谓标号,我们是指与图的每一个顶点对应的一个我们是指与图的每一个顶点对应的一个数数(或几个数或几个数)例如设例如设G=(V,A)的顶点集合是的顶点集合是V=v1,v2,vn,如
5、果我们能使,如果我们能使v1对应一个数对应一个数b(1),v2对应数对应数b(2),vn对应数对应数b(n),那么,这些数,那么,这些数b(i)就称为就称为vi的标的标号,当然,在不同的问题中,标号号,当然,在不同的问题中,标号b(i)一般代表不同的一般代表不同的意义意义.现在来讨论标号法好不好?要回答这个问题现在来讨论标号法好不好?要回答这个问题,首首先应该明确一下什么叫先应该明确一下什么叫“好好”,什么叫什么叫“不好不好”一一般说来,主要的好坏标准是计算起来快不快不快般说来,主要的好坏标准是计算起来快不快不快(还还有比的标准,例如容不容易拿上计算机计算;是否有比的标准,例如容不容易拿上计算
6、机计算;是否易于普及等等易于普及等等),或者说,用这个方法计算时,需要,或者说,用这个方法计算时,需要进行的运算次数多不多进行的运算次数多不多.当然,运算次数越少越好当然,运算次数越少越好.3.3 标号法好不好标号法好不好 大家也许会说,运算次数多少不完全决定于采大家也许会说,运算次数多少不完全决定于采用什么方法,还和要解决的问题有关同样用标号用什么方法,还和要解决的问题有关同样用标号法,解一个只有法,解一个只有10个顶点的问题可能只要进行几千个顶点的问题可能只要进行几千次运算,而解一个次运算,而解一个100个顶点的问题,就可能要进个顶点的问题,就可能要进行几百万次运算了,这又怎么比较呢?行几
7、百万次运算了,这又怎么比较呢?办法还是有的办法还是有的.那就是,设图那就是,设图G有有n个顶点个顶点(为了为了简单起见,我们就不研究边数简单起见,我们就不研究边数m的影响了的影响了),我们来我们来估计一下,把标号法用到图估计一下,把标号法用到图G上去需要进行几次运上去需要进行几次运算算.当然,这样估计出来的结果不会是一个确定的当然,这样估计出来的结果不会是一个确定的数数,而是象而是象n2,3n3+4n2,2n等等这样的与等等这样的与n有关的数有关的数,即即n的函数的函数.然后再以这种函数为标准来比较方法的好然后再以这种函数为标准来比较方法的好坏坏.比如说,有两种方法,第一种要进行比如说,有两种
8、方法,第一种要进行n3次加法次加法,而第二种要进行,而第二种要进行n5次加法,当然第一种就比第二次加法,当然第一种就比第二种好,因为在种好,因为在n较大时,较大时,n5比比n3要大多了要大多了.上面讲的是怎样比较两种方法谁好谁坏上面讲的是怎样比较两种方法谁好谁坏.现在总共只现在总共只讲了一个标号法,又怎么评论它的好坏呢?也有办法讲了一个标号法,又怎么评论它的好坏呢?也有办法的的.目前一般认为,如果一种方法所需要的运算次数能目前一般认为,如果一种方法所需要的运算次数能表示成表示成n的多项式,例如的多项式,例如n4,2n2+3n等等等等.这种方法就认这种方法就认为是好的,或者说是有效的为是好的,或
9、者说是有效的.而如果一种方法的计算次而如果一种方法的计算次数是某一个数的数是某一个数的n次幂,例如次幂,例如2n,10n,即是,即是n的指数函数的指数函数,这种方法就认为是不好的,或者说是无效的,这种方法就认为是不好的,或者说是无效的.请看如请看如下这张表:下这张表:n5102030501001000方法A(运算次数n3)6251000800027000 625000106109方法B(运算次数2n)3210241061091015103010300上表中对一种需要进行上表中对一种需要进行n3次运算的方法次运算的方法A与另一种需要进与另一种需要进行行2n次运算的方法次运算的方法B进行了比较进行
10、了比较(关于关于2n的近似值的近似值,我们是以我们是以210=1024103来估算的来估算的,例如例如250=(210)5(103)5=1015).从上表从上表可以看出,方法可以看出,方法B的运算次数的增长速度是惊人的的运算次数的增长速度是惊人的.也许有也许有的人会认为,现在反正有大型计算机,计算次数多一些无的人会认为,现在反正有大型计算机,计算次数多一些无所谓所谓.其实不然其实不然.例如我们有一个每秒能计算一百万次的计例如我们有一个每秒能计算一百万次的计算机,那么,在算机,那么,在1000秒内可以进行秒内可以进行10001000000=109次次(即十亿次即十亿次)运算运算,如果用方法如果用
展开阅读全文