私はセマンティック Web アプリケーションを開発しており、Jung ライブラリを使用して、近さ、中間性などのグラフ計算を適用しています。rdf の各ノードの中間値を見つけて、それも正規化することができました。ただし、これは ClosenessCentrality には当てはまりません。一部のノードで NaN (数値ではない) スコアを取得したためです。以下は私のコードです。
int n = graph.getVertexCount();// number of vertex
double d = (double)(n-1)*(n-2)/2.0d; // this is to normalize the node value
System.out.println("Applying ClosenessCentrality");
ClosenessCentrality<RDFNode, Statement> closeness = new ClosenessCentrality<RDFNode, Statement>(graph);
double[] closenessValues = new double[n];
Collection<RDFNode> closenessVertices = graph.getVertices();
int i = 0;
for (RDFNode vertex : closenessVertices)
closenessValues[i++] = closeness.getVertexScore(vertex) / d; // get the normalized score for each node
for (double score : closenessValues)
System.out.println(score); // print all values.
そのため、前に述べたように、何らかの理由でいくつかのノードの NAN スコアを取得しました。NaN を取得したため、ClosenessCentrality アルゴリズムの実装にバグがあるように感じます。説明はありますか?私は何か間違っていますか?
助けてくれてありがとう