9.11 状态矩阵 与 dp

大一以来有两门课程学了矩阵:离散数学的二元关系一章的关系矩阵 和 线性代数中的矩阵

矩阵是一种特别方便的数学工具,线性代数中,它可以用来解线性方程组 ,而离散数学中,他可以描述一个由 二元关系的集合(可以看成是有向图) 所构成的状态;

 

而dp解决的是通过状态之间转移寻找最优解的问题。

所以当一个dp的状态由很多子状态构成 及 dp状态之间的转移较复杂 时,可以尝试用 关系矩阵 这个工具去描述它;

状态之间的转移,则用矩阵乘法去实现。

 

关于用矩阵乘法实现状态之间的转移,离散数学中有证明(关系矩阵的幂次,二元关系的复合),这里简单的说一下:

矩阵乘法的定义是这样的

 

 在关系矩阵中则可以表示两个二元关系的复合,为什么呢?

二元关系可以用有向图表示,用两个有向图 f ,g 复合为一个新的有向图 f * g,假设新的图中有一条边i -> j,则它是有f中的一条边i->k ,和 g 中的一条边 k->j通过一个中间节点k连接而成,而 矩阵乘法 恰好完成了枚举中间节点k这个过程,如下图

你可能感兴趣的:(9.11 状态矩阵 与 dp)