我是2天大的Python和一般的編碼,我一直致力於製作一個隨機的幾何圖形,它是2mode。要做到這一點我在networkx here在python中的bip geom圖嘗試
一直在尋找的代碼,我開始使用以下邏輯
import networkx as nx
def my_bipartite_geom_graph(a, b, radius, dim):
G=nx.Graph()
A=nx.Graph()
A.name="a node set"
A.add_nodes_from(range(a))
for n in A:
A.node[n]['pos']=[random.random() for i in range(0,dim)]
B=nx.Graph()
B.name="b node set"
B.add_nodes_from(range(b))
for n in B:
B.node[n]['pos']=[random.random() for i in range(0,dim)]
G=nx.disjoint_union(A,B)
nodesa = A.nodes(data=True)
nodesb = B.nodes(data=True)
while nodesa:
u,du = nodesa.pop()
pu = du['pos']
for v,dv in nodesb:
pv = dv['pos']
d = sum(((a-b)**2 for a,b in zip(pu,pv)))
if d <= radius**2:
G.add_edge(u,v)
return G
這將返回一個圖形,但顯然不是我所期待的。任何指導如何更好地解決這個問題將不勝感激。
最良好的祝願
看起來好像沒什麼問題。它出什麼問題了? – Avaris 2012-04-06 19:20:53
我曾希望只有A節點連接到B節點(即節點或b節點與b節點之間沒有連接..我使用三角形()檢查了它是否是雙邊的,搜索返回了很多三角形,所以我假設我生成的網絡不是二部分,因爲它只能有4個週期。 – 2012-04-06 19:25:05
啊,我看到了問題。 – Avaris 2012-04-06 19:31:41