2017-10-07 3 views
0

私はグラフ上の病気の伝播モデルを分析するためにグラフツールを使用しています。 私は、感染した頂点、つまりその隣人に感染する頂点だけで構成されるフィルタリングされたグラフを作成したいと思います。グラフツールライブラリでフィルタリングされたグラフのすべてのフィルタリングされていない頂点を効率的に見つける方法はありますか?

感染した頂点をフィルタリングすると残りのデータが欠落していますが、私はGraphViewサブクラスを認識していますが、問題は、元のグラフをどこかに保存しておくと、私は頂点の等価物にアクセスすることができず、それを隣人に感染させることができないので、フィルタされたグラフのエッジを反復する。 (プロパティを変更してください)

私の仕事を効率的にする方法はありますか?

ありがとうございました。

答えて

0

はい、Graph.vertex()メソッドを使用すると、元のグラフの頂点にアクセスできます。

セイgがあなたの元のグラフとuがフィルタ1であるならば、あなたが行うことができます:

for e in u.edges(): 
    v = e.source() 
    v_orig = g.vertex(v)    # corresponding vertex in unfiltered graph 
    for w in v_orig.out_neighbors(): 
     print(w)      # neighbors in the unfiltered graph 
関連する問題