【图数据挖掘】— 子图同构问题、单射函数和双射函数、同构(isomorphic)和同态(homomorphism)

news2024/10/6 16:29:57

子图同构问题

子图同构(Subgraph Isomorphism)是指在图论中,两个图之间是否存在一种关系,使得其中一个图的顶点集合和边集合可以通过对应的方式映射到另一个图的顶点集合和边集合上,且保持原来的边和顶点的关系不变。

具体来说,给定两个图 G = ( V G , E G ) G=(V_G,E_G) G=(VG,EG) H = ( V H , E H ) H=(V_H,E_H) H=(VH,EH),若存在一种从 G G G H H H的映射 ϕ : V G → V H \phi:V_G\rightarrow V_H ϕ:VGVH,满足:

对于 V G V_G VG中的任意两个不同的顶点 v i v_i vi v j v_j vj,如果在 E G E_G EG中有边连接它们,那么在 E H E_H EH ϕ ( v i ) \phi(v_i) ϕ(vi) ϕ ( v j ) \phi(v_j) ϕ(vj)也必须有一条边连接;

对于 V H V_H VH中的任意两个不同的顶点 v i ′ v'_i vi v j ′ v'_j vj,如果在 E H E_H EH中有边连接它们,那么在 E G E_G EG中存在 v i v_i vi v j v_j vj,满足 ϕ ( v i ) = v i ′ \phi(v_i)=v'_i ϕ(vi)=vi ϕ ( v j ) = v j ′ \phi(v_j)=v'_j ϕ(vj)=vj,且在 E G E_G EG中也有边连接 v i v_i vi v j v_j vj

如果这样的映射 ϕ \phi ϕ存在,则称图 G G G是图 H H H的子图,并称 ϕ \phi ϕ为从 G G G H H H的子图同构映射。


这左图与右图子图同构
在这里插入图片描述

存在如下映射关系:
在这里插入图片描述
M A , M B MA, M B MA,MB分别表示左图A,和右图B的对应的邻接矩阵,其中 M A [ i ] [ j ] = 1 MA[i][j] = 1 MA[i][j]=1表示顶点 i i i j j j存在一条边, M A [ i ] [ j ] = 0 MA[i][j] = 0 MA[i][j]=0表示无边

M ′ M' M表示映射从 M A M A MA M B M B MB的映射矩阵, M [ i ] [ j ] = 1 M [i][j] = 1 M[i][j]=1表示A中第 i i i个顶点 v i vi vi对应到 M B M B MB中的第 j j j个顶点,否则为 0 0 0表示没有对应

在这里插入图片描述


img

上图是一个图同构的例子,顶点之间并没有颜色区分,为了更好地看出顶点间的映射关系,加上了颜色。

子图同构在图形识别、化学结构分析、计算机视觉、网络安全等领域都有广泛应用。但是在实际问题中,子图同构问题往往是 NP 难问题,因此需要采用各种方法进行求解。

单射函数和双射函数

单射函数和双射函数都是函数的特殊类型。

单射函数(injective function),也称为一对一函数,是指一个函数f:A→B,其中任意一个B中的元素b,都最多只对应一个A中的元素a,即对于任意的b∈B,都有至多一个a∈A,使得f(a)=b。

双射函数(bijective function),也称为一一对应函数,是指一个函数f:A→B,其中A和B是两个集合,满足下面两个条件:

对于任意的 a ∈ A a∈A aA,都存在一个 b ∈ B b∈B bB,使得 f ( a ) = b f(a)=b f(a)=b
对于任意的 b ∈ B b∈B bB,都存在一个 a ∈ A a∈A aA,使得 f ( a ) = b f(a)=b f(a)=b

换言之,双射函数是一种既是单射函数又是满射函数的函数。

区别在于,单射函数保证了每个B中的元素最多只对应一个A中的元素,但不保证每个B中的元素都有对应的A中的元素;而双射函数则保证了每个B中的元素都有对应的A中的元素,并且每个B中的元素最多只对应一个A中的元素。

请添加图片描述

同构(isomorphic)和同态(homomorphism)

简单来讲,对于两个不带标签的无向图,假设 G 1 = ( E 1 , V 1 ) , G 2 = ( E 2 , V 2 ) G1=(E1,V1),G2=(E2,V2) G1=(E1,V1),G2=(E2,V2),如果存在一种映射关系 M M M ,使得 M ( v 1 ) ∈ G 2 , ( M ( v 1 ) , M ( v 1 ′ ) ) ∈ G 2 M(v1)∈G2,(M(v1),M(v1′))∈G2 M(v1)G2,(M(v1),M(v1′))G2,对于每个 v 1 , v 1 ′ ∈ G 1 v1,v1′∈G1 v1,v1′G1,那么图同态;若 M M M是一个单射函数,则 G 1 , G 2 G1,G2 G1,G2同构。该定义可以扩充到其他更复杂类型的图中。

因此,同构必定是同态的。

请添加图片描述

对于上面的图,是一个同态图但是不是同构图。

因为存在这样一个映射函数f满足: f ( a ) = x , f ( b ) = y , f ( c ) = z , f ( d ) = x , f ( e ) = y f(a)=x,f(b)=y,f(c)=z,f(d)=x,f(e)= y f(a)=x,f(b)=y,f(c)=z,f(d)=x,f(e)=y。显然映射函数f不是单射函数,所以这两个图同态但不同构。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/418243.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何设计一个安全的对外接口?

对外接口安全措施的作用主要体现在两个方面,一方面是如何保证数据在传输过程中的安全性,另一方面是数据已经到达服务器端,服务器端如何识别数据。 1. 数据加密 数据在传输过程中是很容易被抓包的,如果直接传输,数据可…

elasticsearch 核心概念

1.近实时(Near Real Time,NRT) elasticsearch 是一个近实时的搜索和分析平台,这意味着从索引文档到可搜索文档都会有一段微小的延迟(通常是1s以内)。这种延迟主要是因为 elasticsearch 需要进行数据刷新和索引更新。 …

远程代码执行渗透与防御

远程代码执行渗透与防御1.简介2.PHP RCE常见函数3.靶场练习4.防御姿势1.简介 远程代码执行漏洞又叫命令注入漏洞 命令注入是一种攻击,其目标是通过易受攻击的应用程序在主机操作系统上执行任意命令。 当应用程序将不安全的用户提供的数据(表单、cookie…

jQuery 基础入门速成上篇

jQuery 是目前使用最广泛的 javascript 函数库。提到 jQuery 你可能知道这句英文 : ———— Write Less,Do More ( 写的少,做的多 ) 引入jQuery jQuery是一个函数库,一个 js 文件,页面可以使用 script标签 引入使用&a…

JVM 类加载器

文章目录1 类加载器1.1 类加载器介绍1.2 类加载器的加载规则1.2 类加载器类型总结2 双亲委派模型2.1 双亲委派模型介绍2.2 双亲委派模型的执行流程2.3 双亲委派模型的好处回顾一下类加载过程:加载->连接->初始化。 其中连接又分为:验证->准备-&…

指针太难?手把手教你理解指针(传参、函数指针)

目录 前言 一、数组和指针的参数 1.一维数组传参 2.二维数组传参 3.一级指针传参 4.二级指针传参 二、函数指针 1.函数的地址 2.函数指针的形式 3.函数指针的使用 三、加深理解,两段有趣的代码 前言 之前的一篇文章讲到了指针的概念、指针和数组的关系&am…

【机器学习】随机森林预测泰坦尼克号生还概率

目录 前言: 【一】数据清洗及可视化 介绍 知识点 环境准备 数据特征介绍 检查数据 相关系数 缺失值 偏态分布 数值化和标准化 离群点 实验总结一 【二】分类模型训练及评价 介绍 环境准备 模型评估 模型选择 性能度量 实验总结二 【三】随机森…

机器学习入门(全连接神经网络-1)

机器学习入门(全连接神经网络-1) 目录 机器学习入门(全连接神经网络-1)一、神经元简介1.概念2.例子二、常见的激活函数从神经元开始进行讲述,从零开始搭建全连接神经网络。 一、神经元简介 1.概念 神经元是神经网络的基本组成单位。 神经元接受输入,对它们进行一些数学运…

自主机器人运动规划|地图相关概念总结

自主机器人运动规划|地图相关概念总结地图表示占用栅格地图八叉树地图(Octo-map)Voxel hashing(哈希表地图)点云地图TSDF mapESDF map地图表示 地图分成两个模块: 地图装在数据的数据结构地图信息融合方法 占用栅格地图 使用最为广范的是 …

用PyTorch训练模型识别captcha库生成的验证码

目录 制作训练数据集 用Dataloader加载自定义的Dataset 训练模型 识别验证码 总结与提高 源码下载 在本节,我们将使用深度学习框架PyTorch来训练模型去识别一种难度稍大一点的数字字母混合验证码(我们可以使用第三方库captcha生成这种验证码&#…

4.2 换元积分法

思维导图: 学习目标: 学习换元积分法时,可以遵循以下几个步骤: 理解换元积分法的基本思想:将一个复杂的积分变成一个简单的积分,通过引入一个新的变量来实现。 掌握换元积分法的基本公式:如果…

reviewSpringBoot

1.springboot简介说明 Springboot简化新Spring应用的初始搭建以及开发过程 SpringBoot是基于Spring的框架,该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。 SpringBoot集成了绝大部分目前流行的开发框架,就像…

FISCO-BCOS链节点黑名单对共识的影响

目录一、前言二、测试过程三、PBFT一、前言 目的:在fisco-bcos(v2.8.0)环境下,测试黑名单对节点共识的影响。 部署搭建四节点的链,并部署console: https://fisco-bcos-documentation.readthedocs.io/zh_…

3 个自定义防抖 Hooks 的实现原理

前言— 本文通过实现 useDebounceFn、useDebounce、useDebounceEffect 3 种自定义防抖 Hooks,来介绍在日常开发过程中自定义 Hooks 的思路及实现,帮助大家完成通用 Hooks 来提高开发效率。 防抖— 防抖的概念已经司空见惯了,这里稍作简单介…

00后也太卷了吧!进厂起薪18K,原来面试时候都说了这些......

都说00后躺平了,但是有一说一,该牛的还是牛。 这不,前段时间公司来了个00后,工作都没两年,跳槽起薪18K。本来还以为是个年少有为的技术大牛呢,结果相处一个月下来发现技术也就那样。 问起他是如何做到和老…

Java Web学习路线

⭐作者介绍:大二本科网络工程专业在读,持续学习Java,努力输出优质文章 ⭐作者主页:逐梦苍穹 ⭐所属专栏:Java Web ⭐如果觉得文章写的不错,欢迎点个关注一键三连😉有写的不好的地方也欢迎指正&a…

(四)栈—中缀表达式转后缀表达式

一、基本介绍 二、应用实例 将中缀表达式"1((23)x4)-5" 转换为 后缀表达式"1 2 3 4 x 5 -" 思路: 1.初始化两个栈:运算符栈s1和存储中间结果的栈s2; 2.从左至右扫描中缀表达式&#x…

【c++初阶】第九篇:vector(常用接口的使用 + 模拟实现)

文章目录vector介绍vector的使用vector的定义vector iterator(迭代器) 的使用begin和endrbegin和rendvector 空间增长问题size和capacityreserve和resize(重点)测试vector的默认扩容机制emptyvector的增删查改push_back和pop_backinsert和erasefindswapo…

GPT-4创造者:第二次改变AI浪潮的方向

OneFlow编译 翻译|贾川、杨婷、徐佳渝 编辑|王金许 一朝成名天下知。ChatGPT/GPT-4相关的新闻接二连三刷屏朋友圈,如今,这些模型背后的公司OpenAI的知名度不亚于任何科技巨头。 不过,就在ChatGPT问世前,Ope…

Verilog Tutorial(10)如何实现可复用的设计?

写在前面在自己准备写verilog教程之前,参考了许多资料----FPGA Tutorial网站的这套verilog教程即是其一。这套教程写得不错,只是没有中文,在下只好斗胆翻译过来(加了自己的理解)分享给大家。这是网站原文:h…