图论论文
最短路径问题网络分析毕业论文(可编辑)

最短路径问题网络分析毕业论文摘要第一章绪论二十世纪中后期,随着计算机的出现和发展,图论的研究得到广泛重视,最短路径问题是图论中的一个典范问题,它已经被应用于众多领域.最短路径问题最直接的应用当数在地理信息领域,如:GIS 网络分析、城市规划、电子导航等.在交通咨询方面,寻找交通路网中两个城市间最短的行车路线就是最短路径问题的一个典型的例子.在网络通信领域,信息包传递的路径选择问题也与最短路径问题息息相关.举个例子,OPSF开放路由选择协议,每个OPSF路由器都维护一个描述自治系统拓扑结构的数据库,通过这个数据库构建最短路径树来计算路由表,从而跟踪自治系统范围内到每个目标的最短路径.在图象分割问题中,最短路径也有直接的应用:在语音识别中,一个主要的问题就是区别同音词,例如,to、two、too.为解决这个问题,我们需要建一个图,顶点代表可能的单词,边连接相邻的单词,边上的权代表相邻的可能行大小.这样图中的最短路径,就是对句子的最好解释.由于最短路径问题的广泛应用,很多学者都对此进行了深入的研究,也产生了一些经典的算法.近些年来,对最短路径研究的热度依然不减,并且时间复杂度降得越来越低.所以在本课题中我们将提出不仅是以前我们学习过的一些经典的算法,我们还将提出一些以前没有学习过的更有应用空间的算法.以及各算法之间的比较.最后还将把这些算法在现实中的应用最一些简单的介绍.第二章网络的最短路问题的基础知识2.1 图的基本概念(1)图定义:一个(无向)图G 是一个有序二元组(V,E),其中是顶点集,是边集,且是一个无序二元组,它表示该边连接顶点与.图1就是一个图说明:在保持图的点边关系不变的情况下,图形的位置、大小、形状都是无关紧要的.若,则称连接与;点和称为的顶点,称或与关联,与是邻接的顶点;如果两条边有一个公共顶点,则称这两条边是邻接的;(2)环定义:两个顶点重合为一点的边称为环如图图1中.图1(3)重边定义:如果有两条边的顶点是同一对顶点,则称这两条边为重边(如图1中与中有两条边相连).(4)孤立点定义:不与任何边关联的点称为孤立点(如图1中);(5)无环图定义:没有环的图称为无环图;(6)简单图:定义:既没有环也没有重边的图称为简单图.设G(V,E)是一个简单图,则显然有.(7)完全图定义:若上式中等号成立,则说明该图中每对顶点间恰有一条边相连,称此图为完全图.(8)补图定义:一个简单图的补图是与有相同顶点的简单图,且中两个点相邻当且仅当它们在中不相邻.(9)二分图定义:一个图G(V,E),若存在V 的一个分划(,),使得每条边有一个顶点在中,另一个在中,则称为二分图.(10)子图、支撑子图定义:设有两个图,,如果,,则称为的支撑子图.(11)点导出子图定义:设有图G(V,E),是的非空子集,若以为点集,以两点均在中的所有边为边集的子图称为由导出的的子图,记为,简称点导出子图.(12)边导出子图定义:若是的一个非空子集,则以为边集以中边的所有顶点作为点集的子图,称为由导出的的子图,记为,简称边导出子图.(13)度:定义:图中顶点的度为与关联的边的数目(与关联的每个环算作两条边),记为.结论:设G(V,E)是一个图,则,即度数为奇数的顶点有偶数个.2.2有向图(1)有向图定义:一个有向图是一个有序二元组,其中是顶点集,称为的弧集,为一个有序二元组.称为连向的弧,为的出弧,的入弧;称为得尾,称为的头;称为的前继,称为的后继.图2就是一个有向图.图2(2)环定义:头和尾重合的弧称为环.(3)重弧定义:若两条弧有相同的头和尾,则称这两条弧为重弧.(4)简单有向图定义:没有环和重弧的有向图称为简单有向图‘(5)基图定义:把有向图中每条弧用边来代替,得到一个无向图,称为得基图.(6)完全有向图定义:设G(V,E)是一个简单有向图,则,若等号成立,则称这样的图为完全有向图.(7)出度、入度定义:有向图中顶点的出弧的数目称为的出度,记为;顶点入弧的数目称为的入度,记为.结论:设G(V,E)是一有向图,则类似地可以定义有向图的子图,支撑子图,点,边导出之子图的概念.(8)网络定义:设是一个图,若对的每一条边都赋以一个实数,称为边的权,则连同边上的权称为一个网络,记为.同样可以定义有向网络.在此主要讨论网络上的各种优化问题.无向网络可以转化为有向网络,具体做法为:把无向网络中每条边代之以一对弧()和(),且两条弧的权都等于边的权.2.3连通性途径、迹、路定义:设有图 G(V,E),如果它的某些顶点与边可以排成一个非空的有限交错序列,这里该途径中边互不相同,则称为迹;如果顶点互不相同,则称它为路.显然路必为迹,但反之未必.闭路径定义:如果某途径至少含一条边,且起点与终点重合,则称它为一条闭途径.类似可定义闭迹和回路(又称圈).注意:若为简单图,则两个顶点间边若存在必是唯一的,故由到的一条途径可以用顶点序列表示.连通图:定义:图中若存在一条从顶点到的途径,则称与是连通的.如果图中任何两个顶点都是连通的,则称是连通图.例如,完全图是连通的.二分图,,则只要,中有一个大于1,则一定不是连通图.连通子图定义:如果是的子图,且是连通的,则称为的连通子图.极大连通子图定义:如果为的连通子图,且不存在连通子图,使是的子图.图的极大连通子图又称为的连通分支.有向途径定义:设有一个有向图,中某些顶点与弧组成的非空有限序列这里,,且,则称它为从到的有向途径.类似可定义有向迹,有向路,有向闭途径,有向闭迹,有向回路(有向圈).当是简单有向图时,从到的一条有向途径可简记为().强连通定义:中若既存在一条从顶点到的有向途径,又存在从到的有向途径,则称和是强连通的.如果中任意两顶点都是强连通的,则称是强连通的.强连通分支定义:的极大强连通子图称为强连通分支.注:若强连通,则恰有一个强连通分支.结论:若为有个连通分支的简单无向图,则的邻接矩阵为准对角矩阵若为有个强连通分支的简单有向图,则的邻接矩阵为准上三角矩阵2.4割集割边定义:设有图,是的一条边,如果从中删去,使它的连通分支数量增加1,则称是的割边.显然,的一条边是割边当且仅当该边不包含在的任何闭迹中.边割定义:设是的一个非空子集,,记,如果,且从中删去这些边后,的连通分支至少增加1,则称是的一个边割.割集定义:若是一个边割,且的任何真子集都不是边割,则称它为极小边割,的极小边割又称为割集.结论:任给图,设是图的圈,是图的割集,用表示的边集.如果,那么.弧割定义:设是一个有向图,记,如果,则从中删去这些弧以后,的强连通分支数至少增加1,称它为的一个弧割.的极小弧割称为有向割集.2.5最短路问题定义:所谓最短路径是指如果从图中某一顶点称为源点到达另一顶点称为终点的路径可能不止一条,如何找到一条有向路径使得沿此路径上各弧的权值总和达到最小.第三章网络的最短路问题的算法研究3.1最短路问题的提出某旅客要从杭州乘飞机前往奥地利的萨尔斯堡,因为他害怕乘飞机,所以要选择一条航线,使得在空中飞行的时间尽可能的少.问题是如何选择航线以达到要求.为此构造一个无向网络总可以化成有向网络,故下面只讨论有向网络的最短路问题.设是一有向网络,为中一条有向路,称为路的权或路长.现寻找网络中自某一指定顶点到另一指定顶点的最短有向路.3.2 Bellman最短路方程设有一个有向网络,.若用表示自顶点到顶点的最短有向路长,用表示弧()的长度,若,则定义,则对一切有且当且仅当弧在自顶点到顶点的最短有向路上.因为所有均表示自到的最短路长,因此这些最短路必有最后一条弧(),且该有向路上自到的一段也是最短路,故有Bellman最短路方程:即自点到各点最短路长度必满足Bellman最短路方程.反过来,Bellman最短路方程的解是自点到其余各点最短路的长度.3.3无负回路网络的最短有向路的Ford算法3.3.1 Ford算法的基本思想Ford算法的思想是逐次逼近,每次逼近求出网络从到其余各顶点的带某种约束的最短路,这里的约束是路中弧数.第一次逼近是从到其他任意顶点由一条弧组成的所有路中找一条最短路,记其长度为;第二次逼近是从到由不多于两条弧组成的所有路中找一条最短路,记其长度为.一般地,第次逼近是从到由不多于条弧组成的路中找一条最短的,记其长度为.因为中自到的最短路至多含个顶点, 条弧,所以最多次逼近即可. 即为中自到的最短路长.3.3.2 Ford算法的步骤为方便起见,定义.第一步置,,.第二步令.第三步若,停止;否则令,返回第二步.3.3.3实例求如下图所示网络中从顶点到其余各点的最短路.解求解过程如下:因此从到的最短路径分别为,,,,,路长分别为1,2,-3,0,2.3.4求正权网络中有向最短路的Dijkstra算法3.4.1Dijkstra算法的基本思想对网络中每个顶点赋以一个标号,用来记录从顶点到该顶点的最短路的长度(此时称为永久标号)或最短路长度的上界(此时称为暂时标号).算法开始时,只有顶点被赋予永久标号,其它顶点被赋予暂时标号.一般地,算法在被暂时标号的顶点中寻找一个顶点,其暂时标号最小,然后将赋予永久标号,且对其余暂时标号的顶点按方式修正其标号.算法在所有顶点均被赋予永久标号终止.3.4.2Dijkstra算法的理论依据对于中任一顶点,其永久标号是从顶点到该顶点的最短路的长度.对于中任一顶点,其暂时标号是从顶点出发,只经过中顶点到达该顶点的最短路的长度.3.4.3 Dijkstra算法的算法步骤最短路径问题是指在一个赋权图的两个指定节点和之间找出一条具有最小权的路.Dijkstra 算法是一个解最短路径问题的算法,这个算法不仅可以找到最短的,路径而且可以给出从到图中所有节点的最短路径.其基本步骤如下:1 设,对所有的节点来说,设,并将标号为0, ,为和w之间的权值距离.2按照每个未标号的节点w计算, ,表示点t 到点w 之间的权值距离 .若被修改了说明在当前得到的到w 的最优路径上t 和w 相邻用记录下来在所有中选择一个最小的即,未标号.将s 标号为, 表示节点到s的最优路径的长度为且与s 相邻.3 若终点v 已标号,则停止.得到一条从到v 的最优路径,否则,转向2再计算.3.4.4 Dijkstra算法的应用举例以具体实例说明Dijkstra 算法的具体应用.例 1. 利用Dijkstra 算法求图1 中节点A 到其它各节点的最优路径 202.9 3.218 4.4 3.5 3.2 4.516 Y 4.1 2.2 14 4.22 3.4 4.512 5.62.9 3 4.22.2 10 3.4 3.5 4 2.23 8 0 24 6 X 8 图1 101214相应的权值为:根据Dijkstra 算法的实现步骤其计算过程可归纳为表1 所示.从表1 中可以看出从到的最短路径为且到的距离为18.3 在求到最短路径的过程中到其余各点的最短路径也相应求出.若以计算一次为计算单位,则利用Dijkstra算法计算到最短路径时所需的计算次数15+14+13+ +2 119次表1采用Dijkstra 算法求解A到其他各节点最优路径的过程序号 A B C D E F G H I J K L M N O P1 - 4.2 3.42 - 4.2 3.4/A9.0 6.93 - 4.2/A - 8.6 8.3 6.94 - - - 8.6 8.3 6.9/C 11.9 10.95 - - - 8.5 8.3/B -10.3 11.2 10.96 - - - 8.6/B - - 11.5 10.3 11.2 10.97 - - - - - - 11.5 10.3/D 11.2 10.9 13.513.78 - - - - - - 11.5 - 11.2 10.9/F 13.5 13.713.19 - - - - - - 11.5 - -11.2/E - 13.5 13.713.110 - - - - - - 11.5/D - - - 13.5 13.713.111 - - - - - - - - - - 13.5 13.713.1/J16.112 - - - - - - - - - - 13.5/H 13.7 -18.0 16.113 - - - - - - - - - - - 13.7/H - 15.916.114 - - - - - - - - - - - - - 15.9/L16.1 18.715 - - - - - - - - - - - - - - 16.1/M18.33.4.5 Dijkstra算法的不足在现行电子地图中,网络模型的规模常常较大,节点数多达上千或上万,并且对网络模型的查询也要求实时性,因此Dijkstra 算法虽然在理论上是可行的,但在实际应用中不尽人意,当网络模型中节点数和边数较多的情况下,算法的计算量较大时间花费较多效率非常低.3.4.6 改进Dijkstra 算法的基本思想及实现表1 中的数值大多数是,都是无用运算,如果节点数量很大,将极其浪费运算时间.由于,节点是否在上次已经被计算出最短路径未知,当前节点是否与节点是否相连也未知,也就是未知,这时是已知的,故本次计算的到底是不是,取决于上一步数值和的数值,从表达式可以看出,只要这两个数值不都是,本次计算的就不会是,所以在上面Dijkstra 算法的实现步骤第2 步时,先判断一下,只要原来的, 的数值中至少有一个不是,才进行下面的计算,这样就保证了当预见是时,不对它进行计算,避免了大量无效的计算,提高了搜索效率.下面仍以一个具体实例来说明改进的Dijkstra算法的具体应用.例2 利用改进的Dijkstra 算法求图1中节点A到其他各节点的最优路径,此例的计算过程和Dijkstra 算法基本一致,只是表 1 中所有标记的部分在改进Dijkstra 算法中被省去了,利用改进的Dijkstra 算法计算到最短路径时所需计算次数为次,由此可见,改进的Dijkstra 算法确实减小了计算量在程序设计中,判断语句所花费的时间可以忽略,并不增大计算量.3.4.7 实验对比为了更好地说明改进的Dijkstra 算法的有效性,利用C语言自行编制了最短路径搜索程序并进行了仿真实验,采用自绘制的地图,共5 张,第一张图16个节点,共24条弧;第二张图32个节点,共55条弧;第三张图43个节点,共75条弧;第四张图62个节点,共111条弧;第五张图78个节点,共139条弧,计算结果如表2 所示.从表 2 可以看出,两种算法的计算量有很大的区别,改进的Dijkstra 算法较之经典Dijkstra 算法在计算量方面有很大幅度的减少,而且这种减少的程度在节点数目增加地图更大,更复杂时,会变得越来越明显.对于实际系统,由于地图都会很大,使用改进Dijkstra 算法的改进效果将非常显著.表2 改进Dijkstra 算法和经典Dijkstra 算法计算次数比较节点数经典Dijkstra 算法改进的Dijkstra 算法16 119 4739.5%32 465 13428.8%43 861 23427.2%62 1830 44124.1%78 2926 54018.5%注:表中的百分数表示改进算法计算量与经典算法计算量的百分比3.5 算法的问题和改进3.5.1算法的基本思想算法在人工智能中是一种典型的启发式搜索算法.通过选择合适的估价函数,指导搜索朝着最有希望的方向前进,以求得最优解. 算法中关键是求估价函数:其中, 是从起点到当前节点已付出的代价, 是从当前节点到目标节点的代价估计函数,必须保证其中是从当前点到目标点的实际最小代价.3.5.2算法的步骤算法的搜索步骤如下:1给起始节点标记,对它的没有标记过的子节点进行扩展;2对每一个子节点计算评价函数值,按评价值的大小进行排列,找出评价值最小的节点,并给它作标记,如果当前节点就是目标节点,则停止搜索;3 否则,对最新被标记的节点进行第2 步处理并记录最短路径.3.5.3算法分析算法是利用对问题的了解和对问题求解过程和解的了解,寻求某种有利于问题求解的启发信息,从而利用这些启发信息去搜索最优路径.它不用遍历整个地图,而是每一步搜索都根据启发函数朝着某个方向搜索.当地图很大很复杂时,它的计算复杂度大大优于Dijkstra 算法,是一种搜索速度非常快、效率非常高的算法.但是,相应的算法也有它的缺点.启发性信息是人为加入的,有很大的主观性,直接取决于操作者的经验,对于不同的情形要用不同的启发信息和启发函数,且他们的选取难度比较大,很大程度上找不到最优路径.下面通过一个具体加以实例说明.例3 利用算法求图1 中从点出发到点的最优路径.解:在本例中将评价函数中的取为当前节点到起始节点的最短距离,而取为当前节点到目标节点的欧氏距离,在应用算法时除采用上面Dijkstra 算法所用过的拓扑结构外,还应该再给定所有节点的坐标如各点坐标为0,13, 3,16, 3,11,….根据算法的具体实现步骤可求得从到的最短路径其距离是16.6.查看表1可知,用Dijkstra 算法搜索的最优路径是, 路径长度15.9 ,很明显算法没有找到最优路径,而且通过比较两条路径可以发现:当采用算法搜索路径时,从第二个节点就把最优路径舍弃了.3.5.4 算法改进思想及实现为了克服最优路径可能被轻易舍弃的缺点,本文提出采用多次搜索的方法,用增大计算量为代价来换取尽量多的最优路径备选结果.具体的方法如下:将经典算法搜索出原始最优路径中的节点依次进行封堵后,再按照经典算法搜索在每一次封堵情况下的最优路径.最后将这些新的最优路径与原始最优路径进行对比以便确定最后的最优路径.现举例说明改进算法的具体应用.例4.利用改进的算法求图1中从点出发到点的最优路径.1 按算法寻找路径得到: ,路径长度16.6;2 封闭此路径中节点后得到的最优路径为:, 路径长度15.9;3 封闭此路径中节点后得到的最优路径为: , 路径长度17.1;4 封闭此路径中节点后得到的最优路径为: ,路径长度17.2;5 封闭此路径中节点后得到的最优路径为: ,路径长度18.7;对前面求得的5 种路径长度进行对比,得到最优路径,其长度为15.9 ,从而将此路径定为改进算法求得的最优路径.查看表1可知此路径正是采用Dijkstra算法时求得的最优路径.3.5.5 实验对比为了进一步验证改进算法的有效性利,用C 语言自行编制了最短路径搜索程序并进行了仿真实验.以78个节点含1个起始节点,77个待规划节点的地图作为对象得到的仿真结果.采用经典算法对77个节点分别进行路径规划,有45个找到了最优路径而采用改进的算法对77个节点进行路径规划时,有68个找到了最优路径,有8个节点虽未找到最优路径但得到了比经典算法更短的路径,只有1个节点和经典算法结果一致.这充分说明改进的算法较之经典的算法在搜索最优路径的成功率方面具有明显的优势.3.6 结论本文对经典Dijkstra 算法和算法进行了改进,改进后的算法具有以下特点.1改进的Dijkstra 算法能在很大程度上节省计算量,提高路径规划的速度.2改进的算法虽在一定程度上增大了计算量但远远小于Dijkstra 算法的计算量, 却大大增大了搜索到最优路径的成功率.3.7 混合步长网络漫游最短路算法3.7.1引言网络最短路问题一直是网络理论与实践的重要研究课题之一,是在工农业生产及各项经济活动中非常具有实用价值的一门计算技术,是系统工程和运筹学研究的一个重要分枝.随着图与网络理论的不断发展与完善和计算技术、计算手段的不断进步,为新的网络最短路算法的研究提供了前提和条件.经过深入的研究探索和实践,本文提出一种任意路权网络最短路的新算法??混合步长网络漫游法.3.7.2 网络漫游法原理在一个给定的任意路权网络图中,为该网络的点集合,为该网络的弧集合,为网络各弧的权数集合.确定一个点作为漫游网络的起点,并记该点的漫游路长为零 ,其余各点的漫游路长 ,以此作为初始状态.之后,每一步都以当前漫游点的路长来修正其余相关连点的路长,并选择一个新的漫游点,如此往复,直至不再有可以漫游的点为止.若从起始点到任意点的直接路长为 (为网络的顶点数,若两点和之间没有直接的弧连接,则),则以修改各点的初始漫游路长, 作为第一步各点的漫游路长,并选择所对应的点作为第一步的漫游点,称之为当前漫游点.一般而言,经过步漫游到达第点,则第点为当前漫游点,该点的当前漫游路长为 .为寻找下一步的漫游点,要计算 ,并以作为点第步的漫游路长,选择点作为第步的漫游点,如此循环,直至各能够到达的点均已漫游过且各点已不存在更短的漫游路长时,漫游终止.同时得到了从起始点到各点的最短路.3.7.3网络漫游法的特点3.7.3.1 混合步长每次从当前漫游点寻找下一漫游点时,采用了算式,所以,下一漫游点的路长不只是第步中的最短路,而且是在第步、第步、…、第1步、第0步中的最短路,是当前步长内所有步数能够到达该点的最短路.3.7.3.2路长递减性由于采用了算式作为第点的第步的路长,它小于等于步之内任一步长的路长,具有递减性.3.7.3.3条件记忆性由第k步的当前漫游点寻找下一漫游点时,是在除当前点之外的其它点中寻找.其余的点分为两类,一类是还没有漫游过的点,它自然属于寻找的范围;另一类是已经漫游过的点,这类点分为两种情况,其一是该点记录的步步长之内的最短路值是该点作为漫游点时的路长,则该点不在寻找之列,即该点已漫游过这件事是在记忆之中的,其二是该点虽然已漫游过,但在其后的漫游中更新了该点漫游时的路长值,则该点在寻找范围之列,即对该点已漫游过这一事实失去记忆,如同没有漫游过的点一样.也就是说,若该点作为漫游点时的路长值一直保持为该点的最短漫游路长,则对该点保持记忆;若该点作为漫游点时的路长值已发生变化,则对该点的漫游失去记忆.3.7.4 网络漫游法的算法对于给定的任意路权网络,按照如下步骤进行网络漫游,只要网络中不含负回路,最终总可以求得从起始点到其所能到达的所有点的最短路.当然,也可以从终点反向漫游,以求得从网络的任意一点到终点的最短路.3.7.4.1 确定漫游起始状态若求从某点到其它各点的最短路,则以作为漫游的起始点(当前漫游点),并记该点的起始漫游路长为零,其余各点的漫游路长为无穷大(注:若求其它各点到终点的最短路,则以作为漫游起点,进行反向漫游即可).3.7.4.2 从当前漫游点向外探索计算从当前漫游点走到其它各点所产生的路长3.7.4.3确定各点新的漫游路长将各点的与其当前的最短路长进行比较,选取较小者作为该点新的漫游路长,即.3.7.4.4 作漫游标记当从本漫游点向外探索之后则对其作一标记,表示此点已漫游过.在以后的漫游中保持此标记,直到该点有更短的漫游路长出现时,则除去该点的漫游标志.3.7.4.5 确定新的漫游点在当前没有作漫游标记的点中,选取所对应的点作为新的漫游点.返回3.2继续漫游.。
离散数学——图论

提示:反证法。
设有两个连通分支,这两个分支至多是完 全图。由此得到图中点与边之间的数量关系。
§8.3欧拉图
欧拉图产生的背景就是前面的七桥问题。
定义:图G的回路,若它通过G中的每条边一 次,这样的回路称为欧拉回路。具有欧拉回 路的图称为欧拉图。
定义欧拉通路:通过图G中每条边一次的通 路(非回路)称为欧拉通路。
基本通路:通路中没有重复的点。
简单回路和基本回路。
基本通路一定是简单通路,但反之简单通路 不一定是基本通路。基本回路必是简单回路。
定理:一个有向(n,m)图中任何基本通路长 度≤n-1。任何基本回路的长度≤n。 任一通路中如果删去所有回路,必得基本通 路。 任一回路中如删去其中间的所有回路,必得 基本回路。
例1:教材121页。
结点次数
引出次数:有向图中以结点v为起点的边的条数称为 v的引出次数,记 deg(v) 引入次数:有向图中以结点v为终点的边的条数称为 v的引出次数,记 deg(v)
结点次数:有向图中引出次数和引入次数之和称为 结点次数;无向图中与结点v相关联的边的条数称为 V的次数。统一为记deg(v)。
图论的发展
图论的产生和发展经历了二百多年的历史, 从1736年到19世纪中叶是图论发展的第一阶 段。 第二阶段大体是从19世纪中叶到1936年,主 要研究一些游戏问题:迷宫问题、博弈问题、 棋盘上马的行走线路问题。
一些图论中的著名问题如四色问题(1852年)和哈密 尔顿环游世界问题(1856年)也大量出现。同时出现 了以图为工具去解决其它领域中一些问题的成果。
有向连通图
图的边染色及一些有限制条件的染色

图的边染色及一些有限制条件的染色图的染色问题在图论及理论计算机科学中都有着极为广泛的应用,是图论研究中最重要的课题之一.在本论文中,我们研究图的边染色及一些简单图的有限制条件的染色.设G是可能具有重边但不具有环的图,分别用V,E,△和μ表示G 的顶点集,边集,最大度和重数.本文的第一章给出图的边染色,点染色及其它一些有限制条件的染色的定义,并给出相关问题的一些主要研究进展和猜想.图的边染色的核心问题是确定其边色数.图G的k-边染色φ是从E到集合{1,2,…,k}(其中的元素称为颜色)的一个映射,使得任意两条相邻边的颜色不同.G的边色数是使得G存在k-边染色的最小正整数k,记作χ’与研究边染色相比,研究分数边染色更加容易一些.图G的分数边染色是G的匹配的集合M(G)的一个非负赋权ω(.),使得对每条边e∈E,有∑M∈M:e∈Mw(M)=1显然这样的赋权ω(.)存在.G的所有分数边染色中最小的总权值∑m∈Mw(M)称为是G的分数边色数,记作χ’f,计算χ’f是多项式时间的.图G的边色数与分数边色数的关系如下△≤x’f ≤x’≤△+μ,其中的上界为Vizing的一个经典结果.事实上,如果χ’f>△,那么x’f=max|E(H)|*[|V(H)|/2]其中的最大取遍G的导出子图H.Goldberg(1973), Andersen(1977)和Seymour(1979)各自先后猜想当χ’≥△+2时,χ’=[χ’f].这一猜想可推出Gupta(1967)在其博士毕业论文中的一个猜想,通常被称为Gildberg猜想或Goldberg-Andersen-Seymour猜想.本文的第二章.我们证明若λ>△+3(?)△/2则χ’=[χ’f].这之前最好的结果是由Scheide和由陈冠涛,郁星星.臧文安分别独立地得到的χ’>△+(?)的图Goldberg猜想的一个等价猜想是下面的Jakobesen猜想:对任意正整数m(m≥3).每个λ’>m/m-1△+m-3/m-1的图G满足χ’=[χ’].在过去的四十年中Jakobsen猜想被证得对至多为15的r77是成立的.我们证明它在m≤23时成立.此外.我们证明Goldberg猜想对△≤23或|V|≤23的图G成立.重数μ≤ 1的图G称为是简单的.简单图G的k-点染色φ是从V到集合{1.2,…,k}(其中的元素称为颜色)的一个映射,使得相邻点的颜色不同.使得G存在k-点染色的最小正整数k叫做G的点色数.由于确定G的点色数是NP-难的.可将点染色的条件放松,定义树染色如下.简单图G的k树染色φ是颜色1.2.…,k对G的顶点的一个分配,使得G的染每种颜色的顶点导出的子图是森林.G的点荫度va是使得G存在k-树染色的最小正整数k.吴建良,张欣和李海伦考虑树染色在均匀时的情形.即任意两个色类所含的顶点数至多差1.他们猜想任意简单图G的顶点集可均匀地被划分为m个子集,使得每个子集导出的子图是森林,其中m≥[△+1/2]是整数.本文第三章我们证明该猜想对5-退化图是成立的.若去掉k-边染色的定义中相邻边的颜色不同这一条件,则得到k-边赋权的定义.2004年Karonski.Luczak和Thomason猜想每个简单图G存在使用颜色为1,2,3的3-边赋权.使得任意两个相邻顶点关联边的赋权的和不同.这一猜想被称为1-2-3猜想.本文的第四章我们证明1-2-3猜想在把边赋权导出的点染色放松到树染色时是成立的.进一步地,我们给出一些具有树可染的2-边赋权的图类.简单图G的邻和可区别的k-边染色是G的一个k-边染色,使得对任意边uv∈E,与u关联的边的颜色之和异于与v 关联的边的颜色之和.用ndi∑表示G存在邻和可区别的k-边染色的最小的正整数k.Flandrin等人猜想对任意至少G个顶点的简单图G,有ndi∑≤△+2这一猜想被称为是邻和可区别的边染色猜想.G的最大平均度mad(G)=max{2|E(H)|/|,(H)|:H是G的非空子图}.在本文的第五章,我们得到对不含孤立边且mad(G)<8/3的简单图G,有ndi∑≤K,其中k=max{△+1,6}它为邻和可区别的边染色猜想的一个特例.在本文的第六章,我们将对全文进行总结,并提出在图的染色问题中一些今后可继续研究的课题.。
图论-中国科学院数学研究所

偶图和vs素数和
数论: 每个充分大的奇数是3个素数之和。 图论: 每个2-边连通图是3个偶图之和。 陈景润定理 : 每个充分大的偶数是一个素数 与不超过两个素数的乘积之和。 Seymour 定理 : 每个 2- 边连通图是一个偶图 与不超过两个偶图的有向并之和。
W.T. Tutte (1917-2002)
中国邮递员问题: 在带权图中找一条回路:
过每条边至少一次 , 且边的权之和最小 ( 带权
最优欧拉回路问题)
难度: 有多项式算法
(Edmonds, 1985 von Neumann Prize) 应用: 起源于中国邮递(管梅谷,1962)
图论的经典——Ramsey数问题
简单情形: 任意六个人中, 必有3个互相
图论的前沿——子图和问题
定义:若一个图的边集可表为某些子图的边 集之和,则称该图是这些子图之和。 子图和问题:将一个图表为尽可能少的子图 之和。
偶图:每个点与偶数条边关联。
偶图和
是下面两个偶图之和
偶图和
四色问题的一个等价形式: 每个2-边连通 平面图是两个偶图之和。
哥德巴赫猜想: 每个大于2的偶数是两个素
Very Large Scale Integration
用半导体工艺技术将电子电路的电子元器
件(电阻、电容、电感、晶体管、二极管、传
感器等)在一块半导体材料(硅、砷化镓)芯
片上,互连成有独立功能的电路和系统。亦称 为“芯片”(Chip)。
集成电路产业
集成电路产业包括设计、芯片制造、封装检测 三大部分。可形象地比喻为写书、印刷、装订。
Ramsey 问题 应用广、影响大。微软研究中 心的 Kim 因求解 R(3, t) 的工作而获 1997 年
有关gsp原理应用的论文

有关GSP原理应用的论文1. 概述GSP(Graph Signal Processing,图信号处理)是一种新兴的信号处理领域,它将信号处理与图论相结合,用于处理图数据。
本论文将介绍GSP原理及其在实际应用中的应用情况。
2. GSP原理介绍GSP原理是基于图信号的频域分析方法,结合了图论和信号处理的理论和算法。
它将图上的节点视为信号的采样点,将图边表示为它们之间的连接关系。
通过对图信号进行频谱分析,可以得到图信号在频域上的表达。
GSP原理的核心是图信号的拉普拉斯变换,它将图信号从时域转换到频域。
通过拉普拉斯变换,可以得到图信号的频谱表示,从而进行各种信号处理操作,如滤波、降噪等。
3. GSP在社交网络分析中的应用社交网络是一个典型的图数据结构,其中用户和他们之间的关系可以用图表示。
GSP在社交网络分析中有着广泛的应用。
•社交网络中的推荐系统:GSP可以通过分析用户之间的关系网络,提供个性化的推荐系统。
它可以通过对用户的社交关系网络进行分析,找到用户之间的共同特征,从而提供个性化的推荐结果。
•社交网络中的影响力分析:GSP可以通过分析社交网络中用户之间的关系,评估用户的影响力。
它可以通过图信号的频域分析,找到网络中的关键节点,并判断这些节点对整个网络的影响力。
•社交网络中的社区发现:GSP可以通过分析社交网络中的节点之间的连接关系,进行社区发现。
它可以通过图信号的频域分析,找到社交网络中紧密连接的节点群体,从而实现社区发现。
4. GSP在图像处理中的应用图像是一种典型的二维图数据,GSP在图像处理中也有着广泛的应用。
•图像降噪:GSP可以通过分析图像的连接关系,实现图像的降噪。
它可以通过图信号的频域分析,提取图像中的噪声信号,并进行滤波处理。
•图像分割:GSP可以通过分析图像的连接关系,实现图像的分割。
它可以通过图信号的频域分析,找到图像中的不同区域,并将它们分割开来。
•图像压缩:GSP可以通过分析图像的连接关系,实现图像的压缩。
哥尼斯堡七桥问题与图论

1736年29《哥尼斯堡的七座桥》的论文,创了数学的一个新的分支—一、哥尼斯堡七桥问题哥尼斯堡在俄罗斯境内,现称为加里宁格勒.生和培养过许多伟大人物.格尔河,横贯城中,如图1所示.流,一条称为新河,一条主流,的商业中心.区、北区、东区和南区.桥,两支流上.这一别致的桥群,图1早在18世纪,散步中走过每座桥,发点?”走遍这七座桥共有A77=7!=验,谈何容易.那么在这5040而形成了著名的图2欧拉请他帮助解决这个他似乎看到其中.经过一年的研究,29岁的并于1736年向彼得堡科哥尼斯堡的七座桥》的论文.C(岛区)、A(南区);七座桥看成这四个点、6、7七个数字表示,如图3所示.“一笔画”问题:否能一笔不.布勒格尔河模型蔡思明58遍历的路径称作欧拉路径(一个环或者一条链),如果路径闭合(一个圈),则称为欧拉回路.图论中的欧拉定理(一笔画定理)要分有向图(边有特定方向的图)与无向图(边没有特定方向的图)两种情况进行讨论.1.无向图的情况定理:连通无向图G有欧拉路径的充要条件为:G中奇度顶点(即与其相连的边数目为奇数的顶点)有0个或者2个.证明:必要性.如果图能够被一笔画成,那么对每个顶点,考虑路径中“进入”它的边数与“离开”它的边数(注意前提是无向图,所以我们不能称其为“入边”和“出边”).很显然这两个值要么相同(说明该顶点度数为偶),要么相差1(说明该顶点度数为奇).也就是说,如果欧拉路径不是回路,奇度顶点就有2个,即路径的起点和终点;如果是欧拉回路,起点与终点重合,则不存在奇度顶点.必要性得证.证明:充分性.如果图中没有奇度顶点,那么在G中随机取一个顶点v0出发,尝试构造一条回路c0.如果c0就是原路,则结束;如果不是,那么由于图是连通的,c0和图的剩余部分必然存在某公共顶点v1,从v2出发重复尝试构造回路,最终可将整张图分割为多个回路.由于两条相连的回路可以视为一条回路,所以该图必存在欧拉回路.如果图中有2个奇度顶点u和v,那么若是加一条边将u和v连接起来的话,就得到一个没有奇度顶点的连通图,由上文可知该图必存在欧拉回路,去掉这条新加的边,就是一条以u和v为起终点的欧拉路径.充分性得证.可知,哥尼斯堡七桥问题中的图有4个奇度顶点(1个度数为5,3个度数为3),所以不存在欧拉路径.2.有向图的情况定理:底图连通的有向图G有欧拉路径的充要条件为:G的所有顶点入度和出度都相等;或者只有两个顶点的入度和出度不相等,且其中一个顶点的出度与入度之差为1,另一个顶点的入度与出度之差为1.显然,可以通过与无向图情况相似的思路来证明,过程略.当时的数学界起初并未对欧拉解决七桥问题的意义有足够的认识,甚至有些人仅仅当其为一个数学游戏.图论这一数学分支诞生后并未得到很好的发展,直到200年后的1936年,匈牙利数学家科尼希出版了《有限图与无限图理论》,此为图论的第一部专著,其总结了进200年来有关图论的成果,这是图论发展的第一座里程碑.此后,图论进入发展与突破的阶段,又经过了半个多世纪的发展,现已成为数学科学的一个独立的重要分支.图论原是组合数学中的一个重要课题.我们用点表示事物,用连接点的边表示事物间的联系,便可得到图论中的图.图论为研究任何一类离散事物的关系结构提供了一种框架.图论中的理论已应用于经济学、心理学、社会学、遗传学、运筹学、逻辑学、语言学计算机科学等诸多领域.由于现代科学尤其是大型计算机的迅猛发展,使得图论大有用武之地,无论是数学、物理、化学、地理、生物等基础科学,还是信息、交通、战争、经济乃至社会科学的众多问题,都可以运用图论方法予以解决.当然,图论也是计算机科学的基础学科之一.值得一提的是,欧拉对七桥问题的研究,后演变成多面体理论,得到了著名的欧拉公式V+F=E+2,欧拉公式是拓扑学的第一个定理.哥尼斯堡的七座桥如今只剩下三座,一条新的跨河大桥已经建成,它完全跨过河心岛——内福夫岛,导游们仍向游客讲述哥尼斯堡桥的故事,有的导游甚至仍称“七桥问题”没有被解决,留给游客以遐想.虽然七座哥尼斯堡桥成了历史,但是“七桥问题”留下的“遗产”不像这些桥那样容易破坏,欧拉卓越的解答方式被永载史册.60。
图论
G
K5
ห้องสมุดไป่ตู้
*十一.相对补图 设G1=<V1,E1>是图G=<V,E>的子图,如果有G2=<V2,E2> 使得E2=E-E1且V2中仅包含E2中的边所关联的结点,则称 G2是G1相对G的补图. a a a c b c b c b b c d e d e d e d e G1 G2 G3 G
例2.“七桥问题” 十八世纪,哥尼斯堡城内有一条河----普 雷 格尔河,河中有两个岛屿,河面架有七座桥,使得岛屿与两 A 岸之间互相贯通. A
B D
e1 e e5 2 B e6 e3 e 4 e7
D
C
C
V={A,B,C,D} E={e1, e2, e3, e4, e5 e6, e7} 人们茶余饭后经常到桥上散步,从而提出这样问题:是否 可以从某地出发,每座桥都走一次,再回到出发点. 很多 人试图找出这样的路径, 都没有找到. 后来欧拉证明这样 的路径根本不存在. 此图可以抽象为上边右图.
2.解:已知边数|E|=10, ∑deg(v)=2|E|=20 其中有4个3度结点, 余下结点度之和为: 20-3×4=8 因为G是简单图, 其余每个结点度数≤2, 所以至少还有 4个结点. 所以G中至少有8个结点.
七. 有向图结点的出度和入度:(in degree out degree) G=<V,E>是有向图,v∈V a b v的出度: 从结点v射出的边数. c d 记作deg+(v) 或 dego(v) v的入度: 射入结点v的边数. 记作deg-(v) 或 degi(v) degi(a)=2 degi(b)=2 degi(c)=1 degi(d)=1 dego(a)=2 dego(b)=3 dego(c)=1 dego(d)=0 定理8-1.3 G=<V,E>是有向图, 则G的所有结点的出度之和 等于入度之和. 证明: 因为图中每条边对应一个出度和一个入度. 所以所 有结点的出度之和与所有结点的入度之和都等于有向边 数. 必然有所有结点的出度之和等于入度之和.
浅析图论教学
重 构 问题等 陆续 被提 出 , 它们 推 动 了图论 理论研 究 的 日益 完善 和深 入.上 世 纪 中期 ,随 着计 算 机科 学
的飞速 发展 ,图论成 为 数学 中发 展最 快 的分支 之一 .图论从 它诞 生 开始就 显示 了它 的应用 价值 ,如今 ,
图论 在 计算 机理 论科 学 ,运筹 学 , 统科 学 , 学 ,生物 学等 很多 学科 领域都 有 着重要 的应 用. 系 化
韩 信说 的是 “ 葫芦 归罐罐 归篓 ” “ 芦 归罐 罐 归篓 ” .葫 的意 思是 :一 次 次 的将 油从 油 篓 中倒 向油 葫 芦 ,油 葫芦装 满就 向油罐 里倒 ,油罐装 满就 向油 篓里倒 , 如此 反复 , 干 次后 , 可以将 油 均分 为 两份 .韩信 若 就
[ 收稿 日期]2 0一 l0 0 9O一6
24 0
大 学 数 学
第2 7卷
次课 要 出奇制 胜 ,要让 学生从 第一 次 课 开始 就 产生 这 样 的想 法 :原来 数 学课 程 也 可 以 这 么轻 松 有 趣 , 这 么贴近 现实 生活 .为了达 到此 目的 , 们不妨 从一 个童 年 时期 的智 力题 或故 事开始 . 我 例 1 传 说楚 汉 时期 的著名 将领韩 信不 光是 一个 军 事 家 还是 一个 数 学 天 才.一 次行 军 途 中,他 看
中达到 这种理 想 的 目的呢 ?我认 为关键 词就 是“ 兴趣 ” 问题 ” 和“ .因为最 好 的学 习动 机 是兴 趣 , 好 的 最 学 习方式 是带 着 问题学 习.下 面将 围绕 它们 谈一谈 图论教 学 中 的体会 .文 中涉 及 到 的一 些概 念 和术 语
如无 详 细说 明 ,可参 见 [ —3 . 1 ]
数学与应用数学专业毕业论文
数学与应用数学专业毕业论文数学与应用数学专业是一门涉及广泛且充满挑战性的学科。
无论是在理论研究还是实际应用上,数学与应用数学都起着重要的作用。
在这篇文章中,我们将探讨一些与数学与应用数学专业相关的毕业论文选题。
1. 数论在密码学中的应用数论是研究整数性质及其关系的数学分支。
在当今数字化时代,安全性成为了信息交流中至关重要的一环。
密码学在保护信息安全方面发挥了重要作用。
通过研究数论中的素数分解、离散对数等算法,可以应用于密码学中的加密和解密过程中。
本论文将深入探讨数论在密码学中的应用,并就其相关算法的效率和安全性进行研究和评估。
2. 图论在社交网络分析中的应用社交网络已经成为人们日常生活中重要的一部分。
通过构建数学模型,可以揭示社交网络中个体之间的联系、影响力传播以及群体行为规律等。
图论作为研究节点和边之间相互关系的数学分支,在社交网络分析中具有重要意义。
本论文将基于图论方法,采用网络分析工具,对社交网络中的节点度中心性、聚类系数等指标进行研究,并以某社交网络为案例进行实证分析和探讨。
3. 微分方程在物理建模中的应用物理现象通常可以通过微分方程进行建模和描述。
微分方程作为研究变量之间关系的数学工具,在物理建模中广泛应用。
本论文将以某具体物理现象为例,通过选取合适的微分方程模型,进行求解和分析,并对其合理性和精确性进行讨论。
通过这一研究,可以进一步揭示微分方程在物理建模中的作用和应用价值。
4. 统计学在医学研究中的应用统计学作为研究收集整理数据方法和推断结论的学科,在医学研究中拥有广泛的应用。
通过合理设计实验、分析数据和研究结果,可以得出结论并为临床决策提供依据。
本论文将选择某一医学研究领域,结合实际案例,运用统计学方法进行数据分析,并就结果进行解读和讨论。
同时,对数据处理过程中可能存在的风险和误差进行评估和探讨。
以上只是数学与应用数学专业毕业论文选题的几个示例。
无论选择哪个选题,都需要合理设置研究目标、提出问题,并采用适当的方法和技巧进行研究。
图论及图的基本介绍
第四篇图论
什么是图论
定义
✓图论(Graph Theory)是数学的一个分支。
它以图为研究对象。
✓图论中的图是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系;用点表示事物,用连接两点的线表示相应两个事物间的关系。
✓从一般意义而言,它描述了客观世界中的拓扑结构。
什么是图论
人们常称1736年是图论历史元年,因为在这一年瑞士数学家欧拉(Euler)发表了图论的首篇论文——《哥尼斯堡七桥问题无解》,所以人们普遍认为欧拉是图论的创始人。
1936年,匈牙利数学家寇尼格(Konig)出版了图论的第一部专著《有限图与无限图理论》,这是图论发展史上的重要的里程碑,它标志着图论将进入突飞猛进发展的新阶段。
哥尼斯堡七桥问题
18 世纪在哥尼斯堡城( 今俄罗斯加里宁格勒) 的普莱格尔河上有7 座桥,将河中的两个岛和河岸连结,如图所示。
城中的居民经常沿河过桥散步,于是提出了一个问题:能否一次走遍7 座桥,而每座桥只许通过一次,最后仍回到起始地点。
这就是著名的哥尼斯堡七桥问题。
图论的应用
计算机科学、物理学、化学、运筹学、信息论、控制论、网络通讯、社会科学以及经济管理、军事、国防、工农业生产等方面都得到广泛的应用。
1936年,匈牙利数学家寇尼格(Konig)出版了图论的第一部专著《有限图与无限图理论》,这是图论发展史上的重要的里程碑,它标志着图论将进入突飞猛进发展的新阶段。
图论的知识体系概图
第十章图的基本概念
本章各节间的关系概图
图的基本概念在计算机科学技术相关领域的应用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图论论文 论文题目 学生姓名 专业班级 学 号 邮 箱
2015年 12月 20日 目 录 摘要 .......................................................................................................................................................... 1 第一章 哈夫曼树 .................................................................................................................................... 2 1.1 哈夫曼树的基本概念 .................................................................................................................. 2 第二章 哈夫曼算法构造 ........................................................................................................................ 3 2.1 哈夫曼树的构造算法 .................................................................................................................. 3 2.2 举例说明其构造过程 .................................................................................................................. 3
第三章 哈夫曼树的应用 ...................................................................................................................... 5 3.1 用于通信编码 .............................................................................................................................. 5 第四章 运行结果 .................................................................................................................................... 6 第五章 总结 .......................................................................................................................................... 7 参考文献: ................................................................................................................................................. 7 附录 .......................................................................................................................................................... 8 哈夫曼编码及其应用 摘要 在现代社会,通信的发展,使得现代社会更加丰富多彩,我们可以随时随地在任何 地方了解到世界各地的信息,而这又必须依赖信息的传递。在信息化高度发达的当今社会,我们必须对信息的传递有着较高的要求,我们希望信息在传递的过程中,能够保持节省性和保密性和无损性,而著名的霍夫曼编码就能够达到这样的要求。因此研究霍夫曼编码对信息的压缩和解压就时相当有必要的,我们用C++对霍夫曼编码给出简单的算法以实现对文件的压缩和解压。哈夫曼树是由哈夫曼于1951年所创立并改进的,他本人也根据哈夫曼树提出了相应的编码.由于哈夫曼树是具有最小加权路径长度的二叉树,故哈夫曼编码能产生较短的码文.基于这个优势,在信息化高度发达的当今社会,对信息的传递也有着较高要求的我们,希望信息在传递过程中,能够保持节省性和保密性,哈夫曼编码则很好的满足了这方面的要求,因而对其的研究是相当有必要的. 关键字:哈夫曼树,二叉树,信息压缩编码 2
第一章 哈夫曼树 1.1 哈夫曼树的基本概念 首先要了解关于树的一些概念。 定义1.1 在一棵树中,从一个结点往下可以达到的孩子或子孙结点之间的通路,称为路径. 定义1.2 若将树中结点都赋给一个具有某种含义的数值,则这个数值称为该结点的权. 定义1.3 由根结点到所有叶结点的路径长度之和称为二叉树的路径长度. 定义1.4 从根结点到叶结点的路径长度与相应结点权值之积的和叫做二叉树的带权路径长度. 定义1.5 最优二叉树,也称哈夫曼树,实质是对一组带有确定权值的叶结点,构造的具有最小带权路径长度的二叉树. 如果二叉树中的叶结点都具有一定的权值,则可将这一概念推广,设二叉树有n个带权值的叶结点,那么,二叉树的带权路径长度应记为:
nkkkLWWPL1,
其中kW为第k个叶结点的权值;kL为第k个叶结点的路径长度.如下图:
图1.1.1 在图1.1.1中,A即为根结点,而CB,则为叶结点,若CB,的权值分别为4,3则二叉树路径长度为2,二叉树的带权路径长度为7,即71413WPL. 例 下面我们结合实例来说明哈夫曼树.如图1.2.2
)(a )(b )(c 2.2.1图 3
;4922351638 3;4132352618 2;4222252628 1WPL
WPL
WPL
按照WPL的计算方法,经过计算比较后,我们发现,图2.2.1)(b的WPL值最小,它即为哈夫曼树. 由此可见,由相同权值的一组叶子结点所构成的二叉树有不同的形态和不同的带权路径长度.那么如何找到带权路径长度最小的二叉树呢?根据哈夫曼树的定义,一棵二叉树要使其WPL值最小,必须使权值越大的叶结点越靠近根结点,而权值越小的叶结点越远离根结点,这样计算树的带权路径长度时,自然树会具有最小的带权路径长度,这是生成算法的一种基本思想.
第二章 哈夫曼算法构造
哈夫曼树,实质是对一组带有确定权值的叶结点,构造的具有最小带权路径长度的二叉树.尽管哈夫曼树可以通过WPL比较后得出,可是在运算过程中往往会出现一些问题,使其实现起来并不容易,因而我们可以应用编程来有效地解决这个问题.
2.1 哈夫曼树的构造算法
为了构造权值为nWWWW,,,,321的哈夫曼树,哈夫曼提出了一种构造算法,
现将其陈述如下: 步骤1 根据题目给定的n个权值nWWWW,,,,321构造有下列n棵二叉树的集合
nTTTTF,,,,321,其中每棵二叉树iT中只有一个带权为iW的根结点,其 左右树均为空; 步骤2 在F中选取两棵根结点的权值最小的树作为左、右子树构造一棵新的二 叉树,且置新的二叉树的根结点的权值为其左、右子树上根结点的权值之 和; 步骤3 在F中删除这两棵树,同时将新得到的二叉树加入F中; 步骤4 重复步骤2和步骤3,直到F只含有一棵树为止,这棵树便是哈夫曼树.
2.2 举例说明其构造过程
假设叶结点权值集合为4,3,2,1W的哈夫曼树的构造 第一步 我们根据给定的4个权值来构造4棵二叉树的集合F. 4
第二步 在F找出权值中最小的两个作为新二叉树的左右子树,且置新的二叉树根结点权值是其左右结点权值之和.
第三步 将次小的树与新生成的树再作为左右子树生成权值为6的新树;
第四步 再次将权值为4的树在同上一个权值为6的树再次生成新树即可. 从以上过程可以计算出这棵二叉树的带权路径长度为19. 5
第三章 哈夫曼树的应用 3.1 用于通信编码 在电报通讯中,电文是以二进制的1,0序列传送的.在发送端需要将电文中的字符序列转换成二进制的1,0序列,而在接收端又需要把接收的1,0序列转换成对应的字符序列. 例如给出一段电文:
TASAAATSATCASTCAST
电文中只使用了TSAC,,,这四种字符,各字符出现的频度分别是5,4,7,2,若进行等长编码,需要两位二进制位,可依次编码为 11: ,10: ,01: ,00:TSAC
则所发电文是: 11011001 01 0111 100111 00011011 00011011
采用不等长编码要避免译码的二义性.例如,,10:,001:,010:,01:DCBA字符A的编码01是字符B的编码010的前缀部分.这样对于代码串0101001,既是AAC的代码,也是ABD和BDA的代码,因此,这样的编码不能保证译码的唯一性. 所以,若对某一字符集进行不等长编码,可用该字符集中的每个字符作为叶子结点生成一棵编码二叉树,且约定左子树表示字符'0',右子树表示字符'1',则可以用从根结点到叶结点路径上的分支字符组成的字符串作为该叶子结点字符的编码.为了获得传送电文的最短长度,可将每个字符出现的频率作为字符结点的权值赋给该结点,从而求出此树的最小带权路径长度就等于求出了传送电文的最短长度. 因此,求传送电文的最短长度问题就转化为求由字符集中所有字符作为叶子结点和由字符的出现频度作为其权值所产生的哈夫曼树的问题.
例如,TSACD,,,,各字符出现的概率为185,184,187,181,对各概率
取整,得到各字符的权值5472,,,iW,利用它们构造哈夫曼树,如图3.1.3所示,则各字符的编码为:10:111:0:110:TSAC,,,.