私は2日齢で、Pythonとコーディング全般を使用しており、2モードのランダムな幾何学的グラフの作成に取り組んでいます。これを行うために、私はここでnetworkxのコードを見てきました
私は次のロジックを使い始めました
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
これはグラフを返しますが、明らかに私が望んでいたものではありません。この問題へのより良いアプローチについてのアドバイスをいただければ幸いです。
幸運をお祈りしています