私はPythonとigraphにはかなり新しくなっています。私の学士論文のために、私はグラフとそれを比較して、グラフの交点と結合を決定しなければなりません。私は、次のことを試してみました:Python igraph、頂点の名前/ラベルに基づくグラフの交点/結合
from igraph import *
import json
with open('test_graphs.json') as data_file:
data = json.load(data_file)
test1 = data['test1']
test2 = data['test2']
t1 = Graph(directed=True)
for v in test1:
t1.add_vertex(v)
for v in test1:
for o in test1[v]:
t1.add_edge(v, o)
print(t1)
t2 = Graph(directed=True)
for v in test2:
t2.add_vertex(v)
for v in test2:
for o in test2[v]:
t2.add_edge(v, o)
print(t2)
gr = t1.intersection(t2)
print(gr)
どこに次のように私のJSONファイルがある:私はA-> Bであることを交差点の出力であることが予想
{
"test1" : {
"A": ["B","C"],
"B": [],
"C": []
},
"test2" : {
"A": ["B","D"],
"B": [],
"D": []
}
}
。しかし、その代わりにアウトプット以下は、思い付いた:
IGRAPH DN-- 3 2 --
+ attr: name (v)
+ edges (vertex names):
A->B, A->C
IGRAPH DN-- 3 2 --
+ attr: name (v)
+ edges (vertex names):
A->B, A->D
IGRAPH D--- 3 2 --
+ edges:
2->0 2->1
最初の両方の印刷グラフが期待通りに入力グラフの両方が動作することを、示して(私は「attrは」どこから来たのか理解ドントさえ厳しいです?)。 しかし、出力グラフでは、CとDが同じ場合、両方のグラフの頂点AとBが同じであるとは考えられません。だから私の質問:グラフの頂点のラベルを考慮して、グラフの交点(および和集合)を決定するにはどうしたらいいですか?
この投稿をチェックしてください:http://stackoverflow.com/questions/35182255/perform-union-of-graphs-based-on-vertex-names-python-igraph – paqmo