iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >基本的视觉化方法有哪些
  • 706
分享到

基本的视觉化方法有哪些

2024-04-02 19:04:59 706人浏览 八月长安
摘要

这篇文章主要讲解了“基本的视觉化方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“基本的视觉化方法有哪些”吧!首先,图表是什么?图表由一组有限顶点或节

这篇文章主要讲解了“基本的视觉化方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“基本的视觉化方法有哪些”吧!

首先,图表是什么?

图表由一组有限顶点或节点和一组连接这些顶点的边组成,如果两个顶点通过同一条边互相连接,则称之为邻接。下面是一些与图表相关的基本定义,可以参考图中示例。

  • 顺序:图表中的顶点数

  • 大小:图表中的边数

  • 顶点度:入射到顶点的边数

  • 孤立顶点:未连接到图中任何其它顶点的顶点

  • 自循环:从顶点到自身的一条边

  • 有向图:图中所有的边都有方向,来表示起点和终点

  • 无向图:图的边无方向

  • 加权图:图的边有权值

  • 未加权图:图的边无权值

基本的视觉化方法有哪些

图1:图表术语的可视化

1.广度优先搜索

基本的视觉化方法有哪些

图2 :广度优先搜索(BFS)遍历动画

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

图2是一个示例图的BFS遍历的动画,注意一下顶点如何被发现(黄色)和被访问(红色)。

应用:

  • 用于社交网络搜索

  • 用于确定最短路径和最小生成树

  • 被搜索引擎爬网程序用于构建网页索引

  • 用于查找对等网络(如BitTorrent)中的可用邻近节点

2.深度优先搜索

基本的视觉化方法有哪些

图3:为深度优先搜索(DFS)的遍历动画

在深度优先搜索(DFS)中,从某个特定顶点开始,回溯(backtracking)前,沿着每个分支尽可能搜索。DFS中,还需跟踪访问过的顶点。实现DFS时,使用堆栈数据结构来支持回溯。

图3对图2中使用的同一个示例图进行DFS遍历的动画,注意它如何遍历到深度和回溯。

应用:

  • 用于查找两个顶点之间的路径

  • 用于检测图中的循环

  • 用于拓扑排序

  • 用于解决只有一种解决方案的难题(例如迷宫)

3.最短路径

基本的视觉化方法有哪些

图4动画显示了从顶点1到顶点6的最短路径

从一个顶点到另一个顶点的最短路径是图形中的路径,因此应使移动边的权重之和最小。图4显示了一个动画,其中确定了图中顶点1到顶点6的最短路径。

算法

  • Dijkstra的最短路径算法

  • 贝尔曼福特(Bellman–Ford)算法

应用:

  • 用于网络中最小延迟路径问题的解决。

  • 用于在Google或Apple地图等软件中查找一个位置到另一位置的路线。

  • 用于抽象机器中,通过不同状态之间的转换来确定达到某一目标状态的方法。例如,可以用来确定如何用最少走法赢得一场比赛。

4.循环检测

基本的视觉化方法有哪些

图5:一个循环

循环是指图中第一个顶点和最后一个顶点相同的路径。如果从一个顶点出发,沿着一条路径,最后到达起始点,那么这条路径就是一个循环。循环检测是检测这些循环的过程。图5展示了遍历一个循环的动画。

算法:

  • 弗洛伊德循环检测算法

  • 布伦特算法

应用:

  • 用于基于消息的分布式算法

  • 用于使用集群上的分布式处理系统处理大规模图表

  • 用于检测并发系统中的僵局

  • 在加密应用程序中用于确定能够将消息映射到相同加密值消息的密钥

5.最小生成树

基本的视觉化方法有哪些

图6.显示最小生成树的动画

最小生成树是图表边的子集,它连接所有边权值最小和的顶点,不包含任何循环。图6是一个获得最小生成树过程的动画。

算法:

  • 普林演算法

  • 克鲁斯卡尔算法

应用:

  • 用于在计算机网络中构建广播树

  • 用于基于图表的聚类分析

  • 用于图像分割

  • 用于社会地理领域的区域化,将区域划分为相邻区域。

6.强连通分量

基本的视觉化方法有哪些

图7:强连通分量

如果图表中的每个顶点都能通过其他顶点到达,那么这个图就是强连通的。图7包含三个强连接分量,顶点分别用红色、绿色和黄色表示。

算法:

  • Kosaraju算法

  • Tarjan强连通分量算法

应用:

  • 用于计算Dulmage Mendelsohn分解,是二分图表边的一种分类。

  • 用于社交网络中,根据共同爱好,发现并推荐具有密切联系的人。

7.拓扑排序

基本的视觉化方法有哪些

图8:图中顶点的拓扑排序

图表的拓扑排序是对其顶点进行线性排序,因此对于排序中的每条有向边(u,  v),顶点u都在v之前。图8显示了顶点(1、2、3、5、4、6、7、8)的拓扑排序示例。可以看到,顶点5应在顶点2和3之后。同样,顶点6应该在顶点4和5之后。

算法:

  • 卡恩算法

  • 基于深度优先算法

应用:

  • 用于指令调度

  • 用于数据序列化

  • 用于确定要在生成文件中执行的编译任务的顺序

  • 用于解析链接器中的符号依赖关系

8.图着色

基本的视觉化方法有哪些

图9:顶点着色

图着色指的是在保证一定条件下给图的元素分配颜色,顶点着色是最常用的图形着色技术。在顶点着色中,我们尝试用k种颜色给图的顶点着色,任何两个相邻的顶点颜色都不相同。其他着色技术包括边缘着色和面部着色。图的色数是为图着色所需颜色的最小数目。图9显示了用4种颜色为顶点着色。

算法:

  • 使用广度优先搜索或深度优先搜索的算法

  • 贪婪着色

应用:

  • 用于制定时间表

  • 用于分配移动无线电频率

  • 用于建模和求解数独游戏

  • 用于检查图是否为二部图

  • 用于在相邻国家或州的地图上用不同颜色着色

9.最大流量

基本的视觉化方法有哪些

图10:确定最大流量

可以将一个图建模为以边权值作为流量容量的流网络。在最大流量问题中,必须找到能获得最大可能流量速率的流动路径。图10是一个确定网络的最大流量和最终流量值的动画示例。

算法:

  • Ford-Fulkerson算法

  • Edmonds–Karp算法

  • Dinic算法

应用:

  • 用于航空公司调度,安排航班机组人员。

  • 用于图像分割,查找图像中的背景和前景。

  • 用来淘汰那些无法赢得比赛、无法与当前队伍优秀者相匹敌的队员。

10.匹配

基本的视觉化方法有哪些

图11:二部图匹配

图表中的匹配是一组没有共同顶点的边(也就是说,任何两条都没有共同顶点)。如果一个匹配包含尽可能多顶点匹配的边的最大数量,那么这个匹配被称为最大匹配。图11显示了获得二部图的完全匹配动画,该二部图有两组顶点,分别用橙色和蓝色表示。

算法:

  • 霍普克洛夫特-卡普(Hopcroft–Karp)算法

  • 匈牙利(Hungarian)算法

  • 开花算法

应用:

  • 用于为新娘和新郎牵线搭桥(婚姻的稳定问题)

  • 用于确定顶点覆盖率

  • 用于交通理论中解决出行资源配置和优化问题

感谢各位的阅读,以上就是“基本的视觉化方法有哪些”的内容了,经过本文的学习后,相信大家对基本的视觉化方法有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 基本的视觉化方法有哪些

本文链接: https://www.lsjlt.com/news/84610.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 基本的视觉化方法有哪些
    这篇文章主要讲解了“基本的视觉化方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“基本的视觉化方法有哪些”吧!首先,图表是什么图表由一组有限顶点或节点...
    99+
    2022-10-19
  • Java Servlet基本方法有哪些
    这篇文章给大家分享的是有关Java Servlet基本方法有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Java Servlet 开发工具(JSDK)提供了多个软件包,在编写 Servlet 时需要用到这些...
    99+
    2023-06-03
  • Docker的基本操作方法有哪些
    这篇文章主要讲解了“Docker的基本操作方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Docker的基本操作方法有哪些”吧!安装Dockerroot@jaking-virtual...
    99+
    2023-06-27
  • php基本的输出方法有哪些
    这篇文章主要介绍“php基本的输出方法有哪些”,在日常操作中,相信很多人在php基本的输出方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php基本的输出方法有哪些”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-25
  • Typescript的基本使用方法有哪些
    本篇内容主要讲解“Typescript的基本使用方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Typescript的基本使用方法有哪些”吧!超集是集合...
    99+
    2022-10-19
  • vim的基本使用方法有哪些
    本文小编为大家详细介绍“vim的基本使用方法有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“vim的基本使用方法有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Vim(Vi[Improved])编辑器是...
    99+
    2023-06-27
  • LINQ基本操作的方法有哪些
    这篇文章主要讲解了“LINQ基本操作的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“LINQ基本操作的方法有哪些”吧!LINQ基本操作学习1.我首先创建一个表,名字为:userin...
    99+
    2023-06-17
  • Hive的基本使用方法有哪些
    这篇文章主要介绍“Hive的基本使用方法有哪些”,在日常操作中,相信很多人在Hive的基本使用方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Hive的基本使用方法有哪些”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-27
  • MySQL的基本使用方法有哪些
    今天小编给大家分享一下MySQL的基本使用方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。MySQL 是最流行的关系...
    99+
    2023-06-27
  • Git的基本使用方法有哪些
    这篇文章主要介绍了Git的基本使用方法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管...
    99+
    2023-06-27
  • ElasticSearch基本操作方法有哪些
    这篇文章主要讲解了“ElasticSearch基本操作方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ElasticSearch基本操作方法有哪些”吧!索引创建索引  对比...
    99+
    2023-07-04
  • Kafka基本使用方法有哪些
    Kafka的基本使用方法包括以下几个方面:1. 安装和配置:首先需要在服务器上安装Kafka,并进行必要的配置,例如指定监听端口、设...
    99+
    2023-09-13
    Kafka
  • netstat基本使用方法有哪些
    本文小编为大家详细介绍“netstat基本使用方法有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“netstat基本使用方法有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。netstat命令是一个监控T...
    99+
    2023-06-27
  • Git基本使用方法有哪些
    这篇文章主要介绍了Git基本使用方法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。创建版本库$ git clone   ...
    99+
    2023-06-27
  • rsync基本使用方法有哪些
    这篇文章主要讲解了“rsync基本使用方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“rsync基本使用方法有哪些”吧!rsync是可以实现增量备份的工具。配合任务计划,rsync能...
    99+
    2023-06-27
  • Dockerfile基本使用方法有哪些
    本篇内容主要讲解“Dockerfile基本使用方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Dockerfile基本使用方法有哪些”吧!Dockerfile的组成Dockerfile分...
    99+
    2023-06-28
  • SQLite3基本使用方法有哪些
    本文小编为大家详细介绍“SQLite3基本使用方法有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“SQLite3基本使用方法有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、基本语法1.常用指令.op...
    99+
    2023-07-02
  • C#绘图基本方法有哪些
    今天小编给大家分享一下C#绘图基本方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、得到Graphics对象1.O...
    99+
    2023-07-04
  • Python类的基本使用方法有哪些
    1、面向对象类(class):是一种用来描述具有相同属性和方法的对象的集合。类变量:类变量在整个实例化的对象中是公用的。一般定义在类中且在函数体之外。方法:类中的函数数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。方法重写:...
    99+
    2023-05-18
    Python
  • 笔记本电脑的基本使用方法有哪些
    这篇“笔记本电脑的基本使用方法有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“笔记本电脑的基本使用方法有哪些”文章吧。笔...
    99+
    2023-07-01
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作