「封面」|一个网络可以用上面的图论来描述,来自Medium
大家好,我是科学羊,这里是数学篇第五季第20篇,今天我们回到数学,简单谈一个数学分支——图论。
图论,起初只是离散数学中的一个分支,如今已成为理解现代世界的一个重要工具,尤其是在计算机算法方面尤为重要!
来,我们带大家一起看一下。
01 图论的起源
原始柯尼斯堡七桥问题
图论的起源可以追溯到18世纪,当时著名的数学家莱昂哈德·欧拉为了解决了一个有趣的挑战——柯尼斯堡七桥问题。
什么是柯尼斯堡七桥问题?
柯尼斯堡七桥问题是一个经典的数学问题,它源自18世纪的普鲁士城市柯尼斯堡(今天的加里宁格勒)。这个问题与城市内的一条河流及其上面的七座桥梁有关。
当时,柯尼斯堡的居民对他们城市里桥梁的布局很感兴趣,发现了一个有趣的挑战:能否穿越每一座桥而不重复走任何一座桥?
比如,简述如下:城市被河流分成四个区域,分别标记为A、B、C和D。
七座桥连接这些区域:
一座桥连接A和B;
两座桥连接A和C;
一座桥连接A和D;
两座桥连接B和C;
一座桥连接C和D;
那么是否可以找到一条路径,使得你可以在不重复走桥的情况下,走过所有的桥?
你可以自己试试,或者带孩子一起看看有无解法。
不过,欧拉在1736年解决了这个问题。
他的方法是将城市和桥梁的布局简化为一个数学结构。
欧拉将每个区域表示为一个点(节点),将每座桥表示为一条线(边)连接这些点。这种图形结构帮助他分析了问题的本质。
欧拉证明了,在柯尼斯堡的桥梁布局下,不可能找到这样一条路径。
他的证明过程如下:
欧拉将每个区域表示为一个节点,每座桥表示为连接节点的边。
他分析了每个节点的度(即连接到该节点的边的数量)。
为了能够在不重复走桥的情况下走遍所有桥,每个节点的度必须是偶数(除了起点和终点,可以是奇数)。
但在柯尼斯堡七桥问题中,所有节点的度都是奇数,这使得问题无解。
看来,这完全是个数学问题!
02 图论的基本概念和计算机算法
图论中有两个基本对象:节点和边。
节点可以看作是一个点(如上图的数字),边则是连接这些点的线。
在图论中,边只能连接两个节点,节点和边的组合构成了一个图。
例如,上面的图定义如下。G = { N,E } ,其中 N = {1,2,3,4,5,6} ,E = {1,2} ,{1,5} ,{2,5} ,{2,3} ,{3,4} ,{4,5} ,{4,6}。第一个集合列出了每个节点的名称,第二个集合列出了一组对,每个对表示这些对中列出的节点之间的一条边。
就像在集合中一样,元素的顺序并不重要,一对节点中的顺序也不重要。
每个节点都有一个度,表示有多少条边连接到该节点。
欧拉通过分析节点的度,证明了在柯尼斯堡桥的布局下,无法实现不重复走桥。为了使路径只走每座桥一次,除了起点和终点外,所有节点必须具有偶数度。
如果我们将中国的城市比作节点,而将连接这些城市的铁路视作边,那么全国的铁路网络就是图论中的图。
图论在生活中是一个抽象的概念或者说是一种工具,计算机科学家们基于图论设计了许多算法,把许多实际问题抽象出来,用图论的方法来解决。
比如在图论中,有一个称为"中国邮差问题"的实际应用,即邮差如何在不重复或最少重复的情况下,把信送到每家每户。
我觉得和送外卖是一个道理!
这是一个实际问题,可以抽象为图论问题——每个家庭是图中的节点,道路是连接节点的边。
另外,关于图论的算法有很多,但最重要的是图的遍历算法,也就是如何从一个节点出发,通过边访问图中的所有节点。
以中国铁路网为例,我们如何从北京出发,访问全国所有的城市?
显然,我们需要尽量避免绕路和重复访问城市。
遍历算法主要有两种。
第一种称为深度优先搜索算法(在计算机领域简称为DFS,即Depth First Search)。
这种方法简单来说就是沿着一条路径一直走到底。
从北京出发,选择一个相连的城市,比如石家庄,作为下一个访问的城市,再从石家庄出发,找到另一个相连的城市,比如济南,然后继续这样走下去,经过南京、上海、杭州等,最后到达深圳。
当无法再前进时,再退回到上一个城市,如广州,看看是否还有未访问的相连城市,比如长沙,然后前往长沙,继续这个过程。
只要图是连通的,最终一定能访问所有城市。
为了避免重复访问或漏掉城市,你需要记录已经访问过的城市,或者在访问过的城市插上小红旗。
为了知道每次回退到哪个城市,你需要用堆栈来管理路径。
第二种方法是广度优先搜索算法(简称BFS,即Breadth First Search)。
从北京出发,先访问所有直接相连的城市,比如天津、济南、石家庄、沈阳和呼和浩特。
然后再从这些城市出发,访问它们相连的城市,依次类推,直到访问所有城市。
这种方法由于尽可能广泛地访问各个城市,被称为广度优先搜索算法。
它可以保证访问所有城市。为了防止走冤枉路,你也需要记录访问过的城市,或者插上小红旗。
为了知道下一轮遍历从哪个城市开始,你需要用队列来管理路径。
另外,铁路是双向通行的,但城市中的一些道路是单向通行的。
图论中,为了区分这两种情况并找到相应的算法,图分为无向图(双向联通)和有向图。在北京,有很多单行线对应的就是有向图。
有人可能会问,城市间的旅行与下载网页有什么关系?关系非常大。如果把一个网页看作图中的节点,超链接看作边,那么整个互联网就是一个有向图。
实际上,当你在一个网页上移动鼠标到那些蓝色带下划线的文字时,会显示出对应的隐藏网址。
当你点击时,浏览器通过这些隐含的网址跳转到相应的网页。自动下载网页的原理就是如此。
03 图论的现代应用
“小世界”网络是一种特殊的图形结构,由邓肯·瓦茨和史蒂文·斯特罗加茨在20世纪90年代首次描述。
这种网络的特点是大多数节点之间没有直接连接,但通过少数节点就可以相互连接。
小世界网络广泛存在于网站链接、食物网、神经元网络等多个领域。
这种网络的一个重要特征是它们有专门的“枢纽”,这些枢纽是重要的节点,有许多边连接到它们。
理解小世界网络的动态行为是当前研究的热门话题。
04 四色定理
另外,四色定理也是图论的另一个重要应用。
20世纪70年代,数学家证明任何地图只需四种颜色即可进行着色,使得相邻区域颜色不同。
这个非直观的结果首次由弗朗西斯·格思里在19世纪提出,并在20世纪70年代通过计算机辅助证明。
数学家使用不同类型的节点来表示每个形状的颜色,通过分析图形结构,证明了四色定理的正确性。
结语
图论是一个引人入胜的数学领域,它不仅帮助我们理解复杂系统,还提供了强有力的工具来解决实际问题。
随着数据和信息的快速增长,图论的重要性也日益增加。
作者:Masir123
来源-微信公众号:科学羊
出处:https://mp.weixin.qq.com/s/bmkrkdE2T2enHu2hOSYKBQ