CN116680447A - 高效稳定的(子)图(矩阵)同构算法 - Google Patents
高效稳定的(子)图(矩阵)同构算法 Download PDFInfo
- Publication number
- CN116680447A CN116680447A CN202010834164.XA CN202010834164A CN116680447A CN 116680447 A CN116680447 A CN 116680447A CN 202010834164 A CN202010834164 A CN 202010834164A CN 116680447 A CN116680447 A CN 116680447A
- Authority
- CN
- China
- Prior art keywords
- graph
- collision
- isomorphism
- vertices
- algorithm
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 239000011159 matrix material Substances 0.000 title claims abstract description 12
- 238000013507 mapping Methods 0.000 claims description 12
- 238000003491 array Methods 0.000 claims description 6
- 238000000926 separation method Methods 0.000 claims description 4
- 230000002123 temporal effect Effects 0.000 claims description 4
- 238000004458 analytical method Methods 0.000 claims description 2
- 238000009795 derivation Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 claims description 2
- 239000002245 particle Substances 0.000 claims description 2
- 238000013138 pruning Methods 0.000 claims description 2
- 238000000034 method Methods 0.000 abstract description 7
- 230000000052 comparative effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
Abstract
发明了一个基于子图与图对撞(等价于建立约束条件方程组,然后解之)的高效稳定的图(矩阵)同构算法,理论上证明了对绝大多数图(矩阵),存在时间复杂度O(n^2),空间复杂度O(n)的多项式算法,其中n是图的顶点数。此算法能在普通微机上轻松处理10万个顶点的(正则)图。此算法可轻松扩展到矩阵同构(图是矩阵的特例),也可以扩展到某些类别的子图(矩阵)同构。本发明非常适合采用多线程并行技术。
Description
技术领域
(子)图(矩阵)同构算法属于数学和计算机领域。
背景技术
现在世界上有5种以上实际使用的图同构方法,但都不是多项式时间算法,故程序运行总时间不可预测,对内存需求巨大,当图较大时,比如有100000个顶点的(正则)图,即使用超算中心,也无能为力。是否存在多项式算法,是个未解的数学问题,具有极大的理论和实用价值。数学家和计算机专家多数预测:图同构应该存在多项式时间算法,而子图同构则相反。目前,理论上最好的结果是2015年的一篇89页的论文:存在准多项式的图同构算法,目前还没有通过同行审核。
发明内容
发明了一个基于图对撞使得图顶点分裂的高效稳定的图同构算法,理论上证明了对绝大多数图,存在时间复杂度O(n^2),空间复杂度O(n) 的多项式算法,其中n是图的顶点数。经过实测,性能远远超过现有的算法,具体请参看下文中的对比试验数据。此算法可轻松扩展到矩阵同构(图同构只是矩阵同构的特例), 也可以扩展到子图(矩阵)同构。
定义
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...后的导出子图
算法介绍
如果 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≌ G1,故必有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))。这个问题,值得在理论上进一步探讨。希望在广泛的实际应用中,能找到一个最坏案例,加深对特殊图结构的理解。
对比测试结果
在MACBOOK PRO,CPU i7, 内存16G,SageMath 8.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, 7, 6, 6, 6, 8, 6, 8, 7, 7]
[6, 5, 4, 6, 5, 5, 5, 5, 5, 5] 4000 比例 0.132812500000000
[39, 39, 38, 39, 38, 38, 39, 38, 38, 38]
[6, 6, 6, 6, 6, 6, 7, 6, 6, 6]
[11, 13, 16, 12, 16, 12, 11, 10, 12, 14] 6000 比例 0.122942884801549
[102, 103, 104, 104, 104, 104, 104, 103, 102, 103]
[6, 7, 8, 6, 8, 6, 6, 6, 7, 8]
[21, 26, 22, 19, 20, 21, 18, 19, 19, 26] 8000 比例 0.103431372549020
[202, 202, 204, 204, 210, 204, 203, 203, 204, 204]
[6, 8, 7, 6, 6, 6, 6, 6, 6, 8]
正则图测试对比:
[1, 1, 2, 1, 1, 1, 1, 1, 1, 1] 500 比例 0.550000000000000
[2, 2, 2, 2, 2, 2, 2, 2, 2, 2]
[8, 10, 8, 9, 10, 8, 10, 8, 8, 8]
[13, 12, 12, 12, 11, 16, 12, 12, 11, 12] 1000 比例 0.288056206088993
[46, 42, 42, 42, 42, 42, 44, 43, 42, 42]
[10, 10, 8, 8, 8, 8, 8, 8, 8, 8]
[98, 96, 99, 94, 96, 98, 98, 109, 99, 97] 2000 比例 0.139455782312925
[702, 699, 698, 711, 709, 704, 706, 704, 710, 713]
[10, 8, 9, 10, 8, 9, 8, 8, 8, 9]
对正则图,新方法的效率即使在单线程的测试环境下,也达到很高的程度,比如2000个顶点时,比例 0.139455782312925,而非正则图,比例 0.25。如果开n个线程,效率将得到几乎n倍速的提高。
对子图(子矩阵)判定,因为有强大的概率论和顶点度序列对应这两个高效工具,故可以提供很强的剪枝能力,减少搜索空间。
结论
此算法不仅实用性非常强,而且理论上也非常重要,可能是证明P≠NP的一个切入点。
Claims (2)
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≌ G1,故必有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))。这个问题,值得在理论上进一步探讨。
2.碰撞的思想,也可以用于子图(子矩阵)同构判定,虽然目前还没有找到子图(子矩阵)同构的多项式算法,但碰撞的这个思想,可以大大的增强剪枝能力,减少搜索空间。
此算法对内存要求极低,且天然适合多线程并行,尤其是对正则图或子图同构。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010834164.XA CN116680447A (zh) | 2020-08-18 | 2020-08-18 | 高效稳定的(子)图(矩阵)同构算法 |
PCT/CN2020/134861 WO2022036941A1 (zh) | 2020-08-18 | 2020-12-09 | 高效稳定的图(矩阵)同构算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010834164.XA CN116680447A (zh) | 2020-08-18 | 2020-08-18 | 高效稳定的(子)图(矩阵)同构算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116680447A true CN116680447A (zh) | 2023-09-01 |
Family
ID=80323420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010834164.XA Pending CN116680447A (zh) | 2020-08-18 | 2020-08-18 | 高效稳定的(子)图(矩阵)同构算法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116680447A (zh) |
WO (1) | WO2022036941A1 (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559125B (zh) * | 2013-10-25 | 2015-12-09 | 北京广利核系统工程有限公司 | 一种利用图同构验证编译器的方法 |
CN104636560B (zh) * | 2015-02-12 | 2018-06-05 | 西安科技大学 | 一种基于子图同构的高风险区域自动识别方法 |
CN111125453B (zh) * | 2019-12-27 | 2023-03-28 | 中国电子科技集团公司信息科学研究院 | 基于子图同构的社交网络中意见领袖角色识别方法及存储介质 |
-
2020
- 2020-08-18 CN CN202010834164.XA patent/CN116680447A/zh active Pending
- 2020-12-09 WO PCT/CN2020/134861 patent/WO2022036941A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2022036941A1 (zh) | 2022-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Çatalyürek et al. | On two-dimensional sparse matrix partitioning: Models, methods, and a recipe | |
Kane et al. | Counting arbitrary subgraphs in data streams | |
Kiveris et al. | Connected components in mapreduce and beyond | |
Arzelier et al. | Mixed LMI/randomized methods for static output feedback control design | |
Xu et al. | Optimal projective three-level designs for factor screening and interaction detection | |
Djidjev et al. | Scalable and accurate graph clustering and community structure detection | |
Wang et al. | A multi-step backward cloud generator algorithm | |
Yamashita et al. | Predictability of network robustness from spectral measures | |
CN116680447A (zh) | 高效稳定的(子)图(矩阵)同构算法 | |
Ishida | A critical phenomenon in a self-repair network by mutual copying | |
Kunaseth et al. | A scalable parallel algorithm for dynamic range-limited n-tuple computation in many-body molecular dynamics simulation | |
Rao et al. | An approach to merging of two community subgraphs to form a community graph using graph mining techniques | |
Amestoy et al. | A parallel matrix scaling algorithm | |
Buš et al. | Towards auction algorithms for large dense assignment problems | |
Deng et al. | The Lovász local lemma and its applications to some combinatorial arrays | |
Stauffer | Classification of square lattice cellular automata | |
Kaveh et al. | Analysis of space truss towers using combined symmetry groups and product graphs | |
Ball et al. | The impact of graph symmetry on clustering | |
Ramawat et al. | Improved Padé-pole clustering approach using genetic algorithm for model order reduction | |
Savio et al. | A novel enumeration strategy of maximal bicliques from 3-dimensional symmetric adjacency matrix | |
Uno et al. | Ambiguous frequent itemset mining and polynomial delay enumeration | |
Angelovski et al. | Interpolation Search in Edgelists of graphs | |
Hou et al. | Exhaustive Search for Costas Arrays Using Distributed Computing System | |
Lin et al. | Efficient mining of weighted frequent itemsets in uncertain databases | |
Mane | A comparative study of Spam and PrefixSpan sequential pattern mining algorithm for protein sequences |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |