1

ページランクアルゴリズム(私が知っている)は、エッジに重みがないことを前提としています。したがって、標準の式は次のとおりです。

PR(A) = (1 - d)/N + d*\sigma PR(E)/L(E)

ここで、L(E)はページEの発信リンクの数です。ここで、EはページAを指す各ページです。

ここでわかるように、Aに入るエッジの重みは式では考慮されません。

2つの質問:

a)Aに入る各エッジの重みを考慮した場合、調整された式はどうなりますか?重みが高いほど良いと仮定します(Pythonのnetworkxパッケージは重み付きエッジを考慮しますが、コードは上記の式よりもはるかに複雑です。より簡単な解決策があるかどうかを確認することをお勧めします)

b)BSPPregelのようなフレームワークには実際にこれが必要です。BSP Pregelスタイルの実装がありますが、ご覧のとおり、エッジの重みは考慮されていません。あなたが1つを提案することができれば、それは素晴らしいでしょう

4

2 に答える 2

0

最初にすべてのエッジの重みをネイバーに合計してから、ノードランクのパーセントをネイバーに放出することをお勧めします。

例:ノードのランクは10です。隣接ノードは2つあり、それらのエッジの重みは70と30です。合計すると100になります。エッジの重みが70の最初のノードに対して、ランク7を放出します。もう一方に3。

于 2013-02-17T14:28:23.460 に答える
0

ここにWeightedPageRankのJava実装があります。私はそれを試しませんでしたが、ソースをざっと読んだ後、それはあなたの要件に一致しているようです。

于 2013-02-18T10:27:29.230 に答える