私はインディアナ大学ブルーミントン校のコンピューター サイエンスの大学院生です。私の研究プロジェクトの 1 つで、非常にまばらでデッドリンクの割合が高い有向グラフのページランクの計算に取り組んでいます。
デッドリンクとは、出次数がゼロのノードを意味します。デッドリンクが多いグラフでは、スパイダー トラップが発生することがあります。とにかく、私が興味を持っている問題は、このシナリオでページランクを見つけることです。
また、ページランクの計算には JUNG (Java Universal Graph Network) を使用しています。
通常の手順を使用すると、
Graph<String, String> jungGraph = new DirectedSparseGraph<String, String>();
PageRank<String, String> pagerank = new PageRank<String,String>(jungGraph, 0.2);
pagerank.setMaxIterations(20);
pagerank.setTolerance(0.000001);
pagerank.evaluate();
すべてのノードで多かれ少なかれ同じページランク値が得られますが、そうであってはならないことが明確にわかっています。グラフ内のいくつかのノードには多数の発信ノードがあり、強く相互接続されています。
この場合に推奨されるアプローチは何ですか。このクラス PageRankWithPriors があることは知っています。最初にデッドリンクのないネットワークを抽出し、それらのページランクを計算してから、それらのランクが収束するまでデッドリンクに伝播する必要がありますか? 後者の場合、削減されたネットワーク (出次数 != 0) 内のすべてのノードに事前確率が設定されますが、デッドリンクは設定されません。
ここで何か不足していますか?