有哪些图形算法

发布时间:2021-10-26 15:24:42 作者:iii
来源:亿速云 阅读:148

本篇内容介绍了“有哪些图形算法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

什么是图?

一个图由一组有限的顶点或节点以及一组连接这些顶点的边组成。 如果两个顶点通过同一边彼此连接,则它们称为相邻顶点。

下面给出一些与图有关的基本定义。 您可以参考图1的示例。

有哪些图形算法

> Fig 1. Visualization of Terminology of Graphs (Image by Author)

1.广度优先搜索

有哪些图形算法

> Fig 2. Animation of BFS traversal of a graph (Image by Author)

遍历或搜索是可以在图形上执行的基本操作之一。 在广度优先搜索(BFS)中,我们从一个特定的顶点开始,并在当前深度探索其所有邻居,然后再进入下一级的顶点。  与树不同,图可以包含循环(第一个顶点和最后一个顶点相同的路径)。 因此,我们必须跟踪访问的顶点。 在实现BFS时,我们使用队列数据结构。

图2表示示例图的BFS遍历的动画。 注意如何发现顶点(黄色)并访问顶点(红色)。

应用领域

2.深度优先搜索

有哪些图形算法

> Fig 3. Animation of DFS traversal of a graph (Image by Author)

在深度优先搜索(DFS)中,我们从特定的顶点开始,并在回溯(回溯)之前沿每个分支进行尽可能的探索。 在DFS中,我们还必须跟踪访问的顶点。  在实现DFS时,我们使用堆栈数据结构来支持回溯。

图3表示与图2相同的示例图的DFS遍历的动画。请注意,它如何遍历深度和回溯。

应用领域

3.最短路径

有哪些图形算法

> Fig 4. Animation showing the shortest path from vertex 1 to vertex 6  (Image by Author)

从一个顶点到另一个顶点的最短路径是图形中的一条路径,因此应移动的边的权重之和最小。

图4显示了一个动画,其中确定了图形中从顶点1到顶点6的最短路径。

演算法

应用领域

有哪些图形算法

> Image by Daniel Dino-Slofer from Pixabay

4.循环检测

有哪些图形算法

> Fig 5. A cycle (Image by Author)

循环是图形中的第一个顶点和最后一个顶点相同的路径。 如果我们从一个顶点开始,沿着一条路径行进,然后在起始顶点处结束,那么这条路径就是一个循环。  循环检测是检测这些循环的过程。 图5显示了遍历一个循环的动画。

演算法

应用领域

5.最小生成树

有哪些图形算法

> Fig 6. Animation showing a minimum spanning tree (Image by Author)

最小生成树是图的边缘的子集,该图以最小的边权重之和连接所有顶点,并且不包含循环。

图6是一个动画,显示了获取最小生成树的过程。

演算法

应用领域

6.牢固连接的组件

有哪些图形算法

> Fig 7. Strongly connected components (Image by Author)

如果图中的每个顶点均可从其他每个顶点到达,则称该图是牢固连接的。

图7显示了一个示例图,其中包含三个具有红色,绿色和黄色的顶点的牢固连接的组件。

演算法

应用领域

有哪些图形算法

> Image by Gerd Altmann from Pixabay

7.拓扑排序

有哪些图形算法

> Fig 8. A topological ordering of vertices in a graph (Image by  Author)

图的拓扑排序是其顶点的线性排序,因此对于排序中的每个有向边(u,v),顶点u都位于v之前。

图8显示了顶点(1、2、3、5、4、6、7、8)的拓扑顺序的示例。 您可以看到顶点5应该位于顶点2和3之后。类似地,顶点6应该位于顶点4和5之后。

演算法

应用领域

8.图形着色

有哪些图形算法

> Fig 9. Vertex colouring (Image by Author)

图形着色可在确保某些条件的同时为图形元素分配颜色。 顶点着色是最常用的图形着色技术。  在顶点着色中,我们尝试使用k种颜色为图形的顶点着色,并且任何两个相邻的顶点都不应具有相同的颜色。 其他着色技术包括边缘着色和面部着色。

图的色数是为图着色所需的最少颜色数。

图9显示了使用4种颜色的示例图的顶点着色。

演算法

应用领域

有哪些图形算法

> Image by TheAndrasBarta from Pixabay

9.最大流量

有哪些图形算法

> Fig 10. Determining the maximum flow (Image by Author)

我们可以将图建模为以边权重为流量的流量网络。 在最大流量问题中,我们必须找到一条可以获得最大可能流量的流路。

图10显示了确定网络的最大流量并确定最终流量值的动画示例。

演算法

应用领域

10.匹配

有哪些图形算法

> Fig 11. Matching of a bipartite graph (Image by Author)

图中的匹配项是一组没有共同顶点的边(即,没有两个边共享共同的顶点)。 如果匹配包含尽可能多的与尽可能多的顶点匹配的边,则该匹配称为最大匹配。

图11显示了获得二部图与橙色和蓝色表示的两组顶点的完全匹配的动画。

演算法

应用领域

“有哪些图形算法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

推荐阅读:
  1. 虚拟主机有么有涨价
  2. 域名有哪些

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:如何理解https与抓包

下一篇:Kubernetes上对应用程序进行故障排除的技巧有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》