我正在开发一个语义 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 算法实现存在错误。有什么解释吗?难道我做错了什么 ?
谢谢您的帮助