有趣的七桥问题,全面介绍图论及其应用.docx

有趣的七桥问题,全面介绍图论及其应用.docx

  1. 1、本文档共44页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
有趣的七桥问题,全面介绍图论及其应用 图论是计算机科学中最重要、最有趣的领域之一,同时 也是最容易被误解的。本长文从图论最基础的七桥问题开 始,进而结合推特与 Facebook 实例解释无向图与有向图。 此外,本文还是用大量的实例解释表征图、搜索树、哈希表 等关键概念。最后本文描述了基于深度的搜索和基于广度的 搜索等十分流行的图算法。 >>>> 理解和使用图帮助我们成为 更好的程序员。用图思考帮助我们成为最好的,至少我们应 该那么思考。 图是很多节点 V 和边 E 的集合, 即可以表示 为有序对 G=(V, E)。尽管尝试研究过图论,也实现了一些算 法,但是我还是非常困惑,因为它实在太无聊了。事实上, 理解一件事物的最佳方式是理解其应用。我们将展示图论的 多个应用,最重要的是,有很多插图。七桥问题让我们首先 从《图论的起源》中的「柯尼斯堡( K?nigsberg )的七座桥」 开始。在加里宁格勒( Kaliningrad )有七座桥,连接着由普 雷戈里亚(Pregolya)河分割而成的两个岛屿和两大陆地。 在 18 世纪,这里被称为柯尼斯堡,隶属普鲁士,这一区域 有很多桥。 当时,有一个与柯尼斯堡的桥相关的脑筋急转弯: 如何只穿过桥一次而穿过整个城市。下图为柯尼斯堡七座桥 的简化图。你可以尝试一下,在穿过每座桥仅一次的情况下 穿过这个城市。每座桥,意味着所有桥都被穿过;只穿过一 次,意味着每座桥不能被穿越两次及以上。如果你对这一问 题有所了解,就知道这不可能。 Leonhard Euler 有时候,放 弃这一问题是合理的。这就是 Leonhard Euler 的解决方法, 他没有试图解决这一问题,而是证明其不可解决。让我们试 着去理解 Euler 的内在想法, 做到像 Euler 一样思考。 首先 我们从下图开始。图中有四块彼此分隔的区域,两个岛屿和 两块陆地,以及七座桥。探讨每一区域的桥数是否有一定模 式很有趣。每块区域的桥数如图所示,每块区域的桥数皆为 奇数。如果你只能穿过桥一次,区域有两座桥,那么你就可 以进入并离开该区域。有两座桥的区域的示例通过图示很容 易发现,如果你通过一座桥进入一个区域,那么你也要通过 第二座桥离开它。但是当第三座桥出现,则无法只穿过桥一 次而离开。所以对于一块区域,当桥数为偶时,则可以每座 桥只穿过一次而离开;当桥数为奇时,则不能。请牢记。 让我们再添加一座新桥,如下图所示,看看其是否能解决问 题。注意添加的新桥 现在我们有两个偶数和两个奇数。让我们在添加新桥的图上 画一条新路线。我们已经看到了桥的奇偶数是重要的。这里 有个问题:桥的数量解决问题了吗?难道这个数不应该一直 是偶数吗?后来发现不是的。这就是 Euler 做的,他发现了 一个显示桥数量很重要的办法。更有意思的事,有奇数个连 接点的「陆地」也很重要。这时候 Euler 开始把陆地和桥转 化成我们看得懂的图。下面是一幅表示了哥尼斯堡七桥 (K?nigsberg bridges )的图(注意:我们「临时」加的桥不 在这里):抽象化七桥问题问题的泛化和提取是需要注意的。 当你解决一个特定问题时,最重要的是为类似的问题概括答 案。在这个实际问题里, Euler 的任务是泛化过桥问题从而 在将来可以解决类似的问题。比如:对于世界上所有的桥。 可视化也可以帮助我们从另一个角度看问题,如下面的图也 全是七桥问题的抽象:所以,可视化图是解决该问题的好选 择,因此我们需要去找出哥尼斯堡七桥问题是怎样被这张图 解决的。注意从圈里面向外出来的线。因此我们命名圈为节 点(或节点) ,连接他们的线为边。你也许看到了字母表达 法, V 是节点( vertex), E 是边( edge)。 下一个重要的事是所谓节点自由度 (Degree),即连接到节点 的边数量。在我们上面的例子里,连接陆地和桥的边的数量 可以被表达成节点的自由度。在 Euler 的努力下,他证明了 在图上(城市里)每次只走过一条边(桥)并且走过每一条 边是严格取决于节点自由度。由这样的边组成的路径被叫做 Euler 路径( Euler path) , Euler 路径的长度就是边的数量。 有限无向图 G(V,E) 的 Euler 路径是指 G 的每一个边都只 出现一次的路径。如果 G 有一条 Euler 路径,它就被称之 Euler 图。[注释 1]定理:有且仅有两个确定的节点存在奇数 自由度,其它的节点都有偶数自由度,那么该有限无向图为 Euler 图。【1】左图:有两个节点有奇数自由度的图像。右 图:所有节点都有奇数自由度。首先,让我们分清楚上面定 理和理论中的新名词。有限图( Finite graph )是指有限数量 的边和节点的图。图可以为有向的或无向的,这也是图非常 有趣的性质。你肯定

文档评论(0)

shidaihuayuan + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档