概述
这篇文章主要给大家介绍一下计算机算法中非常重要的一部分——图论,以及它在生活中的应用——网络爬虫。
图论
离散数学是当代数学的一个重要的分支,也是计算机科学的数学基础。它又包括四个分支,而图论便是其中一支,另外三个分别是:数理逻辑、集合论、近代数学。
图论中的图由一些节点和边构成,比如下面这张图 。
在图论中一个很基础的问题就是如何遍历一张图:通过边访问图的边到达图的各个节点,而最出名的遍历问题莫过于哥尼斯堡七桥问题。当时大数学家欧拉来到布鲁士的哥尼斯堡,发现当地人有一个消遣活动,试图将下图中的每座桥恰好走一遍并回到出发原点,但是从来没有人成功过。欧拉证明了这种走法不可能,并就此写了一篇论文,一般便认为这便是图论的开始。
不过,我们所说的遍历一张图没有每条边只能走一次这种约束条件。
而前面提到的爬虫的两种移动策略其实分别对应图论中两种最基本的对图进行遍历的方法:广度优先搜索(Bread-First Search, 简称BFS),深度优先搜索(Depth-First Search,简称DFS)。<