首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >子图同构的NetworkX匹配

子图同构的NetworkX匹配
EN

Stack Overflow用户
提问于 2017-10-11 19:45:49
回答 1查看 1.1K关注 0票数 0

在通过NetworkX搜索子图同构时,有没有找到节点映射的方法?例如,

代码语言:javascript
复制
import numpy as np
from networkx.algorithms import isomorphism
import networkx as nx

B = [[0, 2, 1, 0, 0],
     [2, 0, 1, 0, 1],
     [1, 1, 0, 1, 0],
     [0, 0, 1, 0, 0],
     [0, 1, 0, 0, 0]]

A = [[0, 1, 1],
     [1, 0, 2],
     [1, 2, 0]]

G1 = nx.from_numpy_matrix(np.array(B), create_using=nx.MultiGraph())
G2 = nx.from_numpy_matrix(np.array(A), create_using=nx.MultiGraph())
GM = isomorphism.MultiGraphMatcher(G1,G2)
print(GM.subgraph_is_isomorphic())
print(GM.mapping)

打印{0: 0, 1: 1, 2: 2},但这不是真的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-15 16:52:19

我找到了解决办法:

代码语言:javascript
复制
GM = isomorphism.MultiGraphMatcher(G1, G2, edge_match=lambda x, y: x[0]['weight'] == y[0]['weight'])

根据源代码文档,应该为多个图指定edge_match函数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46696334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档