首页 > 解决方案 > 是否可以获得较低精度的路径长度?

问题描述

我正在使用一个科学软件包,它大量使用 igraph 的最短路径算法来计算路径长度。但是,对于我们感兴趣的图,返回的矩阵非常占用内存,很容易扩展到 10 Gb。此外,不需要双精度计算——在大多数情况下,单精度甚至整数精度就足够了。

我有两个问题:

  1. 是否可以更改矩阵的数据类型,例如从双精度到单精度甚至整数(如果我们只需要边数)?
  2. 是否可以将未连接节点之间的路径长度的默认值从无穷大更改为 null 或其他值?(我们正在考虑将矩阵存储在稀疏矩阵中,但无穷大不兼容)

我在文档中找不到任何可以让我这样做的参数或设置,无论是在这里:https ://igraph.org/r/doc/distances.html还是在低级函数文档中。

提前致谢!

标签: rigraph

解决方案


一些可能有帮助的提示:

仅当大多数顶点对彼此不可达时,使用稀疏矩阵才会有所帮助。这意味着该图有许多小组件。如果是这样,将图分解为组件,并分别对每个组件运行最短路径长度计算。

您是否需要将整个矩阵存储在内存中以进行下一步计算?或者你可以部分地使用矩阵吗?igraph 可以计算并非来自所有来源的最短路径,而是仅来自某些来源。一个接一个地处理源(或为了更好的性能:一个小组一个小组),而不是一次全部处理。igraph 还支持仅计算到某些目标的路径,由于最短路径查找器的工作方式,逐个目标进行计算效率不高。


推荐阅读