2つのグラフG1とG2は同形(is_isomorphic(G1、G2)=> True)ですが、各ノードで異なる属性を持ちます。グラフG1上のノードYからの属性Xの値と、構造上等価なノードY 'からの属性Xの値との間のマッピングまたは辞書を得るにはどうすればよいか。 2つの同型グラフ間のマッピングの生成
ベスト
、 エリック2つのグラフG1とG2は同形(is_isomorphic(G1、G2)=> True)ですが、各ノードで異なる属性を持ちます。グラフG1上のノードYからの属性Xの値と、構造上等価なノードY 'からの属性Xの値との間のマッピングまたは辞書を得るにはどうすればよいか。 2つの同型グラフ間のマッピングの生成
ベスト
、 エリック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}
パーフェクト!これは私が探しているものです。返信いただきありがとうございます。 –
'get_node_attributes'関数を使用して結果をタプルに保持することができます。何を試しましたか?何が効いていないのですか? – chapelo
返事をありがとう。私は対応するノードのペアをどのように識別できるかわかりません。お互いに対応するノードがわからない場合は、get_node_attributesを使用することはできません。 –