r - 是否可以获得较低精度的路径长度?
问题描述
我正在使用一个科学软件包,它大量使用 igraph 的最短路径算法来计算路径长度。但是,对于我们感兴趣的图,返回的矩阵非常占用内存,很容易扩展到 10 Gb。此外,不需要双精度计算——在大多数情况下,单精度甚至整数精度就足够了。
我有两个问题:
- 是否可以更改矩阵的数据类型,例如从双精度到单精度甚至整数(如果我们只需要边数)?
- 是否可以将未连接节点之间的路径长度的默认值从无穷大更改为 null 或其他值?(我们正在考虑将矩阵存储在稀疏矩阵中,但无穷大不兼容)
我在文档中找不到任何可以让我这样做的参数或设置,无论是在这里:https ://igraph.org/r/doc/distances.html还是在低级函数文档中。
提前致谢!
解决方案
一些可能有帮助的提示:
仅当大多数顶点对彼此不可达时,使用稀疏矩阵才会有所帮助。这意味着该图有许多小组件。如果是这样,将图分解为组件,并分别对每个组件运行最短路径长度计算。
您是否需要将整个矩阵存储在内存中以进行下一步计算?或者你可以部分地使用矩阵吗?igraph 可以计算并非来自所有来源的最短路径,而是仅来自某些来源。一个接一个地处理源(或为了更好的性能:一个小组一个小组),而不是一次全部处理。igraph 还支持仅计算到某些目标的路径,由于最短路径查找器的工作方式,逐个目标进行计算效率不高。
推荐阅读
- algorithm - 大欧米茄,大哦,大θ
- react-native - 使用 react native axios 上传图片
- flutter - 使用 Flutter/Dart 插件在 IntelliJ 中完成代码首先给出了不正确的建议
- java - Spring项目的Java Json序列化
- amazon-web-services - AWS Step Functions SDK:状态类型`Choice`不支持方法`next`
- amazon-web-services - 如何从正在运行的实例创建 AWS AMI 但删除昂贵的数据
- python - Python 的 series.str.contains 框架中的正则表达式中的变量
- git - 如何在 Git 2.9 之前 git 合并不相关的历史记录(--allow-unrelated-histories 不可用)
- c++ - OpenCV C++ 中的小星球全景图
- c - fmodf() 是否会导致 stm32 出现硬故障?