前言
学无止境,笔勤不辍。今天,笔者将会对动态规划中典型的矩阵链乘问题进行一些自己的解读,希望给大家带来一些帮助.
提示:以下是本篇文章正文内容,下面案例可供参考
一、矩阵链乘
给定n个矩阵的序列<A1,A2,A3,…,An>,需要计算得出它们的积A1A2…An执行的最少的乘法的次数。
计算多个矩阵积可用括号来决定计算次序,每一个括号内的矩阵相乘调用标准的矩阵乘法
矩阵乘法满足结合律,改变运算的次序,但运算的总数不变!
一个小知识点:
矩阵积的完全括号化,它是单个矩阵,或是两个完全括号化的矩阵积被包括在一个括号里
类似就是这种情况,如果有n个矩阵相乘,那么第一次选择可以有n-1种
注意是第一级的选择!
再来补充一个小知识 两个矩阵相乘,例如 Apq*Bqr 乘法的数量是p*q*r
本质上这是个求最优的问题,而且也要求子结构最优,要使得整个矩阵链乘法最优就要保证每次插入括号时分成的两个部分的乘法次数时最少的,并且划分之后的两部分结合的乘法次数也要最少。
用上面的图片来举个例子:
我们要选择第一级括号放置在哪,我们就要比较括号分别放在A1、A2、A3、A4、A5之间 前部分的链乘次数