6 个版本 (破坏性更改)
0.5.0 | 2021年9月30日 |
---|---|
0.4.0 | 2020年5月27日 |
0.3.0 | 2020年5月13日 |
0.2.2 | 2020年4月28日 |
0.1.0 | 2020年4月8日 |
#554 in 数学
270KB
5K SLoC
随机图组合的 Rust 库
最低 Rust 版本:1.55.0
实现简单采样和蒙特卡洛(或更确切地说是马尔可夫)步骤,可用于创建马尔可夫链。
此库旨在用于各种不同的用例。因此,您可以轻松定义应在每个顶点存储的附加数据。
用法
将以下内容添加到您的 Cargo.toml
[dependencies]
net_ensembles = "0.5"
# for feature "serde_support" (enabled by default) also use
serde = { version = "1.0", features = ["derive"] }
如果您不需要 serde
支持,则添加以下内容
[dependencies]
net_ensembles = { version = "0.5", default-features = false }
发行说明
请参阅 变更日志。请注意,v0.4 版本的 savestates(使用 serde 创建)与旧版本和 vice versa 生成的 savestates 不兼容。破坏性更改可能会或可能不会影响 savestates 的加载,您必须自行测试。
当前实现的图组合
- 埃尔德ős-Rényi (x2)
- 小世界
进行中
- Barabási-Albert
- 配置模型
- 空间网络
注意
在 64 位系统上,绘制 usize 消耗的随机性比在 32 位系统上更多,因此绘制的组合等受 usize
大小的影响。
图
- 您始终可以通过从它创建一个
.dot
文件来可视化当前图。有不同的选项可供选择,选择最适合您的一个。
实现可测量的量
- 平均度
- 连接组件
- 直径
- is_connected
- 叶子数
- q_core
- 对称性
- 二连通组件
- vertex_load(与 betweeness 紧密相关,通常相等)
迭代器
- 从索引开始深度优先搜索
- 从索引开始广度优先搜索
- 遍历附加数据
- …
对于每个顶点
方法和更多
- 度
- 检查与其他节点相邻
- 访问附加数据
迭代器
- 遍历存储在邻接表中的索引
- …
文档
注意
没有任何保证,但既然我是在为自己科学模拟编写这个库,我会尽最大努力避免错误。
您可以在我的主页上了解更多关于我和我的研究。
如果您发现任何错误,或想要请求新功能:请毫不犹豫地在仓库中打开一个新的问题。
顶点
- 顶点的数量必须在创建图时确定,以后无法更改 - 至少现在是这样。
- 如果有人要求或者我自己需要,我可能会添加添加顶点的方法。
由于实现细节,我优先考虑顶点的快速访问,因此不太可能实现删除顶点的选项。如果这样做,它可能是一个相对昂贵的操作,所以请记住这一点。
crates.io
- 我可能会将
sampling
模块移入不同的crate中。如果这样做,所有内容都可能会以目前相同的位置重新导出。
许可证
根据您的选择,受以下之一的许可协议约束:
- Apache License, Version 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则您提交给作品的所有贡献(根据Apache-2.0许可证定义)都将按照上述方式双重许可,不附加任何额外条款或条件。
依赖关系
~1.5MB
~25K SLoC