Python 为什么图G2不是图G1的子图同构
嗨,我只是想看看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,
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你不小心把第二张图的线弄乱了