高效稳定的(子)图(矩阵)同构算法制造技术

技术编号:38717861 阅读:18 留言:0更新日期:2023-09-08 15:00
发明专利技术了一个基于子图与图对撞(等价于建立约束条件方程组,然后解之)的高效稳定的图(矩阵)同构算法,理论上证明了对绝大多数图(矩阵),存在时间复杂度O(n^2),空间复杂度O(n)的多项式算法,其中n是图的顶点数。此算法能在普通微机上轻松处理10万个顶点的(正则)图。此算法可轻松扩展到矩阵同构(图是矩阵的特例),也可以扩展到某些类别的子图(矩阵)同构。本发明专利技术非常适合采用多线程并行技术。非常适合采用多线程并行技术。

【技术实现步骤摘要】
高效稳定的(子)图(矩阵)同构算法


[0001](子)图(矩阵)同构算法属于数学和计算机领域。

技术介绍

[0002]现在世界上有5种以上实际使用的图同构方法,但都不是多项式时间算法,故程序运行总时间不可预测,对内存需求巨大,当图较大时,比如有100000个顶点的(正则)图,即使用超算中心,也无能为力。是否存在多项式算法,是个未解的数学问题,具有极大的理论和实用价值。数学家和计算机专家多数预测:图同构应该存在多项式时间算法,而子图同构则相反。目前,理论上最好的结果是2015年的一篇89页的论文:存在准多项式的图同构算法,目前还没有通过同行审核。

技术实现思路

[0003] 专利技术了一个基于图对撞使得图顶点分裂的高效稳定的图同构算法,理论上证明了对绝大多数图,存在时间复杂度O(n^2),空间复杂度O(n)的多项式算法,其中n是图的顶点数。经过实测,性能远远超过现有的算法,具体请参看下文中的对比试验数据。此算法可轻松扩展到矩阵同构(图同构只是矩阵同构的特例),也可以扩展到子图(矩阵)同构。定义
[0004]G或者K:简单连通图d(G):G的顶点度序列(从大到小排列)G(v,w,...):G中的顶点v,w,...n(G):G的顶点个数正则图:任意点的顶点度都是相同的图Gr,n:顶点个数为n的正则图G,r为G中任意点的顶点度G/(v,w...):G删除顶点v,w...后的导出子图算法介绍
[0005]如果K≌G,那么必有d(G)=d(K)。从一个简单的例子开始假设d(K)=[10,10,9,9,9,9,8,8,7,5,3,2]=d(G),且K,G的顶点都分别标记为0到11中的一个数字(K一共有12个顶点),并且d(K)映射到K的顶点:[5,1,2,3,4,6,9,0,8,7,11,10]d(G)映射到G的顶点:[0,1,2,3,4,5,6,7,8,9,10,11]K中的顶点按照顶点度的相同与否,必然可以分为数个数组,比如K(5,1),K(2,3,4,6)等。G中的顶点按照顶点度的相同与否,必然可以分为数个数组,比如G(0,1),G(2,3,4,5) 等。如果K ≌ G,必然有K(5,1) 映射到G(0,1), K(2,3,4,6)映射到 G(2,3,4,5) 等,
即有下面的数组上下一一对应:K:[(5,1),(2,3,4,6),(9,0),(8),(7),(11),(10)]G:[(0,1),(2,3,4,5),(6,7),(8),(9),(10),(11)]‑‑‑‑‑
(1)但目前不知道K(5)映射到G(0)还是G(1),也不知道K(9)映射到G(6)还是G(7)等等,即有不确定性存在。令K1=K/(8,7,11,10)令G1=G/(8,9,10,11)如果K≌G,必有K1≌G
1,
故必有d(K1)=d(G1)。假设:d(K1)=d(G1)=[7,7,6,6,5,5,4,4]映射到K1顶点:[(5,2),(1,3),(4,9),(6,0)]映射到G1顶点:[(0,4),(1,2),(5,6),(3,7)]‑‑‑‑‑
(2)结合(1)and(2),即等价于K1和K碰撞,G1和G碰撞,必然有如下的一一对应:K:[(5),(1),(3),(4),(2),(9),(6),(0),(8),(7),(11),(10)]G:[(0),(1),(2),(5),(4),(6),(3),(7),(8),(9),(10),(11)]‑‑‑‑‑
(3)结果是每个数组的维度都是1,故不确定性完全消失了!即经过一次碰撞,立刻建立了唯一可能的映射关系,效率惊人的高!因为(3)式是G和K同构的必要条件,故需要验证是否真的同构(此步骤很容易)。如果经过一次碰撞,不能建立合法的映射关系,就可以判定K和G不同构。碰撞理论类似于两个原子高速迎面对撞,互相撞的粉碎,如果这两个原子同构,则撞出来的粒子必然要一一对应,若无合法的对应关系,则不同构。但生活不会如此美好,不可能每次都能一次碰撞就能彻底解决对应关系。好消息是,随机选取不同的子图,经过不超过20次碰撞(理论上非常粗糙的估计,设能被分开的数组碰撞后分开的概率是p,1/2≤p<1,那么经过20次碰撞,没有被分开的概率为(1

p)^20,几乎为0,若仔细分析,p取值往往非常接近于1,当数组的维度大于2时)会来到一个不太可能再被分割的状态,即无论将来产生何种子图与母图对撞,对应关系都不太可能发生变化:此时要么已经建立了唯一可能的完全确定的对应关系(好消息),要么是有未确定的(表面看上去是坏消息)。后者可能真的是坏消息,但也有可能是意想不到的好消息:任意数组中的点是等价的!换句话,我们找到了所有的可能的自同构!例如,如果d(G)=[5,5,5,5,5,5,5,5,4,4],d(G1)=[0,0]或[4,4,4,4,4,4,4,4],它要么是好消息,即顶点度为5的8个点彼此等价,顶点度为4的2个点彼此等价,要么是坏消息。乐观主义者基于好消息假设可以直接给予一个随机映射,并检验是否同构。若不同构,则进入悲观主义者的行动。悲观主义者在顶点度为4(或者5,实际上为了节约计算时间,往往选择数组维度小的)的顶点上做两次试探性测试:假设G(3,4)和K(1,2)顶点度都是4,映射G(3)到K(1)或K(2)(没有其它可能性),然后继续碰撞,不超过20次,就进入下一个不可分割状态!需要进入试探性阶段的图,都具有特殊的结构。虽然容易构造出特殊图,但当n足够大时(比如n>99),在所有同阶图中的比例是非常小的,几乎可忽略不计。很特殊的一个
例子是正则图Gr,n,可能需要n次试探,才能判定同构与否。可喜点的是,绝大多数图(矩阵)是不需要进入任何试探阶段的,往往在10次(而不是理论预期的20次)碰撞后就消除了任何不确定性,或者在1

2次碰撞后就被判定为不同构。所以这是一个非常高效且稳定的算法。对绝大多数图(矩阵)而言,此算法的时间复杂度为O(n^2),空间复杂度为O(n)。极端情况下的算法复杂度,目前还不清楚,可能需要群论的知识来分析。可以合理的猜测,极端情况下的多数判定,时间复杂度为O(n^3),空间复杂度依然为O(n),最坏情况下,时间复杂度可能是O(n^log(n)),空间复杂度可能是O(nlog(n))。这个问题,值得在理论上进一步探讨。希望在广泛的实际应用中,能找到一个最坏案例,加深对特殊图结构的理解。对比测试结果
[0006]在MACBOOKPRO,CPUi7,内存16G,SageMath8.7测试环境下。以每三行为一组第一行:新方法测试10个随机图所花时间(以秒为单位),图顶点数,新方法所花时间总和/系统本有方法所花时间总和。第二行:系统本有方法测试10个随机图所花时间。第三行:新方法碰撞次数。非正则图测试对比:[1.5,1.5,1.5,1.5,1.5,2.0,1.5,2.0,1.5,1.5]2000比例0.25[8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0][6本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种突破性的稳定高效的图(矩阵)G,K同构算法,即基于子图和母图的碰撞,导致母图极度分裂,从而在G,K的顶点中建立必要的一一对应。定义:G或者K:简单连通图d(G):G的顶点度序列(从大到小排列)G(v,w,...):G中的顶点v,w,...正则图:任意点的顶点度都是相同的图G/(v,w...):G删除顶点v,w...后的导出子图算法介绍:如果K≌G,那么必有d(G)=d(K)。从一个简单的例子开始假设d(K)=[10,10,9,9,9,9,8,8,7,5,3,2]=d(G),且K,G的顶点都分别标记为0到11中的一个数字(K一共有12个顶点),并且d(K)映射到K的顶点:[5,1,2,3,4,6,9,0,8,7,11,10]d(G)映射到G的顶点:[0,1,2,3,4,5,6,7,8,9,10,11]K中的顶点按照顶点度的相同与否,必然可以分为数个数组,比如K(5,1),K(2,3,4,6)等。G中的顶点按照顶点度的相同与否,必然可以分为数个数组,比如G(0,1),G(2,3,4,5)等。如果K≌G,必然有K(5,1)映射到G(0,1),K(2,3,4,6)映射到G(2,3,4,5)等,即有下面的数组上下一一对应:K:[(5,1),(2,3,4,6),(9,0),(8),(7),(11),(10)]G:[(0,1),(2,3,4,5),(6,7),(8),(9),(10),(11)]
‑‑‑‑‑
(1)但目前不知道K(5)映射到G(0)还是G(1),也不知道K(9)映射到G(6)还是G(7)等等,即有不确定性存在。令K1=K/(8,7,11,10)令G1=G/(8,9,10,11)如果K≌G,必有K1≌G
1,
故必有d(K1)=d(G1)。假设:d(K1)=d(G1)=[7,7,6,6,5,5,4,4]映射到K1顶点:[(5,2),(1,3),(4,9),(6,0)]映射到G1顶点:[(0,4),(1,2),(5,6),(3,7)]
‑‑‑‑‑
(2)结合(1)and(2),即等价于K1和K碰撞,G1和G碰撞,必然有如下的一一对应:K:[(5),(1),(3),(4),(2),(9),(6),(0),(8),(7),(11),(10)]G:[(0),(1),(2),(5),(4),(6),(3),(7),(8),(9),(10),(11)]
‑‑‑‑‑
(3)结果是每个数组的维度都是1,故不确定性完全消失了!即经过一次碰撞,立刻建立了唯一可能的映射关系,效率惊人的高!因为(3)式是G和K同构的必要条件,故需要验证是否真的同构(此步骤很容易)。如果经过一次碰撞,不能建立合法的映射关系,就可以判定K和G不同构。碰撞理论类似于两个原子高速迎面对撞,互...

【专利技术属性】
技术研发人员:沈利兴
申请(专利权)人:上海帆格网络科技有限公司
类型:发明
国别省市:

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1