0

我试图推断一个我只能模拟的过程的马尔可夫链。最终图将包含的状态/顶点的数量非常大,但我不知道提前的顶点数量。

现在我有以下内容:

  • 我的模拟在boost::dynamic_bitset每个时间步输出一个包含 112 位的值。
  • 我使用 bitset 作为 Google Sparse Hash 中的键来映射到一个整数值,该整数值可以用作我要构造的邻接矩阵的索引。

现在我需要一个好的/快速矩阵或二维数组来存储整数。它应该:

  • 使用我存储在 Google Sparse Hash 中的整数值作为行/列数。(例如,我想通过执行类似的操作来访问/更改存储的整数matrix(3,4) = 3
  • 我不知道我需要提前多少行或列。所以它应该能够即时添加行和列。
  • 大多数值将是 0,因此它可能应该是某些东西的稀疏实现。
  • 行数和列数会很大,所以应该很快。
  • 使用简单。我不需要很多数学运算,它应该只是一种快速简单的存储和访问整数的方法。

我希望我的问题足够清楚。

4

1 回答 1

0

我建议http://www.boost.org/doc/libs/1_54_0/libs/numeric/ublas/doc/matrix_sparse.htm - 提升 UBLAS 稀疏矩阵。稀疏矩阵存储有几种不同的实现,因此阅读文档可以帮助您选择适合您目的的类型。(TLDR:稀疏矩阵具有快速检索或快速插入。)

于 2013-10-29T14:30:26.930 回答