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

news/2024/5/6 11:27:29/文章来源:https://blog.csdn.net/weixin_56462041/article/details/130119605

子图同构问题

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

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

对于VGV_GVG中的任意两个不同的顶点viv_ivivjv_jvj,如果在EGE_GEG中有边连接它们,那么在EHE_HEHϕ(vi)\phi(v_i)ϕ(vi)ϕ(vj)\phi(v_j)ϕ(vj)也必须有一条边连接;

对于VHV_HVH中的任意两个不同的顶点vi′v'_ivivj′v'_jvj,如果在EHE_HEH中有边连接它们,那么在EGE_GEG中存在viv_ivivjv_jvj,满足ϕ(vi)=vi′\phi(v_i)=v'_iϕ(vi)=viϕ(vj)=vj′\phi(v_j)=v'_jϕ(vj)=vj,且在EGE_GEG中也有边连接viv_ivivjv_jvj

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


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

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

M′M'M表示映射从MAM AMAMBM BMB的映射矩阵,M[i][j]=1M [i][j] = 1M[i][j]=1表示A中第iii个顶点vivivi对应到MBM BMB中的第jjj个顶点,否则为000表示没有对应

在这里插入图片描述


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∈Aa∈AaA,都存在一个b∈Bb∈BbB,使得f(a)=bf(a)=bf(a)=b
对于任意的b∈Bb∈BbB,都存在一个a∈Aa∈AaA,使得f(a)=bf(a)=bf(a)=b

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

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

请添加图片描述

同构(isomorphic)和同态(homomorphism)

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

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

请添加图片描述

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计模式之中介者模式(C++)

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 一、中介者模式是什么? 中介者模式是一种行为型的软件设计模式,也称为仲裁者模式,顾名思义&am…

基于SpringBoot的大学生体质测试管理系统源码数据库论文

目录 目录 1 绪 论 1.1系统背景介绍 1.2课题研究的目的和意义 1.3系统的研究现状 1.4系统实现的功能 1.5系统的特点 2 开发工具和技术 2.1 B/S体系结构 2.2 Java语言简介 2.3 SpringBoot框架 2.4 MySQL简介 3 系统需求分析 3.1 系统可行性分析及目的…

爱智EdgerOS之深入解析在爱智应用中如何使用Socket.IO轻松实现双向通信

一、什么是 Socket.IO? Socket.IO 是一个基于事件通信的实时应用程序框架,它在即时通讯、通知和消息推送,实时分析等场景中有广泛的应用。Socket.IO 包括两个部分: 在 Server 端的模块(JSRE 已提供了 socket.io 模块&…

UPA/URA双极化天线的协方差矩阵结构

文章目录UPA的阵列响应向量(暂不考虑双极化天线)UPA阵列响应:从单极化天线到双极化天线UPA双极化天线的协方差矩阵结构参考文献UPA的阵列响应向量(暂不考虑双极化天线) 下图形象描述了UPA阵列的接收信号 UPA阵列的水平…

已知原根多项式和寄存器初始值时求LFSR的简单例子

线性反馈移位寄存器(LFSR)是一种用于生成伪随机数序列的简单结构。在这里,我们有一个四项原根多项式 p(x)1x0x21102p(x) 1 x 0x^2 110_2p(x)1x0x21102​ 和初始值 S0100S_0 100S0​100。我们将使用 LFSR 动作过程来生成一个伪随机序列。…

SpringBoot【运维实用篇】---- SpringBoot程序的打包与运行

SpringBoot【运维实用篇】---- SpringBoot程序的打包与运行程序打包程序运行SpringBoot程序打包失败处理命令行启动常见问题及解决方案刚开始做开发学习的小伙伴可能在有一个知识上面有错误的认知,我们天天写程序是在Idea下写的,运行也是在Idea下运行的。…

vue——项目中加载public中的静态资源——技能提升

应用场景 在写后台管理系统的时候,遇到一个需求就是关于热力图的功能,需要加载不同的页面,这个页面需要每日更新一次,所以请求页面html的最终解决办法就是:将页面html对应的文件夹,放在public文件夹中&…

Zephyr RTOS应用开发(nrf5340)

目录 概述 开发环境安装 创建一个新的Zephyr应用 构建应用并刷写到开发板 概述 Zephyr™项目是一个采用Apache 2.0协议许可,Linux基金会托管的协作项目。针对低功耗、小型内存微处理器设备开发的物联网嵌入式小型、可扩展的实时操作系统,支持多种硬件…

(八)【软件设计师】计算机系统—浮点数

浮点数 浮点数。当机器字长为n时,定点数的补码和移码可表示2的n方个数,而其原码和反码只能表示2"-1个数(0的表示占用了两个编码),因此,定点数所能表示的数值范围比较小,在运算中很容易因结果超出范围而…

JavaScript -- 对象

1. 概念 对象是 JavaScript 数据类型的一种,可以理解为是一种无序的数据集合 2. 对象的使用 2.1 对象的声明 let 对象名 {} let 对象名 new Object() 2.2 属性和方法 数据描述性的信息称为属性,如人的姓名、身高、年龄、性别等,一般是…

前端项目-12-个人中心-二级路由配置-导航守卫-懒加载

目录 1-个人中心 1.1-个人中心路由注册 1.2-拆分二级路由组件 1.3-动态渲染我的订单页面 2-导航守卫优化 2.1-用户未登录导航守卫优化 2.2-路由独享 2.3-组件内守卫 3-懒加载 3.1-图片懒加载 3.2-路由懒加载 4-map文件处理 1-个人中心 需求:当用户点击支…

DevOps实践分享:4个实施步骤与6个关键设计

本文介绍了普元DevOps平台在金融行业实施落地的常用方法,以及在项目管理,代码管理,构建管理,制品管理,部署管理等模块针对一些典型客户场景的关键设计。目 录01 平台简介‍‍02 实施方法‍‍‍‍‍‍03 关键设计01平…

OceanBase 4.1 发版 | 一个面向开发者的里程碑版本

欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/ 2022 年 8 月,OceanBase发布了 4.0 版本(小鱼),作为业内首个单机分布式一体化架构,兼顾了分布式架构的扩展性和集中式架构的性能优势&…

算法:链表和数组哪个实现队列更快

背景 对于这个问题,我们先来思考一下数组和链表各有什么特点。 数组:连续存储,push 很快,shift 很慢。 链表:非连续存储,add、delete 都很快,但是查找很慢。 所以,我们可以得出结论…

TCP/UDP协议 (详解)

🎉🎉🎉点进来你就是我的人了 博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!人生格言:当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友一起加油喔🦾&am…

49天精通Java,第26天,LinkedHashSet、LinkedHashMap、EnumSet、EnumMap

目录一、链接散列集LinkedHashSet二、链接散列映射LinkedHashMap三、枚举集EnumSet1、EnumSet2、枚举集可以用来实现一些特殊的功能,例如:3、枚举集的常用方法包括:四、枚举映射EnumMap1、EnumMap2、枚举映射可以用来实现一些特殊的功能&…

基于朴素贝叶斯分类器的钞票真伪识别模型

基于朴素贝叶斯分类器的钞票真伪识别模型 内容 本实验通过实现钞票真伪判别案例来展开学习朴素贝叶斯分类器的原理及应用。 本实验的主要技能点: 1、 朴素贝叶斯分类器模型的构建 2、 模型的评估与预测 3、 分类概率的输出 源码下载 环境 操作系统&#xf…

springboot学习2

一、spring boot自动装配原理 pom.xml spring-boot-dependencies 核心依赖在父工程中 在写或者引入一些spring boot依赖的时候&#xff0c;不需要指定版本&#xff0c;因为有这些版本仓库启动器 <dependency><groupId>org.springframework.boot</groupId>&…

数据结构刷题笔记 | 数组、字符串、链表、栈、队列、数、图

本篇为笔者学习数据结构时&#xff0c;在牛客网站的刷题笔记。 数组——长度固定 数组是一种对象&#xff0c;不属于原生类&#xff0c;数组的大小确定之后不可改变。【原生类指未被实例化的类&#xff0c;数组一般指实例化&#xff0c;被分配空间的类】数组常用的两种基本操作…

C#,码海拾贝(18)——矩阵的(一般)三角分解法(Triangular Decomposition)之C#源代码,《C#数值计算算法编程》源代码升级改进版

1 三角分解法 Triangular Decomposition 三角分解法亦称因子分解法&#xff0c;由消元法演变而来的解线性方程组的一类方法。设方程组的矩阵形式为Axb&#xff0c;三角分解法就是将系数矩阵A分解为一个下三角矩阵L和一个上三角矩阵U之积&#xff1a;ALU&#xff0c;然后依次解…