我有一个算法问题,我在其中导出了许多状态之间的传递矩阵。下一步是取幂,但它非常大,所以我需要对它做一些归约。具体来说,它包含很多对称性。下面是一些关于通过简单观察可以消除多少节点的示例。
我的问题是是否有一种算法可以有效地消除有向图中的对称性,类似于我在下面手动完成的方式。
在所有情况下,初始向量对于所有节点都具有相同的值。
在第一个示例中,我们看到b
、和都从彼此接收值。因此它们将始终包含相同的值,我们可以合并它们。c
d
e
a
在这个例子中,我们很快发现,从、和的角度来看,该图是相同a
的。同样对于它们各自的侧节点,它附加到哪个内部节点并不重要。因此,我们可以将图减少到只有两个状态。b
c
d
更新:有些人很合理,不太确定“状态转移矩阵”是什么意思。这里的想法是,您可以将一个组合问题拆分为多个状态类型,以便n
在您的循环中为每个状态类型。然后矩阵会告诉你如何从n-1
到n
。
通常你只对你的一个状态的值感兴趣,但你也需要计算其他状态,所以你总是可以进入下一个级别。然而,在某些情况下,多个状态是对称的,这意味着它们将始终具有相同的值。显然计算所有这些是相当浪费的,所以我们想减少图,直到所有节点都是“唯一的”。
下面是示例 1 中简化图的传递矩阵示例。
[S_a(n)] [1 1 1] [S_a(n-1)]
[S_f(n)] = [1 0 0]*[S_f(n-1)]
[S_B(n)] [4 0 1] [S_B(n-1)]
对论文的任何建议或参考表示赞赏。