我目前的项目需要使用3x3x3马尔可夫链。我想出的第一个实现是让矩阵中的每个位置都有机会移动到该位置(所有位置的值总和为1)。根据矩阵中的值,这将导致:
我的下一个想法是将每行和每层的总和存储为额外的类变量数组。这将使它能够在以下位置找到正确的位置:
我们已经可以看到,这是一个更好的实现比较,但也需要存储一些额外的数据。
有没有更好的方法来实现这个?
答案 0 :(得分:1)
Markov链通过转换矩阵演化,在您的情况下可能是27x27矩阵。但是,您提出问题的方式意味着您没有处理一般情况,并且存在一些适用的特殊条件。
如果我这样做,我的第一个想法是,这些天的计算机速度如此之快,以至于不值得担心初始版本的效率,并且最好得到一些初步结果。所以我只是开始担心后续版本的效率。特别是,你的效率更高的版本显然要变得更难,如果你保存的一些变量与马尔可夫链的基础状态不同步,也许有点危险。因此,测试这种更高效实施的重要工具将是您首先想到的强力低效实施。