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