最有效的马尔可夫链算法

时间:2013-04-25 14:59:51

标签: algorithm math

我目前的项目需要使用3x3x3马尔可夫链。我想出的第一个实现是让矩阵中的每个位置都有机会移动到该位置(所有位置的值总和为1)。根据矩阵中的值,这将导致:

  • 平均13.5次比较
  • 1比较的最佳案例
  • 27次比较的最坏情况

我的下一个想法是将每行和每层的总和存储为额外的类变量数组。这将使它能够在以下位置找到正确的位置:

  • 平均4.5次比较(1.5找到图层,1.5找到图层 行,1.5找到位置)
  • 3次比较的最佳案例
  • 9次比较的最坏情况

我们已经可以看到,这是一个更好的实现比较,但也需要存储一些额外的数据。

有没有更好的方法来实现这个?

1 个答案:

答案 0 :(得分:1)

Markov链通过转换矩阵演化,在您的情况下可能是27x27矩阵。但是,您提出问题的方式意味着您没有处理一般情况,并且存在一些适用的特殊条件。

如果我这样做,我的第一个想法是,这些天的计算机速度如此之快,以至于不值得担心初始版本的效率,并且最好得到一些初步结果。所以我只是开始担心后续版本的效率。特别是,你的效率更高的版本显然要变得更难,如果你保存的一些变量与马尔可夫链的基础状态不同步,也许有点危险。因此,测试这种更高效实施的重要工具将是您首先想到的强力低效实施。