图结构与图算法综述

2023-11-06

图结构与图算法综述

图结构以及图算法:
无向图、有向图和网络能运用很多常用的图算法。这些算法包括:各种遍历算法(这些遍历类似于树的遍历),寻找最短路径的算法,寻找网络中最低代价路径的算法,回答一些简单相关问题(例如,图是否是连通的,图中两个顶点间的最短路径是什么,等等)的算法

一、 图的遍历:
图的遍历是指从图中的任一顶点出发,对图中的所有顶点访问一次且只访问一次。图的遍历操作是图的一种基本操作,图的许多操作都建立在遍历操作的基础之上。 [3]
由于图中节点之间的关系是任意的,所以图的遍历要比树的遍历复杂,主要表现在以下四个方面:
(1)在图结构中,没有一个明显的首结点,图中任意一个顶点都可作为第一个被访问的结点,所以要提供首结点。
(2) 在非连通图中,从一个顶点出发,只能够访问它所在的连通分量上的所有顶点,因此,还需考虑如何选取下一个出发点,以访问图中其余的连通分量。
(3)在图结构中,可能有回路存在,那么一个顶点被访问之后,有可能沿回路又回到该顶点,在访问之前,需要判断结点是否已经被访问过。
(4)在图结构中,一个顶点可以和其它多个顶点相连,当这样的顶点访问过后,存在如何选取下一个要访问的顶点的问题。
因此,在遍历图时,为保证图中各顶点在遍历的过程中访问且仅一次,需要为每个顶点设计一个访问标记,设置一个数组,用于标示图中每个顶点被访问过,它的初始值全部为0,表示顶点均未被访问过;某个顶点被访问后,将相应访问标志数组中的值设为1,以表示该顶点已经被访问过。
通常,图的遍历有两种:
  (1)深度优先遍历搜索;
(2)广度优先遍历搜索。

二、 最小生成树
对于有n个顶点的无向连通图,至少有n-1条边,而生成树恰好有n-1条边,所以生成树是图的极小连通子图。如果无向连通图是一个网,那么它的所有生成树中必有一棵边的权值总和最小的生成树,称这颗生成树为最小生成树。
最小生成树可以用普里姆算法或克鲁斯卡尔算法求出

三 、最短路径
1.从一个源点到其它各点的最短路径,可使用迪杰斯特拉算法来求最短路径。
2.每一对顶点之间的最短路径,可使用弗洛伊德算法来求解。

四、 应用场景
优化管道
用来解决传输水、油或其它液体等实际问题的方法。如果管道的分发点代表图中顶点,连接这些分发点的管道作为图的边,并且其代价由图中边的代价决定,那么最小生成树提供了一个最好的方法来布置一个可以连接所有分发点的管道模型。
路由表
在互联网中,路由器利用路由表直接寻址转发数据。路由器存在的目的是将数据传送到离目的更近的地方。在某些路由过程中,路由器会周期性的计算它到另一个路由器的最短路径,这样它们就知道接下来将数据发送到哪个目的地址是最佳方案。
快递服务
它是一种通常需要访问很多地方以取包裹和发包裹的服务。如果解决了旅行商问题,就能过为车辆指明一条最有效的路径,每个地址只能访问一次,并最终回到其起始点。
通信网络
网络包含许多不同类型的设备,包括电话网、中继站、卫星系统等,所有这些设备都必须放置于最优的位置。用带权图建模网络,并通过计算最小生成树来找到最优的方案。
航路选择
这是一个对航空公司和空中交通管制机构很重要的优化问题。通常飞机不能从一个地方直接飞到另一个地方。所以,他们在空中建立航线或高速航道,这些航道同时考虑了风速、机票的费用和空中交通管制的限制。那么,考虑了所有以上的这些因素后,两地之间的最佳航线就是图中权值最小的路径。
闭合运输系统
在这种系统中,运输车或送货车要多次访问某个地点。这样的系统多用于工厂中货物传递或仓库中的储货搬运。解决旅行商问题可以为此提供最佳的路径解决方案。
有线电路板
电子制造业中的一个优化问题。通常,使电路板上一些组件的引脚相互之间连接起来是必要的。如果每个引脚代表图中的一个顶点,其连线作为边,且边的权由连线的数量决定。那么最小生成树能提供一种连接引脚的最优方法。
交通监控
观察交通流量的变化,并以此变化来确定城市中两点之间最佳路线的过程。为了避免过多的交通延误,可以使用一个带权图来对交通流量建模,然后对寻找路口到路口间流量最小的路径。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

图结构与图算法综述 的相关文章

随机推荐

  • [Leetcode] 373. 查找和最小的 K 对数字

    373 查找和最小的 K 对数字 给定两个以 升序排列 的整数数组 nums1 和 nums2 以及一个整数 k 定义一对值 u v 其中第一个元素来自 nums1 第二个元素来自 nums2 请找到和最小的 k 个数对 u1 v1 u2
  • 保持websocket长时间连接永不断开

    1 定期发送心跳包 ping pong 客户端和服务器端都需要定期发送ping消息 并相应得到pong消息 以确保连接仍然正常 如果超过一定时间没收到pong 需要主动关闭连接 JS客户端代码 定期发送ping setInterval gt
  • python的安装及环境配置

    1 python解释器的安装 进入官网 https www python org 然后点击All releases查看所有版本再点击自己需要的版本 这里选择的是3 11 4版本 然后向下翻找到3 11 4 是 64 bit 位的下载即可 安
  • iconfont unicode使用步骤

    第一步 拷贝项目下面生成的 font face font face font family iconfont src url xxxxxxxxxxxxxx format xxxx 第二步 定义使用 iconfont 的样式 iconfont
  • python sys.argv[]用法

    sys argv 是用来获取命令行参数的 sys argv 0 表示代码本身文件路径 所以参数从1开始 以下两个例子说明 1 使用sys argv 的一简单实例 以下是sample1 py文件 import sys os print sys
  • Android C2DM----客户端

    一 基础知识 在前一部分中 我们从整体上快速介绍并实现了下Android C2DM的Push功能 在接下来的部分里 我们先来回顾一下C2DM相关的整体上的知识 然后具体介绍说明实现的过程 在前面的C2DM框架说明中 我们已经知道 要实现An
  • 认识设计组件帮助测试,以提高产品用户体验

    一 控制元素 1 活动指示器 应与背景想协调 用于持续时间不明的进程 单一元素不显示 大于1个显示 2 加载控件 同一个专区页面 加载样式统一 3 页码控制器 原点最好控制在5点内 左右滑动 点击原点可切换 4 刷新控件 下拉刷新 反馈内容
  • ftp上传文件到华为云服务器,如何上传ftp文件到云服务器

    如何上传ftp文件到云服务器 内容精选 换一换 华为云帮助中心 为用户提供产品简介 价格说明 购买指南 用户指南 API参考 最佳实践 常见问题 视频帮助等技术文档 帮助您快速上手使用华为云服务 华为云帮助中心 为用户提供产品简介 价格说明
  • Word中关闭EndNote自动更新格式

    问题 我们在用Endnote和Word协作撰写论文时 有时需要在Word中修改一些细小的参考文献格式 但是可能存在刚修改完 EndNote就自动检测到修改 并更新设置 回到了修改前的样子 解决方案 我们只需要在Word中将EndNote插件
  • Inno Setup入门(二十一)——Inno Setup类参考(7)

    复选框 复选框 CheckBox 用于多个并不互斥的几个选项中作出一个或者多选择 例如字体可以有粗体 斜体和下划线 这三种状态可以任意组合 像这样的选项可以采用复选框实现 Pascal脚本中对应的类是TcheckBox 其定义如下 lt x
  • char*转LPCWSTR的两种方法

    char 转LPCWSTR的两种方法 MultiByteToWideChar mbstowcs MultiByteToWideChar 将char 类型转换为LPCWSTR类型可以使用MultiByteToWideChar函数 这个函数可以
  • min_sample_split 和min_sample_leaf区别

    所以基本上 min sample split是分割所需的最小样本数 例如 如果min sample split 6并且节点中有4个样本 则不会发生拆分 不管熵是多少 在 另一方面 min sample leaf基本上是叶节点所需的最小样本数
  • 【经典买点】MACD指标的八种买入形态图解

    MACD指标中的DIF和MACD DIF和DEA两线 按照其金叉时在零轴上 下的位置 和金叉前是否发生过死叉 死叉发生的位置 有八种形态图形 它们分别是 佛手向上 小鸭出水 漫步青云 天鹅展翅 空中缆绳 空中缆车 海底电缆和海底捞月 本文转
  • Linux之你容易忽略的计算机组成知识

    来自鸟哥的私房菜 1 南北桥 整个主板上面最重要的就是芯片组了 而芯片组通常又分为两个网桥来控制各组件的沟通 分别是 1 北桥 负责链接速度较快的 CPU 主存储器不显示适配器等组件 2 南桥 负责连接速度较慢的周边接口 包括硬盘 USB
  • 7-52 两个有序链表序列的交集 (20 分)(思路加详解尾插法)come Boby!

    一 题目 已知两个非降序链表序列S1与S2 设计函数构造出S1与S2的交集新链表S3 输入格式 输入分两行 分别在每行给出由若干个正整数构成的非降序序列 用 1表示序列的结尾 1不属于这个序列 数字用空格间隔 输出格式 在一行中输出两个输入
  • 浅谈5G 与4G的区别

    5G 顺势而生 应用广泛 包含诸多的进步 但未来依然可期 期望6G 7G 8G等等 前提 了解5G 技术 有必要了解一下 1G 2G 2 5G 3G 4G技术 1G 到4G之间的技术我们称之为蜂窝移动网路系统 正所谓长江后浪推前浪 一代更比
  • sql-labs 29 waf 绕过参数污染

    HTTP参数污染 HTTP Parameter Pollution 攻击者通过在HTTP请求中插入特定的参数来发起攻击 如果Web应用中存在这样的漏洞 可以被攻击者利用来进行客户端或者服务器端的攻击 waf服务器 tomcat 只解析重复参
  • 前端自适应布局

    在前端开发中 我们不可避免要面临适配问题 本文将介绍几种适配方式 一 px和em 1 1 px 1 2 em 二 rem 2 1 rem原理 2 2 rem如何计算的 2 3 rem使用 三 使用插件px2rem转换 3 1 原理和优点 3
  • MySQL笔记(五)使用python调用数据库进行操作

    python 访问数据库流程 在pycharm中下载pymysql 打开数据库视图 相当去navicat 设置数据库 使用python对数据库进行操作 Python2中使用的是MySQLdb模块 from pymysql import de
  • 图结构与图算法综述

    图结构与图算法综述 图结构以及图算法 无向图 有向图和网络能运用很多常用的图算法 这些算法包括 各种遍历算法 这些遍历类似于树的遍历 寻找最短路径的算法 寻找网络中最低代价路径的算法 回答一些简单相关问题 例如 图是否是连通的 图中两个顶点