为了确定矩阵链乘法中计算开销最小的选项,需要计算每个选项的乘法次数(即标量乘法次数)。矩阵乘法的开销取决于矩阵的维度,两个矩阵 Am×nAm×n 和 Bn×pBn×p 相乘的开销为 m×n×pm×n×p。
给定矩阵维度:
A1: 20×2520×25
A2: 25×525×5
A3: 5×155×15
A4: 15×1015×10
A5: 10×2010×20
A6: 20×2520×25
计算步骤及开销:
计算 A1A2A1A2: 20×25×5=250020×25×5=2500,结果矩阵 20×520×5
计算 A3A4A3A4: 5×15×10=7505×15×10=750,结果矩阵 5×105×10
计算 (A3A4)A5(A3A4)A5: 5×10×20=10005×10×20=1000,结果矩阵 5×205×20
计算 ((A3A4)A5)A6((A3A4)A5)A6: 5×20×25=25005×20×25=2500,结果矩阵 5×255×25
计算 (A1A2)×(((A3A4)A5)A6)(A1A2)×(((A3A4)A5)A6): 20×5×25=250020×5×25=2500,结果矩阵 20×2520×25
总开销 = 2500+750+1000+2500+2500=92502500+750+1000+2500+2500=9250
选项 B 中的 (A1A2A3)(A1A2A3) 未指定括号顺序,需考虑两种可能:
情况 1: ((A1A2)A3)((A1A2)A3)
计算 A1A2A1A2: 20×25×5=250020×25×5=2500,结果矩阵 20×520×5
计算 (A1A2)A3(A1A2)A3: 20×5×15=150020×5×15=1500,结果矩阵 20×1520×15
计算 A4A5A4A5: 15×10×20=300015×10×20=3000,结果矩阵 15×2015×20
计算 (A4A5)A6(A4A5)A6: 15×20×25=750015×20×25=7500,结果矩阵 15×2515×25
计算 ((A1A2)A3)×((A4A5)A6)((A1A2)A3)×((A4A5)A6): 20×15×25=750020×15×25=7500,结果矩阵 20×2520×25
总开销 = 2500+1500+3000+7500+7500=220002500+1500+3000+7500+7500=22000
情况 2: (A1(A2A3))(A1(A2A3))
计算 A2A3A2A3: 25×5×15=187525×5×15=1875,结果矩阵 25×1525×15
计算 A1×(A2A3)A1×(A2A3): 20×25×15=750020×25×15=7500,结果矩阵 20×1520×15
计算 A4A5A4A5: 15×10×20=300015×10×20=3000,结果矩阵 15×2015×20
计算 (A4A5)A6(A4A5)A6: 15×20×25=750015×20×25=7500,结果矩阵 15×2515×25
计算 (A1(A2A3))×((A4A5)A6)(A1(A2A3))×((A4A5)A6): 20×15×25=750020×15×25=7500,结果矩阵 20×2520×25
总开销 = 1875+7500+3000+7500+7500=273751875+7500+3000+7500+7500=27375
选项 B 的最小开销为 22000(对应 ((A1A2)A3)((A1A2)A3))。
计算步骤及开销:
计算 A2A3A2A3: 25×5×15=187525×5×15=1875,结果矩阵 25×1525×15
计算 (A2A3)A4(A2A3)A4: 25×15×10=375025×15×10=3750,结果矩阵 25×1025×10
计算 A1×((A2A3)A4)A1×((A2A3)A4): 20×25×10=500020×25×10=5000,结果矩阵 20×1020×10
计算 (A1((A2A3)A4))A5(A1((A2A3)A4))A5: 20×10×20=400020×10×20=4000,结果矩阵 20×2020×20
计算 (((A1((A2A3)A4))A5)A6(((A1((A2A3)A4))A5)A6: 20×20×25=1000020×20×25=10000,结果矩阵 20×2520×25
总开销 = 1875+3750+5000+4000+10000=246251875+3750+5000+4000+10000=24625
计算步骤及开销:
计算 A1A2A1A2: 20×25×5=250020×25×5=2500,结果矩阵 20×520×5
计算 A4A5A4A5: 15×10×20=300015×10×20=3000,结果矩阵 15×2015×20
计算 A3×(A4A5)A3×(A4A5): 5×15×20=15005×15×20=1500,结果矩阵 5×205×20
计算 (A3(A4A5))A6(A3(A4A5))A6: 5×20×25=25005×20×25=2500,结果矩阵 5×255×25
计算 (A1A2)×((A3(A4A5))A6)(A1A2)×((A3(A4A5))A6): 20×5×25=250020×5×25=2500,结果矩阵 20×2520×25
总开销 = 2500+3000+1500+2500+2500=120002500+3000+1500+2500+2500=12000
选项 A: 9250
选项 B: 22000(最小可能)
选项 C: 24625
选项 D: 12000
最小开销为 9250,对应选项 A。此外,通过动态规划计算整个矩阵链的最小开销也为 9250,与选项 A 一致。
因此,计算开销最小的是 A。