美文网首页大数据大数据&云计算大数据,机器学习,人工智能
云计算大数据教程之图论算法(图论介绍,图论用法,云计算学习路线,

云计算大数据教程之图论算法(图论介绍,图论用法,云计算学习路线,

作者: 再让你三行代码 | 来源:发表于2019-11-05 10:46 被阅读0次

图论算法在计算机科学中扮演着很重要的角色,它提供了对很多问题都有效的一种简单而系统的建模方式。在黑马程序员的教程中很多问题都可以转化为图论问题,然后用图论的基本算法加以解决。

一笔画问题

图论的起源可以追溯到大数学家欧拉诞生的那个年代。当时哥尼斯堡城有一个著名的七桥问题,就是每座桥恰好走过一遍并回到原出发点,然而没有人成功过。下图是哥尼斯堡的简化图。

这个问题的要求:在穿过每座桥仅一次的情况下穿过这个城市

1.每座桥:意味着所有桥都被穿过

2.只穿过一次:意味着每座桥不能被穿越两次及以上

欧拉没有试图去解决这个问题,而是去证明其不可解决。首先,把每一块连通的陆地作为一个顶点,每一座桥当成图的一条边,那么就可以把哥尼斯堡的七座桥抽象成下面的图。

对于图中的每一个顶点,它相连的边的数量定义为它的度(Degree)

定理:如果一个图能够从一个顶点出发,每条边不重复地遍历回到这个顶点,那么每一顶点的度必须是偶数。

哥尼斯堡抽象的图中,存在多个顶点的度为奇数,所以这个图无法从一个顶点出发,遍历每条边各一次然后回到这个顶点。

图的基本概念

一个图(G)定义为一个偶对(V,E) ,记为G=(V,E) 。其中: V是顶点(Vertex)的非空有限集合,记为V(G);E是无序集V&V的一个子集,记为E(G) ,其元素是图的弧(Arc)。

弧(Arc) :表示两个顶点v和w之间存在一个关系,用顶点偶对<v,w>表示。通常根据图的顶点偶对将图分为有向图和无向图。

有向图(Digraph): 若图G的关系集合E(G)中,顶点偶对<v,w>的v和w之间是有序的,称图G是有向图。

无向图(Undigraph): 若图G的关系集合E(G)中,顶点偶对<v,w>的v和w之间是无序的,称图G是无向图。

图的遍历

图的遍历(Travering Graph):从图的某一顶点出发,访遍图中的其余顶点,且每个顶点仅被访问一次。图的遍历算法是各种图的操作的基础,有深度优先搜索算法和广度优先搜索算法。采用的数据结构是(正)邻接链表。

广度优先搜索算法

广度优先搜索(Breadth-First Search,简称BFS)就像水波一样逐渐向外扩展搜索,它先要尽可能“广”地访问每个节点所直接连接的其他节点。

例如从A出发,先访问直接和A相连的节点B和C,然后看看有哪些节点和已经访问过的节点相连,如D和E与B相连,F、G和H与C相连,然后访问D、E等节点,直到把所有节点都访问过一遍为止。

深度优先搜索算法

深度优先搜索(Depth-First Search,简称DFS)就像一条路走到黑的搜索,它先要尽可能“深”地访问每个节点。

例如从A出发,随便找一个相连的节点,比如B,然后从B出发到下一个节点,比如E,再从E出发到下一个节点I,直到找不到更远的节点,在往回找,看看中间是否有尚未访问的节点,如此也可以访问所有的节点。

深度优先搜索算法和广度优先搜索算法都可以保证访问到全部节点,但是不论采用哪种方法,都应该用一个小本本记录已经访问过的节点,避免同一个节点访问多次获这漏掉某个节点,这个小本本就是邻接链表。这些内容总结是通过黑马程序员的教程学习的来的,而且他们的教程是免费的,需要学习大数据资源的可以看下参考视频。

云计算大数据学习教程资源(适合有java基础)

相关文章

  • 云计算大数据教程之图论算法(图论介绍,图论用法,云计算学习路线,

    图论算法在计算机科学中扮演着很重要的角色,它提供了对很多问题都有效的一种简单而系统的建模方式。在黑马程序员的教程中...

  • 1 schedule to represent a parall

    用图论里面的有向无圈图表示并行计算的算法。 每个节点都有计算任务,分配计算资源,都有不可逆的时刻属性。 计算复杂度...

  • 《宇宙猜想》目录

    廿八学会 - 《宇宙图论》只是想将一切看得更清晰些(微信公众号:宇宙猜想) 《宇宙图论》目录 大目录 一、宇宙图论...

  • <<数学之美>> part5

    摘要: [图论] [网络爬虫] [图的遍历] 图论 说到图论,必须要提的就是KonigsBerg七桥问题,简单说就...

  • 2020-04-03

    一起学习图论 ​最近在学习图论,所以打算写一下图论的浅显概念。 一、起源 普瑞格尔河从古城哥尼斯堡市中心流过,河上...

  • 图论算法

    图是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为,V是图G中顶点的集合,E是图G中边的集合。图分为无向图...

  • 图论算法

    一、并查集 并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定...

  • 图论——A*算法

    距离估算方法参考文章 A*算法使用在游戏中,自动寻路。将游戏地图抽象成一个很大的矩阵,起始点和终止点的位置坐标已知...

  • 图论算法

    1. 图的表示:邻接矩阵和邻接表 邻接矩阵:大小为|V|的二维数组,对于每条边(u, v),置A[u][v]=1或...

  • [算法] 图论

    图的表示 邻接矩阵int G [maxv][maxv]或 G数组元素存储连接与否...

网友评论

    本文标题:云计算大数据教程之图论算法(图论介绍,图论用法,云计算学习路线,

    本文链接:https://www.haomeiwen.com/subject/tthsbctx.html