2017-04-15 5 views
0

2つのグラフG1とG2は同形(is_isomorphic(G1、G2)=> True)ですが、各ノードで異なる属性を持ちます。グラフG1上のノードYからの属性Xの値と、構造上等価なノードY 'からの属性Xの値との間のマッピングまたは辞書を得るにはどうすればよいか。 2つの同型グラフ間のマッピングの生成

ベスト

、 エリック

+0

'get_node_attributes'関数を使用して結果をタプルに保持することができます。何を試しましたか?何が効いていないのですか? – chapelo

+0

返事をありがとう。私は対応するノードのペアをどのように識別できるかわかりません。お互いに対応するノードがわからない場合は、get_node_attributesを使用することはできません。 –

答えて

0

VF2同型のアルゴリズムに高度なインターフェースを使用してください。 https://networkx.readthedocs.io/en/stable/reference/algorithms.isomorphism.vf2.html

これはあなたにマッチを与えます。

>>> from networkx.algorithms import isomorphism 
>>> G1 = nx.path_graph(4) 
>>> G2 = nx.path_graph(4) 
>>> GM = isomorphism.GraphMatcher(G1,G2) 
>>> GM.is_isomorphic() 
True 

GM.mapping stores the isomorphism mapping from G1 to G2. 

>>> GM.mapping 
{0: 0, 1: 1, 2: 2, 3: 3} 
+0

パーフェクト!これは私が探しているものです。返信いただきありがとうございます。 –

関連する問題