Python 为什么图G2不是图G1的子图同构

Python 为什么图G2不是图G1的子图同构,python,numpy,networkx,subgraph,isomorphism,Python,Numpy,Networkx,Subgraph,Isomorphism,嗨,我只是想看看G2是否是G1的子图同构,如果我画它们,我可以清楚地看到同构,但是我用这个函数得到的结果是错误的 L =[[ 0, 23.4, 30.3, 49.45, 0, 0, 0, 0, 0, 0, 0], [23.4, 0, 34.42, 39.54, 34.26, 0, 0, 0, 0, 0 , 0 ], [30.3, 34.42, 0, 26.67, 42.71, 79.12, 0,

嗨,我只是想看看G2是否是G1的子图同构,如果我画它们,我可以清楚地看到同构,但是我用这个函数得到的结果是错误的

L =[[ 0,   23.4,  30.3,  49.45,  0,    0,    0,   0,    0,    0,    0],
 [23.4,   0,   34.42, 39.54, 34.26,  0,    0,    0,    0,    0 ,   0  ],
 [30.3,  34.42,  0,   26.67, 42.71, 79.12,  0,    0,    0 ,   0,    0  ],
 [49.45, 39.54 ,26.67,  0,   22.98 ,65.57 ,44.53,  0,    0,    0,    0  ],
 [ 0,  34.26 ,42.71 ,22.98 , 0 ,  43.04 ,23.19, 47.2,   0 ,   0   , 0  ],
 [ 0 ,   0   ,79.12 ,65.57, 43.04,  0,   30.29 ,29.14, 64.72 , 0 ,   0  ],
 [ 0  ,  0    ,0   ,44.53 ,23.19 ,30.29  ,0,   24.19, 60.59, 49.7,   0  ],
 [ 0   , 0   , 0    ,0 ,  47.2  ,29.14 ,24.19 , 0,   39.03 ,46.27 ,40.06],
 [ 0 ,   0  ,  0,    0  ,  0  , 64.72, 60.59 ,39.03 , 0   ,44.72 ,62.05],
 [ 0  ,  0 ,   0 ,   0   , 0 ,   0 ,  49.7  ,46.27 ,44.72 , 0 ,  30.7 ],
 [ 0   , 0,    0  ,  0    ,0,    0  ,  0 ,  40.06, 62.05, 30.7  , 0  ]]



A5 = np.array(L)
A2 = np.array([[30,30,0], [0,30,30], [30,0,30]])


G1 = nx.from_numpy_matrix(A5)
G2 = nx.from_numpy_matrix(A2)
nx.draw(G1)
nx.draw(G2)
plt.show()
GM = isomorphism.GraphMatcher(G1,G2)
print(GM.subgraph_is_isomorphic())

问题是在三角形中,以我构建邻接矩阵的方式,我不小心把线洗牌了,我允许了自循环。正确的应该是G2=np.数组([[0,30,30],[30,0,30],[30,30,0]].通过这个,我设法找到了同构。

你能提供图形的绘图吗?两个不同大小的图形不能同构。@IñigoMoreno那不是true@Darina是的,你应该能够看到这一点,谢谢你的反馈。你的第一个图没有自循环,而你的第二个图有三个。它们怎么可能是同构/单态的?或者是y你不小心把第二张图的线弄乱了