2017-04-15 8 views
0

두 그래프 G1과 G2는 isomorphic (is_isomorphic (G1, G2) => True)이지만 각 노드마다 다른 속성을가집니다. 그래프 G1의 노드 Y로부터의 속성 X의 값과 구조적으로 동등한 노드 Y의 속성 X의 값 사이의 매핑 또는 사전을 어떻게 얻을 수 있습니까? 두 개의 동형 그래프 간의 매핑 생성

최저

, 에릭

+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

완벽! 이것이 제가 찾고있는 것입니다. 답장을 보내 주셔서 감사합니다. –