【发布时间】:2012-11-04 05:38:07
【问题描述】:
在阅读this site的PageRank算法理论之后,我想玩它。 我正在尝试在 Java 中实现这一点。我的意思是我想详细使用 PageRank(比如给出不同的权重等等)。为此,我需要构建超链接矩阵。如果我有 100 万个节点,那么我的超链接矩阵将是 100 万 x 100 万大小,这会导致此异常:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at WebGraph.main(WebGraph.java:6)
如何在 Java 中实现 PageRank,有没有办法存储超链接矩阵?
【问题讨论】:
-
你已经看过哪里了?你有没有发现任何非开源的实现?您是否考虑过自己实施?你对语言有什么偏好吗?
-
@acattle 我看过 Jung 和 WebLA。我想专注于理论而不是实施。语言偏好:任何。
-
您是否尝试过增加堆大小以消除该异常?
-
@DanW 我该怎么做?
-
你需要一个擅长存储稀疏矩阵的库 Matlab 有这样一个库(我相信在 c++ 中),我相信你可以借用它,并将它链接到你的 java 代码中。除非您处理小图形/矩阵,否则增加堆大小只是一种绷带解决方案。也许在java中使用这个introcs.cs.princeton.edu/java/44st/SparseMatrix.java.html
标签: java algorithm graph-algorithm pagerank