我有一个图G,其中有100个节点,标记为1到100。
图G是一个锦标赛图,意味着在任意一个方向上,每两个节点之间都有一条有向边。
请参阅:https://en.wikipedia.org/wiki/Tournament_(graph_theory(
现在,我需要访问满足以下条件的所有边:(也许将它们存储在列表中?(表示集合a={1,2,3,..50}
a( 节点x和y之间的G中的边,其中x,y在中
b( 的G中的任何边形式x---->z,其中x在A中,z不在中
c( 的G中的任何边形式z-->x,其中x在A中,z不在中
本质上我想要a(,b(和c(的并集。
我是python的新手,无法清楚地理解这一点。我使用的是networkx软件包,我的图G是一个有向图。(G=nx.DiGraph()
(
a(
G.subgraph(A).edges()
b(
[(i,j) for i,j in G.edges() if i in A and j not in A]
c(
[(i,j) for i,j in G.edges() if i not in A and j in A]
如果你想要他们的联盟,请尝试以下方法:
G.edges()-G.subgraph(G.nodes()-A).edges()