矩阵链乘法

1.问题

设 A1,A2,A3…An为 n 个矩阵的序列,其中 Ai为 Pi-1*Pi阶矩阵,这个矩阵链的 输入用向量
P=<P1,P2…Pn>给出。
给定向量 P,确定一种乘法次序,使得基本运算的总次数达到最小。

2.解析

在这里插入图片描述

3.设计

P=<20,30,25,5,15,40>,n=5
A1:20×30
A2:30×25
A3:25×5
A4:5×15
A5:15×40

(1)r=1
m[1,1]=0;
m[2,2]=0;
m[3,3]=0;
m[4,4]=0;
m[5,5]=0;

(2)r=2, i=1,2,3,4; j=2,3,4,5;
m[1,2]=20X30X25=15000; s[1,2]=1
m[2,3]=30X25X5=3750; s[2,3]=2
m[3,4]=25X5X15=1875; s[3,4]=3
m[4,5]=5X15X40=3000; s[4,5]=4

(3)r=3,i=1,2,3; j=3,4,5;
m[1,1]+m[2,3]+A1(A2A3)=0+3750+3000=6750;
m[1,2]+m[3,3]+(A1A2)A3=15000+0+2500=17500;
m[1,3]=6750;s[1,3]=1;
m[2,2]+m[3,4]+A2(A3A4)=0+1875+11250=13125;
m[2,3]+m[4,4]+(A2A3)A4=3750+0+2250=6000;
m[2,4]=6000;s[2,4]=3;
m[3,3]+m[4,5]+A3(A4A5)=0+3000+5000=8000;
m[3,4]+m[5,5]+(A3A4)A5=1875+0+15000=16875;
m[3,5]=8000;s[3,5]=3;
(4)r=4,i=1,2; j=4,5;
m[1,1]+m[2,4]+A1(A2A3A4)=0+6000+9000=15000;
m[1,2]+m[3,4]+(A1A2)(A3A4)=15000+1875+7500=24375;
m[1,3]+m[4,4]+(A1A2A3)A4=6750+0+1500=8250;
m[1,4]=8250;s[1,4]=3;
m[2,2]+m[3,5]+A2(A3A4A5)=0+8000+30000=38000;
m[2,3]+m[4,5]+(A2A3)(A4A5)=3750+3000+6000=12750;
m[2,4]+m[5,5]+(A2A3A4)A5=6000+0+18000=24000;
m[2,5]=12750;s[2,5]=3;
(5)r=5,i=1; j=5;
m[1,1]+m[2,5]+A1(A2A3A4A5)=0+12750+24000=36750;
m[1,2]+m[3,5]+(A1A2)( A3A4A5)=15000+8000+20000=43000;
m[1,3]+m[4,5]+ (A1A2A3)(A4A5)=6750+3000+4000=13750;
m[1,4]+m[5,5]+ (A1A2A3A4)A5=8250+0+12000=20250;
m[1,5]=13750;s[1,5]=3;
结果
s[1,5]=3 (A1A2A3)(A4A5)
s[1,3]=1 A1(A2A3);
(A1(A2A3))(A4A5)

4.分析

时间复杂度:O(n3)

5.源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值