假设将维度p×q的矩阵G1与维度q×r的另一矩阵G2相乘,需要pqr标量乘法。计算n个矩阵G1G2G3 ...... Gn的乘积可以通过以不同方式括号来完成。如果直接相乘,则将GiGi + 1定义为给定paranthesization的显式计算对。例如,在矩阵乘法链G1G2G3G4G5G6中使用括号(G1(G2G3))(G4(G5G6)),G2G3和G5G6只是显式计算对。
考虑矩阵乘法链F1F2F3F4F5,其中矩阵F1,F2,F3,F4和F5的尺寸分别为2×25,25×3,3×16,16×1和1×1000。在最小化标量乘法总数的F1F2F3F4F5的括号中,显式计算的对是
仅限F1F2和F3F4
仅限F2F3
仅限F3F4
仅限F2F3和F4F5
=============================================== ========================
我的方法 - 我想在一分钟内解决这个问题,但我知道的唯一方法是通过制作一个表来使用自下而上的动态方法,而我可以得出的另一个结论是我们应该在F5处乘以F5最后因为它有1000个尺寸。那么,请问如何为这类问题发展快速直觉!
=============================================== =======================
正确答案是F3F4
答案 0 :(得分:1)
最重要的是维度 1×1000 。如果你想最小化乘法,你最好注意它。好的,现在我们确实知道我们要找的是基本上用 1000 来增加一个小数字。
仔细检查我们是否选择 F4F5 ,我们将乘以 16x1x1000 。但是计算 F3F4 第一,结果矩阵的维度为 3x1 。因此,使用 F3F4 ,我们可以得到像 3,1 这样的小数字。所以,我不能选择 F4F5 。
按照类似的逻辑,我不会选择 F2F3 并且松散较小的3并且变大 25 和 16 稍后将与 1000 一起使用。
确定,对于 F1F2 ,您可以快速找到(F1F2)(F3F4)并不是更好比 (F1(F2(F3F4)))。所以答案是 F3F4