問題タブ [graph-tool]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
320 参照

python - graph_tool でのデフォルトのプロパティ値の設定

グラフの頂点ごとに、特定の条件 (「ACondition」など) が何回満たされるかをカウントする必要があります。そのためには、頂点プロパティを明示的にゼロに初期化する必要があります。以下のコードを参照してください。

初期値を明示的に設定する必要がないように、プロパティのデフォルト値を指定する方法はありますか (つまり、上記のコードの 2 番目のブロック)。

0 投票する
2 に答える
3115 参照

python - グラフツールを効率的に使う

長い間考えた後、私は最終的にこの質問をここに投稿することにしました。数日前、私graph-toolはさまざまなことをするために使い始めました。その前から使っていNetworkxます。私はすでに印象的なパフォーマンス比較を見て、すべてが十分に単純であると考えました. しかし、すぐに速度の問題に遭遇し、その特定の側面に関連する質問をしました. 納得のいく迅速な回答を頂きました。ただし、現在、この速度の問題は時々私を悩ませており、ドキュメントが見つかりませんgraph-toolそれはそれを効率的に使用することに関連しています。たとえば、私の最後の質問への回答から、注意すべき非常に重要なポイントですが、どこにも言及されていない 1 つずつではなく、すべてのエッジを一緒に追加する方が良いことに気付きました! 私は今、さらに2つの同様の問題を抱えています:

(1) 特定のノードのランダムな隣人を選択するにはどうすればよいですか? 次の解決策しか表示されません。

v.all_neighbours()ジェネレーターであるため、ランダムな要素を選択するには、リストに変換する必要があります。これによりコードが遅くなりますが、これ以上の方法はありません。

(2) グラフの各頂点に 1d ベクトル (大丈夫ですか?) を割り当てたいのですがlist、後でそれらを特定の方法で交換および変更しています。これは単なるプロパティ マップであり、これを効率的に使用する方法についてのドキュメントを参照したいと思います。しかし、私は何も見つけることができません。

(3)時間とともに変化するネットワークでトライアディック クロージャをシミュレートしようとしています。したがって、すべてのタイム ステップで、グラフ内の各頂点の近傍に関する情報が必要です。ここでも、リスト (または numpy 配列) を作成する必要があります。

これにより、コードの速度が大幅に低下します。これは、私がこれを正しく行っていないことを意味しますが、グラフツールで隣人を効率的に使用する方法を教えてくれるドキュメントが見つかりませんでした。

どういうわけかNetworkx、同じタスクのために私が書いたプログラムは、グラフツールのコードよりも完全に優れていて、これを買うことはできません.

このリストは増える可能性があるため、上記の特定の質問への回答とは別に、graph-tool の効率的な使用に関するドキュメントを誰かが教えてくれたら、とてもうれしいです。

前もって感謝します。

0 投票する
2 に答える
97 参照

python - ipython での興味深いインポート動作

これは、graph_tool をいじっているときに気付きました。一部のモジュール属性は、ipython から実行した場合にのみ使用できるようです。最も単純な例 (example.py)

run example.y', but from the command line,python example.py` yieldsを使用して ipython からエラーなしで実行されます

についても同様ですipython example.py。何が原因なのか途方に暮れています。from graph_tool.draw import *描画モジュールにアクセスしたいのですが、ヘルプや説明を介してしかアクセスできないようです。

0 投票する
1 に答える
90 参照

python - graph_tools の推論の AttributeError

私は Python グラフ ツール ライブラリを使用して、グラフでいくつかの推論を行っています。API といくつかの例を示す以下のリンクを参照していました。 https://graph-tool.skewed.de/static/doc/inference.html#graph_tool.inference.BlockState

私のコードは次のように書かれています。ここで、g は前のステップで定義された有向のエッジ加重グラフです。

API によると、BlockState コンストラクターは、関数 ch を collect_vertex_marginals および mcmc_sweep() として持つ BlockState obj を返す必要があります。ただし、次のエラーが表示されます。

私は単に何かを見落としていますか?バージョンの問題 (古い API など) は見当たらないので、少し戸惑っています。ありがとう!

0 投票する
0 に答える
245 参照

python - グラフ ツールを使用してグラフのトライアド クロージャを取得する

graph-tool のトライアド クロージャを構築しようとしていますGraph

graph_tool.topologycontains transitive_closure、これは基本的に隣接行列の「無限乗」乗です。必要なのは2k乗、または一般的には乗乗です。

ただ...隣接行列の累乗を計算するよりも良い方法はありますか?

0 投票する
1 に答える
2362 参照

python - グラフツールでサブグラフをフィルタリングする

これは、ドキュメントを使用して解決する方法を理解するのは簡単なグラフツールに関するばかばかしいほど基本的な質問ですが、私はぐるぐる回っています。ドキュメンテーションが包括的であることは間違いありませんが、これが簡単ではないことは確かです。

GOAL: 与えられたグラフ G から、G の頂点のリストに基づいて誘導されたサブグラフを抽出します。

GraphView私はどういうわけかでこれをやるべきだと知っています。わかりました。また、これには頂点を作成する必要があることも理解していPropertyMapます。しかし、正確には何を作成すればよいのでしょうか?

ここではドキュメントが非常に不足しています。たとえば、PropertyMaps のページには、それぞれPropertyMapが特定のタイプになる可能性があると書かれていますが、それが何を意味するのかわかりません。タイプは何を表していますか?あるタイプを別のタイプよりも優先して使用するのはいつですか? グラフツールを効率的に使用することがいかに重要であるかを考えるとPropertyMaps、ドキュメントがどれほど不明確であるかに少し当惑しています。

この問題では、サブグラフに必要な頂点を「true」に設定し、サブグラフに不要な頂点を「false. " しかし、それはPropertyMap私が作成する必要があることを意味しますか? 元のグラフ G のノードの数と同じ長さを持つ必要がありますか? または、ノードのリストを提供して、True に設定するのはそれらのノードだけであることを理解させることはできますか?

0 投票する
1 に答える
197 参照

graph-tool - グラフ ツール オーバーラップ ブロック オブジェクト

オーバーラップ ブロック状態の各ノードのブロック メンバーシップを numpy 配列に変換するにはどうすればよいですか?

具体的には、重複するブロックオブジェクトを推測する場合、重複するメンバーシップ配列は次のように復元できるようです

これを numpy 配列に変換するには、特定のノードのメンバーシップの最大数 (max_overlaps と呼びましょう) を把握する必要があるようです。その後、2 次元配列に変換できます。

しかし、今は結果をどのように解釈すればよいかわかりません。この行列の最初の行が各ノードの最初のメンバーシップの割り当てであるというのは本当ですか? もしそうなら、2 番目の行はノードが存在する場合は 2 番目のメンバーシップの割り当てであり、存在しない場合は 0 であると言いたいと思います。しかし、0 はブロック番号の可能性があるので、0-i 番目のブロックに重複するメンバーシップが含まれているかどうかはどうすればわかりますか?