問題タブ [complex-networks]
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.
python-3.x - numpy を使用して何十億ものベルヌーイ抽出を効率的に実行する方法は?
私は疫学に関する論文に取り組んでおり、一時的なネットワークで SI の流行をシミュレートする必要があります。各時間ステップで、感染したノードと影響を受けやすいノードの間で抽出を実行する確率 ~ ベルヌーイ (ベータ) があります。私は np.random.binomial(size=whatever, n=1, p=beta) を使用してコンピューターに決定させています。ここで、各ノードから開始することで、同じネットワークでの流行をシミュレートする必要があります。これを K 回繰り返して、各ノードの統計的に関連する結果を取得する必要があります。また、時間ネットワークも確率的であるため、すべてを NET_REALIZATION 回繰り返す必要があります。
したがって、N = 100 のネットワークで、K=500 および NET=REALIZATION=500 の場合、流行は 25,000,000 回繰り返されるはずです。T=100 の場合、SI カップルのセットごとに 2,500,000,000 回の抽出が行われることを意味します (もちろん時間によって異なります)。beta が小さい場合 (よくあることですが)、計算に非常に時間がかかります。私のコンピューターでは、ベルヌーイ抽出に 3.63 µs かかると思われる場合、これは結果が得られるまで何時間も待たなければならないことを意味し、これが私の論文の作成を実際に制限しています。問題は、時間の半分以上がランダムな抽出に費やされていることです。抽出の結果は他のデータ構造と相互作用するため、numpy を使用する必要があります。numba を使用してみましたが、抽出速度が向上するようには見えませんでした。同じ結果を得るより速い方法はありますか? 0 と 1 の 10^12 抽出のような非常に大きな抽出を永遠に 1 回行うことを考えていましたが、異なるシミュレーションごとにそれらの一部をインポートするだけです (これはベータ値のいくつかの値に対して繰り返す必要があります)。もっと賢い動きがあれば。
手伝ってくれてありがとう
python - AttributeError: 'set' オブジェクトには NetworkX で動作する属性 'number_of_nodes' がありません
私はNetworkX 2.5を使用してNetworkXを初めて使用し、廃止されたコードにいくつかの問題があります。コードはここから抽出されます。非推奨の関数をいくつか修正しようとしましたが、コードを動作させることができません。また、connected_components 関数のしくみもわかりません。
次のコード行は AttributeError を返します。
どんな助けでも大歓迎です!