算法_图

gSpan频繁子图挖掘算法 参考资料:http://www.cs.ucsb.edu/~xyan/papers/gSpan.pdf http://www.cs.ucsb.edu/~xyan/papers/gSpan-short.pdf http://www.jos.org.cn/1000-9825/18/2469.pdf 更多挖掘算法:https://github.com/linyiqun/DataMiningAlgor 阅读详情

图


图由顶点的集合和边的集合组成。表示一些事物或者状态的表达方法。

图1

顶点表示对象。边表示两个对象间的关系。

分类

​ 一个图的顶点对是有序的, 则可以称之为有向图。在对有向图中的顶点对排序后, 便可以在两
个顶点之间绘制一个箭头。 有向图表明了顶点的流向。

图2

​ 边没有指向性的图叫做无向图。

图3

​ 可以为边赋予权值,来量化两个点之间的一些关系。边上带有权重的图叫做带权图。

图4

顶点的度

​ 无向图中顶点的度表示以该顶点作为一个端点的边的数目。

​ 对于有向图,顶点度分为出度和入度。入度表示以该顶点为终点的入边数目,出度是以该顶点为起点的出边数目,该顶点的度等于其入度和出度之和。

不管是无向图还是有向图,顶点数n,边数e和顶点的度数有如下关系:
e = 1 2 Σ i = 1 n D ( V i ) e=\frac{1}{2}\Sigma_{i=1}^{n}{D(V_i)} e=21​Σi=1n​D(Vi​)

相关术语

简单图:在图结构中,若不存在顶点到其自身的边,且同一条边不重复出现,则称这样的图为简单图。

无向完全图:在无向图中,如果任意两个顶点之间都存在边,则称该图为无向完全图。含有n个顶点的无向完全图有n*(n-1)/2条边。

有向完全图:在有向图中,如果任意两个顶点之间都存在方向互为相反的两条弧,则称该图为有向完全图。含有n个顶点的有向完全图有n*(n-1)条边。

对于无向图,如果两个点之间有边连接,则称两个顶点互为邻接点(Adjacent),即两顶点相邻接。

在无向图G中,如果从顶点V1到顶点V2有路径,则称V1和V2是连通的,如果对于图中任意两个顶点Vi和Vj都是连通的,则称G是连通图。

图5

没有圈的连通图叫做树。没有圈的非连通图叫做森林。一棵树的边数等于顶点数减去一。反之,边数等于顶点数减去一的连通图是一棵树。

在有向图G中,如果对于每一对Vi到Vj都存在路径,则称G是强连通图。下图左侧并不是强连通图,右侧是。

图6

没有圈的有向图叫做DAG(有向无环图)。

图的表示

邻接矩阵

邻接矩阵存储方式是用两个数组来表示图。一个一维数组存储图中顶点信息,一个二维数组(称为邻接矩阵)存储图中的边或弧的信息。

无向图

图7

-ABCD
A0101
B1011
C0100
D1100

无向图的邻接矩阵是一个对称矩阵(n阶矩阵的元满足a[i][j]=a[j]i)。

1表示两点间有边存在,0表示两点间没有边存在。

有向图

图8

-ABCD
A0100
B0011
C0100
D1000

网

每条边上带有权的图就叫网。

图9

-ABCD
A02∞∞
B∞073
C∞∞0∞
D4∞∞0

∞表示两点间不可达。

邻接表

图中每个顶点Vi的所有邻接点构成一个线性表,由于邻接点的个数不确定,所以选择用单链表来存储。

图10

图11

深度优先搜索(DFS)

深度优先搜索(DFS)是用于遍历或搜索图数据结构的算法,该算法从根节点开始(图搜索时可选择任意节点作为根节点)沿着每个分支进行搜索,分支搜索结束后在进行回溯。在进入下一节点之前,树的搜索尽可能的加深。
DFS的搜索算法如下(以二叉树为例):

  • 假定根节点(图的任意节点可作为根节点)标记为N,
  • (L) : 递归遍历左子树,并在节点N结束。
  • ®: 递归遍历右子树,并在节点N结束。
  • (N): 访问节点N。

这些步骤可以以任意次序排列(先序遍历 中序遍历 后序遍历)。

例子

POJ 1111.

POJ 1562.

POJ 1753.

POJ 1979.

POJ 2386.

POJ 3194.

广度优先搜索(BFS)

​ 树或图形的访问也可以按照节点所处的级别进行遍历。在每次访问下一层级节点之前,遍历所在高层级的所有节点。BFS从根节点(图的任意节点可作为根节点)出发,在移动到下一节点之前访问所有相同深度水平的相邻节点。

例子

POJ 3984.

POJ 3414.

POJ 2251.

POJ 1426.

【ROS学习】Gazebo+Gmapping算法建图 GMapping是一种用于建立二维地图的概率算法,它是一种基于激光测距仪数据的实时建图方法。GMapping最初是由Giorgio Grisetti等人于2005年提出的,是开源机器人操作系统ROS(Robot Operating System)中的一个常用建图算法。GMapping利用机器人通过激光测距仪获取的传感器数据,如激光束的测量距离和角度信息,来估计机器人在环境中的姿态以及环境的地图。 阅读详情

相关推荐

gSpan 频繁子图挖掘算法的实现

gSpan 是一种高效的频繁子图挖掘算法,参考 http://www.cs.ucsb.edu/~xyan/software/gSpan.htm 。/*  *  gSpan algorithm implemented by coolypf  *  http://blog.youkuaiyun.com/coolypf  */ #define _CRT_SECURE_NO_WARNINGS 1 #inclu

A Fork of Stuffs 2万+

十大经典算法图解(详细版)

希尔排序的思想是采用插入排序的方法,先让数组中任意间隔为 h 的元素有序,刚开始 h 的大小可以是 h = n / 2,接着让 h = n / 4,让 h 一直缩小,当 h = 1 时,也就是此时数组中任意间隔为1的元素有序,此时的数组就是有序的了。从中轴元素那里开始把大的数组切割成两个小的数组(两个数组都不包含中轴元素),接着我们通过递归的方式,让中轴元素左边的数组和右边的数组也重复同样的操作,直到数组的大小为1,此时每个元素都处于有序的位置。由于两个小的数组都是有序的,所以在合并的时候是很快的。

fierce_zhang的博客 4655

海思MIPI屏调试实战:从参数计算到点亮屏幕的完整指南

本文提供了一份海思平台MIPI屏幕调试的完整实战指南。文章以Hi3516DV300调试800x1280分辨率屏幕为例,详细讲解了从参数计算、配置文件修改到最终点亮屏幕的全流程,并分享了常见问题排查与进阶优化技巧,旨在帮助嵌入式开发者高效解决MIPI屏调试难题。

weixin_29190573的博客 736

十大算法(动图讲解)❤️超详细!

您可能感兴趣的文章推荐 画解顺序表 画解链表 画解栈 画解队列 画解哈希表 画解二叉树 画解图 目录 零、算法概述 一、插入排序 二、冒泡...

卢卢在路上 1万+

从外包到转正:一个华为OD亲历者的真实工作体验与避坑指南

本文分享了一位华为OD员工从外包到转正的真实经历与实用建议。通过详细解析华为OD的日常工作、转正核心指标、机试备考技巧及职场突围策略,为读者提供了一份全面的避坑指南。特别针对机试E卷的高频考点和刷题方法,给出了具体的数据分析和实战经验。

weixin_33686714的博客 692

【清华大学软院】15-19年推免试题历年整理

整理的题目为清软预推免机试(外校)硕士机考题目。 年代 题目1 题目2 题目3 2019 质因数分解 二叉搜索树 区间DP(折叠字符串) 2018 日期转换 高精度模拟 区间DP(戳气球) 2017 进制素数 被遗漏的数字 DP(收集苹果) 2016 大数运算 DP DFS 2015 进制素数: http://acm.hdu.edu.cn/showproblem.php?pid=1230 2017年题目(这个是找的最准确的题目): 1题见【链接】 2题见【链接】

云端筑梦师 2254

【数据结构与算法】图

以上就是今天要讲的内容,本文仅仅简单介绍了图论相关简单内容。

m0_62179366的博客 905

伺服电机入门01

编码器输出 旋转信号 , 接收端: 使用ADC 捕捉旋转信号 ,转成数字信号,驱动器得到数字处理, 因为信号量是模拟信号, mcu mpu 等芯片通常内部处理是数字,通过adc 得到数字cpu 才能识别 传输过来的pos 等信息。IPM 芯片示例, IRAM256A 这个芯片已经停产,有换新的,,下面示例来自stmbl 高功率方案,4 步进电机 有全步控制,半步控制 ,微步控制,FOC控制,步进电机也是可以做伺服系统的。以下面几种信号是可以细分,也就是通过细分增加编码器的分辨率,

qq_25160559的博客 969

十大经典算法图解

术语铺垫 什么是稳定排序、原地排序、时间复杂度、空间复杂度,先简单解释一下: 1、稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 仍然在 b 的前面,则为稳定排序。 2、非稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 可能不在 b 的前面,则为非稳定排序。 3、原地排序:原地排序就是指在排序过程中不申请多余的存储空间,只利用原来存储待排数据...

燕鹏 5269

基于LangGraph的智能报告生成平台项目分析

不知道你是否知道或者了解OpenAI and Gemini Deep Research。他们是一种能够根据输入问题进行规划、结合网络搜索获取信息并最终呈现结果的研究工具或技术。那这样research是如何实现的呢?最近刚好看到一个实现类似功能的开源项目: open_deep_search。本文将基于该项目进行代码层面剖析。

u011160113的博客 923

通过PXE的方式实现Ubuntu 24.04 自动安装

之前都是通过PXE来自动化安装Redhat系列的,例如:Rocky9、Rocky10、CentOS7、银河麒麟 Kylin-V10、Kylin-V11、OpenEuler 24.03等。现在安装Ubuntu系列的跟红帽的不太一样,所以在这里介绍下。

邢宇宇的博客 1490

【数据结构】数据结构与算法基础 课程笔记 第六章 图

学习青岛大学王卓老师的数据结构课所做的笔记。

Summerison的博客 978

HyperLynx仿真(一)LineSim简单介绍

可以选择设置信号线与信号线之间默认的距离和信号线与同平面的平面之间的距离,这些设置根据工程师项目上经常使用的情况而设置,也可以选择不设置,在每次仿真时根据需要再对每一个仿真单独设置。仿真属性的设置对话框包含一般设置、 显示颜色设置、LineSim 设置、BoardSim 设置、 层叠默认设置、焊盘类型设置、仿真示波器默认设置、电路仿真器默认设置、电源完整性设置及高级设置。第一次使用HyperLynx软件时需要设置仿真相关环境,包括仿真软件的基本设置、模型库路径设置、仿真控制器控制、单位等。...

小幽余生不加糖 8948

图分割算法 ——概述

先说下写这篇文章的初衷,首先是为了记录我科研的一些笔记,其次呢是我在网上查阅图分割问题的时候,发现很难找到合适的讲解,基本都被图像处理的知识所占据。但并不是每个人都会有时间去查阅论文,所以就写下这篇博客来填补这方面的空白,谢谢诸位看官 一,图分割 定义:指将网络顶点分割为指定规模,指定数量的非重叠群组,并使得群组之间的边数最小 算法背景:实际上在图挖掘领域最早出现的问题就是图分割,当社团发现...

wotkk的博客 2万+

[Dify实战] 做企业内部助手时,最容易被低估的不是提示词,而是权限、状态同步和反馈回写

这篇文章围绕“做企业内部助手时”这个具体问题展开,很多团队做企业内部助手时,最先优化的是提示词,但真正决定系统能不能上线长期跑下去的,往往是权限边界、状态同步和反馈回写闭环。正文会结合Dify拆解节点设计、配置建议和测试样例,补充关键步骤、检查点和常见坑,帮助读者判断第一版该怎么落地,并把经验复用到自己的真实业务场景中。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 68

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

基于图的聚类算法综述(基于图的聚类算法开篇)

基于图的聚类算法综述 第三十二次写博客,本人数学基础不是太好,如果有幸能得到读者指正,感激不尽,希望能借此机会向大家学习。这一篇文章作为基于图的聚类(Figure-based Clustering)算法的开篇,简要介绍了该类算法的相关内容,并为之后的算法详解做铺垫。 如何稀疏化邻近度图   稀疏化邻近度图,即只保留对象与其最近邻之间的连接,采用这种处理方法有利于处理离群点和噪声,还可以基于稀疏...

Ἥλιος 1万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

数据结构与算法——图

图是一种抽象的数据结构,用于表示对象之间的关系。它由顶点和边组成。顶点表示对象,边表示顶点之间的关系。图可以用来解决各种实际问题,例如最短路径、最小生成树、网络分析等。总的来说,图在许多领域中都有广泛的应用,其灵活性和可扩展性使其成为解决复杂问题和处理大规模数据的有力工具。图算法和图数据库的发展也为图的应用提供了更高效和更强大的解决方案。

小田是个程序员的博客欢迎你的到来呀~ 4828

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

图的十大经典算法

图的遍历是指从图中的某一个结点出发,按照某种搜索方法沿着图中的边对图中的所有结点访问一次且仅访问一次。注意到树是一种特殊的图,所以树的遍历实际上也可以看作是一种特殊的图的遍历。图的遍历根据访问结点的顺序,主要分为有两种算法:广度优先搜索(Breadth-First-Search)和深度优先搜索(Depth-First-Search)。 广度优先搜索(BFS) 算法思想 首先访问起始结点v,接着由v...

石中路的博客 2万+

图的常见算法

转自https://www.zybuluo.com/pastqing/note/318392#%E9%82%BB%E6%8E%A5%E8%A1%A8adjacency-matrix 一、图的基本知识 图是节点集合的一个拓扑结构,节点之间通过边相连。图分为有向图和无向图。有向图的边具有指向性,即A - B仅表示由A到B的路径,但不意味着B可以连到A。与之对应的,无向图的每一条边都表示一条双向路...

勤学如春起之苗,不见其增,日有所长! 辍学如磨刀之石,不见其损,日有所亏! 677

算法脑图

算法脑图 算法脑图

技术成就产品 204

图及其与图相关的算法

图及其与图相关的算法

如风暖阳的博客 1229

算法 脑图

这是我的算法脑图。

蓝创精英团队 439

图的常见算法汇总笔记(包括图的DFS,BFS,Dijkstra算法,Floyed算法,Prim算法,Kruskal算法)

图的常见算法汇总笔记 1. 图的概念: 图是一种数据结构,其中结点可以具有零个或多个相邻元素。两个结点之间的连接称为边。 结点也可以称为顶点。如图: 其中: 2. 图的表示方式: 第一种表示方式:二维数组表示(邻接矩阵): 第二种表示方式:链表表示(邻接表): 注意: 我们一般在算法题中采用邻接矩阵的形式存储图的顶点,边的信息 3. 图的实现: 我们这里使用邻接矩阵创建一个简单的图,里面包括图的一些基本的API: 插入一个顶点的方法 添加一条边的方法 获取两个顶点之间的权值的方法 获取边的个数

风小猪的博客 4987

图挖掘算法-gSpan

原文链接:https://blog.youkuaiyun.com/qq_41653753/article/details/79112436 原文链接:https://blog.youkuaiyun.com/weidai00/article/details/85245217 一、基本概念 1、图挖掘 近年来,图挖掘作为,数据挖掘的重要组成部分引起了社会各界的极大关注。图挖掘(Graph Mining)是指利用图模型从海量数据中发现和提起有用知识和信息的过程。通过图挖掘所获取的知识和信息已广泛应用于各种领域,如商务管理、市场分

lili安的博客 6040

图的BFS和DFS算法

要学习图的广度优先遍历和深度优先遍历算法,首先要了解图的基本概念和图的存储方式。以上就是今天要讲的内容,本文简单介绍了图的概念,存储,遍历方法,还有许多补全的余地,后续有空了慢慢补吧。

MDFXL的博客 1261
上一篇: POJ3194(DFS)
下一篇: 设计模式_原型模式
shui2104
博客等级 码龄10年 22粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值