Я пытаюсь протестировать алгоритм PageRank для Юнга, но, похоже, у меня проблемы с этим. Я создал взвешенный и косвенный график с этой частью кода:
private static String getId(int nodeId)
{
return "Node " + nodeId;
}
private static String getId(int nodeId, int neighborId)
{
return "Edge " + nodeId + " -> " + neighborId;
}
public static Graph<String, Integer> createGraphForPageRank(String graphId, double[][] adjacencyMatrix)
{
Graph<String,Integer> g = new UndirectedSparseGraph <String,Integer>();
for (int nodeId = 0; nodeId < adjacencyMatrix.length; nodeId++)
g.addVertex(getId(nodeId));
for (int nodeId = 0; nodeId < adjacencyMatrix.length; nodeId++)
for (int neighborId = 0; neighborId < adjacencyMatrix[nodeId].length; neighborId++)
if (adjacencyMatrix[nodeId][neighborId]>0)
g.addEdge(neighborId,getId(nodeId),getId(neighborId));
return(g);
}
затем в основном классе я использовал этот код для проверки рейтинга страниц на моем графике:
double[][] adjacencyMatrixForPageRank =FileHelper.calculateSimilaritySentences("E:\\my workspace\\TweetsAnalyser2\\outputFiles\\splittedStemmeredFile-1.txt","");
Graph<String,Integer> g2=FileHelper.createGraphForPageRank("MyGraphForPageRank",adjacencyMatrixForPageRank);
PageRank<String,Integer> pagerank= new PageRank<String,Integer>(g2,alpha1);
pagerank.initialize();
pagerank.setTolerance(0.000001);
pagerank.setMaxIterations(200);
pagerank.evaluate();
но eclipse генерирует эту ошибку: Исключение в потоке «основной» java.lang.IllegalArgumentException: ребро 4 уже существует в этом графе с конечными точками и не может быть добавлено с конечными точками в edu.uci.ics.jung.graph.AbstractGraph.getValidatedEndpoints(AbstractGraph. java:93) на edu.uci.ics.jung.graph.UndirectedSparseGraph.addEdge(UndirectedSparseGraph.java:64) на edu.uci.ics.jung.graph.AbstractGraph.addEdge(AbstractGraph.java:60) на edu.uci .ics.jung.graph.AbstractGraph.addEdge(AbstractGraph.java:55) в com.tweets.helpers.FileHelper.createGraphForPageRank(FileHelper.java:1496) в com.tweets.test.Main.main(Main.java:105) )
Я знаю, что есть проблема с построением графа, но не знаю, как ее решить!!!! Может кто-нибудь, пожалуйста, помогите мне.