从哥尼斯堡的七桥到网络爬虫

从哥尼斯堡的七桥到网络爬虫

引言

  在普鲁士的哥尼斯堡前面是一条河,河上有两个小岛,有七座桥把两岸和小岛连起来。
在这里插入图片描述
当地人提出一个有趣的问题:一个步行者怎么才能不重复,不遗漏地一次性走完七座桥,最后回到出发点。这个问题看上去一目了然,每天有很多人来这边散步并且尝试解决这个问题。1736年欧拉来普鲁士访问,听说了这个问题,于是他空闲的消遣就变为去桥上散步,他解决了这个问题,并为此写了一篇论文,这就是图论的起源。

主要内容

  时间来到20世纪,计算机网络出现了,在这个第二世界里,人们发现网络世界就是一张大的图,网页是图的节点,而超链接(网页上有些地方,你点一下就可以打开一个新的网页,那个就是超链接)就是图的桥。网络爬虫就是运用图的两个遍历,广度遍历BFS(Breadth-first search)以及深度遍历DFS(Depth-first search)来浏览网页。什么是广度遍历,你从一个节点出发,进入所有与它相连的节点里面,都走了一遍,然后接下来去与它相连节点相连的节点再走一遍,直到遍历完整个图。就像石头扔进水里,一圈圈扩散。图2(来自网络,侵删)中的遍历顺序A->C->D->F->B->G->E
在这里插入图片描述
深度遍历呢,你去一个与当前节点相连的节点,然后继续去与当前节点相连的节点,一路向下,直到图的边缘,这个时候你就往回赶,遇到没有去的节点就去一下,都遍历完了,就又往上一层,直到遍历完所有图。图3中的遍历顺序为A->C->B->C->D->C->A->F->G->E
图3
简单点说网络爬虫就两个步骤,遍历->下载->遍历->下载。。。。。。

结尾语

  之前听何积丰老师讲计算机局限性课程的时候,他有说过一句话,我印象很深刻:当前国内在研究上太急功近利了,做什么都要讲有什么用,但是基础学科的研究上不能但从有用上来评价,它现在没有用,或许在将来某一天它就能派上大用场。从图论到网络爬虫就是一个很好的例子,从18世纪初到1993年第一个网络爬虫出来,中间隔了将近300年,在这300年中间,图论是个没有用处的,直到计算机网络出来后,人们才发现图论在网络上是个天生的及其好用的工具,图论又变得极为有用。

题外话

七桥问题的答案:
七桥问题的答案是不可能一次性通过一条路走完七桥回到原点。
为此欧拉提出了一个定理:如果一个图能够从一个顶点出发,每条边不重复地遍历一遍回到这个顶点,那么每一顶点的度必须是偶数(度就是与该顶点连接边的条数)
证明:假如能够遍历图的每一条边各一次,那么对于每个顶点,必然从某条边进去,同时会从另一条边出来,进去和出来的次数是相同的,也就是每个顶点相连的边是成对出现的,即每个顶点的度是偶数。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章