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

问题描述

G1 G2 大家好,我想看看 G2 是否是 G1 的子图同构,如果我绘制它们,我可以清楚地看到同构,但使用该函数我得到 False。

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



A5 = np.array(L)
A2 = np.array([[30,30,[0,30],[30,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.array([[0,30,30],[30,0]]。这样我就找到了同构。