图论的应用
- 格式:doc
- 大小:116.50 KB
- 文档页数:10
图论及其应用简介图论是计算机科学中的一个重要分支,研究的对象是由边与顶点组成的图形结构以及与其相关的问题和算法。
图论的应用广泛,涵盖了计算机科学、网络科学、物理学、社会学、生物学等多个领域。
本文将介绍图论的基本概念、常用算法以及一些实际的应用案例。
图的基本概念图由顶点(Vertex)和边(Edge)组成,记作G=(V, E),其中V为顶点的集合,E为边的集合。
图可以分为有向图和无向图两种类型。
有向图有向图中的边具有方向性,即从一个顶点到另一个顶点的边有明确的起点和终点。
有向图可以表示一种有序的关系,比如A到B有一条边,但B到A可能没有边。
有向图的表示可以用邻接矩阵或邻接表来表示。
无向图无向图中的边没有方向性,任意两个顶点之间都有相互连接的边。
无向图可以表示一种无序的关系,比如A与B有一条边,那么B与A之间也有一条边。
无向图的表示通常使用邻接矩阵或邻接表。
常用图论算法图论中有许多经典的算法,其中一些常用的算法包括:深度优先搜索(DFS)深度优先搜索是一种用于遍历或搜索图的算法。
通过从起始顶点开始,沿着一条路径尽可能深入图中的顶点,直到无法再继续前进时,返回上一个顶点并尝试下一条路径的方式。
DFS可以用于判断图是否连通,寻找路径以及检测环等。
广度优先搜索(BFS)广度优先搜索也是一种用于遍历或搜索图的算法。
不同于深度优先搜索,广度优先搜索逐层遍历顶点,先访问离起始顶点最近的顶点,然后依次访问与起始顶点距离为2的顶点,以此类推。
BFS可以用于寻找最短路径、搜索最近的节点等。
最短路径算法最短路径算法用于计算图中两个顶点之间的最短路径。
其中最著名的算法是迪杰斯特拉算法(Dijkstra’s A lgorithm)和弗洛伊德算法(Floyd’s Algorithm)。
迪杰斯特拉算法适用于没有负权边的图,而弗洛伊德算法可以处理带有负权边的图。
最小生成树算法最小生成树算法用于找到一个连通图的最小的生成树。
其中最常用的算法是普里姆算法(Prim’s Algorithm)和克鲁斯卡尔算法(Kruskal’s Algorithm)。
图论在计算机网络中的应用图论作为离散数学的重要分支,被广泛应用于计算机科学和网络领域。
图论通过研究图结构和图算法,可以有效地解决计算机网络中的诸多问题。
本文将探讨图论在计算机网络中的应用,并举例说明其在网络拓扑设计、路由算法和网络安全等方面的重要作用。
一、网络拓扑设计在计算机网络中,拓扑结构决定了数据传输的路径和效率。
图论提供了一种有效的方式来描述和分析网络拓扑。
通过图论,可以利用图模型来抽象网络中的节点和连接,并对网络的结构进行可视化。
基于图论理论,网络管理员可以设计出高性能和可靠性的网络拓扑。
例如,最短路径算法是图论中的一个重要概念,在网络拓扑设计中具有重要作用。
通过最短路径算法,可以寻找两个节点之间最短的通信路径,提高数据传输的效率。
此外,最小生成树算法也被广泛用于网络拓扑设计中,通过选择最小的边集将所有节点连通,以使得网络更加稳定和高效。
二、路由算法图论在计算机网络中的另一个重要应用是路由算法。
路由算法的目标是找到网络中最佳的数据传输路径,以实现高效的数据传输。
图论中的路径查找和最短路径算法为路由算法提供了理论基础和实现方式。
根据图模型建立的网络拓扑,路由算法可以通过遍历图中的路径来确定最佳路由路径。
常见的路由算法包括最短路径优先算法(例如Dijkstra算法)和距离矢量路由算法(例如RIP算法)。
这些算法利用图论的思想,解决了计算机网络中的路由选择问题,提高了网络的传输效率和稳定性。
三、网络安全图论在网络安全领域也有广泛的应用。
网络攻击和入侵检测是当今网络面临的重大挑战,图论提供了一种分析和识别网络攻击的方法。
通过建立攻击图模型,可以将网络中的各个节点和攻击路径以图的形式表示,从而更好地理解和分析潜在的威胁。
此外,图论也可用于网络拓扑的弱点分析。
通过构建拓扑结构图,可以识别网络的薄弱环节,并采取相应的安全措施。
例如,通过追踪网络中的关键节点和连接,可以有效地发现并防止任何潜在的攻击行为。
高中数学图论的实际应用与教学探讨在高中数学的广袤领域中,图论宛如一颗璀璨的明珠,虽然它并非高中数学课程的核心部分,但其在实际生活中的应用广泛,且对于培养学生的逻辑思维和解决问题的能力具有重要意义。
本文将深入探讨高中数学图论的实际应用,并对其教学方法进行分析。
一、图论的基本概念图论是研究图的性质和应用的数学分支。
所谓“图”,并不是我们日常所理解的图像或图画,而是由一些顶点(节点)和连接这些顶点的边所组成的结构。
例如,一个城市的交通网络可以用图来表示,顶点代表城市中的各个地点,边代表道路。
在图论中,有许多重要的概念,如顶点的度(与该顶点相连的边的数量)、路径(从一个顶点到另一个顶点经过的边的序列)、回路(起点和终点相同的路径)、连通图(任意两个顶点之间都存在路径)等。
二、图论在实际生活中的应用1、交通规划城市的交通规划是图论应用的一个重要领域。
通过将城市道路网络抽象为图,可以分析交通流量,确定关键的道路节点和拥堵路段,从而优化交通信号灯设置、规划新的道路建设等,以提高交通效率,减少拥堵。
2、网络通信在计算机网络中,图论用于描述网络拓扑结构。
通过分析网络中的节点和连接关系,可以优化数据传输路径,提高网络的可靠性和性能。
3、物流配送物流企业在规划货物配送路线时,可以利用图论来找到最短路径,降低运输成本,提高配送效率。
例如,快递员在派送多个地点的包裹时,通过图论算法可以找到最优的派送顺序。
4、任务分配在项目管理中,将各项任务视为顶点,任务之间的依赖关系视为边,可以使用图论来合理安排任务的执行顺序,确保项目按时完成。
5、电路设计电子电路的设计中也会用到图论。
电路中的元件可以看作顶点,元件之间的连接看作边,通过分析电路图的拓扑结构,可以优化电路设计,提高电路的性能和可靠性。
三、高中数学图论教学的重要性1、培养逻辑思维能力图论问题的解决需要学生进行逻辑推理和分析,通过构建图、寻找路径、判断连通性等操作,锻炼学生的思维严谨性和逻辑性。
图论的基本概念和应用图论,顾名思义,是研究图的一门数学分支。
在计算机科学、网络科学、物理学等领域都有广泛的应用。
本文将从图的基本概念入手,介绍图论的基础知识和常见应用。
一、图的基本概念1.1 图的定义图是由若干点和若干边构成的。
点也被称为顶点,边也被称为弧或者线。
一个点可以与任意个点相连,而边则是连接两个点的线性对象。
一些有向边可以构成一棵树,而一些无向边则形成了一个回路。
1.2 图的表示图可以用一张二维平面图像表示。
这张图像由若干个点和连接这些点的线组成。
这种表示方式被称为图的平面表示。
图还可以用邻接矩阵、邻接表、关联矩阵等数据结构进行表示。
1.3 图的类型根据图的性质,可以将图分为有向图、无向图、完全图、连通图、欧拉图、哈密顿图等。
有向图:边有方向,表示从一个点到另一个点的某种关系。
无向图:边没有方向,表示两个点之间的某种关系。
完全图:任意两个点之间都有一条边,不存在自环。
\连通图:任意两个点之间都有至少一条通路,没有孤立的点。
欧拉图:一条欧拉通路是一条从一点开始经过所有边恰好一次后回到该点的通路。
哈密顿图:经过所有点恰好一次的通路被称为哈密顿通路。
二、图的应用2.1 最短路径问题图论在计算机算法中最常见的应用之一就是最短路径问题。
在一个有向图中,从一个点到另一个点可能有多条不同的路径,每条路径的长度也可能不同。
最短路径问题就是找到两个点之间长度最短的路径。
最短路径问题可以通过深度优先搜索、广度优先搜索等方法来解决,但是时间复杂度通常较高。
另外,使用Dijkstra算法、Floyd算法等优化算法可以大大缩短计算时间。
2.2 社交网络社交网络是图论应用的一个重要领域。
在社交网络中,人们之间的关系可以用图的形式表示。
例如,在微博网络中,每个用户和他/她所关注的人就可以形成一个有向图。
在这种图中,点表示用户,边表示一个人关注另一个人的关系。
通过对社交网络进行图论分析,可以研究用户之间的互动模式,了解到哪些用户之间联系较为紧密,哪些用户是网络中的“大咖”等。
图论思想在生活中的运用
图论思想在生活中的应用很多,例如:
1、交通出行:在城市的出行,经常会用到从一个地点到另一地点的最短路径,而解决此问题最好的方法就是使用图论,用最短路径算法来找到最优路线,比如驾车、打车、乘地铁等都会使用图论来算出最短路径。
2、网络传输:现在的互联网系统都是使用图论的方法来进行网络传输。
当多台计算机连接到网络时,都会形成一个图,通过图论,可以找到最佳的传输路径,以优化路径走向,从而提高网络的传输速度。
3、调度系统:调度系统中的人员调度及运输路线调度,也是依靠图论思想。
人员调度时,可以建立一个移动关系图,找到每一步最短路径,从而得到最佳的调动方案;而运输路线则可通过最短路线算法,计算出从一个点到另一点最短的路径,从而达到节约时间,提高工作效率的效果。
4、信息检索:在海量数据的环境下检索合适的信息,也是利用图论来解决的。
例如搜索引擎,会建立一个链接关系图,根据各页面间的链接关系来确定最优的信息检索结果。
数学中的图论及其应用图论是一门数学基础理论,用来描述事物之间的关联。
图论主要研究节点之间的连接关系和路径问题。
它的研究对象是图,图是由节点和边组成的,边表示节点之间的连接关系,节点表示事物。
图论是一种十分实用的数学工具,它是计算机科学、物理学、化学、生物学、管理学等领域的重要工具,也是人工智能和网络科学等领域的基础。
一、图论的基本概念1.1 图图是由节点和边组成的,表示事物之间的关系。
节点是图中的基本元素,用点或圆圈表示;边是连接节点的元素,用线或箭头表示。
1.2 有向图和无向图有向图是指边有方向的图,每一条边用有向箭头表示;无向图是指边没有方向的图,每一条边用线表示。
1.3 节点的度和邻居节点节点的度是指与节点相连的边的数量,具有相同度的节点称为同阶节点;邻居节点是指与节点相连的节点。
1.4 遍历和路径遍历是指从起点出发访问图中所有节点的过程;路径是指跨越边连接的节点序列,路径长是指路径中边的数量。
二、图论的应用2.1 网络科学网络科学是研究节点和边之间的关系,以及节点和边之间的动态演化的学科。
网络科学中的图模型是节点和边的结合体,其应用包括社会网络、生物网络和物理网络等。
社会网络是指人们之间的社交网络,它描述了人与人之间的关系。
社交网络可以用图模型表示,节点表示人,边表示人与人之间的互动关系,例如朋友关系、家庭关系等。
生物网络是指由生物分子构成的网络,例如蛋白质相互作用网络、代谢网络等。
在生物网络中,节点可以表示蛋白质或基因,边可以表示蛋白质或基因之间相互作用的联系,这些联系可以进一步探究生物进化和疾病发生的机理。
物理网络是指由物理粒子构成的网络,例如网络电子、量子态等。
在物理网络中,节点可以表示量子比特或电子,边可以表示色散力或超导电性等物理现象。
2.2 计算机科学图论在计算机科学中的应用非常广泛,例如数据结构、算法设计和网络安全等方面。
图论在计算机科学中的经典应用包括最短路径算法、最小生成树算法等。
图论在图像识别中的应用图论在图像识别中的应用图像识别是一项关键的人工智能技术,它涉及到对图像进行分析、理解和识别的过程。
图像识别在许多领域都有广泛的应用,如人脸识别、物体检测和场景理解等。
在图像识别中,图论是一个重要的工具,它能够帮助我们处理和分析图像数据,提高识别的准确性和效率。
1. 图论基础图论是数学中研究图的一门学科。
图由节点(vertex)和边(edge)组成,节点可以表示图像中的像素点或特征点,边表示节点之间的关系。
图可以分为有向图和无向图,有向图的边有方向性,表示节点之间的引导关系,而无向图的边没有方向性,表示节点之间的相似关系。
在图像识别中,我们常常将图像中的像素点或特征点表示为图的节点,通过连接边表示节点之间的关系。
2. 图像分割图像分割是将图像分成若干个子区域的过程。
图论中的最小割算法(Minimum Cut Algorithm)可以应用于图像分割,帮助我们将图像分割成不同的区域。
最小割算法通过计算图中的最小割(最小切边)来实现分割,最小割将图分成两部分,使得两个部分之间的边权重之和最小。
在图像识别中,图像分割可以帮助我们识别出图像中的不同目标。
3. 图像特征提取图像特征提取是图像识别的重要步骤,它能够提取出图像中的关键信息,帮助我们进行分类和识别。
图论中的特征提取算法可以用于图像特征提取。
常用的特征提取算法有深度优先搜索(DFS)和广度优先搜索(BFS)。
深度优先搜索可以遍历图的所有节点,提取出节点的特征信息;广度优先搜索可以遍历图的所有邻接节点,提取出节点之间的关系。
4. 图像匹配图像匹配是将待匹配图像与数据库中的图像进行比对和匹配的过程。
图论中的匹配算法可以应用于图像匹配。
一种常用的匹配算法是哈希算法(Hashing Algorithm),它通过计算图像的哈希值来匹配图像。
哈希值是图像的一种压缩表示,将图像映射为一个固定长度的二进制码。
通过比对哈希值可以实现图像的快速匹配。
图论的基本概念和应用图论是数学中的一个分支,研究的是图的性质和图之间的关系。
图由节点和边组成,节点表示对象,边表示对象之间的关系。
图论的基本概念包括图的类型、图的表示方法、图的遍历算法等。
图论在计算机科学、网络分析、社交网络等领域有着广泛的应用。
一、图的类型图可以分为有向图和无向图两种类型。
有向图中的边有方向,表示从一个节点到另一个节点的关系;无向图中的边没有方向,表示两个节点之间的关系是相互的。
有向图和无向图都可以有权重,表示边的权值。
二、图的表示方法图可以用邻接矩阵和邻接表两种方式来表示。
邻接矩阵是一个二维数组,数组的行和列分别表示图中的节点,数组中的元素表示节点之间的边;邻接表是一个链表数组,数组的每个元素表示一个节点,链表中的每个节点表示与该节点相连的边。
三、图的遍历算法图的遍历算法包括深度优先搜索(DFS)和广度优先搜索(BFS)。
深度优先搜索从一个节点开始,沿着一条路径一直遍历到最后一个节点,然后回溯到上一个节点,再继续遍历其他路径;广度优先搜索从一个节点开始,先遍历与该节点相邻的所有节点,然后再遍历与这些节点相邻的节点,依次类推。
四、图论的应用1. 计算机科学:图论在计算机科学中有着广泛的应用。
例如,图可以用来表示计算机网络中的节点和连接关系,通过图的遍历算法可以实现网络路由和路径规划;图可以用来表示程序中的依赖关系,通过图的遍历算法可以实现代码的分析和优化。
2. 网络分析:图论在网络分析中有着重要的应用。
例如,社交网络可以用图来表示,节点表示用户,边表示用户之间的关系,通过图的遍历算法可以实现社交网络的分析和预测;互联网中的网页可以用图来表示,节点表示网页,边表示网页之间的链接关系,通过图的遍历算法可以实现搜索引擎的排名和推荐算法。
3. 运筹学:图论在运筹学中有着重要的应用。
例如,图可以用来表示物流网络中的节点和路径,通过图的遍历算法可以实现最短路径和最小生成树的计算;图可以用来表示任务调度中的依赖关系,通过图的遍历算法可以实现任务的优化和调度。
图论在数据挖掘与知识发现中应用图论是数学中的一个重要分支,广泛应用于各个领域。
在数据挖掘与知识发现方面,图论的应用也日益增多。
本文将探讨图论在数据挖掘与知识发现中的应用,并分析其优势和挑战。
一、图论简介图论是研究图的数学分支,图是由节点和边组成的数据结构。
节点代表实体,边代表实体之间的关系。
图论提供了一种直观、简洁的方式来描述实体之间的关联关系,并通过图算法进行相应的分析与处理。
二、图论在数据挖掘中的应用1. 社交网络分析社交网络是图论的典型应用场景之一。
通过构建社交网络图,可以分析用户之间的社交关系、网络拓扑结构等,从而实现群体行为预测、社交推荐等功能。
例如,通过图算法分析用户在社交网络中的连通性,可以发现潜在的社区结构,挖掘用户的兴趣爱好等。
2. 异常检测图论在异常检测中也有广泛应用。
通过构建普通业务图或者物理设备图,可以识别出与正常情况不符的节点、边等异常数据,从而发现潜在的安全风险或者设备故障。
例如,在电信领域,通过分析用户通信行为的图模式,可以识别出异常的通话模式,帮助提前发现诈骗和网络攻击等问题。
3. 数据聚类图论可用于数据聚类分析,通过构建相似性图,将相似的数据点连接起来。
通过图算法,可以实现对大规模数据的聚类和分类。
例如,在文本挖掘中,可以通过构建文档间的共现关系图,将相似的文档聚类在一起,从而实现文本分类和主题提取。
三、图论在知识发现中的应用1. 信息抽取信息抽取是指从大规模的非结构化数据中提取结构化的知识和信息。
图论可以帮助构建实体间的关联关系,并通过图算法进行实体关系的发现。
例如,在文本信息抽取中,可以通过构建实体之间的共现图,实现实体识别、关系提取等任务。
2. 关联规则挖掘关联规则挖掘是一种挖掘数据中项集之间频繁关联关系的方法。
图论可以用于构建事务间的关联图,帮助发现频繁项集和关联规则。
例如,在购物篮分析中,可以通过构建商品之间的关联图,发现顾客购买行为中的潜在关联关系,从而实现个性化推荐等功能。
利用图论解决优化问题
图论是一种数学领域,研究的对象是图。
图是由节点和边构成的一种数学结构,可以用来描述不同事物之间的关系。
在实际应用中,图论被广泛应用于解决各种优化问题。
一、最短路径问题
最短路径问题是图论中的经典问题之一。
通过图论的方法,可以很容易地找到两个节点之间最短路径的长度。
这在现实生活中经常用于规划交通路线、通讯网络等方面。
二、最小生成树问题
最小生成树问题是指在一个连通加权图中找到一个权值最小的生成树。
利用图论的方法,可以高效解决这个问题,从而在一些应用中节省资源和成本。
三、网络流问题
网络流问题是指在网络中找到从源点到汇点的最大流量。
通过图论中流网络的模型,可以有效地解决网络流问题,这在交通调度、物流运输等领域有着重要的应用。
四、最大匹配问题
最大匹配问题是指在一个二分图中找到最大的匹配数。
图论提供了有效的算法来解决最大匹配问题,这在稳定婚姻问题、任务分配等方面有着广泛应用。
五、旅行商问题
旅行商问题是一个著名的优化问题,即求解访问所有节点一次并回到起点的最短路径。
通过图论的技术,可以找到最优解,帮助旅行商节省时间和成本。
总的来说,图论在解决优化问题方面有着重要的作用。
通过构建合适的图模型,并应用相关算法,可以高效地解决各种优化问题,为现实生活中的决策提供科学依据。
希望未来能有更多的研究和应用将图论与优化问题相结合,为人类社会的发展贡献力量。
图论的应用摘 要图论从诞生至今已近300年,但很多问题一直没有很好地解决。
随着计算机科学的发展,图论又重新成为了人们研究讨论的热点,图形是一种描述和解决问题直观有效的手段,这里给出图论在现实生活中的一些应用。
关键词:图论;应用;最小生成树;最短行程1 引言图论起源于18世纪。
第一篇图论论文是瑞士数学家欧拉于1736 年发表的“哥尼斯堡的七座桥”。
1847年,克希霍夫为了给出电网络方程而引进了“树”的概念。
1857年,凯莱在计数烷22n n C H 的同分异构物时,也发现了“树”。
哈密尔顿于1859年提出“周游世界”游戏,用图论的术语,就是如何找出一个连通图中的生成圈,近几十年来,由于计算机技术和科学的飞速发展,大大地促进了图论研究和应用,图论的理论和方法已经渗透到物理、化学、通讯科学、建筑学、生物遗传学、心理学、经济学、社会学等学科中。
图论中所谓的“图”是指某类具体事物和这些事物之间的联系。
如果我们用点表示这些具体事物,用连接两点的线段(直的或曲的)表示两个事物的特定的联系,就得到了描述这个“图”的几何形象。
图论为任何一个包含了一种二元关系的离散系统提供了一个数学模型,借助于图论的概念、理论和方法,可以对该模型求解。
哥尼斯堡七桥问题(如图1)就是一个典型的例子。
在哥尼斯堡有七座桥将普莱格尔河中的两个岛及岛与河岸联结起来问题是要从这四块陆地中的任何一块开始通过每一座桥正好一次,再回到起点。
当然可以通过试验去尝试解决这个问题,但该城居民的任何尝试均未成功。
欧拉为了解决这个问题,采用了建立数学模型的方法。
他将每一块陆地用一个点来代替,将每一座桥用连接相应两点的一条线来代替,从而得到一个有四个“点”,七条“线”的“图”。
问题成为从任一点出发一笔画出七条线再回到起点。
欧拉考察了一般一笔画的结构特点,给出了一笔画的一个判定法则:这个图是连通的,且每个点都与偶数线相关联,将这个判定法则应用于七桥问题,得到了“不可能走通”的结果,不但彻底解决了这个问题,而且开创了图论研究的先河。
图1 哥尼斯堡七桥问题2几个有趣的问题1.1 四色问题为了能够迅速地区分一个平面地图或球面地图上的各个国家(假设这些国家在地图上都是连通的),需要用若干种颜色对这些国家着色,使得具有公共边界的两个国家涂染不同的颜色.那么,要保证每张地图都能如此着色,最少需要多少种颜色?这个问题是1850年被一名刚毕业的大学生Francis Guthrie首先提出的,直到1976年,四色问题被美国Illinois大学的K.Appel和W.Haken用计算机证明是正确的,这个证明令数学界震惊,它用了1200多小时,作出100亿个独立的逻辑判断.尽管有了这个机器证明,但它仍然是数学上未解决的问题之一。
1.2 Hamilton问题Hamilton问题是图论中一直悬而未解的一大问题。
它起源于1856年,当时英国数学家Hamilton设计了一种名为周游世界的游戏。
他在一个实心的正十二面体的十二个顶点上标以世界上著名的二十座城市的名字,要求游戏者沿十二面体的棱从一个城市出发,经过每座城市恰好一次,然后返回到出发点,即“绕行世界”。
正十二面体的顶点与棱的关系可以用平面上的图表示,把正十二面体的顶点与棱分别对应图的顶点与边,就得到正十二面体图(如图2)。
图2 正十二面体Peterson图1.3 旅行售货员问题给出城市之间的距离,要求一位推销员从某一城市出发,周游每个城市一次,然后回到出发的城市,并且选的路径最短。
这是一个图论优化问题,最早由美国数学家威特涅于1934年在普林斯顿一次讨论班上提出。
1954年几位美国数学家写了第一篇论文,用线性方程的方法解决了49个城市的旅行售货员问题。
后来也有不少论文讨论这个问题,在理论和应用上都很有价值。
3最小生成树有一个石油公司计划为它拥有的许多存储站设计一个管道连接系统,它共有九个存储站,如果两个存储站之间可以修管道,我们就用一条边连接起来,用一个数表示修这两站之间的管道所需的费用,这样这个公司所有的存储站和可能修管道的情况完全可以通过下面这个图表示。
图3 可能修管道的情况公司设计计划要求:管道网可以把任何两个存储站都连接起来,且装修费用最小.从图论的角度来说,图3是一个连通图,每一个边都被赋予了一个数,通常我们称之为赋权图.我们的目的是确定出另一个连通图,其顶点集与原图的顶点集一样,仅保留原图中的一部分边,通常我们把这样确定的新图称作原图的生成子图,并且使子图的所有边的权之和最小。
我们来简单分析一下子图的属性.首先,我们要找的子图必须是连通的,直观地说子图具有的边应尽量地少,即这个子图不能含有任何回路,因为去掉回路中的任何边都不会影响它的连通性质,我们把不包含回路的生成子图称为原图的生成树。
下面的图(如图4)都是不含回路的连通图,又称为树。
图4 不含回路的连通图(树)很容易看出树中的顶点有两类,一类是度数为1的顶点,称为悬挂点,另一类是度数大于1的顶点,称为割点.一旦去掉割点及与之相联的边,图就不连通了.我们很容易得出这样一些结论:一个具有n个顶点的连通图,(1)连通子图是生成树的充要条件为它具有n-1条边.(2)子图是生成树的充要条件为它有n -1条边且无回路.简述一下(1)和(2)的证明,实际上只需做这样一循环的推理:从一个树即无回路的连通图推出它具有n-1条边,可以用数学归纳法来证明.n=2时结论是显然的.假设对有n个顶点的树结论正确.我们可任取一条边,由于过这条边的两个端点只能有一条边(否则会出现回路),我们可去掉这条边,而把那两个端点看做一个点,这样就得到一个具有k个顶点的树,而它具有k-1条边,所以具有k+1个顶点的树有k条边.若一个仅有n-1条边的连通图有回路,我们可从回路中去掉一条边,并不妨碍其连通性,这样就得到了一个边数少于n-1的具有n个顶点的树,这与上一个结果是矛盾的。
若图不连通,至少它可以分解为两个连通分支,由于它们都无回路,故每一个分支都是树,而它们的边数一定少于n-2条,这与具有n-1条边矛盾.我们开始的问题变成了求权重最小的生成树了,我们简称为最小生成树.下面我们来介绍一个求最小生成树的算法:第一步:我们把所有的边按其权重从小到大排列起来.第二步:先选定第一条边.第三步:边序列中选择下一条边的原则是此边与前面的边全在一起不构成回路.第四步:直至选出n-1条边.这样就得到了一个生成树,关于它一定是最小生成树的证明这里省略.这个算法是1956年由Kruskal提出的又称做Kruskal算法.由于在不出现回路的前提下取权小的边,故又称做“贪婪算法”.下面我们用Kruskal算法讨论本节的例子.第一步:我们按权重从小到大把边排列为:h(90)→g(90)→f(90)→e(100)→a(100)→b(100)→d(100)→i(150)→c(200)→j(200)→l(200)→p(300)→n(300)→m(400)→o(400)→k(500).第二步:确定h为第一条边.第三步:h(90)→g(90)→t(90)→e(100)→a(100)→b(100)→d(100)→i(150).第四步:上面八条边组成了最小生成树.4最短行程问题例1 下面给出的是一个城市(用大写字母表示)和道路(用小写字母表示)的分布图(如图4—6),道路的长度附在道路字母的括弧里.问题是如何确定任意两个城市之间的最短道路?例2 购车策略(美国例子)有一个小公司计划买一辆同一型号的小卡车,他们可以用上一段时间(一年、二年或三年)再把车卖掉,例如:他们今年买了一辆车,用了两年,再卖掉,他们需要用的花费是18000美元,我们可以把从现在起三年购车所需费用用图4—7表示出来.为了理解这个图的含义,再花费14000美元.问题是这个小公司采取怎样的策略,可以使得三年内他们始终有一辆卡车使用而且总的花费最少.(边上加一个箭头是表明一个方向,标志采取的策略是只能从箭头的起始顶点指向终止顶点.在图论中我们称之为定向图.)1959年E.W.Dijkatra提示了解决这一类问题的一种算法.这种算法可以解决从确定的起始点到任何其他点的最短行程.下面我们来介绍这种算法,设G=(V,E)是一个加权连通图.第一步:首先确定起始点,将其放入确定集D.给每一个顶点设定一个权数,若有边连接起点与该点,则把这边权数设定为这点的权数,若没有边连接起点与该点,则设定该点的权重为∞(无穷),而且确定集中起点的权为0,表示与起点的最短行程.每做一步都将把某个顶点加入确定集,并修正所有点的权重.第二步:把权重最小的顶点放入确定集D,其权数仍做为它在确定集中点的权——即是从起点到这一点的最短行程.对每一个没有被列入确定集的点A,我们考虑每一个确定集中的点B,如果有边连接A 与B,这样可以得到B的权与这点连接边的权的和,所有这样的和一定有最小的值,令其为A的新的权数,当然,如果确定集中没有点能有与之连接成边,则A的权仍是无穷.用式子写出应是:A的新权数w(A)为:w(A)=min{w(B)+w(e(B-A)):e(B-A)∈E}其中e(B-A)表示有边e连接B与A点,w(e)表示e的权.w(B)表示起点到确定集点B的最短行程.第三步:反复进行第二步骤就可以不断地扩大确定集,直到所有顶点进入确定集.下面我们分别用 Dijkatra算法分析例1和例2.例1解:第一步:令D={A},w(A)=0,又w(B)=2,w(C)=8,w(D)=1,其余点的权均为无穷.这样的点排成如下序列:D,B,C,E,F,G,I,J,K,F.第二步(1)把D放入确定集D={A,D}(w(D)=1,)w(B)=2,w(C)=8,w(G)=10,其余的点权均为无穷.(2)把B放入确定集D={A,D,B}(w(B)=2),w(E)=3,w(C)=8,w(G)=10,其余的点权均为无穷.(3)把E放入确定集D={A,D,B,E}(w(E)=3),w(I)=5,w(F)=6,w(C)=8,w(G)=10,w(J)=12,其余点的权为无穷.(4)把I放入确定集D ={A,D,B,E,I}(w(I)=5),调整后各点的权如下:w(F)=6,w(C)=7,w(G)=10,w(J)=12,w(L)=14,其余点的权均为无穷.(5)把F放入确定集D={A,D,B,E,I,F}(w(F)=6),调整后各点的权重为w(C)=7,w(G)=10,w(J)=12,w(L)=14,其余点的权为无穷.(6)把C放入确定集D={A,D,B,E,I,F,C}(w(C)=7),调整后各点的权重为w(G)=10,w(J)=12,w(L)=14,w(K)=10;(7)把G放入确定集D={A,D,B,E,I,F,C,G}(w(G)=10),调整后各点的权重为w(K)=11,w(J)=12,w(L)=14;(8)把K放入确定集D={A,D,B,E,I,F,C,G,K}(w(k)=11),调整后各点权重为w(J)=12,w(L)=14;(9)把J放入确定集D={A,D,B,E,I,F,C,G,K,J}(w(J)=12),调整后w(L)=14.(10)D={A,D,B,E,I,F,C,G,K,J,L}.第三步:这样就完成了确定从起点到任何点最短行程的工作.例2解:第一步:把0放入确定集D={0},(w(0)=0).w(1)=10,000,w(2)=18,000,w(3)=34,000.第二步:(1)把1放入确定集D={0,1}(w(1)=10,000),修正后各点的权数为w(2)=18,000,w(3)=34,000;(2)把2放入确定集D ={0,1,2}(w(2)=18,000),修正后:w(3)=32,000.(3)把3放入确定集.第三步:三年最少的花费是32,000,所采取的策略是先买一辆卡车,用两年后卖掉,再买一辆新车,用一年再卖掉,这样的决策是花费最少的.5总结从上面的例子我们可以看出,图论的应用十分广泛,如果我们在学习的过程中能打下坚实的基础,就有能力将图论的思想应用到纷乱复杂的现实问题中去。