1 个不稳定版本
0.1.0 | 2023年12月27日 |
---|
#1277 在 算法
15KB
161 行
pagerank_rs
pagerank_rs 是一个用于计算 PageRank 的 Rust 库,旨在处理不同大小的图。它是不同环境中的网络分析的合适选择,例如社交网络或学术引用。该库旨在提供一种有效的方法来确定网络中节点的重要性。
要深入了解 PageRank 算法,请访问其 维基百科页面。
安装
将 pagerank_rs
添加到您的 Cargo.toml
[dependencies]
pagerank_rs = "0.1.0"
用法
以下是使用 pagerank_rs 的简单示例
use pagerank_rs::Pagerank;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut graph = Pagerank::new(3);
graph.link(0, 1)?;
graph.link(1, 2)?;
let probability_of_following_a_link = 0.85;
let tolerance = 0.0001;
graph.rank(probability_of_following_a_link, tolerance, |node_id, rank| {
println!("Node {} rank is {}", node_id, rank);
});
Ok(())
}
此代码将输出图中每个节点的 PageRank。节点 ID 可以是任何 usize 整数。排名值通过闭包返回以避免分配大型结果对象。
有关更复杂示例和用法模式,请参阅仓库中的单元测试。
性能
在包含 10 万个节点的图上对 pagerank_rs 库的性能进行了基准测试。每个节点连接到最多 400 个其他节点,除了少数节点具有显著更多的 inward links,模拟更现实的链接分布。
在配备 32 GB RAM 的 Apple M2 Pro 上的测试中,该库使用典型的 PageRank 参数处理图大约需要 1.9 秒。
性能将因不同的图结构、系统硬件和其他环境因素而异。
贡献
我们欢迎对 pagerank_rs 的贡献!以下是开始的方式
- 在 GitHub 上叉该项目。
- 为您的功能或错误修复创建一个新分支。
- 编写代码并为您的更改添加测试。
- 确保所有测试都通过。
- 向主分支提交拉取请求。
请遵循 Rust 编码约定并包含适当的文档。
许可证
pagerank_rs 根据 MIT 许可证 提供。有关更多详细信息,请参阅 LICENSE 文件。
作者
依赖关系
~1.5MB
~31K SLoC