問題タブ [neo4j-traversal-api]
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.
neo4j - Neo4J Java Native API vs Traversal API vs Cypher
Neo4J Java Native API、Traversal API、および Cypher のパフォーマンス評価を行った人はいますか? 上記の 3 つのオプションのうち、パフォーマンスの観点からより良い結果が得られるのはどれですか? また、書き込み操作には、ネイティブ Java API または暗号を使用する必要があります。ノード/関係の作成ごとではなく、DB に 1 回だけヒットするように、ネイティブ API で DB 操作を一括処理する可能性はありますか。
neo4j - トラバーサル フレームワークを使用して、Neo4j で一種のランダム ウォークをコーディングする
私は現在、ノードが確率的エッジを介して接続されているグラフに取り組んでいます。各エッジの重みは、エッジの存在確率を定義します。
開始するためのグラフの例を次に示します。
Neo4j トラバーサル フレームワークを使用して、このグラフを (A) からトラバースし、途中で見つかったエッジの確率に基づいて、到達したノードの数を返したいと思います。
重要:
- 到達した各ノードは 1 回だけカウントできます。→ (A) が (B) と (C) に到達する場合、(C) は (B) に到達する必要はありません。一方、(A) が (B) に到達できず (C) に到達した場合、(C) は (B) に到達しようとします。
- (B) が (C) に到達した場合も同様で、(C) は (B) に再び到達しようとはしません。
- これは離散時間ステップ関数で、ノードは隣接ノードに 1 回だけ到達しようとします。
- エッジの存在をテストする (トラバースするかどうか) ために、乱数を生成し、エッジの重みよりも小さいかどうかを確認できます。
トラバーサル記述の一部を次のようにコーディングしました。(ここでは、複数のノードから開始することは可能ですが、問題を解決するために必要ではありません。)
次のように、到達したノードの数を追跡します。
このコードの問題は、NODE_PATH が定義されていても、望ましくないサイクルが存在する可能性があることです。
したがって、私は知りたいです:
- サイクルを回避し、到達したノードの数を正確にカウントするソリューションはありますか?
- そして理想的には、PathExpander を使用して同じことを行うことは可能 (またはそれ以上) でしょうか?
ありがとう