失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > networkx 判断两图是否同构 得到同构的节点映射

networkx 判断两图是否同构 得到同构的节点映射

时间:2021-11-27 04:57:10

相关推荐

networkx 判断两图是否同构 得到同构的节点映射

如果我们希望判断两个网络是否同构,以及同构时,两个网络之间的节点映射关系,那么我们可以使用networkx提供的api

networkx是python的处理网络十分好用的一个包

具体使用方法如下

GM = nx.isomorphism.GraphMatcher(atomNx,dictNx)GM.is_isomorphic():mapping = GM.mapping

首先使用GraphMatcher()方法,将两个网络输入,这里是以第一个网络atomNx为基础,来看第二个网络dictNx是否与之同构

is_isomorphic()方法是判断两个网络是否有同构关系,返回true or false

mapping()方法返回两个网络的节点映射关系

这里需要注意:

首先输入网络是nx.Graph()

然后这里是无向图,nx有提供针对有向图,标签图,带权等不同网络不同的同构方法,可以自己看api尝试

最关键一点,GraphMatcher只是一个类,它的init方法里并没有直接测是否同构,所以在使用mapping()之前,一定要调用is_isomorphic()方法,不然得到的mapping是一个空字典,这会让人很懵

如果觉得《networkx 判断两图是否同构 得到同构的节点映射》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。